Send your calculator leads to HubSpot, Mailchimp or Google Sheets
When a visitor fills in the lead form on your calculator, Calcupedia can pass it straight to the tool you already use. You connect it once with a free or low-cost automation tool (Make or Zapier), and every new lead shows up there within seconds. It takes about 5 minutes and no code.
1Get a webhook URL from Make or Zapier
A webhook URL is an address that listens for new leads. Pick one tool:
Make
- Create a new scenario.
- Add the Webhooks module and choose Custom webhook.
- Click Add, give it a name like “Calcupedia leads”, and save.
- Copy the URL it shows. Make now waits for a first lead.
Zapier
- Create a new Zap.
- For the trigger, choose Webhooks by Zapier, then Catch Hook.
- Click Continue until you see the webhook URL.
- Copy it.
2Paste it into your lead form and send a test
- In your Calcupedia dashboard, open Lead Forms and edit the form your embed uses.
- Paste the URL into Send leads to your CRM (webhook).
- Click Send test lead. You should see “Test lead sent”.
- Click Save changes.
In Make, the webhook module now knows what a lead looks like. In Zapier, click Test trigger and pick the test lead.
3Choose where the lead goes
Add a second step after the webhook and match the fields: put email into the email field, name into the name field, and so on.
| Send to | In Make, add | In Zapier, add |
|---|---|---|
| HubSpot | HubSpot CRM → Create or Update a Contact | HubSpot → Create or Update Contact |
| Mailchimp | Mailchimp → Add/Update a Subscriber | Mailchimp → Add/Update Subscriber |
| Google Sheets | Google Sheets → Add a Row | Google Sheets → Create Spreadsheet Row |
Any other tool listed in Make or Zapier works the same way: Pipedrive, Salesforce, ActiveCampaign, Brevo, Airtable, Notion, Slack.
4Switch it on
In Make, turn the scenario on and set it to run immediately. In Zapier, click Publish. From now on, every new lead arrives on its own.
What each lead contains
Each lead arrives as JSON with these fields:
| event | Always "lead.created" |
| test | true for test leads from the Send test lead button, false for real ones |
| The visitor's email (always there) | |
| name, phone, company | Filled in when your form asks for them, otherwise empty |
| inputs | What the visitor typed into the calculator, e.g. loan_amount |
| outputs | The results they saw, e.g. monthly_payment |
| source_url | The page on your site where they filled in the form |
| lead_form_id, embed_id | Which of your lead forms and embeds it came from |
| submitted_at | When it happened (ISO 8601, UTC) |
For developers: check the signature
Sending leads to your own server? After you save a form with a webhook URL, it gets a signing secret (it starts with whsec_). Every lead carries a Calcupedia-Signature header like t=1761638400,v1=5f2c…. v1 is the HMAC-SHA256 of <t>.<raw body> with your secret, written in hex. Reject leads where it doesn't match or t is more than 5 minutes old.
import { createHmac, timingSafeEqual } from "node:crypto";
// header = request.headers["calcupedia-signature"], rawBody = the body exactly as received
function isFromCalcupedia(header, rawBody, secret) {
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
const expected = createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex");
const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < 300; // within 5 minutes
const given = Buffer.from(parts.v1 ?? "");
return fresh && given.length === expected.length && timingSafeEqual(Buffer.from(expected), given);
}We wait up to 5 seconds for an answer and send each lead once. Answer with any 2xx status. Leads are always saved in your dashboard too, so nothing is lost if your server is down.
Questions
Lead capture and webhooks come with the Creator and Agency plans. Every lead also stays in your dashboard under Leads, with a CSV export, and you can get an email for each new one.
Either works the same way. Make's free plan includes webhooks. Zapier's webhook trigger (Webhooks by Zapier) needs a paid Zapier plan. If you already pay for one of them, use that one.
Check that you pasted the whole URL, that your Make scenario or Zap is listening for data (or switched on), and press Send test lead again. The message under the button tells you what your tool answered.
Only while you're setting up. Test leads have "test": true, so you can add a filter step in Make or Zapier that only lets through leads where test is false.
Not on our side. Make and Zapier count each lead as one run (an operation or task) on your plan with them.
Stuck? Send us a message and we'll help you connect it.