Back to Integrations
integrationMicrosoft Teams node
integrationTodoist node

Microsoft Teams and Todoist integration

Save yourself the work of writing custom integrations for Microsoft Teams and Todoist and use n8n instead. Build adaptable and scalable Communication, HITL, and Productivity workflows that work with your technology stack. All within a building experience you will love.

How to connect Microsoft Teams and Todoist

  • Step 1: Create a new workflow
  • Step 2: Add and configure nodes
  • Step 3: Connect
  • Step 4: Customize and extend your integration
  • Step 5: Test and activate your workflow

Step 1: Create a new workflow and add the first step

In n8n, click the "Add workflow" button in the Workflows tab to create a new workflow. Add the starting point – a trigger on when your workflow should run: an app event, a schedule, a webhook call, another workflow, an AI chat, or a manual trigger. Sometimes, the HTTP Request node might already serve as your starting point.

Microsoft Teams and Todoist integration: Create a new workflow and add the first step

Step 2: Add and configure Microsoft Teams and Todoist nodes

You can find Microsoft Teams and Todoist in the nodes panel. Drag them onto your workflow canvas, selecting their actions. Click each node, choose a credential, and authenticate to grant n8n access. Configure Microsoft Teams and Todoist nodes one by one: input data on the left, parameters in the middle, and output data on the right.

Microsoft Teams and Todoist integration: Add and configure Microsoft Teams and Todoist nodes

Step 3: Connect Microsoft Teams and Todoist

A connection establishes a link between Microsoft Teams and Todoist (or vice versa) to route data through the workflow. Data flows from the output of one node to the input of another. You can have single or multiple connections for each node.

Microsoft Teams and Todoist integration: Connect Microsoft Teams and Todoist

Step 4: Customize and extend your Microsoft Teams and Todoist integration

Use n8n's core nodes such as If, Split Out, Merge, and others to transform and manipulate data. Write custom JavaScript or Python in the Code node and run it as a step in your workflow. Connect Microsoft Teams and Todoist with any of n8n’s 1000+ integrations, and incorporate advanced AI logic into your workflows.

Microsoft Teams and Todoist integration: Customize and extend your Microsoft Teams and Todoist integration

Step 5: Test and activate your Microsoft Teams and Todoist workflow

Save and run the workflow to see if everything works as expected. Based on your configuration, data should flow from Microsoft Teams to Todoist or vice versa. Easily debug your workflow: you can check past executions to isolate and fix the mistake. Once you've tested everything, make sure to save your workflow and activate it.

Microsoft Teams and Todoist integration: Test and activate your Microsoft Teams and Todoist workflow

Track & alert public transport delays using ScrapeGraphAI, Teams and Todoist

Public Transport Delay Tracker with Microsoft Teams and Todoist

⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template.

This workflow continuously monitors public-transportation websites and apps for real-time schedule changes and delays, then posts an alert to a Microsoft Teams channel and creates a follow-up task in Todoist. It is ideal for commuters or travel coordinators who need instant, actionable updates about transit disruptions.

Pre-conditions/Requirements

Prerequisites
An n8n instance (self-hosted or n8n cloud)
ScrapeGraphAI community node installed
Microsoft Teams account with permission to create an Incoming Webhook
Todoist account with at least one project
Access to target transit authority websites or APIs

Required Credentials
ScrapeGraphAI API Key** – Enables scraping of transit data
Microsoft Teams Webhook URL** – Sends messages to a specific channel
Todoist API Token** – Creates follow-up tasks
(Optional) Transit API key if you are using a protected data source

Specific Setup Requirements

Resource What you need
Teams Channel Create a channel → Add “Incoming Webhook” → copy the URL
Todoist Project Create “Transit Alerts” project and note its Project ID
Transit URLs/APIs Confirm the URLs/pages contain the schedule & delay elements

How it works

