Performance & cost
This session
- Delivery time · median
- —
- Live model compute
- —
- Live input tokens
- 0
- Est. cost · USD
- $0.00
Bypass examples to measure live inference. Uses your quota.
Measurement details · 0 successful requests
- Successful requests
- 0
Run an example for free to see its measurements.
Model compute is the average per measured request. Delivery time is the median browser time for successful requests, including queue, network, and retries. Cached delivery speed is not inference speed. Model compute can exceed browser time when one request processes many inputs.
Tokens come from response headers. Inference costs use $0.04 per million input tokens, before plan credits. The estimate includes live and recorded tokens at the same rate; cached examples are not charged again. Missing usage is unavailable or a partial total (≥). Demo resets keep these totals; reload to start a new session.
Run all 8 chats, then open a conversation.
Build with the SDKTypeScript · Python · dm1
One request from this demo. Copy it into your app.
Uses your MS_API_KEY and quota. Keep the key on your server.
npm install @cloudraker/milliseconds
export MS_API_KEY="your-api-key"import { DecisionMachine } from "@cloudraker/milliseconds";
// Run on your server; reads MS_API_KEY from the environment.
const dm = new DecisionMachine();
const { result, usage } = await dm.classify(
[
"Profile: pro plan, 14 months, 2 prior tickets.\nLATEST Customer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nLATEST Customer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nLATEST Customer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nLATEST Customer: I'd like the duplicate refunded to my card please, not as account credit.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nCustomer: I'd like the duplicate refunded to my card please, not as account credit.\nLATEST Customer: How long will the refund take to show up?",
"Profile: starter plan, 3 months, 0 prior tickets.\nLATEST Customer: I can't log in — it says my account is locked after too many attempts.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nLATEST Customer: I tried the reset password link but it had expired by the time I opened it.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nLATEST Customer: Also my 2FA is on my old phone which I don't have anymore.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nLATEST Customer: Got the new link and I'm in now, thanks.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nCustomer: Got the new link and I'm in now, thanks.\nLATEST Customer: Can I add a backup email so this doesn't happen again?",
"Profile: business plan, 26 months, 6 prior tickets.\nLATEST Customer: Your API has been down three times this month. We are losing customers over this.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nLATEST Customer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nLATEST Customer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nLATEST Customer: I want a manager. Not a macro.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nCustomer: I want a manager. Not a macro.\nLATEST Customer: Fine. What is the SLA credit for this month then?",
"Profile: free plan, 1 months, 0 prior tickets.\nLATEST Customer: Hey! Does the free plan support exporting boards to CSV?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nLATEST Customer: Cool — and can I schedule the export to run weekly?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nLATEST Customer: Is that on the roadmap or would I need Pro for it?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nLATEST Customer: Got it, thanks! One more: is there a Zapier integration?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nCustomer: Got it, thanks! One more: is there a Zapier integration?\nLATEST Customer: Perfect, that's all I needed 🙂",
"Profile: starter plan, 9 months, 1 prior tickets.\nLATEST Customer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nLATEST Customer: Before deletion I also want a copy of the data you hold, under Article 15.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nLATEST Customer: What is the legal timeline for you to complete this?",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nLATEST Customer: Please confirm in writing when it is done.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nCustomer: Please confirm in writing when it is done.\nLATEST Customer: Thank you.",
"Profile: pro plan, 5 months, 1 prior tickets.\nLATEST Customer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nLATEST Customer: The carrier site just says 'in transit'. No other details.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nLATEST Customer: I need it before I fly out on Saturday — is there anything you can do?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nLATEST Customer: Can you just ship a replacement overnight?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nCustomer: Can you just ship a replacement overnight?\nLATEST Customer: Okay. If the first one shows up I'll send it back.",
"Profile: business plan, 18 months, 3 prior tickets.\nLATEST Customer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)",
"Profile: business plan, 18 months, 3 prior tickets.\nCustomer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)\nLATEST Customer: All retries fail with the same upstream timeout. Our endpoint returns 200 in 40 ms when I curl it directly."
],
{
"duplicate_charge_refund": "Duplicate charge — refund: Apologize for a duplicate or incorrect charge and confirm the extra amount will be refunded to the original payment method within 5–10 business days.",
"account_unlock_reset": "Account locked — reset link: Unlock a locked account and send a fresh password-reset link; explain the link expires in 30 minutes.",
"two_factor_recovery": "2FA recovery — verify identity: Customer lost their 2FA device; explain the identity-verification steps needed before 2FA can be reset.",
"escalate_to_supervisor": "Escalate to supervisor: Customer demands a manager or is at serious risk of leaving; acknowledge the severity, escalate to a supervisor and commit to a callback within one hour.",
"sla_credit": "SLA credit for outage: Customer asks about compensation for downtime; explain how SLA credits are calculated and that finance applies them to the next invoice.",
"feature_availability_by_plan": "Feature availability by plan: Answer whether a feature exists and which plan includes it, and link to the plan comparison page.",
"feature_request_logged": "Not available — request logged: The requested capability does not exist yet; log a feature request and explain that the roadmap is public.",
"privacy_data_request": "GDPR/CCPA data request: Acknowledge a data access or erasure request, explain identity verification, commit to the 30-day statutory timeline and written confirmation.",
"shipping_tracking_update": "Shipping — tracking check: Physical order is late; apologize, open a trace with the carrier and promise an update within 24 hours.",
"shipping_replacement": "Shipping — send replacement: Customer needs the item urgently or it is lost; ship a replacement with expedited delivery and provide return instructions for the original.",
"bug_acknowledged_engineering": "Bug — forwarded to engineering: Customer reports a bug with technical details; thank them for the logs, confirm it has been reproduced or filed with engineering and share how they will be updated.",
"guided_walkthrough": "Patient step-by-step walkthrough: Customer is confused by the interface; give a reassuring, plain-language, one-step-at-a-time walkthrough.",
"none": "No canned reply fits the latest customer message; the agent should write a custom reply, for example the customer is only saying thanks, confirming the problem is solved, or asking a follow-up the macros above do not cover."
}
).withUsage();
console.log(result);
console.log({ inputTokens: usage.inputTokens, modelMs: usage.inferenceMs });import { DecisionMachine } from "@cloudraker/milliseconds";
// Run on your server; reads MS_API_KEY from the environment.
const dm = new DecisionMachine();
const { result, usage } = await dm.rate(
[
"Profile: pro plan, 14 months, 2 prior tickets.\nLATEST Customer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nLATEST Customer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nLATEST Customer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nLATEST Customer: I'd like the duplicate refunded to my card please, not as account credit.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nCustomer: I'd like the duplicate refunded to my card please, not as account credit.\nLATEST Customer: How long will the refund take to show up?",
"Profile: starter plan, 3 months, 0 prior tickets.\nLATEST Customer: I can't log in — it says my account is locked after too many attempts.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nLATEST Customer: I tried the reset password link but it had expired by the time I opened it.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nLATEST Customer: Also my 2FA is on my old phone which I don't have anymore.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nLATEST Customer: Got the new link and I'm in now, thanks.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nCustomer: Got the new link and I'm in now, thanks.\nLATEST Customer: Can I add a backup email so this doesn't happen again?",
"Profile: business plan, 26 months, 6 prior tickets.\nLATEST Customer: Your API has been down three times this month. We are losing customers over this.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nLATEST Customer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nLATEST Customer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nLATEST Customer: I want a manager. Not a macro.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nCustomer: I want a manager. Not a macro.\nLATEST Customer: Fine. What is the SLA credit for this month then?",
"Profile: free plan, 1 months, 0 prior tickets.\nLATEST Customer: Hey! Does the free plan support exporting boards to CSV?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nLATEST Customer: Cool — and can I schedule the export to run weekly?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nLATEST Customer: Is that on the roadmap or would I need Pro for it?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nLATEST Customer: Got it, thanks! One more: is there a Zapier integration?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nCustomer: Got it, thanks! One more: is there a Zapier integration?\nLATEST Customer: Perfect, that's all I needed 🙂",
"Profile: starter plan, 9 months, 1 prior tickets.\nLATEST Customer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nLATEST Customer: Before deletion I also want a copy of the data you hold, under Article 15.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nLATEST Customer: What is the legal timeline for you to complete this?",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nLATEST Customer: Please confirm in writing when it is done.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nCustomer: Please confirm in writing when it is done.\nLATEST Customer: Thank you.",
"Profile: pro plan, 5 months, 1 prior tickets.\nLATEST Customer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nLATEST Customer: The carrier site just says 'in transit'. No other details.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nLATEST Customer: I need it before I fly out on Saturday — is there anything you can do?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nLATEST Customer: Can you just ship a replacement overnight?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nCustomer: Can you just ship a replacement overnight?\nLATEST Customer: Okay. If the first one shows up I'll send it back.",
"Profile: business plan, 18 months, 3 prior tickets.\nLATEST Customer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)",
"Profile: business plan, 18 months, 3 prior tickets.\nCustomer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)\nLATEST Customer: All retries fail with the same upstream timeout. Our endpoint returns 200 in 40 ms when I curl it directly."
],
[
"The customer is satisfied, neutral, or only asking a question",
"Mildly dissatisfied about one thing, with no mention of leaving",
"Repeated failures or a comparison with a competitor; leaving is plausible",
"Says outright they will cancel, switch provider or leave"
]
).withUsage();
console.log(result);
console.log({ inputTokens: usage.inputTokens, modelMs: usage.inferenceMs });import { DecisionMachine } from "@cloudraker/milliseconds";
// Run on your server; reads MS_API_KEY from the environment.
const dm = new DecisionMachine();
const { result, usage } = await dm.yesNo(
[
"Profile: pro plan, 14 months, 2 prior tickets.\nLATEST Customer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nLATEST Customer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nLATEST Customer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nLATEST Customer: I'd like the duplicate refunded to my card please, not as account credit.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nCustomer: I'd like the duplicate refunded to my card please, not as account credit.\nLATEST Customer: How long will the refund take to show up?",
"Profile: starter plan, 3 months, 0 prior tickets.\nLATEST Customer: I can't log in — it says my account is locked after too many attempts.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nLATEST Customer: I tried the reset password link but it had expired by the time I opened it.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nLATEST Customer: Also my 2FA is on my old phone which I don't have anymore.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nLATEST Customer: Got the new link and I'm in now, thanks.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nCustomer: Got the new link and I'm in now, thanks.\nLATEST Customer: Can I add a backup email so this doesn't happen again?",
"Profile: business plan, 26 months, 6 prior tickets.\nLATEST Customer: Your API has been down three times this month. We are losing customers over this.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nLATEST Customer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nLATEST Customer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nLATEST Customer: I want a manager. Not a macro.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nCustomer: I want a manager. Not a macro.\nLATEST Customer: Fine. What is the SLA credit for this month then?",
"Profile: free plan, 1 months, 0 prior tickets.\nLATEST Customer: Hey! Does the free plan support exporting boards to CSV?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nLATEST Customer: Cool — and can I schedule the export to run weekly?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nLATEST Customer: Is that on the roadmap or would I need Pro for it?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nLATEST Customer: Got it, thanks! One more: is there a Zapier integration?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nCustomer: Got it, thanks! One more: is there a Zapier integration?\nLATEST Customer: Perfect, that's all I needed 🙂",
"Profile: starter plan, 9 months, 1 prior tickets.\nLATEST Customer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nLATEST Customer: Before deletion I also want a copy of the data you hold, under Article 15.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nLATEST Customer: What is the legal timeline for you to complete this?",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nLATEST Customer: Please confirm in writing when it is done.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nCustomer: Please confirm in writing when it is done.\nLATEST Customer: Thank you.",
"Profile: pro plan, 5 months, 1 prior tickets.\nLATEST Customer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nLATEST Customer: The carrier site just says 'in transit'. No other details.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nLATEST Customer: I need it before I fly out on Saturday — is there anything you can do?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nLATEST Customer: Can you just ship a replacement overnight?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nCustomer: Can you just ship a replacement overnight?\nLATEST Customer: Okay. If the first one shows up I'll send it back.",
"Profile: business plan, 18 months, 3 prior tickets.\nLATEST Customer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)",
"Profile: business plan, 18 months, 3 prior tickets.\nCustomer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)\nLATEST Customer: All retries fail with the same upstream timeout. Our endpoint returns 200 in 40 ms when I curl it directly."
],
[
"The customer asks for a manager, a supervisor or a human decision maker.",
"The customer says they will cancel, leave or switch to a competitor.",
"The customer makes a demand under a law or regulation, such as GDPR, CCPA, erasure or data access.",
"The customer asks for money back: a refund, chargeback, reimbursement or account credit.",
"Something on the company's side went wrong for this customer, rather than a neutral question, a user-side issue, or the customer thanking us.",
"The customer's request is a simple question or a standard account action.",
"The issue is beyond what a front-line agent can settle alone, or the customer is too angry to close the chat today.",
"The chat is over: the line marked LATEST Customer is the customer's goodbye or thank-you. Whatever they asked for earlier does not count here — judge that one line alone."
]
).withUsage();
console.log(result);
console.log({ inputTokens: usage.inputTokens, modelMs: usage.inferenceMs });pip install cloudraker-milliseconds
export MS_API_KEY="your-api-key"from milliseconds import DecisionMachine
# Reads MS_API_KEY from the environment.
dm = DecisionMachine()
result = dm.classify(
[
"Profile: pro plan, 14 months, 2 prior tickets.\nLATEST Customer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nLATEST Customer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nLATEST Customer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nLATEST Customer: I'd like the duplicate refunded to my card please, not as account credit.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nCustomer: I'd like the duplicate refunded to my card please, not as account credit.\nLATEST Customer: How long will the refund take to show up?",
"Profile: starter plan, 3 months, 0 prior tickets.\nLATEST Customer: I can't log in — it says my account is locked after too many attempts.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nLATEST Customer: I tried the reset password link but it had expired by the time I opened it.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nLATEST Customer: Also my 2FA is on my old phone which I don't have anymore.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nLATEST Customer: Got the new link and I'm in now, thanks.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nCustomer: Got the new link and I'm in now, thanks.\nLATEST Customer: Can I add a backup email so this doesn't happen again?",
"Profile: business plan, 26 months, 6 prior tickets.\nLATEST Customer: Your API has been down three times this month. We are losing customers over this.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nLATEST Customer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nLATEST Customer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nLATEST Customer: I want a manager. Not a macro.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nCustomer: I want a manager. Not a macro.\nLATEST Customer: Fine. What is the SLA credit for this month then?",
"Profile: free plan, 1 months, 0 prior tickets.\nLATEST Customer: Hey! Does the free plan support exporting boards to CSV?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nLATEST Customer: Cool — and can I schedule the export to run weekly?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nLATEST Customer: Is that on the roadmap or would I need Pro for it?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nLATEST Customer: Got it, thanks! One more: is there a Zapier integration?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nCustomer: Got it, thanks! One more: is there a Zapier integration?\nLATEST Customer: Perfect, that's all I needed 🙂",
"Profile: starter plan, 9 months, 1 prior tickets.\nLATEST Customer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nLATEST Customer: Before deletion I also want a copy of the data you hold, under Article 15.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nLATEST Customer: What is the legal timeline for you to complete this?",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nLATEST Customer: Please confirm in writing when it is done.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nCustomer: Please confirm in writing when it is done.\nLATEST Customer: Thank you.",
"Profile: pro plan, 5 months, 1 prior tickets.\nLATEST Customer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nLATEST Customer: The carrier site just says 'in transit'. No other details.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nLATEST Customer: I need it before I fly out on Saturday — is there anything you can do?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nLATEST Customer: Can you just ship a replacement overnight?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nCustomer: Can you just ship a replacement overnight?\nLATEST Customer: Okay. If the first one shows up I'll send it back.",
"Profile: business plan, 18 months, 3 prior tickets.\nLATEST Customer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)",
"Profile: business plan, 18 months, 3 prior tickets.\nCustomer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)\nLATEST Customer: All retries fail with the same upstream timeout. Our endpoint returns 200 in 40 ms when I curl it directly."
],
{
"duplicate_charge_refund": "Duplicate charge — refund: Apologize for a duplicate or incorrect charge and confirm the extra amount will be refunded to the original payment method within 5–10 business days.",
"account_unlock_reset": "Account locked — reset link: Unlock a locked account and send a fresh password-reset link; explain the link expires in 30 minutes.",
"two_factor_recovery": "2FA recovery — verify identity: Customer lost their 2FA device; explain the identity-verification steps needed before 2FA can be reset.",
"escalate_to_supervisor": "Escalate to supervisor: Customer demands a manager or is at serious risk of leaving; acknowledge the severity, escalate to a supervisor and commit to a callback within one hour.",
"sla_credit": "SLA credit for outage: Customer asks about compensation for downtime; explain how SLA credits are calculated and that finance applies them to the next invoice.",
"feature_availability_by_plan": "Feature availability by plan: Answer whether a feature exists and which plan includes it, and link to the plan comparison page.",
"feature_request_logged": "Not available — request logged: The requested capability does not exist yet; log a feature request and explain that the roadmap is public.",
"privacy_data_request": "GDPR/CCPA data request: Acknowledge a data access or erasure request, explain identity verification, commit to the 30-day statutory timeline and written confirmation.",
"shipping_tracking_update": "Shipping — tracking check: Physical order is late; apologize, open a trace with the carrier and promise an update within 24 hours.",
"shipping_replacement": "Shipping — send replacement: Customer needs the item urgently or it is lost; ship a replacement with expedited delivery and provide return instructions for the original.",
"bug_acknowledged_engineering": "Bug — forwarded to engineering: Customer reports a bug with technical details; thank them for the logs, confirm it has been reproduced or filed with engineering and share how they will be updated.",
"guided_walkthrough": "Patient step-by-step walkthrough: Customer is confused by the interface; give a reassuring, plain-language, one-step-at-a-time walkthrough.",
"none": "No canned reply fits the latest customer message; the agent should write a custom reply, for example the customer is only saying thanks, confirming the problem is solved, or asking a follow-up the macros above do not cover."
}
)
print(result)from milliseconds import DecisionMachine
# Reads MS_API_KEY from the environment.
dm = DecisionMachine()
result = dm.rate(
[
"Profile: pro plan, 14 months, 2 prior tickets.\nLATEST Customer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nLATEST Customer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nLATEST Customer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nLATEST Customer: I'd like the duplicate refunded to my card please, not as account credit.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nCustomer: I'd like the duplicate refunded to my card please, not as account credit.\nLATEST Customer: How long will the refund take to show up?",
"Profile: starter plan, 3 months, 0 prior tickets.\nLATEST Customer: I can't log in — it says my account is locked after too many attempts.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nLATEST Customer: I tried the reset password link but it had expired by the time I opened it.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nLATEST Customer: Also my 2FA is on my old phone which I don't have anymore.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nLATEST Customer: Got the new link and I'm in now, thanks.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nCustomer: Got the new link and I'm in now, thanks.\nLATEST Customer: Can I add a backup email so this doesn't happen again?",
"Profile: business plan, 26 months, 6 prior tickets.\nLATEST Customer: Your API has been down three times this month. We are losing customers over this.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nLATEST Customer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nLATEST Customer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nLATEST Customer: I want a manager. Not a macro.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nCustomer: I want a manager. Not a macro.\nLATEST Customer: Fine. What is the SLA credit for this month then?",
"Profile: free plan, 1 months, 0 prior tickets.\nLATEST Customer: Hey! Does the free plan support exporting boards to CSV?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nLATEST Customer: Cool — and can I schedule the export to run weekly?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nLATEST Customer: Is that on the roadmap or would I need Pro for it?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nLATEST Customer: Got it, thanks! One more: is there a Zapier integration?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nCustomer: Got it, thanks! One more: is there a Zapier integration?\nLATEST Customer: Perfect, that's all I needed 🙂",
"Profile: starter plan, 9 months, 1 prior tickets.\nLATEST Customer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nLATEST Customer: Before deletion I also want a copy of the data you hold, under Article 15.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nLATEST Customer: What is the legal timeline for you to complete this?",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nLATEST Customer: Please confirm in writing when it is done.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nCustomer: Please confirm in writing when it is done.\nLATEST Customer: Thank you.",
"Profile: pro plan, 5 months, 1 prior tickets.\nLATEST Customer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nLATEST Customer: The carrier site just says 'in transit'. No other details.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nLATEST Customer: I need it before I fly out on Saturday — is there anything you can do?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nLATEST Customer: Can you just ship a replacement overnight?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nCustomer: Can you just ship a replacement overnight?\nLATEST Customer: Okay. If the first one shows up I'll send it back.",
"Profile: business plan, 18 months, 3 prior tickets.\nLATEST Customer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)",
"Profile: business plan, 18 months, 3 prior tickets.\nCustomer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)\nLATEST Customer: All retries fail with the same upstream timeout. Our endpoint returns 200 in 40 ms when I curl it directly."
],
[
"The customer is satisfied, neutral, or only asking a question",
"Mildly dissatisfied about one thing, with no mention of leaving",
"Repeated failures or a comparison with a competitor; leaving is plausible",
"Says outright they will cancel, switch provider or leave"
]
)
print(result)from milliseconds import DecisionMachine
# Reads MS_API_KEY from the environment.
dm = DecisionMachine()
result = dm.yes_no(
[
"Profile: pro plan, 14 months, 2 prior tickets.\nLATEST Customer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nLATEST Customer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nLATEST Customer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nLATEST Customer: I'd like the duplicate refunded to my card please, not as account credit.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nCustomer: I'd like the duplicate refunded to my card please, not as account credit.\nLATEST Customer: How long will the refund take to show up?",
"Profile: starter plan, 3 months, 0 prior tickets.\nLATEST Customer: I can't log in — it says my account is locked after too many attempts.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nLATEST Customer: I tried the reset password link but it had expired by the time I opened it.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nLATEST Customer: Also my 2FA is on my old phone which I don't have anymore.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nLATEST Customer: Got the new link and I'm in now, thanks.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nCustomer: Got the new link and I'm in now, thanks.\nLATEST Customer: Can I add a backup email so this doesn't happen again?",
"Profile: business plan, 26 months, 6 prior tickets.\nLATEST Customer: Your API has been down three times this month. We are losing customers over this.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nLATEST Customer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nLATEST Customer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nLATEST Customer: I want a manager. Not a macro.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nCustomer: I want a manager. Not a macro.\nLATEST Customer: Fine. What is the SLA credit for this month then?",
"Profile: free plan, 1 months, 0 prior tickets.\nLATEST Customer: Hey! Does the free plan support exporting boards to CSV?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nLATEST Customer: Cool — and can I schedule the export to run weekly?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nLATEST Customer: Is that on the roadmap or would I need Pro for it?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nLATEST Customer: Got it, thanks! One more: is there a Zapier integration?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nCustomer: Got it, thanks! One more: is there a Zapier integration?\nLATEST Customer: Perfect, that's all I needed 🙂",
"Profile: starter plan, 9 months, 1 prior tickets.\nLATEST Customer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nLATEST Customer: Before deletion I also want a copy of the data you hold, under Article 15.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nLATEST Customer: What is the legal timeline for you to complete this?",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nLATEST Customer: Please confirm in writing when it is done.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nCustomer: Please confirm in writing when it is done.\nLATEST Customer: Thank you.",
"Profile: pro plan, 5 months, 1 prior tickets.\nLATEST Customer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nLATEST Customer: The carrier site just says 'in transit'. No other details.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nLATEST Customer: I need it before I fly out on Saturday — is there anything you can do?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nLATEST Customer: Can you just ship a replacement overnight?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nCustomer: Can you just ship a replacement overnight?\nLATEST Customer: Okay. If the first one shows up I'll send it back.",
"Profile: business plan, 18 months, 3 prior tickets.\nLATEST Customer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)",
"Profile: business plan, 18 months, 3 prior tickets.\nCustomer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)\nLATEST Customer: All retries fail with the same upstream timeout. Our endpoint returns 200 in 40 ms when I curl it directly."
],
[
"The customer asks for a manager, a supervisor or a human decision maker.",
"The customer says they will cancel, leave or switch to a competitor.",
"The customer makes a demand under a law or regulation, such as GDPR, CCPA, erasure or data access.",
"The customer asks for money back: a refund, chargeback, reimbursement or account credit.",
"Something on the company's side went wrong for this customer, rather than a neutral question, a user-side issue, or the customer thanking us.",
"The customer's request is a simple question or a standard account action.",
"The issue is beyond what a front-line agent can settle alone, or the customer is too angry to close the chat today.",
"The chat is over: the line marked LATEST Customer is the customer's goodbye or thank-you. Whatever they asked for earlier does not count here — judge that one line alone."
]
)
print(result)npm install -g @cloudraker/milliseconds
export MS_API_KEY="your-api-key"# Reads MS_API_KEY. JSON on stdin supplies the complete request.
dm1 classify --json --usage <<'DM1_REQUEST'
{
"texts": [
"Profile: pro plan, 14 months, 2 prior tickets.\nLATEST Customer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nLATEST Customer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nLATEST Customer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nLATEST Customer: I'd like the duplicate refunded to my card please, not as account credit.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nCustomer: I'd like the duplicate refunded to my card please, not as account credit.\nLATEST Customer: How long will the refund take to show up?",
"Profile: starter plan, 3 months, 0 prior tickets.\nLATEST Customer: I can't log in — it says my account is locked after too many attempts.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nLATEST Customer: I tried the reset password link but it had expired by the time I opened it.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nLATEST Customer: Also my 2FA is on my old phone which I don't have anymore.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nLATEST Customer: Got the new link and I'm in now, thanks.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nCustomer: Got the new link and I'm in now, thanks.\nLATEST Customer: Can I add a backup email so this doesn't happen again?",
"Profile: business plan, 26 months, 6 prior tickets.\nLATEST Customer: Your API has been down three times this month. We are losing customers over this.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nLATEST Customer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nLATEST Customer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nLATEST Customer: I want a manager. Not a macro.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nCustomer: I want a manager. Not a macro.\nLATEST Customer: Fine. What is the SLA credit for this month then?",
"Profile: free plan, 1 months, 0 prior tickets.\nLATEST Customer: Hey! Does the free plan support exporting boards to CSV?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nLATEST Customer: Cool — and can I schedule the export to run weekly?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nLATEST Customer: Is that on the roadmap or would I need Pro for it?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nLATEST Customer: Got it, thanks! One more: is there a Zapier integration?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nCustomer: Got it, thanks! One more: is there a Zapier integration?\nLATEST Customer: Perfect, that's all I needed 🙂",
"Profile: starter plan, 9 months, 1 prior tickets.\nLATEST Customer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nLATEST Customer: Before deletion I also want a copy of the data you hold, under Article 15.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nLATEST Customer: What is the legal timeline for you to complete this?",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nLATEST Customer: Please confirm in writing when it is done.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nCustomer: Please confirm in writing when it is done.\nLATEST Customer: Thank you.",
"Profile: pro plan, 5 months, 1 prior tickets.\nLATEST Customer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nLATEST Customer: The carrier site just says 'in transit'. No other details.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nLATEST Customer: I need it before I fly out on Saturday — is there anything you can do?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nLATEST Customer: Can you just ship a replacement overnight?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nCustomer: Can you just ship a replacement overnight?\nLATEST Customer: Okay. If the first one shows up I'll send it back.",
"Profile: business plan, 18 months, 3 prior tickets.\nLATEST Customer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)",
"Profile: business plan, 18 months, 3 prior tickets.\nCustomer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)\nLATEST Customer: All retries fail with the same upstream timeout. Our endpoint returns 200 in 40 ms when I curl it directly."
],
"labels": {
"duplicate_charge_refund": "Duplicate charge — refund: Apologize for a duplicate or incorrect charge and confirm the extra amount will be refunded to the original payment method within 5–10 business days.",
"account_unlock_reset": "Account locked — reset link: Unlock a locked account and send a fresh password-reset link; explain the link expires in 30 minutes.",
"two_factor_recovery": "2FA recovery — verify identity: Customer lost their 2FA device; explain the identity-verification steps needed before 2FA can be reset.",
"escalate_to_supervisor": "Escalate to supervisor: Customer demands a manager or is at serious risk of leaving; acknowledge the severity, escalate to a supervisor and commit to a callback within one hour.",
"sla_credit": "SLA credit for outage: Customer asks about compensation for downtime; explain how SLA credits are calculated and that finance applies them to the next invoice.",
"feature_availability_by_plan": "Feature availability by plan: Answer whether a feature exists and which plan includes it, and link to the plan comparison page.",
"feature_request_logged": "Not available — request logged: The requested capability does not exist yet; log a feature request and explain that the roadmap is public.",
"privacy_data_request": "GDPR/CCPA data request: Acknowledge a data access or erasure request, explain identity verification, commit to the 30-day statutory timeline and written confirmation.",
"shipping_tracking_update": "Shipping — tracking check: Physical order is late; apologize, open a trace with the carrier and promise an update within 24 hours.",
"shipping_replacement": "Shipping — send replacement: Customer needs the item urgently or it is lost; ship a replacement with expedited delivery and provide return instructions for the original.",
"bug_acknowledged_engineering": "Bug — forwarded to engineering: Customer reports a bug with technical details; thank them for the logs, confirm it has been reproduced or filed with engineering and share how they will be updated.",
"guided_walkthrough": "Patient step-by-step walkthrough: Customer is confused by the interface; give a reassuring, plain-language, one-step-at-a-time walkthrough.",
"none": "No canned reply fits the latest customer message; the agent should write a custom reply, for example the customer is only saying thanks, confirming the problem is solved, or asking a follow-up the macros above do not cover."
}
}
DM1_REQUEST# Reads MS_API_KEY. JSON on stdin supplies the complete request.
dm1 rate --json --usage <<'DM1_REQUEST'
{
"texts": [
"Profile: pro plan, 14 months, 2 prior tickets.\nLATEST Customer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nLATEST Customer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nLATEST Customer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nLATEST Customer: I'd like the duplicate refunded to my card please, not as account credit.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nCustomer: I'd like the duplicate refunded to my card please, not as account credit.\nLATEST Customer: How long will the refund take to show up?",
"Profile: starter plan, 3 months, 0 prior tickets.\nLATEST Customer: I can't log in — it says my account is locked after too many attempts.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nLATEST Customer: I tried the reset password link but it had expired by the time I opened it.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nLATEST Customer: Also my 2FA is on my old phone which I don't have anymore.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nLATEST Customer: Got the new link and I'm in now, thanks.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nCustomer: Got the new link and I'm in now, thanks.\nLATEST Customer: Can I add a backup email so this doesn't happen again?",
"Profile: business plan, 26 months, 6 prior tickets.\nLATEST Customer: Your API has been down three times this month. We are losing customers over this.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nLATEST Customer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nLATEST Customer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nLATEST Customer: I want a manager. Not a macro.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nCustomer: I want a manager. Not a macro.\nLATEST Customer: Fine. What is the SLA credit for this month then?",
"Profile: free plan, 1 months, 0 prior tickets.\nLATEST Customer: Hey! Does the free plan support exporting boards to CSV?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nLATEST Customer: Cool — and can I schedule the export to run weekly?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nLATEST Customer: Is that on the roadmap or would I need Pro for it?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nLATEST Customer: Got it, thanks! One more: is there a Zapier integration?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nCustomer: Got it, thanks! One more: is there a Zapier integration?\nLATEST Customer: Perfect, that's all I needed 🙂",
"Profile: starter plan, 9 months, 1 prior tickets.\nLATEST Customer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nLATEST Customer: Before deletion I also want a copy of the data you hold, under Article 15.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nLATEST Customer: What is the legal timeline for you to complete this?",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nLATEST Customer: Please confirm in writing when it is done.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nCustomer: Please confirm in writing when it is done.\nLATEST Customer: Thank you.",
"Profile: pro plan, 5 months, 1 prior tickets.\nLATEST Customer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nLATEST Customer: The carrier site just says 'in transit'. No other details.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nLATEST Customer: I need it before I fly out on Saturday — is there anything you can do?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nLATEST Customer: Can you just ship a replacement overnight?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nCustomer: Can you just ship a replacement overnight?\nLATEST Customer: Okay. If the first one shows up I'll send it back.",
"Profile: business plan, 18 months, 3 prior tickets.\nLATEST Customer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)",
"Profile: business plan, 18 months, 3 prior tickets.\nCustomer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)\nLATEST Customer: All retries fail with the same upstream timeout. Our endpoint returns 200 in 40 ms when I curl it directly."
],
"scale": [
"The customer is satisfied, neutral, or only asking a question",
"Mildly dissatisfied about one thing, with no mention of leaving",
"Repeated failures or a comparison with a competitor; leaving is plausible",
"Says outright they will cancel, switch provider or leave"
]
}
DM1_REQUEST# Reads MS_API_KEY. JSON on stdin supplies the complete request.
dm1 yes-no --json --usage <<'DM1_REQUEST'
{
"texts": [
"Profile: pro plan, 14 months, 2 prior tickets.\nLATEST Customer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nLATEST Customer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nLATEST Customer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nLATEST Customer: I'd like the duplicate refunded to my card please, not as account credit.",
"Profile: pro plan, 14 months, 2 prior tickets.\nCustomer: Hi, I was charged twice this month — two $49 charges on the 3rd and again on the 4th.\nCustomer: I only have one workspace, so there's no reason for a second charge. I've got the bank statement in front of me.\nCustomer: This is the second time this has happened, honestly. Last time it took two weeks to sort out.\nCustomer: I'd like the duplicate refunded to my card please, not as account credit.\nLATEST Customer: How long will the refund take to show up?",
"Profile: starter plan, 3 months, 0 prior tickets.\nLATEST Customer: I can't log in — it says my account is locked after too many attempts.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nLATEST Customer: I tried the reset password link but it had expired by the time I opened it.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nLATEST Customer: Also my 2FA is on my old phone which I don't have anymore.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nLATEST Customer: Got the new link and I'm in now, thanks.",
"Profile: starter plan, 3 months, 0 prior tickets.\nCustomer: I can't log in — it says my account is locked after too many attempts.\nCustomer: I tried the reset password link but it had expired by the time I opened it.\nCustomer: Also my 2FA is on my old phone which I don't have anymore.\nCustomer: Got the new link and I'm in now, thanks.\nLATEST Customer: Can I add a backup email so this doesn't happen again?",
"Profile: business plan, 26 months, 6 prior tickets.\nLATEST Customer: Your API has been down three times this month. We are losing customers over this.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nLATEST Customer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nLATEST Customer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nLATEST Customer: I want a manager. Not a macro.",
"Profile: business plan, 26 months, 6 prior tickets.\nCustomer: Your API has been down three times this month. We are losing customers over this.\nCustomer: I've opened SIX tickets this year and every single time I get the same copy-paste apology.\nCustomer: If I don't hear from someone who can actually make decisions, I'm moving my whole team to a competitor on Friday.\nCustomer: I want a manager. Not a macro.\nLATEST Customer: Fine. What is the SLA credit for this month then?",
"Profile: free plan, 1 months, 0 prior tickets.\nLATEST Customer: Hey! Does the free plan support exporting boards to CSV?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nLATEST Customer: Cool — and can I schedule the export to run weekly?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nLATEST Customer: Is that on the roadmap or would I need Pro for it?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nLATEST Customer: Got it, thanks! One more: is there a Zapier integration?",
"Profile: free plan, 1 months, 0 prior tickets.\nCustomer: Hey! Does the free plan support exporting boards to CSV?\nCustomer: Cool — and can I schedule the export to run weekly?\nCustomer: Is that on the roadmap or would I need Pro for it?\nCustomer: Got it, thanks! One more: is there a Zapier integration?\nLATEST Customer: Perfect, that's all I needed 🙂",
"Profile: starter plan, 9 months, 1 prior tickets.\nLATEST Customer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nLATEST Customer: Before deletion I also want a copy of the data you hold, under Article 15.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nLATEST Customer: What is the legal timeline for you to complete this?",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nLATEST Customer: Please confirm in writing when it is done.",
"Profile: starter plan, 9 months, 1 prior tickets.\nCustomer: Hello. Under GDPR Article 17 I am requesting the erasure of all personal data you hold about me.\nCustomer: Before deletion I also want a copy of the data you hold, under Article 15.\nCustomer: What is the legal timeline for you to complete this?\nCustomer: Please confirm in writing when it is done.\nLATEST Customer: Thank you.",
"Profile: pro plan, 5 months, 1 prior tickets.\nLATEST Customer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nLATEST Customer: The carrier site just says 'in transit'. No other details.",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nLATEST Customer: I need it before I fly out on Saturday — is there anything you can do?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nLATEST Customer: Can you just ship a replacement overnight?",
"Profile: pro plan, 5 months, 1 prior tickets.\nCustomer: My hardware key order #48213 was due Monday and the tracking hasn't moved since Thursday.\nCustomer: The carrier site just says 'in transit'. No other details.\nCustomer: I need it before I fly out on Saturday — is there anything you can do?\nCustomer: Can you just ship a replacement overnight?\nLATEST Customer: Okay. If the first one shows up I'll send it back.",
"Profile: business plan, 18 months, 3 prior tickets.\nLATEST Customer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)",
"Profile: business plan, 18 months, 3 prior tickets.\nCustomer: Webhook deliveries are failing with 502 since your 3.4.1 deploy. Log line: 2026-09-17T09:12:03Z POST /hooks/order.created -> 502 upstream timeout (retry 3/3)\nLATEST Customer: All retries fail with the same upstream timeout. Our endpoint returns 200 in 40 ms when I curl it directly."
],
"statements": [
"The customer asks for a manager, a supervisor or a human decision maker.",
"The customer says they will cancel, leave or switch to a competitor.",
"The customer makes a demand under a law or regulation, such as GDPR, CCPA, erasure or data access.",
"The customer asks for money back: a refund, chargeback, reimbursement or account credit.",
"Something on the company's side went wrong for this customer, rather than a neutral question, a user-side issue, or the customer thanking us.",
"The customer's request is a simple question or a standard account action.",
"The issue is beyond what a front-line agent can settle alone, or the customer is too angry to close the chat today.",
"The chat is over: the line marked LATEST Customer is the customer's goodbye or thank-you. Whatever they asked for earlier does not count here — judge that one line alone."
]
}
DM1_REQUESTUnder the hood How it works & limitations
API calls/classify/rate/yes-no
How it works
Each new customer message is classified by intent and checked for support signals. Risk scores and a matching reply template appear beside the conversation.
Demo scope
These are scripted chats. Replies come from a fixed template catalog, and the demo can send them automatically inside the simulation. No customer receives a message.
Inspired by the work of dabit3.