Skip to content
SourceLoop
Webhooks

How to connect SourceLoop to Zapier and Make

Route SourceLoop leads through Zapier or Make to 6,000+ destinations, Slack, Sheets, Notion, custom CRMs. Both directions, full recipes.

On this page
  1. What you can build
  2. Before you start
  3. Direction 1: SourceLoop → Zapier / Make (outbound)
  4. Step 1: Get the catch URL from Zapier or Make
  5. Step 2: Wire the URL into SourceLoop
  6. Step 3: Trigger a test lead
  7. Step 4: Add downstream steps
  8. Step 5: Verify the signature (security)
  9. Direction 2: Zapier / Make → SourceLoop (inbound)
  10. Step 1: Get your SourceLoop Incoming Webhook URL
  11. Step 2: Add a POST step at the end of your Zap or scenario
  12. Step 3: Run and verify
  13. Common recipes
  14. ”Notify #sales-alerts on Slack when a paid-search lead with revenue > $500 lands”
  15. “Add every lead to a Google Sheet, with attribution fields, for the sales weekly review”
  16. ”Enrich via Clearbit, then create Pipedrive contact + deal”
  17. ”Score the lead with OpenAI before it lands in SourceLoop”
  18. Pitfalls
  19. What’s next

Zapier and Make (formerly Integromat) are the universal connectors between SourceLoop and the long tail of tools customers actually use. If SourceLoop doesn’t have a native integration with the thing you want, Zapier or Make almost certainly does, and SourceLoop’s webhook surface plugs directly into both.

This article covers both directions: sending SourceLoop leads OUT to Zapier / Make for downstream processing, and sending data INTO SourceLoop from Zapier / Make.

What you can build

A few recipes that take less than ten minutes each:

Use caseDirectionTools involved
Slack alert when a new lead comes inOutSourceLoop → Zapier/Make → Slack
Add every lead to a Google Sheet for the sales teamOutSourceLoop → Zapier/Make → Google Sheets
Enrich the lead via Clearbit / Apollo / ZoomInfo before sending to your CRMOutSourceLoop → Make → Clearbit → Pipedrive (Make is better for this multi-step flow)
Push leads into a CRM SourceLoop doesn’t natively support (Close, Freshsales, Salesflare, Insightly)OutSourceLoop → Zapier → CRM
Add new SaaS signups to a Notion CRM databaseOutSourceLoop → Zapier → Notion
Send Zoom recordings as leads into SourceLoopInZoom → Zapier → SourceLoop Incoming Webhook
Ingest leads from a Calendly variant SourceLoop doesn’t directly coverInCalendly → Zapier → SourceLoop Incoming Webhook
Forward Intercom conversations to SourceLoop without OAuthInIntercom → Zapier → SourceLoop Incoming Webhook
Score leads with an OpenAI call before they hit the Contacts HubInForm → Zapier → OpenAI → SourceLoop Incoming Webhook

Before you start

You’ll need:

  • A SourceLoop workspace with Admin or Owner role
  • A Zapier or Make account (free tier is fine for low volume)
  • For outbound recipes: a clear idea of what your downstream destination needs

Direction 1: SourceLoop → Zapier / Make (outbound)

This is the more common direction. SourceLoop fires a webhook every time a lead is created or updated; your Zap or Make scenario catches it and does whatever you want from there.

Step 1: Get the catch URL from Zapier or Make

In Zapier:

  1. Open Zapier and click Create Zap.
  2. In the trigger step, search for and select Webhooks by Zapier.
  3. Pick Catch Hook as the trigger event. Click Continue.
  4. Click Continue on the “Set up trigger” step (no fields to configure).
  5. Zapier shows you a custom webhook URL that looks like https://hooks.zapier.com/hooks/catch/.../.../. Copy it.

In Make:

  1. Open Make and click Create a new scenario.
  2. Click the first module and search for Webhooks. Pick the Webhooks app.
  3. Choose Custom webhook as the trigger. Click to add a webhook, name it (e.g., “SourceLoop leads”), and Make generates the URL.
  4. Copy the custom webhook URL Make displays.

Step 2: Wire the URL into SourceLoop

  1. Sign in to SourceLoop.
  2. Open Setup -> Outgoing Webhooks in the left sidebar.
  3. Paste the Zapier or Make URL into the Webhook URL field.
  4. Pick the events you want to subscribe to:
    • New Lead for “do this every time a lead comes in”
    • Updated Lead for “do this every time a lead’s status / revenue / fields change”
    • Both for “react to anything”
  5. Set a Secret (optional but recommended; auto-generated if you leave it blank). Note it down, you’ll verify it on the Zapier / Make side later.
  6. Click Add Webhook.

The new webhook appears in the list, marked Active.

Step 3: Trigger a test lead

