Panduan

Panduan16 menit baca

Cara membuat daftar tunggu untuk SaaS baru

Bangun daftar tunggu pra-peluncuran di landing page Anda sendiri: formulir, perlindungan spam, duplikat, email konfirmasi, dan ekspor rapi di hari peluncuran.

Preet SutharPendiri, Ikiform

Pasang formulir HTML biasa di landing page Anda yang mengirim email pengunjung ke form backend, jadi Anda tidak perlu menjalankan server sebelum peluncuran. Teruskan setiap pendaftaran lewat webhook ke tool email yang akan Anda pakai saat peluncuran, dan biarkan tool itu yang mengirim konfirmasi. Di hari peluncuran, ekspor daftarnya sebagai CSV, hapus duplikat berdasarkan email, lalu kirim satu email peluncuran.

Daftar tunggu adalah cara termurah untuk menguji ide SaaS. Jika orang asing mau meninggalkan email untuk sesuatu yang belum ada, Anda punya alasan untuk membangunnya, sekaligus daftar orang yang perlu dikabari saat produknya rilis. Panduan ini membangun daftar tunggu di landing page Anda sendiri, tanpa database atau server, dan menyiapkannya untuk hari peluncuran.

Cara kerja daftar tunggu

Setiap daftar tunggu punya tiga bagian yang sama: formulir di halaman Anda, tempat yang menyimpan setiap pendaftaran, dan tool yang Anda pakai untuk mengirim email ke daftar itu. Di sini, formulir mengirim ke Ikiform. Ikiform memeriksa kiriman dari spam, menyimpannya, mengirimi Anda email, dan mengirim webhook bertanda tangan. Relay kecil atau tool otomatisasi lalu meneruskan alamatnya ke tool email Anda.

Bagaimana pendaftaran daftar tunggu berpindah dari landing page ke tool email Andalanding pageformulir Anda,situs ataubuilder apa punIkiformcek spam, simpanpendaftarandashboardcari, filter,ekspor CSVemailnotifikasike Anda, bukanpendaftarwebhookbertandatangansubmission.createdtool emailkonfirmasi dankirim saatriliskirimanrelayBagaimana pendaftaran daftar tunggu berpindah dari landing page ke tool email Andalandingpageformulir Anda,situs ataubuilder apa punIkiformcek spam,simpanpendaftarandashboardcari, filter, eksporCSVemailnotifikasike Anda, bukanpendaftarwebhookbertanda tangansubmission.createdtool emailkonfirmasi dankirim saat riliskirimanrelay
  1. Pengunjung memasukkan emailnya di landing page Anda, dan formulir mengirimnya ke endpoint Ikiform Anda.
  2. Ikiform memeriksa honeypot, skor spam, dan rate limit, lalu menyimpan pendaftarannya.
  3. Pendaftaran muncul di dashboard, tempat Anda bisa mencarinya dan mengekspor daftarnya sebagai CSV.
  4. Ikiform mengirim email ke Anda dan tim Anda. Ikiform tidak pernah mengirim email ke orang yang mendaftar.
  5. Ikiform mengirim webhook submission.created bertanda tangan.
  6. Relay atau tool otomatisasi menambahkan alamatnya ke tool email Anda, yang mengirim konfirmasi dan, nanti, email peluncuran.
Tool email tidak wajib di hari pertama. Anda bisa mengumpulkan pendaftaran selama berminggu-minggu lalu mengimpor CSV nanti; webhook menjaga keduanya tetap sinkron sejak awal.

Empat cara menjalankan daftar tunggu

Tidak ada satu tool yang paling benar. Tabel ini membandingkan empat setup umum berdasarkan keunggulannya dan biaya yang harus Anda tanggung nanti.

