Automatische Synchronisation von Easy Redmine-Aufgaben mit Microsoft To-Do

Fortgeschritten

Dies ist ein Miscellaneous, Project Management, Multimodal AI-Bereich Automatisierungsworkflow mit 11 Nodes. Hauptsächlich werden Code, SplitOut, MicrosoftToDo, ScheduleTrigger, EasyRedmine und andere Nodes verwendet. Automatische Synchronisation von Easy Redmine-Aufgaben mit Microsoft To-Do

Voraussetzungen
  • Keine besonderen Voraussetzungen, sofort nach Import nutzbar
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "K51hnk5IudD64T80",
  "meta": {
    "instanceId": "ccf4e500c5536799e0925f03390f0fd338e2b5a5bc862f6a57b5552acfdf3861"
  },
  "name": "Auto-Sync Easy Redmine Tasks to Microsoft To-Do",
  "tags": [],
  "nodes": [
    {
      "id": "9881a903-5665-4cab-909c-33ace2e1449d",
      "name": "Zeitplan-Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -624,
        160
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "33b91048-42f0-4355-810a-c0f60fd0c56e",
      "name": "Haftnotiz2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1616,
        -400
      ],
      "parameters": {
        "width": 640,
        "height": 1600,
        "content": "## Auto-Sync Easy Redmine Tasks to Microsoft To-Do  \n**Automatically sync filtered Easy Redmine tasks into a specific Microsoft To Do list, ensuring your task list stays current and clean.**\n\n### About Workflow  \nThis workflow pulls tasks from Easy Redmine using a predefined filter and syncs them to a Microsoft To Do list. Before syncing, it clears existing tasks in the selected list to avoid duplication. It’s perfect for teams or individuals using Easy Redmine for project management but prefer using Microsoft To Do for daily task tracking.\n\nWith this automation, your Microsoft To Do will always reflect your latest Redmine tasks—no manual copy-pasting required.\n\n### Use Case  \nAny user juggling Easy Redmine for planning and Microsoft To Do for execution can benefit from this integration.  \n- Clean up your To Do list daily and refill it with only active tasks.  \n- Helps personal or team task lists stay focused, accurate, and actionable.  \n- Great for daily check-ins, sprint planning, or syncing high-priority tasks.\n\n### How it works  \n- Schedule Trigger  \n  => Executes the workflow at a scheduled time (e.g. every day at 9 AM).  \n\n- Get to-do in specific list (getAll: task)  \n  => Retrieves all tasks currently present in the selected Microsoft To Do list.\n\n- Clean to-do list (delete: task)  \n  => Deletes all existing tasks from the target list to avoid duplicates.\n\n- Just one output after deletion (Code Node)  \n  => Ensures the workflow only continues after all deletions are confirmed and complete.\n\n- Get Easy Redmine task by filter (get-many: issues)  \n  => Uses saved filters in Redmine to pull only specific tasks (e.g., tasks assigned to you, open status, etc.).\n\n- Split Out  \n  => Breaks down Redmine task data to process each item individually.\n\n- Add ER task link to TO-do description (Code Node)  \n  => You need to add your Easy Redmine URL.\n  => Formats each task's data, including a direct Redmine task link, for Microsoft To Do.\n\n- Create to-do tasks (create: task)  \n  => Creates a new Microsoft To Do item for each Redmine task.\n\n### How to use  \n- Download and import the workflow into your n8n instance.  \n- Connect your Easy Redmine and Microsoft To Do (Microsoft Graph) credentials.  \n- Configure the following nodes to match your setup:  \n  => `Get to-do in specific list` → Select your target Microsoft To Do list  \n  => `Create to-do tasks` → Use the same list for output  \n  => `Get Easy Redmine task by filter` → Set your custom Redmine filters  \n- Update the Function node generating the task description to use your Redmine domain:  \n  `https://your-redmine-url.com/issues/{{ $json.id }}`  \n- Adjust the schedule trigger to your local timezone and preferred sync time.  \n- Run a test manually to confirm tasks are being cleared and recreated correctly.\n\n### Requirements  \n- Microsoft To Do account  \n  => With access to the relevant task list  \n- Easy Redmine application\n=> ideally technical user for API calls with specific permissions\n- n8n instance  \n  => Cloud or self-hosted version   \n\n\n### Need Help? \n- Reach out through n8n community => https://community.n8n.io/u/easy8.ai\n- Contant our team directly => Easy8.ai\n- Visit our youtube channel => https://www.youtube.com/@easy8ai \n"
      },
      "typeVersion": 1
    },
    {
      "id": "9c14d374-b5ac-4e41-8aa9-c3215e5f916f",
      "name": "Haftnotiz3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -848,
        -384
      ],
      "parameters": {
        "color": 7,
        "width": 1872,
        "height": 832,
        "content": "## Auto-Sync Easy Redmine Tasks to Microsoft To-Do  \n**1) \"Schedule Trigger\" – run the workflow daily at a chosen time**  \n**2) \"Get all tasks from Microsoft To Do list\" – clear existing tasks to avoid duplication**  \n**3) \"Code Node\" – confirm deletion before continuing**  \n**4) \"Get Easy Redmine tasks by filter\" – pull tasks using predefined Redmine filters (e.g. assigned to me, open status)**  \n**5) \"Split\" – process each task individually**  \n**6) \"Format description with Redmine link\" – enrich the task with a direct issue URL**  \n**7) \"Create task in Microsoft To Do\" – sync each Redmine task to your To Do list**\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6625c1e4-095f-4854-aa2b-d49572ee0a0f",
      "name": "Haftnotiz4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        -368
      ],
      "parameters": {
        "width": 512,
        "height": 368,
        "content": "## Final Output Example (Microsoft To-Do)\n\nA new task will be created in Microsoft To-Do with the following fields synced from Easy Redmine:\n\n---\n\n### 📝 **Task:** Test  \n**🆔 Redmine Issue ID:** [1354](https://your-redmine-url.com/issues/1354)  \n**📅 Due Date:** 13.02.2025\n**⭐ Priority:** Important (starred)\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "05c99cdc-59d3-4e8a-8f3e-efc4aadedc3e",
      "name": "To-Do in spezifischer Liste abrufen",
      "type": "n8n-nodes-base.microsoftToDo",
      "position": [
        -400,
        160
      ],
      "parameters": {
        "operation": "getAll",
        "taskListId": "AAMkADcxZTQyNjNhLWViZmMtNDAzYi05YmVlLTcwN2ZjZmJhMDMzNgAuAAAAAACrAudNNU6fQ4QFo2qMXN9hAQCQ5fbr8-B1RaMBjqcs7HbzAAThA6X8AAA="
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "b60846a5-08d2-4f9b-9861-e59bfa9a7b83",
      "name": "To-Do-Liste bereinigen",
      "type": "n8n-nodes-base.microsoftToDo",
      "onError": "continueErrorOutput",
      "position": [
        -192,
        160
      ],
      "parameters": {
        "taskId": "={{ $json.id }}",
        "operation": "delete",
        "taskListId": "AAMkADcxZTQyNjNhLWViZmMtNDAzYi05YmVlLTcwN2ZjZmJhMDMzNgAuAAAAAACrAudNNU6fQ4QFo2qMXN9hAQCQ5fbr8-B1RaMBjqcs7HbzAAThA6X8AAA="
      },
      "typeVersion": 1
    },
    {
      "id": "d8e153e3-d025-4f13-96be-ea7535791d3d",
      "name": "Einzelne Ausgabe nach Löschung",
      "type": "n8n-nodes-base.code",
      "position": [
        96,
        -48
      ],
      "parameters": {
        "jsCode": "const allTasks = items.map(item => item.json);\nconst summary = allTasks.map(task => `- ${task.title}`).join('\\n');\n\nreturn [\n  {\n    json: {\n      summary\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "b9eb8111-45d2-41b7-a360-8d1fb5e05dd7",
      "name": "Easy Redmine-Aufgaben nach Filter abrufen",
      "type": "@easysoftware/n8n-nodes-easy-redmine.easyRedmine",
      "position": [
        96,
        176
      ],
      "parameters": {
        "issueQueryId": 5342
      },
      "credentials": {
        "easyRedmineApi": {
          "id": "abcd1234efgh567",
          "name": "Name of Credentials "
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c728b2f2-a159-4d10-b2ac-7ae6fccc7589",
      "name": "Aufgaben aufteilen",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        288,
        176
      ],
      "parameters": {
        "include": "allOtherFields",
        "options": {},
        "fieldToSplitOut": "issues"
      },
      "typeVersion": 1
    },
    {
      "id": "dc827f02-f252-4d32-8fc4-7a5f3c32e042",
      "name": "Easy Redmine-Aufgabenlink zur To-Do-Beschreibung hinzufügen",
      "type": "n8n-nodes-base.code",
      "position": [
        480,
        176
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "// Fixed part of the URL\nconst baseUrl = \"https://es.easyproject.com/issues/\"; // here you need to add your Easy Redmine URL.\"\n\n// Variable part from previous node\nconst variablePart =  $('Split Out Tasks').item.json.issues.id ;// e.g., \"12345\"\n\n// Original text to enrich\nconst text = $('Split Out Tasks').item.json.issues.description; // e.g., \"This is the task description.\"\n\n// Construct the full link\nconst fullLink = `${baseUrl}${variablePart}`;\n\n// Enrich the text\nconst enrichedText = `${fullLink}\\n\\n${text}`;\n\nreturn {\n  json: {\n    enrichedText\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "cb10ba1e-f154-4ca3-a694-2d6b82cdd245",
      "name": "To-Do-Aufgaben erstellen",
      "type": "n8n-nodes-base.microsoftToDo",
      "position": [
        672,
        176
      ],
      "parameters": {
        "title": "={{ $('Split Out Tasks').item.json.issues.subject }}",
        "operation": "create",
        "taskListId": "AAMkADcxZTQyNjNhLWViZmMtNDAzYi05YmVlLTcwN2ZjZmJhMDMzNgAuAAAAAACrAudNNU6fQ4QFo2qMXN9hAQCQ5fbr8-B1RaMBjqcs7HbzAAThA6X8AAA=",
        "additionalFields": {
          "content": "={{ $json.enrichedText }}",
          "dueDateTime": "={{ $('Split Out Tasks').item.json.issues.due_date }}"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e0842545-bfe2-4c28-8244-d7547918d43c",
  "connections": {
    "c728b2f2-a159-4d10-b2ac-7ae6fccc7589": {
      "main": [
        [
          {
            "node": "dc827f02-f252-4d32-8fc4-7a5f3c32e042",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b60846a5-08d2-4f9b-9861-e59bfa9a7b83": {
      "main": [
        [
          {
            "node": "d8e153e3-d025-4f13-96be-ea7535791d3d",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "b9eb8111-45d2-41b7-a360-8d1fb5e05dd7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9881a903-5665-4cab-909c-33ace2e1449d": {
      "main": [
        [
          {
            "node": "05c99cdc-59d3-4e8a-8f3e-efc4aadedc3e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "05c99cdc-59d3-4e8a-8f3e-efc4aadedc3e": {
      "main": [
        [
          {
            "node": "b60846a5-08d2-4f9b-9861-e59bfa9a7b83",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d8e153e3-d025-4f13-96be-ea7535791d3d": {
      "main": [
        [
          {
            "node": "b9eb8111-45d2-41b7-a360-8d1fb5e05dd7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b9eb8111-45d2-41b7-a360-8d1fb5e05dd7": {
      "main": [
        [
          {
            "node": "c728b2f2-a159-4d10-b2ac-7ae6fccc7589",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dc827f02-f252-4d32-8fc4-7a5f3c32e042": {
      "main": [
        [
          {
            "node": "cb10ba1e-f154-4ca3-a694-2d6b82cdd245",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - Verschiedenes, Projektmanagement, Multimodales KI

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes11
Kategorie3
Node-Typen6
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Autor
Easy8.ai

Easy8.ai

@easy8ai

We guide B2B companies to use AI agents & automations with ease. Powered by Easy Software & n8n.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34