Convertir les notes de version en stubs de FAQ (Jira/ClickUp)
Ceci est unEngineering, Multimodal AIworkflow d'automatisation du domainecontenant 20 nœuds.Utilise principalement des nœuds comme If, Code, Gmail, Slack, Notion. Génération automatisée de briefs de publication à partir de ClickUp vers Notion et Slack avec GPT-4o
- •Compte Google et informations d'identification Gmail API
- •Token Bot Slack ou URL Webhook
- •Clé API Notion
- •Informations d'identification Google Sheets API
- •Clé API OpenAI
Nœuds utilisés (20)
Catégorie
{
"id": "qIm89R0VoyFG5umx",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Release Notes-to-FAQ Stub (Jira/ClickUp):",
"tags": [],
"nodes": [
{
"id": "0a9f291a-fb5e-48d2-aef0-8b4cb3471228",
"name": "Configurer le modèle GPT-4o",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
160,
128
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "296c2339-d34b-45b4-8c79-05a1ab1bb5e1",
"name": "Journaliser les erreurs dans Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
-288,
544
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "error_id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "error_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "error",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "error",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"error_id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"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": "a754bf62-8af5-43d5-8210-a9d451828bfa",
"name": "Note adhésive 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1008,
-240
],
"parameters": {
"color": 7,
"width": 528,
"height": 368,
"content": "## ClickUp Trigger & Validation\nListens for ClickUp task status changes and validates the webhook payload. \nPrevents invalid or empty task events from being processed.\n"
},
"typeVersion": 1
},
{
"id": "ae6259ca-a0d7-49c5-b33f-c122d087c856",
"name": "Note adhésive 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1664,
-944
],
"parameters": {
"width": 576,
"height": 576,
"content": "## How it works\nThis automation turns ClickUp task updates into complete release-note workflows. \nWhen a task’s status changes in ClickUp (e.g., “In Review” → “Complete”), the workflow fetches full task details, cleans them, and uses Azure OpenAI GPT-4o to generate structured, Markdown-style release notes. \nThe notes are saved automatically in Notion under the “Release Notes” database, then shared in Slack as a formatted announcement. \nFinally, an HTML email acknowledgment is sent to the task owner confirming that the release is documented and live. \nAny validation or API errors are logged in Google Sheets for traceability.\n\n## Setup steps\n1. Connect your credentials: \n - ClickUp (webhook + API) \n - Azure OpenAI API \n - Notion (database) \n - Slack \n - Gmail \n - Google Sheets (for error logging)\n2. Replace Notion DB ID, Slack user/channel, and Google Sheet ID with yours. \n3. Confirm ClickUp team ID and event trigger (`taskStatusUpdated`). \n4. Adjust the Gmail HTML message if desired. \n5. Run a test task update to verify flow end-to-end.\n"
},
"typeVersion": 1
},
{
"id": "652ed9cf-0a37-4772-8b59-232706351ce2",
"name": "Déclencheur d'état de tâche ClickUp",
"type": "n8n-nodes-base.clickUpTrigger",
"position": [
-944,
-64
],
"webhookId": "5e28e69f-9b57-48b6-a5b0-9150c156e111",
"parameters": {
"team": "9014872066",
"events": [
"taskStatusUpdated"
],
"filters": {}
},
"credentials": {
"clickUpApi": {
"id": "kahuAqa6VKsSxhn1",
"name": "ClickUp account 3"
}
},
"typeVersion": 1
},
{
"id": "f803efdb-39a1-44ad-bf1b-f93dbe68a29a",
"name": "Valider le payload ClickUp",
"type": "n8n-nodes-base.if",
"position": [
-688,
-64
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e2adb005-2b3c-4d1e-8445-442df1fe925a",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.task_id }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "386b65fa-bf70-40ef-9a3b-00ca7e84d49d",
"name": "Récupérer les détails de la tâche depuis ClickUp",
"type": "n8n-nodes-base.clickUp",
"position": [
-352,
-80
],
"parameters": {
"id": "={{ $json.task_id }}",
"operation": "get"
},
"credentials": {
"clickUpApi": {
"id": "kahuAqa6VKsSxhn1",
"name": "ClickUp account 3"
}
},
"typeVersion": 1
},
{
"id": "9df1d658-7d5b-4ad9-a8c5-921cd84f0d7e",
"name": "Analyser les détails de la tâche en JavaScript",
"type": "n8n-nodes-base.code",
"position": [
-112,
-80
],
"parameters": {
"jsCode": "// Extract ClickUp task details safely\nconst task = $json;\n\n// Handle cases where arrays or fields might be empty\nconst assignee = (task.assignees && task.assignees.length > 0) ? task.assignees[0] : {};\nconst customFields = task.custom_fields || [];\n\n// Try to find the first field with a value (like a GitHub or docs link)\nconst linkField = customFields.find(f => f.value) || {};\n\nreturn [\n {\n json: {\n title: task.name || \"Untitled Task\",\n description: task.description || \"No description available.\",\n status: task.status?.status || \"No status\",\n priority: task.priority?.priority || \"Not set\",\n due_date: task.due_date || \"No due date\",\n assignee: assignee.username || \"Unassigned\",\n email: assignee.email || \"No email\",\n link: linkField.value || \"No link provided\",\n url: task.url || \"No URL\",\n },\n },\n];\n"
},
"typeVersion": 2
},
{
"id": "0cea2e62-14b1-4b94-82f9-fad9d1039e42",
"name": "Générer la FAQ des notes de publication (IA)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
144,
-80
],
"parameters": {
"text": "=Task Title: {{$json.title}}\nDescription: {{$json.description}}\nStatus: {{$json.status}}\nPriority: {{$json.priority}}\nDue Date: {{$json.due_date}}\nAssignee: {{$json.assignee}} ({{$json.email}})\nTask URL: {{$json.url}}\nReference Link: {{$json.link}}\n\nPlease create a brief FAQ in Markdown format using the 4 sections:\n1) What changed\n2) Why\n3) How to use\n4) Known issues\n",
"options": {
"systemMessage": "=You are a release notes editor. \nYour job is to turn technical task information into a clear, simple FAQ for users and internal teams. \nBe concise, non-marketing, and structured under these exact 4 sections:\n1) What changed\n2) Why\n3) How to use\n4) Known issues\n\nEach section should be 2–4 short bullet points.\n"
},
"promptType": "define"
},
"typeVersion": 2.1
},
{
"id": "8928882c-2c88-43f3-9797-f6179f2bb841",
"name": "Enregistrer les notes de publication dans Notion",
"type": "n8n-nodes-base.notion",
"position": [
544,
-80
],
"parameters": {
"title": "={{ $('Parse Task Details in JavaScript').item.json.title }}",
"simple": false,
"options": {},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "29a802b9-1fa0-804a-b406-e078961e0659",
"cachedResultUrl": "https://www.notion.so/29a802b91fa0804ab406e078961e0659",
"cachedResultName": "Release Notes"
},
"propertiesUi": {
"propertyValues": [
{
"key": "Task URL|rich_text",
"textContent": "={{ $('Parse Task Details in JavaScript').item.json.url }}"
},
{
"key": "Status|rich_text",
"textContent": "={{ $('Parse Task Details in JavaScript').item.json.status }}"
},
{
"key": "Priority|rich_text",
"textContent": "={{ $('Parse Task Details in JavaScript').item.json.priority }}"
},
{
"key": "Owner|rich_text",
"textContent": "={{ $('Parse Task Details in JavaScript').item.json.assignee }}"
},
{
"key": "FAQ Content|rich_text",
"textContent": "={{ $json.output }}"
}
]
}
},
"credentials": {
"notionApi": {
"id": "iDjtgSTYG9ECVBtT",
"name": "Notion account 2"
}
},
"typeVersion": 2.2
},
{
"id": "63000865-c681-490a-8ce0-f8faf3c89e01",
"name": "Annoncer la publication dans Slack",
"type": "n8n-nodes-base.slack",
"position": [
1184,
-80
],
"webhookId": "ddaa7632-9e35-4bd3-82d6-572d5cae84cc",
"parameters": {
"text": "={{ $json.output }}",
"user": {
"__rl": true,
"mode": "list",
"value": "U09HMPVD466",
"cachedResultName": "newscctv22"
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.3
},
{
"id": "add680c8-a40a-489c-bc5f-34cac0a078a0",
"name": "Configurer le modèle GPT-4o 1",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
816,
128
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "1d91b3cc-e61d-419d-a15e-8dfe2a9a4dd5",
"name": "Générer l'annonce de publication Slack (IA)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
800,
-80
],
"parameters": {
"text": "=Create a Slack release announcement message using this task information:\n\nTask Title:{{ $(' Fetch Task Details from ClickUp').item.json.name }}\nDescription: {{ $(' Fetch Task Details from ClickUp').item.json.description }}\nStatus: {{ $(' Fetch Task Details from ClickUp').item.json.status }}\nPriority:{{ $json.properties }}\nAssignee: {{ $(' Fetch Task Details from ClickUp').item.json.assignees[0].email }}\nTask URL: {{$json.url}}\n\nFormat it as a professional Slack message with emojis, proper formatting, and a clickable task link.",
"options": {
"systemMessage": "=You are a Slack message formatter for release announcements.\n\nYour job is to take ClickUp task information and create a visually appealing, professional Slack message.\n\nRequirements:\n1. Use Slack markdown formatting (bold with *, italics with _, code blocks with ```)\n2. Include appropriate emojis for visual appeal\n3. Keep it concise and scannable\n4. Structure: Header → Key Details → Task Link → Release Date → Footer\n5. Use bullet points or clean formatting for readability\n6. Add a clickable link to the ClickUp task\n7. Include automation signature at the bottom\n\nReturn ONLY the formatted Slack message text, no JSON, no explanations"
},
"promptType": "define"
},
"typeVersion": 2.1
},
{
"id": "be95e9d0-6750-477a-b4a2-d1a097aac9fd",
"name": "Envoyer un e-mail d'accusé de réception à l'assigné",
"type": "n8n-nodes-base.gmail",
"position": [
1536,
-80
],
"webhookId": "0c82c299-6938-42ed-bda6-5007d79af34f",
"parameters": {
"sendTo": "={{ $('Parse Task Details in JavaScript').item.json.email }}",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n <style>\n body {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;\n line-height: 1.6;\n color: #333;\n max-width: 600px;\n margin: 0 auto;\n padding: 20px;\n }\n .header {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n padding: 30px;\n border-radius: 10px 10px 0 0;\n text-align: center;\n }\n .header h1 {\n margin: 0;\n font-size: 24px;\n }\n .content {\n background: #f8f9fa;\n padding: 30px;\n border-radius: 0 0 10px 10px;\n }\n .info-box {\n background: white;\n padding: 20px;\n border-radius: 8px;\n margin: 20px 0;\n border-left: 4px solid #667eea;\n }\n .info-row {\n margin: 12px 0;\n display: flex;\n align-items: center;\n }\n .label {\n font-weight: 600;\n color: #667eea;\n min-width: 120px;\n }\n .value {\n color: #333;\n }\n .priority-urgent { color: #dc3545; font-weight: bold; }\n .priority-high { color: #fd7e14; font-weight: bold; }\n .priority-normal { color: #ffc107; }\n .priority-low { color: #28a745; }\n .status-ready { color: #28a745; font-weight: bold; }\n .cta-button {\n display: inline-block;\n background: #667eea;\n color: white !important;\n padding: 14px 30px;\n text-decoration: none;\n border-radius: 6px;\n margin: 20px 0;\n font-weight: 600;\n text-align: center;\n }\n .cta-button:hover {\n background: #5568d3;\n }\n .faq-section {\n background: white;\n padding: 20px;\n border-radius: 8px;\n margin: 20px 0;\n }\n .faq-section h3 {\n color: #667eea;\n margin-top: 0;\n }\n .footer {\n text-align: center;\n padding: 20px;\n color: #6c757d;\n font-size: 12px;\n border-top: 1px solid #dee2e6;\n margin-top: 30px;\n }\n .emoji {\n font-size: 18px;\n margin-right: 8px;\n }\n </style>\n</head>\n<body>\n <div class=\"header\">\n <h1>🚀 Your Release is Ready!</h1>\n </div>\n \n <div class=\"content\">\n <p>Hi <strong>{{ $('Parse Task Details in JavaScript').item.json.assignee }}</strong>,</p>\n \n <p>Great news! Your feature release has been processed and documented. Here are the details:</p>\n \n <div class=\"info-box\">\n <div class=\"info-row\">\n <span class=\"label\">📋 Feature:</span>\n <span class=\"value\">{{ $('Parse Task Details in JavaScript').item.json.title }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"label\">⚡ Priority:</span>\n <span class=\"value priority-{{ $('Parse Task Details in JavaScript').item.json.priority.toLowerCase() }}\">\n {{ $('Parse Task Details in JavaScript').item.json.priority }}\n </span>\n </div>\n <div class=\"info-row\">\n <span class=\"label\">✅ Status:</span>\n <span class=\"value status-ready\">{{ $('Parse Task Details in JavaScript').item.json.status }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"label\">📅 Release Date:</span>\n <span class=\"value\">{{ $now.toFormat('MMMM dd, yyyy') }}</span>\n </div>\n </div>\n\n <center>\n <a href=\"{{ $('Save Release Notes to Notion').item.json.url }}\" class=\"cta-button\">\n 📖 View Full Release Notes in Notion\n </a>\n </center>\n\n <div class=\"faq-section\">\n <h3>📝 Release Notes Preview</h3>\n <p style=\"white-space: pre-line; color: #495057; line-height: 1.8;\">{{ $('Generate Release Notes FAQ (AI)').item.json.output.substring(0, 500) }}...</p>\n </div>\n\n <div class=\"info-box\" style=\"border-left-color: #28a745;\">\n <p style=\"margin: 0;\"><strong>🔗 Quick Links:</strong></p>\n <ul style=\"margin: 10px 0;\">\n <li><a href=\"{{ $('Parse Task Details in JavaScript').item.json.url }}\" style=\"color: #667eea;\">View ClickUp Task</a></li>\n <li><a href=\"{{ $('Save Release Notes to Notion').item.json.url }}\" style=\"color: #667eea;\">View Notion Documentation</a></li>\n {{ $('Parse Task Details in JavaScript').item.json.link !== 'No link provided' ? '<li><a href=\"' + $('Parse Task Details in JavaScript').item.json.link + '\" style=\"color: #667eea;\">Reference Link</a></li>' : '' }}\n </ul>\n </div>\n\n <p style=\"margin-top: 30px;\">The team has been notified via Slack, and this release is now live in our knowledge base.</p>\n \n <p>If you have any questions or need to update the documentation, please reach out to the team.</p>\n \n <p style=\"margin-top: 30px;\">\n Best regards,<br>\n <strong>Release Automation Team</strong>\n </p>\n </div>\n\n <div class=\"footer\">\n <p>🤖 This is an automated message generated by our n8n workflow.</p>\n <p>If you believe you received this in error, please contact your system administrator.</p>\n </div>\n</body>\n</html>",
"options": {},
"subject": "=✅ Release Ready: {{ $('Parse Task Details in JavaScript').item.json.title }}"
},
"credentials": {
"gmailOAuth2": {
"id": "RchiXdmY8WaQhOSJ",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "56486d5f-7142-4092-8808-d95961f28ac8",
"name": "Note adhésive 12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-416,
-304
],
"parameters": {
"color": 7,
"width": 464,
"height": 464,
"content": "## Task Data Fetching & Parsing\nRetrieves detailed ClickUp task info and converts it into clean JSON fields. \nEnsures consistent input for AI-based release-note generation.\n"
},
"typeVersion": 1
},
{
"id": "26dd72fa-2822-41ad-8eee-f8b8fb4a1cda",
"name": "Note adhésive 13",
"type": "n8n-nodes-base.stickyNote",
"position": [
96,
-288
],
"parameters": {
"color": 7,
"width": 352,
"height": 576,
"content": "## AI Release-Note Generation\nUses GPT-4o to summarize task details into a four-section FAQ format. \nEach section highlights what changed, why, how to use it, and any known issues.\n"
},
"typeVersion": 1
},
{
"id": "e7920945-1bac-4cdc-b0bf-8aaa731e271f",
"name": "Note adhésive 14",
"type": "n8n-nodes-base.stickyNote",
"position": [
464,
-352
],
"parameters": {
"color": 7,
"height": 640,
"content": "## Notion Documentation & Record Keeping\nAutomatically creates a new Notion entry under “Release Notes.” \nCaptures all key fields: title, owner, priority, status, and generated FAQ.\n"
},
"typeVersion": 1
},
{
"id": "4a84e45d-17b4-4ec9-96bf-4c6ec252e393",
"name": "Note adhésive 15",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
-304
],
"parameters": {
"color": 7,
"width": 640,
"height": 592,
"content": "## Slack Announcement & AI Formatting\nFormats a professional, emoji-enhanced Slack message using GPT-4o. \nPosts it to the team channel to announce the new release instantly.\n"
},
"typeVersion": 1
},
{
"id": "0f1b231a-9a08-4e5b-8344-01aa0f8ae8c8",
"name": "Note adhésive 16",
"type": "n8n-nodes-base.stickyNote",
"position": [
1408,
-256
],
"parameters": {
"color": 7,
"width": 400,
"height": 400,
"content": "## Email Acknowledgment & Closure\nSends a confirmation email to the task assignee. \nIncludes release details, links to Notion & ClickUp, and a preview of the AI-generated notes.\n"
},
"typeVersion": 1
},
{
"id": "ad64298d-dcf6-45e5-86a0-dadef7539b6c",
"name": "Note adhésive 17",
"type": "n8n-nodes-base.stickyNote",
"position": [
-368,
320
],
"parameters": {
"color": 7,
"width": 304,
"height": 464,
"content": "## Error Handling & Logging\nLogs any missing payloads or API failures to Google Sheets. \nProvides visibility into workflow issues for easy debugging.\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "1ca088d6-1491-407d-b2c4-a74e0d2ac92c",
"connections": {
"0a9f291a-fb5e-48d2-aef0-8b4cb3471228": {
"ai_languageModel": [
[
{
"node": "0cea2e62-14b1-4b94-82f9-fad9d1039e42",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"add680c8-a40a-489c-bc5f-34cac0a078a0": {
"ai_languageModel": [
[
{
"node": "1d91b3cc-e61d-419d-a15e-8dfe2a9a4dd5",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"f803efdb-39a1-44ad-bf1b-f93dbe68a29a": {
"main": [
[
{
"node": "386b65fa-bf70-40ef-9a3b-00ca7e84d49d",
"type": "main",
"index": 0
}
],
[
{
"node": "296c2339-d34b-45b4-8c79-05a1ab1bb5e1",
"type": "main",
"index": 0
}
]
]
},
"63000865-c681-490a-8ce0-f8faf3c89e01": {
"main": [
[
{
"node": "be95e9d0-6750-477a-b4a2-d1a097aac9fd",
"type": "main",
"index": 0
}
]
]
},
"652ed9cf-0a37-4772-8b59-232706351ce2": {
"main": [
[
{
"node": "f803efdb-39a1-44ad-bf1b-f93dbe68a29a",
"type": "main",
"index": 0
}
]
]
},
"8928882c-2c88-43f3-9797-f6179f2bb841": {
"main": [
[
{
"node": "1d91b3cc-e61d-419d-a15e-8dfe2a9a4dd5",
"type": "main",
"index": 0
}
]
]
},
"0cea2e62-14b1-4b94-82f9-fad9d1039e42": {
"main": [
[
{
"node": "8928882c-2c88-43f3-9797-f6179f2bb841",
"type": "main",
"index": 0
}
]
]
},
"386b65fa-bf70-40ef-9a3b-00ca7e84d49d": {
"main": [
[
{
"node": "9df1d658-7d5b-4ad9-a8c5-921cd84f0d7e",
"type": "main",
"index": 0
}
]
]
},
"9df1d658-7d5b-4ad9-a8c5-921cd84f0d7e": {
"main": [
[
{
"node": "0cea2e62-14b1-4b94-82f9-fad9d1039e42",
"type": "main",
"index": 0
}
]
]
},
"1d91b3cc-e61d-419d-a15e-8dfe2a9a4dd5": {
"main": [
[
{
"node": "63000865-c681-490a-8ce0-f8faf3c89e01",
"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é - Ingénierie, IA Multimodale
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