Send leads to another system (webhook)
Send every new lead and every stage change to HubSpot, Salesforce, Zapier, Make or your own server, signed so the receiver can trust it.
If your company already keeps its customers in another system, such as HubSpot or Salesforce, vadodara.biz can send each lead there automatically. This is called a webhook: when something happens, we send the lead's details to a web address you choose. This guide is for owners and whoever sets up your other system. You need the website editor on a computer. Reading this takes about 10 minutes; setting it up about 30.
vadodara.biz does not log in to HubSpot or Salesforce for you and never asks for their passwords or keys. You connect them through their own webhook features or through Zapier or Make, as described below.
What is sent, and when
A message is sent when:
- a lead is created (event
lead.created), from the enquiry form, a booking, the chat, WhatsApp or by hand; - a lead changes stage (event
lead.stage_changed), for example from Qualified to Proposal.
Each message contains the business, and the lead with its stage (and the previous stage), source, message, topic, company, country, urgent, deadline, score, value and currency, next step and date, the assigned person, the contact's name, email and phone, the page and campaign it came from, the place (city, region, country) and device, and a link to the lead in the owner app. For example (shortened):
{
"event": "lead.created",
"id": "5b0e…",
"business": { "slug": "spice-garden", "name": "Spice Garden" },
"lead": {
"id": 412, "stage": "new", "previousStage": null, "source": "form",
"topic": "Catering", "company": "Example Ltd", "urgent": false, "score": 32,
"value": null, "currency": null,
"contact": { "name": "Asha", "email": "asha@example.com", "phone": "+919800000000" }
}
}
The id is the same for every retry of one message, so a receiver can ignore repeats.
Switch it on
- In the website editor, open Businesses → your business → the Webhook tab.
- Paste the address from your other system in Webhook address. It must start with
https://and be a public internet address. - Tick Send leads to a webhook.
- Click Save. A Signing secret is created for you; it starts with
whsec_. Copy it if your receiver checks signatures (recommended).
Only owners can see the signing secret. To make a new one, empty the field and click Save; then update it in your other system too.
Check that it works
Every attempt is listed in the website editor under CRM → Webhook deliveries, newest first, with Delivered, the Answer (HTTP status), the Problem if there was one, and the attempt number. The last 50 are kept.
If the other system does not answer with success, we try again after about 1, 2, 4, 8 and 16 minutes (6 tries in all). A message that still fails is given up; the lead itself is of course still in vadodara.biz.
Recipe: HubSpot
With Zapier or Make (any HubSpot plan):
- In Zapier, create a Zap with the trigger Webhooks by Zapier → Catch Hook and copy its address. (In Make: a scenario starting with Webhooks → Custom webhook.)
- Paste that address in Webhook address in vadodara.biz, tick Send leads to a webhook and save.
- Send a test enquiry from your website so Zapier sees an example.
- Add the action HubSpot → Create or Update Contact: map
lead.contact.email,lead.contact.name,lead.contact.phone,lead.company. - Optionally add HubSpot → Create Deal: map
lead.title,lead.value,lead.currencyand a pipeline stage. Add a filter oneventif you only want new leads.
Directly in HubSpot: if your HubSpot plan has workflows that can start when a webhook is received, create such a workflow, paste its address in vadodara.biz, and map the same fields in HubSpot.
Recipe: Salesforce
With Zapier or Make (simplest): as for HubSpot, start with Catch Hook (Zapier) or Custom webhook (Make), then add Salesforce → Create Record of type Lead: map lead.contact.name (split into first and last name), lead.contact.email, lead.contact.phone, lead.company (Salesforce requires Company; use your business name when it is empty), and lead.topic or lead.message into Description. For lead.stage_changed you can update the record with a Find Record step on the email.
Directly in Salesforce: a Salesforce administrator or developer can publish a small Apex REST endpoint (on a Salesforce Site) that checks the signature and creates the Lead, or that starts a Flow. The next part of this page is what they need.
Check the signature (for whoever builds the receiver)
Each message has the header X-Webhook-Signature: t=<time>,v1=<signature>. The signature is HMAC-SHA256, made with your signing secret, of the time, a dot and the exact body (<time>.<body>), written as hex. Recompute it, compare, and refuse messages older than about 5 minutes. Other headers: X-Webhook-Event (the event) and X-Webhook-Id (the message id).
