Catch replies that break your policy before they go
Prismlet checks each agent's draft against the customer's message and your written reply policy before it is sent. Each flag names the rule the draft may break, for the agent to fix or a supervisor to approve.
Ask for an inviteToday
- QA reads a small sample of sent replies, for example 1 or 2 in every 100, days after the customer already has them.
- A keyword rule catches an unfilled {first_name} but not a reply built from the wrong template for the question the customer asked.
- A refund promised, a date committed to, or another customer's details pasted into a reply often comes to light only when the customer complains.
- QA scores each sampled reply against the policy by hand, so what gets caught depends on who reviews it.
What changes
- Every draft is checked against the customer's message and the policy before it is sent, with one question for each rule.
- Each rule gets its own Yes / No answer: an unfilled placeholder, a promised refund, a committed date, an admission of fault, a request for card details, another customer's details.
- An overall answer suggests the next step: send as is, a minor edit the agent can make, supervisor approval for a promised concession, or do not send for a reply that answers the wrong question or exposes data it should not.
- Each answer carries how sure it is, so the borderline drafts can go to a person too, not only the clear breaks.
- Each flag is a suggestion for the agent or a supervisor to look at; the prism never sends or blocks a reply on its own.
Try it on this example
Customer's latest message, with the thread before it: From: Alex Morgan To: [email protected] Subject: Moving out, please close my account (CS-20931) Hi, I spoke to someone on the phone last week about moving house, case CS-20931. I'm moving out of 12 Mill Lane on 30 September and my new address is 3 Orchard Close. Can you close my account on the 30th and send the final bill to the new address? I'll send a final meter reading on the day. Also, please make sure the direct debit stops after the final bill has been paid. Thanks, Alex Morgan
Template the agent started from (empty if none): Refund processing times
Draft reply
- What should happen to this draft reply before it is sent?Do not send100%
- Does the draft reply answer what the customer asked in their latest message?No96%
- Does the template the draft was built from fit the customer's question?Wrong template100%
- Does the draft reply still contain unfilled template text?Yes99%
- Does the draft reply promise or approve a refund, credit, discount or other concession?Yes98%
- Does the draft reply commit to a resolution date or deadline other than a reply within two working days?Yes97%
- Does the draft reply accept fault for the company or offer to cover the customer's costs?No87%
- Does the draft reply ask the customer to send a full card number, security code, password or one-time code?Yes99%
- Does the draft reply include the value of a full card number, security code, password or full bank account number?No86%
- Does the draft reply mention a name, address, account, order or case that belongs to someone other than this customer?Unsure44% yes
- Does the draft reply quote the case reference, when it is about an existing case?Reference missing95%
- Is the draft reply respectful towards the customer?Yes92%
These are real answers stored from one run on this example.
Test it on your own data
The quickest way to decide is a file run on your own records. A file run in the app answers up to 10,000 rows and gives you the file back with the answers added.
- What to send
- A CSV or TSV file with column names in the first row, or a JSON array of objects, one item per row. You pick the column for each thing the prism reads: Customer's latest message, with the thread before it; Draft reply; Template the agent started from (empty if none). A row's fields together take up to about 100,000 characters.
- What comes back
- The same rows with the prism's columns added: send_decision, send_decision_probability, addresses_request, addresses_request_probability, template_fit, template_fit_probability, unfilled_placeholder, unfilled_placeholder_probability, concession_promised, concession_promised_probability, resolution_date_committed, resolution_date_committed_probability, fault_admitted, fault_admitted_probability, asks_for_secrets, asks_for_secrets_probability, secrets_in_reply, secrets_in_reply_probability, other_customer_details, other_customer_details_probability, case_reference, case_reference_probability, tone_appropriate, tone_appropriate_probability. Each answer says how sure it is, so the unsure rows are easy to find and give to a person.
- Against your team's answers
- Add columns with the answers your team gave, and the app reports how often Prismlet agreed, question by question and at each cutoff, split by a column such as language or site, with every miss listed. Your team's answers stay in your browser.
How it reaches your team
Works today
- Call the API from your own system as the agent presses Send
- Run a file of up to 10,000 draft replies in the app, one draft per row, up to about 100,000 characters a row
Built with you
- We work with you to check each draft inside the agent's tool, such as Salesforce or Zendesk, when they press Send
- We work with you to put each flag and its answers into the queue your supervisors already use
- We work with you to show each flag to the agent as a warning first, before any draft waits for a supervisor
The prism behind it
Catch replies that break your policy or miss the question
Fields
- Customer's latest message, with the thread before it
- Draft reply
- Template the agent started from (empty if none)
Context
The drafts are replies that customer service agents at Larkfield Energy, a household energy supplier, are about to send to a customer by email or chat. Judge each draft against the customer's message and, when one is given, the name of the template the agent started from. Each question's instructions state one rule of our reply policy. The answers warn the agent or a supervisor; a person decides whether the reply is sent.
Questions
What should happen to this draft reply before it is sent? Choice
Treat the draft as a reply an agent is about to send to this customer. Judge it against our reply policy as a whole: answer what the customer asked; leave no template text unfilled; never promise or approve a refund or concession; commit to no date beyond two working days; never accept fault or offer to cover costs; never ask for or include card numbers, security codes or passwords; include no other customer's details; quote the case reference on an existing case; stay respectful.
Does the draft reply answer what the customer asked in their latest message? Yes / No
Compare the draft with the customer's latest message. Judge whether the reply engages with the request, not whether its answer is correct. A refusal counts when it gives a specific reason. Yes: The reply answers, acts on, or specifically declines what the customer asked. No: The reply answers a different question, or is generic text that engages with no particular request.
Does the template the draft was built from fit the customer's question? Choice
Compare the template name and the draft with what the customer asked.
Does the draft reply still contain unfilled template text? Yes / No
Our rule: no template text goes out unfilled. Look for merge tokens in braces or brackets such as {first_name} or [AMOUNT], notes to self, words like TODO, TBD or XXX, and filler text. Yes: At least one unfilled placeholder or piece of filler text remains. No: No unfilled placeholder or filler text remains.
Does the draft reply promise or approve a refund, credit, discount or other concession? Yes / No
Our rule: agents may not promise or approve a refund, a credit, a goodwill payment, a discount, a waived charge or free time. They may say a refund or concession has been requested or passed to the team that decides, never that it is approved or on its way. Yes: The reply states or implies that a refund, credit, payment, discount, waiver or free time is approved, agreed or on its way. No: No such promise appears. Saying a refund has been requested or passed to another team is allowed.
Does the draft reply commit to a resolution date or deadline other than a reply within two working days? Yes / No
Our rule: agents may not commit to a date by which something will be resolved, paid or delivered. The only timescale they may give is that the team will respond within two working days. Yes: The reply names a day, a date or a deadline by which something will be resolved, paid or delivered for this customer. No: No such commitment appears, or the only timescale given is the permitted reply within two working days.
Does the draft reply accept fault for the company or offer to cover the customer's costs? Yes / No
Our rule: agents must not accept fault for the company, call it negligent or to blame, or say the company will cover a cost the customer has incurred. Apologising for the customer's experience is allowed and is not an admission. Yes: The reply accepts fault, blames the company, or offers to cover a loss. No: The reply expresses regret or acknowledgement without accepting fault or offering to cover a loss.
Does the draft reply ask the customer to send a full card number, security code, password or one-time code? Yes / No
Our rule: never ask a customer to send a full card number, a card security code, a PIN, a password or a one-time passcode by email or chat, in any words. Asking for the last four digits of a card is allowed. Yes: The reply asks the customer to send any of these, however it describes them. No: The reply asks for none of these.
Does the draft reply include the value of a full card number, security code, password or full bank account number? Yes / No
Our rule: a reply never includes a full payment card number, a card security code, a password, a one-time passcode or a full bank account number or IBAN. Card and account references use the last four digits only. Yes: At least one such value appears in the reply. No: No such value appears. Last four digits on their own are allowed. Naming such a detail or asking for it is not a value; the question on asking for secrets records that.
Does the draft reply mention a name, address, account, order or case that belongs to someone other than this customer? Yes / No
Our rule: a reply contains only this customer's details. Compare the names, addresses, account numbers, orders and case references in the draft with the customer's message. Count details that plainly belong to another person or case, or two sets of details that do not hang together, as in a reply pasted from another thread. Do not count the agent's or the company's own details. Yes: The reply contains another person's details, or details that do not match this customer's message. No: Every detail in the reply fits this customer, or the reply contains no personal details.
Does the draft reply quote the case reference, when it is about an existing case? Choice
Our rule: a reply about an existing case must quote its case reference, written as CS- followed by five digits. Treat the reply as about an existing case when the customer's message or the draft refers to an earlier contact, case or reference.
Is the draft reply respectful towards the customer? Yes / No
Our rule: replies are courteous and never dismissive, sarcastic, blaming or insulting towards the customer. A plain or brief reply is fine. Yes: The reply is respectful throughout. No: The reply is dismissive, sarcastic, blaming or insulting.
Lens columns
send_decision, send_decision_probability, addresses_request, addresses_request_probability, template_fit, template_fit_probability, unfilled_placeholder, unfilled_placeholder_probability, concession_promised, concession_promised_probability, resolution_date_committed, resolution_date_committed_probability, fault_admitted, fault_admitted_probability, asks_for_secrets, asks_for_secrets_probability, secrets_in_reply, secrets_in_reply_probability, other_customer_details, other_customer_details_probability, case_reference, case_reference_probability, tone_appropriate, tone_appropriate_probability
This prism on its own pageSee it on your own records
Prismlet is invite only for now. Tell us what you would send it and we will set you up.