Exécution automatisée des tests et mise à jour du statut
Ceci est uncontenant 27 nœuds.Utilise principalement des nœuds comme If, Set, Code, ClickUp, GoogleDrive. Exécuteur automatisé de tests de workflow, intégrant Google Drive, Sheets et ClickUp pour l'enregistrement des résultats
- •Informations d'identification Google Drive API
- •Informations d'identification Google Sheets API
Nœuds utilisés (27)
Catégorie
{
"id": "ZI6iraWt5DF3ohnS",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Automated Test Run and Status Update",
"tags": [],
"nodes": [
{
"id": "ebbca67b-a5e8-47a6-b0f0-0e01a2cf0c90",
"name": "Lors du clic sur 'Exécuter le workflow'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-576,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f90f0568-e7ab-451c-bfe9-7151835fec62",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-384,
208
],
"parameters": {
"width": 304,
"height": 368,
"content": "## 🔄 Execute Target Workflow Under Test\n**Action:** \n- Calls and executes the \"Archive Payment Receipts\" workflow as a sub-process. \n**Description:** \n- Runs the specified workflow and waits for its completion. \n- Configured to continue execution even if the sub-workflow encounters errors. \n- Captures the output (including any error objects) for validation in subsequent steps. \n- Critical for automated regression testing and CI/CD pipelines."
},
"typeVersion": 1
},
{
"id": "f5de02c6-f686-402f-90df-80bc60151c1c",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
-480
],
"parameters": {
"height": 448,
"content": "## ✅ Test Result Evaluation (Pass/Fail Check)\n**Action:** \n- Determines whether the sub-workflow executed successfully or failed. \n**Description:** \n- Checks if an \"error\" field exists in the returned JSON data. \n- **True Path (No Error):** Routes to success logging branch. \n- **False Path (Error Exists):** Routes to failure logging and error reporting branch. \n- Acts as the decision gateway for all downstream reporting actions."
},
"typeVersion": 1
},
{
"id": "3af7b28f-f3a6-45af-a3c0-49d0d867290d",
"name": "Évaluation du résultat du test",
"type": "n8n-nodes-base.if",
"position": [
-16,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "c9f7e963-a035-4c64-82ef-f870f1d6587c",
"operator": {
"type": "string",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{$json[\"error\"]}}",
"rightValue": ""
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "c9ded697-7e80-4c9d-ae63-b34dd83a4b4b",
"name": "Formater le résultat de test réussi",
"type": "n8n-nodes-base.set",
"position": [
384,
-208
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e70c3468-0767-470a-b780-7e17188788c2",
"name": "status",
"type": "string",
"value": "✅ Passed"
},
{
"id": "6b01dbe6-137a-46d0-b909-0c863d25e3a1",
"name": "tested_workflow",
"type": "string",
"value": "Retention Tracking Post-Hire"
},
{
"id": "5ca7a3ff-f30a-4ab4-9a54-b33188458d7a",
"name": "",
"type": "string",
"value": ""
},
{
"id": "f6f5dd9b-379c-4e96-b74f-d394f0e9d83f",
"name": "timestamp",
"type": "string",
"value": "=={{$now}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0df832de-9809-4c05-944b-1ab8e62fb6ff",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
-704
],
"parameters": {
"height": 448,
"content": "## ☁️ Archive Success Report to Google Drive\n**Action:** \n- Uploads the success test report file to a designated Google Drive folder. \n**Description:** \n- Stores test results in the \"resume store\" folder for centralized access. \n- File name dynamically includes workflow name, status, and timestamp. \n- Provides a permanent record of successful test executions. \n- Supports compliance and audit trail requirements."
},
"typeVersion": 1
},
{
"id": "18671bfd-775b-42e6-a64e-3921ffee5961",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
-640
],
"parameters": {
"height": 384,
"content": "## 📦 Convert Success Report to Text File\n**Action:** \n- Transforms the formatted text into a downloadable .txt file. \n**Description:** \n- Prepares the success report for upload to Google Drive. \n- File naming includes workflow name, status, and timestamp for easy identification. \n- Supports long-term archival and audit requirements."
},
"typeVersion": 1
},
{
"id": "90db750f-6254-40d3-8755-4b22c377f3c3",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
-640
],
"parameters": {
"height": 400,
"content": "## 📄 Generate Success Report Text\n**Action:** \n- Formats test result data into a human-readable text report. \n**Description:** \n- Concatenates workflow name, pass status, and timestamp into a structured text block. \n- Output is used for file creation and task updates. \n- Ensures consistent formatting across all reporting channels."
},
"typeVersion": 1
},
{
"id": "fcce2d0a-4f68-49c5-a1e6-87be0cadb94b",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
288,
-672
],
"parameters": {
"height": 448,
"content": "## 🎯 Format Success Test Result\n**Action:** \n- Structures the test outcome data for successful workflow execution. \n**Description:** \n- Creates a standardized result object containing: \n - Status: \"✅ Passed\" \n - Tested Workflow Name: \"Retention Tracking Post-Hire\" \n - Timestamp: Current execution time \n- Prepares data for archival and notification in subsequent nodes."
},
"typeVersion": 1
},
{
"id": "48482dbc-5fa7-47d6-8f4e-94f4f7cecf3c",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
384
],
"parameters": {
"height": 448,
"content": "## ❌ Format Failed Test Result\n**Action:** \n- Structures the test outcome data for failed workflow execution. \n**Description:** \n- Creates a standardized result object containing: \n - Status: \"❌ Failed\" \n - Tested Workflow Name: \"Retention Tracking Post-Hire\" \n - Timestamp: Current execution time \n- Ensures failure details are captured for debugging and audit trails."
},
"typeVersion": 1
},
{
"id": "163d4cae-b9b2-4317-867e-d5b3ad1d4173",
"name": "Formater le résultat de test échoué",
"type": "n8n-nodes-base.set",
"position": [
368,
224
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e70c3468-0767-470a-b780-7e17188788c2",
"name": "status",
"type": "string",
"value": "❌ Failed"
},
{
"id": "6b01dbe6-137a-46d0-b909-0c863d25e3a1",
"name": "tested_workflow",
"type": "string",
"value": "Retention Tracking Post-Hire"
},
{
"id": "f6f5dd9b-379c-4e96-b74f-d394f0e9d83f",
"name": "timestamp",
"type": "string",
"value": "=={{$now}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5040deb0-6db6-40c8-9cad-f8637dd2f9fa",
"name": "Générer le texte du rapport de succès",
"type": "n8n-nodes-base.code",
"position": [
736,
-208
],
"parameters": {
"jsCode": "return [\n {\n json: {\n text: `Workflow: ${$json.tested_workflow}\nStatus: ${$json.status}\nTimestamp: ${$json.timestamp}`\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "2b1741e8-7258-4f28-b050-57dc4545692b",
"name": "Note adhésive7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
416
],
"parameters": {
"height": 400,
"content": "## ☁️ Archive Failure Report to Google Drive\n**Action:** \n- Uploads the failure test report file to a designated Google Drive folder. \n**Description:** \n- Stores test results in the \"resume store\" folder alongside success reports. \n- Enables team members to review failed test runs without accessing n8n directly. \n- Facilitates root cause analysis and troubleshooting."
},
"typeVersion": 1
},
{
"id": "8e5de5e8-71a1-4a74-b1a9-df712153c9db",
"name": "Note adhésive8",
"type": "n8n-nodes-base.stickyNote",
"position": [
944,
416
],
"parameters": {
"height": 352,
"content": "## 📦 Convert Failure Report to Text File\n**Action:** \n- Transforms the formatted text into a downloadable .txt file. \n**Description:** \n- Prepares the failure report for upload to Google Drive. \n- File naming convention matches success reports for consistent organization. \n- Critical for post-mortem analysis and debugging."
},
"typeVersion": 1
},
{
"id": "54f6ba7c-b99c-40c3-a0ec-14bfd933ca2c",
"name": "Note adhésive9",
"type": "n8n-nodes-base.stickyNote",
"position": [
672,
400
],
"parameters": {
"height": 368,
"content": "## 📄 Generate Failure Report Text\n**Action:** \n- Formats test result data into a human-readable text report. \n**Description:** \n- Concatenates workflow name, fail status, and timestamp into a structured text block. \n- Mirrors the success report structure for consistency. \n- Enables quick identification of failed test runs in logs and notifications."
},
"typeVersion": 1
},
{
"id": "6637cf99-13de-4668-bb63-ea921dccc182",
"name": "Générer le texte du rapport d'échec",
"type": "n8n-nodes-base.code",
"position": [
736,
224
],
"parameters": {
"jsCode": "return [\n {\n json: {\n text: `Workflow: ${$json.tested_workflow}\nStatus: ${$json.status}\nTimestamp: ${$json.timestamp}`\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "1140f35d-1fc6-4dab-b7a5-4ac118ea4a6d",
"name": "Convertir le rapport de succès en fichier texte",
"type": "n8n-nodes-base.convertToFile",
"position": [
1024,
-208
],
"parameters": {
"options": {},
"operation": "toText",
"sourceProperty": "=text"
},
"typeVersion": 1.1
},
{
"id": "57b36b45-ebfb-4e36-8b3d-79641f1831a9",
"name": "Convertir le rapport d'échec en fichier texte",
"type": "n8n-nodes-base.convertToFile",
"position": [
1008,
224
],
"parameters": {
"options": {},
"operation": "toText",
"sourceProperty": "=text"
},
"typeVersion": 1.1
},
{
"id": "4b572d2b-e233-410b-aa83-abae2b023184",
"name": "Archiver le rapport de succès dans Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
1296,
-208
],
"parameters": {
"name": "={{ $json.tested_workflow }}_{{ $json.status }}_{{ $json.timestamp.replace(/[:.]/g, \"-\") }}.txt\n",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "16lOVXsq0xkvJ8sCM7hCFAghQvDOXann7",
"cachedResultUrl": "https://drive.google.com/drive/folders/16lOVXsq0xkvJ8sCM7hCFAghQvDOXann7",
"cachedResultName": "resume store"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "E7nEqUL27GUx1xHa",
"name": "Techdome Account"
}
},
"typeVersion": 3
},
{
"id": "0c3a0ce7-61bd-4ab4-9e3b-a0f6a97c75bb",
"name": "Archiver le rapport d'échec dans Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
1312,
224
],
"parameters": {
"name": "={{ $json.tested_workflow }}_{{ $json.status }}_{{ $json.timestamp.replace(/[:.]/g, \"-\") }}.txt\n",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "16lOVXsq0xkvJ8sCM7hCFAghQvDOXann7",
"cachedResultUrl": "https://drive.google.com/drive/folders/16lOVXsq0xkvJ8sCM7hCFAghQvDOXann7",
"cachedResultName": "resume store"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "E7nEqUL27GUx1xHa",
"name": "Techdome Account"
}
},
"typeVersion": 3
},
{
"id": "dcde5325-c1a3-4e33-acf9-661587287d9f",
"name": "Note adhésive10",
"type": "n8n-nodes-base.stickyNote",
"position": [
1552,
400
],
"parameters": {
"height": 400,
"content": "## ✏️ Update ClickUp Task with Failure Status\n**Action:** \n- Posts the failure test result to a specific ClickUp task for team visibility. \n**Description:** \n- Updates task ID .. with formatted test outcome. \n- Alerts the team to failed test runs immediately. \n- Centralizes test monitoring in the project management platform."
},
"typeVersion": 1
},
{
"id": "5622acb4-1563-498d-9ac8-cb0d2fdadebf",
"name": "Note adhésive11",
"type": "n8n-nodes-base.stickyNote",
"position": [
1520,
-656
],
"parameters": {
"height": 400,
"content": "## ✏️ Update ClickUp Task with Success Status\n**Action:** \n- Posts the success test result to a specific ClickUp task for team visibility. \n**Description:** \n- Updates task ID with formatted test outcome. \n- Keeps project management tools synchronized with test results. \n- Enables real-time notifications to stakeholders without manual updates."
},
"typeVersion": 1
},
{
"id": "7c80063a-3bfe-4677-9dfc-9f24616bb84a",
"name": "Mettre à jour la tâche ClickUp avec le statut Succès",
"type": "n8n-nodes-base.clickUp",
"position": [
1552,
-208
],
"parameters": {
"id": "86b700vbb",
"operation": "update",
"updateFields": {
"content": "={{ $('Generate Success Report Text').item.json.text }}"
}
},
"credentials": {
"clickUpApi": {
"id": "kahuAqa6VKsSxhn1",
"name": "ClickUp account 3"
}
},
"typeVersion": 1
},
{
"id": "b26d1493-d58a-4395-b4d3-d2bdfa4080cb",
"name": "Mettre à jour la tâche ClickUp avec le statut Échec",
"type": "n8n-nodes-base.clickUp",
"position": [
1584,
224
],
"parameters": {
"id": "86b700vbb",
"operation": "update",
"updateFields": {
"content": "={{ $('Generate Failure Report Text').item.json.text }}"
}
},
"credentials": {
"clickUpApi": {
"id": "kahuAqa6VKsSxhn1",
"name": "ClickUp account 3"
}
},
"typeVersion": 1
},
{
"id": "5dff41d1-8ca3-49e2-a6cd-f181bb402cb0",
"name": "Note adhésive12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
784
],
"parameters": {
"height": 448,
"content": "## 📊 Log Error Details to Error Tracking Sheet\n**Action:** \n- Appends error information to a dedicated error log in Google Sheets. \n**Description:** \n- Writes to the \"error log sheet\" tab in the \"Interviewer Brief Pack\" spreadsheet. \n- Captures raw error objects for detailed analysis. \n- Creates a queryable database of all test failures for trend analysis. \n- Supports continuous improvement of workflow reliability."
},
"typeVersion": 1
},
{
"id": "4a18b563-f4ef-4ad8-8b19-74d45ac01736",
"name": "Consigner les détails de l'erreur dans la feuille de suivi des erreurs",
"type": "n8n-nodes-base.googleSheets",
"position": [
144,
752
],
"parameters": {
"columns": {
"value": {
"error": "={{ $json.error }}"
},
"schema": [
{
"id": "error_id",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "error_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "error",
"type": "string",
"display": true,
"required": false,
"displayName": "error",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1338537721,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit#gid=1338537721",
"cachedResultName": "error log sheet"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit?usp=drivesdk",
"cachedResultName": "Interviewer Brief Pack "
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "kpPEOLCGn963qpoh",
"name": "automations@techdome.ai"
}
},
"typeVersion": 4.6
},
{
"id": "4158484c-a8ed-4c33-8ea2-f0fb7cf2194d",
"name": "Exécuter le workflow cible sous test",
"type": "n8n-nodes-base.executeWorkflow",
"onError": "continueRegularOutput",
"position": [
-288,
0
],
"parameters": {
"options": {
"waitForSubWorkflow": true
},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "gr2rafzxOw1ks4Bd",
"cachedResultUrl": "/workflow/gr2rafzxOw1ks4Bd",
"cachedResultName": "Archive Payment Receipts with Stripe, Google Drive, and Google Sheets"
},
"workflowInputs": {
"value": {},
"mappingMode": "defineBelow"
}
},
"retryOnFail": false,
"typeVersion": 1.3,
"alwaysOutputData": true
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "034f6efb-c4fc-498e-95fa-b58bedd10782",
"connections": {
"3af7b28f-f3a6-45af-a3c0-49d0d867290d": {
"main": [
[
{
"node": "c9ded697-7e80-4c9d-ae63-b34dd83a4b4b",
"type": "main",
"index": 0
}
],
[
{
"node": "163d4cae-b9b2-4317-867e-d5b3ad1d4173",
"type": "main",
"index": 0
},
{
"node": "4a18b563-f4ef-4ad8-8b19-74d45ac01736",
"type": "main",
"index": 0
}
]
]
},
"163d4cae-b9b2-4317-867e-d5b3ad1d4173": {
"main": [
[
{
"node": "6637cf99-13de-4668-bb63-ea921dccc182",
"type": "main",
"index": 0
}
]
]
},
"c9ded697-7e80-4c9d-ae63-b34dd83a4b4b": {
"main": [
[
{
"node": "5040deb0-6db6-40c8-9cad-f8637dd2f9fa",
"type": "main",
"index": 0
}
]
]
},
"6637cf99-13de-4668-bb63-ea921dccc182": {
"main": [
[
{
"node": "57b36b45-ebfb-4e36-8b3d-79641f1831a9",
"type": "main",
"index": 0
}
]
]
},
"5040deb0-6db6-40c8-9cad-f8637dd2f9fa": {
"main": [
[
{
"node": "1140f35d-1fc6-4dab-b7a5-4ac118ea4a6d",
"type": "main",
"index": 0
}
]
]
},
"4158484c-a8ed-4c33-8ea2-f0fb7cf2194d": {
"main": [
[
{
"node": "3af7b28f-f3a6-45af-a3c0-49d0d867290d",
"type": "main",
"index": 0
}
]
]
},
"57b36b45-ebfb-4e36-8b3d-79641f1831a9": {
"main": [
[
{
"node": "0c3a0ce7-61bd-4ab4-9e3b-a0f6a97c75bb",
"type": "main",
"index": 0
}
]
]
},
"1140f35d-1fc6-4dab-b7a5-4ac118ea4a6d": {
"main": [
[
{
"node": "4b572d2b-e233-410b-aa83-abae2b023184",
"type": "main",
"index": 0
}
]
]
},
"ebbca67b-a5e8-47a6-b0f0-0e01a2cf0c90": {
"main": [
[
{
"node": "4158484c-a8ed-4c33-8ea2-f0fb7cf2194d",
"type": "main",
"index": 0
}
]
]
},
"0c3a0ce7-61bd-4ab4-9e3b-a0f6a97c75bb": {
"main": [
[
{
"node": "b26d1493-d58a-4395-b4d3-d2bdfa4080cb",
"type": "main",
"index": 0
}
]
]
},
"4b572d2b-e233-410b-aa83-abae2b023184": {
"main": [
[
{
"node": "7c80063a-3bfe-4677-9dfc-9f24616bb84a",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
Partager ce workflow