This workflow follows the Execute Workflow Trigger → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "WorkFlow 01.02",
"nodes": [
{
"parameters": {
"resource": "databasePage",
"databaseId": {
"__rl": true,
"value": "{{NOTION_DB_ID_MASTER_TACHES}}",
"mode": "list",
"cachedResultName": "Master T\u00e2ches",
"cachedResultUrl": "https://www.notion.so/{{NOTION_DB_ID_MASTER_TACHES}}"
},
"title": "=",
"propertiesUi": {
"propertyValues": [
{
"key": "Nom|title",
"title": "=V\u00e9rification - {{ $json.name }}"
},
{
"key": "\u00c9tat|status",
"statusValue": "Pas commenc\u00e9"
},
{
"key": "Dead line|date",
"includeTime": false,
"date": "={{ $json.property_date_due.start }}"
},
{
"key": "Priorit\u00e9|select",
"selectValue": "={{ $('WorkFlow 01').item.json.property_statut_calibration }}"
},
{
"key": "*R\u00e9f\u00e9rence n8n*|rich_text",
"textContent": "=Calibration\nID Database: {{NOTION_DB_ID_MASTER_EQUIPEMENTS}}\nID Page: {{ $json.id }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.notion",
"typeVersion": 2.2,
"position": [
-864,
48
],
"id": "081bbcc4-4f52-460f-991a-bd49a6976a81",
"name": "Tache V\u00e9rificationMoyenne",
"retryOnFail": false,
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput"
},
{
"parameters": {
"resource": "databasePage",
"operation": "get",
"pageId": {
"__rl": true,
"value": "={{ $('WorkFlow 01').item.json[\"IdProc\u00e9d\u00e9\"] }}",
"mode": "id"
}
},
"type": "n8n-nodes-base.notion",
"typeVersion": 2.2,
"position": [
-432,
48
],
"id": "4b6fa9c0-53f0-42e4-9060-7a986fc90ed9",
"name": "Obtenir Op\u00e9rateur3",
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "97f6f57b-fecf-4bc4-b488-05a1a81b5207",
"name": "operateursIDs",
"value": "={{ $('Obtenir Op\u00e9rateur3').item.json.property_op_rateurs }}",
"type": "array"
},
{
"id": "825e0a72-7b28-4044-8fa1-709c017b4748",
"name": "=Responsable",
"value": "={{ $('WorkFlow 01').item.json.Responsable }}",
"type": "string"
},
{
"id": "2c65a135-0e3b-4dbd-acac-370c64fec0ab",
"name": "id",
"value": "={{ $('Tache V\u00e9rificationMoyenne').item.json.id }}",
"type": "string"
},
{
"id": "9ee6604b-ed5e-475e-97a4-c8015995d7fb",
"name": "D\u00e9partement",
"value": "={{ $('WorkFlow 01').item.json[\"D\u00e9partement\"] }}",
"type": "string"
},
{
"id": "1b179dba-9dca-4ef2-9568-fa52d19be03d",
"name": "Approbateur",
"value": "={{ $('Get Approbateur Calibration').item.json.properties.Utilisateurs.rollup.array[0].people[0].id }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-208,
32
],
"id": "066219ec-a909-4f4c-8daa-23ff003f020c",
"name": "Obtenir les Operateurs3",
"notesInFlow": false,
"onError": "continueRegularOutput"
},
{
"parameters": {
"method": "PATCH",
"url": "=https://api.notion.com/v1/blocks/{{ $json.id }}/children",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "notionApi",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{(() => {\n const equipementName = $('WorkFlow 01').item.json.name; // Nom page DB B\n const equipementUrl = $('WorkFlow 01').item.json.url; // URL format Notion avec slug\n\n return {\n children: [\n {\n object: 'block',\n type: 'paragraph',\n paragraph: {\n rich_text: [\n { type: 'text', text: { content: '\ud83d\udd17 \u00c9quipement li\u00e9 : ' } },\n { type: 'text', text: { content: equipementName, link: { url: equipementUrl } } }\n ]\n }\n },\n ]\n };\n})()}}",
"options": {
"batching": {
"batch": {
"batchSize": 1
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1168,
32
],
"id": "63cc8695-45ba-4c37-8d35-475606d13c05",
"name": "V\u00e9rification Lien3",
"retryOnFail": true,
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput",
"notes": "{{NOTION_ID_GENERIC_02}}\nFUUU\nehl%7B\npXDv"
},
{
"parameters": {
"functionCode": "return items.map(i => {\n const log = i.json._log || {};\n\n // LIGNE 5 CORRIG\u00c9E\n const nodeName = $prevNode.name || 'UnknownNode';\n\n const failed = !!i.json._hadError || !!i.json.error;\n\n // Message adaptatif\n const msg = i.json.error?.message || \n i.json._errMsg || \n (failed ? 'Erreur d\u00e9tect\u00e9e' : 'Succ\u00e8s');\n\n (log.actions ||= []).push({ node: nodeName, ok: !failed, msg });\n\n if (failed) {\n log.ko = (log.ko || 0) + 1;\n log.failedNodes = log.failedNodes || {};\n log.failedNodes[nodeName] = true;\n } else {\n log.ok = (log.ok || 0) + 1;\n }\n\n i.json._log = log;\n return i;\n});"
},
"id": "95e0219f-2993-4442-b63c-e61ef8e91abb",
"name": "Update Log30",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
2000,
16
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "_lastNode",
"value": "={{$prevNode.name}}"
},
{
"name": "_hadError",
"value": "={{ $json.error !== undefined }}"
},
{
"name": "_errMsg",
"value": "={{ $json.error?.message || ''}}"
},
{
"name": "SubName",
"value": "={{ $workflow.name }}"
}
]
},
"options": {}
},
"id": "cbd9454a-8dea-4c88-89e1-acd43b7aa706",
"name": "Log Snapshot10",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [
-1392,
48
]
},
{
"parameters": {
"functionCode": "return items.map(i => {\n const log = i.json._log || {};\n\n // LIGNE 5 CORRIG\u00c9E\n const nodeName = $prevNode.name || 'UnknownNode';\n\n const failed = !!i.json._hadError || !!i.json.error;\n\n // Message adaptatif\n const msg = i.json.error?.message || \n i.json._errMsg || \n (failed ? 'Erreur d\u00e9tect\u00e9e' : 'Succ\u00e8s');\n\n (log.actions ||= []).push({ node: nodeName, ok: !failed, msg });\n\n if (failed) {\n log.ko = (log.ko || 0) + 1;\n log.failedNodes = log.failedNodes || {};\n log.failedNodes[nodeName] = true;\n } else {\n log.ok = (log.ok || 0) + 1;\n }\n\n i.json._log = log;\n return i;\n});"
},
"id": "259ea826-f922-41a8-8609-ce7388e5d8f6",
"name": "Update Log10",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
-1152,
48
]
},
{
"parameters": {
"functionCode": "return items.map(i => {\n const log = i.json._log || {};\n\n // LIGNE 5 CORRIG\u00c9E\n const nodeName = $prevNode.name || 'UnknownNode';\n\n const failed = !!i.json._hadError || !!i.json.error;\n\n // Message adaptatif\n const msg = i.json.error?.message || \n i.json._errMsg || \n (failed ? 'Erreur d\u00e9tect\u00e9e' : 'Succ\u00e8s');\n\n (log.actions ||= []).push({ node: nodeName, ok: !failed, msg });\n\n if (failed) {\n log.ko = (log.ko || 0) + 1;\n log.failedNodes = log.failedNodes || {};\n log.failedNodes[nodeName] = true;\n } else {\n log.ok = (log.ok || 0) + 1;\n }\n\n i.json._log = log;\n return i;\n});"
},
"id": "3c97c4da-eabc-4ad3-a600-a1189faed45d",
"name": "Update Log",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
-880,
416
]
},
{
"parameters": {
"resource": "databasePage",
"operation": "update",
"pageId": {
"__rl": true,
"value": "={{ $('WorkFlow 01').item.json.id }}",
"mode": "id"
},
"simple": false,
"propertiesUi": {
"propertyValues": [
{
"key": "\u00c9talonnage Request|checkbox",
"checkboxValue": true
}
]
},
"options": {}
},
"type": "n8n-nodes-base.notion",
"typeVersion": 2.2,
"position": [
1392,
32
],
"id": "27eaf0b1-6b5b-4745-88c0-b87ad5cdc5aa",
"name": "Check Calibration",
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput"
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
1600,
400
],
"id": "9a968eff-73c4-45d1-8854-f7d490af2fc8",
"name": "Merge1",
"onError": "continueRegularOutput"
},
{
"parameters": {
"functionCode": "return items.map(i => {\n const log = i.json._log || {};\n\n // LIGNE 5 CORRIG\u00c9E\n const nodeName = $prevNode.name || 'UnknownNode';\n\n const failed = !!i.json._hadError || !!i.json.error;\n\n // Message adaptatif\n const msg = i.json.error?.message || \n i.json._errMsg || \n (failed ? 'Erreur d\u00e9tect\u00e9e' : 'Succ\u00e8s');\n\n (log.actions ||= []).push({ node: nodeName, ok: !failed, msg });\n\n if (failed) {\n log.ko = (log.ko || 0) + 1;\n log.failedNodes = log.failedNodes || {};\n log.failedNodes[nodeName] = true;\n } else {\n log.ok = (log.ok || 0) + 1;\n }\n\n i.json._log = log;\n return i;\n});"
},
"id": "09bcdf14-cd8c-4980-b4d2-d9140b0caed8",
"name": "Update Log31",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
2000,
400
]
},
{
"parameters": {
"numberInputs": 3
},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
2336,
0
],
"id": "b9f159e2-2c76-4d6e-a96e-69ff592e9d5e",
"name": "Merge2",
"onError": "continueRegularOutput"
},
{
"parameters": {
"inputSource": "passthrough"
},
"type": "n8n-nodes-base.executeWorkflowTrigger",
"typeVersion": 1.1,
"position": [
-1600,
48
],
"id": "77c096f9-e48c-4de8-9207-f485055a3c6b",
"name": "WorkFlow 01"
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $('WorkFlow 01').item.json.property_statut }}",
"rightValue": "=\u26a0\ufe0fCalibration requise",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "4051db1b-d7ac-4484-8d27-a9624f268c5a"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Calibration1"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "b6b293ed-7bd2-4731-89e9-665300122aa9",
"leftValue": "={{ $('WorkFlow 01').item.json.property_statut }}",
"rightValue": "\ud83d\uded1Non calibr\u00e9",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Calibration2"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "04d07d88-8944-42ed-a0c8-4e5a79cb4a9e",
"leftValue": "={{ $('WorkFlow 01').item.json.property_statut }}",
"rightValue": "\u26a0\ufe0fV\u00e9rification requise",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "V\u00e9rification1"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "c59eb2e7-57ab-4d01-bbaf-405faf36a7be",
"leftValue": "={{ $('WorkFlow 01').item.json.property_statut }}",
"rightValue": "\ud83d\udd34Non v\u00e9rifi\u00e9",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "V\u00e9rification2"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
0,
32
],
"id": "a644956f-ee82-48b6-8fb0-9353c7cd2651",
"name": "Switch",
"onError": "continueRegularOutput"
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
224,
96
],
"id": "38b15376-d73a-409e-8f69-e14c884003e1",
"name": "Merge3",
"onError": "continueRegularOutput"
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
224,
-96
],
"id": "cd4fa224-de89-4366-b8ad-041522e235a6",
"name": "Merge4",
"onError": "continueRegularOutput"
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
912,
-32
],
"id": "95919783-acf9-4a2b-b6d8-dc0b9f44bf8e",
"name": "Merge5"
},
{
"parameters": {
"functionCode": "return items.map(i => {\n const log = i.json._log || {};\n\n // LIGNE 5 CORRIG\u00c9E\n const nodeName = $prevNode.name || 'UnknownNode';\n\n const failed = !!i.json._hadError || !!i.json.error;\n\n // Message adaptatif\n const msg = i.json.error?.message || \n i.json._errMsg || \n (failed ? 'Erreur d\u00e9tect\u00e9e' : 'Succ\u00e8s');\n\n (log.actions ||= []).push({ node: nodeName, ok: !failed, msg });\n\n if (failed) {\n log.ko = (log.ko || 0) + 1;\n log.failedNodes = log.failedNodes || {};\n log.failedNodes[nodeName] = true;\n } else {\n log.ok = (log.ok || 0) + 1;\n }\n\n i.json._log = log;\n return i;\n});"
},
"id": "d4ed0718-c507-421f-9750-c8ce8e9a7121",
"name": "Update Log2",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
912,
-384
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "_lastNode",
"value": "={{ ($workflow.name || 'Unknown Workflow') + \" - \" + ($json._log?.actions?.find(action => !action.ok)?.node || Object.keys($json._log?.failedNodes || {})[0] || 'UnknownNode') }}"
},
{
"name": "_hadError",
"value": "={{ $json.error !== undefined }}"
},
{
"name": "_errMsg",
"value": "={{ $json.error?.message || ''}}"
}
]
},
"options": {}
},
"id": "5cd5e646-c992-4dbb-86f3-75a222ddb3ce",
"name": "Log Snapshot",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [
2560,
16
],
"onError": "continueRegularOutput"
},
{
"parameters": {
"resource": "databasePage",
"operation": "update",
"pageId": {
"__rl": true,
"value": "={{ $json.id }}",
"mode": "id"
},
"propertiesUi": {
"propertyValues": [
{
"key": "Nom|title",
"title": "=Calibration - {{ $('WorkFlow 01').item.json.name }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.notion",
"typeVersion": 2.2,
"position": [
448,
-96
],
"id": "cf7a61e3-697e-478a-ae1e-1a492ca9f521",
"name": "Fix Name calibration",
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput"
},
{
"parameters": {
"method": "PATCH",
"url": "=https://api.notion.com/v1/pages/{{ $('Tache V\u00e9rificationMoyenne').item.json.id }}",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "notionApi",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{\n JSON.stringify((() => {\n // Relation fixe\n const fixedRelation = [{ id: '{{NOTION_ID_GENERIC_02}}' }];\n const Departement = $('Obtenir les Operateurs3').item.json.D\u00e9partement;\n\n // R\u00e9cup\u00e9ration et suppression des doublons\n const operateursIDs = Array.from(\n new Set($('Obtenir les Operateurs3').item.json.operateursIDs || [])\n ).map(id => ({ id }));\n\n // ID Responsable (one-way)\n const responsableId = $('Obtenir les Operateurs3').item.json.Responsable;\n\n // Payload PATCH\n return {\n properties: {\n FUUU: { relation: fixedRelation },\n 'ehl{': { relation: operateursIDs },\n pXDv: { relation: [{ id: responsableId }] },\n ':Rn_' : { relation: [{ id: Departement }] },\n }\n };\n })())\n}}",
"options": {
"batching": {
"batch": {
"batchSize": 1
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
688,
-96
],
"id": "c63e6749-a583-4580-9e06-e9ff08145d65",
"name": "PATCH Cal Operateur",
"retryOnFail": true,
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput",
"notes": "{{NOTION_ID_GENERIC_02}}\nFUUU\nehl%7B\npXDv\n$('Obtenir les Operateurs3').item.json.Responsable"
},
{
"parameters": {
"method": "PATCH",
"url": "=https://api.notion.com/v1/pages/{{ $('Tache V\u00e9rificationMoyenne').item.json.id }}",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "notionApi",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ \n JSON.stringify((() => {\n // Relation fixe\n const fixedRelation = [{ id: '{{NOTION_ID_GENERIC_05}}' }];\n const Departement = $json[\"D\u00e9partement\"];\n\n // R\u00e9cup\u00e9ration et suppression des doublons\n const operateursIDs = Array.from(\n new Set($json.operateursIDs || [])\n ).map(id => ({ id }));\n\n // ID Responsable (one-way)\n const responsableId = $json.Responsable;\n\n // Payload PATCH\n return {\n properties: {\n FUUU: { relation: fixedRelation },\n 'ehl{': { relation: operateursIDs },\n pXDv: { relation: [{ id: responsableId }] },\n ':Rn_' : { relation: [{ id: Departement }] },\n }\n };\n })())\n}}",
"options": {
"batching": {
"batch": {
"batchSize": 1
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
688,
48
],
"id": "361ff38e-521c-4830-ae71-bd6c6cb5a568",
"name": "PATCH Verif Operator",
"retryOnFail": true,
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput",
"notes": "{{NOTION_ID_GENERIC_02}}\nFUUU\nehl%7B\npXDv"
},
{
"parameters": {
"resource": "databasePage",
"operation": "get",
"pageId": {
"__rl": true,
"value": "={{ $('Tache V\u00e9rificationMoyenne').item.json.id }}",
"mode": "id"
},
"simple": false
},
"type": "n8n-nodes-base.notion",
"typeVersion": 2.2,
"position": [
1600,
32
],
"id": "945977c4-7329-4642-a775-6635116f8302",
"name": "Get a database page",
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput"
},
{
"parameters": {
"resource": "databasePage",
"operation": "update",
"pageId": {
"__rl": true,
"value": "={{ $json.id }}",
"mode": "id"
},
"propertiesUi": {
"propertyValues": [
{
"key": "*R\u00e9f\u00e9rence n8n*|rich_text",
"textContent": "={{ $json.properties[\"*R\u00e9f\u00e9rence n8n*\"].rich_text[0].text.content }}\nTicket : {{ $json.properties.Ticket.unique_id.number }}"
},
{
"key": "Approbateur|people",
"peopleValue": "={{ $('Obtenir les Operateurs3').item.json.Approbateur }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.notion",
"typeVersion": 2.2,
"position": [
1808,
32
],
"id": "2e293267-b358-482f-99e7-fc77cc5bbfce",
"name": "Update Ticket Calibration",
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput"
},
{
"parameters": {
"resource": "databasePage",
"operation": "get",
"pageId": {
"__rl": true,
"value": "={{ $('WorkFlow 01').item.json.Responsable }}",
"mode": "id"
},
"simple": false
},
"type": "n8n-nodes-base.notion",
"typeVersion": 2.2,
"position": [
-624,
48
],
"id": "8046937b-26c8-4993-a4ee-e267cfbba885",
"name": "Get Approbateur Calibration",
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"onError": "continueErrorOutput"
},
{
"parameters": {
"functionCode": "return items.map(i => {\n const log = i.json._log || {};\n\n // LIGNE 5 CORRIG\u00c9E\n const nodeName = $prevNode.name || 'UnknownNode';\n\n const failed = !!i.json._hadError || !!i.json.error;\n\n // Message adaptatif\n const msg = i.json.error?.message || \n i.json._errMsg || \n (failed ? 'Erreur d\u00e9tect\u00e9e' : 'Succ\u00e8s');\n\n (log.actions ||= []).push({ node: nodeName, ok: !failed, msg });\n\n if (failed) {\n log.ko = (log.ko || 0) + 1;\n log.failedNodes = log.failedNodes || {};\n log.failedNodes[nodeName] = true;\n } else {\n log.ok = (log.ok || 0) + 1;\n }\n\n i.json._log = log;\n return i;\n});"
},
"id": "f7aac02e-0d77-4e9b-8e1f-7f6fc58e4b2c",
"name": "Update Log32",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
1168,
304
]
},
{
"parameters": {
"jsCode": "const allLogs = $input.all();\n\nconst consolidated = {\n workflow: allLogs[0].json._log?.workflow,\n startedAt: allLogs[0].json._log?.startedAt,\n finishedAt: new Date().toISOString(),\n ok: allLogs.reduce((sum, item) => sum + (item.json._log?.ok || 0), 0),\n ko: allLogs.reduce((sum, item) => sum + (item.json._log?.ko || 0), 0),\n \n // R\u00e9cup\u00e9ration des nodes en \u00e9chec (inchang\u00e9)\n failedNodes: allLogs.reduce((acc, item) => {\n if (item.json._hadError || item.json.error) {\n const nodeName = item.json._lastNode || item.json.error?.name || 'UnknownNode';\n acc[nodeName] = {\n error: true,\n message: item.json.error?.message || item.json._errMsg || 'Erreur inconnue'\n };\n }\n return acc;\n }, {}),\n \n // CORRECTION : R\u00e9cup\u00e9rer les vraies actions depuis _log.actions\n actions: allLogs.reduce((acc, item) => {\n // R\u00e9cup\u00e9rer les actions existantes dans _log.actions\n const existingActions = item.json._log?.actions || [];\n \n // Ajouter les actions existantes\n acc.push(...existingActions);\n \n // Si il y a une erreur globale sur cet item, ajouter une action d'erreur\n if (item.json._hadError || item.json.error) {\n const nodeName = item.json._lastNode || item.json.error?.name || 'UnknownNode';\n acc.push({\n node: nodeName,\n ok: false,\n msg: item.json.error?.message || item.json._errMsg || 'Erreur'\n });\n }\n \n return acc;\n }, [])\n};\n\nreturn [{ json: { _log: consolidated } }];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
2768,
16
],
"id": "1d7cc4a4-2082-4038-95da-b34f5f39dc83",
"name": "Returns item"
}
],
"connections": {
"Tache V\u00e9rificationMoyenne": {
"main": [
[
{
"node": "Get Approbateur Calibration",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Log",
"type": "main",
"index": 0
}
]
]
},
"Obtenir Op\u00e9rateur3": {
"main": [
[
{
"node": "Obtenir les Operateurs3",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Log",
"type": "main",
"index": 0
}
]
]
},
"Obtenir les Operateurs3": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"V\u00e9rification Lien3": {
"main": [
[
{
"node": "Check Calibration",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Log32",
"type": "main",
"index": 0
}
]
]
},
"Log Snapshot10": {
"main": [
[
{
"node": "Update Log10",
"type": "main",
"index": 0
}
]
]
},
"Update Log10": {
"main": [
[
{
"node": "Tache V\u00e9rificationMoyenne",
"type": "main",
"index": 0
}
]
]
},
"Update Log": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"Check Calibration": {
"main": [
[
{
"node": "Get a database page",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Log32",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "Update Log31",
"type": "main",
"index": 0
}
]
]
},
"Update Log30": {
"main": [
[
{
"node": "Merge2",
"type": "main",
"index": 1
}
]
]
},
"Update Log31": {
"main": [
[
{
"node": "Merge2",
"type": "main",
"index": 2
}
]
]
},
"Merge2": {
"main": [
[
{
"node": "Log Snapshot",
"type": "main",
"index": 0
}
]
]
},
"WorkFlow 01": {
"main": [
[
{
"node": "Log Snapshot10",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Merge4",
"type": "main",
"index": 0
}
],
[
{
"node": "Merge4",
"type": "main",
"index": 1
}
],
[
{
"node": "Merge3",
"type": "main",
"index": 0
}
],
[
{
"node": "Merge3",
"type": "main",
"index": 1
}
]
]
},
"Merge3": {
"main": [
[
{
"node": "PATCH Verif Operator",
"type": "main",
"index": 0
}
]
]
},
"Merge4": {
"main": [
[
{
"node": "Fix Name calibration",
"type": "main",
"index": 0
}
]
]
},
"Merge5": {
"main": [
[
{
"node": "V\u00e9rification Lien3",
"type": "main",
"index": 0
}
]
]
},
"Update Log2": {
"main": [
[
{
"node": "Merge2",
"type": "main",
"index": 0
}
]
]
},
"Log Snapshot": {
"main": [
[
{
"node": "Returns item",
"type": "main",
"index": 0
}
]
]
},
"Fix Name calibration": {
"main": [
[
{
"node": "PATCH Cal Operateur",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Log2",
"type": "main",
"index": 0
}
]
]
},
"PATCH Cal Operateur": {
"main": [
[
{
"node": "Merge5",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Log2",
"type": "main",
"index": 0
}
]
]
},
"PATCH Verif Operator": {
"main": [
[
{
"node": "Merge5",
"type": "main",
"index": 1
}
],
[
{
"node": "Update Log",
"type": "main",
"index": 0
}
]
]
},
"Get a database page": {
"main": [
[
{
"node": "Update Ticket Calibration",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Log32",
"type": "main",
"index": 0
}
]
]
},
"Update Ticket Calibration": {
"main": [
[
{
"node": "Update Log30",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Log32",
"type": "main",
"index": 0
}
]
]
},
"Get Approbateur Calibration": {
"main": [
[
{
"node": "Obtenir Op\u00e9rateur3",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Log",
"type": "main",
"index": 0
}
]
]
},
"Update Log32": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "72a97b03-89d5-4268-82ca-c52484a08b74",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "lSgXwM0TOWE0Hss3",
"tags": [
{
"createdAt": "2025-08-10T17:31:56.398Z",
"updatedAt": "2025-08-10T17:31:56.398Z",
"id": "76NLpNrjmE5vsXoO",
"name": "Equipement"
},
{
"createdAt": "2025-09-05T21:36:21.050Z",
"updatedAt": "2025-09-05T21:36:21.050Z",
"id": "CbLg8ioZUmnRLO2Z",
"name": "Create Calibration"
}
]
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
notionApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
WorkFlow 01.02. Uses notion, httpRequest, executeWorkflowTrigger. Event-driven trigger; 27 nodes.
Source: https://github.com/WealthFinPilot/notion-qms-platform/blob/main/exports/workflows/wf-01-02-creation-tache-calibration-raci.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Workflow 01.01. Uses notion, executeWorkflowTrigger, httpRequest. Event-driven trigger; 60 nodes.
Automate sales call analysis and store structured insights in Notion with AI-powered intelligence.
WorkFlow 05.01. Uses executeWorkflowTrigger, notion, httpRequest. Event-driven trigger; 26 nodes.
WorkFlow 05.02. Uses httpRequest, notion, executeWorkflowTrigger. Event-driven trigger; 26 nodes.
WorkFlow 05.03. Uses notion, httpRequest, executeWorkflowTrigger. Event-driven trigger; 26 nodes.