The moment it happens
Post finished monday.com items to Slack #wins
When an item on a monday.com board is set to Done, #wins gets a message with the item, its owner and a link.
- Runs
- The moment it happens
- Apps
- Slack, monday.com
- AI
- Not needed
- Access
- boards:read, webhooks:write; chat:write
Send this to your assistant
Create a ClickRuntime automation: when an item on my Projects board in monday.com changes to Done, post it to #wins in Slack with the owner, the board name and a link. Post each item only once.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Finished work on a monday.com board usually goes quiet. The item turns green, and unless someone opens the board nobody sees it.
A #wins channel makes finished work visible to the whole team as it happens, with the name of the person who did it.
Because the message comes from a webhook, it arrives seconds after the status changes, not at the end of the day.
What you get out of it
Credit goes to the owner
Each message names the person on the item, so the team sees who shipped what.
Only real completions
Other status changes such as Working on it or Stuck are ignored.
No repeats
An item is posted once, even if someone reopens it and marks it Done again.
Link to the item
People can open the item from Slack to see the details or leave a comment.
Works across boards
Add the same webhook to more boards and they all post to one channel.
How it works
What happens, step by step
You add a webhook to your monday.com board that fires when a status column changes.
ClickRuntime ignores every change except a move to Done.
It looks up the item's owner and board, then posts one line to #wins.
Each item is posted once, so flipping it back and forth does not repeat the message.
Before it runs live
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- Connect monday.com
- Paste your automation's link into the other app's webhook settings
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 Google Sheets
- Combine it with other Slack and monday.com steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, state, notify
ITEM = """query ($id: [ID!]) { items(ids: $id) { name url board { name }
column_values(ids: ["person"]) { text } } }"""
def monday(query, **variables):
resp = http.post("https://api.monday.com/v2", json={"query": query, "variables": variables},
headers={"Authorization": credentials.secret("MONDAY_API_TOKEN"), "API-Version": "2024-10"})
resp.raise_for_status()
return resp.json()["data"]
@on_event
def handle(event):
body = event.json or {}
if "challenge" in body:
return {"challenge": body["challenge"]}
ev = body.get("event", {})
label = ((ev.get("value") or {}).get("label") or {}).get("text")
if label != "Done":
return {"skipped": label}
item_id = str(ev["pulseId"])
posted = state.get("posted") or []
if item_id in posted:
return {"skipped": "already posted"}
item = monday(ITEM, id=[item_id])["items"][0]
owner = item["column_values"][0]["text"] or "no owner"
notify.slack(f"✅ Done: *{item['name']}*\nOwner: {owner} · Board: {item['board']['name']}\n{item['url']}", channel="#wins")
state.set("posted", (posted + [item_id])[-2000:])
return {"posted": item_id}FAQ
Common questions
Does it post when an item is set to Done by a monday.com recipe?
Our final status is called Shipped, not Done. Can it use that?
Can it post to a different channel per board?
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
Post monday.com item comments to a Slack channel
When someone writes an update on a monday.com item, the comment is posted to a Slack channel with the author and a link.
See how it worksSend a Slack DM when you're assigned a monday.com item
When someone is added to the person column of a monday.com item, they get a Slack direct message with the item, due date and link.
See how it worksAlert Slack when monday.com items get stuck
When an item on your monday.com board is marked Stuck, Slack gets a message with the owner and a link.
See how it worksKeep exploring
Set up “Post finished monday.com items to Slack #wins” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.