Back to guides

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:

Go to your Teams

Lead Forwarding tab with the «Lead Webhook» section, the URL field and the Test and Save buttons
Lead Forwarding tab with the «Lead Webhook» section, the URL field and the Test and Save buttons

📌 The section only appears for Media Buyer teams and can be edited only by the owner and admins. It's one URL per team.

1

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 …/exec URL. 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 http or invalid URL is rejected.

2

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.

3

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]" }
}
FieldWhat it holds
leadIdUnique lead ID in RoyLead
statusStatus: pending, rejected, duplicate, error
rejectionReasonReason for rejection, if any (otherwise null)
campaignName / landingPageNameSource campaign and landing page
countryLead's country
createdAtEntry date/time (ISO format)
formDataAll 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 happensLikely causeSolution
Test returns an errorWrong URL or receiver not publishedRecheck the URL; publish/activate the receiver
The URL isn't accepted on saveNot https or invalidUse a full https://… URL
I don't see the Lead Webhook sectionPermissions or team typeOnly owner/admins of Media Buyer teams see it
Data arrives but doesn't reach the sheetThe receiver doesn't map the fieldsFix 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.

Get started free