Skip to content

On a schedule

Flag customers waiting more than 4 hours

Active conversations where the customer has waited over 4 hours are posted once, before they chase you.

Runs
On a schedule
Apps
Help Scout
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every 30 minutes, find active Help Scout conversations where the customer has been waiting more than 4 hours and post them to #support-leads in Slack, once each.

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

Customers measure support by how long they sit unanswered. A conversation that has waited four hours on a quiet Tuesday may be an oversight, and one that has waited four hours on launch day is a crisis. Help Scout shows a waiting-since time on each conversation, but it is only useful if someone looks at the list, and the conversations most likely to be forgotten are the ones that were assigned to someone who got pulled away.

On a schedule, active conversations are listed, the customerWaitingSince value on each is compared to your limit, and any conversation over four hours is posted in Slack with its subject and a link. Each conversation is announced once so the channel is not repeatedly pinged.

It is useful for teams that promise response times, and for managers who need an early warning, not a monthly service-level report.

What you get out of it

  • Service-level promises are kept

    If your policy is to reply within four hours, the alert tells you when you are about to miss it, while a reply can still be sent on time. Meeting the promise you made is cheaper than apologizing for missing it.

  • Forgotten assignments surface

    A conversation assigned to someone who was pulled into a meeting is easy to lose. The alert surfaces it to the whole team, who can pick it up. A shared alert means no thread depends on one person's calendar.

  • Customers are not left silent

    Repeat follow-ups from frustrated customers are expensive to handle. Replying before the second message arrives keeps tone calmer and the thread shorter. A prompt reply often turns a worried customer into a satisfied one, and spares you the second, harsher message.

  • Managers get early warning

    A group of alerts in one afternoon is a sign that the team is underwater, which gives a manager time to bring in help. An alert cluster is an early sign that the team needs more hands now, not tomorrow.

  • Data for staffing discussions

    A record of how often conversations pass four hours supports a request for extra headcount with something better than a feeling. Concrete counts help when you ask leadership for budget, because they show actual delays.

  • Alerts without a full-time monitor

    Small teams cannot staff a wall display or a dedicated queue watcher. A scheduled check does that job in the background, and a quiet channel simply means nobody is overdue.

How it works

What happens, step by step

  1. Every 30 minutes ClickRuntime checks your active Help Scout conversations.

  2. It picks out the ones where the customer has been waiting for a reply for more than 4 hours.

  3. It skips any conversation it has already flagged, so each one is posted only once.

  4. The list goes to your #support-leads Slack channel with the conversation number, subject, how long they've waited and a link.

Before it runs live

  • Connect Help Scout

What you get

RunsOn a schedule
Flag customers waiting more than 4 hourstoday, 9:00Succeeded
Slack · #support-leadsCustomers waiting over 4 hours: #9120 Can't connect Shopify (waiting 5 hours)

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 Help Scout 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.
waiting_too_long_alert.pyexample
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched

@on_trigger
def run(event):
    h = {"Authorization": f"Bearer {credentials.connection('help-scout', 'work')}"}
    convos = http.get("https://api.helpscout.net/v2/conversations", params={"status": "active"},
                      headers=h).json()["_embedded"]["conversations"]
    cutoff = datetime.now(timezone.utc) - timedelta(hours=4)
    posted = set(state.get("posted") or [])
    waiting = [c for c in convos if c["id"] not in posted and c.get("customerWaitingSince", {}).get("time")
               and datetime.fromisoformat(c["customerWaitingSince"]["time"].replace("Z", "+00:00")) < cutoff]
    report_fetched(len(waiting))
    if not waiting:
        return {"summary": "Nothing new"}
    lines = [f"#{c['number']} {c['subject']} (waiting {c['customerWaitingSince']['friendly']})\n"
             f"https://secure.helpscout.net/conversation/{c['id']}" for c in waiting]
    notify.slack("Customers waiting over 4 hours:\n" + "\n".join(lines), channel="#support-leads")
    state.set("posted", list(posted | {c["id"] for c in waiting})[-1000:])
    return {"posted": len(waiting)}

FAQ

Common questions

Does it count nights and weekends?
The wait is calculated from the timestamp, so overnight and weekend hours count unless you add a rule to ignore them. Many teams restrict alerts to working hours so they are not paged about overnight waits.
Can I use a different limit, such as two hours?
Yes. The four-hour limit is a number you can change, and a second tier, say two hours for a warning and eight for escalation, is a common variation. Approve the edit to apply it. A tiered setup is easy to describe.
Which conversations are checked?
Active conversations awaiting a reply from your team. Closed and spam conversations are skipped, and conversations pending on the customer are not counted because the delay is on their side. That avoids noise when the ball is in the customer's court.
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 “Flag customers waiting more than 4 hours” from your assistant

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