Messagerie d'agent IA

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 34 nœuds.Utilise principalement des nœuds comme Set, Code, Switch, Webhook, Function. utilisationGPT-4deFacebook Messengerbot,支持文本、图像et语音traitement

Prérequis
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "bBJOoh6tRVSg50K5",
  "meta": {
    "instanceId": "4373d1c98d837a02928f24e76c24879728ab83407616320d7d7808e429ea0a4e",
    "templateCredsSetupCompleted": true
  },
  "name": "Agent IA Messenger",
  "tags": [],
  "nodes": [
    {
      "id": "2ccd1577-6b09-4dba-a008-382833689fab",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2016,
        704
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "jl5FyiQarFxAvt8F",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d588ba3b-d9db-481a-bfdb-dea8a0d0f275",
      "name": "Mémoire Simple",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        2192,
        704
      ],
      "parameters": {
        "sessionKey": "={{ $('Webhook1').item.json.body.entry[0].messaging[0].sender.id }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "e97f4fe7-b9fd-465b-8229-9a117ce46b81",
      "name": "Calculatrice",
      "type": "@n8n/n8n-nodes-langchain.toolCalculator",
      "position": [
        2352,
        704
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6a045e89-c2c1-4bef-b8bd-35eb6d524ee1",
      "name": "Wikipedia",
      "type": "@n8n/n8n-nodes-langchain.toolWikipedia",
      "position": [
        2512,
        704
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d7cb9060-af1b-4006-814f-d13d00406bd6",
      "name": "Télécharger Audio",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        448
      ],
      "parameters": {
        "url": "={{ $json.url }}",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "facebookGraphApi"
      },
      "credentials": {
        "facebookGraphApi": {
          "id": "WIGwSMnkKuDXE3cY",
          "name": "Facebook Graph account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "43dc357f-2e94-4ca4-87dd-bc26c5ca516c",
      "name": "Transcripteur Audio",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1248,
        448
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "id": "jl5FyiQarFxAvt8F",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "e891d603-5258-47b5-a4de-834a21145aef",
      "name": "Identifier et Réacheminer les Types de Message",
      "type": "n8n-nodes-base.switch",
      "position": [
        368,
        432
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "=Image Message",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "b12ff3af-0aae-4874-9c16-37f0337bf214",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.type === \"image\" }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Audio Message",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "584171c6-5842-41a4-ae70-b901457d1b43",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.type === \"audio\" }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Text Message",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "c1d29099-8a6f-4944-ad5c-a60926aabbd1",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.type === \"text\" }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "18493f65-52e0-4438-afba-daaac6f8fabe",
      "name": "Télécharger Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        112
      ],
      "parameters": {
        "url": "={{ $json.url }}",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "facebookGraphApi"
      },
      "credentials": {
        "facebookGraphApi": {
          "id": "WIGwSMnkKuDXE3cY",
          "name": "Facebook Graph account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "908a01ea-04ba-4711-8aeb-0326abb7b512",
      "name": "Identifier le Type de Message",
      "type": "n8n-nodes-base.function",
      "position": [
        0,
        448
      ],
      "parameters": {
        "functionCode": "// ─── 0. Récupère la racine utile (body si présent) ─────────────────────\nconst root = $json.body ?? $json;   // ← marche avec ou sans \"body\"\n\n// ─── 1. Cherche l'objet \"message\", quel que soit le chemin ─────────────\nlet msg;\n\nif (root.message) {\n  // cas où un Set/Split l’a déjà extrait\n  msg = root.message;\n} else if (root.entry?.[0]?.messaging?.[0]?.message) {\n  // structure brute Facebook\n  msg = root.entry[0].messaging[0].message;\n} else {\n  throw new Error('Impossible de localiser le champ \"message\"');\n}\n\n// ─── 2. Prépare la sortie standardisée ─────────────────────────────────\nlet result;\n\nif (msg.attachments?.[0]) {\n  const att = msg.attachments[0];\n  if (att.type === 'image') {\n    result = { type: 'image', url: att.payload?.url };\n  } else if (att.type === 'audio') {\n    result = { type: 'audio', url: att.payload?.url };\n  } else {\n    result = { type: att.type || 'attachment', url: att.payload?.url };\n  }\n} else if (msg.text) {\n  result = { type: 'text', text: msg.text };\n} else {\n  result = { type: 'unknown' };\n}\n\n// ─── 3. Retourne l'objet pour les nœuds suivants ───────────────────────\nreturn [ result ];"
      },
      "typeVersion": 1
    },
    {
      "id": "4c783fcc-48ab-4381-ba12-d730d7837c30",
      "name": "Modifier Champs1",
      "type": "n8n-nodes-base.set",
      "position": [
        1248,
        784
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5a5d4ec5-61d5-471c-bab7-135528008e6c",
              "name": "user_prompt",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "752e4920-7677-4e78-bef9-1ee55478b33a",
      "name": "Modifier Champs2",
      "type": "n8n-nodes-base.set",
      "position": [
        1632,
        448
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5a5d4ec5-61d5-471c-bab7-135528008e6c",
              "name": "user_prompt",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "391e29fb-4b60-407e-a1f1-db0740fddf14",
      "name": "Modifier Champs3",
      "type": "n8n-nodes-base.set",
      "position": [
        1632,
        112
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5a5d4ec5-61d5-471c-bab7-135528008e6c",
              "name": "user_prompt",
              "type": "string",
              "value": "={{ $json.content }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "66394ce4-5a3d-45a8-8929-a5fe5d8399be",
      "name": "Code1",
      "type": "n8n-nodes-base.code",
      "position": [
        3152,
        448
      ],
      "parameters": {
        "jsCode": "// -------- Build Messenger Payload ----------\n// 1) Récupère le PSID directement depuis ton webhook “Webhook1”\nconst psid = ($node[\"Webhook1\"].json.body?.entry ?? $node[\"Webhook1\"].json.entry)[0]\n               .messaging[0].sender.id;   // ID du client\n\nconst reply = $json.output || 'Réponse vide';   // texte déjà nettoyé par le 1er Code\n\nreturn [{\n  json: {\n    messaging_type: 'RESPONSE',\n    recipient: { id: String(psid) },      //  ← chaîne obligatoire\n    message:   { text: reply }\n  }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "5536e5a6-5b84-4a37-bdd4-a4fa01dc4e2c",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        2784,
        448
      ],
      "parameters": {
        "jsCode": "/**\n * n8n – Code node\n * Mode : Run Once for All Items\n * Objectif :\n *   1. Repère **gras** ou *gras*\n *   2. Convertit le contenu en lettres \"Unicode Bold\"\n *   3. Supprime tous les astérisques\n */\n\nconst FIELD = 'output'; // ← mets ici le nom exact du champ texte\n\n// --- petite fonction de conversion ASCII → Unicode gras\nfunction toUnicodeBold(str) {\n  const upperOffset = 0x1D400 - 0x41;      // A → 𝐀\n  const lowerOffset = 0x1D41A - 0x61;      // a → 𝐚\n  const digitOffset = 0x1D7CE - 0x30;      // 0 → 𝟎\n\n  return str.split('').map(ch => {\n    const code = ch.charCodeAt(0);\n    if (code >= 0x41 && code <= 0x5A) return String.fromCodePoint(code + upperOffset); // A-Z\n    if (code >= 0x61 && code <= 0x7A) return String.fromCodePoint(code + lowerOffset); // a-z\n    if (code >= 0x30 && code <= 0x39) return String.fromCodePoint(code + digitOffset); // 0-9\n    return ch; // ponctuation, espaces…\n  }).join('');\n}\n\nfor (const item of $input.all()) {\n  if (item.json[FIELD]) {\n    item.json[FIELD] = item.json[FIELD]\n      // ► 1. **…**  ou *…*  → conversion + suppression d’astérisques\n      .replace(/\\*{1,2}([^*]+?)\\*{1,2}/gs, (_, txt) => toUnicodeBold(txt))\n\n      // ► 2. S’il reste des astérisques isolés → on les retire\n      .replace(/\\*/g, '');\n  }\n}\n\nreturn $input.all();"
      },
      "typeVersion": 2
    },
    {
      "id": "8e37259a-0d7f-40e6-87a5-d7eafe6c4913",
      "name": "Envoyer Réponse",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3520,
        448
      ],
      "parameters": {
        "url": "https://graph.facebook.com/v17.0/me/messages?access_token=",
        "body": "={{ JSON.stringify($json, null, 0) }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "rawContentType": "application/json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "85bc2e7b-83d3-4481-948b-4e0444d52246",
      "name": "Messager d'Agent IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2160,
        448
      ],
      "parameters": {
        "text": "={{ $json.user_prompt }}",
        "options": {
          "systemMessage": "Tu es un assistant spécialisé.\n- Si la demande nécessite uniquement des calculs mathématiques, financiers ou statistiques : utilise toujours l’outil Calculatrice.\n- Si la demande nécessite une recherche d’information externe (histoire, biographie, faits généraux) : utilise l’outil Wikipédia.\n- Ne mélange pas les deux outils sauf si c’est absolument nécessaire.\n- Lorsque la question contient un montant, un pourcentage, un taux ou une durée : c’est un calcul → utilise uniquement l’outil Calculatrice."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "a09429dd-8e6c-4c85-94c3-c73c8385a6c0",
      "name": "Analyser l'image",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1248,
        112
      ],
      "parameters": {
        "text": "Describe this image.",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "GPT-4O"
        },
        "options": {},
        "resource": "image",
        "inputType": "base64",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "jl5FyiQarFxAvt8F",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "b838533f-1f70-45a1-9785-ea28aacc0822",
      "name": "Webhook1",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -368,
        448
      ],
      "webhookId": "50f8576e-a334-40ae-af63-0cc4fecff1d0",
      "parameters": {
        "path": "Messenger",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "bd67326b-ef8e-48fc-a9da-4c917ad88594",
      "name": "Note Autocollante2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        256
      ],
      "parameters": {
        "width": 336,
        "height": 384,
        "content": "## Webhook1 (Messenger Entry)\n\nReceives Messenger events and starts the processing. Reply “Immediately” to acknowledge fast, then let the flow continue."
      },
      "typeVersion": 1
    },
    {
      "id": "5fd271ca-be10-4830-bc24-7994b9cb74a8",
      "name": "Note Autocollante3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        256
      ],
      "parameters": {
        "width": 336,
        "height": 384,
        "content": "## Identify Message Type (Code)\n\nConverts the Messenger payload into a simple shape: text, image, audio, or unknown. This makes the rest of the flow predictable."
      },
      "typeVersion": 1
    },
    {
      "id": "a44151ae-4d95-47bb-8f9d-2ba746cfd1dd",
      "name": "Note Autocollante",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        256
      ],
      "parameters": {
        "width": 368,
        "height": 384,
        "content": "## Identify and ReRoute Message Types  (Router / Rules)\n\nSends each message down the right lane (image/audio/text). Add a default route for unsupported formats."
      },
      "typeVersion": 1
    },
    {
      "id": "0b132eb3-09ff-4fcf-a11b-4655128298a9",
      "name": "Note Autocollante4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        768,
        -48
      ],
      "parameters": {
        "color": 5,
        "width": 336,
        "height": 320,
        "content": "## Download Image\n\nDownloads the image from the provided URL. If Facebook blocks it, add the Page Token as query or Bearer header."
      },
      "typeVersion": 1
    },
    {
      "id": "3ed9947b-4940-4d4e-a51e-826d4cdb3041",
      "name": "Note Autocollante5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1136,
        -48
      ],
      "parameters": {
        "color": 5,
        "width": 336,
        "height": 320,
        "content": "## Analyze image  (Vision)\n\nUses a vision model to describe the image and produce useful text. "
      },
      "typeVersion": 1
    },
    {
      "id": "8521e4c9-92ac-4e9f-beb0-150a84301a72",
      "name": "Note Autocollante6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        -48
      ],
      "parameters": {
        "color": 5,
        "width": 368,
        "height": 320,
        "content": "## Edit Fields3  (image → prompt)\n\nCopies the image description into user_prompt. Make sure other fields stay available if you need them."
      },
      "typeVersion": 1
    },
    {
      "id": "ef459985-d05b-41ed-b540-166ddfd8320c",
      "name": "Note Autocollante7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        768,
        304
      ],
      "parameters": {
        "color": 5,
        "width": 336,
        "height": 304,
        "content": "## Download Audio\n\nDownloads the audio file from the URL. As with images, add the Page Token if needed."
      },
      "typeVersion": 1
    },
    {
      "id": "b9482f90-0981-46b9-b07f-a95569ee6399",
      "name": "Note Autocollante8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1136,
        304
      ],
      "parameters": {
        "color": 5,
        "width": 336,
        "height": 304,
        "content": "## Audio Transcriber\n\nTranscribes the voice note into clean text. Let auto language detection work when possible."
      },
      "typeVersion": 1
    },
    {
      "id": "59be867f-e5f4-4252-a251-7f20c0654003",
      "name": "Note Autocollante9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        304
      ],
      "parameters": {
        "color": 5,
        "width": 368,
        "height": 304,
        "content": "## Edit Fields2  (audio → prompt)\n\nPuts the audio transcript into user_prompt. You can also trim extra whitespace here."
      },
      "typeVersion": 1
    },
    {
      "id": "26565c46-d336-4a12-a83d-fd06461edacb",
      "name": "Note Autocollante10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1136,
        640
      ],
      "parameters": {
        "color": 5,
        "width": 336,
        "height": 304,
        "content": "## Edit Fields1  (text → prompt)\n\nMaps the user’s text into user_prompt. Optional: truncate overly long messages."
      },
      "typeVersion": 1
    },
    {
      "id": "338acd3a-73e1-479f-85a6-809daa4bca01",
      "name": "Note Autocollante11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2672,
        240
      ],
      "parameters": {
        "width": 336,
        "height": 368,
        "content": "## Code  (post-process bold)\n\nConverts ** … **/ * … * to Unicode bold in output and strips leftover asterisks. Use bold only for headings or key points to keep the message readable."
      },
      "typeVersion": 1
    },
    {
      "id": "4aa7b210-b885-407a-93cc-3c8ec9c1a150",
      "name": "Note Autocollante12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3040,
        240
      ],
      "parameters": {
        "width": 336,
        "height": 368,
        "content": "## Code1  (build Messenger payload)\n\nBuilds the Graph object with recipient.id = <PSID> and message.text = output (messaging_type: \"RESPONSE\"). Ensure the ID is a string and gracefully truncate if the text is too long."
      },
      "typeVersion": 1
    },
    {
      "id": "4d639833-bb9d-447a-9331-f44d20446864",
      "name": "Note Autocollante13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3408,
        240
      ],
      "parameters": {
        "color": 4,
        "width": 352,
        "height": 368,
        "content": "## Send Response  (HTTP → Graph API)\n\nPosts the JSON to /v17.0/me/messages?access_token=PAGE_TOKEN with Content-Type: application/json. On errors (401/403/429), check token/permissions and inspect the node logs."
      },
      "typeVersion": 1
    },
    {
      "id": "5a7944b5-13d4-4fc5-9c68-2430516912dd",
      "name": "Note Autocollante14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1952,
        240
      ],
      "parameters": {
        "color": 3,
        "width": 688,
        "height": 624,
        "content": "## AI Agent + Chat Model + Memory + Tools\n\nThe agent reads user_prompt, applies your System Message, queries the chat model (pick the model and tune temperature / max tokens), and optionally calls Calculator/Wikipedia to produce output. Enable per-user memory (PSID) with sessionId = sender.id to keep context across turns."
      },
      "typeVersion": 1
    },
    {
      "id": "38a8016e-1df7-4337-a8a0-5db52b8e144d",
      "name": "Note Autocollante1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -976,
        -96
      ],
      "parameters": {
        "width": 416,
        "height": 1008,
        "content": "# Automate Messenger in 6 Steps ✨\n\nBuild your first Messenger AI agent !\nIt reads text, photos, and voice notes, then answers like a pro.\n\n### 1) Connect credentials\nAdd your OpenAI API key and Facebook Page Access Token in n8n Credentials (keep them secret).\n\n### 2) Plug the webhook\nCopy the Webhook1 Test URL (POST /messenger) → paste it in Meta › Messenger › Webhooks, verify, and subscribe to messages. Send a test message to your Page.\n\n### 3) Personalize the agent\nIn the AI Agent, write a clear System Message (tone & guardrails), pick the chat model, and tune temperature / max tokens.\n\n### 4) Keep context & add tools\nEnable per-user memory using the PSID so chats persist, and switch on tools like Calculator or Wikipedia if needed.\n\n### 5) Style the replies\nUse asterisks for bold (the post-processor formats it). Keep answers crisp; if media won’t download, ensure the request includes your Page token.\n\n### 6) Ship it\nTest text, photo, and voice note; switch to the Production URL and watch logs/permissions.\n\n## Need help customizing?\n\n👉 [Get in touch](https://www.linkedin.com/in/st%C3%A9phane-bordas-3439b4179/)\n### Launch your first AI agent on Messenger today ! 🚀"
      },
      "typeVersion": 1
    },
    {
      "id": "778d262f-5dfe-4986-9eb0-a94a46a3f771",
      "name": "Note Autocollante15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3136,
        -192
      ],
      "parameters": {
        "width": 608,
        "height": 384,
        "content": "## [Video Tutorial](https://youtu.be/yHNPBDNgk88)  \n@[youtube](yHNPBDNgk88)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "5b201e08-f698-418e-ad26-df60f327cd8a",
  "connections": {
    "5536e5a6-5b84-4a37-bdd4-a4fa01dc4e2c": {
      "main": [
        [
          {
            "node": "66394ce4-5a3d-45a8-8929-a5fe5d8399be",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "66394ce4-5a3d-45a8-8929-a5fe5d8399be": {
      "main": [
        [
          {
            "node": "8e37259a-0d7f-40e6-87a5-d7eafe6c4913",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b838533f-1f70-45a1-9785-ea28aacc0822": {
      "main": [
        [
          {
            "node": "908a01ea-04ba-4711-8aeb-0326abb7b512",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6a045e89-c2c1-4bef-b8bd-35eb6d524ee1": {
      "ai_tool": [
        [
          {
            "node": "85bc2e7b-83d3-4481-948b-4e0444d52246",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "e97f4fe7-b9fd-465b-8229-9a117ce46b81": {
      "ai_tool": [
        [
          {
            "node": "85bc2e7b-83d3-4481-948b-4e0444d52246",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "4c783fcc-48ab-4381-ba12-d730d7837c30": {
      "main": [
        [
          {
            "node": "85bc2e7b-83d3-4481-948b-4e0444d52246",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "752e4920-7677-4e78-bef9-1ee55478b33a": {
      "main": [
        [
          {
            "node": "85bc2e7b-83d3-4481-948b-4e0444d52246",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "391e29fb-4b60-407e-a1f1-db0740fddf14": {
      "main": [
        [
          {
            "node": "85bc2e7b-83d3-4481-948b-4e0444d52246",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a09429dd-8e6c-4c85-94c3-c73c8385a6c0": {
      "main": [
        [
          {
            "node": "391e29fb-4b60-407e-a1f1-db0740fddf14",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d588ba3b-d9db-481a-bfdb-dea8a0d0f275": {
      "ai_memory": [
        [
          {
            "node": "85bc2e7b-83d3-4481-948b-4e0444d52246",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "d7cb9060-af1b-4006-814f-d13d00406bd6": {
      "main": [
        [
          {
            "node": "43dc357f-2e94-4ca4-87dd-bc26c5ca516c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "18493f65-52e0-4438-afba-daaac6f8fabe": {
      "main": [
        [
          {
            "node": "a09429dd-8e6c-4c85-94c3-c73c8385a6c0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "43dc357f-2e94-4ca4-87dd-bc26c5ca516c": {
      "main": [
        [
          {
            "node": "752e4920-7677-4e78-bef9-1ee55478b33a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2ccd1577-6b09-4dba-a008-382833689fab": {
      "ai_languageModel": [
        [
          {
            "node": "85bc2e7b-83d3-4481-948b-4e0444d52246",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "85bc2e7b-83d3-4481-948b-4e0444d52246": {
      "main": [
        [
          {
            "node": "5536e5a6-5b84-4a37-bdd4-a4fa01dc4e2c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "908a01ea-04ba-4711-8aeb-0326abb7b512": {
      "main": [
        [
          {
            "node": "e891d603-5258-47b5-a4de-834a21145aef",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e891d603-5258-47b5-a4de-834a21145aef": {
      "main": [
        [
          {
            "node": "18493f65-52e0-4438-afba-daaac6f8fabe",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "d7cb9060-af1b-4006-814f-d13d00406bd6",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "4c783fcc-48ab-4381-ba12-d730d7837c30",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

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.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds34
Catégorie2
Types de nœuds13
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34