Skip to content

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.

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”
  1. In Zapier, create a new Zap.
  2. For the trigger, search Webhooks by Zapier → pick Catch Hook.
  3. Continue through the setup. Zapier shows a unique URL like https://hooks.zapier.com/hooks/catch/12345/abcdef/.
  4. 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”
  1. In the RocketLead console, go to Automations → New automation.
  2. 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.
  3. Configure the trigger’s filters (which Lead Pool, which appointment types, etc.).
  4. 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”
FieldValue
MethodPOST
URLthe Zapier webhook URL from Step 1
Headers{"Content-Type": "application/json"} (optional — auto-added when a body is set)
Bodya JSON payload using {{...}} placeholders (see below)
Raw datesEnable 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.

  1. Save and activate the RocketLead automation.
  2. Trigger it once (e.g., create a test lead) so Zapier receives a sample payload.
  3. Back in Zapier, click Test trigger — Zapier picks up the captured request. Confirm the payload looks right.
  4. 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.
  5. Activate the Zap in Zapier.

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 only

Neuer 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 lead

Cross-trigger globals:

{{$studio.name}}
{{$studio.email}}
{{$studio.phone}}
{{$global.<varName>}} // set via the "Variable setzen" helper node

A 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.

Pushing data from Zapier into RocketLead uses an Ingress webhook — no automation engine needed.

  1. In RocketLead → Settings → Ingress Webhooks → Create, pick the destination Lead Pool. Copy the URL and the token (shown once).
  2. 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"
      }
      }

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.

SymptomCause
Zap test trigger keeps timing outThe RocketLead automation hasn’t fired yet. Trigger it manually (create a test lead) so Zapier receives a sample.
Catch Hook receives an empty payloadPlaceholder 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 URLZap isn’t active, or the URL is wrong. Re-copy from the Zap’s webhook setup.
Run history shows repeated retriesZapier webhook returning errors. Check Zap history in the Zapier dashboard.
  • 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 format and the run records success: false.