Intermediate~15 min setupCommunication & Project ManagementVerified April 2026
Slack logo
Monday.com logo

How to Send Monday.com Status Alerts to Slack with Power Automate

Automatically posts a Slack message to a designated channel whenever a Monday.com item changes status, is created, or hits a deadline.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Microsoft 365 teams that already use Power Automate and want to route Monday.com project updates to Slack without adding another tool to their stack.

Not ideal for

Teams outside the Microsoft ecosystem — Make handles the same flow for free under 1,000 ops/month and requires fewer workarounds.

Sync type

real-time

Use case type

notification

Real-World Example

💡

A 20-person product team at a mid-market SaaS company tracks sprint work in Monday.com but communicates entirely in Slack. Before this flow, developers had to ping the PM manually to ask if their blocked item was unblocked — sometimes waiting hours. After setup, every status change on the 'Development' board fires a Slack message to #dev-updates within 90 seconds, including the item name, new status, and the person who made the change.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into Power Automate

Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Monday.com personal API token with read access to the target board
Monday.com account with at least Member role on the board you want to monitor
Slack account with permission to post messages in the target channel (member of the channel)
Power Automate account — Microsoft 365 plan or standalone Power Automate Per User plan
Slack channel already created and named before starting setup

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Item NamepulseName
New Status ValuecolumnValue
6 optional fields▸ show
Column TitlecolumnTitle
Board NameboardName
Item IDpulseId
Changed By (User Name)userName
Group NamegroupName
TimestampchangedAt

Step-by-Step Setup

1

make.powerautomate.com > My flows > + New flow > Automated cloud flow

Create a new Automated cloud flow in Power Automate

Go to make.powerautomate.com and sign in with your Microsoft 365 account. In the left sidebar, click 'My flows', then click '+ New flow' at the top. Select 'Automated cloud flow' from the dropdown — this is the option that fires based on an external event, which is what Monday.com's webhook will use. Give the flow a name like 'Monday Status → Slack Notify', then click 'Skip' when prompted to choose a trigger from the dialog (you'll add it manually).

  1. 1Click 'My flows' in the left sidebar
  2. 2Click '+ New flow' at the top of the page
  3. 3Select 'Automated cloud flow'
  4. 4Type a name like 'Monday Status → Slack Notify'
  5. 5Click 'Skip' on the trigger selection dialog
What you should see: You land on the flow canvas with an empty 'Add a trigger' box at the top.
Common mistake — Do not choose 'Instant cloud flow' or 'Scheduled cloud flow' — neither supports event-based triggers from Monday.com.
2

Flow canvas > Add a trigger > Search 'Monday.com' > When a status column changes

Add the Monday.com 'When a status changes' trigger

Click the 'Add a trigger' box on the canvas. In the search bar that appears, type 'Monday.com'. Select the Monday.com connector from the results. You'll see a list of available triggers — choose 'When a status column changes'. Power Automate will immediately prompt you to create or select a Monday.com Connection.

  1. 1Click the 'Add a trigger' box
  2. 2Type 'Monday.com' in the search bar
  3. 3Click the Monday.com connector tile
  4. 4Select 'When a status column changes' from the trigger list
What you should see: The trigger card expands and shows a prompt to sign in or select an existing Monday.com connection.
Common mistake — Power Automate's Monday.com connector uses polling under the hood on some tenant configurations — confirm the trigger fires within 2 minutes by testing immediately after setup. If it takes longer than 5 minutes, your tenant may be on a slower polling interval governed by your Power Automate plan.
Power Automate
+
click +
search apps
Slack
SL
Slack
Add the Monday.com 'When a s…
Slack
SL
module added
3

Monday.com > Avatar > Developers > My Access Tokens

Authenticate your Monday.com connection

Click 'Sign in' in the trigger card. A popup will open asking for your Monday.com API token — this is not your password. Log in to Monday.com, click your avatar in the bottom-left, go to 'Developers', then 'My Access Tokens', and copy the personal API token. Paste it into the Power Automate popup and click 'Create'. The connection will be saved under your account and reusable across other flows.

  1. 1Click 'Sign in' inside the trigger card
  2. 2Open Monday.com in a new tab
  3. 3Click your avatar in the bottom-left corner
  4. 4Click 'Developers', then 'My Access Tokens'
  5. 5Copy your personal API token and paste it into the Power Automate popup
  6. 6Click 'Create'
What you should see: The trigger card now shows your Monday.com account name and dropdown fields for Board and Column.
Common mistake — Monday.com personal API tokens do not expire on a fixed schedule, but if your admin rotates them or you generate a new one, the connection will break silently — the flow will show as 'succeeded' but Monday.com will reject the request. Save your token somewhere secure.
4

