Step 1 — Go to the project page in Autoplay and press “create one with Autoplay”
First, you need to grab the unique IDs that tell our system who you are.- Go to app.autoplay.ai and sign up.
- Inside your dashboard, find your Product ID and API Key. Keep this page open—you will need both of these in the next step!
Step 2 — Add the front end snippet to capture events
Next, we are going to add a tiny piece of tracking code (powereed by PostHog) to your website. This acts as the “eyes” that see what users are clicking on. Copy the code snippet below into your website’s frontend. Make sure to replaceYOUR_API_KEY and YOUR_PRODUCT_ID with the badges you found in Step 1.
JavaScript
👋 Quick Tip: Once you add this code to your site, jump into our Slack workspace and drop a message in #just-integrated. We will check to make sure your data is flowing properly and help you get fully set up!
Step 3 — Registering your product with Autoplay
Now that your website is tracking clicks, we need to create a secure “mailing address” (Webhook URL) and a shared secret (X-PostHog-Secret) so that data can be safely sent to Autoplay.
Registration requires a valid contact email (stored on your connector product row) in addition to your product id. Existing deployments may still have older product rows without email until you re-register.
Run the following script:
1. Install the Toolkit (Requires Python 3.10+) Open your computer’s terminal and install our SDK using either command:
Bash
- product_id:
{product_id_entered} - webhook_url:
https://event-connector-luda.onrender.com/webhook/{product_id}
stream_url:https://event-connector-luda.onrender.com/stream/{product_id} - webhook_secret:
{secret}
unkey_key:{secret}
onboard_product registers an event_stream product. result includes your webhook, stream, and auth values—save what prints in the terminal.
- Step 4 (PostHog):
result.webhook_url,result.webhook_secret - Step 5 (live stream):
result.stream_url,result.unkey_key(use as Bearer)
Re-registering your product
- A second
onboard_productwith the sameproduct_idreturns 409 until overwrite is allowed. - Pass
force_reregister=True(same as CLI--force-reregister). You must still passcontact_emailon every registration, including overwrites. - After a successful overwrite, the webhook secret rotates. Update PostHog (Step 4) so
X-PostHog-Secretmatches the new secret.
Step 4 — Set up your PostHog webhook
Now we must tell the website tracker (Step 2) to send its data to the secure address (webhook) you just generated (Step 3). You have two choices: Option A — Managed (default)- Join our Slack workspace and message
#just-integrated. - We configure the PostHog webhook for you.
- You receive a 1Password link with your Stream URL and API token for Step 5.
- In PostHog, add a Webhook destination.
- Webhook URL: paste
result.webhook_urlfrom Step 3. X-PostHog-Secretheader: pasteresult.webhook_secretfrom Step 3. Do not create a new secret.
Step 5 — Watch Your Data Arrive Live! (Receive your first event)
Everything is wired up! Let’s turn on the monitor to see a live feed of your users’ actions. Run this final script. If you used the DIY method in Step 4, use theStream URL from Step 3 and your Unkey token. If we helped you in Slack, use the stream URL and API token from Autoplay’s 1Password handoff.
Then run the script, it connects to the SSE endpoint and prints every event as it arrives.
Python
Next Steps & Advanced Features
Now that your data is flowing, here’s how to put it to work:- Typed Payloads: Explore all available fields for Actions and Summaries.
- Inject into your LLM Response: Pass real-time user events into your prompt so the LLM understands what a user just did—not just what they asked. Most users are in the wrong part of your product when they ask for help; this is what lets your copilot bridge that gap.
- Agentic RAG: Build agents that track where a user is, where they need to be, and guide them there—“You’ve been on this page for a few minutes—here’s where you actually need to go.”
- Async Client: Use Autoplay alongside LangChain or FastAPI.
Typed payloads
Explore all fields on ActionsPayload and SummaryPayload
RAG pipeline
Embed events into a vector store in real time
Async client
Use AsyncConnectorClient with LangChain or FastAPI
Proactive copilot
Combine real-time events, memory, and golden paths
extra field conventions used across the SDK, see Logging. Release history is on the Changelog.