PendekatanUnggul diKompromi
SaaS daftar tunggu, seperti LaunchList atau WaitlisterLink referral, leaderboard, dan posisi antrean, langsung siap pakai. Halaman hosted jika Anda belum punya situs.Daftar Anda tinggal di produk lain. Widget-nya terlihat seperti milik mereka kecuali Anda membayar atau mengubah gayanya. Harganya biasanya naik seiring jumlah pendaftar.
Embed form builder, seperti Typeform atau TallyAlur satu pertanyaan yang rapi, tanpa kode sama sekali.Iframe yang tidak serasi dengan halaman Anda dan memuat skripnya sendiri. Branding, batas respons, dan webhook bergantung pada paketnya.
Database dan API route Anda sendiriKendali penuh atas data dan logika apa pun, seperti kode referral.Anda membangun sendiri perlindungan spam, rate limit, notifikasi, dan ekspor, dan Anda butuh server meskipun landing page-nya statis.
Form backend, seperti IkiformHTML Anda sendiri di situs apa pun. Penyaringan spam, penyimpanan, notifikasi email, webhook bertanda tangan, dan ekspor CSV tanpa server.Tanpa leaderboard referral dan tanpa email ke orang yang mendaftar. Keduanya datang dari tool email Anda.

Pilih SaaS daftar tunggu jika mekanisme referral adalah inti rencana Anda. Pilih form backend jika Anda ingin formulirnya serasi dengan bagian lain situs Anda, daftarnya tetap mudah dipindahkan, dan email dikirim dari tool yang memang akan Anda pakai setelah peluncuran. Sisa panduan ini memakai form backend.

Formulirnya

Untuk awal, minta email saja. Setiap field tambahan mengurangi pendaftaran, dan Anda bisa bertanya lagi nanti, lewat email, kepada orang yang sudah bilang ya. Pilih stack Anda di bawah; pilihan ini berlaku untuk setiap contoh kode di panduan-panduan ini.

Tempel formulir di tempat pendaftaran harus muncul. Formulir mengirim dengan cara biasa lalu redirect, jadi tetap berfungsi tanpa JavaScript sama sekali.

index.html
<form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
  <label for="email">Email</label>
  <input id="email" name="email" type="email" placeholder="you@company.com" autocomplete="email" required />
  <input type="hidden" name="ref" value="homepage" />
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
  <button>Join the waitlist</button>
</form>

Agar pengunjung tetap di halaman, tambahkan skrip ini setelah formulir. Skrip mengirim dengan fetch, mengganti formulir dengan kalimat terima kasih, dan menampilkan error field dari server.

waitlist.js
const form = document.querySelector('form[action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx"]');
const status = document.createElement("p");
status.setAttribute("role", "alert");
form.append(status);

const labels = {
  email: "Email",
};

form.addEventListener("submit", async (event) => {
  event.preventDefault();
  const button = form.querySelector("button");
  button.disabled = true;
  status.textContent = "";
  try {
    const response = await fetch(form.action, {
      method: "POST",
      headers: { Accept: "application/json" },
      body: new FormData(form),
    });
    const result = await response.json();
    if (result.ok) {
      form.replaceWith("You're on the list. We'll email you at launch.");
      return;
    }
    const fields = Object.entries(result.error.fields ?? {});
    status.textContent = fields.length
      ? fields.map(([id, messages]) => `${labels[id] ?? id}: ${messages[0]}`).join(" ")
      : result.error.message;
  } catch {
    status.textContent = "Couldn't reach the server. Try again.";
  }
  button.disabled = false;
});