Flow canvas > Monday.com trigger card > Board ID > Column ID

Configure the trigger: select board and status column

With the connection established, the trigger card now shows two required fields: 'Board ID' and 'Column ID'. Click the 'Board ID' dropdown — it will list all boards your Monday.com account can access. Select the board you want to monitor. Then click the 'Column ID' dropdown and select the status column you want to track, typically named 'Status' or 'Stage'. If you want to trigger on any status column change, you may need to add one trigger per column.

  1. 1Click the 'Board ID' dropdown and select your target board
  2. 2Click the 'Column ID' dropdown
  3. 3Select the status column (e.g., 'Status' or 'Stage')
What you should see: Both dropdowns show your selections and the trigger card displays no validation errors.
5

Flow canvas > + New step > Search 'Parse JSON' > Data Operation – Parse JSON

Add a 'Parse JSON' action to extract item details

Click '+ New step' below the trigger. Search for 'Parse JSON' and select the 'Data Operation – Parse JSON' action. This step lets you pull specific fields (item name, new status, person, board name) out of Monday.com's webhook payload cleanly. In the 'Content' field, click inside and select 'Body' from the dynamic content panel — this is the raw JSON Monday.com sends. For the Schema, click 'Generate from sample' and paste in the sample payload below.

  1. 1Click '+ New step'
  2. 2Type 'Parse JSON' in the search bar
  3. 3Select 'Data Operation – Parse JSON'
  4. 4Click in the 'Content' field and choose 'Body' from dynamic content
  5. 5Click 'Generate from sample' and paste the Monday.com sample payload
What you should see: The Parse JSON card shows a populated schema with fields like 'pulseId', 'pulseName', 'columnValue', and 'columnTitle'.
Common mistake — Monday.com's webhook payload structure differs depending on the trigger type (status change vs. item created vs. deadline). If you change the trigger later, the schema here will be wrong and the flow will fail silently — regenerate the schema whenever you switch triggers.
6

Flow canvas > + New step > Search 'Condition' > Control – Condition

Add a condition to filter by specific status values (optional but recommended)

Click '+ New step', search for 'Condition', and select the 'Control – Condition' action. This lets you send Slack messages only when an item moves to a specific status — for example, 'Blocked', 'Done', or 'In Review' — instead of every single status change. In the left field of the condition, select 'columnValue' from the Parse JSON dynamic content. Set the operator to 'is equal to' and type the exact status label in the right field, matching case exactly as it appears in Monday.com.

  1. 1Click '+ New step'
  2. 2Search for 'Condition' and select 'Control – Condition'
  3. 3Click the left field and select 'columnValue' from dynamic content
  4. 4Set the operator dropdown to 'is equal to'
  5. 5Type the exact status label (e.g., 'Blocked') in the right field
What you should see: The condition card shows two branches: 'If yes' and 'If no'. You'll add your Slack action in the 'If yes' branch.
Common mistake — Status labels in Monday.com are case-sensitive here. 'blocked' will not match 'Blocked'. Copy the label directly from your Monday.com board column settings to avoid typos.
Slack
SL
trigger
filter
Status
matches criteria?
yes — passes through
no — skipped
Monday.com
MO
notified
7

Condition > If yes > Add an action > Search 'Slack' > Post message

Add the Slack 'Post message' action in the 'If yes' branch

Inside the 'If yes' branch of your condition, click 'Add an action'. Search for 'Slack' and select the Slack connector. Choose the 'Post message' action. Power Automate will prompt you to sign in to Slack — click 'Sign in' and authorize the connection using your Slack workspace credentials. Once connected, you'll see fields for Channel and Message Text.

  1. 1Click 'Add an action' inside the 'If yes' branch
  2. 2Type 'Slack' in the search bar
  3. 3Select the Slack connector
  4. 4Choose 'Post message'
  5. 5Click 'Sign in' and authorize with your Slack account
What you should see: The Slack action card shows your workspace name and input fields for Channel and Message Text.
Common mistake — The Power Automate Slack connector requires a user-based OAuth connection, not a bot token. The messages will appear as posted by your personal Slack account unless you route through a Slack Incoming Webhook instead. If your team prefers a bot identity, use the 'Send a message via Incoming Webhook' action instead of 'Post message'.
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
8

Flow canvas > Slack action card > Channel > Message Text

Configure the Slack channel and message content

