Slack Support Triage Skill
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