Lead Webhook — send every lead to your own tool
Set up a team webhook to receive a copy of every incoming lead in your own tool (Google Sheet, CRM…), in parallel to network forwarding.
Updated on June 16, 2026
Besides forwarding leads to networks, you can have a copy delivered to your own tool too — a Google Sheet, your CRM, an automation. You set a single URL and RoyLead sends the data on every incoming lead. It runs in parallel to network forwarding: it doesn't slow it down and doesn't replace it.
Open your team and go to the Lead Forwarding tab:

📌 The section only appears for Media Buyer teams and can be edited only by the owner and admins. It's one URL per team.
Prepare your tool's URL
The webhook sends a POST request with JSON data. A Google Sheet can't receive it on its own: you need a receiver in between that turns that data into spreadsheet rows. The most common options:
- Google Apps Script — publish a script as a "Web app" and get a
…/execURL. Free. - Zapier / Make / n8n — create a "Webhook" trigger and get a URL to paste.
Set up the receiver to write the fields you need (see what we send below), then copy its URL.
⚠️ The URL must be https. An
httpor invalid URL is rejected.
Paste the URL and run Test
In the Lead Webhook section paste the URL in the field, then click Test.
RoyLead sends a sample lead to your URL. If you see Webhook reachable, the receiver works: go to Step 3. If you see an error, check the URL is correct and the receiver is published/active.
Save
Click Save. From now on every lead entering the team is sent to your URL.
To disable the webhook at any time, clear the field and save.
What gets sent
For each lead RoyLead POSTs this JSON:
{
"leadId": "lead_a1b2c3...",
"status": "pending",
"rejectionReason": null,
"campaignName": "Campaign Name",
"landingPageName": "Landing Name",
"country": "IT",
"createdAt": "2026-06-16T10:00:00.000Z",
"formData": { "nome": "Mario", "cognome": "Rossi", "telefono": "+393331234567", "email": "[email protected]" }
}
| Field | What it holds |
|---|---|
leadId | Unique lead ID in RoyLead |
status | Status: pending, rejected, duplicate, error… |
rejectionReason | Reason for rejection, if any (otherwise null) |
campaignName / landingPageName | Source campaign and landing page |
country | Lead's country |
createdAt | Entry date/time (ISO format) |
formData | All the fields filled in the form |
Which leads you receive
You receive every lead entering the team: valid, rejected, duplicates and configuration errors. That way you see your full raw volume.
🔒 Bot submissions (they fill the anti-spam trap) are not sent: it's automated traffic, not real leads, and would clutter your sheet.
Don't confuse it with the Webhook Token
These are two different things:
- Lead Webhook (this guide): RoyLead sends leads to your tool.
- Webhook Token (in Settings → Network Credentials): the network sends RoyLead the status updates (approved/rejected).
Troubleshooting
| What happens | Likely cause | Solution |
|---|---|---|
| Test returns an error | Wrong URL or receiver not published | Recheck the URL; publish/activate the receiver |
| The URL isn't accepted on save | Not https or invalid | Use a full https://… URL |
| I don't see the Lead Webhook section | Permissions or team type | Only owner/admins of Media Buyer teams see it |
| Data arrives but doesn't reach the sheet | The receiver doesn't map the fields | Fix the script/Zap that writes the rows |
In short
💡 Prepare a receiver (Apps Script/Zapier), paste its https URL in Lead Forwarding → Lead Webhook, run Test and Save. From there every lead reaches you too, in real time.
Ready to put this into practice?
Create your RoyLead account and start in minutes.