LeadRails
Docs navigation

Zapier Webhook

Send leads into Zapier as the trigger for any Zap. Uses Zapier's "Catch Hook" trigger — the URL itself is the credential.

What this is

Zapier is a low-code automation platform with thousands of pre-built connectors. LeadRails fires a POST to your Zapier Catch Hook URL with the lead event; your Zap then runs whatever steps you've configured downstream (CRM, email, Slack, Google Sheets, anything in Zapier's catalog).

Where to find your webhook URL

  1. Sign in to your Zapier account.
  2. Click "Create Zap".
  3. For the Trigger (step 1 of the Zap), pick "Webhooks by Zapier" (a built-in app).
  4. Pick the "Catch Hook" event.
  5. Click Continue — Zapier generates a unique webhook URL.
  6. Copy the URL — it looks like https://hooks.zapier.com/hooks/catch/12345678/abcdefg.
  7. Click "Test trigger" → fire a test request OR skip the test and continue.
  8. Add subsequent action steps in your Zap (the lead data flows into them as fields).
  9. Turn the Zap ON (top-right toggle).

Domain enforcement

LeadRails validates that the URL is exactly https://hooks.zapier.com/hooks/catch/* at create time. URLs that don't match this pattern are rejected to prevent typo-based misrouting.

Set up your destination in LeadRails

  1. Sign in → Destinations → New.
  2. Adapter type: Zapier Webhook.
  3. Webhook URL: paste the Zapier hook URL.
  4. Click Create.

Test it

  1. Sources → your source → Settings → ensure a route exists to your Zapier destination.
  2. Click "Send test event".
  3. Zapier shows the inbound event in the Zap's "History" tab within seconds.
  4. If Test trigger was skipped in Zapier, this real event will populate the field schema for subsequent action steps.

What gets sent

Default body: { event_id, normalized_lead: {...}, raw_event: {...}, sent_at }. Zapier's "Catch Hook" parses the JSON and exposes each top-level field as a step output. To access nested fields like normalized_lead.email, use Zapier's dot-notation field picker.

Per-route mapping: customize the shape via Routes → Mapping editor. Recommended if you want flat fields (email, phone) instead of nested (normalized_lead.email).

Important: Zap must be ON

  • Newly created Zaps default to OFF. They won't process Catch Hook requests until you flip the toggle to ON.
  • If LeadRails reports 2xx but no Zap runs: check the Zap is ON. Catch Hook returns 200 even when the Zap is OFF — the request is just buffered until you turn the Zap on (and may eventually be dropped).

Troubleshooting

  • invalid_zapier_catch_hook_url → URL doesn't match hooks.zapier.com/hooks/catch/*. Copy the URL exactly from Zapier; trailing slashes / extra paths are rejected.
  • Zap isn't running but 2xx response → Zap is OFF. Turn it ON.
  • Zap runs but downstream step fails → Check the Zap's Task History → click the failed task → see the actual error (Zapier's diagnostic UI).
  • High volume → rate limited → Zapier's free plan has task limits. Upgrade or use per-route filtering to send only qualifying leads.

Zapier task pricing

  • Every lead that hits your Zap consumes 1+ task in your Zapier billing plan. If you route 10,000 leads/month through a Zap with 3 action steps, that's 30,000 tasks.
  • Consider per-route filtering in LeadRails to only forward qualified leads (e.g. only Lead.score >= 70) so you don't burn Zapier tasks on junk traffic.
← All destination guides