Daily
Review yesterday's closed conversations for quality
Each morning you get the five weakest conversations from yesterday, scored for tone and resolution.
- Runs
- Daily
- Apps
- Intercom
- AI
- Yes, uses the built-in AI allowance
- Access
- read conversations
Send this to your assistant
Create a ClickRuntime automation: every morning, score yesterday's closed Intercom conversations for tone and whether the problem was solved, and email me the 5 lowest with links.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A support manager with eight agents would like to read a sample of closed conversations every day to check tone, accuracy and whether the customer's problem was actually solved. In reality she reads a handful a week, usually after a complaint, which means coaching happens late and only about the worst cases. Customers who got a curt or incomplete answer and did not complain are never noticed.
Each day, ClickRuntime searches Intercom for conversations closed the day before, fetches each conversation's messages, and has built-in AI score them for tone and for whether the issue was resolved. It then emails you the lowest-scoring conversations with links, so your review time goes to those most worth reading.
Support leads and customer experience managers use it to coach agents with real examples.
What you get out of it
Coaching uses specific examples
Telling an agent that a particular reply was curt, with the conversation open, is more useful than general advice. Daily examples let feedback arrive while the conversation is still fresh.
Problems are found before complaints
Many unhappy customers never write a bad review. They just leave. Surfacing the weak conversations yourself lets you apologize, follow up or fix a recurring mistake before it costs the account.
Review effort is focused
Reading everything is impossible, and random sampling wastes time on fine conversations. Seeing the lowest scores first lets a manager spend twenty minutes on the cases that carry the most risk.
Quality is measured on every conversation
Scoring all of yesterday's closed conversations gives a view of quality across the team, not just of the ones a manager happened to open. Trends in the scores show whether training is working.
Fairer conversations with agents
When feedback is based on a consistent daily process, it feels less personal than a manager noticing one bad reply. Agents see that the same standard is applied to everyone.
How it works
What happens, step by step
Every day, ClickRuntime collects the Intercom conversations closed yesterday.
AI reads each one and scores it out of 10, with a short reason.
You get an email with the lowest-scoring conversations, their reasons and links, so you can coach the team.
Before it runs live
- Connect Intercom
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Intercom steps into one automation
Under the hood
The code that runs this automation
import re, time
from clickruntime import on_trigger, http, credentials, ai, notify
def intercom(method, path, **kw):
r = http.request(method, f"https://api.intercom.io{path}", headers={
"Authorization": f"Bearer {credentials.secret('INTERCOM_TOKEN')}", "Intercom-Version": "2.11"}, **kw)
r.raise_for_status()
return r.json()
INBOX = "https://app.intercom.com/a/inbox/_/inbox/conversation/"
@on_trigger
def run(event):
now = int(time.time())
q = {"operator": "AND", "value": [{"field": "state", "operator": "=", "value": "closed"},
{"field": "updated_at", "operator": ">", "value": now - 86400}]}
scored = []
for c in intercom("POST", "/conversations/search", json={"query": q})["conversations"][:40]:
parts = intercom("GET", f"/conversations/{c['id']}")["conversation_parts"]["conversation_parts"]
thread = "\n".join(re.sub(r"<[^>]+>", "", p.get("body") or "")[:300] for p in parts)[:4000]
r = ai.generate(thread, system="Score tone and whether the problem was solved.", max_output_tokens=80,
json_schema={"type": "object", "properties": {"score": {"type": "integer"}, "note": {"type": "string"}}}).json
scored.append((r["score"], r["note"], c["id"]))
worst = sorted(scored)[:5]
notify.email_me("Lowest-scoring conversations yesterday", "\n\n".join(f"{s}/10 {n}\n{INBOX}{cid}" for s, n, cid in worst))
return {"reviewed": len(scored)}FAQ
Common questions
How does the AI score tone and resolution?
How many conversations does it email me about?
Is it appropriate to use for performance reviews?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a daily summary of customer conversations
Each evening you get one email on what customers asked about today and what's still open.
See how it worksGet a weekly support volume and CSAT report
Every Monday you see conversations opened and closed and the average rating, compared with the week before.
See how it worksClose conversations waiting on the customer for a week
Conversations where the customer went quiet for 7 days are closed, and you get the list.
See how it worksKeep exploring
Set up “Review yesterday's closed conversations for quality” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.