Panduan

Panduan14 menit baca

Buat formulir lead capture yang cepat sampai ke Anda

Formulir lead capture di situs Anda sendiri yang mengirimi Anda email dengan reply-to, memberi tahu chat tim, dan mengisi CRM, agar Anda menjawab selagi lead masih ada.

Preet SutharPendiri, Ikiform

Taruh formulir singkat di halaman Anda sendiri yang mengirim nama, email kantor, dan satu pertanyaan kualifikasi ke backend formulir. Aktifkan email notifikasi agar setiap lead masuk ke inbox Anda dengan Reply mengarah ke lead tersebut, dan kirim webhook bertanda tangan ke chat tim dan CRM Anda. Lalu ukur menit dari submit hingga balasan pertama, karena angka itu lebih menentukan kesepakatan daripada desain formulirnya.

Formulir lead adalah formulir kontak dengan satu tugas: memulai percakapan penjualan. Orang yang mengisinya sedang membandingkan Anda dengan pihak lain, sering di tab lain. Tim yang menjawab pertama, dengan balasan berguna dari orang sungguhan, biasanya mendapat panggilannya. Panduan ini membangun formulir di situs Anda sendiri, mengantarkan setiap lead kepada Anda dalam hitungan detik, dan membiarkan CRM opsional.

Perjalanan sebuah lead

Formulir mengirim ke Ikiform. Ikiform memeriksa kiriman dari spam, menyimpannya, lalu melakukan tiga hal sekaligus: mengirim email ke tim Anda dengan lead sebagai alamat reply-to, mengirim webhook bertanda tangan, dan menampilkan lead di dashboard. Webhook adalah cara lead sampai ke chat tim dan CRM Anda.

Bagaimana lead berpindah dari formulir Anda ke orang yang menjawabnyaformulirleadsitus Anda,stack ataubuilder apa punIkiformcek spam, simpanleademailnotifikasiBalas menuju keleaddashboardcari, filter,eksporwebhookbertandatangansubmission.createdchat danCRMrelay atauotomasikirimrelayBagaimana lead berpindah dari formulir Anda ke orang yang menjawabnyaformulirleadsitus Anda,stack ataubuilder apa punIkiformcek spam,simpan leademailnotifikasiBalas menuju keleaddashboardcari, filter, eksporwebhookbertanda tangansubmission.createdchat dan CRMrelay atau otomasikirimrelay
  1. Pengunjung mengisi formulir lead di situs Anda, dan formulir mengirim ke endpoint Ikiform Anda.
  2. Ikiform memeriksa honeypot, skor spam, dan rate limit, lalu menyimpan lead.
  3. Beberapa detik kemudian setiap penerima notifikasi mendapat email, dan menekan Balas akan menulis ke lead.
  4. Lead muncul di dashboard, tempat Anda bisa mencari, memfilter, dan mengekspornya.
  5. Ikiform mengirim webhook submission.created yang bertanda tangan.
  6. Relay atau alat otomasi mengirim lead ke chat tim dan membuat kontak di CRM Anda.
Email adalah jalur tercepat tanpa penyiapan. Webhook menambahkan tempat-tempat yang sudah dipantau tim Anda.

Empat cara menangkap lead

Setiap penyiapan umum unggul di sesuatu. Pilih berdasarkan di mana Anda ingin lead disimpan dan siapa yang merawat formulirnya.

PendekatanUnggul dalamKekurangan
Formulir bawaan CRM Anda, seperti HubSpot forms atau web form PipedriveLead masuk ke CRM sebagai kontak tanpa perekat apa pun. Pelacakan dan lead scoring ada di satu produk.Formulir di-embed dengan script dan gaya milik CRM. Pindah CRM berarti membangun ulang setiap formulir. Beberapa fitur bergantung pada paket.
Embed form builder, seperti Typeform atau TallyFormulir multi-langkah yang rapi dengan logika dan tanpa kode.Embed yang terlihat seperti builder-nya kecuali Anda membayar untuk mengubah gayanya. Webhook dan batas respons bergantung pada paket.
Route API dan database Anda sendiriLogika apa pun yang Anda inginkan, seperti lead scoring sebelum menyimpan apa pun.Anda membangun sendiri filter spam, rate limit, peringatan email, percobaan ulang, dan ekspor, serta menjaga server tetap berjalan untuk satu formulir.
Form backend, seperti IkiformHTML Anda sendiri di situs apa pun. Filter spam, peringatan email dengan reply-to, webhook bertanda tangan, dan ekspor CSV tanpa server.Tanpa lead scoring, tanpa record CRM, dan tanpa email ke lead. Semua itu datang dari CRM atau alat email Anda, lewat webhook.

