On a schedule
Get alerted to Front conversations with no reply
Customers waiting more than two hours are flagged to you once, before they write again.
- Runs
- On a schedule
- Apps
- Front
- AI
- Not needed
- Access
- shared resources read
Send this to your assistant
Create a ClickRuntime automation: every 30 minutes, post to #support in Slack any open Front conversation in the Support inbox that has had no reply for 2 hours.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
The worst customer experience in a shared Front inbox is silence. A prospect asks about pricing, the conversation lands as unassigned, each teammate assumes someone else has it, and two days later the prospect has signed with a competitor. Nobody did anything wrong; the thread just never had an owner or a deadline.
On the schedule you pick, open and unassigned conversations in the inbox are listed, and the last message in each is checked. If the latest message is from the customer and it has been waiting longer than your threshold, a note goes to Slack. Each conversation is flagged once, not on every run, so the channel does not turn into noise.
It is most useful for sales inboxes, support teams promising a response window, and small businesses where a single missed email can cost a job.
What you get out of it
Silent customers get noticed
A conversation where the customer wrote last and nobody replied is flagged as waiting, which removes the risk that an enquiry slips through because everyone assumed it was handled. Even the quietest inbox gets the same level of attention.
Response promises are kept
If your policy is a reply within one business day, an alert at the threshold gives you a chance to meet it rather than discovering the breach in a review.
Alerts fire once per conversation
Remembering what has been flagged prevents a repeating nag, so teammates stay responsive to the alert instead of muting the channel after day two. A noisy alert is quickly ignored, so one clear message is better.
Shared inboxes get an implicit owner
The Slack message nudges someone to pick the thread up, turning the vague idea that the team will deal with it into a visible, claimable item. Someone picks it up without a meeting about who should.
Lost deals are reduced
Prospects who write in with a pricing question tend to move on quickly, so catching their email while the answer still matters protects revenue you already paid to attract. One rescued reply can pay for a lot of time.
How it works
What happens, step by step
On the schedule you set, ClickRuntime checks your Front inbox for open and unassigned conversations.
It looks at the last message in each and keeps the ones where a customer has been waiting more than two hours.
Those are posted to #support with the subject and a link. Each conversation is only flagged once.
Before it runs live
- Connect Front
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 Front steps into one automation
Under the hood
The code that runs this automation
import time
from clickruntime import on_trigger, credentials, http, notify, state, report_fetched
INBOX_ID = "inb_55c4" # Support
API = "https://api2.frontapp.com"
@on_trigger
def run(event):
headers = {"Authorization": f"Bearer {credentials.secret('FRONT_API_TOKEN')}"}
convs = http.get(f"{API}/inboxes/{INBOX_ID}/conversations", headers=headers,
params={"q[statuses][]": ["assigned", "unassigned"], "limit": 100}).json()["_results"]
alerted = set(state.get("alerted") or [])
waiting = []
for c in convs:
msgs = http.get(f"{API}/conversations/{c['id']}/messages", headers=headers, params={"limit": 1}).json()["_results"]
if msgs and msgs[0]["is_inbound"] and time.time() - msgs[0]["created_at"] > 2 * 3600 and c["id"] not in alerted:
waiting.append(c)
report_fetched(len(waiting))
if not waiting:
return {"waiting": 0}
lines = [f"• {c['subject'] or '(no subject)'}: https://app.frontapp.com/open/{c['id']}" for c in waiting]
notify.slack("Front conversations waiting over 2 hours:\n" + "\n".join(lines), channel="#support")
state.set("alerted", list(alerted | {c["id"] for c in waiting})[-1000:])
return {"waiting": len(waiting)}FAQ
Common questions
How does it know a customer is waiting for a reply?
Will I be alerted again if nobody replies?
Can I set a different wait time for each inbox?
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 morning count of open Front conversations
Each morning you see how many conversations are open and unassigned in every inbox.
See how it worksArchive Front conversations that have gone quiet
Conversations with no activity for two weeks are archived each night, and you get the count.
See how it worksSee new job listings as they're posted
Jobs that match your keywords show up in a Slack channel, each one only once.
See how it worksKeep exploring
Set up “Get alerted to Front conversations with no reply” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.