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

Source: https://sourceloop.ai/help/connect-zapier-and-make/
Updated: 2026-05-29

---

[Zapier](https://zapier.com) and [Make](https://make.com) (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 case | Direction | Tools involved |
|---|---|---|
| Slack alert when a new lead comes in | Out | SourceLoop → Zapier/Make → Slack |
| Add every lead to a Google Sheet for the sales team | Out | SourceLoop → Zapier/Make → Google Sheets |
| Enrich the lead via Clearbit / Apollo / ZoomInfo before sending to your CRM | Out | SourceLoop → 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) | Out | SourceLoop → Zapier → CRM |
| Add new SaaS signups to a Notion CRM database | Out | SourceLoop → Zapier → Notion |
| Send Zoom recordings as leads into SourceLoop | In | Zoom → Zapier → SourceLoop Incoming Webhook |
| Ingest leads from a Calendly variant SourceLoop doesn't directly cover | In | Calendly → Zapier → SourceLoop Incoming Webhook |
| Forward Intercom conversations to SourceLoop without OAuth | In | Intercom → Zapier → SourceLoop Incoming Webhook |
| Score leads with an OpenAI call before they hit the Contacts Hub | In | Form → 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](https://zapier.com/app/zaps) 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](https://make.com) 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](https://app.sourceloop.ai/).
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](/help/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](/help/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:

```json
{
  "email": "{{form.email}}",
  "name": "{{form.name}}",
  "phone": "{{form.phone}}",
  "company": "{{form.company}}",
  "source": "zapier-{{zap.name}}"
}
```

5. **Wrap Request in Array**: No.
6. **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

- **The webhooks that power both directions:** [Outgoing Webhooks overview](/help/outgoing-webhooks-overview/) and [Incoming Webhooks overview](/help/incoming-webhooks-overview/).
- **Native CRM integration instead of Zapier:** [Connect HubSpot](/help/connect-hubspot-to-sourceloop/), [Connect Salesforce](/help/connect-salesforce-to-sourceloop/), or [Connect Pipedrive](/help/connect-pipedrive-to-sourceloop/) (deeper field mapping, no Zapier task cost).
- **JavaScript SDK for in-page integrations instead of Zaps:** [JavaScript SDK reference](/help/javascript-sdk-reference/).

## Frequently Asked Questions

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

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

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

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

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

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

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