Skip to content

The moment it happens

Send 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.

Runs
The moment it happens
Apps
Slack, monday.com
AI
Not needed
Access
boards:read, users:read, webhooks:write; users:read, users:read.email, chat:write

Send this to your assistant

Create a ClickRuntime automation: when the person column changes on an item on my Projects board in monday.com, find each newly assigned person in Slack by email and send them a direct message with the item name, its due date and a link.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

monday.com sends its own assignment notifications, but many people live in Slack and never open the monday.com bell.

A direct message in Slack reaches people where they already work, with the due date in the message so they can plan straight away.

Only newly added people are messaged, so reassigning or adding a second owner does not spam the people already on the item.

What you get out of it

  • Reaches people in Slack

    Assignments show up as a direct message, not only in monday.com's notification bell.

  • Due date up front

    The message says when it is due and its status, so nobody has to open the item to plan.

  • Only new assignees

    People already on the item are not messaged again when someone else is added.

  • Matched by email

    monday.com users are found in Slack by email address, with no lookup table to keep.

  • Any board

    Add the webhook to more boards and the same messages go out.

How it works

What happens, step by step

  1. A monday.com webhook tells ClickRuntime when the person column on an item changes.

  2. It compares the new and previous assignees, so only people who were just added are messaged.

  3. Each new assignee is found in Slack by their email address.

  4. They get a direct message with the item name, due date, board and link.

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

RunsThe moment it happens
Send a Slack DM when you're assigned a monday.com itemjust nowSucceeded
Slack · direct message👋 You were assigned *Prepare Q1 budget draft* on Finance Ops Due: Nov 21 · Status: Not started https://acme.monday.com/boards/7310/pulses/91002

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
send_a_slack_dm_when_you_re_assigned_a_monday_com_item.pyexample
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
from clickruntime import on_event, credentials, http

ITEM = """query ($id: [ID!]) { items(ids: $id) { name url board { name }
  column_values(ids: ["date", "status"]) { id text } } }"""
USERS = """query ($ids: [ID!]) { users(ids: $ids) { id email } }"""
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"]

def people(value):
    return {str(p["id"]) for p in (value or {}).get("personsAndTeams", []) if p.get("kind") == "person"}

@on_event
def handle(event):
    body = event.json or {}
    if "challenge" in body:
        return {"challenge": body["challenge"]}
    ev = body.get("event", {})
    if ev.get("columnId") != "person":
        return {"skipped": "other column"}
    added = people(ev.get("value")) - people(ev.get("previousValue"))
    if not added:
        return {"skipped": "nobody added"}
    item = monday(ITEM, id=[ev["pulseId"]])["items"][0]
    c = {v["id"]: v["text"] for v in item["column_values"]}
    text = (f"👋 You were assigned *{item['name']}* on {item['board']['name']}\n"
            f"Due: {c.get('date') or 'no date'} · Status: {c.get('status') or 'none'}\n{item['url']}")
    slack = WebClient(token=credentials.connection("slack", "work"))
    sent = []
    for u in monday(USERS, ids=list(added))["users"]:
        try:
            uid = slack.users_lookupByEmail(email=u["email"])["user"]["id"]
        except SlackApiError:
            continue
        slack.chat_postMessage(channel=uid, text=text)
        sent.append(u["email"])
    return {"messaged": sent}

FAQ

Common questions

Does the person need to install anything in Slack?
No. The message comes from your own Slack app as a direct message. They only need to be in the same Slack workspace.
What happens when someone is removed from an item?
Nothing is sent. Only people who were just added get a message.
Our person column has a different ID. Will it still work?
Yes. Tell your assistant the column ID (shown in the column settings in monday.com) and it will watch that one instead.
What permissions does it need?
boards:read, users:read, webhooks:write; users:read, users:read.email, chat:write. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Send a Slack DM when you're assigned a monday.com item” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.