Skip to content

On a schedule

Hear about negative satisfaction ratings fast

A poor rating reaches you within 15 minutes, with the comment, agent and ticket link.

Runs
On a schedule
Apps
Freshdesk
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every 15 minutes, check new Freshdesk satisfaction ratings and send any negative ones to #cx-leads in Slack with the ticket subject, agent, comment and link.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A customer who gives a poor satisfaction rating is telling you, at the moment they are most annoyed, exactly which ticket went wrong. Freshdesk records the rating, but support managers usually see it in a weekly report, long after the customer has cancelled, posted a review or moved on. The comment that explains the problem, such as being told the same thing three times, sits unread until the numbers are reviewed.

On each run, ClickRuntime lists the satisfaction ratings created since the last check, keeps only the negative ones, and posts the ticket subject, the agent's name and the customer's comment to your chosen channel. It remembers rating IDs so each is reported once. Follow-up becomes possible the same day.

It suits team leads who want to follow up with unhappy customers directly.

What you get out of it

  • Win back unhappy customers

    A call or a personal email within hours of a bad rating often turns a customer around. The same message a week later often lands after they have decided to leave.

  • Coach agents with fresh examples

    A bad rating with the ticket attached makes feedback concrete. Talking about a conversation from this morning is far more useful than a general talk about quality. Concrete examples change behavior faster than averages.

  • Find process problems early

    Several negative ratings mentioning slow replies or repeated questions show a process failure. You can fix it in the same week instead of discovering it at the quarterly review. Quick fixes are possible.

  • See the customer's own words

    The comment explains the problem better than a score. Reading it in the alert saves a trip to the ticket and sets the tone for a better reply. Context shapes your response.

  • Protect renewals and reviews

    Unhappy customers often write public reviews or skip renewal. Quick contact reduces both, and the cost of one saved account is much higher than the effort of one phone call. Saving an account is worth far more than the time it takes.

How it works

What happens, step by step

  1. Every 15 minutes ClickRuntime checks Freshdesk for satisfaction ratings left since the last check, so nothing is reported twice.

  2. It keeps only the negative ratings.

  3. For each one it looks up the ticket subject and the agent who handled it.

  4. A message goes to your #cx-leads Slack channel with the ticket, the agent, the customer's comment and a link to the ticket.

Before it runs live

  • Connect Freshdesk

What you get

RunsOn a schedule
Hear about negative satisfaction ratings fasttoday, 9:00Succeeded
Slack · #cx-leadsNegative rating on #5644 Login loop (Maya) > Took three days to get an answer

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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 Freshdesk steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
bad_csat_rating_alert.pyexample
from datetime import datetime, timezone
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched

DOMAIN = "acme"

@on_trigger
def run(event):
    key = credentials.secret("FRESHDESK_API_KEY")
    base = f"https://{DOMAIN}.freshdesk.com/api/v2"
    since = state.get("since") or datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
    ratings = http.get(f"{base}/surveys/satisfaction_ratings", params={"created_since": since},
                       auth=(key, "X")).json()
    report_fetched(len(ratings))
    if not ratings:
        return {"summary": "Nothing new"}
    for r in ratings:
        if r["ratings"].get("default_question", 0) >= 0:
            continue
        t = http.get(f"{base}/tickets/{r['ticket_id']}", auth=(key, "X")).json()
        agent = http.get(f"{base}/agents/{r['agent_id']}", auth=(key, "X")).json()["contact"]["name"] if r.get("agent_id") else "unassigned"
        notify.slack(f"Negative rating on #{t['id']} {t['subject']} ({agent})\n> {r.get('feedback') or 'no comment'}\n"
                     f"https://{DOMAIN}.freshdesk.com/a/tickets/{t['id']}", channel="#cx-leads")
    state.set("since", max(r["created_at"] for r in ratings))
    return {"ratings": len(ratings)}

FAQ

Common questions

What counts as a negative rating?
Freshdesk's survey records ratings such as happy, neutral and unhappy, depending on how your survey is set up. The flow keeps the ones you consider negative, typically the lowest options, and ignores the rest. Custom scales are supported.
Does it need agents to ask for ratings?
Ratings come from Freshdesk's customer satisfaction survey, which is sent when a ticket is resolved or closed. If you have not turned it on in Freshdesk, there will be no ratings to alert on. Survey settings live in Freshdesk.
Can the alert go straight to the agent's manager?
Yes. Post it in a manager's channel or send it by email to the lead for that agent's team, using the agent on the ticket to pick the recipient. Different teams can go to different channels.
What permissions does it need?
read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Hear about negative satisfaction ratings fast” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.