Every 10 minutes
Flag urgent support emails in Slack
New support emails are sorted by topic and urgency, and the urgent ones are posted to your support channel.
- Runs
- Every 10 minutes
- Apps
- Outlook, Slack
- AI
- Yes, uses the built-in AI allowance
- Access
- Mail.ReadWrite; chat:write
Send this to your assistant
Create a ClickRuntime automation: every 10 minutes, classify new emails in my Outlook support inbox by category and urgency, tag them with an Outlook category, and post the urgent ones to #support in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A software company runs support from a shared Outlook mailbox. Password resets and feature questions sit alongside the occasional 'our whole team is locked out', and the urgent one can wait behind twenty routine requests.
Sorting each email as it arrives and pushing only the urgent ones to Slack means the serious problems get picked up in minutes, while the rest stay neatly labelled in Outlook for whoever works the queue.
What you get out of it
Urgent problems jump the queue
An outage or a blocked customer is in Slack within ten minutes. Someone can respond before it turns into a cancellation.
A labelled inbox
Every email gets an Outlook category such as Billing or Bug. Whoever works the queue can filter by topic.
Less channel noise
Only urgent emails are posted. The team isn't trained to ignore a channel full of routine requests.
Consistent sorting
Every email is judged the same way, whoever is on shift. New staff don't need to learn the unwritten rules for what counts as urgent.
How it works
What happens, step by step
Every 10 minutes it looks for new emails in your support mailbox.
AI reads each one and picks a category and whether it is urgent.
The category is added to the email in Outlook so the queue can be filtered.
Urgent emails are posted to your support channel in Slack with the subject and sender.
Emails already sorted are skipped next time.
Before it runs live
- Connect Outlook
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
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
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Google Sheets
- Combine it with other Outlook and Slack steps into one automation
Under the hood
The code that runs this automation
GRAPH = "https://graph.microsoft.com/v1.0"
from clickruntime import on_trigger, credentials, http, state, notify, ai, report_fetched
SCHEMA = {"type": "object", "properties": {"category": {"type": "string", "enum": ["Billing", "Bug", "Account", "Question"]},
"urgent": {"type": "boolean"}}, "required": ["category", "urgent"]}
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.connection('microsoft', 'work')}"}
since = state.get("since") or event.get("scheduled_time") or "2026-01-01T00:00:00Z"
msgs = http.get(f"{GRAPH}/me/messages", headers=h, params={"$filter": f"receivedDateTime gt {since}",
"$orderby": "receivedDateTime", "$select": "id,subject,from,bodyPreview,receivedDateTime"}).json()["value"]
report_fetched(len(msgs))
if not msgs:
return {"summary": "Nothing new"}
for m in msgs:
r = ai.generate(f"{m['subject']}\n{m['bodyPreview'][:1500]}", system="Classify this support email. Urgent = outage, locked out, data loss or cancellation threat.",
json_schema=SCHEMA, max_output_tokens=40).json
http.patch(f"{GRAPH}/me/messages/{m['id']}", headers=h, json={"categories": [r["category"]]})
if r["urgent"]:
notify.slack(f":fire: {r['category']}: {m['subject']} ({m['from']['emailAddress']['address']})", channel="#support")
state.set("since", msgs[-1]["receivedDateTime"])
return {"sorted": len(msgs)}FAQ
Common questions
What counts as urgent?
Which categories does it use?
Does it reply to customers?
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
Summarise Microsoft 365 outage emails in Slack
Microsoft service-health emails become a short Slack post saying what is broken and who is affected.
See how it worksCheck links in reported emails for phishing
Links in new mail are checked against a threat database and your security channel hears about any that look dangerous.
See how it worksSend contact form enquiries to Slack and confirm by email
Each enquiry appears in Slack straight away and the person who wrote in gets a confirmation from your Outlook address.
See how it worksKeep exploring
Set up “Flag urgent support emails in Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.