Workflow n8n

Automatisation Notion vers Clockify avec n8n : synchronisation efficace

Ce workflow n8n a pour objectif de synchroniser les données entre Notion et Clockify, permettant ainsi une gestion fluide des clients et des projets. Dans un contexte où les entreprises utilisent ces deux outils pour suivre leurs tâches et leurs projets, cette automatisation n8n facilite la mise à jour des informations sans intervention manuelle. Par exemple, lorsqu'un client est ajouté ou modifié dans Notion, les changements sont automatiquement répercutés dans Clockify, réduisant ainsi le risque d'erreurs et de pertes de temps. Le workflow commence par un déclencheur Webhook ou un déclencheur programmé qui active le processus. Ensuite, il récupère les identifiants des espaces de travail dans Clockify, puis compare les ensembles de données entre Notion et Clockify pour identifier les clients et projets actifs. Si un client n'est pas encore mappé dans Notion, le workflow crée un nouveau client dans Clockify. De même, les projets sont gérés de manière similaire, en mettant à jour ou en créant des projets selon les besoins. En intégrant cette automatisation dans votre entreprise, vous bénéficiez d'une réduction significative des tâches administratives, permettant à vos équipes de se concentrer sur des activités à plus forte valeur ajoutée. Cela améliore non seulement l'efficacité opérationnelle, mais assure également une cohérence des données entre vos outils de gestion. Tags clés : automatisation, Notion, Clockify.

Catégorie: Webhook | Scheduled · Tags: automatisation, Notion, Clockify, synchronisation, workflow0