Ingin lebih jauh dengan HTML? Baca Cara menambahkan formulir daftar tunggu dengan HTML biasa ke landing page apa pun.

  • Endpoint adalah URL formulir Anda. Ganti frm_xxxxxxxxxxxxxxxx dengan ID dari dashboard.
  • name="email" adalah ID field. Biarkan tetap email: Ikiform memakainya sebagai alamat reply-to di email notifikasi, dan mencocokkannya dengan daftar domain email sekali pakai.
  • Input tersembunyi _gotcha adalah honeypot. Orang tidak pernah melihatnya. Bot yang mengisi setiap input menandai dirinya sendiri sebagai spam, dan versi server meneruskannya tanpa diubah.
  • Input tersembunyi ref mencatat dari mana pendaftaran berasal. Ubah nilainya per halaman atau kampanye.
  • Jika ada definisi field di tab Fields, input yang tidak tercantum di sana ditolak dengan 422 dan error unknown_field, jadi cantumkan ref selain email, seperti di bawah.
  • Kiriman HTML biasa me-redirect browser setelah berhasil. Atur Redirect after submit di pengaturan formulir ke halaman terima kasih Anda sendiri, atau Ikiform akan menampilkan halaman hosted miliknya.
Field
{
  "version": 1,
  "title": "Waitlist",
  "fields": [
    { "id": "email", "type": "email", "label": "Email", "required": true, "placeholder": "you@company.com" },
    { "id": "ref", "type": "text", "label": "Source", "validation": { "max_length": 40 } }
  ]
}
Versi sisi server mengirim dengan secret key, jadi Ikiform melewati Allowed domains dan pemeriksaan manusianya. Setiap kiriman lalu datang dari IP server Anda, dan batas Standard 5 per menit per pengunjung menghitung semua pengunjung Anda sekaligus. Pilih rate limit Relaxed atau Custom untuk formulir yang Anda kirim lewat server, dan simpan IKIFORM_SECRET_KEY di environment variable khusus server.

Versi server meneruskan header Origin dari browser, karena Ikiform mengenali tes localhost gratis dari header itu, sedangkan fetch milik server tidak mengirimnya.

Panduan framework di dokumentasi membahas lebih dalam: Next.js, Astro, SvelteKit, Nuxt, React, Vue, dan HTML biasa. SDK membungkus request browser sebagai submit(), dan template formulir daftar tunggu menghasilkan versi empat field.

Field yang layak ditanyakan

Email adalah satu-satunya field yang Anda butuhkan. Jika ingin memilah daftar sebelum peluncuran, tambahkan paling banyak dua lagi. Coba versi empat field di bawah: versi ini menjalankan validator Ikiform di browser Anda dan menunjukkan apa yang akan disimpan, atau 422 yang akan Anda terima.

Pratinjau

Menjalankan validator Ikiform di browser Anda. Tidak ada yang dikirim.

Field dari template daftar tunggu ditambah ref, yang diisi halaman Anda lewat input tersembunyi, bukan kotak yang terlihat. Tempel di tab Fields formulir, dan Ikiform menerapkannya di server.
FieldAlasan menanyakannyaPerlu diingat
emailDaftarnya itu sendiriWajib. Gunakan type="email" agar ponsel menampilkan keyboard yang tepat
nameEmail peluncuran yang personalOpsional. Nama depan sudah cukup
roleUndang founder lebih dulu, atau tulis email yang berbeda untuk engineerselect menjaga jawaban tetap rapi untuk difilter
sourceKetahui channel mana yang berhasil sebelum Anda mengeluarkan uang untuknyaTeks bebas memang jujur tapi berantakan. Input tersembunyi ref lebih rapi, lihat di bawah
refHitung pendaftaran per halaman atau kampanye tanpa bertanyaInput tersembunyi. text opsional dengan max_length 40

Untuk melacak asal pendaftaran tanpa bertanya, tambahkan input tersembunyi per halaman atau per kampanye. Nama yang diawali _ adalah instruksi untuk Ikiform dan tidak pernah disimpan, jadi pakai nama biasa seperti ref:

Input tersembunyi
<input type="hidden" name="ref" value="homepage" />
<input type="hidden" name="_redirect" value="https://example.com/thanks" />

Setiap kiriman juga mencatat origin dan referrer halamannya, jadi Anda bisa melihat dari halaman mana sebuah pendaftaran datang meski tanpa ref. Input _redirect mengarahkan browser ke halaman terima kasih Anda sendiri; ini hanya berfungsi untuk URL https: di salah satu Allowed domains formulir.

