Gestion complète de la base de données Airtable avec un agent IA et un stockage Redis

Avancé

Ceci est unAI RAG, Multimodal AIworkflow d'automatisation du domainecontenant 24 nœuds.Utilise principalement des nœuds comme RedisTool, Agent, HttpRequestTool, McpTrigger, ChatTrigger. Gestion complète de la base de données Airtable avec des agents AI et un stockage Redis

Prérequis
  • Informations de connexion au serveur Redis
  • 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
{
  "meta": {
    "instanceId": "1e7a9324ab9334116f824c649ad91453265a99b04bad06eba0c9ec33cc653365"
  },
  "nodes": [
    {
      "id": "2bf31ff0-fdb2-4a63-8cb4-7dd77c25e3a0",
      "name": "create_custom_table",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -432,
        736
      ],
      "parameters": {
        "url": "=https://api.airtable.com/v0/meta/bases/{{ $fromAI('base_id') }}/tables",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"name\": \"{{ $fromAI('table_name') }}\",\n  \"fields\": {{ $fromAI('fields_json') }}\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "toolDescription": "Creates a custom table with user-specified name and fields. For advanced users who want additional tables.\n\n{\n  \"name\": \"Bookings\",\n  \"fields\": [\n    {\"name\": \"Name\", \"type\": \"singleLineText\"},\n    {\"name\": \"Phone Number\", \"type\": \"phoneNumber\"},\n    {\"name\": \"starttime\", \"type\": \"dateTime\", \"options\": {\"dateFormat\": {\"name\": \"european\"}, \"timeFormat\": {\"name\": \"24hour\"}, \"timeZone\": \"utc\"}},\n    {\"name\": \"endtime\", \"type\": \"dateTime\", \"options\": {\"dateFormat\": {\"name\": \"european\"}, \"timeFormat\": {\"name\": \"24hour\"}, \"timeZone\": \"utc\"}},\n    {\"name\": \"eventid\", \"type\": \"singleLineText\"},\n    {\"name\": \"Service\", \"type\": \"singleLineText\"},\n    {\"name\": \"Status\", \"type\": \"singleSelect\", \"options\": {\"choices\": [{\"name\": \"confirmed\"}, {\"name\": \"cancelled\"}, {\"name\": \"completed\"}]}},\n    {\"name\": \"Notes\", \"type\": \"multilineText\"}\n  ]\n}\n\nFor create_custom_table:\n- date fields MUST have: \"options\":{\"dateFormat\":{\"name\":\"iso\"}}\n- dateTime fields MUST have: \"options\":{\"dateFormat\":{\"name\":\"iso\"},\"timeFormat\":{\"name\":\"24hour\"},\"timeZone\":\"utc\"}\n- number fields MUST have: \"options\":{\"precision\":0} or 2\n- singleSelect MUST have: \"options\":{\"choices\":[{\"name\":\"Option1\"}]}",
        "nodeCredentialType": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "wmXRN8LPtIYfZqS2",
          "name": "Airtable N8N"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "4d7a86f7-2e87-4d9d-8f8a-5e6b9cea6e99",
      "name": "rename_table",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -1280,
        1568
      ],
      "parameters": {
        "url": "=https://api.airtable.com/v0/meta/bases/{{ $fromAI('base_id') }}/tables/{{ $fromAI('table_id') }}",
        "method": "PATCH",
        "options": {},
        "jsonBody": "={\n  \"name\": \"{{ $fromAI('new_name') }}\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "toolDescription": "Rename an existing table in the Airtable base. Requires base_id, table_id, and new_name.",
        "nodeCredentialType": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "wmXRN8LPtIYfZqS2",
          "name": "Airtable N8N"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "198daf19-98d5-45ab-b025-b0fec8f8db16",
      "name": "get_existing_records",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -1648,
        1104
      ],
      "parameters": {
        "url": "=https://api.airtable.com/v0/{{ $fromAI('base_id') }}/{{ $fromAI('table_id') }}",
        "options": {},
        "authentication": "predefinedCredentialType",
        "toolDescription": "Gets current records from a specific table. Requires base_id and table_id. Use before updating records to show user current values.",
        "nodeCredentialType": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "wmXRN8LPtIYfZqS2",
          "name": "Airtable N8N"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "71d07559-3927-402c-9527-a3ac209c83a1",
      "name": "get_table_ids",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -1648,
        1296
      ],
      "parameters": {
        "url": "=https://api.airtable.com/v0/meta/bases/{{ $fromAI('base_id') }}/tables",
        "options": {},
        "authentication": "predefinedCredentialType",
        "toolDescription": "Fetches all table IDs and names from the base. Critical for getting table_id needed for data operations. Use after creating tables and before adding/updating records.",
        "nodeCredentialType": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "wmXRN8LPtIYfZqS2",
          "name": "Airtable N8N"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "87f84943-3ecf-4d37-88c8-58652cd3409d",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1840,
        800
      ],
      "parameters": {
        "color": 4,
        "width": 496,
        "height": 624,
        "content": "### 📖 READ OPERATIONS\n\nView & Retrieve Data:\n- get_existing_records - Shows all records from any table\n- get_table_ids - Fetches all table names, IDs, and field info from base\n\nUse for: Viewing data, checking table structure, getting IDs for operations"
      },
      "typeVersion": 1
    },
    {
      "id": "50965ac1-256d-452c-b7f7-57a80c7b6386",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1840,
        1456
      ],
      "parameters": {
        "color": 5,
        "width": 880,
        "height": 256,
        "content": "### ✏️ UPDATE OPERATIONS\n\nModify Existing Data:\n- update_record - Updates any record with new field values\n- rename_table - Changes table names\n- rename_fields - Changes field/column names\n\nUse for: Editing records, renaming structure elements"
      },
      "typeVersion": 1
    },
    {
      "id": "5c39b558-961b-4828-be8d-17a9cd5bba63",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -784,
        1456
      ],
      "parameters": {
        "color": 3,
        "width": 640,
        "height": 256,
        "content": "🗑️ DELETE OPERATIONS\n\nRemove Data (Permanent):\n- delete_record - Deletes specific services permanently  \n\n⚠️ WARNING: All delete operations are PERMANENT"
      },
      "typeVersion": 1
    },
    {
      "id": "ab251dd7-4686-44e1-a601-6fc5074e247c",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        432
      ],
      "parameters": {
        "color": 6,
        "width": 496,
        "height": 976,
        "content": "### ➕ CREATE OPERATIONS\n\nBuild Database Structure:\n- create_base - Creates new Airtable base (needs workspace_id)\n- create_custom_table - Creates tables with any field structure\n- add_field - Adds new fields to existing tables\n- create_record - Adds records with flexible field values\n\nUse for: Setting up databases, adding tables, inserting data"
      },
      "typeVersion": 1
    },
    {
      "id": "e1cd5c63-31df-4e5e-a014-75f5cf168ee9",
      "name": "Redis Chat Mémoire",
      "type": "@n8n/n8n-nodes-langchain.memoryRedisChat",
      "position": [
        -1280,
        2176
      ],
      "parameters": {
        "sessionKey": "=salon_owner_agent",
        "sessionIdType": "customKey",
        "contextWindowLength": 15
      },
      "credentials": {
        "redis": {
          "id": "TGXwMeCNAC8NdQNU",
          "name": "Redis account"
        }
      },
      "typeVersion": 1.5
    },
    {
      "id": "63854117-36a6-4a3b-a90a-08fdc3ed6e76",
      "name": "Airtable Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1200,
        1840
      ],
      "parameters": {
        "text": "={{ $json.chatInput }}",
        "options": {
          "systemMessage": "=You are an Airtable Database Assistant helping users create and manage Airtable databases.\n\n## Storage Tools Available:\n- get_base_id / set_base_id - Store and retrieve base IDs\n- get_workspace_id / set_workspace_id - Store and retrieve workspace ID\n\n## For EXISTING databases:\n1. Use get_base_id to check for stored base ID\n2. If found, use that base_id for all operations\n3. User only needs to provide base_id (NO workspace needed)\n\n## For NEW database creation ONLY:\n1. Check get_workspace_id for stored workspace\n2. If not found, ask user for workspace_id ONCE\n3. Store it with set_workspace_id for future use\n4. Create base with workspace_id\n5. Store new base_id with set_base_id\n\n## Important:\n- Only ask for workspace_id when creating NEW bases\n- For existing bases, ONLY need base_id\n- Always check stored values first before asking user\n- Store IDs after getting them to avoid asking again\n\n## Process Guidelines:\n- Be conversational and guide step-by-step\n- Create working system first, then customize\n- Use plain text only. No markdown formatting or asterisks\n- Don't assume what they want to change, ask for clarification\n- Fetch table IDs before operations unless stored in memory\n- Never lie or invent just to please the user\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2.1
    },
    {
      "id": "923e63e8-b6fc-4199-840e-e7fc13b657f3",
      "name": "gpt-5-mini",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1472,
        2176
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini",
          "cachedResultName": "gpt-5-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "yFsTgVI1r1htMsxI",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "602ce2b4-dd59-42c0-b5fe-dcf4b3bdbc7b",
      "name": "À la réception du message",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -1552,
        1840
      ],
      "webhookId": "47c9de1d-71db-4906-a52a-d96e0126ae77",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "9b06d16d-200a-493e-b9d6-ac029dd54086",
      "name": "MCP Client",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        -496,
        2176
      ],
      "parameters": {
        "endpointUrl": "https://primary-production-8fde8.up.railway.app/mcp/airtable-database-builder-mcp",
        "serverTransport": "httpStreamable"
      },
      "typeVersion": 1.1
    },
    {
      "id": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
      "name": "MCP Server Trigger",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        -1120,
        896
      ],
      "webhookId": "97f2d73e-dfec-40b9-89b5-5af6a43b32c1",
      "parameters": {
        "path": "airtable-database-builder-mcp"
      },
      "typeVersion": 2
    },
    {
      "id": "18f9e358-1a5e-4be3-afff-325c00a07cf6",
      "name": "delete_record",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -288,
        1552
      ],
      "parameters": {
        "url": "=https://api.airtable.com/v0/{{ $fromAI('base_id') }}/{{ $fromAI('table_id') }}/{{ $fromAI('record_id') }}",
        "method": "DELETE",
        "options": {},
        "authentication": "predefinedCredentialType",
        "toolDescription": "Deletes a specific record from Services table. Requires base_id, table_id, and record_id.",
        "nodeCredentialType": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "wmXRN8LPtIYfZqS2",
          "name": "Airtable N8N"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a5ca9a63-5da9-4b2f-84b4-bbcebfbe48ab",
      "name": "create_record",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -432,
        896
      ],
      "parameters": {
        "url": "=https://api.airtable.com/v0/{{ $fromAI('base_id') }}/{{ $fromAI('table_id') }}",
        "method": "POST",
        "options": {},
        "jsonBody": "={\"records\": [{\"fields\": {{ $fromAI('fields_json') }}}]}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "toolDescription": "Adds a new service to the Services table. Requires base_id and table_id. Required params: service_name, price. Use after getting table_ids to populate services.",
        "nodeCredentialType": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "wmXRN8LPtIYfZqS2",
          "name": "Airtable N8N"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "191bd7d2-38f4-4122-864a-158c38b885cf",
      "name": "update_record",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -432,
        1248
      ],
      "parameters": {
        "url": "=https://api.airtable.com/v0/{{ $fromAI('base_id') }}/{{ $fromAI('table_id') }}",
        "method": "POST",
        "options": {},
        "jsonBody": "={\"fields\": {{ $fromAI('fields_json') }}}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "toolDescription": "Adds a new service to the Services table. Requires base_id and table_id. Required params: service_name, price. Use after getting table_ids to populate services.",
        "nodeCredentialType": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "wmXRN8LPtIYfZqS2",
          "name": "Airtable N8N"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fe4aff37-0b9b-479e-9a37-b07e4537d5bf",
      "name": "create_base",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -432,
        1056
      ],
      "parameters": {
        "url": "https://api.airtable.com/v0/meta/bases",
        "method": "POST",
        "options": {},
        "jsonBody": "={\"name\": \"{{ $fromAI('base_name') }}\", \"workspaceId\": \"{{ $fromAI('workspace_id') }}\", \"tables\": [{\"name\":\"Main\",\"fields\":[{\"name\":\"Name\",\"type\":\"singleLineText\"}]}]}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "toolDescription": "Create a base with Workspace ID:\n\nWhen creating bases with tables_json, use only these exact field types:\n- singleLineText (for text)\n- multilineText (for long text - NOT multiLineText)\n- number (for numbers)\n- phoneNumber (for phone - NOT phone)\n- email (for emails)\n- date (for dates only)\n- dateTime (for date and time)\n- singleSelect (needs options)\n- multipleSelect (needs options)\n\nDO NOT use:\n- multiLineText (wrong capitalization)\n- phone (use phoneNumber)\n- linkedRecord fields (add after base creation)\n- \"primary\" property (automatic)\n\n\nFor number fields, MUST include options:\n{\"name\": \"Price\", \"type\": \"number\", \"options\": {\"precision\": 2}}\n- precision: 0 for integers\n- precision: 2 for money/decimals\n\nExample valid tables_json:\n[{\"name\":\"Services\",\"fields\":[{\"name\":\"ServiceName\",\"type\":\"singleLineText\"},{\"name\":\"Description\",\"type\":\"multilineText\"}, ",
        "nodeCredentialType": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "wmXRN8LPtIYfZqS2",
          "name": "Airtable N8N"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3cf80b36-0a67-41aa-ae9e-c5b847cb3563",
      "name": "set_workspace_id",
      "type": "n8n-nodes-base.redisTool",
      "position": [
        -1088,
        2176
      ],
      "parameters": {
        "key": "=workspace_id",
        "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Value', `Store Workspace ID`, 'string') }}",
        "operation": "set",
        "descriptionType": "manual",
        "toolDescription": "Store Workspace ID"
      },
      "credentials": {
        "redis": {
          "id": "TGXwMeCNAC8NdQNU",
          "name": "Redis account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f6a633cb-6031-4c77-8a7c-8d2e213b382d",
      "name": "get_workspace_id",
      "type": "n8n-nodes-base.redisTool",
      "position": [
        -912,
        2176
      ],
      "parameters": {
        "key": "=workspace_id",
        "options": {},
        "operation": "get",
        "propertyName": "WorkspaceID",
        "descriptionType": "manual",
        "toolDescription": "Get Workspace ID"
      },
      "credentials": {
        "redis": {
          "id": "TGXwMeCNAC8NdQNU",
          "name": "Redis account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7ccbd0fa-8c0e-4f3a-9632-e6a12412327a",
      "name": "get_base_id",
      "type": "n8n-nodes-base.redisTool",
      "position": [
        -624,
        2176
      ],
      "parameters": {
        "key": "=base_id",
        "options": {},
        "operation": "get",
        "propertyName": "BaseID",
        "descriptionType": "manual",
        "toolDescription": "Get Base ID"
      },
      "credentials": {
        "redis": {
          "id": "TGXwMeCNAC8NdQNU",
          "name": "Redis account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f6a1c55c-8cae-424d-a947-877903f614ad",
      "name": "set_base_id",
      "type": "n8n-nodes-base.redisTool",
      "position": [
        -768,
        2176
      ],
      "parameters": {
        "key": "=base_id",
        "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Value', `Store Base ID`, 'string') }}",
        "operation": "set",
        "descriptionType": "manual",
        "toolDescription": "Store Base ID"
      },
      "credentials": {
        "redis": {
          "id": "TGXwMeCNAC8NdQNU",
          "name": "Redis account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "548aaf33-852a-4bf7-bea8-a1b964b522b0",
      "name": "rename_fields",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -1120,
        1568
      ],
      "parameters": {
        "url": "=https://api.airtable.com/v0/meta/bases/{{ $fromAI('base_id') }}/tables/{{ $fromAI('table_id') }}/fields/{{ $fromAI('field_id') }}",
        "method": "PATCH",
        "options": {},
        "jsonBody": "={\"name\": \"{{ $fromAI('new_field_name') }}\", \"description\": \"{{ $fromAI('description') }}\"}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "toolDescription": "Rename a field/column in a table. Requires base_id, table_id, field_id, and new_name",
        "nodeCredentialType": "airtableTokenApi"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "wmXRN8LPtIYfZqS2",
          "name": "Airtable N8N"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "74eeee0e-0f2d-42b5-8248-925a3818fac8",
      "name": "Note adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2320,
        800
      ],
      "parameters": {
        "color": 7,
        "width": 432,
        "height": 2128,
        "content": "## 📌 AIRTABLE ID GUIDE\n\n### What IDs do I need?\n\n#### Working with EXISTING base:\n- **Base ID only** (starts with `app...`)\n- Example: `appHt4tJ6HTCmLOKV`\n- Find it: Airtable URL when viewing your base\n\n#### Creating NEW base:\n- **Workspace ID** (starts with `wsp...`)\n- Example: `wspyMkHTZGijmTTsH`\n- Find it: Airtable workspace settings\n\n### Where to find your IDs:\n\n#### Base ID:\n1. Open your base in Airtable\n2. Look at URL: `airtable.com/appXXXXXXXXXXXXXX/...`\n3. The `appXXXXXXXXXXXXXX` part is your base ID\n\n#### Workspace ID:\n1. Go to Airtable workspace settings\n2. Click \"Workspace settings\"\n3. Find workspace ID in the URL or settings page\n   - Example: `https://airtable.com/workspaces/wspyMkHTZGijmTT11`\n\n### First time setup:\n- Provide your workspace ID once (stored for future use)\n- Each base ID you use will be stored\n- System remembers your IDs - no need to repeat\n\n### Common operations:\n- **View/edit records** → Base ID only\n- **Create tables** → Base ID only\n- **Create new base** → Workspace ID only\n\n\n## Getting your Airtable token\n1. Go to https://airtable.com/create/tokens\n2. Click \"Create new token\"\n3. Name it (e.g., \"n8n Integration\")\n4. Add these scopes:\n   - data.records:read\n   - data.records:write\n   - schema.bases:read\n   - schema.bases:write\n5. Add access to all workspaces or specific ones\n6. Copy the token (starts with pat...)\n7. In n8n, create \"Airtable Personal Access Token API\" credential\n8. Paste your token there\n\n## Setting up Redis (for ID storage)\n\n### Create free Redis database:\n1. Go to https://console.upstash.com\n2. Sign up for free account (10,000 commands/day free)\n3. Click \"Create Database\"\n4. Choose:\n   - Name: Any name (e.g., \"n8n-airtable\")\n   - Region: Closest to you\n   - Type: Regional (not Global)\n5. Click \"Create\"\n\n### Get connection details:\n1. In your database dashboard, find:\n   - **Endpoint**: something like `usw1-settling-cat-12345.upstash.io`\n   - **Port**: `6379` (default)\n   - **Password**: Click \"Show\" to reveal\n\n### Connect to n8n:\n1. In n8n, create new credential\n2. Choose \"Redis\"\n3. Fill in:\n   - **Host**: Your endpoint (without https://)\n   - **Port**: 6379\n   - **Password**: Your password from Upstash\n   - **SSL**: Toggle ON (required for Upstash)\n4. Click \"Save\"\n\n### Why Redis?\n- Stores your workspace and base IDs\n- Prevents asking for same IDs repeatedly\n- Maintains state between workflow runs\n- Free tier is more than enough for this use"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "9b06d16d-200a-493e-b9d6-ac029dd54086": {
      "ai_tool": [
        [
          {
            "node": "63854117-36a6-4a3b-a90a-08fdc3ed6e76",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "923e63e8-b6fc-4199-840e-e7fc13b657f3": {
      "ai_languageModel": [
        [
          {
            "node": "63854117-36a6-4a3b-a90a-08fdc3ed6e76",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "fe4aff37-0b9b-479e-9a37-b07e4537d5bf": {
      "ai_tool": [
        [
          {
            "node": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "7ccbd0fa-8c0e-4f3a-9632-e6a12412327a": {
      "ai_tool": [
        [
          {
            "node": "63854117-36a6-4a3b-a90a-08fdc3ed6e76",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "f6a1c55c-8cae-424d-a947-877903f614ad": {
      "ai_tool": [
        [
          {
            "node": "63854117-36a6-4a3b-a90a-08fdc3ed6e76",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "4d7a86f7-2e87-4d9d-8f8a-5e6b9cea6e99": {
      "ai_tool": [
        [
          {
            "node": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "a5ca9a63-5da9-4b2f-84b4-bbcebfbe48ab": {
      "ai_tool": [
        [
          {
            "node": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "18f9e358-1a5e-4be3-afff-325c00a07cf6": {
      "ai_tool": [
        [
          {
            "node": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "71d07559-3927-402c-9527-a3ac209c83a1": {
      "ai_tool": [
        [
          {
            "node": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "548aaf33-852a-4bf7-bea8-a1b964b522b0": {
      "ai_tool": [
        [
          {
            "node": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "191bd7d2-38f4-4122-864a-158c38b885cf": {
      "ai_tool": [
        [
          {
            "node": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "63854117-36a6-4a3b-a90a-08fdc3ed6e76": {
      "main": [
        []
      ]
    },
    "f6a633cb-6031-4c77-8a7c-8d2e213b382d": {
      "ai_tool": [
        [
          {
            "node": "63854117-36a6-4a3b-a90a-08fdc3ed6e76",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "3cf80b36-0a67-41aa-ae9e-c5b847cb3563": {
      "ai_tool": [
        [
          {
            "node": "63854117-36a6-4a3b-a90a-08fdc3ed6e76",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Redis Chat Memory": {
      "ai_memory": [
        [
          {
            "node": "63854117-36a6-4a3b-a90a-08fdc3ed6e76",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "2bf31ff0-fdb2-4a63-8cb4-7dd77c25e3a0": {
      "ai_tool": [
        [
          {
            "node": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "198daf19-98d5-45ab-b025-b0fec8f8db16": {
      "ai_tool": [
        [
          {
            "node": "ddce06f4-7e87-4915-8ea4-99b5de8cc42e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "63854117-36a6-4a3b-a90a-08fdc3ed6e76",
            "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é - RAG IA, 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œuds24
Catégorie2
Types de nœuds9
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