Dashboard
Funnel
Activity over time
Clicks by video
Live activity
Funnel Map
Organic Tracking
| Video | Deeplink | Clicks | Bookings | Revenue |
|---|
Create deeplink
Heads up: when you first paste a link into a description, YouTube's safety check may register one click. It's filtered as a bot.
Transactions
| Date | Cash paid | Deal value | Lead | Attributed to |
|---|
Domains
CRM Setup
Sales connection (the core one)
When a deal is marked Won in your CRM, have it POST here and the revenue
lands in ONYX attributed to the exact video. Every CRM can do this natively: GoHighLevel
(workflow → Webhook action), Close (workflow or Zapier), HubSpot (workflow → webhook).
Send JSON with at least amount (cash collected so far — re-fire as payments
land and the same deal_id updates instead of duplicating), plus
deal_value (the full deal's worth, reported as revenue alongside cash),
email (we match it to the lead's booking) or utm_campaign if your
CRM carries it. lead_source and campaign ("Instagram" /
"Instagram Story") group the money under the right platform even when no link matches;
deals with none of that land in a filterable Unattributed bucket:
{"amount": 5000, "deal_value": 8000, "email": "(the lead's email)", "deal_id": "abc123", "name": "Jane Doe", "lead_source": "Instagram", "campaign": "Instagram Story"}
MS wires this with you on the onboarding call.
Bookings connection
Calendly can tell ONYX about every booking, matched to the exact video that sent it. One-time setup: in Calendly go to Integrations → Webhooks → Add webhook, subscribe to Invitee Created and Invitee Canceled, and paste this URL (it's unique to your workspace):
MS usually does this with you on the onboarding call. Bookings then appear on the dashboard and per video, live.
Conversion events (funnel steps)
Track any step of your funnel — opt-ins, sign-ups, applications — by pasting
this snippet on your pages. On landing pages it remembers which video sent the visitor; on a
thank-you or confirmation page, give it a data-event name and it records that
step against the right video. No revenue here: money comes from your CRM connection.
Change data-event="optin" to name each step
(e.g. signup, application). Remove the attribute entirely on pages
that should only remember the video. New event names appear automatically as funnel stages.
Every deeplink redirects the viewer to your funnel with three tags attached to the URL, invisibly to them:
utm_source=youtube: the platformutm_medium=video: the traffic typeutm_campaign=your-link-slug: the exact video
Your booking tool or CRM captures those tags when the person opts in or books. The result: every deal in your CRM shows it came from YouTube and which video. When the deal closes, you know exactly what that video earned. Your CRM already tracks the revenue; the tags just connect it to the content.
Where this breaks if you skip setup
The tags live on the URL, so the page the person books on must be reached from the link: either the link goes straight to your booking page, or your landing page passes the tags along to the booking step. Each guide covers how.
Calendly (most common)
Calendly records UTM tags automatically on every booking, no plugin needed. They show on the invitee's details, in exports, and in webhooks.
- If your link goes straight to a Calendly page: nothing to set up. The redirect lands with the tags on the URL and Calendly stores them with the booking.
- If Calendly is embedded on your site: the embed must pass the page's UTM tags through. In Calendly's embed builder there's a UTM option for exactly this, or your web person adds one line so the embed inherits the page URL's tags. MS sets this up with you.
- Verify: click one of your links, book a test call, then open the booking
in Calendly and check the invitee details show
utm_campaignwith your link's slug. - Into the CRM: wherever your Calendly bookings land (native integration,
Zapier/Make, or webhook), map
utm_sourceandutm_campaignto two fields on the contact or deal. Call them "Source platform" and "YouTube video".
Close
Close doesn't capture UTMs by itself. The capture happens at your booking or form layer (usually Calendly), and the tags ride into Close when the lead is created.
- In Close, add two custom fields: Source platform and YouTube video (lead or opportunity level, your call, we recommend opportunity).
- Do the Calendly step (previous tab) so bookings carry the tags.
- In whatever creates the Close lead from a booking (the Calendly integration,
Zapier/Make, or your own automation), map
utm_sourceto Source platform andutm_campaignto YouTube video. - Verify: test-book off one of your links and confirm the new lead in Close shows the video slug in the field.
Cal.com
This is the setup MS runs on its own funnel, so we know it cold.
- On the event type, add a hidden booking question (e.g.
referring-video) that prefills from a URL parameter. - Have your landing page (or the direct link) pass
utm_campaigninto that parameter. MS wires this for you. - Read it out of the booking webhook or the booking's answers, and stamp it on the deal in your CRM.
GoHighLevel
GHL captures UTM tags automatically when a funnel page or form is visited with tags on the URL, and they land under the contact's attribution.
- Point your links (or their destination) at the GHL funnel/booking page directly, so the tags arrive on the page URL.
- Check a test contact: attribution should show
utm_campaignwith your link slug. - Optional but recommended: a small workflow that copies the contact's
utm_campaignattribution into a custom "YouTube video" field on the opportunity, so it's visible on the pipeline card.
HubSpot
- Make sure the HubSpot tracking code is on your landing page and your forms are HubSpot forms (or pass UTMs as hidden fields if they're not).
- HubSpot then records the campaign automatically. See "Original traffic source
drill-down" on the contact, which shows your
utm_campaignslug. - For deal-level reporting, surface it with a calculated/copied property or view it via the associated contact.
Any other CRM or form tool
Two universal options, in order of preference:
- Native UTM capture: most booking tools (SavvyCal, TidyCal, iClosed…)
and form tools (Typeform, Tally…) capture UTM parameters or accept them as hidden
fields. Switch it on, then map
utm_sourceandutm_campaignto fields in your CRM. - Hidden form fields: add two hidden fields to your opt-in or booking form
that read
utm_sourceandutm_campaignfrom the page URL, and map them into the CRM with the rest of the submission.
Admin
| Client | Domain | Members | Links | Clicks | Billing |
|---|