Integrate with Zapier
Zapier is a no-code workflow automation platform. This guide wires it up to RocketLead in both directions:
- RocketLead → Zapier — fire a Zap whenever a lead lands or a booking is made, by adding an HTTP Request action to a RocketLead automation.
- Zapier → RocketLead — push leads from Zapier into RocketLead via an Ingress webhook.
Both are covered below.
Direction 1: RocketLead → Zapier
Section titled “Direction 1: RocketLead → Zapier”Trigger a Zap from any RocketLead automation event (Neuer Lead hinzugefügt, Termin gebucht, Leadstatus geändert, etc.) using RocketLead’s HTTP Request automation node and Zapier’s Webhooks by Zapier trigger.
Step 1 — Create a webhook trigger in Zapier
Section titled “Step 1 — Create a webhook trigger in Zapier”- In Zapier, create a new Zap.
- For the trigger, search Webhooks by Zapier → pick Catch Hook.
- Continue through the setup. Zapier shows a unique URL like
https://hooks.zapier.com/hooks/catch/12345/abcdef/. - Copy the URL. Leave Zapier on the “Test trigger” step — Zapier needs to receive a sample request to learn the payload shape.
Step 2 — Create an automation in RocketLead
Section titled “Step 2 — Create an automation in RocketLead”- In the RocketLead console, go to Automations → New automation.
- Add the trigger that should fire the Zap (under Auslöser in the editor):
- Neuer Lead hinzugefügt — every new lead in a Lead Pool.
- Neuer Termin gebucht — every new booking.
- Leadstatus geändert — every lead-state transition.
- Configure the trigger’s filters (which Lead Pool, which appointment types, etc.).
- From the Aktionen sidebar, drag in HTTP Request and connect it to the trigger.
Step 3 — Configure the HTTP Request node
Section titled “Step 3 — Configure the HTTP Request node”| Field | Value |
|---|---|
| Method | POST |
| URL | the Zapier webhook URL from Step 1 |
| Headers | {"Content-Type": "application/json"} (optional — auto-added when a body is set) |
| Body | a JSON payload using {{...}} placeholders (see below) |
| Raw dates | Enable for Zapier integrations |
Step 4 — Build the body with placeholders
Section titled “Step 4 — Build the body with placeholders”The body is a JSON template. Anything inside {{...}} is substituted with live data from the trigger.
Example for Neuer Lead hinzugefügt:
{ "leadId": "{{<triggerNodeId>.tableEntry.id}}", "createdAt": "{{<triggerNodeId>.tableEntry.createdAt}}", "firstName": "{{<triggerNodeId>.tableEntry.data.firstName}}", "lastName": "{{<triggerNodeId>.tableEntry.data.lastName}}", "email": "{{<triggerNodeId>.tableEntry.data.email}}", "phone": "{{<triggerNodeId>.tableEntry.data.phone}}", "studio": "{{$studio.name}}"}Replace <triggerNodeId> with your trigger node’s ID — the editor’s right-hand variable picker generates these paths automatically when you drag a variable into the body.
Step 5 — Test and activate
Section titled “Step 5 — Test and activate”- Save and activate the RocketLead automation.
- Trigger it once (e.g., create a test lead) so Zapier receives a sample payload.
- Back in Zapier, click Test trigger — Zapier picks up the captured request. Confirm the payload looks right.
- Build the rest of the Zap from there — typical second steps include “Create row in Google Sheets”, “Send Slack message”, “Add contact to HubSpot”, etc.
- Activate the Zap in Zapier.
Available variables by trigger
Section titled “Available variables by trigger”Neuer Lead hinzugefügt / Leadstatus geändert:
{{<id>.tableEntry.id}}{{<id>.tableEntry.createdAt}}{{<id>.tableEntry.leadStateId}}{{<id>.tableEntry.data.<columnName>}} // any data column{{<id>.tableEntry.customFieldData.<customFieldId>}} // any custom field{{<id>.previousLeadState.name}} // leadState changes only{{<id>.newLeadState.name}} // leadState changes onlyNeuer Termin gebucht / Termin beginnt / Termin endet / Termin gelöscht:
{{<id>.calendarBooking.id}}{{<id>.calendarBooking.startDateTime}}{{<id>.calendarBooking.endDateTime}}{{<id>.calendar.name}}{{<id>.appointmentType.name}}{{<id>.resource.name}}{{<id>.tableEntry.data.email}} // when the booking is linked to a leadCross-trigger globals:
{{$studio.name}}{{$studio.email}}{{$studio.phone}}{{$global.<varName>}} // set via the "Variable setzen" helper nodeA typo in a placeholder path silently resolves to an empty string. Verify each field arrives in Zapier’s “Test trigger” step before relying on it downstream.
Direction 2: Zapier → RocketLead
Section titled “Direction 2: Zapier → RocketLead”Pushing data from Zapier into RocketLead uses an Ingress webhook — no automation engine needed.
- In RocketLead → Settings → Ingress Webhooks → Create, pick the destination Lead Pool. Copy the URL and the token (shown once).
- In Zapier, add a Webhooks by Zapier action → POST:
- URL:
https://api.rocketlead.io/public/ingress_webhooks/<webhook-id> - Payload type:
JSON - Headers:
x-rocketlead-ingress-token:<token>Content-Type:application/json
- Data: map your Zap’s input fields to a RocketLead-shaped payload:
{"data": {"firstName": "...","lastName": "...","email": "...","phone": "...","source": "zapier"}}
- URL:
The default lead state is applied automatically. The submission fires table.entry.added in RocketLead — your other automations run as if the lead came from any other channel.
For richer integrations (read leads, create bookings, update lead states), use the Connect API instead — Zapier’s HTTP action supports the Authorization: Bearer rocketlead_live_* header pattern.
Common gotchas
Section titled “Common gotchas”| Symptom | Cause |
|---|---|
| Zap test trigger keeps timing out | The RocketLead automation hasn’t fired yet. Trigger it manually (create a test lead) so Zapier receives a sample. |
| Catch Hook receives an empty payload | Placeholder path has a typo — resolves to empty silently. Check the captured payload in Zapier field-by-field. |
Dates arrive as 12. Januar 2026 um 14:00 | ”Raw dates” toggle is off on the HTTP Request node. Enable it. |
4xx from Zapier’s webhook URL | Zap isn’t active, or the URL is wrong. Re-copy from the Zap’s webhook setup. |
| Run history shows repeated retries | Zapier webhook returning errors. Check Zap history in the Zapier dashboard. |
Caveats
Section titled “Caveats”- No HMAC signature. Zapier has no way to cryptographically verify the call came from RocketLead. Treat the Catch Hook URL as a shared secret. If it leaks, the only mitigation is to delete and recreate the Zap (Zapier doesn’t support URL rotation).
- Webhooks by Zapier is a paid feature. Free Zapier accounts can’t catch webhooks. The “premium app” requirement applies to both Catch Hook and POST.
- Max automation chain depth: 5. Zaps that call back into RocketLead, which fires another flow, which calls Zapier again — beyond depth 5, RocketLead blocks further chained runs. Keep cycles simple.
- Headers must be valid JSON. Invalid JSON returns
400 Invalid headers JSON formatand the run recordssuccess: false.
Related
Section titled “Related”- Make.com integration — same pattern with a different platform.
- Ingress webhooks — for inbound pushes from any source.
- Connect API — when you need read/write access, not just events.
- Automation triggers — full event catalog.