This workflow continuously monitors public-transportation websites and apps for real-time schedule changes and delays, then posts an alert to a Microsoft Teams channel and creates a follow-up task in Todoist. It is ideal for commuters or travel coordinators who need instant, actionable updates about transit disruptions.

Key Steps:
Webhook (Trigger): Starts the workflow on a schedule or via HTTP call.
Set Node
: Defines target transit URLs and parsing rules.
ScrapeGraphAI Node**: Scrapes live schedule and delay data.
Code Node**: Normalizes scraped data, converts times, and flags delays.
IF Node**: Determines if a delay exceeds the user-defined threshold.
Microsoft Teams Node**: Sends formatted alert message to the selected Teams channel.
Todoist Node**: Creates a “Check alternate route” task with due date equal to the delayed departure time.
Sticky Note Node**: Holds a blueprint-level explanation for future editors.

Set up steps

Setup Time: 15–20 minutes

Install community node: In n8n, go to “Manage Nodes” → “Install” → search for “ScrapeGraphAI” → install and restart n8n.
Create Teams webhook: In Microsoft Teams, open target channel → “Connectors” → “Incoming Webhook” → give it a name/icon → copy the URL.
Create Todoist API token: Todoist → Settings → Integrations → copy your personal API token.
Add credentials in n8n: Settings → Credentials → create new for ScrapeGraphAI, Microsoft Teams, and Todoist.
Import workflow template: File → Import Workflow JSON → select this template.
Configure Set node: Replace example transit URLs with those of your local transit authority.
Adjust delay threshold: In the Code node, edit const MAX_DELAY_MINUTES = 5; as needed.
Activate workflow: Toggle “Active”. Monitor executions to ensure messages and tasks are created.

Node Descriptions

Core Workflow Nodes:
Webhook** – Triggers workflow on schedule or external HTTP request.
Set** – Supplies list of URLs and scraping selectors.
ScrapeGraphAI** – Scrapes timetable, status, and delay indicators.
Code** – Parses results, converts to minutes, and builds payloads.
IF** – Compares delay duration to threshold.
Microsoft Teams** – Posts formatted adaptive-card-style message.
Todoist** – Adds a task with priority and due date.
Sticky Note** – Internal documentation inside the workflow canvas.

Data Flow:
Webhook → Set → ScrapeGraphAI → Code → IF
a. IF (true branch) → Microsoft Teams → Todoist
b. IF (false branch) → (workflow ends)

Customization Examples

Change alert message formatting
// In the Code node
const message = ⚠️ Delay Alert: Route: ${item.route} Expected: ${item.scheduled} New Time: ${item.newTime} Delay: ${item.delay} min Link: ${item.url};
return [{ json: { message } }];

Post to multiple Teams channels
// Duplicate the Microsoft Teams node and reference a different credential
items.forEach(item => {
item.json.webhookUrl = $node["Set"].json["secondaryChannelWebhook"];
});
return items;

Data Output Format

The workflow outputs structured JSON data:

{
"route": "Blue Line",
"scheduled": "2024-12-01T14:25:00Z",
"newTime": "2024-12-01T14:45:00Z",
"delay": 20,
"status": "Delayed",
"url": "https://transit.example.com/blue-line/status"
}

Troubleshooting

Common Issues
Scraping returns empty data – Verify CSS selectors/XPath in the Set node and ensure the target site hasn’t changed its markup.
Teams message not sent – Check that the stored webhook URL is correct and the connector is still active.
Todoist task duplicated – Add a unique key (e.g., route + timestamp) to avoid inserting duplicates.

Performance Tips
Limit the number of URLs per execution when monitoring many routes.
Cache previous scrape results to avoid hitting site rate limits.

Pro Tips:
Use n8n’s built-in Cron instead of Webhook if you only need periodic polling.
Add a SplitInBatches node after scraping to process large route lists incrementally.
Enable execution logging to an external database for detailed audit trails.

