The moment it happens
Get alerted about low scores
When someone gives a low rating, you see their answers straight away and can follow up.
- Runs
- The moment it happens
- Apps
- Typeform
- AI
- Not needed
- Access
- webhooks:write
Send this to your assistant
Create a ClickRuntime automation: when a response to my 'Customer feedback' Typeform has a rating of 3 or less, send me the answers in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A customer who rates you 2 out of 10 on a Typeform survey is giving you a chance to fix things, and that chance is brief. If the low score sits in a spreadsheet until the end-of-month review, the customer has already canceled or posted a public complaint. Support managers need to hear about the unhappy ones at once, while a phone call or apology can still save the relationship.
When a response comes in, this reads the rating or NPS field, and if the score is below the threshold you set, posts an alert immediately with the score and any comment. Happy responses are not announced, so the channel only carries the cases that need a person.
It is used for NPS surveys, post-support ratings and checkout feedback. It keeps the follow-up fast.
What you get out of it
Unhappy customers are contacted quickly
A call within an hour of a poor score often turns a detractor around. The same call a month later usually feels like a formality and is too late to prevent churn.
Specific comments reach the team
The alert includes what the customer wrote, so support knows the reason before reaching out. That makes the first conversation about their problem, not about gathering details. Context makes the apology far more credible for everyone.
Only low scores are shown
A channel full of good news hides the bad. Posting only responses below the threshold keeps the alert rare enough that people stop what they are doing to read it.
Patterns in complaints appear fast
Three low scores in one afternoon mentioning the same issue signal a real problem. Seeing alerts live helps you spot a faulty release or a delivery problem on the day it starts.
Evidence of responsiveness
A record of alerts and responses shows that feedback is acted on. That supports customer success reporting, and it demonstrates to leadership that survey results lead to action. Leadership sees that survey scores actually trigger something.
How it works
What happens, step by step
When someone submits your feedback form, ClickRuntime reads their rating or NPS score straight away.
If the score is below the threshold you set, it picks out their comment.
A message goes to your #feedback Slack channel with the score and what they said, so you can follow up quickly. Good scores are left alone.
Before it runs live
- Connect Typeform
- Paste your automation's link into the other app's webhook settings
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
- Act only on the items that match your own rules, and skip the rest
- 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 Typeform steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, notify
def answers(resp):
titles = {f["id"]: f["title"] for f in resp["definition"]["fields"]}
out = {}
for a in resp["answers"]:
value = a.get(a["type"])
if isinstance(value, dict):
value = value.get("label") or ", ".join(value.get("labels", []))
out[titles.get(a["field"]["id"], a["field"]["id"])] = value
return out
@on_event
def handle(event):
resp = (event.json or {}).get("form_response", {})
if resp.get("definition", {}).get("title") != "Customer feedback":
return {"alerted": False}
rating = next((a.get("number") for a in resp["answers"] if a["type"] == "number"), None)
if rating is None or rating > 3:
return {"alerted": False}
lines = "\n".join(f"*{q}*: {a}" for q, a in answers(resp).items())
notify.slack(f"Low feedback rating ({rating}/5)\n{lines}", channel="#feedback")
return {"alerted": True, "rating": rating}FAQ
Common questions
What should the threshold be?
Does it work with Typeform's opinion scale and rating questions?
Can the alert go straight to the account owner?
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 every new Typeform response by email
Each time someone fills in your form, the answers land in your inbox with the question titles.
See how it worksPost new Typeform responses to Slack
Your team sees a short summary of each new submission in Slack right away.
See how it worksGet alerted about big-budget leads
You only hear about leads whose budget is above your threshold, the moment they submit.
See how it worksKeep exploring
Set up “Get alerted about low scores” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.