Jika Anda akan mengirim apa pun selain kabar peluncuran, misalnya newsletter, tambahkan checkbox persetujuan wajib dengan janji yang persis sebagai labelnya. Ikiform menyimpan true bersama timestamp kiriman, yang mencatat kapan orang itu setuju. Template newsletter punya checkbox ini.

Jauhkan bot dari daftar

Formulir publik dengan field email akan didatangi bot dalam hitungan hari. Pendaftaran palsu menggelembungkan angka Anda dan, lebih buruk lagi, email peluncuran Anda mendarat di spam trap yang merusak reputasi pengirim Anda. Ikiform memasang empat lapis pertahanan; dua yang pertama aktif tanpa setup.

PertahananYang dihentikanSetup
HoneypotBot sederhana yang mengisi setiap inputInput tersembunyi _gotcha di formulir di atas
Penilaian spamAlamat sekali pakai (+2), pengulangan identik (+3), link, dan frasa spam yang dikenal. Pada skor 5, pendaftaran disimpan sebagai spamTidak ada
Rate limitSkrip yang mengirim berulang-ulangAktif secara default: Standard, 5 per menit per pengunjung, dan 300 per menit untuk seluruh formulir
Pemeriksaan manusiaBot yang menjalankan browser sungguhanAtur Spam check ke Ikiform. Ini menjalankan Cloudflare Turnstile tanpa key yang perlu dikelola

Spam disimpan dengan jawaban sukses biasa, jadi bot tidak belajar apa-apa. Spam tidak memicu email atau webhook dan tidak dihitung dalam pemakaian Anda. Periksa filter Spam di dashboard seminggu sekali di bulan pertama; jika pendaftaran asli masuk ke sana, tandai sebagai bukan spam, dan webhook-nya terkirim saat itu.

Tambahkan juga domain Anda di Allowed domains. Kiriman dari situs lain lalu ditandai sebagai spam, atau ditolak dengan 403 origin_not_allowed jika Anda memilih Reject. Dengan pemeriksaan manusia aktif, formulir HTML tidak perlu diubah. Versi fetch harus meminta token lebih dulu dengan challenge() dari @ikiform/sdk; dokumentasi spam menunjukkan keempat barisnya.

Kiriman saat peluncuran datang bergelombang. Jika Anda membagikan halaman di tempat besar, batas seluruh formulir 300 per menit bisa tercapai sebelum batas per pengunjung mana pun. Naikkan dengan rate limit Custom sehari sebelumnya. Satu kantor atau konferensi berbagi satu IP, jadi Relaxed, 20 per menit per pengunjung, cocok untuk hari-hari itu.

Orang yang sama, dua kali

Orang mendaftar lagi dari tab lain, perangkat kedua, atau seminggu kemudian karena lupa. Ikiform menyimpan setiap kiriman yang diterima dan tidak menggabungkan atau menolak pengulangan berdasarkan email. Inilah yang terjadi pada pengulangan:

KasusHasil
Email sama, field berbeda, atau lebih dari 24 jam kemudianKiriman kedua yang normal
Field yang sama lagi dalam 24 jam+3 ke skor spam, di bawah 5, jadi tetap kiriman kedua yang normal
Pengulangan identik dari domain email sekali pakai+3 dan +2, mencapai 5: disimpan sebagai spam

Jadi, bersiaplah menemukan beberapa duplikat, dan hapus di tempat daftar itu akhirnya berada. Ada tiga tempat yang bisa dipakai, dari yang paling ringan hingga paling repot:

  1. Di tool email. Kebanyakan tool email mengenali kontak dari alamatnya, jadi menambahkan alamat yang sama dua kali hanya memperbarui satu kontak, bukan membuat dua.
  2. Saat ekspor. Hapus email duplikat dari CSV sebelum Anda mengimpornya ke mana pun. Ada dua cara di bawah.
  3. Di relay Anda. Ubah alamat menjadi huruf kecil dan hapus spasinya, lalu masukkan dengan unique constraint atau upsert, sehingga pengulangan tidak berefek apa-apa.

