Skip to main content

⚡ Add this skill

One command

Add the Autoplay Crisp Hugo skill for an existing Crisp Hugo AI support agent setup.
View the docs →

Agent onboarding

Fetch this skill when a customer already uses Crisp Hugo and wants its AI support agent to consume Autoplay live user activity.
View the skill →
Hugo (Crisp’s AI agent) pulls a user’s recent in-app activity on demand via the Autoplay MCP server — Hugo calls it the moment it needs context to answer. One MCP connection, one tool (get_live_user_activity), and a verified identity so Hugo asks for the right user.

🎬 End-to-end walkthrough


🔌 Add the Autoplay MCP server

In your Crisp dashboard, go to AI Agent (left sidebar) → Integrations & MCP (under Automate). Scroll to the External MCP servers section and click Add MCP server. In the modal that appears:
  1. MCP Server URL: https://mcp.autoplay.ai/mcp
  2. Click Authentication to expand it → set Authentication Method to Bearer Token → enter your mcp_key in the Bearer Token field.
Click Add MCP server. Once connected, the server appears in your External MCP servers list showing Online.

⚙️ Configure the server — click Manage

Click Manage on the server. The Manage page has two places where you write descriptions — one at the server level and one at the tool level. Both matter.

1 — Server Description (Connection details)

In the Connection details section, fill in:
  • Name: App live activity
  • Description: This is the top-level prompt — Hugo reads it to decide when this MCP server is relevant at all. Keep it short and focused on the scenario:

2 — Tool Description (MCP tools selector)

Scroll down to MCP tools selector and check get_live_user_activity to enable it. The tool card shows a description field — this is the detailed prompt that tells Hugo exactly when and how to call this specific tool (equivalent to the Fin tab prompt in Intercom). Click the edit icon (✏️) on the get_live_user_activity card and set the description to:
Replace YOUR_PRODUCT_ID with your actual product id from your Activity provider dashboard. Including it in the tool description is how you pass a fixed value — there is no separate “fixed value” input field in Hugo.

🎛️ Configure the parameters

Under Parameters on the tool card, each input has two options: Let Hugo decide or Use an attribute. product_id → set to Let Hugo decide Hugo reads your product id from the description above (the The product_id is always: ... line) and passes automatically. user_id → set to Use an attribute → select the attribute that holds your app’s stable user id The dropdown shows contact attributes available in the conversation (e.g. User email). Choose the one that matches the id your activity source identifies the user with. See Identity below for how to make the right attribute available. limit → leave as Let Hugo decide.
For user_id, do not use email unless email is literally the stable id your activity source identifies the user with. Activity is stored under that stable id — a mismatch means Hugo reads an empty bucket.

🔐 Identity — make the user id available as an attribute

Hugo can only pass the right user_id if the Crisp session carries it. Set it from your frontend via the Crisp JS SDK after the user logs in, using session:data:
After you push session:data with a user_id key, that key appears in Hugo’s Use an attribute dropdown. Select it for the user_id parameter. The value you push must exactly equal the id your activity source uses:
How the pieces fit: your frontend identifies the user in your activity source (PostHog or Amplitude) → Autoplay stores activity under that id → your frontend also pushes session:data with that same id → Hugo reads the attribute and fetches activity for it → the buckets match.

✅ Test the full loop

  1. Log in to your app as a test user — fires your activity source’s identify call and sets session:data with user_id.
  2. Click around — visit a couple of pages, click a button, submit a form.
  3. Open the Crisp chat widget as that same logged-in user.
  4. Ask Hugo: “What have I been doing in the app recently?”
  5. Hugo calls get_live_user_activity and answers with what you actually just did.
Common issues:
  • 401 / auth error → the Bearer token is missing or incorrect, revisit Add the Autoplay MCP server above.
  • Empty activity returned → identity is working but that user has no recent activity yet. Browse around in your app first, then re-test.
  • Wrong user’s activity → the user_id in session:data doesn’t match the id your activity source uses. Check both are identical.
“No recent activity” = identity mismatch. Confirm the same value in all three:
  1. the stable id your activity source identifies the user with (PostHog: posthog.identify(id), Amplitude: amplitude.setUserId(id)),
  2. the user_id key in $crisp.push(["set", "session:data", ...]),
  3. the attribute selected for the user_id parameter in Hugo’s tool config.
If they don’t match, activity is stored under one key and fetched with another, and the lookup comes back empty.
Once Hugo is answering with real activity, jump into our Discord — we’ll confirm the tool is pulling activity cleanly and help you tune the trigger description.
Next: Step 2 — Define proactive triggers