Skip to main content
The Customer Support Schema is for support chatbots, agent-assist copilots, CRM AI, and helpdesk platforms. It keeps the normal MemoryOS SDK path:
add() -> store memory from support conversations
get() -> retrieve customer context before answering
When a tenant enables domain_schema: "support", MemoryOS still runs the General Engine, then adds a structured support overlay in support_memories.

What it remembers

FieldMeaning
support_typeThe active support vertical for this customer or conversation
customer_identityAccount hints, tier, customer name, verified status, or account reference
communication_preferenceChannel, tone, detail level, and technical comfort
language_profilePreferred language and regional style
current_open_issueThe issue future support replies should start from
issue_historyUseful prior support issues without dumping every ticket
resolution_preferenceRefund, replacement, callback, workaround, escalation, or self-serve preference
sentiment_patternFrustration, repeat complaint, high escalation risk, or easy-to-resolve pattern
risk_signalsFraud, churn, legal, compliance, VIP, safety, or escalation signals
support_contextVertical-specific JSONB context such as orders, invoices, bookings, plans, or transactions

Support types

Supported support types:
  • saas
  • ecommerce
  • banking_fintech
  • travel
  • telecom
  • edtech_support
  • general_info

Enable from dashboard

Most teams should enable the Support Schema from the workspace dashboard first.
  1. Open Settings in the MemoryOS workspace dashboard.
  2. Find Domain Schema.
  3. Select Customer Support Schema.
  4. Choose a support routing mode:
    • single for one vertical such as SaaS, ecommerce, banking, travel, telecom, or EdTech support
    • multi for helpdesk platforms such as Intercom, Crisp, or Zendesk
    • auto for early testing
  5. Save changes.
Enable Customer Support Schema from the MemoryOS tenant settings page The API examples below do the same thing programmatically.

Routing modes

Support products are not all the same. A bank usually has one vertical. A helpdesk platform like Intercom, Crisp, or Zendesk may serve many verticals. MemoryOS supports three routing modes:
ModeBest forBehavior
singleSBI, Flipkart, MakeMyTrip, Airtel, Udemy-style tenantsAlways use one fixed support type
multiIntercom, Crisp, Zendesk-style helpdesk platformsClassify each conversation within an allowed list
autoEarly testing or broad demosClassify each conversation across all support types

Single vertical

Use this when your whole product belongs to one support vertical.
{
  "support_type_mode": "single",
  "support_type": "banking_fintech",
  "support_types_allowed": []
}

Multi-vertical helpdesk

Use this for support platforms that serve many customer businesses.
{
  "support_type_mode": "multi",
  "support_type": null,
  "support_types_allowed": [
    "saas",
    "ecommerce",
    "banking_fintech",
    "travel",
    "telecom",
    "general_info"
  ]
}
For example:
Customer A asks about a delayed order -> ecommerce
Customer B asks about a failed invoice -> saas
Customer C asks about a failed UPI payment -> banking_fintech
Classification happens inside the support extraction pass. It does not require a separate detection call.

Auto detect

Use this for experimentation when you do not want an allow-list.
{
  "support_type_mode": "auto",
  "support_type": null,
  "support_types_allowed": []
}

Enable with API

If you use the dashboard, no API key is needed because you are already logged in. If you call the API directly, use your tenant API key:
Authorization: ApiKey mem_your_api_key

Enable Support

PATCH /v1/tenant/domain-schema
Authorization: ApiKey mem_...
Content-Type: application/json
{
  "domain_schema": "support"
}
Executable curl example:
curl -X PATCH "https://api.memoryos.io/v1/tenant/domain-schema" \
  -H "Authorization: ApiKey mem_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"domain_schema":"support"}'

Configure Routing

Single vertical:
curl -X PATCH "https://api.memoryos.io/v1/tenant/support-type" \
  -H "Authorization: ApiKey mem_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "support_type_mode": "single",
    "support_type": "saas",
    "support_types_allowed": []
  }'
Multi-vertical helpdesk:
PATCH /v1/tenant/support-type
Authorization: ApiKey mem_...
Content-Type: application/json
{
  "support_type_mode": "multi",
  "support_type": null,
  "support_types_allowed": ["saas", "ecommerce", "banking_fintech", "travel", "telecom", "general_info"]
}
Executable curl example:
curl -X PATCH "https://api.memoryos.io/v1/tenant/support-type" \
  -H "Authorization: ApiKey mem_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "support_type_mode": "multi",
    "support_type": null,
    "support_types_allowed": ["saas", "ecommerce", "banking_fintech", "travel", "telecom", "general_info"]
  }'

Check Current Config

GET /v1/tenant/domain-schema
Authorization: ApiKey mem_...
curl "https://api.memoryos.io/v1/tenant/domain-schema" \
  -H "Authorization: ApiKey mem_your_api_key"
The response includes:
{
  "domain_schema": "support",
  "support_type_configured": null,
  "support_type_mode": "multi",
  "support_types_allowed": ["saas", "ecommerce", "banking_fintech"]
}

Retrieval safety rules

Support memory is not a live system of record. It is remembered customer context. When Support retrieval returns system_prompt_addition, MemoryOS prepends guardrails:
Support memory usage rules:
- Treat this as remembered customer context, not live system truth.
- Do not claim you checked, changed, refunded, cancelled, verified, located, or triggered anything unless your own tool/API result confirms it.
- If live system data is needed, say you need to check the relevant support system or call the appropriate tool.
For banking_fintech, MemoryOS also adds:
- Never ask for or repeat OTPs, passwords, full account numbers, full card numbers, Aadhaar, or PAN values.
These rules are deliberately small and deterministic. They add no extra LLM call and only a few prompt tokens.

MemoryOS versus your support tools

Production support agents should combine MemoryOS with your operational tools.
ResponsibilityShould live in
Customer remembers they prefer refundsMemoryOS
Customer has an unresolved invoice issueMemoryOS
Customer has contacted support three timesMemoryOS
Current order statusYour order system
Current invoice statusYour billing system
Account owner verificationYour CRM/auth system
Refund creationYour payment/support tool
Ticket SLA timerYour helpdesk system
The recommended production pattern:
1. Call MemoryOS get() for remembered support context.
2. Call your tools for live truth.
3. Give both to your model.
4. Store the conversation back with MemoryOS add().

PII and regulated data

The Support Schema includes extraction-time redaction for high-risk identifiers, especially for banking/fintech. Never send unnecessary sensitive data to MemoryOS. Prefer:
  • stable internal customer IDs in external_user_id
  • ticket IDs in metadata
  • account references or masked identifiers
  • concise support summaries instead of full operational records
Avoid sending:
  • raw payment card data
  • OTPs
  • passwords or access tokens
  • Aadhaar or PAN numbers
  • full bank account numbers
  • full passport numbers
  • full IMEI numbers
PNR values are allowed for travel support because they are operational booking references, not financial credentials.

Workspace dashboard endpoints

Use tenant endpoints for dashboards and support analytics.
NeedEndpoint
Customer support memory listGET /v1/tenant/customers
Aggregate support statsGET /v1/tenant/support-stats
Configure support routingPATCH /v1/tenant/support-type
Current domain configGET /v1/tenant/domain-schema
Normal model responses should use SDK get(), not dashboard endpoints.