

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-timeUse case type
notificationReal-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.
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
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Item Name | pulseName | |
| New Status Value | columnValue | |
6 optional fields▸ show
| Column Title | columnTitle |
| Board Name | boardName |
| Item ID | pulseId |
| Changed By (User Name) | userName |
| Group Name | groupName |
| Timestamp | changedAt |
Step-by-Step Setup
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).
- 1Click 'My flows' in the left sidebar
- 2Click '+ New flow' at the top of the page
- 3Select 'Automated cloud flow'
- 4Type a name like 'Monday Status → Slack Notify'
- 5Click 'Skip' on the trigger selection dialog
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.
- 1Click the 'Add a trigger' box
- 2Type 'Monday.com' in the search bar
- 3Click the Monday.com connector tile
- 4Select 'When a status column changes' from the trigger list
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.
- 1Click 'Sign in' inside the trigger card
- 2Open Monday.com in a new tab
- 3Click your avatar in the bottom-left corner
- 4Click 'Developers', then 'My Access Tokens'
- 5Copy your personal API token and paste it into the Power Automate popup
- 6Click 'Create'
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.
- 1Click the 'Board ID' dropdown and select your target board
- 2Click the 'Column ID' dropdown
- 3Select the status column (e.g., 'Status' or 'Stage')
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.
- 1Click '+ New step'
- 2Type 'Parse JSON' in the search bar
- 3Select 'Data Operation – Parse JSON'
- 4Click in the 'Content' field and choose 'Body' from dynamic content
- 5Click 'Generate from sample' and paste the Monday.com sample payload
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.
- 1Click '+ New step'
- 2Search for 'Condition' and select 'Control – Condition'
- 3Click the left field and select 'columnValue' from dynamic content
- 4Set the operator dropdown to 'is equal to'
- 5Type the exact status label (e.g., 'Blocked') in the right field
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.
- 1Click 'Add an action' inside the 'If yes' branch
- 2Type 'Slack' in the search bar
- 3Select the Slack connector
- 4Choose 'Post message'
- 5Click 'Sign in' and authorize with your Slack account
channel: {{channel}}
ts: {{ts}}
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.
- 1Type your Slack channel name in the 'Channel' field (e.g., #project-updates)
- 2Click in the 'Message Text' field
- 3Type your message prefix, then insert 'pulseName' from dynamic content
- 4Continue building the message, inserting 'columnValue', 'boardName', and 'userName'
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.
- 1Go to My flows and click '+ New flow'
- 2Select 'Automated cloud flow'
- 3Search for Monday.com and choose 'When a new item is created'
- 4Configure the same board and Slack channel settings
- 5Adjust the message text to reflect item creation context
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.
- 1Click 'Save' in the top-right corner of the canvas
- 2Click 'Test' in the top-right corner
- 3Select 'Manually' and then click 'Save & Test'
- 4Go to your Monday.com board and change an item's status
- 5Return to Power Automate and watch each step turn green
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.
- 1Click 'Turn on' if the flow shows as inactive
- 2Navigate to My flows in the left sidebar
- 3Click your flow name to open the detail page
- 4Scroll to '28-day run history' and review initial runs
- 5Click any failed run to open the error detail view
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
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 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.
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 flow — Create 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 status — Add 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 reporting — Add 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
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup