cs.gohigherlevel
Get pinged here when a case is escalated or the AI can't classify one.

Taxonomy

The same live decision tree as /playbook, annotated with how many logged cases actually reached each node. 99 nodes · 94 edges. 2284 cases logged in window: all time · 1127 not yet classified in this window (last_label is NULL — shown nowhere on the tree, only here) · 485 identified as non-support mail (SPAM_OUTREACH) and EXCLUDED above — toggle below to include — a floor, not a total: some spam is still misclassified as OFF_SCRIPT or unclassified.
Refunded (Shopify)
£4,538.61 · €94.53 · ¥61,515
124 refunds executed (4 legacy, no amount on file)
Refunded (Whop)
£612.44
12 whop refunds executed (2 legacy, no amount on file)
Replacement items sent
1
1 replacement order
Manufacturer replacement requests
74
separate path: Discord message, not a Shopify order

Executed actions only (proposed/rejected/failed/superseded/cancelled/unresolved don't count as real outcomes) — from pending_actions, filtered to the same store + date window as the tree below, on execution date (falls back to creation date for legacy rows with no execution timestamp on file). Currencies are never summed together or converted — no trustworthy FX rate is available here, so a wrong blended number would be worse than three separate ones.

–

Approximation: ASKS_REFUND has three real sub-paths depending on case facts not stored per case (refund reason known? shipped yet?). Every ASKS_REFUND case here is attributed to the "we have not asked why yet" starting context — exact for a case's first-ever ASKS_REFUND message, approximate for one reached deeper into a thread. Every other node's count is an exact tally of 1157 classified cases in the current window walking cs_policy.decide()'s real ladder for their label.

123 cases reached this node root classify hub label offer step refund info escalate
Click any node for its full decide() output plus the taxonomy count.
Always-on rulesNot branches, and not tallied here — these are checked before/around the (label × rung) table for every case, so a per-node count would double-count.
LEGAL_THREAT
fires from ANY rung
always
ESCALATE ●
THREATENS_CHARGEBACK
fires from ANY rung
clear ultimatum
REPLY_INFO ●
mentioned, unclear
REPLY_INFO ●
£200 circuit breaker
applies AFTER any money action
order £150 (≤ £200)
FULL_REFUND · 150.00 GBP ●
order £350 (> £200)
ESCALATE · 350.00 GBP ●
Promise ledger override
applies for ANY label
open £80 refund promise on file
EXECUTE_PROMISE · 80.00 GBP ●
The flow
Inbound customer
message2,284
classify
Classify message
→ 1 of 17 labels1,157
opens a case
Opens a case
15 labels1,157
ADDRESS_CHANGE
▸ ADDRESS_CHANGE13
ASKS_REFUND
▸ ASKS_REFUND142
we have not asked why yet
we have not asked why yet142
reason known · not dispatched
reason known · not dispatched
reason known · already in transit
reason known · already in transit
ASKS_REPLACEMENT
▸ ASKS_REPLACEMENT4
AUTHENTICITY_DOUBT
▸ AUTHENTICITY_DOUBT17
CANCEL_REQUEST
▸ CANCEL_REQUEST115
DAMAGED
▸ DAMAGED21
LEGAL_THREAT
▸ LEGAL_THREAT43
NOT_ARRIVED
▸ NOT_ARRIVED216
OFF_SCRIPT
▸ OFF_SCRIPT225
PRODUCT_QUESTION
▸ PRODUCT_QUESTION14
SIZING_QUESTION
▸ SIZING_QUESTION14
THREATENS_CHARGEBACK
▸ THREATENS_CHARGEBACK40
WHERE_IS_ORDER
▸ WHERE_IS_ORDER148
WRONG_ITEM
▸ WRONG_ITEM29
WRONG_SIZE
▸ WRONG_SIZE116
at rung 0 · NEW
OFFER_REPLACEMENT116
ACCEPTS_OFFER · at rung 1 · REPLACEMENT_OFFERED
EXECUTE_PROMISE ●
REFUSES_OFFER · at rung 1 · REPLACEMENT_OFFERED
OFFER_DISCOUNT_10_KEEP · 10%116
ACCEPTS_OFFER · at rung 2 · KEEP_10_OFFERED
EXECUTE_PROMISE ●
REFUSES_OFFER · at rung 2 · KEEP_10_OFFERED
OFFER_DISCOUNT_20_KEEP · 20%116
ACCEPTS_OFFER · at rung 3 · KEEP_20_OFFERED
EXECUTE_PROMISE ●
REFUSES_OFFER · at rung 3 · KEEP_20_OFFERED
OFFER_PRICE_MINUS_SHIPPING116
ACCEPTS_OFFER · at rung 4 · PRICE_MINUS_SHIPPING_OFFERED
EXECUTE_PROMISE ●
REFUSES_OFFER · at rung 4 · PRICE_MINUS_SHIPPING_OFFERED
FULL_REFUND ●116
answers an offer
Answers an offer
2 labels0
ACCEPTS_OFFER
▸ ACCEPTS_OFFER
REFUSES_OFFER
▸ REFUSES_OFFER