Turning Memory On
End-User Memory is opt-in and off by default. Turn it on per Guru:- Open the Guru’s Edit page.
- Expand Advanced Settings.
- Toggle End-User Memory on and click Update Guru.
- Web (logged-in users only): the authenticated user is identified automatically. Their memory is loaded on every question and updated from each new question (respecting PII masking, so masked questions are stored). Anonymous web visitors have no memory.
- API, widget, MCP: memory is used whenever you pass an
external_user_idin the Ask Question call. Withoutexternal_user_id, no memory is loaded or written. Profiles you supply via Upsert Profiles always take priority.
Slack, Discord, Microsoft Teams, Jira, and GitHub bots do not pass an
external_user_id yet, so they do not use memory. Web, widget, MCP, and the direct API do.Viewing and Deleting Your Own Memory
Logged-in web users get a View your memory modal that lists what the Guru remembers about them. From the modal they can:- Delete a single memory with the row’s delete button.
- Clear all memories with a single action.
What Memory Unlocks
Plan-Aware Answers
A Pro-plan customer asking about quotas sees Pro-plan limits; a Free user sees Free limits, automatically.
Cross-Session Continuity
The Guru remembers what was asked yesterday, last week, and last quarter without re-asking the user every time.
Per-User Refusals
Combine memory with source-level RBAC so the Guru only cites what each user is entitled to see.
How It Works
1
Identify the user
Generate or reuse a stable
external_user_id for each end user in your application. This is the key Gurubase will use to look up the user’s memory.2
Upsert the profile
Call
POST /{guru_slug}/profiles/ with a JSON memory object. The structure is up to you - name, plan, region, account tier, recent activity, anything that helps the Guru answer better.3
Pass the user into questions
When the user asks a question, include the same
external_user_id in your Ask Question call. The Guru pulls the stored profile and grounds its answer with both the knowledge base and the user context.4
Update over time
Re-upsert the profile whenever something changes (plan change, new permission, new context). The Upsert endpoint is idempotent, so you can safely call it on every relevant event.
Example Profile Payload
memory object structure is fully open. Pass whatever your application knows about the user that the Guru should use as context.
Pairs Well With
Smart Triage
Triage uses memory to skip clarifying questions the Guru already knows the answer to.
Actions
Actions can use memory fields (e.g.
customer_email, plan) as parameters when calling your APIs.PII Masking
Mask personal data in answers and logs even while the Guru uses it as context internally.
Audit Logs
Every memory-informed answer is logged with the
external_user_id that drove it.API Reference
- Upsert User Profiles - Create or update profiles in bulk
- Ask Question - Ask a question scoped to an
external_user_id