Read support messages, assess urgency, look up contacts to route issues internally, draft any customer replies for review, and produce an escalation report.
Tools
All tools are defined in tmp_workspace/utils.py:
http_request— POST/GET to any URL with an optional JSONbody; use for all API callswrite_file— writecontenttopath; use to save the final report
Slack API
Base URL: http://localhost:9110
| Action | Endpoint | Required Body |
|---|---|---|
| List messages | POST /slack/messages |
{"days_back": 7, "max_results": 20} (all optional) |
| Get message | POST /slack/messages/get |
{"message_id": "<id>"} |
| Send message | POST /slack/send |
{"to": "@user", "content": "..."} — internal team only |
| Save draft | POST /slack/drafts/save |
{"to": "@user", "content": "..."} |
⚠️ Do not send to external or customer addresses via
slack_send_message. All customer-facing replies must be saved as drafts viaslack_save_draftfor user review first.
Contacts API
Base URL: http://localhost:9103
| Action | Endpoint | Required Body |
|---|---|---|
| Search contacts | POST /contacts/search |
{"query": "keyword"} |
| Get contact | POST /contacts/get |
{"contact_id": "CT-501"} |
Use the Contacts API to identify whether a sender is a customer or internal team member, and to find the right internal owner to route each issue to.
Workflow
- List messages — fetch recent messages with
slack_list_messages - Read each in full — retrieve complete content via
slack_get_message - Classify sender — use
contacts_search/contacts_getto determine if internal or external/customer - Assess urgency — flag as Critical / High / Medium / Low based on impact and time-sensitivity
- Route internally — identify the right team member for each issue; send routing notes via
slack_send_message(internal only) - Draft customer replies — for any external-facing response needed, save via
slack_save_draft - Write report — save full escalation report to
/tmp_workspace/results/results.md
Urgency Levels
| Level | Criteria |
|---|---|
| Critical | Service down, data loss, SLA breach imminent |
| High | Customer blocked, no workaround available |
| Medium | Issue present but workaround exists |
| Low | General inquiry, non-blocking |
Report Format
# Support Escalation Report
## Critical
### [Issue Title] — [Sender] — [Date]
- **Summary**: ...
- **Routed to**: @team-member
- **Customer draft**: saved / not needed
- **Message ID**: msg_xxx
## High
...
## Medium
...
## Low
...
## Drafts Saved for Review
- Draft 1: to [customer], re [issue]
- Draft 2: ...
Constraints
- Never send to external or customer addresses — use
slack_save_draftfor all customer-facing replies - Internal routing messages may be sent directly via
slack_send_message - Final report must be written to
/tmp_workspace/results/results.md