Ingin mencegah klik ganda membuat dua baris sama sekali? Kirim idempotency key per pemuatan halaman dengan versi fetch. Ini mencegah pengulangan tak sengaja; ini tidak mencegah orang yang sengaja mendaftar dua kali.

Mengonfirmasi pendaftaran

Ikiform tidak mengirim email ke orang yang mengisi formulir. Email notifikasi hanya dikirim ke Anda dan tim Anda, jadi tidak ada autoresponder, email konfirmasi, atau double opt-in. Kirim semua itu dari tool email Anda, dipicu oleh webhook. Ini disengaja: tool yang mengirim email peluncuran sebaiknya juga mengirim konfirmasi, agar unsubscribe dan bounce tercatat di satu tempat.

Dua cara menghubungkan Ikiform ke tool itu:

  • Tanpa kode. Tambahkan endpoint webhook yang mengarah ke tool otomatisasi, lalu gunakan action-nya untuk tool email Anda. Lihat Zapier, Make, atau n8n.
  • Relay kecil. Route handler di host Node mana pun memverifikasi tanda tangan dan memanggil API tool email Anda. Contoh di bawah adalah route Next.js; kode yang sama berjalan di Cloudflare Worker.
app/api/waitlist/route.ts
import { verifyWebhook, WebhookVerificationError } from "@ikiform/sdk/webhooks";

export async function POST(request: Request) {
  const payload = await request.text();
  try {
    const event = await verifyWebhook({
      payload,
      headers: request.headers,
      secret: process.env.IKIFORM_WEBHOOK_SECRET!,
    });
    if (event.type !== "submission.created") return new Response(null, { status: 204 });
    const email = String(event.data.fields.email ?? "").trim().toLowerCase();
    if (!email) return new Response(null, { status: 204 });
    const response = await fetch(process.env.LIST_API_URL!, {
      method: "POST",
      headers: {
        authorization: `Bearer ${process.env.LIST_API_KEY}`,
        "content-type": "application/json",
      },
      body: JSON.stringify({
        email,
        name: event.data.fields.name ?? null,
        tags: ["waitlist", String(event.data.fields.role ?? "unknown")],
      }),
    });
    if (response.status === 409) return new Response(null, { status: 204 });
    if (!response.ok) return new Response(`List answered ${response.status}`, { status: 502 });
    return new Response(null, { status: 204 });
  } catch (error) {
    if (error instanceof WebhookVerificationError) return new Response(error.reason, { status: 400 });
    throw error;
  }
}
  • verifyWebhook memeriksa tanda tangan dan timestamp, jadi tidak ada orang lain yang bisa menambahkan alamat lewat URL ini.
  • Ganti fetch dengan panggilan add-contact dari tool email Anda. Kebanyakan menerima email dan list atau tag, lalu mengirim email konfirmasinya sendiri jika double opt-in aktif di tool tersebut.
  • Menjawab 204 memberi tahu Ikiform bahwa pengiriman berhasil. 502 membuat Ikiform mencoba ulang, dengan webhook-id yang sama, jadi gangguan singkat di tool email Anda tidak menghilangkan pendaftaran.

Tambahkan endpoint di Webhooks pada dashboard dan salin secret whsec_ miliknya ke IKIFORM_WEBHOOK_SECRET. Satu workspace bisa punya 3 endpoint. Dokumentasi webhook membahas percobaan ulang dan payload, dan server Anda sendiri punya versi yang menyimpan setiap pengiriman sekali saja.

Hari peluncuran

