Track ShowPilot conversions in Google Tag Manager
Send agent milestones like booked meetings and captured leads to your own analytics and ad platforms.
Your agent's results belong in the same reports as the rest of your marketing. ShowPilot sends its milestones, like a booked meeting or a captured lead, to your Google Tag Manager container, so you can count them as conversions, build retargeting audiences and score leads with the tools you already run.
Without this, your analytics can't see what happens inside the agent, because ShowPilot runs on top of your website. A visitor books a meeting, and your funnel shows a page view followed by a meeting on the calendar with nothing in between.
This article covers the events, how to set up a trigger, and how to check the events fire.
How does ShowPilot send events to Tag Manager?
The ShowPilot widget announces its milestones to your page's data layer. That's the standard place Google Tag Manager listens. Your GTM container picks them up like any other event: fire a GA4 event, an Ads conversion, a LinkedIn pixel, anything your container can do.
There's nothing to install and nothing to configure in ShowPilot. If the widget is on your page, the events are already firing. You add triggers in your own GTM container.
Which events does ShowPilot send?
| Event name | When it fires | Data included |
|---|---|---|
showpilot_agent_shown | The agent loads and is visible on the page — your impression denominator for engagement-rate math | showpilot.agent — the agent's name |
showpilot_conversation_started | A visitor sends their first message or starts talking to the agent | showpilot.agent |
showpilot_content_viewed | Content opens in the widget — by the agent or by the visitor | showpilot.title, showpilot.type, showpilot.url, showpilot.source — agent (the agent opened it) or visitor (they clicked a recommendation or playlist item) |
showpilot_content_completed | The visitor finishes a piece of content (watches a video to the end, reads a doc through) — a strong lead-scoring signal | showpilot.title, showpilot.type |
showpilot_voice_call_started | A visitor starts a voice conversation | — |
showpilot_lead_captured | A visitor submits their contact details to the agent | None. The details themselves are never included, so no personal data enters the data layer. |
showpilot_meeting_booked | A visitor completes scheduling a meeting (confirmed booking, not just opening the scheduler) | showpilot.provider — e.g. calendly |
Each event is one dataLayer.push, shaped like:
{
event: "showpilot_meeting_booked",
showpilot: { provider: "calendly" }
}These event names are a stable contract. New events may be added, but existing names and fields won't change or disappear.
How do you set up a trigger in GTM?
Example: count booked meetings as a GA4 conversion.
- In your GTM container, go to Triggers → New → Custom Event.
- Set Event name to
showpilot_meeting_booked. Save it as something like ShowPilot – Meeting Booked. - Go to Tags → New → Google Analytics: GA4 Event.
- Choose your GA4 configuration, set the event name (e.g.
generate_leadormeeting_booked), and attach the trigger from step 2. - Publish the container.
Repeat with the other event names for whichever milestones matter to you. Common setups:
showpilot_lead_capturedandshowpilot_meeting_bookedas ad-platform conversions.showpilot_conversation_startedandshowpilot_content_viewedas retargeting audiences.showpilot_content_completedas a lead-scoring signal in your marketing automation.- Conversations ÷
showpilot_agent_shownas your agent engagement rate.
How do you read the event data in your tags?
To pass details (like which content was viewed) into your tags:
- Go to Variables → New → Data Layer Variable.
- Set the variable name using dot notation, e.g.
showpilot.title,showpilot.agentorshowpilot.provider. - Reference the variable in your tag's fields like any other GTM variable.
A useful example: trigger on showpilot_content_viewed where showpilot.source equals visitor to count recommendation click-throughs separately from content the agent opened proactively.
Test it
Your setup is ready when the events show in GTM's debug panel and your triggers fire on them:
- In GTM, click Preview and enter a page where your ShowPilot agent is live.
- In the debug panel, start a conversation with the agent.
showpilot_conversation_startedappears in the event list on the left. - Book a test meeting or open content to see the other events, and confirm your triggers fire.
You can also verify without GTM's preview: open your browser console on the page and type dataLayer.filter(e => e.event && e.event.startsWith('showpilot')) after interacting with the agent.
Troubleshooting
| Issue | What to check |
|---|---|
| No ShowPilot events appear in the debug panel | Check the agent is live on the page you entered, then interact with it. The first event fires when the agent loads and is visible. |
| An event appears but your tag doesn't fire | Check the trigger's Event name matches the event name exactly, then publish the container again. |
showpilot_meeting_booked doesn't appear | It fires on a confirmed booking, not when the scheduler opens. Complete a test booking. |
Frequently asked questions
Do I need to change anything in ShowPilot?
No. If the widget is on your page, the events are already firing. You only add triggers in your own GTM container.
Does ShowPilot put personal data in the data layer?
No. showpilot_lead_captured carries no data, so the visitor's contact details never enter the data layer.
What if the page has no Tag Manager?
The events are harmless. They sit in the data layer with no listener. Nothing loads, and nothing slows down.
How does consent work?
Events go only to your own container, so your existing consent setup governs them. ShowPilot doesn't load any tags or send data to any tracker itself.
Can I use these events on pages ShowPilot hosts?
Yes. Shared experience links (pages ShowPilot hosts for you, like the ones you send in campaigns) can run your GTM container too. Turn it on in Settings → Tracking and enter your container ID. Your analytics and ad pixels then work on those pages like on any page you own, and the ShowPilot events above fire there as well. See Run Tag Manager on hosted pages.
Related articles
Connect your email and calendar
Connect a rep's calendar so meetings book straight onto it and email to prospects comes from the rep's own mailbox.
Run Tag Manager on hosted pages
Load your Google Tag Manager container on the tour and hub pages ShowPilot hosts, so your analytics and pixels work there too.