Nodes used in this workflow

Popular Microsoft Teams and Todoist workflows

Track & Alert Public Transport Delays using ScrapeGraphAI, Teams and Todoist

Public Transport Delay Tracker with Microsoft Teams and Todoist ⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template. This workflow continuously monitors public-transportation websites and apps for real-time schedule changes and delays, then posts an alert to a Microsoft Teams channel and creates a follow-up task in Todoist. It is ideal for commuters or travel coordinators who need instant, actionable updates about transit disruptions. Pre-conditions/Requirements Prerequisites An n8n instance (self-hosted or n8n cloud) ScrapeGraphAI community node installed Microsoft Teams account with permission to create an Incoming Webhook Todoist account with at least one project Access to target transit authority websites or APIs Required Credentials ScrapeGraphAI API Key** – Enables scraping of transit data Microsoft Teams Webhook URL** – Sends messages to a specific channel Todoist API Token** – Creates follow-up tasks (Optional) Transit API key if you are using a protected data source Specific Setup Requirements | Resource | What you need | |--------------------------|---------------------------------------------------------------| | Teams Channel | Create a channel → Add “Incoming Webhook” → copy the URL | | Todoist Project | Create “Transit Alerts” project and note its Project ID | | Transit URLs/APIs | Confirm the URLs/pages contain the schedule & delay elements | How it works This workflow continuously monitors public-transportation websites and apps for real-time schedule changes and delays, then posts an alert to a Microsoft Teams channel and creates a follow-up task in Todoist. It is ideal for commuters or travel coordinators who need instant, actionable updates about transit disruptions. Key Steps: Webhook (Trigger)**: Starts the workflow on a schedule or via HTTP call. Set Node**: Defines target transit URLs and parsing rules. ScrapeGraphAI Node**: Scrapes live schedule and delay data. Code Node**: Normalizes scraped data, converts times, and flags delays. IF Node**: Determines if a delay exceeds the user-defined threshold. Microsoft Teams Node**: Sends formatted alert message to the selected Teams channel. Todoist Node**: Creates a “Check alternate route” task with due date equal to the delayed departure time. Sticky Note Node**: Holds a blueprint-level explanation for future editors. Set up steps Setup Time: 15–20 minutes Install community node: In n8n, go to “Manage Nodes” → “Install” → search for “ScrapeGraphAI” → install and restart n8n. Create Teams webhook: In Microsoft Teams, open target channel → “Connectors” → “Incoming Webhook” → give it a name/icon → copy the URL. Create Todoist API token: Todoist → Settings → Integrations → copy your personal API token. Add credentials in n8n: Settings → Credentials → create new for ScrapeGraphAI, Microsoft Teams, and Todoist. Import workflow template: File → Import Workflow JSON → select this template. Configure Set node: Replace example transit URLs with those of your local transit authority. Adjust delay threshold: In the Code node, edit const MAX_DELAY_MINUTES = 5; as needed. Activate workflow: Toggle “Active”. Monitor executions to ensure messages and tasks are created. Node Descriptions Core Workflow Nodes: Webhook** – Triggers workflow on schedule or external HTTP request. Set** – Supplies list of URLs and scraping selectors. ScrapeGraphAI** – Scrapes timetable, status, and delay indicators. Code** – Parses results, converts to minutes, and builds payloads. IF** – Compares delay duration to threshold. Microsoft Teams** – Posts formatted adaptive-card-style message. Todoist** – Adds a task with priority and due date. Sticky Note** – Internal documentation inside the workflow canvas. Data Flow: Webhook → Set → ScrapeGraphAI → Code → IF a. IF (true branch) → Microsoft Teams → Todoist b. IF (false branch) → (workflow ends) Customization Examples Change alert message formatting // In the Code node const message = `⚠️ Delay Alert: Route: ${item.route} Expected: ${item.scheduled} New Time: ${item.newTime} Delay: ${item.delay} min Link: ${item.url}`; return [{ json: { message } }]; Post to multiple Teams channels // Duplicate the Microsoft Teams node and reference a different credential items.forEach(item => { item.json.webhookUrl = $node["Set"].json["secondaryChannelWebhook"]; }); return items; Data Output Format The workflow outputs structured JSON data: { "route": "Blue Line", "scheduled": "2024-12-01T14:25:00Z", "newTime": "2024-12-01T14:45:00Z", "delay": 20, "status": "Delayed", "url": "https://transit.example.com/blue-line/status" } Troubleshooting Common Issues Scraping returns empty data – Verify CSS selectors/XPath in the Set node and ensure the target site hasn’t changed its markup. Teams message not sent – Check that the stored webhook URL is correct and the connector is still active. Todoist task duplicated – Add a unique key (e.g., route + timestamp) to avoid inserting duplicates. Performance Tips Limit the number of URLs per execution when monitoring many routes. Cache previous scrape results to avoid hitting site rate limits. Pro Tips: Use n8n’s built-in Cron instead of Webhook if you only need periodic polling. Add a SplitInBatches node after scraping to process large route lists incrementally. Enable execution logging to an external database for detailed audit trails.

