Pendaftaran acara6 menit baca
Formulir RSVP pernikahan di website pernikahan Anda sendiri
Formulir RSVP untuk website pernikahan yang Anda buat sendiri: satu balasan per undangan, satu menu per tamu yang disebut namanya, tenggat, dan daftar siapa yang belum membalas.
Beri setiap undangan link RSVP sendiri yang membawa kode undangan dan nama tamunya, lalu biarkan formulir menampilkan satu nama dan pilihan menu per tamu. Setiap balasan dikirim ke Ikiform, jadi Anda mendapat email untuk masing-masing dan CSV untuk diserahkan ke katering. Cocokkan balasan dengan daftar tamu di spreadsheet untuk melihat siapa yang belum menjawab, lalu jeda formulir setelah tenggat.
Apa yang berbeda dari pernikahan
Meetup menghitung orang asing. Pernikahan menghitung daftar tamu yang sudah Anda punya, undangan demi undangan. Empat hal mengikuti dari situ:
- Satu balasan per undangan, bukan per orang. Pasangan atau keluarga menjawab bersama.
- Tamu bernama, bukan jumlah tamu. Anda mengundang Ada dan Sam, bukan
2. Plus-one tercantum di undangan atau tidak sama sekali. - Satu menu per orang. Katering butuh total ikan, daging sapi, dan vegetarian, ditambah porsi anak.
- Tenggat tegas dan daftar untuk ditagih. Venue meminta angka sebelum tanggal tertentu, dan daftar yang berguna adalah siapa yang belum membalas.
Layanan website pernikahan seperti Zola, The Knot, dan Joy punya alat RSVP yang dibangun di sekitar daftar tamu, dengan pencarian berdasarkan nama. Jika Anda memakai salah satunya untuk situs Anda, pakai RSVP-nya. Halaman ini untuk situs pernikahan yang Anda buat sendiri, di Squarespace, Carrd, Framer, atau HTML biasa, tempat Anda ingin RSVP ada di halaman Anda sendiri.
Ikiform tidak punya pencarian daftar tamu maupun grup berulang, jadi formulir tidak bisa tahu sendiri siapa saja yang ada di satu undangan. Triknya adalah menaruh informasi itu di link.
- Sheet daftar tamu Anda punya satu baris per undangan: kode pendek, nama keluarga, dan nama-nama tamu.
- Sebuah rumus mengubah tiap baris menjadi link RSVP personal yang membawa kode dan nama-nama itu.
- Anda mencetak link sebagai kode QR di undangan, atau mengirimnya lewat pesan.
- Halaman RSVP membaca link dan menampilkan satu nama dan satu pilihan menu per tamu, lalu mengirim ke Ikiform.
- Anda mengekspor balasan sebagai CSV dan mengimpornya di samping daftar tamu.
- Mencocokkan kode menunjukkan undangan mana yang belum membalas, jadi Anda tahu siapa yang perlu ditagih.
- Menghitung tiap menu di seluruh balasan memberi total untuk katering.
Buat link untuk setiap undangan
Di sheet daftar tamu, isi kode pendek di kolom A, seperti okafor atau nguyen-family, nama keluarga di B, dan nama depan tamu di C, dipisahkan koma. Rumus ini di D membuat link-nya:
="https://ada-and-sam.example/rsvp?party=" & A2 & "&names=" & ENCODEURL(C2)Cetak setiap link sebagai kode QR di undangan, atau tempel ke pesan. Buat kode dengan huruf kecil dan tanda hubung; pattern field menolak yang lain, sehingga kode yang salah ketik ketahuan sejak awal.
Formulirnya
Tempel ini ke halaman pernikahan Anda, atau ke blok embed di pembuat situs. Kode ini membaca party dan names dari link, menambahkan satu baris nama dan menu per tamu, hingga empat, dan menyembunyikan diri setelah tenggat. Tanpa nama di link, formulir menampilkan satu baris untuk diisi.
<form id="rsvp" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
<input type="hidden" name="party" id="party">
<div id="guests"></div>
<label>Email for updates <input name="email" type="email" autocomplete="email" required></label>
<label>A song that gets you dancing <input name="song" maxlength="120"></label>
<label>Anything we should know? <textarea name="note" rows="3" maxlength="1000"></textarea></label>
<input type="hidden" name="_redirect" value="https://ada-and-sam.example/thank-you">
<input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden>
<button type="submit">Send our RSVP</button>
</form>
<p id="closed" hidden>RSVPs closed on 1 May. Message us if your plans have changed.</p>
<template id="guest-row">
<fieldset>
<legend></legend>
<label>Name <input data-part="name" maxlength="80" autocomplete="off"></label>
<label>Meal
<select data-part="meal">
<option value="beef">Beef</option>
<option value="fish">Fish</option>
<option value="vegetarian">Vegetarian</option>
<option value="child">Child's menu</option>
<option value="not_coming">Can't come</option>
</select>
</label>
</fieldset>
</template>
<script>
const DEADLINE = new Date("2027-05-01T23:59:00+01:00");
const params = new URLSearchParams(location.search);
const party = (params.get("party") ?? "").toLowerCase();
const names = (params.get("names") ?? "").split(",").map((name) => name.trim()).filter(Boolean).slice(0, 4);
const rsvp = document.getElementById("rsvp");
if (Date.now() > DEADLINE.getTime()) {
rsvp.hidden = true;
document.getElementById("closed").hidden = false;
} else {
document.getElementById("party").value = party;
const rows = names.length ? names : [""];
rows.forEach((name, index) => {
const n = index + 1;
const row = document.getElementById("guest-row").content.cloneNode(true);
row.querySelector("legend").textContent = name || "Your name";
const input = row.querySelector('[data-part="name"]');
input.name = `guest_${n}_name`;
input.value = name;
input.required = n === 1;
row.querySelector('[data-part="meal"]').name = `guest_${n}_meal`;
document.getElementById("guests").append(row);
});
}
</script>- Menu setiap tamu menyertakan
Can't come, sehingga keluarga yang salah satu anggotanya tidak bisa datang tetap mengirim satu balasan. - Input nama sudah terisi tetapi bisa diedit, jadi tamu bisa memperbaiki ejaan atau menuliskan nama anak.
- Formulir mengirim dengan cara biasa dan mendarat di halaman terima kasih Anda lewat
_redirect. Taruh tanggal, venue, dan link kalender di sana; Ikiform tidak mengirim email ke tamu Anda. - Tenggat hanya menyembunyikan formulir di browser. Saat tenggat tiba, pilih juga Pause form di Ikiform, agar tab yang tersimpan tidak bisa mengirim. Formulir yang dijeda menjawab
403 form_paused.
Tempel definisi ini di tab Fields formulir. Coba saja: kode undangan dengan huruf kapital atau spasi gagal di pattern, dengan pesan yang Anda atur.
Pratinjau
Menjalankan validator Ikiform di browser Anda. Tidak ada yang dikirim.
Siapa yang belum membalas, dan apa yang perlu dipesan
- Ekspor RSVP sebagai CSV dari Submissions lalu impor ke tab bernama
Repliesdi spreadsheet daftar tamu. - Jika satu undangan membalas dua kali, simpan baris terbarunya: urutkan berdasarkan
created_at, terbaru di atas, lalu hapus duplikat pada kolomparty. - Tampilkan undangan yang belum membalas, dengan kode di kolom A daftar tamu dan
partydi kolom E tab Replies:
=FILTER(A2:C, A2:A <> "", ISNA(MATCH(A2:A, Replies!E2:E, 0)))Lalu hitung tiap menu untuk katering. Nama tidak pernah sama dengan nilai menu, jadi satu range yang mencakup semua kolom tamu sudah cukup:
=COUNTIF(Replies!G2:N, "fish")| Angka | Cara |
|---|---|
| Orang yang datang | Jumlahkan hitungan untuk beef, fish, vegetarian, dan child |
| Tidak bisa datang | COUNTIF pada range yang sama untuk not_coming |
| Porsi anak | COUNTIF untuk child, yang biasanya diberi harga terpisah oleh katering |
| Catatan makanan | Baca kolom note. Alergi sering tersembunyi di sana |
Sebelum mengirim undangan
- Atur Allowed domains ke domain situs pernikahan Anda, dan domain staging pembuat situs selama pengujian.
- Ikiform tidak menggabungkan atau menolak kiriman berulang berdasarkan email. Kiriman identik yang berulang dalam 24 jam hanya menambah skor spam. Lakukan deduplikasi di tempat daftar itu disimpan, atau saat Anda mengekspor. Balasan terbaru per kode adalah jawabannya.
- Siapa pun yang memegang link bisa mengubah kode atau namanya. Itu tidak masalah untuk pernikahan; sheet Anda yang menentukan siapa yang diundang, dan daftar belum membalas akan menunjukkan hal yang janggal.
- Kerabat yang lebih tua mungkin sama sekali tidak memakai formulir. Catat balasan lewat telepon dan kertas di sheet Anda agar hitungannya tetap lengkap.
Cek sebelum undangan dikirim
- Buka link undangan Anda sendiri di ponsel. Nama-nama muncul, masing-masing dengan pilihan menu.
- Pilih
Can't comeuntuk satu tamu, kirim, lalu Anda mendarat di halaman terima kasih. - Buka Submissions di dashboard. Kiriman baru ada di sana dengan setiap field yang Anda kirim.
- Cek inbox setiap penerima notifikasi. Masing-masing mendapat email berisi field, dan Reply terkirim ke pengirim formulir jika formulir punya field
email. - Impor CSV, lalu pastikan daftar belum membalas tidak lagi menampilkan kode Anda.
- Atur tenggat ke kemarin di salinan uji dan pastikan formulirnya tersembunyi.
Hal yang sering menjebak
| Masalah | Yang harus dilakukan |
|---|---|
422 dengan party: Use the link from your invitation | Kodenya berisi huruf kapital, spasi, atau karakter lain. Perbaiki kode di sheet, atau minta tamu memakai link mereka. |
| Tamu melihat satu baris kosong, bukan nama-nama | Link kehilangan bagian names, sering kali karena aplikasi pesan memendekkannya. Kirim link lengkap atau kode QR-nya. |
422 validation_failed | Kiriman tidak cocok dengan definisi field formulir. error.fields menyebutkan setiap field dan alasannya. Samakan name input dengan ID field. |
403 origin_not_allowed, atau setiap kiriman masuk ke spam | Domain halaman tidak ada di Allowed domains formulir. Tambahkan, ditambah localhost untuk uji lokal. Subdomain dari domain yang terdaftar diizinkan. |
| Browser mendarat di halaman terima kasih Ikiform, bukan halaman Anda | _redirect diabaikan kecuali domainnya ada di Allowed domains dan berupa URL https:. Tambahkan domainnya, atau atur Redirect after submit di pengaturan formulir sebagai gantinya. |
Pertanyaan
Tidak. RSVP masuk ke dashboard Ikiform dan inbox Anda. Tidak ada yang ditampilkan kembali di situs.
Tidak dari Ikiform, yang hanya mengirim email ke Anda. Tampilkan detailnya di halaman terima kasih, atau kirim setiap balasan lewat webhook ke alat email dan kirim konfirmasinya dari sana.
Sembunyikan formulir di halaman setelah tanggalnya, seperti pada contoh, dan pilih Pause form di Ikiform. Formulir yang dijeda menolak kiriman baru dengan 403 form_paused.
Kedua balasan disimpan. Simpan yang terbaru per kode undangan saat menghitung, dengan mengurutkan dari yang terbaru dan menghapus duplikat pada kode.
Tidak, tidak ada paket gratis. Pengujian gratis: Anda bisa mengirim 50 kiriman uji per bulan dari localhost sebelum membayar. Untuk go live, Pro mulai $6/bln untuk 500 kiriman, atau Anda bisa bayar sekali untuk 10.000 kiriman seharga $49 atau 50.000 kiriman seharga $149, dengan kredit yang tidak pernah kedaluwarsa.
Mentok di salah satu langkah, atau ingin panduan untuk situasi Anda? Email hello@ikiform.com.