Jika seluruh proses penjualan Anda berjalan di dalam satu CRM dan Anda puas dengan formulirnya, gunakan itu. Backend formulir cocok saat formulir harus sesuai dengan situs Anda, saat Anda mungkin berganti CRM, atau saat Anda ingin formulir yang sama sampai ke email, chat, dan CRM tanpa harus memilih salah satu.

Tanya sedikit, kualifikasi sekali

Setiap field yang Anda tambahkan mengurangi jumlah kiriman. Sebagian besar formulir lead butuh empat hal: kepada siapa membalas, di mana mereka bekerja, apa yang mereka inginkan, dan ruang untuk menjelaskan. Satu pertanyaan pilihan tetap melakukan kualifikasi, karena jawabannya datang sebagai salah satu dari beberapa nilai yang dikenal sehingga bisa dipercaya oleh routing Anda. Coba di bawah; preview menjalankan validator Ikiform di browser Anda dan menampilkan apa yang akan disimpan, atau 422 yang akan Anda terima.

Pratinjau

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

Tempel definisi ini di tab Fields formulir dan Ikiform menegakkannya di server. Template formulir kontak punya versi lebih ringan dengan topik alih-alih minat.
FieldAlasanPerhatikan
nameBalasan yang dimulai dengan nama merekaPertahankan ID name. Tautan di field nama adalah sinyal spam yang kuat
emailTujuan ReplyPertahankan ID email. Memberi label Work email (email kantor) mendorong orang memakainya, tetapi tidak mewajibkannya
companyCari tahu tentang mereka sebelum Anda menjawabOpsional. Mewajibkannya mengurangi kiriman dari freelancer
interestRouting dan prioritasselect menyimpan satu nilai yang terdaftar atau menolak kiriman, jadi otomasi bisa bercabang berdasarkan nilainya
messageKonteks untuk balasan pertamaOpsional. Kotak esai yang wajib diisi adalah field tempat orang menyerah

Nomor telepon, ukuran tim, dan anggaran cocok di formulir yang jawabannya mengubah langkah Anda berikutnya. Template permintaan penawaran adalah versi lengkapnya, dengan layanan, anggaran, dan jadwal sebagai pilihan tetap. Jika sales menelepon setiap lead, minta nomor telepon. Jika Anda melakukan routing berdasarkan ukuran tim, tanyakan sebagai select. Selain itu, biarkan untuk balasan pertama.

Formulirnya

Pilih stack Anda. Setiap versi menampilkan pesan server di bawah field yang bersangkutan dan menyimpan apa yang diketik pengunjung, karena kehilangan pesan yang setengah ditulis gara-gara satu salah ketik adalah cara lead menyerah. Status sukses menyebutkan siapa yang membalas dan kapan, sehingga tidak ada yang bertanya-tanya apakah berhasil.

Formulir mengirim dengan cara biasa dan me-redirect ke halaman terima kasih Anda, jadi bekerja sebelum script apa pun termuat. Setiap field punya slot kosong untuk error-nya.

contact-sales.html
<form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="POST" id="lead-form" novalidate>
  <label for="name">Name</label>
  <input id="name" name="name" autocomplete="name" required />
  <p class="error" data-error-for="name" hidden></p>

  <label for="email">Work email</label>
  <input id="email" name="email" type="email" autocomplete="email" required />
  <p class="error" data-error-for="email" hidden></p>

  <label for="company">Company</label>
  <input id="company" name="company" autocomplete="organization" />

  <label for="interest">What can we help with?</label>
  <select id="interest" name="interest" required>
    <option value="pricing">Pricing for my team</option>
    <option value="demo">A live demo</option>
    <option value="custom">A custom plan or contract</option>
    <option value="other">Something else</option>
  </select>

  <label for="message">Anything we should know?</label>
  <textarea id="message" name="message" rows="4"></textarea>
  <p class="error" data-error-for="message" hidden></p>

  <input type="hidden" name="page" value="pricing" />
  <input type="hidden" name="_redirect" value="https://example.com/thanks" />
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
  <button>Talk to sales</button>
</form>

Script menjaga pengunjung tetap di halaman. Script menampilkan error dari server di bawah field masing-masing, dan mengganti formulir dengan baris yang menyebutkan siapa yang membalas dan kapan.

lead-form.js
const form = document.getElementById("lead-form");

