Audit de la qualité des entretiens
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 23 nœuds.Utilise principalement des nœuds comme If, Code, Slack, GoogleSheets, ManualTrigger. Examen des feedbacks d'entretien et génération de rapports via Slack avec GPT-4o-mini et Google Sheets
- •Token Bot Slack ou URL Webhook
- •Informations d'identification Google Sheets API
- •Clé API OpenAI
Nœuds utilisés (23)
Catégorie
{
"id": "DZrX6urOE53Tm4jp",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Interview Quality Audit",
"tags": [],
"nodes": [
{
"id": "9e228e13-31c4-4f40-8bc1-83ffc0c0df21",
"name": "Lors du clic sur 'Exécuter le workflow'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-176,
16
],
"parameters": {},
"typeVersion": 1
},
{
"id": "4656de9f-4ad6-4b48-a8b0-6802cd1e88ca",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
576,
160
],
"parameters": {
"height": 384,
"content": " ✅ Validate AI Response\nType: Conditional Logic\nPurpose: Quality control checkpoint\nValidation:\n\nResponse text is not undefined\nContains valid data structure\n\nRouting:\n\n✅ Valid → Continue to JSON parsing\n❌ Invalid → Log to error sheet\n\nFunction: Prevents malformed responses from corrupting pipeline"
},
"typeVersion": 1
},
{
"id": "ed2e275a-ea76-4d78-b9da-2149ec9f5b50",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
224,
352
],
"parameters": {
"height": 320,
"content": "🤖 AI Quality Evaluator (GPT-4o)\nType: AI Language Model\nPurpose: Cognitive engine for feedback analysis\nConfiguration:\n\nModel: gpt-4o-mini\nPlatform: Azure OpenAI\nIntegration: LangChain\n\nConnects to Azure GPT-4o-mini\nPowers NLP evaluation\nGenerates structured JSON outputs"
},
"typeVersion": 1
},
{
"id": "97cdbdb7-5306-4910-8e93-927940ed699d",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
224,
-560
],
"parameters": {
"width": 336,
"height": 544,
"content": "🔍 Analyze Feedback Quality\nType: LangChain LLM Chain\nPurpose: Core AI evaluation engine\nEvaluation Dimensions (1-5 Scale):\n\nSpecificity (35%) - Concrete details\nStructure/STAR (15%) - Situation-Task-Action-Result\nBias-Free Language (15%) - No gender/appearance bias\nActionability (10%) - Decision usefulness\nDepth (25%) - Multiple competencies\n\nScoring:\n\n5: Excellent - Clear STAR with evidence\n3: Adequate - Some info but vague\n1: Unusable - Purely subjective\n\nSpecial Rules:\n\nFeedback <30 words → Scores ≤2\nExtracts vague phrases (\"great guy\", \"nice energy\")\n\nOutput: JSON with scores and vague_phrases array"
},
"typeVersion": 1
},
{
"id": "6681d513-9520-4c78-8595-cbb27bdfff9c",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
192
],
"parameters": {
"height": 368,
"content": "📋 Fetch Interview Feedback\nType: Google Sheets Read\nPurpose: Retrieve raw feedback data\nConfiguration:\n\nDocument: Interviewer Brief Pack\nSheet: Raw_Feedback\nOperation: Read all rows\n\nData Retrieved:\nTimestamp, Candidate_ID, Role, Stage, Interviewer_Email, Feedback_Text, row_number\nOutput: All feedback records passed to AI evaluation"
},
"typeVersion": 1
},
{
"id": "f3e8a974-86fa-4a81-a5bd-3cbebf6302b4",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
928,
-224
],
"parameters": {
"width": 288,
"height": 208,
"content": "🔄 Parse AI JSON Output\nType: JavaScript Code\nPurpose: Convert string to structured data\nFunction:\n\nSafely parses AI text to JSON object\nTry-catch error handling\nThrows descriptive errors for debugging"
},
"typeVersion": 1
},
{
"id": "78deb6fe-c12f-4281-974d-19a9155f0f0e",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1664,
448
],
"parameters": {
"width": 320,
"height": 224,
"content": "🎯 Check if Training Needed\nType: Conditional Logic\nPurpose: Identify low performers\nCondition: Score < 50\nRouting:\n\n✅ <50 → Send training resources\n❌ ≥50 → No additional action\n\nFunction: Triggers enhanced coaching for scores below threshold"
},
"typeVersion": 1
},
{
"id": "97e18f0a-359c-4bf3-8ff8-bfe51a193e7d",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2064,
464
],
"parameters": {
"width": 400,
"height": 304,
"content": "📚 Send Training Recommendations\nType: Slack Notification\nPurpose: Deliver coaching resources\nMessage Content:\n\nScore, Flags, Specific vague phrases\nImprovement guidance (STAR method)\n📘 STAR Method Guide link\n🎥 Bias-Free Interviewing Video link\n\nFunction:\n\nDetailed coaching for scores <50\nLinks to training resources\nSupportive, growth-focused tone"
},
"typeVersion": 1
},
{
"id": "b88c8198-7941-41a6-8b7f-406f62371288",
"name": "Note adhésive7",
"type": "n8n-nodes-base.stickyNote",
"position": [
880,
464
],
"parameters": {
"height": 320,
"content": "🚨 Log AI Errors\nType: Google Sheets Append\nPurpose: Error tracking\nConfiguration:\n\nSheet: error log sheet\nOperation: APPEND\n\nFunction:\n\nCaptures AI failures\nCreates error audit trail\nEnables debugging and monitoring\nTracks system reliability\n\n"
},
"typeVersion": 1
},
{
"id": "a98fbf8e-388a-40fe-a7a7-5e54866da422",
"name": "Note adhésive9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1808,
-144
],
"parameters": {
"width": 336,
"height": 304,
"content": "💬 Send Feedback Summary\nType: Slack Notification\nPurpose: Deliver quality report\nMessage Structure:\n\nRole, Stage, Score (X/100), Flags\nHigh Quality: Congratulations message\nNeeds Improvement: Vague phrases + STAR tips\n\nFunction:\n\nImmediate feedback to interviewer\nSpecific, actionable guidance\nEncourages continuous improvement"
},
"typeVersion": 1
},
{
"id": "989baf43-960a-4393-9640-02b4454289d3",
"name": "Note adhésive10",
"type": "n8n-nodes-base.stickyNote",
"position": [
1488,
-592
],
"parameters": {
"width": 352,
"height": 336,
"content": "💾 Save Scores to Spreadsheet\nType: Google Sheets Update\nPurpose: Persist quality metrics\nConfiguration:\n\nSheet: Raw_Feedback\nOperation: UPDATE (match by row_number)\n\nFields Updated:\n\nScore (0-100)\nFlags (quality issues)\nLLM_JSON (complete AI analysis)\n\nFunction: Updates original rows, creates audit trail for trend analysis"
},
"typeVersion": 1
},
{
"id": "c7fbcc25-cdde-4b02-b4ec-afdae31fff2e",
"name": "Note adhésive11",
"type": "n8n-nodes-base.stickyNote",
"position": [
1152,
160
],
"parameters": {
"width": 288,
"height": 480,
"content": "🧮 Calculate Weighted Quality Score\nType: JavaScript Code\nPurpose: Compute final score and flags\nWeights:\nSpecificity 35% | Depth 25% | Structure 15% | Bias-Free 15% | Actionability 10%\nFlags:\n\n\"low_detail\": specificity < 3 OR depth < 3\n\"bias\": bias_free_language < 3\n\nFunction:\n\nCalculates 0-100 score\nGenerates quality flags\nFormats vague phrases for Slack\nPreserves context (Role, Stage, row_number)\n\nOutput: Score, Flags, LLM_JSON, VaguePhrasesFormatted"
},
"typeVersion": 1
},
{
"id": "69339a87-95fa-4827-a768-a6a9aa1def9e",
"name": "Récupérer les données brutes des retours",
"type": "n8n-nodes-base.googleSheets",
"position": [
32,
16
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 315277036,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit#gid=315277036",
"cachedResultName": "Raw_Feedback"
},
"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,
"alwaysOutputData": false
},
{
"id": "99814f2b-ab97-49bf-8eec-43083f731dad",
"name": "Évaluateur de Qualité IA (GPT-4o1",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
272,
192
],
"parameters": {
"model": "gpt-4o-mini",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "6517c215-19c5-4644-97f6-26d650c65540",
"name": "Analyser la qualité des retours",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
288,
16
],
"parameters": {
"text": "=You are an Interview Feedback Quality Auditor.\n\nYour task is to evaluate interviewer feedback notes and score them across 5 dimensions:\n- specificity (1–5)\n- structure_STAR (1–5)\n- bias_free_language (1–5)\n- actionability (1–5)\n- depth (1–5)\n\n⚖️ Scoring Guidelines:\n- 5 = Excellent: Clear, detailed, STAR format (Situation, Task, Action, Result) explicitly used or strongly implied, with evidence/examples.\n- 4 = Good: Mostly structured, some detail, minor gaps, still useful for decisions.\n- 3 = Adequate: Some relevant info but mixed with vagueness, missing STAR elements.\n- 2 = Poor: Mostly vague or generic, no clear evidence, over-reliant on subjective phrasing.\n- 1 = Unusable: Purely subjective (“great guy”, “nice energy”), no actionable details.\n\nBias-free language: Score low if feedback references gender, looks, personality, or irrelevant traits.\n\nActionability: Score higher if the feedback directly helps in making a decision (e.g., “passed all test cases under time constraint” vs “seems smart”).\n\nDepth: Score higher if multiple competencies or dimensions are covered, lower if only 1 vague point.\n\n🚨 Additional Rules:\n- If text <30 words OR contains mostly emojis/placeholders → set ALL scores ≤2 and add `\"too_short\"` to vague_phrases.\n- Extract vague phrases (e.g., “good energy”, “smart guy”, “should be fine”) into `\"vague_phrases\"` array.\n\nReturn ONLY valid JSON in this schema:\n{\n \"specificity\": <1–5>,\n \"structure\": <1–5>,\n \"bias_free_language\": <1–5>,\n \"actionability\": <1–5>,\n \"depth\": <1–5>,\n \"vague_phrases\": [ ... ]\n}\n",
"batching": {},
"messages": {
"messageValues": [
{
"message": "You are an Interview Feedback Quality Auditor. Evaluate interview feedback for specificity, structure (STAR), bias-free language, actionability, and depth. Be strict but fair. Always return **only valid JSON** that follows the given schema.Return ONLY valid JSON, no explanations, no markdown, no quotes wrapping the whole object.\n"
},
{
"type": "HumanMessagePromptTemplate",
"message": "=Role: {{$json[\"Role\"]}} Stage: {{$json[\"Stage\"]}} Feedback: {{$json[\"Feedback_Text\"]}}"
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "0612aeb7-a3a2-4215-9910-4cd077e06586",
"name": "Valider la réponse de l'IA",
"type": "n8n-nodes-base.if",
"position": [
640,
16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "4901c65c-6aaf-4efe-a133-1fedfedc0bca",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.text }}",
"rightValue": "undefined "
}
]
}
},
"typeVersion": 2.2
},
{
"id": "f89f5698-5d3c-4771-8b0b-511b32b9fc33",
"name": "Analyser la sortie JSON de l'IA",
"type": "n8n-nodes-base.code",
"position": [
1024,
0
],
"parameters": {
"jsCode": "// OpenAI output comes as string in $json.text\nconst raw = $json[\"text\"];\n\n// Parse safely\nlet parsed;\ntry {\n parsed = JSON.parse(raw);\n} catch (e) {\n throw new Error(\"Invalid JSON returned by OpenAI: \" + raw);\n}\n\nreturn parsed;\n"
},
"typeVersion": 2
},
{
"id": "1174cddb-9bf5-4582-a7ba-aed412336b7f",
"name": "Calculer le score de qualité pondéré",
"type": "n8n-nodes-base.code",
"position": [
1232,
0
],
"parameters": {
"jsCode": "// Input = parsed JSON from AI\nconst data = $json;\n\n// Weights (can be adjusted or moved to Config sheet later)\nconst weights = {\n specificity: 0.35,\n structure: 0.15,\n bias_free_language: 0.15,\n actionability: 0.10,\n depth: 0.25,\n};\n\n// ✅ Fallback for structure (AI might send structure or structure_star)\nconst structureValue = data.structure ?? data.structure_star ?? 0;\n\n// Calculate weighted score safely\nlet total = (\n (data.specificity * weights.specificity) +\n (structureValue * weights.structure) +\n (data.bias_free_language * weights.bias_free_language) +\n (data.actionability * weights.actionability) +\n (data.depth * weights.depth)\n) / (\n weights.specificity +\n weights.structure +\n weights.bias_free_language +\n weights.actionability +\n weights.depth\n);\n\n// Scale to 0–100\ntotal = Math.round(total * 20);\n\n// Flags\nconst flags = [];\nif ((data.specificity ?? 0) < 3 || (data.depth ?? 0) < 3) {\n flags.push(\"low_detail\");\n}\nif ((data.bias_free_language ?? 0) < 3) {\n flags.push(\"bias\");\n}\n\n// Format vague phrases if they exist\nlet vagueFormatted = \"\";\nif (Array.isArray(data.vague_phrases) && data.vague_phrases.length > 0) {\n vagueFormatted = data.vague_phrases.map(p => `• ${p}`).join(\"\\n\");\n}\n\n// Return clean JSON\nreturn {\n json: {\n Score: total,\n Flags: flags.join(\", \"),\n LLM_JSON: JSON.stringify(data),\n VaguePhrasesFormatted: vagueFormatted, // for Slack message\n row_number: $json.row_number, // keep tracking the row\n Role: $item(0).$node[\"Fetch Raw Feedback Data\"].json.Role,\n Stage: $item(0).$node[\"Fetch Raw Feedback Data\"].json.Stage\n }\n};\n"
},
"typeVersion": 2
},
{
"id": "5d940fc3-8727-4dc4-9a58-133ab5180f08",
"name": "Enregistrer les scores dans la feuille de calcul",
"type": "n8n-nodes-base.googleSheets",
"position": [
1600,
-208
],
"parameters": {
"columns": {
"value": {
"Flags": "={{ $json.Flags }}",
"Score": "={{ $json.Score }}",
"LLM_JSON": "={{ $json.LLM_JSON }}",
"row_number": "={{ $('Fetch Raw Feedback Data').item.json.row_number }}"
},
"schema": [
{
"id": "Timestamp",
"type": "string",
"display": true,
"required": false,
"displayName": "Timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Candidate_ID",
"type": "string",
"display": true,
"required": false,
"displayName": "Candidate_ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Role",
"type": "string",
"display": true,
"required": false,
"displayName": "Role",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Stage",
"type": "string",
"display": true,
"required": false,
"displayName": "Stage",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Interviewer_Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Interviewer_Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Feedback_Text",
"type": "string",
"display": true,
"required": false,
"displayName": "Feedback_Text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Flags",
"type": "string",
"display": true,
"required": false,
"displayName": "Flags",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LLM_JSON",
"type": "string",
"display": true,
"required": false,
"displayName": "LLM_JSON",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 315277036,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit#gid=315277036",
"cachedResultName": "Raw_Feedback"
},
"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,
"alwaysOutputData": true
},
{
"id": "40df551b-4ca7-4268-a1fe-4ebb01fd304f",
"name": "Envoyer le résumé des retours à l'interviewer",
"type": "n8n-nodes-base.slack",
"position": [
1616,
0
],
"webhookId": "ddaa7632-9e35-4bd3-82d6-572d5cae84cc",
"parameters": {
"text": "=:mag: *Interview Feedback Audit*\n\n*Role:* {{ $json[\"Role\"] }}\n*Stage:* {{ $json[\"Stage\"] }}\n\n:bar_chart: *Score:* {{ $json[\"Score\"] }}/100 \n:warning: *Flags:* {{ $json[\"Flags\"] || \"none\" }}\n\n{{ $json[\"VaguePhrasesFormatted\"] ? \n (\"_We noticed vague or incomplete feedback. Examples:_\\n\" + $json[\"VaguePhrasesFormatted\"] + \n \"\\n\\n_To improve: try being more specific and evidence-based (e.g., STAR method)._\") \n : \n \"_✅ Great job! Your feedback was specific, structured, and bias-free._\" \n}}\n\nKeep it up — your detailed notes help us make fairer hiring decisions 🚀\n\n_Automated with this n8n workflow_\n",
"user": {
"__rl": true,
"mode": "list",
"value": "U09HMPVD466",
"cachedResultName": "newscctv22"
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.3
},
{
"id": "de2e5d93-df58-41ef-a22f-e7a681308a64",
"name": "Vérifier si une formation est nécessaire",
"type": "n8n-nodes-base.if",
"position": [
1776,
288
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "62f94225-d1b6-42a0-a3e9-7afceb9b937d",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{$json[\"Score\"]}}",
"rightValue": 50
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "49b80e52-27d3-455d-8082-e3e0f2365a69",
"name": "Envoyer les recommandations de formation",
"type": "n8n-nodes-base.slack",
"position": [
2064,
272
],
"webhookId": "ddaa7632-9e35-4bd3-82d6-572d5cae84cc",
"parameters": {
"text": "=:books: *Training Recommendation*\n\nYour interview feedback for **{{$json[\"Role\"]}} ({{$json[\"Stage\"]}})** was reviewed.\n\n📊 **Score:** {{$json[\"Score\"]}}/100 \n⚠️ **Flags:** {{$json[\"Flags\"] || \"none\"}} \n\nWe noticed vague or incomplete feedback. Here are some examples: \n{{ $json.VaguePhrasesFormatted }}\n\nTo improve: try using structured, evidence-based feedback (e.g., STAR method). \n\n👉 Helpful resources: \n📘 [STAR Method Guide](https://example.com/star-training) \n🎥 [Bias-Free Interviewing Video](https://example.com/interview-bias) \n\nYour detailed notes help us make fairer hiring decisions 🚀\n",
"user": {
"__rl": true,
"mode": "list",
"value": "U09HMPVD466",
"cachedResultName": "newscctv22"
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.3
},
{
"id": "48988700-46e2-4464-87a5-99054d6e9cbc",
"name": "Journaliser les erreurs de l'IA",
"type": "n8n-nodes-base.googleSheets",
"position": [
944,
304
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "defineBelow",
"matchingColumns": [],
"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.7
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "e2d8cf56-20c5-4e9a-9d03-d8b8536128fe",
"connections": {
"f89f5698-5d3c-4771-8b0b-511b32b9fc33": {
"main": [
[
{
"node": "1174cddb-9bf5-4582-a7ba-aed412336b7f",
"type": "main",
"index": 0
}
]
]
},
"0612aeb7-a3a2-4215-9910-4cd077e06586": {
"main": [
[
{
"node": "f89f5698-5d3c-4771-8b0b-511b32b9fc33",
"type": "main",
"index": 0
}
],
[
{
"node": "48988700-46e2-4464-87a5-99054d6e9cbc",
"type": "main",
"index": 0
}
]
]
},
"69339a87-95fa-4827-a768-a6a9aa1def9e": {
"main": [
[
{
"node": "6517c215-19c5-4644-97f6-26d650c65540",
"type": "main",
"index": 0
}
]
]
},
"6517c215-19c5-4644-97f6-26d650c65540": {
"main": [
[
{
"node": "0612aeb7-a3a2-4215-9910-4cd077e06586",
"type": "main",
"index": 0
}
]
]
},
"de2e5d93-df58-41ef-a22f-e7a681308a64": {
"main": [
[
{
"node": "49b80e52-27d3-455d-8082-e3e0f2365a69",
"type": "main",
"index": 0
}
]
]
},
"5d940fc3-8727-4dc4-9a58-133ab5180f08": {
"main": [
[]
]
},
"99814f2b-ab97-49bf-8eec-43083f731dad": {
"ai_languageModel": [
[
{
"node": "6517c215-19c5-4644-97f6-26d650c65540",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"1174cddb-9bf5-4582-a7ba-aed412336b7f": {
"main": [
[
{
"node": "40df551b-4ca7-4268-a1fe-4ebb01fd304f",
"type": "main",
"index": 0
},
{
"node": "5d940fc3-8727-4dc4-9a58-133ab5180f08",
"type": "main",
"index": 0
},
{
"node": "de2e5d93-df58-41ef-a22f-e7a681308a64",
"type": "main",
"index": 0
}
]
]
},
"9e228e13-31c4-4f40-8bc1-83ffc0c0df21": {
"main": [
[
{
"node": "69339a87-95fa-4827-a768-a6a9aa1def9e",
"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é - Création de contenu, 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