monday.com board → Monday-morning status roll-up in a Microsoft Teams channel
Board status lands in Teams at 08:00 on Monday, with stalled and past-due items named.
Status meetings exist because nobody reads the board. Every Monday at 08:00 this package reads the monday.com boards you choose and posts a roll-up to a Teams channel: item counts per status, what moved to Done since last Monday, what is due this week. A second message follows only when something is past due or has held one status for 14 days, and it names the owner. The board stays the source; Teams becomes the place it is read.
How it works
- mo
Trigger
Every Monday at 08:00 in your timezone (n8n Schedule Trigger), then one monday.com GraphQL items_page query per chosen board
monday.com
- mo
Step 1
Read every item on the chosen boards
The GraphQL items_page query returns each item with its group, status column label, owner from the people column and date column, paged by cursor so large boards are read in full.
- if
Step 2
Compare each item with last Monday's snapshot
The workflow keeps a snapshot of every item's status and the date that status was first seen. An item whose status differs from the snapshot gets today as its since-date; one that matches keeps the old date. Newly Done means Done now and not Done last time.
- if
Step 3
Bucket the items and flag the exceptions
Items are counted per status label and listed under done-since-last-Monday and due-this-week. Anything with a date before today and a status other than Done, or a since-date 14 or more days old, is flagged with its owner.
- T
Step 4
Post the roll-up to the project channel
One channel message per board through the Microsoft Graph channel-message call in the n8n Teams node: the status counts, the done list and the due-this-week list, each item linked back to monday.com.
- if
Step 5
Check whether anything is past due or stalled
When the flagged list is empty the run skips to the snapshot save. Otherwise it continues to a second message, so the channel only sees an exceptions post when there are exceptions.
- T
Step 6
Post the exceptions with owner names
A second message lists each past-due or stalled item with its owner's name, its status, and days overdue or days since the status last changed, in the same channel under the roll-up.
- if
Step 7
Save this week's snapshot for next Monday
Each item's ID, status and since-date are written back to the workflow's static data (a data store on Make), which is what the next run compares against; items no longer on the board drop out.
What changes once it runs
- One Teams post per board every Monday at 08:00, before the first meeting of the week.
- Items past their date, or holding one status for 14 days by the snapshot, are named with their owner in a separate message.
- What moved to Done last week and what is due this week are listed with links, not recalled from memory.
- The exceptions message appears only when there are exceptions, so a quiet week reads as quiet.
What you get
- n8n workflow export, run against a sample board before it ships
- Step-by-step guide to the monday.com token, the Teams consent and the board list
- Board-to-channel setup sheet: board ID, status, date and people column IDs, Teams channel
- A walkthrough recording of one Monday run, exceptions message included
- The same run as a Make blueprint, with a data store standing in for n8n's static data
Before you start
- monday.com with an API token for a user who can see the chosen boards
- Boards with a status column, a date column and a people column, named in the setup sheet
- Microsoft 365 with a Teams channel, and an admin to consent to the app's ChannelMessage.Send permission
- n8n Cloud or self-hosted, either works; the snapshot lives in the workflow's static data, so keep the workflow on one instance
Built for
Questions before you buy
- Can it run on Friday afternoon instead?
- Yes. The schedule is one setting in the trigger node, and the snapshot comparison follows whatever cadence you set, so a Friday 16:00 run reports the week just finished. The guide shows the two lines to change.
- Our boards use different status labels. Does that break the counts?
- No. The counts use whatever labels each board has. The only labels the package needs to know are which one means Done and, if you use one, which means Blocked; both are set per board in the setup sheet.
- What does the first run show?
- Counts per status, due-this-week and past-due items, all read straight from the board. The done-since-last-run list needs a previous snapshot, so it starts on the second run, and the stalled flag first fires once an item has held one status for 14 days of snapshots.
- Can it post to more than one channel?
- Each board in the setup sheet has its own channel, so yes, and one board can be listed twice with two channels. Two boards can also share a channel; they post as separate messages.
- We run Make, not n8n. Is that covered?
- It is. The package includes a Make blueprint with the monday.com and Microsoft Teams modules, an array aggregator for the bucketing and a Make data store holding the snapshot. Zapier is not included; the per-board grouping and the conditional second message do not fit its one-trigger-one-path shape well.
Nearby on the shelf
Whole catalog- AsSMade to order
Asana overdue tasks → Slack DM to each assignee + project channel summary
Overdue Asana tasks reach their owner by Slack DM at 08:30 every weekday.
Projects & operations$49 - JCUSMade to order
Jira issue created or moved → ClickUp task mirrored, status kept in step
Jira issues appear in ClickUp as tasks, and every status change follows within a minute.
Projects & operations$199 - TfCUSMade to order
Typeform work request → ClickUp task in the right list, assigned + Slack post
Work requests arrive as assigned ClickUp tasks, not as a form email someone retypes.
Projects & operations$99
