Every hour + polling Slack reactions
Post to Reddit after your team approves in Slack
New articles get a Reddit post draft in Slack, and the ones your team approves with a reaction are posted to your chosen subreddit.
- Runs
- Every hour + polling Slack reactions
- Apps
- Reddit, Slack
- AI
- Yes, uses the built-in AI allowance
- Access
- Slack chat:write, reactions:read; Reddit submit
Send this to your assistant
Create a ClickRuntime automation: every hour, check our blog feed for new articles, draft a Reddit post for r/devops and share it in #content. If someone reacts with ✅, submit it to Reddit.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Reddit can send a lot of readers to a good article, but communities punish anything that looks like spam. Teams want a person to judge each post before it goes out, without that becoming a slow process of documents and meetings.
A draft in Slack and a single reaction to approve keeps the human check and removes the friction. The team sees what is planned, and only approved drafts reach Reddit.
What you get out of it
A human check every time
Nothing is submitted without a team member's approval, which protects your reputation in the community.
Approval in one click
A reaction in Slack is all it takes, so approvals happen in minutes rather than days.
Drafts written for Reddit
AI writes a title and text that read like a useful post, not an advert, which communities accept more readily.
Every article considered
Each new article gets a draft, so good content is not forgotten.
How it works
What happens, step by step
Every hour ClickRuntime checks your blog feed for new articles.
AI writes a Reddit title and short post for each and shares the draft in your Slack channel.
It checks drafts for a ✅ reaction from your team.
Approved drafts are submitted to the subreddit you chose, and each is only submitted once.
Before it runs live
- Connect Reddit
- 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 Reddit and Slack steps into one automation
Under the hood
The code that runs this automation
import feedparser
from slack_sdk import WebClient
from clickruntime import on_trigger, credentials, http, state, ai
FEED, CHANNEL, SUB = "https://blog.example.com/feed", "C0123CONTENT", "devops"
@on_trigger
def run(event):
slack = WebClient(token=credentials.connection("slack", "work"))
seen, drafts = set(state.get("seen") or []), state.get("drafts") or {}
for e in [e for e in feedparser.parse(FEED).entries[:5] if e.link not in seen]:
title = ai.generate(f"Write a plain, non-promotional Reddit title for r/{SUB} about: {e.title}", max_output_tokens=40).text.strip()
ts = slack.chat_postMessage(channel=CHANNEL, text=f"Reddit draft for r/{SUB}:\n*{title}*\n{e.link}\nReact ✅ to post.")["ts"]
drafts[ts] = {"title": title, "url": e.link}
seen.add(e.link)
for ts, d in list(drafts.items()):
msg = slack.reactions_get(channel=CHANNEL, timestamp=ts)["message"]
if any(r["name"] == "white_check_mark" for r in msg.get("reactions", [])):
http.post("https://oauth.reddit.com/api/submit", data={"sr": SUB, "kind": "link", "title": d["title"], "url": d["url"]},
headers={"Authorization": "Bearer " + credentials.connection("reddit", "main"), "User-Agent": "clickruntime/1.0"}).raise_for_status()
slack.chat_postMessage(channel=CHANNEL, thread_ts=ts, text="Posted to Reddit.")
del drafts[ts]
state.set("seen", list(seen)[-300:])
state.set("drafts", drafts)
return {"waiting": len(drafts)}FAQ
Common questions
Who can approve?
What if nobody reacts?
Does it follow subreddit rules?
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 Reddit brand mentions in Slack with reply drafts
Reddit posts mentioning your brand appear in Slack within half an hour, with their sentiment and a suggested reply.
See how it worksPost new posts from a subreddit to Slack
Every 5 minutes, new posts in the subreddits you choose are posted to a Slack channel with title, author, flair and link.
See how it worksGet Slack alerts for replies to your Reddit posts
Comment replies to your Reddit posts and comments, and username mentions, are posted to Slack every 5 minutes with the text and a link to answer.
See how it worksKeep exploring
Set up “Post to Reddit after your team approves in Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.