Skip to content

Lead capture

Build forms, embed them anywhere, take payments through your own Razorpay account, and send every submission to a webhook — with responses landing beside the analytics that produced them.

Lead capture is a form builder inside Quantalog. You drag fields onto a canvas, publish, and share a link or embed the form on your own site. Responses land in Quantalog next to the analytics for the traffic that produced them — which is the point: a form on a separate service tells you someone filled it in, but not what brought them.

#Building a form

Open Lead capture in the sidebar and choose New form. The palette on the left holds every field type; drag one onto the canvas and click it to open its settings.

  • Basic info — name, address, phone, email, website. These carry their own validation, so an email field rejects a typo without you writing a rule.
  • Choices — dropdown, radio, checkbox, multiple choice, country, ranking.
  • Uploads — files, images, audio and video. Stored for you, not just captured as a filename.
  • Legal and consent — terms boxes, decision boxes, yes/no, and a signature pad.
  • Payment — collects money as part of the submission. See Taking payments below.
  • Page elements — headings, rich text, dividers, and page breaks that split a long form into steps.
  • Repeating groups, calculated fields, a matrix and rating scales — covered on their own in Advanced field types.

Any field can be shown conditionally: under Show this field only if, pick another field and a condition. A hidden field is never required and its answer is never submitted, so a branch nobody took leaves nothing behind.

Rather than build every field yourself, describe the form to Orbit and it drafts one — fields, wording and a starting theme — which you can then revise the same way. See AI building & theming.

#Taking payments

A payment field turns a form into something that collects money. Registration fees, deposits, paid applications, donations — the respondent fills the form, pays, and the response is recorded once the payment clears.

Payments run through Razorpay, using your own Razorpay account. The money goes directly to you; it does not pass through Quantalog, and we take no cut of it beyond your normal plan.

#Connecting Razorpay

In the form builder, open Payments from the icon rail on the right. The panel walks through three steps, and all three are needed before a form can charge anyone.

  • API keys — your Key ID and Key Secret, from Settings → API Keys in the Razorpay dashboard. Test and live keys are stored separately, so trying a form in test mode doesn't mean re-pasting your live credentials afterwards. Test connection checks them against Razorpay there and then rather than leaving you to find out at the first real payment.
  • Webhook — copy the URL shown and add it in Razorpay under Settings → Webhooks, subscribed to payment.captured and payment.failed. Paste the webhook secret back into the panel.
  • Go live — switch from test to live mode and turn payments on.

The connection belongs to the workspace, not to one form. Set it up once and every paid form in that workspace uses it — including the webhook, which is a single URL you register once rather than one per form.

#Setting the price

Click the payment field to choose how much it charges. There are three ways:

  • Fixed — everyone pays the same amount.
  • From a field — the price comes from another answer. Point it at a number field and the respondent's figure is the price; point it at a dropdown or checkbox and you set a price against each option. Where several options can be ticked, the charge is their total.
  • Respondent decides — they name their own amount, within a minimum and an optional maximum. This is the one for donations and pay-what-you-want.

A form takes one payment field. The builder refuses a second, because two would mean one of them silently never charging.

#What the respondent sees

The payment field shows what they will be charged before they submit. Pressing submit opens Razorpay's own payment window — card, UPI, netbanking, whatever your account accepts. When it clears, they see your thank-you page.

Cancelling the payment window costs them nothing and loses nothing: their answers are still there and they can try again. A response is only recorded once the money actually arrives, so an abandoned checkout never becomes a lead you have to sift out later.

#Payments in your responses

Paid responses appear in Entries with a payment column showing the amount and a Paid badge. Clicking it opens the transaction detail — payment ID, order ID, method, and the email and phone Razorpay collected — each copyable, for reconciling against your Razorpay dashboard.

Those contact details are captured even when your form never asked for them, so a one-field donation form still tells you who paid. Payment details are included in CSV and PDF exports, and in the confirmation and notification emails.

#Multi-step forms

A page break splits a form into steps, with a progress indicator and validation before each one advances. Long applications work far better this way than as a single wall of fields.

Payment is taken when the form is finally submitted, whichever step the payment field sits on — so it belongs on the last one. If it isn't, the builder says so rather than letting you publish a form that quotes a price several steps before it charges it.

#Sharing and embedding

A published form has its own link, which anyone can open — no Quantalog account needed. Share gives you the link, a QR code, and embed snippets for plain HTML, React, and Vue. The embed resizes itself to fit its content rather than sitting in a fixed box with its own scrollbar.

Every form records where its submissions came from, so the entries screen can break responses down by referring site alongside the view and completion-rate figures. For triaging what comes in, and for letting a respondent edit what they already sent, see Entries, resume & edit links.

#Notification emails

A form can email the respondent a confirmation and alert you on every submission. Both are written in the builder, and {{Field Label}} in either one is replaced with that field's answer.

On a paid form, nothing is sent until the payment clears — a confirmation for a payment that failed would be worse than no confirmation at all.

#Sending submissions to a webhook

A form can POST every submission to a URL you supply. Open Integrations on the icon rail and connect Webhook from the Automation section, alongside your email and payment apps — it opens the same way any of those do. Unlike those, though, it belongs to the one form you had open when you connected it, not the whole workspace: a different form's submissions go nowhere until you connect a webhook on that one too.

This is deliberately generic rather than a list of named integrations: point it at a Zapier or Make webhook trigger and you can reach Slack, Google Sheets, Airtable, Notion or a CRM without waiting on us to build a connector for each one, or point it at your own server and handle the submission however you like.

  • URL — where the POST goes. Any endpoint that accepts JSON works, including a Zapier "Catch Hook" trigger.
  • Signing secret — optional, but worth setting if the endpoint is your own server rather than Zapier or Make. Every delivery carries an X-Da-Forms-Signature header: an HMAC-SHA256 of the request body, keyed with this secret. Recompute it on receipt and compare before trusting the payload — otherwise anyone who finds the URL can post to it.

Each delivery is a single POST shaped like this:

POST body
{
  "formId": "…",
  "submissionId": "…",
  "submittedAt": "2026-09-12T10:15:00.000Z",
  "data": { "Name": "Ada Lovelace", "Email": "ada@example.com" },
  "payment": { "amount": 50000, "currency": "INR", "status": "paid" }
}

data keys are field labels, matching the CSV export and the notification emails. payment is present only on a paid form, and only once the payment has actually cleared — the same rule the notification emails and the Entries table follow.

#Drafts and abandoned responses

A respondent's answers are saved in their own browser as they type, so a stray refresh or a closed tab doesn't cost them a half-finished application. The draft never leaves their device and is cleared the moment they submit. Turning on collect partial responses saves the same draft to your workspace too, which is what lets a respondent email themselves a link back to it — see Entries, resume & edit links.

Files uploaded to a form that was never submitted are swept away automatically, as are checkouts that were opened and abandoned. Neither shows up in your responses.