Leftbank Art — Dust Dashboard

SIM RUNNING · 7 actions today

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 questions
  • order-fulfillment — order modifications, shipping changes, address corrections
  • logistics — freight quotes, customs, international shipping
  • artist-relations — licensing, royalties, contracts, artist questions
  • marketing-content — content requests, product description help
  • sales-rep-assistant — internal-only; reps asking for help
  • finance-ops — invoices, payment questions, AR follow-ups

Routing rules

  1. Default: route to customer-service if no clearer match.
  2. Order status, return, refund, "where is my order": customer-service.
  3. Address change, expedite request, modify existing order: order-fulfillment.
  4. International, customs, freight, oversized art shipment: logistics.
  5. Sender claims to be an artist, contains "license", "royalty", "contract": artist-relations.
  6. From an internal @leftbankart.com address asking for sales help: sales-rep-assistant.
  7. 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.