Vue d'ensemble du workflow n8n

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Détail des nœuds du workflow n8n

  • Webhook

    Ce noeud reçoit des requêtes HTTP via un webhook.

  • Globals

    Ce noeud permet de définir des variables globales dans le workflow.

  • Schedule Trigger

    Ce noeud déclenche le workflow selon un calendrier défini.

  • Get first workspace ID

    Ce noeud récupère l'identifiant du premier espace de travail dans Clockify.

  • Compare Datasets

    Ce noeud compare deux ensembles de données selon des critères spécifiés.

  • Stop and Error

    Ce noeud arrête le workflow et génère un message d'erreur.

  • Structure output

    Ce noeud structure la sortie sans effectuer d'opération.

  • Map values

    Ce noeud permet de mapper des valeurs à partir des données d'entrée.

  • Map values1

    Ce noeud effectue un mapping de valeurs supplémentaires sur les données.

  • No Operation

    Ce noeud n'effectue aucune opération et ne modifie pas les données.

  • Get active Clients from Notion

    Ce noeud récupère les clients actifs depuis Notion selon des filtres spécifiés.

  • Get active Clients from Clockify

    Ce noeud récupère les clients actifs depuis Clockify avec des options définies.

  • If unmapped in Notion

    Ce noeud vérifie si des éléments ne sont pas mappés dans Notion.

  • Set new values

    Ce noeud définit de nouvelles valeurs pour les données traitées.

  • Update Client in Clockify

    Ce noeud met à jour un client dans Clockify avec les nouvelles informations.

  • Get archived Client from Notion

    Ce noeud récupère un client archivé depuis Notion.

  • Create Client in Clockify

    Ce noeud crée un nouveau client dans Clockify.

  • Store Clockify ID in Notion

    Ce noeud stocke l'identifiant de Clockify dans Notion.

  • Remove Client from Clockify

    Ce noeud supprime un client de Clockify.

  • Merge

    Ce noeud fusionne plusieurs entrées de données.

  • No Operation, do nothing

    Ce noeud n'effectue aucune opération et ne modifie pas les données.

  • Get active Projects from Notion

    Ce noeud récupère les projets actifs depuis Notion selon des critères définis.

  • Get active Projects from Clockify

    Ce noeud récupère les projets actifs depuis Clockify.

  • Update Project in Clockify

    Ce noeud met à jour un projet dans Clockify avec les nouvelles données.

  • Get completed Project from Notion

    Ce noeud récupère les projets complétés depuis Notion.

  • Create Project in Clockify

    Ce noeud crée un nouveau projet dans Clockify.

  • Remove Project from Clockify

    Ce noeud supprime un projet de Clockify.

  • Structure output1

    Ce noeud structure la sortie sans effectuer d'opération.

  • No Operation1

    Ce noeud n'effectue aucune opération et ne modifie pas les données.

  • Map values2

    Ce noeud permet de mapper des valeurs supplémentaires à partir des données d'entrée.

  • Map values3

    Ce noeud effectue un mapping de valeurs supplémentaires sur les données.

  • Compare Datasets1

    Ce noeud compare deux ensembles de données selon des critères spécifiés.

  • If unmapped in Notion1

    Ce noeud vérifie si des éléments ne sont pas mappés dans Notion.

  • Set new values1

    Ce noeud définit de nouvelles valeurs pour les données traitées.

  • Store Clockify ID in Notion1

    Ce noeud stocke l'identifiant de Clockify dans Notion.

  • Stop and Error1

    Ce noeud arrête le workflow et génère un message d'erreur.

  • Merge1

    Ce noeud fusionne plusieurs entrées de données.

  • No Operation, do nothing2

    Ce noeud n'effectue aucune opération et ne modifie pas les données.

  • Get active Tasks from Notion

    Ce noeud récupère les tâches actives depuis Notion.

  • Get active Tasks from Clockify

    Ce noeud récupère les tâches actives depuis Clockify.

  • Update Task in Clockify

    Ce noeud met à jour une tâche dans Clockify.

  • Get completed Task from Notion

    Ce noeud récupère les tâches complétées depuis Notion.

  • Create Task in Clockify

    Ce noeud crée une nouvelle tâche dans Clockify.

  • Remove Task from Clockify

    Ce noeud supprime une tâche de Clockify.

  • Structure output2

    Ce noeud structure la sortie sans effectuer d'opération.

  • No Operation2

    Ce noeud n'effectue aucune opération et ne modifie pas les données.

  • Map values4

    Ce noeud permet de mapper des valeurs supplémentaires à partir des données d'entrée.

  • Map values5

    Ce noeud effectue un mapping de valeurs supplémentaires sur les données.

  • Get active Projects from Clockify1

    Ce noeud récupère les projets actifs depuis Clockify.

  • Compare Datasets2

    Ce noeud compare deux ensembles de données selon des critères spécifiés.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "HpjjgJm3Ulnl1cJQ",
  "meta": {
    "instanceId": "fb8bc2e315f7f03c97140b30aa454a27bc7883a19000fa1da6e6b571bf56ad6d",
    "templateCredsSetupCompleted": true
  },
  "name": "Notion to Clockify Sync Template",
  "tags": [
    {
      "id": "RKga6I6NviNI12bx",
      "name": "template",
      "createdAt": "2024-09-19T19:09:21.997Z",
      "updatedAt": "2024-09-19T19:09:21.997Z"
    }
  ],
  "nodes": [
    {
      "id": "e0e40960-a45f-44a2-91b8-d0f45c254679",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -400,
        -100
      ],
      "webhookId": "43028c1f-7331-4fbe-bf56-d6f47c92d9be",
      "parameters": {
        "path": "43028c1f-7331-4fbe-bf56-d6f47c92d9be",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "cda9abae-ede3-4ce1-8f2b-b2913eba887a",
      "name": "Globals",
      "type": "n8n-nodes-base.set",
      "position": [
        40,
        -200
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0955695f-888f-46bc-807d-979a0798114f",
              "name": "workspace_id",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a3d588b2-f169-479e-801b-2534bffc47ed",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -400,
        -300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 4
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "73bccaca-2c54-4c40-9181-831c3a713f8a",
      "name": "Get first workspace ID",
      "type": "n8n-nodes-base.clockify",
      "position": [
        -180,
        -200
      ],
      "parameters": {
        "limit": 1,
        "resource": "workspace"
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d6e6fa71-fd9a-40ed-a915-02fae1fa3d78",
      "name": "Compare Datasets",
      "type": "n8n-nodes-base.compareDatasets",
      "position": [
        920,
        -220
      ],
      "parameters": {
        "options": {},
        "resolve": "mix",
        "mergeByFields": {
          "values": [
            {
              "field1": "clockify_client_id",
              "field2": "clockify_client_id"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "00a30e3d-e966-4512-829f-5c7729027c04",
      "name": "Stop and Error",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        2020,
        -460
      ],
      "parameters": {
        "errorMessage": "Could not update client in Notion (deleted in Clockify again)"
      },
      "typeVersion": 1
    },
    {
      "id": "4dfe33a9-670c-400e-8ef9-090ca74b21f7",
      "name": "Structure output",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1140,
        -280
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "029e1297-3133-433f-a779-c3c1a6b5762c",
      "name": "Map values",
      "type": "n8n-nodes-base.set",
      "position": [
        700,
        -300
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8e12edff-162e-49eb-84de-2b060c1050f3",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "df7765a2-9452-4e67-a261-23ef5d2ad1f8",
              "name": "archived",
              "type": "boolean",
              "value": "={{ $json.property_archive }}"
            },
            {
              "id": "eb2692cb-e40f-45c8-a3e3-ca676a3b6df3",
              "name": "clockify_client_id",
              "type": "string",
              "value": "={{ $json.property_clockify_client_id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4c7d62d1-9987-4f47-983a-e5d7c11d9f8f",
      "name": "Map values1",
      "type": "n8n-nodes-base.set",
      "position": [
        700,
        -100
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "043540c8-8784-4445-93c5-b945de834696",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "1cb47384-f444-484d-a1a1-41b4d7fe1d9a",
              "name": "archived",
              "type": "boolean",
              "value": "={{ $json.archived }}"
            },
            {
              "id": "04b62bab-0db7-4f03-8c2e-2c45b6d5d3b8",
              "name": "clockify_client_id",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c608bfe4-07f4-45d8-a37b-3153a2e659a5",
      "name": "No Operation",
      "type": "n8n-nodes-base.noOp",
      "position": [
        260,
        -200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "92b717ba-9620-4fdf-abbc-1b2c5f9c3bf9",
      "name": "Get active Clients from Notion",
      "type": "n8n-nodes-base.notion",
      "position": [
        480,
        -300
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "key": "Archive|checkbox",
              "condition": "equals"
            }
          ]
        },
        "options": {},
        "resource": "databasePage",
        "matchType": "allFilters",
        "operation": "getAll",
        "returnAll": true,
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": "1a878e40-f803-80e4-bc79-e24747562817",
          "cachedResultUrl": "https://www.notion.so/1a878e40f80380e4bc79e24747562817",
          "cachedResultName": "Clients"
        },
        "filterType": "manual"
      },
      "credentials": {
        "notionApi": {
          "id": "ObmaBA0dJss3JJPv",
          "name": "Notion (Test)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "af035e80-835d-4099-85dd-f7a24d6b9e47",
      "name": "Get active Clients from Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        480,
        -100
      ],
      "parameters": {
        "resource": "client",
        "operation": "getAll",
        "returnAll": true,
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}",
        "additionalFields": {
          "archived": false
        }
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "872e869a-0e44-409d-8c3f-e3b24f28fbd2",
      "name": "If unmapped in Notion",
      "type": "n8n-nodes-base.if",
      "position": [
        1140,
        -480
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "26af0d64-ef8d-492e-87ca-6a893e8f85a1",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json.clockify_client_id }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "ca45be8c-7dc7-4c2e-a7a0-8f8f0621e488",
      "name": "Set new values",
      "type": "n8n-nodes-base.set",
      "position": [
        1360,
        -20
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bfc2ff08-56a1-49c1-b1db-475063f88032",
              "name": "archived",
              "type": "boolean",
              "value": true
            },
            {
              "id": "2e8b2166-149b-4eed-8bf2-dd08e9b98210",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "b44b7ccd-316a-487c-841e-7a27a117285e",
      "name": "Update Client in Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        1580,
        -180
      ],
      "parameters": {
        "name": "={{ $json.name }}",
        "clientId": "={{ $('Compare Datasets').item.json.clockify_client_id }}",
        "resource": "client",
        "operation": "update",
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}",
        "updateFields": {
          "archived": "={{ $json.archived }}"
        }
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "6efa63a5-b242-4e25-87a9-9a6f90a923a7",
      "name": "Get archived Client from Notion",
      "type": "n8n-nodes-base.notion",
      "position": [
        1140,
        -20
      ],
      "parameters": {
        "limit": 1,
        "filters": {
          "conditions": [
            {
              "key": "Clockify Client ID|rich_text",
              "condition": "equals",
              "richTextValue": "={{ $json.clockify_client_id }}"
            }
          ]
        },
        "options": {},
        "resource": "databasePage",
        "operation": "getAll",
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": "1a878e40-f803-80e4-bc79-e24747562817",
          "cachedResultUrl": "https://www.notion.so/1a878e40f80380e4bc79e24747562817",
          "cachedResultName": "Clients"
        },
        "filterType": "manual"
      },
      "credentials": {
        "notionApi": {
          "id": "ObmaBA0dJss3JJPv",
          "name": "Notion (Test)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "alwaysOutputData": false,
      "waitBetweenTries": 5000
    },
    {
      "id": "93fd7fa7-07fd-4ba4-a9c4-8043897e654e",
      "name": "Create Client in Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        1360,
        -580
      ],
      "parameters": {
        "name": "={{ $json.name }}",
        "resource": "client",
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}"
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "ef51cbbf-2ea6-429b-a654-1510d28c4df3",
      "name": "Store Clockify ID in Notion",
      "type": "n8n-nodes-base.notion",
      "onError": "continueErrorOutput",
      "position": [
        1580,
        -580
      ],
      "parameters": {
        "pageId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Get active Clients from Notion').item.json.id }}"
        },
        "options": {},
        "resource": "databasePage",
        "operation": "update",
        "propertiesUi": {
          "propertyValues": [
            {
              "key": "Clockify Client ID|rich_text",
              "textContent": "={{ $json.id}}"
            }
          ]
        }
      },
      "credentials": {
        "notionApi": {
          "id": "ObmaBA0dJss3JJPv",
          "name": "Notion (Test)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "aff72e76-e59d-4402-a6e9-b21c07f1d3fc",
      "name": "Remove Client from Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        1800,
        -460
      ],
      "parameters": {
        "clientId": "={{ $('Create Client in Clockify').item.json.id }}",
        "resource": "client",
        "operation": "delete",
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}"
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "6d43bed2-af7c-450d-b4fd-42f84a9081a2",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        2240,
        -280
      ],
      "parameters": {
        "numberInputs": 3
      },
      "typeVersion": 3
    },
    {
      "id": "a1046097-90ff-4447-a0d0-adb16ccc3c31",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2020,
        -680
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3b9e2bb5-cc78-4495-880f-3702b9edfead",
      "name": "Get active Projects from Notion",
      "type": "n8n-nodes-base.notion",
      "position": [
        480,
        620
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "key": "Status|status",
              "condition": "does_not_equal",
              "statusValue": "Done"
            },
            {
              "key": "Status|status",
              "condition": "does_not_equal",
              "statusValue": "Obsolete"
            },
            {
              "key": "Clients|relation",
              "condition": "is_not_empty"
            }
          ]
        },
        "options": {},
        "resource": "databasePage",
        "matchType": "allFilters",
        "operation": "getAll",
        "returnAll": true,
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": "1a878e40-f803-80bf-a72a-d7373be374b2",
          "cachedResultUrl": "https://www.notion.so/1a878e40f80380bfa72ad7373be374b2",
          "cachedResultName": "Buckets"
        },
        "filterType": "manual"
      },
      "credentials": {
        "notionApi": {
          "id": "ObmaBA0dJss3JJPv",
          "name": "Notion (Test)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "17cdb708-b5cf-44d3-872e-fb3d2528dc85",
      "name": "Get active Projects from Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        480,
        820
      ],
      "parameters": {
        "operation": "getAll",
        "returnAll": true,
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}",
        "additionalFields": {
          "archived": false
        }
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "0624cebc-7310-4559-ac35-4447212fb4b0",
      "name": "Update Project in Clockify",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1580,
        740
      ],
      "parameters": {
        "url": "=https://api.clockify.me/api/v1/workspaces/{{ $('Globals').item.json.workspace_id }}/projects/{{ $('Compare Datasets1').item.json.clockify_project_id }}",
        "method": "PUT",
        "options": {},
        "jsonBody": "={\n  \"archived\": {{ $json.archived }},\n  \"clientId\": \"{{ $('Compare Datasets1').item.json.clockify_client_id }}\",\n  \"name\": \"{{ $json.name }}\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "clockifyApi"
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "5edb9a80-5d3a-4c2d-80a7-6d545f02b053",
      "name": "Get completed Project from Notion",
      "type": "n8n-nodes-base.notion",
      "position": [
        1140,
        900
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "key": "Clockify Project ID|rich_text",
              "condition": "equals",
              "richTextValue": "={{ $json.clockify_project_id }}"
            }
          ]
        },
        "options": {},
        "resource": "databasePage",
        "matchType": "allFilters",
        "operation": "getAll",
        "returnAll": true,
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": "1a878e40-f803-80bf-a72a-d7373be374b2",
          "cachedResultUrl": "https://www.notion.so/1a878e40f80380bfa72ad7373be374b2",
          "cachedResultName": "Buckets"
        },
        "filterType": "manual"
      },
      "credentials": {
        "notionApi": {
          "id": "ObmaBA0dJss3JJPv",
          "name": "Notion (Test)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "079795a3-51bc-4077-8fe1-84ed16e88125",
      "name": "Create Project in Clockify",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1360,
        340
      ],
      "parameters": {
        "url": "=https://api.clockify.me/api/v1/workspaces/{{ $('Globals').item.json.workspace_id }}/projects",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"archived\": {{ $json.archived }},\n  \"clientId\": \"{{ $json.clockify_client_id }}\",\n  \"name\": \"{{ $('Get active Projects from Notion').item.json.name }}\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "clockifyApi"
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "53ad9719-ba0b-4858-846e-a338eae1d48e",
      "name": "Remove Project from Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        1800,
        440
      ],
      "parameters": {
        "clientId": "={{ $('Compare Datasets1').item.json.clockify_project_id }}",
        "resource": "client",
        "operation": "delete",
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}"
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "b6224074-8712-4134-bc94-7b5f127f0971",
      "name": "Structure output1",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1140,
        640
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "247b31ae-7bdf-4813-aa60-08ddade1dd70",
      "name": "No Operation1",
      "type": "n8n-nodes-base.noOp",
      "position": [
        260,
        720
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d92f6ced-133c-4881-98f1-f2dfd9b2c5d4",
      "name": "Map values2",
      "type": "n8n-nodes-base.set",
      "position": [
        700,
        620
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "63fe0f05-c1b4-41b8-99e9-74f5ef2d51b6",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "44339109-9634-451b-965c-b2767aa3c628",
              "name": "archived",
              "type": "boolean",
              "value": "={{ ['Done', 'Obsolete'].includes($json.property_status) }}"
            },
            {
              "id": "12f7a5b6-e98f-4fa7-ad67-208c54ab2924",
              "name": "clockify_project_id",
              "type": "string",
              "value": "={{ $json.property_clockify_project_id }}"
            },
            {
              "id": "bddd1a9b-df7c-4d2f-891e-501639c786cc",
              "name": "clockify_client_id",
              "type": "string",
              "value": "={{ $json.property_clockify_client_id[0] || \"\" }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7644f331-e5ae-47d1-ac6c-bf026fde2e9c",
      "name": "Map values3",
      "type": "n8n-nodes-base.set",
      "position": [
        700,
        820
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b2bea7bb-8b70-4268-84dd-a0463f8a30c1",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "bbe039ac-a0ac-4570-b4f6-e6728b1d68ff",
              "name": "archived",
              "type": "boolean",
              "value": "={{ $json.archived }}"
            },
            {
              "id": "2547d142-507f-4f8b-bc65-1556e217c801",
              "name": "clockify_project_id",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "7342b5ea-7da7-4158-bdca-ca40d1cdb042",
              "name": "clockify_client_id",
              "type": "string",
              "value": "={{ $json.clientId }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9e7d0b28-dc9c-476b-9da7-36ec2354c45d",
      "name": "Compare Datasets1",
      "type": "n8n-nodes-base.compareDatasets",
      "position": [
        920,
        700
      ],
      "parameters": {
        "options": {},
        "resolve": "mix",
        "mergeByFields": {
          "values": [
            {
              "field1": "clockify_project_id",
              "field2": "clockify_project_id"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "2b7ae0ca-0bac-4875-b5e4-e809938004fa",
      "name": "If unmapped in Notion1",
      "type": "n8n-nodes-base.if",
      "position": [
        1140,
        440
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "26af0d64-ef8d-492e-87ca-6a893e8f85a1",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json.clockify_project_id }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b118db13-1ee1-41ce-9232-dfd8eec40104",
      "name": "Set new values1",
      "type": "n8n-nodes-base.set",
      "position": [
        1360,
        900
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bfc2ff08-56a1-49c1-b1db-475063f88032",
              "name": "archived",
              "type": "boolean",
              "value": true
            },
            {
              "id": "2e8b2166-149b-4eed-8bf2-dd08e9b98210",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "49a65fbe-ba66-4127-a5af-f5fdf2cf8b37",
      "name": "Store Clockify ID in Notion1",
      "type": "n8n-nodes-base.notion",
      "onError": "continueErrorOutput",
      "position": [
        1580,
        340
      ],
      "parameters": {
        "pageId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Get active Projects from Notion').item.json.id }}"
        },
        "options": {},
        "resource": "databasePage",
        "operation": "update",
        "propertiesUi": {
          "propertyValues": [
            {
              "key": "Clockify Project ID|rich_text",
              "textContent": "={{ $json.id }}"
            }
          ]
        }
      },
      "credentials": {
        "notionApi": {
          "id": "ObmaBA0dJss3JJPv",
          "name": "Notion (Test)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "d995e6e4-588e-4e26-9531-d40b5ba3ab86",
      "name": "Stop and Error1",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        2020,
        440
      ],
      "parameters": {
        "errorMessage": "Could not update bucket in Notion (deleted in Clockify again)"
      },
      "typeVersion": 1
    },
    {
      "id": "434a1c89-a388-4069-adf4-0f2da4e8ca3e",
      "name": "Merge1",
      "type": "n8n-nodes-base.merge",
      "position": [
        2240,
        640
      ],
      "parameters": {
        "numberInputs": 3
      },
      "typeVersion": 3
    },
    {
      "id": "19ecbb3b-8007-4a78-bba2-f31e3afca794",
      "name": "No Operation, do nothing2",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2020,
        240
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "30719262-f037-4d00-a7a4-2a85180c2a8c",
      "name": "Get active Tasks from Notion",
      "type": "n8n-nodes-base.notion",
      "position": [
        700,
        1440
      ],
      "parameters": {
        "options": {},
        "resource": "databasePage",
        "operation": "getAll",
        "returnAll": true,
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": "1a878e40-f803-80e6-8df1-cf50776752da",
          "cachedResultUrl": "https://www.notion.so/1a878e40f80380e68df1cf50776752da",
          "cachedResultName": "Tasks"
        },
        "filterJson": "={\n  \"and\": [\n    {\n      \"property\": \"Status\",\n      \"status\": {\n        \"does_not_equal\": \"Done\"\n      }\n    },\n    {\n      \"property\": \"Status\",\n      \"status\": {\n        \"does_not_equal\": \"Obsolete\"\n      }\n    },\n    {\n      \"property\": \"Clients\",\n      \"rollup\": {\n        \"any\": {\n          \"select\": {\n            \"is_not_empty\": true\n          }\n        }\n      }\n    }\n  ]\n}",
        "filterType": "json"
      },
      "credentials": {
        "notionApi": {
          "id": "ObmaBA0dJss3JJPv",
          "name": "Notion (Test)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "2cfb387a-f6fa-4ace-afdf-687680b1659d",
      "name": "Get active Tasks from Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        700,
        1640
      ],
      "parameters": {
        "filters": {
          "is-active": true
        },
        "resource": "task",
        "operation": "getAll",
        "projectId": "={{ $json.id }}",
        "returnAll": true,
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}"
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "alwaysOutputData": false,
      "waitBetweenTries": 5000
    },
    {
      "id": "938801f2-d5c6-4e95-970d-29fa3ba6ba4b",
      "name": "Update Task in Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        1800,
        1560
      ],
      "parameters": {
        "taskId": "={{ $('Compare Datasets2').item.json.clockify_task_id }}",
        "resource": "task",
        "operation": "update",
        "projectId": "={{ $('Compare Datasets2').item.json.clockify_project_id }}",
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}",
        "updateFields": {
          "name": "={{ $json.name }}",
          "status": "={{ $json.archived ? 'DONE' : 'ACTIVE' }}"
        }
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "f77a17b6-da10-4fb9-9e7f-83866132ec0e",
      "name": "Get completed Task from Notion",
      "type": "n8n-nodes-base.notion",
      "position": [
        1360,
        1720
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "key": "Clockify Task ID|rich_text",
              "condition": "equals",
              "richTextValue": "={{ $json.clockify_task_id }}"
            }
          ]
        },
        "options": {},
        "resource": "databasePage",
        "matchType": "allFilters",
        "operation": "getAll",
        "returnAll": true,
        "databaseId": {
          "__rl": true,
          "mode": "list",
          "value": "1a878e40-f803-80e6-8df1-cf50776752da",
          "cachedResultUrl": "https://www.notion.so/1a878e40f80380e68df1cf50776752da",
          "cachedResultName": "Tasks"
        },
        "filterType": "manual"
      },
      "credentials": {
        "notionApi": {
          "id": "ObmaBA0dJss3JJPv",
          "name": "Notion (Test)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "da34def3-17ac-461e-bec3-5bcdbfdd3609",
      "name": "Create Task in Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        1580,
        1160
      ],
      "parameters": {
        "name": "={{ $json.name }}",
        "resource": "task",
        "projectId": "={{ $json.clockify_project_id }}",
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}",
        "additionalFields": {}
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "c8adb686-8667-466e-a7f9-32e8dd7c1721",
      "name": "Remove Task from Clockify",
      "type": "n8n-nodes-base.clockify",
      "position": [
        2020,
        1260
      ],
      "parameters": {
        "taskId": "={{ $('Compare Datasets2').item.json.clockify_task_id }}",
        "resource": "task",
        "operation": "delete",
        "projectId": "={{ $('Compare Datasets2').item.json.clockify_project_id }}",
        "workspaceId": "={{ $('Globals').item.json.workspace_id }}"
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "399e5ebc-65d6-4af2-94ba-b4016602df4f",
      "name": "Structure output2",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1360,
        1460
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "63f911a9-f75e-46ae-91b1-ebbab6548471",
      "name": "No Operation2",
      "type": "n8n-nodes-base.noOp",
      "position": [
        260,
        1540
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7ca89d07-1e82-4bbf-8fa6-5becd996b0b9",
      "name": "Map values4",
      "type": "n8n-nodes-base.set",
      "position": [
        920,
        1440
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "63fe0f05-c1b4-41b8-99e9-74f5ef2d51b6",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "44339109-9634-451b-965c-b2767aa3c628",
              "name": "archived",
              "type": "boolean",
              "value": "={{ ['Done', 'Obsolete'].includes($json.property_status) }}"
            },
            {
              "id": "bddd1a9b-df7c-4d2f-891e-501639c786cc",
              "name": "clockify_task_id",
              "type": "string",
              "value": "={{ $json.property_clockify_task_id }}"
            },
            {
              "id": "12f7a5b6-e98f-4fa7-ad67-208c54ab2924",
              "name": "clockify_project_id",
              "type": "string",
              "value": "={{ $json.property_clockify_project_id[0] || \"\" }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a9dcf9f2-8cb1-4dc4-9136-25d25ec5033e",
      "name": "Map values5",
      "type": "n8n-nodes-base.set",
      "position": [
        920,
        1640
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b2bea7bb-8b70-4268-84dd-a0463f8a30c1",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "bbe039ac-a0ac-4570-b4f6-e6728b1d68ff",
              "name": "archived",
              "type": "boolean",
              "value": "={{ $json.status !== 'ACTIVE' }}"
            },
            {
              "id": "7342b5ea-7da7-4158-bdca-ca40d1cdb042",
              "name": "clockify_task_id",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "2547d142-507f-4f8b-bc65-1556e217c801",
              "name": "clockify_project_id",
              "type": "string",
              "value": "={{ $json.projectId }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "20b17136-fd8c-4e79-9d39-b31a149e9867",
      "name": "Get active Projects from Clockify1",
      "type": "n8n-nodes-base.clockify",
      "position": [
        480,
        1640
      ],
      "parameters": {
        "operation": "getAll",
        "returnAll": true,
        "workspaceId": "={{ $('Globals').first().json.workspace_id }}",
        "additionalFields": {
          "archived": false
        }
      },
      "credentials": {
        "clockifyApi": {
          "id": "CMJ0LAYOs143GAXw",
          "name": "Clockify (octionictest)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "ec63d256-5abb-49c6-b6c8-67daf653f67e",
      "name": "Compare Datasets2",
      "type": "n8n-nodes-base.compareDatasets",
      "position": [
        1140,
        1520
      ],
      "parameters": {
        "options": {},
        "resolve": "mix",
        "mergeByFields": {
          "values": [
            {
              "field1": "clockify_task_id",
              "field2": "clockify_task_id"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "c759e651-5c28-4b72-8f5f-628396e054a7",
      "name": "If unmapped in Notion2",
      "type": "n8n-nodes-base.if",
      "position": [
        1360,
        1260
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "26af0d64-ef8d-492e-87ca-6a893e8f85a1",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json.clockify_task_id }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "91d86b0f-8823-4eb6-9d62-c423134645ad",
      "name": "Set new values2",
      "type": "n8n-nodes-base.set",
      "position": [
        1580,
        1720
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bfc2ff08-56a1-49c1-b1db-475063f88032",
              "name": "archived",
              "type": "boolean",
              "value": true
            },
            {
              "id": "2e8b2166-149b-4eed-8bf2-dd08e9b98210",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "ec95b97a-4bea-4726-8114-8cc352f11162",
      "name": "Store Clockify ID in Notion2",
      "type": "n8n-nodes-base.notion",
      "onError": "continueErrorOutput",
      "position": [
        1800,
        1160
      ],
      "parameters": {
        "pageId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Get active Tasks from Notion').item.json.id }}"
        },
        "options": {},
        "resource": "databasePage",
        "operation": "update",
        "propertiesUi": {
          "propertyValues": [
            {
              "key": "Clockify Task ID|rich_text",
              "textContent": "={{ $json.id }}"
            }
          ]
        }
      },
      "credentials": {
        "notionApi": {
          "id": "ObmaBA0dJss3JJPv",
          "name": "Notion (Test)"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.2,
      "waitBetweenTries": 5000
    },
    {
      "id": "0baa8a13-7190-42c2-bfa6-e53771e48e65",
      "name": "Stop and Error2",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        2240,
        1260
      ],
      "parameters": {
        "errorMessage": "Could not update task in Notion (deleted in Clockify again)"
      },
      "typeVersion": 1
    },
    {
      "id": "ecebad5d-0462-4501-915c-9e15792a3e99",
      "name": "Limit",
      "type": "n8n-nodes-base.limit",
      "position": [
        2460,
        20
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ff50b701-9bc3-4336-961c-fb2513cc401c",
      "name": "Limit1",
      "type": "n8n-nodes-base.limit",
      "position": [
        2460,
        940
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4189d36a-72d2-47e2-b800-e9355f411717",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        220,
        -700
      ],
      "parameters": {
        "color": 5,
        "width": 2420,
        "height": 880,
        "content": "# Sync Clients"
      },
      "typeVersion": 1
    },
    {
      "id": "c9bafea6-74c6-4978-bd78-58312ab5e812",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        220,
        220
      ],
      "parameters": {
        "color": 5,
        "width": 2420,
        "height": 880,
        "content": "# Sync Projects"
      },
      "typeVersion": 1
    },
    {
      "id": "9537b98c-a70d-4d5a-902a-9809965e5ee2",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        220,
        1140
      ],
      "parameters": {
        "color": 5,
        "width": 2420,
        "height": 780,
        "content": "# Sync Tasks"
      },
      "typeVersion": 1
    },
    {
      "id": "a38ec76e-c8e8-46fe-95af-a04dda8d8c08",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        -360
      ],
      "parameters": {
        "width": 220,
        "height": 320,
        "content": "## Set Globals (optional)\nBy default the fist available workspace ID is set. This can be overridden here."
      },
      "typeVersion": 1
    },
    {
      "id": "a366f477-87b5-4fe8-aed8-761f2941f2d1",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        -460
      ],
      "parameters": {
        "width": 220,
        "height": 520,
        "content": "## Set triggers\nBy default this workflow runs once a day. Additionally a webhook allows for manual calls using a Notion button."
      },
      "typeVersion": 1
    },
    {
      "id": "2566cdd1-4fe2-4d61-b2a0-47ebdaf8c9a1",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1300,
        1620
      ],
      "parameters": {
        "width": 220,
        "height": 280,
        "content": "## Select database\nChoose the tasks database."
      },
      "typeVersion": 1
    },
    {
      "id": "029ec90b-dacd-4d80-b78e-4983a646b3db",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -400
      ],
      "parameters": {
        "width": 220,
        "height": 280,
        "content": "## Select database\nChoose the clients database."
      },
      "typeVersion": 1
    },
    {
      "id": "1851f5ed-5c51-4545-a4f4-ef3fa268998c",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1080,
        -120
      ],
      "parameters": {
        "width": 220,
        "height": 280,
        "content": "## Select database\nChoose the clients database."
      },
      "typeVersion": 1
    },
    {
      "id": "a1562c09-033c-43df-9456-a9fe4775133f",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1080,
        800
      ],
      "parameters": {
        "width": 220,
        "height": 280,
        "content": "## Select database\nChoose the projects database."
      },
      "typeVersion": 1
    },
    {
      "id": "20a722ec-e89d-4801-903d-ab84635772e7",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        520
      ],
      "parameters": {
        "width": 220,
        "height": 280,
        "content": "## Select database\nChoose the projects database."
      },
      "typeVersion": 1
    },
    {
      "id": "67d3f286-9025-43a0-978c-74b9e1aee176",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        1340
      ],
      "parameters": {
        "width": 220,
        "height": 280,
        "content": "## Select database\nChoose the tasks database."
      },
      "typeVersion": 1
    },
    {
      "id": "f90dc5a3-e824-4331-b68f-848dd3c11813",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        160
      ],
      "parameters": {
        "width": 660,
        "height": 1160,
        "content": "# Setup\n## Prerequisites\nThis workflow expects a database structure with at least having the structure mentioned below. Alternatively start with [this Notion Template](https://steadfast-banjo-d1f.notion.site/1ae82b476c84808e9409c08baf382c45)\n### Clients\n- Name (Text)\n- Archive (Checkbox)\n- Clockify Client ID (Text)\n### Projects\n- Name (Text)\n- Status (Status)\n  - required options: \"Done\", \"Obsolete\" and at least one more\n  - recommended options: \"Backlog\", \"In progress\", \"On hold\"\n- Clockify Client ID (Rollup: Clients -> Clockify Client ID)\n- Clockify Project ID (Text)\n### Tasks\n- Name (Text)\n- Status (Status)\n  - required options: \"Done\", \"Obsolete\" and at least one more\n  - recommended options: \"Backlog\", \"In progress\", \"On hold\"\n- Clockify Project ID (Rollup: Projects -> Clockify Project ID)\n- Clockify Task ID (Text)\n- Clients (Rollup: Projects -> Clients)\n## Update this workflow\n- Set the credentials accordingly\n- Check for all other yellow sticky notes\n\n## Add report button in Notion (optional)\nAdd a Formula field named \"Clockify Report\" or similar to the projects database and insert the following value:\n```if(prop(\"Clockify Project ID\").length() > 0, link(style(\"⏱️ View open time logs\", \"grey_background\"), \"https://app.clockify.me/reports/detailed?start=\" + formatDate(dateSubtract(today(), 1, \"years\"), \"YYYY-MM-DD\") + \"T00:00:00.000Z&end=\" + formatDate(today(), \"YYYY-MM-DD\") + \"T23:59:59.999Z&filterValuesData=%7B%22tags%22:%5B%2267c381166730bf39cdcce516%22%5D,%22projects%22:%5B%22\" + prop(\"Clockify Project ID\") + \"%22%5D%7D&filterOptions=%7B%22tags%22:%7B%22status%22:%22ACTIVE%22,%22contains%22:%22DOES_NOT_CONTAIN%22%7D,%22projects%22:%7B%22status%22:%22ACTIVE%22%7D%7D&page=1&pageSize=50\"), \"\")```\n\n## Add sync button to Notion (optional)\n_This requires a paid Notion plan_\n- Grab the production URL of the Webhook Node\n- Create a button in Notion next to a view of the Clients Database\n- Add a webhook call action and paste copied URL\n- Name the button \"Sync to Clockify\" or similar"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c3e4f66b-5501-434d-a9aa-bc6c68780891",
  "connections": {
    "Limit": {
      "main": [
        [
          {
            "node": "No Operation1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit1": {
      "main": [
        [
          {
            "node": "No Operation2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "Limit1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Globals": {
      "main": [
        [
          {
            "node": "No Operation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Get first workspace ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map values": {
      "main": [
        [
          {
            "node": "Compare Datasets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map values1": {
      "main": [
        [
          {
            "node": "Compare Datasets",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Map values2": {
      "main": [
        [
          {
            "node": "Compare Datasets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map values3": {
      "main": [
        [
          {
            "node": "Compare Datasets1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Map values4": {
      "main": [
        [
          {
            "node": "Compare Datasets2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map values5": {
      "main": [
        [
          {
            "node": "Compare Datasets2",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "No Operation": {
      "main": [
        [
          {
            "node": "Get active Clients from Notion",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get active Clients from Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Operation1": {
      "main": [
        [
          {
            "node": "Get active Projects from Notion",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get active Projects from Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Operation2": {
      "main": [
        [
          {
            "node": "Get active Projects from Clockify1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get active Tasks from Notion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set new values": {
      "main": [
        [
          {
            "node": "Update Client in Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set new values1": {
      "main": [
        [
          {
            "node": "Update Project in Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set new values2": {
      "main": [
        [
          {
            "node": "Update Task in Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compare Datasets": {
      "main": [
        [
          {
            "node": "If unmapped in Notion",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Structure output",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Client in Clockify",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get archived Client from Notion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get first workspace ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structure output": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Compare Datasets1": {
      "main": [
        [
          {
            "node": "If unmapped in Notion1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Structure output1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Project in Clockify",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get completed Project from Notion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compare Datasets2": {
      "main": [
        [
          {
            "node": "If unmapped in Notion2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Structure output2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Task in Clockify",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get completed Task from Notion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structure output1": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "If unmapped in Notion": {
      "main": [
        [
          {
            "node": "Create Client in Clockify",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Client in Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get first workspace ID": {
      "main": [
        [
          {
            "node": "Globals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If unmapped in Notion1": {
      "main": [
        [
          {
            "node": "Create Project in Clockify",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Project in Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If unmapped in Notion2": {
      "main": [
        [
          {
            "node": "Create Task in Clockify",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Task in Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Task in Clockify": {
      "main": [
        [
          {
            "node": "Store Clockify ID in Notion2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Operation, do nothing": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Client in Clockify": {
      "main": [
        [
          {
            "node": "Store Clockify ID in Notion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Operation, do nothing2": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Remove Task from Clockify": {
      "main": [
        [
          {
            "node": "Stop and Error2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Client in Clockify": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Create Project in Clockify": {
      "main": [
        [
          {
            "node": "Store Clockify ID in Notion1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Project in Clockify": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Remove Client from Clockify": {
      "main": [
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Clockify ID in Notion": {
      "main": [
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Remove Client from Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get active Tasks from Notion": {
      "main": [
        [
          {
            "node": "Map values4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Remove Project from Clockify": {
      "main": [
        [
          {
            "node": "Stop and Error1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Clockify ID in Notion1": {
      "main": [
        [
          {
            "node": "No Operation, do nothing2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Remove Project from Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Clockify ID in Notion2": {
      "main": [
        [],
        [
          {
            "node": "Remove Task from Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get active Clients from Notion": {
      "main": [
        [
          {
            "node": "Map values",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get active Tasks from Clockify": {
      "main": [
        [
          {
            "node": "Map values5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get completed Task from Notion": {
      "main": [
        [
          {
            "node": "Set new values2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get active Projects from Notion": {
      "main": [
        [
          {
            "node": "Map values2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get archived Client from Notion": {
      "main": [
        [
          {
            "node": "Set new values",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get active Clients from Clockify": {
      "main": [
        [
          {
            "node": "Map values1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get active Projects from Clockify": {
      "main": [
        [
          {
            "node": "Map values3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get completed Project from Notion": {
      "main": [
        [
          {
            "node": "Set new values1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get active Projects from Clockify1": {
      "main": [
        [
          {
            "node": "Get active Tasks from Clockify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises utilisant Notion et Clockify pour la gestion de projets et de clients. Il est idéal pour les équipes de gestion de projet, les PME et les startups qui cherchent à automatiser leurs processus et à réduire les erreurs manuelles. Un niveau technique de base est recommandé pour la mise en place.

Problème résolu

Ce workflow résout le problème de la synchronisation manuelle des données entre Notion et Clockify, ce qui peut entraîner des erreurs et des incohérences. En automatisant ce processus, les utilisateurs éliminent les frustrations liées à la mise à jour des informations dans plusieurs systèmes. Après la mise en place de cette automatisation, les utilisateurs bénéficient d'une gestion des clients et des projets plus fluide et précise, ce qui leur permet de gagner du temps et d'améliorer leur productivité.

Étapes du workflow

Étape 1 : Le workflow est déclenché par un Webhook ou un déclencheur programmé. Étape 2 : Il récupère l'identifiant du premier espace de travail dans Clockify. Étape 3 : Les clients actifs sont extraits de Notion et de Clockify pour comparaison. Étape 4 : Si un client n'est pas mappé dans Notion, il est créé dans Clockify. Étape 5 : Les projets actifs sont également récupérés et synchronisés de manière similaire. Étape 6 : Les informations sont mises à jour dans les deux systèmes pour garantir la cohérence.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier l'URL du Webhook pour l'adapter à votre environnement. Il est également possible de changer les identifiants de base de données Notion et Clockify pour correspondre à vos configurations. Si vous souhaitez ajouter d'autres outils, vous pouvez intégrer des noeuds supplémentaires dans le flux. Assurez-vous de tester le flux après chaque modification pour garantir son bon fonctionnement. Pensez à sécuriser les accès API et à monitorer les performances du workflow pour une utilisation optimale.