Support process
Generic B2B support on DataPool support_cases: intake, severity, SLA, escalation, resolve / reopen.
Document information
| Field | Value |
|---|---|
| Canonical URL | /docs/07_ai-agents-and-mcp/model_skills/40_customer-support/support-process |
| Version (published date) | 2026-08-26 |
| Tags | ai, skills, support, datapool, playbooks |
Kind
Sequential procedure.
Depends on
tenant-data-model.
Prerequisites
| id | question | search | if_missing_or_ambiguous | default_to_propose | binds_to |
|---|---|---|---|---|---|
support_cases_schema | DataPool support cases schema | tenant-data-model | Import first | support_cases | Tenant SKILL.md |
sla_hours_sev1 | Target hours to first response for sev1 | Ask support owner | request_human_input | 4 | Tenant SKILL.md |
sla_hours_sev2 | Target hours for sev2 | Ask | Same | 8 | Tenant SKILL.md |
sla_hours_sev3 | Target hours for sev3 | Ask | Same | 24 | Tenant SKILL.md |
sla_hours_sev4 | Target hours for sev4 | Ask | Same | 72 | Tenant SKILL.md |
Import contract
| Field | Value |
|---|---|
suggested_skill_id | support-process |
version | 1.0.0 |
capabilities.tools | describe_datapool_table, query_datapool, insert_datapool_rows, update_datapool_rows, get-current-datetime, request_human_input |
| Paired model agent | support-sla-watcher |
Procedure (generic B2B)
Statuses: open → waiting_customer | waiting_internal → resolved → closed. Reopen: resolved/closed → open with a new note in the row (do not delete history).
| Severity | Meaning (generic) |
|---|---|
| sev1 | Production stopped; no workaround |
| sev2 | Major function impaired; workaround exists |
| sev3 | Partial impairment |
| sev4 | Question or cosmetic |
SLA clock: set sla_due_at from get-current-datetime plus bound hours for the severity. Escalation gate: if now > sla_due_at and status is still open or waiting_internal, notify the bound support owner via in-app (handover/notify playbook pattern: default in-app, recipient Prerequisite on the case owner_user_id).
DoD — resolved: customer-visible outcome recorded; status=resolved. DoD — closed: no reopen within the org’s policy; status=closed. This playbook does not invent a reopen window; if unset, close only when the operator confirms.
Tenant SKILL.md (copy this body)
# Support process
Operate cases in DataPool schema `{{support_cases_schema}}`. Load `datapool` and tenant skill `tenant-data-model`.
SLA hours: sev1={{sla_hours_sev1}}, sev2={{sla_hours_sev2}}, sev3={{sla_hours_sev3}}, sev4={{sla_hours_sev4}}.
## Sequence
1. `describe_datapool_table` then `query_datapool`.
2. On intake, set `severity` and `sla_due_at` (now + bound hours). Default notify channel is in-app to `owner_user_id`.
3. Move status only along the allowed path. Escalation: overdue SLA and still open/waiting_internal.
4. Resolve then close. Reopen by returning to `open`; do not delete the row.
## Stop
- Do not invent severity.
- Do not silently extend SLA.
- Do not use Mattermost or email unless the operator bound a different notify channel on a related handover skill.
Optional skill.json
{
"name": "support-process",
"version": "1.0.0",
"description": "Support intake, severity, SLA, and resolve/reopen on DataPool cases.",
"capabilities": {
"prompt": ["Set sla_due_at from bound hours. Default notify is in-app."],
"resources": [],
"tools": [
"describe_datapool_table",
"query_datapool",
"insert_datapool_rows",
"update_datapool_rows",
"get-current-datetime",
"request_human_input"
]
}
}