On a schedule
Get a weekly support volume and CSAT report
Every Monday you see conversations opened and closed and the average rating, compared with the week before.
- Runs
- On a schedule
- Apps
- Intercom
- AI
- Not needed
- Access
- read conversations
Send this to your assistant
Create a ClickRuntime automation: every Monday at 8am, email me last week's Intercom numbers: conversations opened, closed, and average rating, compared with the previous week.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
The head of support is asked every Monday how last week went, and the answer lives in several places: conversations opened, conversations closed, and the average customer rating. Pulling those from Intercom's reports means choosing date ranges, exporting, and doing arithmetic by hand, and nobody remembers last week's numbers well enough to say whether they improved. Trends are guesses instead of facts.
Every Monday, ClickRuntime searches Intercom for conversations created and closed in the previous week, tallies the customer ratings, compares the results with the figures it stored the week before, and emails you the report. You see volumes and satisfaction side by side with the change since last week.
It is well suited to support leads who report to executives and to small teams who want a simple weekly health check.
What you get out of it
A reliable weekly rhythm
The report arrives every Monday, in the same format. It becomes the starting point for your team meeting, so discussions are about facts and not about impressions. Nobody has to remember to run it, and the numbers are always cut at the same boundaries.
Trends are clear at a glance
Showing the previous week next to the current one reveals whether volume or satisfaction is moving. Spotting a slow decline in ratings early gives you time to investigate before it becomes a crisis.
Volume and satisfaction are viewed together
A drop in rating during a week when volume jumped tells a different story than a drop in a quiet week. Seeing both shows whether the team was overwhelmed or whether quality slipped.
Staffing requests have evidence
If conversation volume has grown steadily for a month, the stored comparisons prove it. A request for another hire is stronger with several weeks of figures than with a feeling of being busy.
No manual report preparation
Support leads spend their time managing, not exporting data. Handing the weekly numbers to the automation returns that hour and removes the chance of a copy and paste error in the figures.
How it works
What happens, step by step
Once a week, ClickRuntime counts the Intercom conversations opened and closed in the last seven days.
It works out the average customer rating.
It compares each number with the week before.
You get an email with this week's figures next to last week's.
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
- Add an AI step, for example to summarize, sort or draft a reply
- 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 time
from clickruntime import on_trigger, http, credentials, 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()
def week(start, end):
q = {"operator": "AND", "value": [{"field": "created_at", "operator": ">", "value": start},
{"field": "created_at", "operator": "<", "value": end}]}
convos, page = [], {"per_page": 150}
while True:
r = intercom("POST", "/conversations/search", json={"query": q, "pagination": page})
convos += r["conversations"]
nxt = (r.get("pages") or {}).get("next")
if not nxt:
break
page = {"per_page": 150, "starting_after": nxt["starting_after"]}
ratings = [c["conversation_rating"]["rating"] for c in convos if (c.get("conversation_rating") or {}).get("rating")]
closed = sum(1 for c in convos if c["state"] == "closed")
return len(convos), closed, (sum(ratings) / len(ratings) if ratings else 0)
@on_trigger
def run(event):
now = int(time.time())
this, prev = week(now - 7 * 86400, now), week(now - 14 * 86400, now - 7 * 86400)
lines = [f"{label}: {a:.1f} (prev {b:.1f})" if label == "Avg rating" else f"{label}: {a} (prev {b})"
for label, a, b in zip(["Opened", "Closed", "Avg rating"], this, prev)]
notify.email_me("Intercom last week", "\n".join(lines))
return {"opened": this[0]}FAQ
Common questions
How does it work out the average rating?
Where does last week's comparison come from?
Can I add first response time to the report?
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
Close 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 worksGet 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 worksReview yesterday's closed conversations for quality
Each morning you get the five weakest conversations from yesterday, scored for tone and resolution.
See how it worksKeep exploring
Set up “Get a weekly support volume and CSAT report” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.