Skip to content New SourceLoop MCP: chat with your attribution data in Claude, ChatGPT & Cursor
SourceLoop
Webhooks

How to use SourceLoop Incoming Webhooks

Send leads into SourceLoop from any form, booking, or chat tool that fires a webhook. Name the webhook, paste its URL and token into your tool, and every submission becomes a lead with its journey.

On this page
  1. When to use one
  2. Step 1: Create the webhook
  3. Step 2: Paste the URL and token into your tool
  4. Step 3: Check the payload
  5. Step 4: Send a test and watch Recent activity
  6. Where the leads show up
  7. What’s next

Incoming webhooks bring leads into SourceLoop from any tool that can send a webhook: a form builder on someone else’s domain, a booking tool, a chat tool, a Zapier workflow, or your own backend. Each submission becomes a lead in Contacts, with the visitor’s journey attached when it can be matched.

SourceLoop Setup Incoming Webhooks page with the Add a webhook dialog asking for a name and event name

When to use one

Use an incoming webhook when:

  • The form, booking page, or chat runs on another domain, so the tracking code on your site can’t see the submission
  • You have a custom lead flow, such as your own backend or an internal tool
  • A tool can send webhooks but has no card under Setup -> Forms, Meetings, or Chat

You don’t need one when the form is embedded on a page that loads the tracking code, because those submissions are captured automatically.

Step 1: Create the webhook

  1. Open Setup in the left sidebar, then Incoming Webhooks.
  2. Click Add webhook.
  3. Enter a Name, such as “Demo request form”, so you can tell your webhooks apart later.
  4. Enter an Event name, such as demo_request. Leads from this webhook appear under this event in Contacts and reports. Leave the default, form_submit, if it’s an ordinary form.
  5. Click Create webhook.

The webhook appears under Your webhooks with its URL and a Token used to prove requests come from you.

Step 2: Paste the URL and token into your tool

In your tool’s webhook or HTTP request settings:

  1. Paste the webhook URL and set the method to POST.
  2. Send the token in a header named Sourceloop-Token.
  3. If your tool only has a URL field and can’t add headers, add the token to the end of the URL instead: ?token=YOUR_TOKEN.
  4. Choose the trigger that fires after the visitor has shared their details, such as form submitted or booking confirmed.

Step 3: Check the payload

You don’t need a special format. A simple body looks like this:

{
  "email": "[email protected]",
  "name": "Jane Doe",
  "phone": "+1 555 0100",
  "company": "Acme Co.",
  "submission_id": "your-unique-id",
  "sl_aid": "the value from the hidden field"
}
  • email, phone, name: at least one, or an sl_aid, is needed for a lead
  • submission_id (or response_id, id): lets SourceLoop ignore repeated sends of the same submission
  • event or conversion_type: optional, to override the webhook’s event name for one request

Common tool shapes, such as answers nested in arrays, are read without any changes.

Step 4: Send a test and watch Recent activity

Submit your form the way a visitor would, or send a request yourself:

curl -X POST 'https://hooks.sourceloop.ai/in/YOUR-WEBHOOK-ID' \
  -H 'Content-Type: application/json' \
  -H 'Sourceloop-Token: YOUR_TOKEN' \
  -d '{"email":"[email protected]","name":"Webhook Test"}'

The lead appears in Contacts within seconds. Every request also shows under Recent activity on the Incoming Webhooks page, kept for 30 days, marked as:

  • accepted: a lead was created, and the tool’s own signature proved where it came from
  • unverified: a lead was created. The request was accepted on its token or URL, which most tools use.
  • duplicate: this submission was already received, so nothing new was created
  • rejected: nothing usable was found, or the token was wrong, with the reason
  • error: something went wrong on SourceLoop’s side. The payload is kept so nothing is lost.

Where the leads show up

What’s next

Frequently asked questions

  1. Is there a ready-made guide for my tool?

    Often, yes. Open Setup -> Forms, Meetings, or Chat and click your tool's card. Its drawer walks through the setup and shows a webhook URL ready to paste. Use Setup -> Incoming Webhooks for tools without a card, or for your own code.

  2. Do I also need the tracking code on my site?

    For attribution, yes. The tracking code records the visits before the submission. Add a hidden field named sl_aid to your form and the webhook carries it back, so SourceLoop can attach the lead to that visitor's journey. Without it the lead is still saved, but it can only be tied to a journey if the same email or phone was seen on your site before.

  3. What format does the payload need?

    JSON or a standard form post. SourceLoop finds the email, phone, name, and company wherever your tool puts them, so most tools' default payload works as it is. A request needs at least an email, phone, name, or sl_aid to become a lead.

  4. How do I stop duplicates when my tool retries?

    Include the tool's own submission id, in a field such as submission_id, response_id, or id. A second request from the same webhook with the same id is recorded as a duplicate and creates nothing.

  5. My tool keeps saying the webhook succeeded, but no lead appeared. Why?

    SourceLoop answers success for every request it could read, so your tool doesn't retry for hours. The reason a request produced no lead is shown under Recent activity, for example when no email, phone, name, or sl_aid was found.

  6. Can I pause a webhook?

    Yes. Click Pause on the webhook. Requests sent while it is paused are acknowledged but create nothing. Click it again to resume.

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