The cleanest test: produce a real lead.

  1. Submit a form on your tracked site (or pick any existing lead in the Contacts Hub and edit a field for an Updated Lead event).
  2. Back in Zapier / Make:
    • Zapier: click Test trigger. Zapier reads the most recent delivery and shows you the full payload.
    • Make: with the scenario open, click Run once, then trigger the lead. Make catches the payload.
  3. Confirm the payload looks right (email, name, attribution fields, etc.). See the Outgoing Webhooks overview for the full field list.

Step 4: Add downstream steps

From here it’s standard Zapier / Make work. Common patterns:

Send a Slack message:

  • Zapier: add a “Slack -> Send Channel Message” action. Map email, name, latest_channel, and latest_campaign into a message like 🎯 New lead: {{name}} ({{email}}) — from {{latest_channel}} / {{latest_campaign}}.
  • Make: add a “Slack -> Create a Message” module with the same mapping.

Append to a Google Sheet:

  • Zapier: “Google Sheets -> Create Spreadsheet Row” with one column per field you care about.
  • Make: “Google Sheets -> Add a Row” similarly.

Push to a CRM:

  • Zapier / Make: action to your CRM’s “Create or update contact” with email as the dedup key.

Step 5: Verify the signature (security)

SourceLoop sends two custom headers with every delivery:

X-Webhook-Secret: <your secret>
X-Webhook-Event: created | updated

For Slack / Google Sheets recipes, the security risk is low (the downstream tool only accepts data from your authenticated Zap / scenario). For sensitive recipes (CRM writes, customer-data enrichment, billing changes), add a Filter step before any action:

  • Zapier: add a “Filter by Zapier” step. Condition: X-Webhook-Secret (under “Headers”) equals your expected secret value. Anything else, the Zap halts.
  • Make: add a Router with a filter condition checking that the header matches your stored secret.

Direction 2: Zapier / Make → SourceLoop (inbound)

The reverse: a Zap or scenario produces a lead from any source Zapier / Make is connected to (a Slack form, a Notion form, an external CRM event, an OpenAI-scored lead) and pushes it INTO SourceLoop as a new lead.

Step 1: Get your SourceLoop Incoming Webhook URL

  1. In SourceLoop, open Setup -> Incoming Webhooks.
  2. Copy the URL matching the conversion type you want:
    • Web form for form-style submissions
    • Meeting for scheduling tools
    • Chat for chat / conversation tools

See Incoming Webhooks overview for the full reference.

Step 2: Add a POST step at the end of your Zap or scenario

In Zapier:

  1. Add a final action: Webhooks by Zapier -> POST.
  2. URL: paste your SourceLoop Incoming Webhook URL.
  3. Payload Type: JSON.
  4. Data: build the JSON object with at minimum an email. Example:
{
  "email": "{{form.email}}",
  "name": "{{form.name}}",
  "phone": "{{form.phone}}",
  "company": "{{form.company}}",
  "source": "zapier-{{zap.name}}"
}
  1. Wrap Request in Array: No.
  2. Unflatten: No.

In Make:

  1. Add a final module: HTTP -> Make a request.
  2. URL: paste your SourceLoop Incoming Webhook URL.
  3. Method: POST.
  4. Body type: Raw.
  5. Content type: JSON (application/json).
  6. Request content: the JSON object with at minimum an email.
  7. Parse response: Yes.

Step 3: Run and verify

Trigger your Zap / scenario, then open the SourceLoop Contacts Hub. The new lead should appear within seconds. If it doesn’t:

  • Check the Zap / scenario’s execution log for a 4xx response from SourceLoop (most often “no email found in payload”)
  • Check SourceLoop’s Setup -> Incoming Webhooks -> Recent Webhook Logs for the delivery and its status

Common recipes

”Notify #sales-alerts on Slack when a paid-search lead with revenue > $500 lands”

  • Trigger: Catch Hook (SourceLoop New Lead webhook)
  • Filter: only continue if latest_channel == "Paid Search" AND expected_revenue > 500
  • Action: Slack → Send Channel Message to #sales-alerts
  • Cost: 1 task per matching lead (most Zaps stay under 100/month free if your lead volume is moderate)

“Add every lead to a Google Sheet, with attribution fields, for the sales weekly review”

  • Trigger: Catch Hook (SourceLoop New Lead)
  • Action: Google Sheets → Create Spreadsheet Row
  • Map: email, name, company, latest_channel, latest_campaign, latest_landing_page, expected_revenue, created_at

”Enrich via Clearbit, then create Pipedrive contact + deal”

(Easier in Make than Zapier because it has more flexible filter/branch logic.)

  • Trigger: Webhooks → Custom webhook (SourceLoop New Lead)
  • Step 2: HTTP → Make a request to Clearbit’s Enrichment API
  • Step 3: Filter → only continue if company employee count > 50
  • Step 4: Pipedrive → Create or Update Person
  • Step 5: Pipedrive → Create Deal, link to the person