function showErrors(fields) {
  form.querySelectorAll("[data-error-for]").forEach((slot) => {
    const message = fields[slot.dataset.errorFor]?.[0];
    slot.textContent = message ?? "";
    slot.hidden = !message;
  });
}

form.addEventListener("submit", async (event) => {
  event.preventDefault();
  const button = form.querySelector("button");
  button.disabled = true;
  button.textContent = "Sending";
  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) {
      const thanks = document.createElement("p");
      thanks.setAttribute("role", "status");
      thanks.textContent = `Thanks, ${form.elements.name.value.trim().split(" ")[0]}. A person on our team will reply to ${form.elements.email.value} within one working day.`;
      form.replaceWith(thanks);
      return;
    }
    showErrors(result.error.fields ?? {});
    if (!result.error.fields) alert(result.error.message);
  } catch {
    alert("Something went wrong. Email sales@example.com and we'll pick it up.");
  }
  button.disabled = false;
  button.textContent = "Talk to sales";
});
  • Ganti frm_xxxxxxxxxxxxxxxx dengan ID formulir Anda dari dashboard.
  • Input tersembunyi _gotcha adalah honeypot. Orang tidak pernah melihatnya; bot yang mengisi setiap input menandai dirinya sendiri sebagai spam.
  • Input tersembunyi page mencatat halaman asal lead: harga, halaman fitur, landing page kampanye. Jika Anda mendefinisikan field, tambahkan page sebagai field teks opsional, atau kiriman ditolak dengan Unknown field.
  • Versi server meneruskan header Origin pengunjung, karena fetch di sisi server tidak mengirimnya dan Ikiform mendeteksi uji localhost gratis dari header itu.
  • Formulir HTML biasa butuh Redirect after submit, atau input _redirect di salah satu Allowed domains Anda, agar mendarat di halaman terima kasih Anda sendiri.
Versi sisi server mengirim dengan secret key, sehingga Ikiform melewati Allowed domains dan pemeriksaan manusianya. Semua kiriman lalu datang dari IP server Anda, dan batas Standard 5 per menit per pengunjung menghitung semua pengunjung Anda sebagai satu. Pilih rate limit Relaxed atau Custom untuk formulir yang Anda kirim lewat server, dan simpan IKIFORM_SECRET_KEY di environment variable khusus server.

Dokumentasi membahas penyiapan setiap framework secara mendalam: Next.js, Astro, SvelteKit, Nuxt, React, Vue, mengirim dari server, dan HTML biasa.

Hubungi lead dalam hitungan menit

Formulir adalah bagian yang mudah. Yang membedakan formulir lead yang menjual dari yang sekadar mengumpulkan adalah waktu antara submit dan balasan dari seseorang. Beginilah jalur itu saat berjalan baik:

Menit-menit antara submit dari lead dan balasan pertama Andakirim0 dtkdisimpandi bawah satudetikemail danchatbeberapa detikkemudianAndamembalasdari inbox AndaantreanReplyMenit-menit antara submit dari lead dan balasan pertama Andakirim0 dtkdisimpandi bawah satu detikemail dan chatbeberapa detik kemudianAnda membalasdari inbox AndaantreanReply
  1. Lead mengirim formulir.
  2. Ikiform menyimpannya dan menjawab browser dalam waktu jauh di bawah satu detik.
  3. Email notifikasi dan webhook keluar dari antrean beberapa detik kemudian.
  4. Seseorang di tim menekan Balas di inbox-nya, atau tautan mailto di chat, dan balasannya menuju ke lead.
Semua hingga email hanya butuh hitungan detik. Panah terakhir adalah yang Anda kendalikan, dan yang memenangkan kesepakatan.

Membalas dari inbox Anda

Setiap email notifikasi mengatur alamat reply-to ke lead. Ikiform mengambilnya dari field _replyto lebih dulu, lalu dari field bernama email, email_address, your_email, reply_to, contact_email. Pertahankan ID field email dan Reply menuju ke lead, bukan ke Ikiform. Subjeknya adalah New submission: ditambah nama formulir, jadi beri nama formulir sesuai fungsinya, seperti Talk to sales, dan filter berdasarkan subjek itu untuk memberi label atau bintang pada lead.

Tambahkan hingga 10 penerima per formulir di pengaturan notifikasi formulir: anggota workspace, atau alamat luar yang mengonfirmasi lewat email terlebih dahulu. Kirim ke orang yang membalas, bukan ke alias bersama yang tidak dimiliki siapa pun: lead yang ada di lima inbox dan tidak diklaim siapa pun menunggu lebih lama daripada lead di satu inbox.

