# Contact support and manage a ticket

**Flow key:** `support-ticket`

## Outcome

A user submits one sufficiently detailed support request, receives a stable ticket, and can follow secure status and replies through resolution.

## Actors

- Customer
- Support agent
- Ticketing service
- Email/chat integration

## Preconditions and entry points

- A synthetic user and product context exist.
- Categories, attachments, priority/SLA, privacy, and authentication policies are known.

## Required test data

Use synthetic, isolated, resettable data. Never use real credentials, payment instruments, private customer records, or production notifications.

| Data | Canonical valid seed | Critical variations |
|---|---|---|
| Requester | `carbon.support+001@example.test` | anonymous, authenticated, suspended, enterprise |
| Issue | subject `CARBON checkout question`; reproducible description | empty, long, emoji/emoticon, RTL, markup canary |
| Context | synthetic order `CARBON-ORDER-001` | no account, sensitive object, other tenant |
| Attachment | safe screenshot fixture | none, rejected type, boundary size, metadata with PII |
| Channel | web form | email reply, in-app chat, API/integration |

## Canonical steps

Treat this as the ordinary successful path inferred from common product behavior. Adapt it to observed labels, business rules, APIs, and implementation evidence; do not invent a requirement.

| Step | User or system action | Expected evidence |
|---:|---|---|
| 1 | Open support entry point. | Available channels, authentication, expected response, privacy, and emergency limitations are clear. |
| 2 | Choose category and enter issue/context. | Validation gathers necessary data without requesting secrets. |
| 3 | Attach only synthetic permitted evidence. | Preview, scan, redaction guidance, and access are correct. |
| 4 | Review and submit once. | One ticket with stable ID, requester, tenant, category, status, and audit is created. |
| 5 | Receive confirmation and open ticket. | Status, replies, attachments, and permitted context match. |
| 6 | Agent replies; user responds; ticket resolves/reopens. | Authorization, threading, notifications, SLA, and history stay coherent. |

## Alternate paths

- Authenticated ticket
- Anonymous contact
- Email-created ticket
- Live chat escalation
- Resolve/reopen

## Failure and recovery paths

- Duplicate ticket on retry
- Attachment leaks metadata
- Email threading creates new ticket
- Agent accesses wrong tenant
- Notification includes hidden internal note

## Completion oracle

- The stated outcome is true in visible UI and authoritative persisted state.
- Exactly one intended business result and no unintended side effect occurred.
- Identity, tenant, authorization, money/data, lifecycle, notifications, integrations, analytics, and audit agree where applicable.
- Refresh, retry, back/forward, and a second authorized read do not reveal a contradictory result.
- Any partial, delayed, canceled, failed, or unknown outcome is labeled truthfully and has a safe recovery path.

## Evidence to capture

- Entry context, actor, tenant, role, feature flags, locale, time zone, and initial identifiers/state.
- Step-level screenshots or DOM state plus request/response, correlation, job, event, and stable business IDs where available.
- Before/after authoritative records, versions, totals, permissions, lifecycle states, and downstream side effects.
- Notifications, audit events, integration deliveries, retries, deduplication, latency, and recovery evidence.
- Untested branches, unsafe-to-run cases, product decisions, and evidence tier.

## Product decisions to resolve

- Exact eligibility, required data, authorization, and validation rules.
- Which steps are synchronous, asynchronous, optional, skippable, reversible, or irreversible.
- Idempotency, concurrency, timeout, retry, cancellation, and compensation semantics.
- Retention, privacy, notification, audit, performance, accessibility, and localization commitments.

## Related CARBON items

- [email and outbound message](../../items/content/email-and-outbound-message.md)
- [in app message chat feed item](../../items/content/in-app-message-chat-feed-item.md)
- [project task subtask](../../items/records/project-task-subtask.md)
- [privacy](../../items/quality/privacy.md)

[Back to Engagement and support flows](index.md)
