workflows.fit
Back to n8n workflows
n8n templateFreeBy Yuvraj Singh

Sync tasks between Notion and Todoist in both directions with Redis

Purpose This solution enables you to manage all your Notion and Todoist tasks from different workspaces as well as your calendar events in a single place. This is 2 way sync with partial support for recurring How it w...

DevelopmentCore NodesData & StorageProductivityUtilityIfFilterRedis
Loading interactive preview...

Template notes

Purpose

This solution enables you to manage all your Notion and Todoist tasks from different workspaces as well as your calendar events in a single place. This is 2 way sync with partial support for recurring

How it works

- The realtime sync consists of two workflows, both triggered by a registered webhook from either Notion or Todoist. - To avoid overwrites by lately arriving webhook calls, every time the current task is retrieved from both sides. - Redis is used to prevent from endless loops, since an update in one system triggers another webhook call again. Using the ID of the task, the trigger is being locked down for 80 seconds. - Depending on the detected changes, the other side is updated accordingly .Generally Notion is treaded as the main source. Using an "Obsolete" Status, it is guaranteed, that tasks never get deleted entirely by accident. - The Todoist ID is stored in the Notion task, so they stay linked together - An additional full sync workflow daily fixes inconsistencies, if any of them occurred, since webhooks cannot be trusted entirely. - Since Todoist requires a more complex setup, a tiny workflow helps with activating the webhook. - Another tiny workflow helps generating a global config, which is used by all workflows for mapping purposes.

Mapping (Notion >> Todoist)

- Name: Task Name - Priority: Priority (1: do first, 2: urgent, 3: important, 4: unset) - Due: Date - Status: Section (Done: completed, Obsolete: deleted) - <pagelink>: Description (read-only) - Todoist ID: <taskid>

Current limitations

- Changes on the same task cannot be made simultaneously in both systems within a 15-20 second time frame. - Subtasks are not linked automatically to their parent yet. - Tasks names do not support URL’s yet.