Daftar tunggu dari pendaftaran pertama hingga hari peluncuranhalamantayangformulir kirimke Ikiformsetiapminggubagikan, bacapendaftaranseminggusebelumekspor, dedupe,segmenharipeluncuransatu email kedaftarmingguDaftar tunggu dari pendaftaran pertama hingga hari peluncuranhalaman tayangformulir kirim ke Ikiformsetiap minggubagikan, baca pendaftaranseminggu sebelumekspor, dedupe, segmenhari peluncuransatu email ke daftarminggu
  1. Halaman tayang dengan formulir yang mengirim ke Ikiform.
  2. Setiap minggu, bagikan halamannya dan baca pendaftaran baru beserta jawabannya.
  3. Seminggu sebelum peluncuran, ekspor daftar sebagai CSV, hapus duplikat, dan bagi berdasarkan peran.
  4. Di hari peluncuran, kirim satu email ke daftar dari tool email Anda.
Sebagian besar pekerjaan ada di ekspor seminggu sebelumnya. Email peluncurannya sendiri singkat.

Ekspor daftar

Buka Submissions di dashboard, pilih formulir daftar tunggu, atur status ke Received dan rentang tanggal ke All time, lalu pilih Export CSV. Kolomnya adalah id, created_at, form, dan status, lalu satu kolom per field. File-nya UTF-8 dengan byte order mark, jadi aksen tetap utuh di Excel. Satu ekspor memuat hingga 100.000 baris; lebih dari itu, telusuri halaman demi halaman lewat REST API.

Untuk menghapus duplikat di Google Sheets, impor CSV-nya dan gunakan rumus ini di sheet kosong, dengan email di kolom E:

Google Sheets
=SORTN(A2:F, 9^9, 2, LOWER(TRIM(E2:E)), TRUE)

Rumus ini menyisakan satu baris per alamat, mengabaikan huruf besar-kecil dan spasi, diurutkan berdasarkan email. Atau jalankan ini dengan Node di folder yang berisi hasil ekspor. Skrip ini menyimpan baris pertama untuk setiap alamat dan mengasumsikan tidak ada koma di dalam nilai, yang berlaku untuk formulir yang hanya berisi email:

dedupe.mjs
import { readFileSync, writeFileSync } from "node:fs";

const [header = "", ...rows] = readFileSync("submissions.csv", "utf8").replace(/^\uFEFF/, "").trim().split(/\r?\n/);
const columns = header.split(",");
const emailAt = columns.indexOf("email");
const seen = new Set();
const unique = rows.filter((row) => {
  const email = row.split(",")[emailAt]?.trim().toLowerCase();
  if (!email || seen.has(email)) return false;
  seen.add(email);
  return true;
});

writeFileSync("waitlist.csv", [header, ...unique].join("\n"));
console.log(`${rows.length} rows, ${unique.length} unique emails`);

Kirim email peluncuran

Kirim dari tool email Anda, bukan dari inbox pribadi. Inbox pribadi yang mengirim ke ratusan alamat sekaligus terlihat seperti spam bagi penyedia email, dan Anda akan butuh penanganan unsubscribe begitu email terkirim. Buat singkat:

Email peluncuran
Subject: Acme is live. You're in.

Hi Ada,

You joined the Acme waitlist in the spring. Today it's open.

Sign in here: https://acme.example/start

You get the first 30 days free because you waited.
Reply to this email if anything breaks. It comes to me.

Ada, founder of Acme
  • Sebutkan apa yang sudah tayang dan beri link langsung ke halaman sign-up atau sign-in.
  • Beri hadiah untuk yang sudah menunggu, seperti masa trial lebih panjang atau diskon, dan sebutkan sekali saja.
  • Kirim atas nama seseorang. Balasan adalah masukan awal terbaik yang akan Anda dapat.
  • Kirim kalimat pembuka yang berbeda untuk founder dan engineer jika Anda mengumpulkan role. Itulah alasan mengumpulkannya.
Jika Anda mengumpulkan selama berbulan-bulan tanpa mengonfirmasi alamat, kirim dulu ke sebagian kecil dan pantau bounce rate-nya. Daftar yang penuh salah ketik dan alamat mati merusak domain yang akan Anda pakai untuk mengirim email produk.