Email notifikasi dibatasi 50 per formulir per jam, atau 10 selama workspace berumur kurang dari 7 hari, lalu satu ringkasan untuk sisa jam itu. Formulir lead normal tidak pernah mendekati angka itu. Jika Anda menjalankan kampanye yang mungkin mencapainya, teruskan juga lead ke chat lewat webhook.

Beri tahu tim di tempat mereka berada

Email berjalan baik saat ada yang memegang inbox-nya. Tim yang hidup di chat menjawab lebih cepat saat lead muncul di sana. Tambahkan webhook ke Slack, Teams, atau Discord mengikuti Slack, Microsoft Teams, atau Discord. Taruh tautan mailto: di pesan agar orang yang mengklaimnya bisa membalas dengan satu klik.

Routing berdasarkan apa yang mereka minta

Karena interest hanya menerima nilai yang terdaftar, relay kecil bisa bercabang berdasarkan nilai itu dengan yakin. Route ini mengirim permintaan demo dan pertanyaan kontrak ke channel masing-masing dan semua yang lain ke channel sales utama:

app/api/leads/route.ts
import { verifyWebhook, WebhookVerificationError } from "@ikiform/sdk/webhooks";

const CHANNELS: Record<string, string | undefined> = {
  demo: process.env.SLACK_DEMO_WEBHOOK,
  custom: process.env.SLACK_ENTERPRISE_WEBHOOK,
};

export async function POST(request: Request) {
  const payload = await request.text();
  let event;
  try {
    event = await verifyWebhook({ payload, headers: request.headers, secret: process.env.IKIFORM_WEBHOOK_SECRET! });
  } catch (error) {
    if (error instanceof WebhookVerificationError) return new Response(error.reason, { status: 400 });
    throw error;
  }
  if (event.type !== "submission.created") return new Response(null, { status: 204 });

  const lead = event.data.fields;
  const interest = String(lead.interest ?? "other");
  const target = CHANNELS[interest] ?? process.env.SLACK_SALES_WEBHOOK!;
  const text = [
    `*${lead.name}* from ${lead.company || "an unknown company"} wants: ${interest}`,
    `Reply: mailto:${lead.email}`,
    lead.message ? `> ${String(lead.message).slice(0, 300)}` : "",
  ]
    .filter(Boolean)
    .join("\n");

  const response = await fetch(target, {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify({ text }),
  });
  if (!response.ok) return new Response(`Slack answered ${response.status}`, { status: 502 });
  return new Response(null, { status: 204 });
}
  • verifyWebhook memeriksa tanda tangan dan timestamp, jadi tidak ada orang lain yang bisa mengirim lead palsu ke channel Anda.
  • 502 saat Slack down membuat Ikiform mencoba ulang pengiriman yang sama, dengan webhook-id yang sama, selama sekitar 3 hari.
  • Ubah label opsi sesuka Anda. Jaga nilainya tetap stabil begitu relay atau otomasi bergantung padanya.

Jauhkan sampah dari pipeline

Formulir lead menarik jenis spam tertentu: orang yang menjual jasa SEO, link building, dan outsourcing development kepada Anda. Spam itu membuang balasan tercepat yang Anda punya, jadi saring sebelum sampai ke siapa pun.

PerlindunganYang dihentikanSetup
HoneypotBot yang mengisi setiap inputInput tersembunyi _gotcha
Skor spamFrasa penawaran penjualan yang dikenal seperti seo services (+2), tautan di nama (+3), tiga tautan atau lebih (+2), pengulangan (+3). Pada skor 5 dianggap spamTidak ada
Rate limitSkrip yang mengirim berulang-ulangAtur formulir ke Strict, 2 per 10 menit per pengunjung. Lead sungguhan jarang mengirim dua kali dalam sepuluh menit
Domain yang diizinkanKiriman dari situs lainTambahkan domain Anda di Allowed domains
Pemeriksaan manusiaBot di browser sungguhanAtur Spam check ke Ikiform. Versi fetch kemudian butuh token dari challenge()

Spam mendapat jawaban sukses yang sama dengan lead asli, tidak mengirim email atau webhook, dan tidak dihitung dalam pemakaian. Itu juga berarti lead yang salah dinilai tidak bersuara. Periksa filter Spam seminggu sekali; menandai satu sebagai bukan spam akan mengirim email dan webhook-nya saat itu. Dokumentasi spam mendaftar setiap sinyal.