”Score the lead with OpenAI before it lands in SourceLoop”

(Inbound direction.)

  • Trigger: Form tool → Zapier (any form tool, or the SourceLoop Incoming Webhook URL is appended via your form’s HTTP/webhook action)
  • Step 2: OpenAI → Send Prompt (“Score this lead 1-10 based on email domain and company size”)
  • Step 3: Webhooks → POST to SourceLoop Incoming Webhook with the original lead + ai_score: {{openai.score}} as a custom field
  • Step 4 (optional): If score > 7, also send to Slack

Pitfalls

Building a loop: Zap creates leads in SourceLoop → triggers New Lead webhook → fires the same Zap → creates another lead. Always tag Zap-created leads with a custom field and filter them out at the trigger step.

Forgetting the secret check on sensitive recipes: A Zap that writes to your CRM accepts anyone who knows the URL. Add the filter step that verifies X-Webhook-Secret.

Hitting Zapier task limits during traffic spikes: A blog post going viral can push lead volume 10x for a day. Set up Zapier email alerts when you cross 80% of your monthly task quota.

Using Zapier filters on the wrong step: Filter steps in Zapier consume a task on every trigger (even when the filter says “skip”). High-volume recipes pay Zapier for every filtered-out delivery. If you have heavy filtering needs, Make’s per-operation pricing or a dedicated middleware (Cloudflare Worker, AWS Lambda) is cheaper.

What’s next

Frequently asked questions

  1. Do I need a paid Zapier or Make plan?

    For most simple recipes (a Catch Hook trigger plus one or two action steps), Zapier's free tier (100 tasks per month) and Make's free tier (1,000 operations per month) are enough to start. Heavy lead volume or multi-step zaps will exhaust the free tiers quickly; if you're routing every SourceLoop lead through Zapier, expect to land on the Pro / Make Core plan.

  2. Should I use Zapier or Make?

    Both work identically with SourceLoop's webhook surface. Zapier is the easier first choice (simpler UI, broader app catalog, US/EU data residency). Make is cheaper at high volume (per-operation pricing instead of per-task) and supports more complex branching / loops / data transformation natively. If your recipe is "SourceLoop lead -> Slack message", Zapier. If it's "SourceLoop lead -> enrich via Clearbit -> filter by score -> create deal in Pipedrive -> notify the right rep on Slack", Make is usually cheaper and faster.

  3. How do I know the Zap or scenario actually fired?

    Both Zapier and Make show per-execution logs (Zapier's "Zap History", Make's "History" tab) with the input payload, every step's output, and any errors. SourceLoop also logs every outbound webhook delivery in the Outgoing Webhooks page so you can confirm SourceLoop sent the event before debugging on the Zapier / Make side.

  4. What happens if Zapier or Make is down when a lead lands?

    SourceLoop attempts one delivery per event. If Zapier / Make returns a 5xx or times out, the delivery is logged with the error and no automatic retry happens. To avoid missed events, build a recipe that's idempotent (resending the same lead later doesn't create duplicates) so you can replay missed events manually if needed.

  5. Can I filter which leads get sent (e.g., only paid leads, only qualified)?

    Two options. (1) Subscribe to both New Lead and Updated Lead events and use a filter step in your Zap / scenario (Zapier's "Filter by Zapier", Make's "Filter" between modules) to ignore deliveries that don't match. (2) For tighter control, use the lead.type field on the payload to route Web Form leads one way and Payment leads another within the same Zap / scenario.

  6. How do I prevent infinite loops if my Zap creates leads back in SourceLoop?

    Tag any lead created from a Zap or Make scenario with a custom field (e.g., a created_via field set to your recipe's name) and add a filter to skip the New Lead webhook for leads carrying that tag. Without the filter, a recipe that takes a SourceLoop lead, enriches it, and writes it back as a new lead in SourceLoop will fire the New Lead webhook, which fires the recipe again, which fires another lead, etc.

  7. Can I send Zapier or Make data into SourceLoop?

    Yes. Use Zapier's "Webhooks by Zapier -> POST" action (or Make's "HTTP -> Make a request" module) to POST to your SourceLoop Incoming Webhook URL. This is how you ingest leads from form tools, surveys, or other sources Zapier / Make is already connected to but SourceLoop isn't.

Track every conversion to its true source

Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.

Without SourceLoop

Untagged

Kayden Floyd

kayden@abc.com

  • SourceUnknown
  • MediumUnknown
  • CampaignUnknown
  • Landing pageUnknown
Journey
No touchpoints captured

With SourceLoop

Auto-tagged

Kayden Floyd

kayden@abc.com · Acme Co.

  • Channel Paid Social
  • CampaignFree_demo
  • Landing page/pricing
Journey
Synced to HubSpot Google Ads Meta