In the 'Channel' field, type the exact Slack channel name with the # prefix — for example, #project-updates. Do not use the channel ID unless Power Automate's dropdown doesn't list your channel. In the 'Message Text' field, build your notification using dynamic content from the Parse JSON step. A clear message format is: '🔔 *[pulseName]* moved to *[columnValue]* on board [boardName]. Changed by: [userName]'. Click on each bracketed item and replace it with the matching dynamic content field.

  1. 1Type your Slack channel name in the 'Channel' field (e.g., #project-updates)
  2. 2Click in the 'Message Text' field
  3. 3Type your message prefix, then insert 'pulseName' from dynamic content
  4. 4Continue building the message, inserting 'columnValue', 'boardName', and 'userName'
What you should see: The Message Text field shows a mix of static text and blue dynamic content tokens.
Common mistake — Map fields using the variable picker — don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
9

make.powerautomate.com > My flows > + New flow > Automated cloud flow > Monday.com – When a new item is created

Add a parallel branch for item creation notifications (optional)

If you also want to notify Slack when a new Monday.com item is created — not just when status changes — you need a separate flow. Power Automate does not support multiple triggers in a single flow. Go back to 'My flows', create a new Automated cloud flow, and this time choose the Monday.com trigger 'When a new item is created'. Follow the same Slack action steps above, adjusting the message text to say 'New item created' instead of a status change.

  1. 1Go to My flows and click '+ New flow'
  2. 2Select 'Automated cloud flow'
  3. 3Search for Monday.com and choose 'When a new item is created'
  4. 4Configure the same board and Slack channel settings
  5. 5Adjust the message text to reflect item creation context
What you should see: You now have two separate flows in My flows — one for status changes, one for new item creation.
Common mistake — Power Automate's Monday.com connector does not currently have a native 'deadline reached' trigger. For deadline notifications, you need a Scheduled cloud flow that runs daily and uses the Monday.com 'Get items' action filtered by due date matching today's date.
10

Flow canvas > Save > Test > Manually > Save & Test

Test the flow with a real Monday.com status change

Click 'Save' in the top right of the flow canvas, then click 'Test' (also top right). Choose 'Manually' and then 'Save & Test'. Power Automate will now wait for a trigger event. Switch to your Monday.com board and change the status of any item to the value you configured in your condition. Watch the Power Automate test panel — it will show each step turning green as it completes. Check your Slack channel within 2 minutes for the notification.

  1. 1Click 'Save' in the top-right corner of the canvas
  2. 2Click 'Test' in the top-right corner
  3. 3Select 'Manually' and then click 'Save & Test'
  4. 4Go to your Monday.com board and change an item's status
  5. 5Return to Power Automate and watch each step turn green
What you should see: All steps show green checkmarks in the test panel, and a Slack message appears in your target channel within 2 minutes.
Power Automate
▶ Test flow
executed
Slack
Monday.com
Monday.com
🔔 notification
received
11

make.powerautomate.com > My flows > [Flow name] > 28-day run history

Turn the flow on and monitor run history

After a successful test, click 'Turn on' if the flow is still in draft mode. Go to 'My flows', find your flow, and click it to open the detail view. The '28-day run history' section at the bottom shows every execution — green for success, red for failure. Check back after 24 hours of real usage to confirm no runs are failing. If you see failures, click the failed run to see exactly which step errored and what the error message says.

  1. 1Click 'Turn on' if the flow shows as inactive
  2. 2Navigate to My flows in the left sidebar
  3. 3Click your flow name to open the detail page
  4. 4Scroll to '28-day run history' and review initial runs
  5. 5Click any failed run to open the error detail view
What you should see: The run history shows green successful executions corresponding to each Monday.com status change you made during testing.
Common mistake — Power Automate does not send email alerts by default when a flow fails. Go to the flow detail page, click the three-dot menu, and enable 'Send email notifications when runs fail' so you find out about breaks before your team does.

Paste this expression into a 'Compose' action immediately after Parse JSON to build a formatted Slack message with a deep link to the Monday.com item and an emoji that changes based on status. Reference the Compose action's output in the Slack 'Message Text' field instead of building the message inline.

JavaScript — Code Stepif(
▸ Show code
if(
  equals(triggerBody()?['columnValue'], 'Blocked'),
  concat('🔴 *', triggerBody()?['pulseName'], '* is now *Blocked* on ', triggerBody()?['boardName'], '. Changed by ', triggerBody()?['userName'], '. View → https://monday.com/boards/', triggerBody()?['boardId'], '/pulses/', triggerBody()?['pulseId']),

... expand to see full code

if(
  equals(triggerBody()?['columnValue'], 'Blocked'),
  concat('🔴 *', triggerBody()?['pulseName'], '* is now *Blocked* on ', triggerBody()?['boardName'], '. Changed by ', triggerBody()?['userName'], '. View → https://monday.com/boards/', triggerBody()?['boardId'], '/pulses/', triggerBody()?['pulseId']),
  if(
    equals(triggerBody()?['columnValue'], 'Done'),
    concat('✅ *', triggerBody()?['pulseName'], '* is now *Done* on ', triggerBody()?['boardName'], '. Changed by ', triggerBody()?['userName'], '. View → https://monday.com/boards/', triggerBody()?['boardId'], '/pulses/', triggerBody()?['pulseId']),
    concat('🔵 *', triggerBody()?['pulseName'], '* moved to *', triggerBody()?['columnValue'], '* on ', triggerBody()?['boardName'], '. Changed by ', triggerBody()?['userName'], '. View → https://monday.com/boards/', triggerBody()?['boardId'], '/pulses/', triggerBody()?['pulseId'])
  )
)

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use Power Automate for this if your team lives inside Microsoft 365 and already has Power Automate licenses through that subscription — you're paying for it whether you use it or not. It also makes sense if your IT department controls app integrations and won't approve external tools like Make or Zapier; Power Automate stays inside the Microsoft compliance boundary. Third reason: if you're already using Power Automate for other flows in the same environment, adding this one keeps your automation in one place. The one scenario where you should pick something else: if your team has no Microsoft 365 context at all, Make does this same workflow with a real webhook trigger (not polling), better filter logic, and a free tier that handles up to 1,000 operations per month.

Cost

Cost math: this flow runs once per Monday.com status change. Each run consumes roughly 2-4 Power Platform actions depending on whether you include Parse JSON and a Condition step. At 50 status changes per day across a 20-person team, that's about 1,500 runs per month, consuming 3,000-6,000 actions. Power Automate Per User is $15/user/month and includes 40,000 actions — this workflow won't come close to the limit. If you're on Microsoft 365 Business Premium, you already have seeded Power Automate capacity. Compare that to Zapier, where 1,500 runs/month puts you squarely on the $49/month Starter plan. Power Automate wins on cost by $34/month or more assuming existing Microsoft licenses.

Tradeoffs

Make's Monday.com integration uses a true webhook — status changes arrive in under 10 seconds, and Make's router module handles all your status-to-channel routing in one scenario instead of separate flows. Zapier has a cleaner setup experience and takes about 8 minutes to configure versus 20 minutes for Power Automate, but Zapier's Monday.com trigger polls every 5-15 minutes on most plans. n8n gives you full control over the webhook endpoint and lets you write JavaScript to handle complex status mappings, but requires self-hosting or a paid cloud account. Pipedream lets you use the Monday.com GraphQL API directly for custom queries Zapier and Make can't do. Power Automate is still the right call here specifically when Microsoft 365 compliance requirements are non-negotiable, or when consolidating tool sprawl is a priority for your IT team — not because the connector is technically superior.

Three things you'll hit after going live. First: Monday.com sometimes fires two webhook events for one status change when board automations also react to the same change — your Slack channel gets duplicate messages. Filter by checking whether the triggering user ID matches your Monday.com automation bot account and drop those events. Second: the 'userName' field in the trigger payload is occasionally empty when the change was made via Monday.com's mobile app or API. Build your message to handle a null userName gracefully with a fallback like 'a team member'. Third: Power Automate's Monday.com connector doesn't surface the previous status value — only the new one. If you need 'moved FROM X TO Y' messaging, you'll need to store the last-known status in a SharePoint list or Azure Table and compare on each run, which adds meaningful complexity to this otherwise simple flow.

Ideas for what to build next

  • Add deadline reminder notifications via Scheduled flowCreate a separate Scheduled cloud flow that runs daily at 8 AM, queries Monday.com for items with a due date matching today using 'Get items by column values', and posts a digest to Slack listing everything due that day.
  • Route notifications to different Slack channels by board or statusAdd a Switch control action after Parse JSON that checks 'boardName' or 'columnValue' and routes each notification to a different channel — critical blockers go to #escalations, completions go to #wins.
  • Log all status changes to a SharePoint list for reportingAdd a 'Create item' SharePoint action alongside the Slack step to write every status change to a running log — item name, old status, new status, timestamp, and user. After 30 days you have a complete audit trail you can pivot in Excel.

Related guides

Was this guide helpful?
Slack + Monday.com overviewPower Automate profile →