Build your own Microsoft Teams and Todoist integration

Create custom Microsoft Teams and Todoist workflows by choosing triggers and actions. Nodes come with global operations and settings, as well as app-specific parameters that can be configured. You can also use the HTTP Request node to query data from any app or service with a REST API.

Microsoft Teams supported actions

Create
Create a channel
Delete
Delete a channel
Get
Get a channel
Get Many
Get many channels
Update
Update a channel
Create
Create a message in a channel
Get Many
Get many messages from a channel
Create
Create a message in a chat
Get
Get a message from a chat
Get Many
Get many messages from a chat
Send and Wait for Response
Send a message and wait for response
Create
Create a task
Delete
Delete a task
Get
Get a task
Get Many
Get many tasks
Update
Update a task

Todoist supported actions

Close
Close a task
Create
Create a new task
Delete
Delete a task
Get
Get a task
Get Many
Get many tasks
Move
Move a task
Quick Add
Quick add a task using natural language
Reopen
Reopen a task
Update
Update a task
Archive
Archive a project
Create
Create a new project
Delete
Delete a project
Get
Get a project
Get Collaborators
Get project collaborators
Get Many
Get many projects
Unarchive
Unarchive a project
Update
Update a project
Create
Create a new section
Delete
Delete a section
Get
Get a section
Get Many
Get many sections
Update
Update a section
Create
Create a new comment
Delete
Delete a comment
Get
Get a comment
Get Many
Get many comments
Update
Update a comment
Create
Create a new label
Delete
Delete a label
Get
Get a label
Get Many
Get many labels
Update
Update a label
Create
Create a new reminder
Delete
Delete a reminder
Get Many
Get many reminders
Update
Update a reminder

FAQs

  • Can Microsoft Teams connect with Todoist?

  • Can I use Microsoft Teams’s API with n8n?

  • Can I use Todoist’s API with n8n?

  • Is n8n secure for integrating Microsoft Teams and Todoist?

  • How to get started with Microsoft Teams and Todoist integration in n8n.io?

Looking to integrate Microsoft Teams and Todoist in your company?

Over 3000 companies switch to n8n every single week

Why use n8n to integrate Microsoft Teams with Todoist

Build complex workflows, really fast

Build complex workflows, really fast

Handle branching, merging and iteration easily.
Pause your workflow to wait for external events.

Code when you need it, UI when you don't

Simple debugging

Your data is displayed alongside your settings, making edge cases easy to track down.

Use templates to get started fast

Use 1000+ workflow templates available from our core team and our community.

Reuse your work

Copy and paste, easily import and export workflows.

Implement complex processes faster with n8n

red iconyellow iconred iconyellow icon