How to track lead source in Crisp
Every Crisp conversation, paired with the marketing channel that brought the visitor to your site. No more cold replies to leads with no context.
On this page
Crisp is the all-in-one customer messaging platform that startup teams reach for when they want chat, helpdesk, and CRM in one place. The widget is great at starting conversations. What it doesn’t tell you is which campaign brought that visitor to your site in the first place. SourceLoop fills in that gap.
Three steps, around five minutes, and every Crisp conversation afterwards arrives with the marketing context behind it.
What SourceLoop captures from Crisp
Once Crisp is on a page tracked by SourceLoop, each conversation flows into SourceLoop tagged with:
- The visitor’s acquisition channel (organic, paid, referral, social, direct)
- UTM parameters parsed from the landing URL
- Pages browsed in order before the chat started
- Time on site ahead of the conversation
- Number of distinct sessions before this lead chatted
- Email + name captured during the conversation
- First-touch landing page of the visitor’s history
- Source of the converting session that produced the chat
- Device, country, browser
Before you start
You’ll need:
- A SourceLoop workspace (free trial)
- Edit access to your site’s
<head>markup - A Crisp account with the chat widget already embedded on your site
Step 1: Drop SourceLoop’s snippet into your site
Open SourceLoop, go to Setup -> Tracking code in the sidebar, and copy the snippet.
Paste it into your site’s <head>. The usual paths:
- WordPress: header-injection plugin or
header.php - Webflow: Project Settings -> Custom Code -> Head Code
- Framer: Site Settings -> General -> Custom Code -> Start of head
- Shopify: Online Store -> Themes -> Edit code ->
theme.liquid - Tag manager: an All Pages tag
SourceLoop and Crisp can sit side-by-side, the order they load doesn’t matter, as long as both run on every page where the Crisp widget appears.
Step 2: Confirm the Crisp widget is on tracked pages
There’s no per-account toggle to flip on Crisp’s side. Once the SourceLoop snippet loads on a page where Crisp also loads, conversations from that page flow into SourceLoop automatically.
Worth verifying:
- The Crisp widget is active on every page where you want to capture leads (which, for most sites, is the entire site)
- Your pre-chat survey or chatbot collects an email at some point in the conversation
- Aggressive performance plugins or browser-only privacy modes aren’t blocking either Crisp or SourceLoop
Step 3: Send a verification chat
Open a page on your site that hosts the Crisp widget in an incognito tab with ?utm_source=test&utm_medium=verify&utm_campaign=crisp-check appended to the URL. Start a chat, share an email address you can access.
Within seconds of sharing the email, the conversation should appear at the top of the Contacts Hub in SourceLoop with the three test UTM values stamped on the record.
Where to see Crisp conversations in SourceLoop
Contacts Hub
Every Crisp conversation that shares an email becomes a contact row at app.sourceloop.ai/contacts. Open a contact to see the visitor’s complete browsing path before they reached out, helpful context to read into your reply.
Attribution dashboard
For the channel-level read, app.sourceloop.ai/dashboards/traffic groups Crisp conversations by source, medium, and campaign. A quick read on which channels actually open dialogue vs. which only send pageviews.
Funnel reports
In app.sourceloop.ai/funnels, build a funnel ending in “Crisp conversation”. Slice by source, landing page, or device to find which routes actually drive engagement, not just visits.
If paid acquisition feeds the chat queue, forward Crisp conversations back to Google Ads, Meta, and LinkedIn as offline conversions so the bidding algorithms train on actual qualified conversations rather than vanity clicks. Connect your Google Ads account covers the wiring.
Frequently asked questions
-
Does this work with Crisp's free plan?
Yes. SourceLoop's tracking is browser-side and tier-agnostic, free Crisp, Pro, and Unlimited all work the same way once the widget loads on a tracked page.
-
Crisp lets visitors message anonymously before sharing email. Are those tracked?
SourceLoop attaches the marketing journey to the contact once an email is shared (anywhere in the conversation, including via the pre-chat survey or a follow-up). Truly anonymous conversations stay anonymous, the same as they do in Crisp itself.
-
I use Crisp's Chatbot to qualify leads before handing off. Does the chatbot path still get attributed?
Yes. The chatbot conversation is what eventually captures an email, and that email is what attribution ties to. Whether a human or a bot collected the email doesn't matter.
-
I send my Crisp link (`go.crisp.chat/...`) in cold emails. Will those replies be attributed?
No. Conversations started through Crisp's hosted link skip your site entirely, so SourceLoop never sees the visitor. For attribution, send recipients to a page on your site where the Crisp widget is loaded.
-
Does this interfere with Crisp's existing integrations (HubSpot, Salesforce, Slack, etc.)?
No. Crisp continues to push contacts and conversations to all your connected destinations exactly as configured. SourceLoop captures attribution on its own side, no overlap.