Support process

Generic B2B support on DataPool support_cases: intake, severity, SLA, escalation, resolve / reopen.

Document information
FieldValue
Canonical URL/docs/07_ai-agents-and-mcp/model_skills/40_customer-support/support-process
Version (published date)2026-08-26
Tagsai, skills, support, datapool, playbooks

Kind

Sequential procedure.

Depends on

tenant-data-model.

Prerequisites

idquestionsearchif_missing_or_ambiguousdefault_to_proposebinds_to
support_cases_schemaDataPool support cases schematenant-data-modelImport firstsupport_casesTenant SKILL.md
sla_hours_sev1Target hours to first response for sev1Ask support ownerrequest_human_input4Tenant SKILL.md
sla_hours_sev2Target hours for sev2AskSame8Tenant SKILL.md
sla_hours_sev3Target hours for sev3AskSame24Tenant SKILL.md
sla_hours_sev4Target hours for sev4AskSame72Tenant SKILL.md

Import contract

FieldValue
suggested_skill_idsupport-process
version1.0.0
capabilities.toolsdescribe_datapool_table, query_datapool, insert_datapool_rows, update_datapool_rows, get-current-datetime, request_human_input
Paired model agentsupport-sla-watcher

Procedure (generic B2B)

Statuses: openwaiting_customer | waiting_internalresolvedclosed. Reopen: resolved/closedopen with a new note in the row (do not delete history).

SeverityMeaning (generic)
sev1Production stopped; no workaround
sev2Major function impaired; workaround exists
sev3Partial impairment
sev4Question 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"
    ]
  }
}

See also