TheActivity is keyed by that id. If an agent asks for a different value (an email, a support agent contact id, an anonymous session id), it reads the wrong bucket โ or an empty one โ and the user looks inactive even though theyโve been clicking around.user_idan agent sends must equal theuser_idactivity was stored under โ the stable id your activity source identifies the user with.
The id depends on your activity source. Autoplay is source-agnostic โ the source set grows over time:
Whichever source you use, the rule is the same: the agent must send that id.
๐งฉ The three layers that must agree
๐ค How each agent satisfies layer 3
Every agent has its own way of passing a trusted identity to the connector. The mechanism differs per agent; the required value is always the same (your activity sourceโs stable user id).For anonymous (not-logged-in) users thereโs no trusted identity to pass, so an agent canโt reliably pull their activity. This surface is designed for logged-in users your source has identified.
๐ Debugging โno recent activityโ
Almost always an identity mismatch. Confirm the same value appears in all three places:- the id your activity source identifies the user with (e.g. PostHog
identify, Amplitudeuser_id), - whatever your agent uses as its verified identity (e.g. Finโs JWT
user_idclaim), - the
{user_id}the agent actually sends to the endpoint / MCP tool.
posthog.identify.