classify-customer-inquiry — skills/triage/classify-customer-inquiry/SKILL.md
← back to all skills · test triggers
Skill: Classify Customer Inquiry
When to apply
Apply this skill when an inbound email or chat message arrives and you need to decide which specialist agent should handle it.
Inputs
- Sender address
- Subject line
- Body of the message
- Channel (email, chat, b2b portal)
Outputs
Return JSON of the form:
{
"action": "route",
"confidence": 0.0-1.0,
"reasoning": "1-2 sentence explanation",
"output": "<agent-id>"
}
Where <agent-id> is one of:
customer-service— order status, returns, complaints, general questionsorder-fulfillment— order modifications, shipping changes, address correctionslogistics— freight quotes, customs, international shippingartist-relations— licensing, royalties, contracts, artist questionsmarketing-content— content requests, product description helpsales-rep-assistant— internal-only; reps asking for helpfinance-ops— invoices, payment questions, AR follow-ups
Routing rules
- Default: route to
customer-serviceif no clearer match. - Order status, return, refund, "where is my order":
customer-service. - Address change, expedite request, modify existing order:
order-fulfillment. - International, customs, freight, oversized art shipment:
logistics. - Sender claims to be an artist, contains "license", "royalty", "contract":
artist-relations. - From an internal
@leftbankart.comaddress asking for sales help:sales-rep-assistant. - Subject or body mentions invoice, payment, past due, statement:
finance-ops.
Confidence scoring
- 0.90+ — clear single-intent message matching one rule unambiguously
- 0.70–0.89 — likely match but multiple intents present
- 0.50–0.69 — ambiguous; pick best guess, flag for review
- <0.50 — escalate to a human reviewer
Examples
Example 1: Clear order status
Subject: "Where is order #12847?" Body: "Hi, I placed an order last Tuesday and haven't received tracking yet. Can you let me know when it'll ship?"
{
"action": "route",
"confidence": 0.95,
"reasoning": "Clear order status inquiry with explicit order number.",
"output": "customer-service"
}
Example 2: International shipping
Subject: "Shipping to Canada" Body: "We're a gallery in Toronto interested in carrying your prints. What does shipping to Canada look like? Do you handle customs?"
{
"action": "route",
"confidence": 0.92,
"reasoning": "International shipping inquiry referencing customs.",
"output": "logistics"
}
Example 3: Artist licensing
Subject: "Interested in licensing my work" Body: "Hello, I'm a fine art photographer. Would you be interested in licensing some pieces from my collection?"
{
"action": "route",
"confidence": 0.96,
"reasoning": "Inbound from a photographer offering licensing.",
"output": "artist-relations"
}
Example 4: Ambiguous — refund + complaint
Subject: "Disappointed" Body: "The print I got is not what was shown on the site and I'd like a refund. This is unacceptable."
{
"action": "route",
"confidence": 0.78,
"reasoning": "Customer service handles refunds AND complaints; sentiment is negative, so flagged for human review at receipt.",
"output": "customer-service"
}
Example 5: Low confidence
Subject: "Question" Body: "Hey, I had a question about your stuff."
{
"action": "route",
"confidence": 0.40,
"reasoning": "Insufficient information to determine intent.",
"output": "customer-service"
}
Anti-patterns — do not do
- Do not guess the agent if confidence is low — always reflect uncertainty in the score.
- Do not invent an agent ID not in the list above.
- Do not include PII in the reasoning field.
- Do not skip the reasoning field even when confidence is high.