"tour" nudge arrives. What’s left is provider-specific:
- Install and identify your tour provider’s SDK in your frontend.
- Build the flow in your tour provider’s dashboard and note its Flow ID.
- Set
tour_providerin your onboarding config to match (e.g."appcues").
Prerequisites
- An Autoplay product ID.
- A registered Autoplay product with stream credentials.
- Your chosen user tour provider installed and initialized in your frontend.
- A way to identify the active browser session. Autoplay uses the PostHog session ID in the examples below.
- The flow ID you want to start (from your tour provider’s dashboard).
- product_id:
{issued_product_id} - webhook_url:
https://{connecter-url}/webhook/{product_id} - stream_url:
https://{connecter-url}/stream/{product_id} - webhook_secret:
{secret} - stream key:
{secret}
Manual path: trigger without Autoplay.js
1. Proxy the Stream (Security)
To keep your stream key hidden from users, do not connect the browser directly to Autoplay. Instead, create a server-side route. This acts as the bridge between Autoplay and your frontend while keeping your credentials secure.2. Connect the Event Stream
Use the standardEventSource API to listen to your proxy route.
3. Understanding the Payload
The “last mile” is handling the data that arrives through the stream. When a tour is triggered, your frontend receives a JSON object. You need to verify thesession_id to ensure the tour starts for the correct user.
Payload structure
When ausertour_trigger event hits your stream, event.data looks like this:
- Check the type — ensure
type === "usertour_trigger". - Match the session — compare
payload.session_idwith the current user’s session ID (e.g. from PostHog). - Trigger the tour — if they match, pass
flow_idto your tour provider’s SDK.