Pilih situasi Anda

Langkah di atas berlaku di mana saja. Halaman-halaman ini membahas apa yang berubah untuk peluncuran atau pembuat situs tertentu.

Pastikan berfungsi

Jalankan langkah ini sebelum Anda membagikan halaman. Ikiform tidak punya paket gratis. Pengujian gratis: workspace tanpa paket menerima 50 kiriman uji per bulan dari localhost. Untuk go live, pilih Pro mulai $6/bln untuk 500 kiriman, atau bayar sekali: 10.000 kiriman seharga $49 atau 50.000 kiriman seharga $149, dengan kredit yang tidak pernah kedaluwarsa. Lihat harga.

  1. Di Allowed domains formulir, tambahkan domain situs Anda, ditambah localhost selama pengembangan. Biarkan kosong untuk menerima kiriman dari mana saja.
  2. Isi formulir di halaman Anda dan kirim. Anda akan mendarat di halaman terima kasih Anda, atau halaman hosted milik Ikiform.
  3. Buka Submissions di dashboard. Kiriman baru ada di sana dengan setiap field yang Anda kirim.
  4. Periksa inbox setiap penerima notifikasi. Masing-masing mendapat email berisi field-field tersebut, dan Reply ditujukan ke pengirim jika formulir punya field email.
  5. Jika Anda menambahkan webhook, buka endpoint-nya di Webhooks. Pengirimannya menampilkan succeeded beserta jawaban server Anda.
  6. Kirim dengan honeypot terisi, _gotcha=bot. Kiriman tetap mendapat jawaban sukses, tetapi disimpan sebagai spam dan tidak memicu email atau webhook.
  7. Tidak ada yang masuk? Ubah filter status di dashboard ke Spam. Spam mendapat jawaban sukses yang sama dengan kiriman asli.
  8. Daftar dua kali dengan alamat yang sama dan pastikan tool email Anda tetap menampilkan satu kontak.

Pemecahan masalah

MasalahYang harus dilakukan
403 origin_not_allowed, atau setiap kiriman masuk ke spamDomain halaman tidak ada di Allowed domains formulir. Tambahkan, ditambah localhost untuk tes lokal. Subdomain dari domain yang tercantum diizinkan.
429 rate_limitedSatu pengunjung mengirim melebihi rate limit formulir. Standard mengizinkan 5 per menit per pengunjung. Tunggu sesuai Retry-After, atau pilih Relaxed atau Custom untuk formulir yang mengirim dari satu IP bersama.
403 challenge_requiredSpam check formulir diatur ke Ikiform dan kiriman fetch tidak menyertakan token. Ambil token dengan challenge(formId) dari @ikiform/sdk sebelum setiap pengiriman, atau matikan pemeriksaannya.
Kiriman ada di dashboard tetapi tidak ada email atau webhook yang datangKiriman itu disimpan sebagai spam. Spam tidak memicu apa pun. Buka di filter Spam untuk melihat alasannya, dan tandai sebagai bukan spam untuk mengirim email dan webhook-nya.
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.
Email yang sama muncul dua kaliMemang begitu. Ikiform tidak menghapus duplikat berdasarkan email. Hapus pengulangan saat ekspor, atau lakukan upsert berdasarkan email di relay atau tool email Anda.
Pendaftaran masuk ke Ikiform tetapi tidak ke tool emailBuka endpoint di Webhooks dan baca log pengirimannya. 400 berarti secret-nya salah; 502 dengan status dari tool Anda berarti tool itu menolak kontaknya.
402 test_limit_reachedWorkspace belum punya paket dan sudah memakai 50 tes localhost gratisnya bulan ini. Pilih paket, atau gunakan Send test di dashboard.

Pertanyaan

Mentok di salah satu langkah, atau ingin panduan untuk situasi Anda? Email hello@ikiform.com.