Destinations
| Destination | What arrives | Setup |
|---|---|---|
| Your CRM | A contact, the company when the e-mail has a business domain, and a note naming the conversion | HubSpot, Pipedrive or Salesforce connected under CRM |
| Slack | A message with the lead’s fields, the conversion, the campaign and the source | A Slack incoming webhook URL, stored encrypted |
| Google Sheets | One row per lead, lined up by column name | Sign in with Google (drive.file only); Demander creates the spreadsheet |
| Webhook | Signed JSON with the lead, the conversion, the campaign and the source | Any https URL; a signing secret shown once |
| Your form endpoint | A server-side POST, form-encoded or JSON, with an optional auth header | The URL your current forms post to, plus a field mapping |
| A notification with the lead’s fields and a link to the Conversions page | Up to 10 recipients |
Where leads come from
-
01
Form and booking tools
Typeform, Tally, Jotform, Calendly, Cal.com and any tool that can send a signed webhook. Cancelled bookings cancel the conversion they name.
-
02
Your own server
The server events API, with the lead fields your backend already has and an event id that makes retries harmless.
-
03
The Demander-hosted form
It asks only for the fields you list, with a honeypot, rate limits and the ad’s UTM parameters in hidden fields.
-
04
Native lead forms
Meta Instant Forms and LinkedIn Lead Gen Forms that Demander created at publish, read every 15 minutes with the ad and campaign behind each lead.
How a delivery runs
-
Filtered
A route forwards every conversion that has lead details, or only the conversions you pick.
-
Minimised
Only the fields the person gave at that conversion are sent. A field mapping renames them to your names and can narrow them further, up to 40 mapped fields.
-
Retried
A failed delivery is retried after 1, 5 and 30 minutes, then 2 and 12 hours, 6 attempts in all. A permanent 4xx error stops it at once.
-
Logged without values
The delivery log keeps the status, attempts, response codes and field names, never the values.
-
Live only
Outside live mode nothing is forwarded automatically. “Send test” always sends, so you can check a route before you go live.
What a webhook receives
{
"type": "lead.created",
"id": "4f1c9a2e",
"delivery": "b7d03e51",
"occurred_at": "2026-10-02T09:14:05.000Z",
"test": false,
"conversion": { "name": "Demo booked", "key": "demo_booked", "kind": "booking", "stage": "sql", "value": 0, "currency": "EUR" },
"campaign": { "id": "c2a8", "name": "CFO, LinkedIn, conversion", "platform": "linkedin_ads" },
"source": "lead_form:linkedin",
"lead": { "email": "jana@acme.cz", "full_name": "Jana Novak", "company": "Acme s.r.o.", "job_title": "CFO", "conversion": "Demo booked" }
}
Shortened example. Headers: X-Demander-Signature (t=<unix time>,v1=<hex HMAC-SHA256 of "t.body">) and X-Demander-Delivery, a unique id per delivery for dropping duplicates.
Google Sheets details
-
01
Only its own spreadsheets
With Google’s drive.file scope Demander reaches the spreadsheets it created for your leads and nothing else in your Drive.
-
02
Columns by name
Rows line up with the header by column name, so you can reorder columns or add your own. A new field gets a new column at the end.
-
03
Text stays text
Values are written raw, so something a lead typed, such as a formula, is stored as text and never runs.
-
04
Clear failures
If the spreadsheet is deleted or access is removed, the delivery stops with the reason in the log.
Questions people ask
Can one lead go to several places at once?
Yes. Routes are independent, so one lead can create a CRM contact, post to Slack and add a row to a Google Sheet.
How do we verify the webhook?
Recompute the HMAC-SHA256 of the timestamp, a full stop and the raw body with your signing secret, compare it in constant time and reject old timestamps. Use the delivery id to drop duplicates when a retry arrives.
What happens if our endpoint is down?
Demander retries after 1, 5 and 30 minutes, 2 hours and 12 hours. After the sixth failed attempt the delivery stops, and the log shows the last response code.
Does a lead need a CRM to be useful?
No. Any route works on its own, and the lead still counts as a conversion in Demander’s attribution. When the company is known, its account also moves to the funnel stage that conversion stands for.