Hourly
Move newsletters out of your Outlook inbox
Newsletters and promotions leave the inbox every hour and wait in their own folder.
- Runs
- Hourly
- Apps
- Outlook
- AI
- Not needed
- Access
- Mail.ReadWrite
Send this to your assistant
Create a ClickRuntime automation: every hour, move newsletter and promotional emails in my Outlook inbox to a folder called Newsletters.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A busy professional signs up for industry newsletters, retailer promotions, product updates and conference mailings over the years, and now they make up half of the inbox. Real messages from colleagues and clients are surrounded by marketing, so a customer's question can sit unread between a sale announcement and a webinar invite. Unsubscribing from everything is slow and some of them are worth reading later.
Every hour, new mail is checked for the List-Unsubscribe header, which legitimate bulk senders must include, and anything that has it is moved to a Newsletters folder you choose. The messages are kept and unread, so you can browse them over coffee, while your inbox holds mail from actual people.
It is a good first step before an inbox cleanup, and a lasting fix for people who want to keep newsletters but not see them.
What you get out of it
Real mail is easier to see
With marketing messages out of the way, the inbox shows people writing to you. A client's message no longer sits between two sale emails where it may be overlooked. That clarity is a relief when you have a day full of messages from real people waiting for answers.
Newsletters are kept, not lost
Everything goes to a folder where you can read it later or search it. You keep the content you value without letting it crowd out urgent mail. That makes the folder a useful archive, and not a place where content is lost.
It works without lists of senders
Because it relies on a header that bulk mail carries, it catches new newsletters from senders you have never heard of. You do not need to build a rule for each one.
Unread counts mean something again
When the inbox count drops from 400 to 40, it reflects actual work. The anxiety of a growing number goes away, and so does the temptation to mark everything read.
Less mental load each hour
Not deciding about each promotional message dozens of times a day saves attention. Those small decisions add up to a surprising amount of wasted time. Few people notice this cost until it is gone, and then the inbox feels lighter immediately.
How it works
What happens, step by step
Every hour, ClickRuntime checks your Outlook inbox for newsletters and promotions.
It spots them by the unsubscribe details that mailing lists include in every email.
Each one is moved to your Newsletters folder, so your inbox only holds real mail.
Before it runs live
- Connect Outlook
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
- Run it at a different time, more or less often, or only on weekdays
- 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 Outlook steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http
GRAPH = "https://graph.microsoft.com/v1.0"
FOLDER_ID = "AAMkAD...newsletters"
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.connection('microsoft', 'work')}"}
msgs = http.get(f"{GRAPH}/me/mailFolders/inbox/messages", headers=h,
params={"$select": "id,internetMessageHeaders", "$top": 50}).json()["value"]
moved = 0
for m in msgs:
names = {x["name"].lower() for x in m.get("internetMessageHeaders") or []}
if "list-unsubscribe" in names:
http.post(f"{GRAPH}/me/messages/{m['id']}/move", headers=h, json={"destinationId": FOLDER_ID})
moved += 1
return {"moved": moved}FAQ
Common questions
Will it move important emails by mistake?
Does it handle mail that was already in my inbox?
Is it the same as Outlook's Focused 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 list of open flagged emails
Each morning you see every flagged email you haven't marked complete.
See how it worksGet today's Outlook meetings in one email
Every weekday morning you get the day's meetings with times, attendees and join links, plus a short summary.
See how it worksGet an evening summary of your Outlook mail
Each evening one email tells you what came in today and what needs an answer.
See how it worksKeep exploring
Set up “Move newsletters out of your Outlook inbox” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.