Three analytics passthroughs and one honest webhook.
This is a short page on purpose. Peutly forwards demo events into Google Analytics 4, Segment and Heap using keys you own, and posts outgoing webhooks to endpoints you own. Anything not listed here does not exist yet.
Analytics, as a passthrough
These three work the same way, and it is worth being precise about it. You paste your own key into Peutly. Peutly stores it and includes it in the published demo. The player then loads that vendor's script in the viewer's browser and fires events straight into your property. Peutly does not forward anything server to server, so the events arrive as client-side traffic from the viewer, not from us. Available on Pro and Enterprise.
Store your GA4 measurement ID and Peutly hands it to the demo player, which fires events from the viewer browser into your own property. You can also store a GTM container ID.
Store your Segment write key and the player loads analytics.js in the viewer browser under your source. Peutly does not call the Segment server API on your behalf.
Store your Heap app ID and the player initialises Heap in the viewer browser. Same shape as the other two: your key, your property, your data.
Outgoing webhooks
Point Peutly at an HTTPS endpoint you control and we POST a JSON body when one of four things happens in a demo. This is the only programmatic surface Peutly has, and it is the right one to build against. Available on Pro and Enterprise.
lead.capturedSomeone submitted a lead form inside a demo.
demo.engagementA viewer reached a step in a demo.
demo.completedA viewer finished a demo.
cta.clickedA viewer clicked the demo CTA.
The full list is above. There are no other events today.
Create, edit, enable, disable and test-send each one from the dashboard.
Up to five attempts with a growing delay between them, from one minute out to twelve hours.
Every attempt is stored with its status code and error, so you can see what we sent and what came back.
Send leads to HubSpot or Salesforce today
This is a recipe, not a native integration. Peutly has no HubSpot or Salesforce connector and does not talk to your CRM. What it does have is the lead.captured webhook, and Zapier or Make can turn that into a CRM contact without any code. You maintain the Zap or scenario; we maintain the webhook. Needs a plan with webhooks (Pro or Enterprise).
- 1Create a Catch Hook
In Zapier, start a Zap with Webhooks by Zapier and the Catch Hook trigger. In Make, start a scenario with a Custom webhook. Copy the URL it gives you.
- 2Point a Peutly webhook at it
In Peutly, add a webhook endpoint with that URL and subscribe it to lead.captured only. Use Send test so Zapier or Make can read the payload shape.
- 3Create or update the contact
Add a HubSpot or Salesforce step that creates or updates a contact or lead, matched on data.lead.email. Map firstName, lastName, company and phone, and store data.demo.title or data.demo.url so sales can see which demo they came from.
- 4Respect the opt-in
data.lead.optIn is true only when the viewer ticked the opt-in box on your form. Use it to set the marketing-consent field in your CRM, or add a filter step before the CRM step.
{
"event": "lead.captured",
"timestamp": "2026-10-05T09:14:22.000Z",
"data": {
"demo": {
"id": "aB3xY9",
"title": "Onboarding tour",
"url": "https://share.peutly.com/aB3xY9"
},
"lead": {
"email": "jane@acme.com",
"name": "Jane de Vries",
"firstName": "Jane",
"lastName": "de Vries",
"phone": "",
"company": "Acme",
"country": "",
"optIn": true,
"source": "cta"
}
}
}Fields the viewer did not fill in arrive as empty strings. source is cta or overlay, depending on which form captured the lead. The payload is not signed, so keep the Catch Hook URL private.
What we do not have
Other demo tools list twenty logos on this page. We would rather you find out here than two weeks into an implementation.
No CRM integration
There is no HubSpot, Salesforce, Pipedrive or Marketo connector, and no lead sync of any kind. If you want demo leads in your CRM today, use the Zapier or Make recipe above: it takes the lead.captured webhook and writes the contact for you.
No REST API and no JS SDK
Webhooks are the only programmatic surface Peutly exposes today. There is nothing to read demos, viewers or analytics from an API, and nothing to embed or control the player from your own code beyond the standard embed snippet.
Webhook payloads are not signed
We send Content-Type and a Peutly user agent, and nothing else. There is no signature header to verify, so treat the endpoint URL as the only secret and keep it unguessable. We would rather tell you this than let you find out during a security review.
No Slack, Zapier or warehouse export
No Slack app, no Zapier or Make listing, no Snowflake or BigQuery export. Lead notifications go out by email to your workspace admins, and everything else runs through the webhook.
Tell us what you need.
We will tell you honestly whether it is on the list, how far off it is, or that we have no plans for it. In the meantime the webhook plus a few lines in your own backend covers most of what a CRM connector would do.
Your key in, your events out.
Paste a measurement ID or a write key, or point a webhook at your own endpoint. Both take a couple of minutes and neither needs us in the loop afterwards.