Ketahui asal lead

Setiap kiriman sudah mencatat origin dan referrer halaman, yang muncul di webhook sebagai meta.origin dan meta.referrer. Tag kampanye butuh sedikit bantuan, karena pengunjung sering mendarat di satu halaman dan mengirim dari halaman lain. Potongan kode ini menyalin parameter utm_ ke input tersembunyi dan mengingatnya selama sesi:

attribution.html
<input type="hidden" name="utm_source" />
<input type="hidden" name="utm_medium" />
<input type="hidden" name="utm_campaign" />

<script>
  const params = new URLSearchParams(location.search);
  for (const key of ["utm_source", "utm_medium", "utm_campaign"]) {
    let value = params.get(key);
    try {
      if (value) sessionStorage.setItem(key, value);
      else value = sessionStorage.getItem(key);
    } catch {}
    const input = document.querySelector(`#lead-form [name="${key}"]`);
    if (input && value) input.value = value.slice(0, 200);
  }
</script>

Di framework, baca parameter yang sama dari URL di server dan render sebagai input tersembunyi. Jika field didefinisikan, tambahkan setiap ID utm_ sebagai field teks opsional. Nama yang diawali _ tidak pernah disimpan, jadi jangan dipakai untuk data yang ingin Anda simpan.

Apa yang dilihat lead selanjutnya

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 alat email Anda, dipicu oleh webhook. Untuk formulir lead itu sering kali tidak masalah: balasan pribadi yang cepat mengalahkan balasan otomatis. Jika Anda tetap ingin konfirmasi instan, kirim dari CRM atau alat email Anda saat webhook membuat kontak, agar balasan dan unsubscribe dilacak di satu tempat.

Apa pun yang Anda kirim, pesan sukses di halaman adalah janjinya. Sebutkan siapa yang membalas dan kapan, lalu tepati. Formulir yang menyebut satu hari kerja dan menjawab dalam sepuluh menit mendapat kepercayaan; yang menyebut sepuluh menit dan menjawab besok kehilangan kepercayaan.

Lead di CRM Anda

Tidak ada integrasi sekali klik. Setiap alat dijangkau lewat webhook bertanda tangan, langsung atau melalui alat otomasi seperti Zapier atau n8n. Untuk CRM, artinya sebuah relay memetakan body webhook Ikiform yang tetap ke panggilan create-contact milik CRM. Lead ke HubSpot atau Pipedrive membahas keduanya, termasuk duplikat dan percobaan ulang. Sampai Anda butuh CRM, dashboard dan ekspor CSV mingguan sudah menjadi pipeline yang cukup.

Pilih situasi Anda

Penyiapan di atas berlaku untuk lead apa pun. Halaman-halaman ini membahas apa yang berubah untuk jenis lead tertentu, dan untuk memasukkan lead ke CRM.

Pastikan berfungsi

Periksa daftar ini sebelum Anda mengarahkan trafik ke 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 lalu kirim. Anda 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. Subjeknya adalah New submission: ditambah nama formulir, dan Reply membuka pesan ke alamat yang Anda masukkan.
  5. Jika Anda menambahkan webhook, buka endpoint-nya di Webhooks. Pengiriman menampilkan succeeded dengan jawaban dari 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. Ukur waktunya: kirim dari ponsel Anda dan catat berapa lama sampai email dan pesan chat tiba.

Pemecahan masalah

MasalahYang harus dilakukan
Reply menuju alamat Ikiform, bukan leadFormulir tidak punya field yang dikenali Ikiform sebagai email lead. Ganti nama field menjadi email, atau kirim field _replyto dengan alamatnya. Nama yang diterima: email, email_address, your_email, reply_to, contact_email.
422 dengan Unknown field untuk page atau utm_sourceFormulir punya definisi field dan input tersembunyi itu tidak ada di dalamnya. Tambahkan sebagai field teks opsional, atau hapus inputnya.
422 validation_failedKiriman 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 spamDomain halaman tidak ada di Allowed domains formulir. Tambahkan, ditambah localhost untuk uji lokal. Subdomain dari domain yang terdaftar 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 membawa 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 mengirim apa pun. Buka di filter Spam untuk melihat alasannya, dan tandai sebagai bukan spam untuk mengirim email dan webhook-nya.
Penerima tidak mendapat email notifikasiAlamat di luar workspace harus mengonfirmasi lebih dulu, dari email yang dikirim Ikiform kepadanya. Pastikan sudah dikonfirmasi, lalu periksa folder spam penerima.

Pertanyaan

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