AutomationFlowsAI & RAG › Agent Ia Factures

Agent Ia Factures

Agent IA Factures. Uses telegramTrigger, lmChatOpenAi, agent, airtableTool. Event-driven trigger; 31 nodes.

Event trigger★★★★★ complexityAI-powered31 nodesTelegram TriggerOpenAI ChatAgentAirtable ToolGmail TriggerGoogle DriveOpenAITelegram
AI & RAG Trigger: Event Nodes: 31 Complexity: ★★★★★ AI nodes: yes Added:

This workflow follows the Agent → Airtabletool recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Agent IA Factures",
  "nodes": [
    {
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {
          "download": true,
          "imageSize": "large"
        }
      },
      "type": "n8n-nodes-base.telegramTrigger",
      "typeVersion": 1.1,
      "position": [
        -760,
        -60
      ],
      "id": "4284859a-e18d-4b28-8195-dd262cbf9b9e",
      "name": "Telegram Trigger",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "model": "gpt-4o",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [
        1220,
        220
      ],
      "id": "70501b7d-0345-4a6c-a5e0-8caead0b7a9b",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=requete : {{ $('Synthese Requete').isExecuted ? $json.synthese_requete : \"Envois images Factures\"}}\nProvenance : {{ $json.provenance }}\nURL Google Drive : {{ $('Google Drive2').isExecuted ? $('Google Drive2').item.json.webViewLink:\"Pas n\u00e9cessaire\" }}\nURL Image : {{$('Google Drive2').isExecuted ? $('Google Drive2').item.json.webContentLink : \"Pas n\u00e9cessaire\"}}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "=CONTEXTE\n\nTu es un assistant personnel sp\u00e9cialis\u00e9 dans la gestion comptable d'une entreprise, notamment pour la gestion des factures via Airtable. Tu re\u00e7ois des requ\u00eates relatives \u00e0 la r\u00e9cup\u00e9ration de factures ou \u00e0 l'envoi et l'analyse d'images/PDF de factures. Si la demande ne concerne pas les factures, r\u00e9ponds poliment que tu ne traites pas ce type de demande.\n\nOBJECTIFS\n\nEn fonction de la requ\u00eate, tes actions sont les suivantes :\n\nR\u00e9cup\u00e9ration d'une facture : retrouver une facture dans la base de donn\u00e9es.\nEnvoi d'une facture : analyser une ou plusieurs images/PDF de factures pour en extraire pr\u00e9cis\u00e9ment les informations sur chaque objet achet\u00e9 et les Taxes, puis les ajouter dans la base de donn\u00e9es Airtable.\nL'analyse doit \u00eatre pr\u00e9cise, sans modification des informations extraites.\n\n\u00c9TAPES\n\nAnalyser la requ\u00eate (r\u00e9cup\u00e9ration de facture, envoi de facture, autre).\n\nSi autre demande :\n\nR\u00e9ponds avec un message simple et poli indiquant que tu ne traites pas ce type de demande.\n\nSi r\u00e9cup\u00e9ration de facture :\n\nR\u00e9cup\u00e8re les informations fournies par l'utilisateur pour identifier la facture \u00e0 chercher dans la base de donn\u00e9es. NE REDEMANDE PAS D'INFORMATIONS SUPPL\u00c9MENTAIRES.\n\nUtilise l'outil Chercher Facture pour r\u00e9cup\u00e9rer la facture demand\u00e9e.\n\nEnvoie un message \u00e0 l'utilisateur avec les d\u00e9tails de la ou des factures trouv\u00e9es.\n\nExemple de message :\n\nVoici vos factures associ\u00e9es \u00e0 LDLC :\n\n1. Ticket de caisse LDLC\n   - Montant : 15,96\u20ac\n   - Type : Autres D\u00e9penses\n   - Notes : Achat de connecteurs HDMI\n\n2. LDLC Ticket TK33032400001887\n   - Montant : 16,96\u20ac\n   - Type : Outils\n   - Notes : Adaptateur HDMI et divers frais\n\nSi envoi de facture :\n\nR\u00e9cup\u00e8re l'image ou le PDF de la facture.\nAnalyse pr\u00e9cis\u00e9ment le document pour en extraire tous les \u00e9l\u00e9ments n\u00e9cessaires, y compris les informations sur chaque objet et les taxes.\nUtilise l'outil Creer Facture pour cr\u00e9er la facture dans Airtable avec les informations analys\u00e9es.\nV\u00e9rifie que la facture a bien \u00e9t\u00e9 cr\u00e9\u00e9e.\nR\u00e9cup\u00e8re l'ID Airtable de la facture cr\u00e9\u00e9e (par exemple, \"rec41914dad419\").\nUtilise l'outil Creer Objets pour cr\u00e9er les objets li\u00e9s \u00e0 cette facture dans Airtable, en transmettant l'ID Airtable obtenu.\nApr\u00e8s la cr\u00e9ation des objets, utilise l'outil Creer Taxes pour cr\u00e9er les taxes associ\u00e9es \u00e0 la facture dans Airtable, toujours en utilisant l'ID Airtable appropri\u00e9.\n\nOUTILS\n\nCreer Facture : Cr\u00e9e une facture dans Airtable \u00e0 partir d'une image/PDF.\nCreer Objets : Cr\u00e9e les objets li\u00e9s \u00e0 une facture dans Airtable. N\u00e9cessite l'ID Airtable de la facture.\nCreer Taxes : Cr\u00e9e les entr\u00e9es de taxes associ\u00e9es \u00e0 une facture dans Airtable. N\u00e9cessite l'ID Airtable de la facture.\nChercher Facture : Recherche et r\u00e9cup\u00e8re des factures dans la base de donn\u00e9es Airtable.\nCONTRAINTES\n\nSi aucune information pr\u00e9cise n'est donn\u00e9e sur la facture \u00e0 r\u00e9cup\u00e9rer, r\u00e9f\u00e8re-toi \u00e0 l'historique de conversation pour identifier la derni\u00e8re facture mentionn\u00e9e.\nObligation : Utilise imp\u00e9rativement Creer Facture avant Creer Objets pour \u00e9viter toute erreur.\nApr\u00e8s avoir cr\u00e9\u00e9 les objets avec Creer Objets, utilise Creer Taxes pour ajouter les taxes en tant qu'entr\u00e9es distinctes.\nL'ID transmis aux outils Creer Objets et Creer Taxe doit \u00eatre celui obtenu via Creer Facture.\nToutes les requ\u00eates provenant d'emails concernent forc\u00e9ment des envois de facture.\nL'url de l'image r\u00e9cuperer par l'outil Chercher Facture dans les Pi\u00e9ces jointes doit \u00eatre fournis dans la variable url_image en plus du message quand tu la requete est une r\u00e9cuperation de facture\nQuand on tenvoie des factures tu n'as pas de valeur a mettre dans url_image de ta r\u00e9ponse. Tu dois cependant fournir url d'image pour ajouter la facture \u00e0 Airtable",
          "passthroughBinaryImages": true
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        1440,
        -60
      ],
      "id": "7dab7ba0-1847-4a3c-9ceb-a1043b0e1dcc",
      "name": "AI Agent Factures"
    },
    {
      "parameters": {
        "operation": "create",
        "base": {
          "__rl": true,
          "value": "appkAqp82iD30BcQ9",
          "mode": "list",
          "cachedResultName": "Agent IA Factures",
          "cachedResultUrl": "https://airtable.com/appkAqp82iD30BcQ9"
        },
        "table": {
          "__rl": true,
          "value": "tblYdEy057op7jhgj",
          "mode": "list",
          "cachedResultName": "Factures",
          "cachedResultUrl": "https://airtable.com/appkAqp82iD30BcQ9/tblYdEy057op7jhgj"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Montant": "={{ $fromAI(\"montant_facture\",\"le montant de la facture en euros sans \u20ac\",\"number\") }}",
            "Nom Facture": "={{$fromAI(\"nom_facture\",\"rester simple et tres court\")}}",
            "Notes": "={{$fromAI(\"notes_factures\",\"description breve de ce qu'il y a dans la facture\")}}",
            "Depuis": "={{ $fromAI(\"provenance_facture\",\"valeur possible uniquement : Telegram ou Email\") }}",
            "Type": "={{ $fromAI(\"type_facture\",\"valeur unique possible : Outils,Autres D\u00e9penses,Abonnement\") }}",
            "URL Google Drive": "={{ $fromAI(\"URL_GoogleDrive\",\"L'url Google Drive de la facture\") }}",
            "Piece jonte": "=[{\"url\":\"{{ $fromAI(\"url_image\",\"l'url de l'image pour la t\u00e9l\u00e9charger\")}}\"}]"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Facture ID",
              "displayName": "Facture ID",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": true,
              "removed": true
            },
            {
              "id": "Nom Facture",
              "displayName": "Nom Facture",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Notes",
              "displayName": "Notes",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Piece jonte",
              "displayName": "Piece jonte",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "array",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "URL Google Drive",
              "displayName": "URL Google Drive",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Montant",
              "displayName": "Montant",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "number",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Depuis",
              "displayName": "Depuis",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "options",
              "options": [
                {
                  "name": "Telegram",
                  "value": "Telegram"
                },
                {
                  "name": "Email",
                  "value": "Email"
                }
              ],
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Type",
              "displayName": "Type",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "options",
              "options": [
                {
                  "name": "Autres D\u00e9penses",
                  "value": "Autres D\u00e9penses"
                },
                {
                  "name": "Outils",
                  "value": "Outils"
                },
                {
                  "name": "Abonnement",
                  "value": "Abonnement"
                }
              ],
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Objets",
              "displayName": "Objets",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "array",
              "readOnly": false,
              "removed": true
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.airtableTool",
      "typeVersion": 2.1,
      "position": [
        1660,
        220
      ],
      "id": "aa24c5b2-d05f-401e-9b1d-cf9ad9074123",
      "name": "Creer Facture",
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "create",
        "base": {
          "__rl": true,
          "value": "appkAqp82iD30BcQ9",
          "mode": "list",
          "cachedResultName": "Agent IA Factures",
          "cachedResultUrl": "https://airtable.com/appkAqp82iD30BcQ9"
        },
        "table": {
          "__rl": true,
          "value": "tblrLPJIHFmWCCL6r",
          "mode": "list",
          "cachedResultName": "Objets",
          "cachedResultUrl": "https://airtable.com/appkAqp82iD30BcQ9/tblrLPJIHFmWCCL6r"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Nom Objet": "={{$fromAI(\"nom_item\",\"Le nom de l'item\")}}",
            "Prix": "={{$fromAI(\"prix_item\",\"Prix de l'item\",\"number\")}}",
            "Factures": "=[\"{{$fromAI(\"airtable_id\",\"l'ID Airtable de la facture cr\u00e9\u00e9 par l'outil Creer Facture. Exemple : recRbZpFXB3tmkVkZ\")}}\"]"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Nom Objet",
              "displayName": "Nom Objet",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Prix",
              "displayName": "Prix",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "number",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Factures",
              "displayName": "Factures",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "array",
              "readOnly": false,
              "removed": false
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.airtableTool",
      "typeVersion": 2.1,
      "position": [
        1800,
        220
      ],
      "id": "062c0aa3-3c2a-4e98-a473-aa497f49080b",
      "name": "Creer Objets",
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "search",
        "base": {
          "__rl": true,
          "value": "appkAqp82iD30BcQ9",
          "mode": "list",
          "cachedResultName": "Agent IA Factures",
          "cachedResultUrl": "https://airtable.com/appkAqp82iD30BcQ9"
        },
        "table": {
          "__rl": true,
          "value": "tblYdEy057op7jhgj",
          "mode": "list",
          "cachedResultName": "Factures",
          "cachedResultUrl": "https://airtable.com/appkAqp82iD30BcQ9/tblYdEy057op7jhgj"
        },
        "options": {
          "fields": [
            "Piece jonte",
            "Nom Facture",
            "Montant",
            "Notes"
          ]
        }
      },
      "type": "n8n-nodes-base.airtableTool",
      "typeVersion": 2.1,
      "position": [
        1500,
        220
      ],
      "id": "38b2aeee-fd52-4406-8020-a6cfaf9199f1",
      "name": "Chercher Facture",
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "6c282c63-4467-44c4-bec3-23cf3429f2d3",
              "name": "provenance",
              "value": "={{ $('Gmail Trigger').isExecuted ? \"Email\" : \"Telegram\" }}",
              "type": "string"
            }
          ]
        },
        "includeOtherFields": true,
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1120,
        -60
      ],
      "id": "fdb7d438-d8f4-46e7-b187-847b63dfd03d",
      "name": "Provenance"
    },
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "simple": false,
        "filters": {},
        "options": {
          "downloadAttachments": true
        }
      },
      "type": "n8n-nodes-base.gmailTrigger",
      "typeVersion": 1.2,
      "position": [
        -760,
        240
      ],
      "id": "5fb3c08a-a24e-46ab-9639-2a72144cd40b",
      "name": "Gmail Trigger",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "7f491e4c-4647-42fb-a3d0-afb31e66c397",
              "leftValue": "={{$('Gmail Trigger').item.binary}}",
              "rightValue": "",
              "operator": {
                "type": "object",
                "operation": "exists",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.2,
      "position": [
        -580,
        240
      ],
      "id": "72a73a30-275e-4804-9e8c-289cfc99bb0d",
      "name": "Filter"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "5b87c7fc-fbec-47e9-9a2d-83c4263d2a34",
              "name": "attachments",
              "value": "={{$('Gmail Trigger').item.binary.keys()}}",
              "type": "array"
            },
            {
              "id": "4f545496-f660-4e95-b2a8-f38a1b779770",
              "name": "message_id",
              "value": "={{ $json.id }}",
              "type": "string"
            }
          ]
        },
        "includeOtherFields": true,
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -360,
        240
      ],
      "id": "adea206b-b861-41ca-81b8-1e62eee23a47",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "fieldToSplitOut": "attachments",
        "include": "allOtherFields",
        "options": {
          "includeBinary": true
        }
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        -140,
        240
      ],
      "id": "f4b59ee4-bad3-4b34-8208-6139a38eb798",
      "name": "Split Out"
    },
    {
      "parameters": {
        "inputDataFieldName": "={{ $json.attachments }}",
        "name": "={{$('Gmail Trigger').item.json.subject}}_{{ $json.attachments }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "folderId": {
          "__rl": true,
          "value": "1ykNNH_2QedSs6vle3oOFxdEIoZdNwwKC",
          "mode": "list",
          "cachedResultName": "Agent IA Factures",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1ykNNH_2QedSs6vle3oOFxdEIoZdNwwKC"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        40,
        240
      ],
      "id": "86db4e0e-5c1b-49e0-966e-48ee9920c658",
      "name": "Google Drive",
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "aggregate": "aggregateAllItemData",
        "include": "specifiedFields",
        "fieldsToInclude": "webContentLink,webViewLink",
        "options": {
          "includeBinaries": true
        }
      },
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        720,
        240
      ],
      "id": "23bf531d-4c23-407f-b45d-7360cf79a528",
      "name": "Aggregate"
    },
    {
      "parameters": {
        "operation": "download",
        "fileId": {
          "__rl": true,
          "value": "={{ $json.id }}",
          "mode": "id"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        400,
        240
      ],
      "id": "735dbcfb-0541-4d55-844b-b58597d92978",
      "name": "Google Drive1",
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "audio",
        "operation": "transcribe",
        "options": {
          "language": "fr"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.7,
      "position": [
        -80,
        -240
      ],
      "id": "65e5410e-0d36-4499-ae71-6efccfa38752",
      "name": "OpenAI",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "dddb9d8e-81ad-4fa8-9559-bae70e071a22",
              "name": "requete",
              "value": "={{ $json.text }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        180,
        -240
      ],
      "id": "9bab65fa-f9e8-402e-92be-cd5319f1f0a5",
      "name": "Requete Audio"
    },
    {
      "parameters": {
        "resource": "file",
        "fileId": "={{ $json.message.voice.file_id }}"
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        -300,
        -240
      ],
      "id": "c78308c4-eb85-4c9b-ad14-7721c504d543",
      "name": "Telegram",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n\t\"message\":\"Le message \u00e0 lui envoyer\",\n    \"is_recuperation_facture\":true,\n    \"url_image\":\"Si c'est un r\u00e9cuperation de facture alors l'url de limage pas celle de Google Drive sinon vide\"\n}"
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.2,
      "position": [
        2100,
        220
      ],
      "id": "022b91c9-2c3a-4ded-8710-40e92c480860",
      "name": "Structured Output Parser"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "838a4d06-0066-459f-8fc2-536e82dc9f94",
              "leftValue": "={{ $json.output.is_recuperation_facture }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            },
            {
              "id": "e0baa580-4c9e-4930-b686-42556fa05eab",
              "leftValue": "={{ $json.output.url_image }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        1900,
        -20
      ],
      "id": "ce211533-36c8-45ff-ba14-0bc1865e9376",
      "name": "If1"
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.message.voice }}",
                    "rightValue": "",
                    "operator": {
                      "type": "object",
                      "operation": "exists",
                      "singleValue": true
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Audio"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "6ce13df7-74d1-46dc-a051-a99a13b9d2e8",
                    "leftValue": "={{ $json.message.text }}",
                    "rightValue": "",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    }
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "d7116342-c3e6-4ae3-9ffa-f8b03122f766",
                    "leftValue": "={{ $json.message.photo }}",
                    "rightValue": "",
                    "operator": {
                      "type": "array",
                      "operation": "exists",
                      "singleValue": true
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Image"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [
        -540,
        -60
      ],
      "id": "53aa0088-8077-4c57-8c44-df51c0d9e13d",
      "name": "Switch"
    },
    {
      "parameters": {
        "options": {
          "summarizationMethodAndPrompts": {
            "values": {
              "combineMapPrompt": "=Ecrit la requete suivante de mani\u00e8re concise \n\n{{ $('Requete Audio').isExecuted ? $('Requete Audio').item.json.requete : $json.message.text }}\n\nSYNTHESE CONCISE:",
              "prompt": "=Ecrit la requete suivante de mani\u00e8re concise \n\n{{ $('Requete Audio').isExecuted ? $('Requete Audio').item.json.requete : $json.message.text }}\n\nSYNTHESE CONCISE:"
            }
          }
        }
      },
      "type": "@n8n/n8n-nodes-langchain.chainSummarization",
      "typeVersion": 2,
      "position": [
        400,
        -240
      ],
      "id": "4be16df2-e5e6-41c9-9853-2443fbdd133e",
      "name": "Summarization Chain"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [
        500,
        -100
      ],
      "id": "107d7f0b-a310-485a-be19-78a82f43e31b",
      "name": "OpenAI Chat Model2",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "test2.00"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        1360,
        220
      ],
      "id": "9d8c6ad9-3837-4d2d-bdbd-3774ed7e259d",
      "name": "Window Buffer Memory"
    },
    {
      "parameters": {
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "text": "={{ $('AI Agent Factures').item.json.output.message }}",
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        2500,
        20
      ],
      "id": "208ab473-1053-4150-a027-ee4b2a6300bc",
      "name": "Telegram1",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "aa071b84-83d1-4f8a-becc-2770e72c92ac",
              "name": "synthese_requete",
              "value": "={{ $json.response.text }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        780,
        -240
      ],
      "id": "e711a948-6b5c-44a7-881f-357a1bd6af59",
      "name": "Synthese Requete"
    },
    {
      "parameters": {
        "operation": "sendPhoto",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "binaryData": true,
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        2280,
        -140
      ],
      "id": "89f22a08-5b20-48d9-8a81-758395fd0223",
      "name": "Telegram2",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "url": "={{ $('AI Agent Factures').item.json.output.url_image }}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        2100,
        -140
      ],
      "id": "561742ee-9c5c-4d54-8bd6-46ae1e838f1d",
      "name": "HTTP Request"
    },
    {
      "parameters": {
        "inputDataFieldName": "=data",
        "name": "=Facture_{{ $json.message.message_id }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "folderId": {
          "__rl": true,
          "value": "1ykNNH_2QedSs6vle3oOFxdEIoZdNwwKC",
          "mode": "list",
          "cachedResultName": "Agent IA Factures",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1ykNNH_2QedSs6vle3oOFxdEIoZdNwwKC"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        -40,
        -20
      ],
      "id": "a6204b0f-4c52-4e70-b10d-54e5bcb4e622",
      "name": "Google Drive2",
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "download",
        "fileId": {
          "__rl": true,
          "value": "={{ $('Google Drive2').item.json.id }}",
          "mode": "id"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        420,
        -20
      ],
      "id": "2bba1f9d-f808-4ed8-9832-2909e3526124",
      "name": "Google Drive3",
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "share",
        "fileId": {
          "__rl": true,
          "value": "={{ $json.id }}",
          "mode": "id"
        },
        "permissionsUi": {
          "permissionsValues": {
            "role": "writer",
            "type": "anyone",
            "allowFileDiscovery": true
          }
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [
        180,
        -20
      ],
      "id": "a19cc9af-5d78-470b-8615-1e207d7b375b",
      "name": "Google Drive4",
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "create",
        "base": {
          "__rl": true,
          "value": "appkAqp82iD30BcQ9",
          "mode": "list",
          "cachedResultName": "Agent IA Factures",
          "cachedResultUrl": "https://airtable.com/appkAqp82iD30BcQ9"
        },
        "table": {
          "__rl": true,
          "value": "tblrLPJIHFmWCCL6r",
          "mode": "list",
          "cachedResultName": "Objets",
          "cachedResultUrl": "https://airtable.com/appkAqp82iD30BcQ9/tblrLPJIHFmWCCL6r"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Nom Objet": "Taxe",
            "Prix": "={{$fromAI(\"prix_taxe\",\"Prix de la taxe \",\"number\")}}",
            "Factures": "=[\"{{$fromAI(\"airtable_id\",\"l'ID Airtable de la facture cr\u00e9\u00e9 par l'outil Creer Facture. Exemple : recRbZpFXB3tmkVkZ\")}}\"]"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "Nom Objet",
              "displayName": "Nom Objet",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Prix",
              "displayName": "Prix",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "number",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Factures",
              "displayName": "Factures",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "array",
              "readOnly": false,
              "removed": false
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.airtableTool",
      "typeVersion": 2.1,
      "position": [
        1920,
        220
      ],
      "id": "60022480-a763-4349-8765-1bec5c6c040b",
      "name": "Creer Taxes",
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent Factures",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Creer Facture": {
      "ai_tool": [
        [
          {
            "node": "AI Agent Factures",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Creer Objets": {
      "ai_tool": [
        [
          {
            "node": "AI Agent Factures",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Chercher Facture": {
      "ai_tool": [
        [
          {
            "node": "AI Agent Factures",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Provenance": {
      "main": [
        [
          {
            "node": "AI Agent Factures",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gmail Trigger": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive": {
      "main": [
        [
          {
            "node": "Google Drive1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Provenance",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive1": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "Requete Audio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Requete Audio": {
      "main": [
        [
          {
            "node": "Summarization Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent Factures",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent Factures": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If1": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Telegram1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Summarization Chain",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Google Drive2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Summarization Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Summarization Chain": {
      "main": [
        [
          {
            "node": "Synthese Requete",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Window Buffer Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent Factures",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Synthese Requete": {
      "main": [
        [
          {
            "node": "Provenance",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram2": {
      "main": [
        [
          {
            "node": "Telegram1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Telegram2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive2": {
      "main": [
        [
          {
            "node": "Google Drive4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive3": {
      "main": [
        [
          {
            "node": "Provenance",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive4": {
      "main": [
        [
          {
            "node": "Google Drive3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Creer Taxes": {
      "ai_tool": [
        [
          {
            "node": "AI Agent Factures",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "36408dbe-8902-40af-8901-ba2a192a3ebd",
  "id": "uYvExnwcindYTO2y",
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Agent IA Factures. Uses telegramTrigger, lmChatOpenAi, agent, airtableTool. Event-driven trigger; 31 nodes.

Source: https://github.com/Stirito/N8N_Workflow_Template/blob/3a287db93553c1da2bac6454d4792cdc8bdbc4d1/Agent_IA_Factures.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

BoomerBobBot.TP. Uses agent, telegramTrigger, telegram, memoryBufferWindow. Event-driven trigger; 95 nodes.

Agent, Telegram Trigger, Telegram +10
AI & RAG

Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.

@Blotato/N8N Nodes Blotato, Google Sheets, OpenAI Chat +9
AI & RAG

Arvifund - Supabase. Uses httpRequest, telegram, googleSheets, telegramTrigger. Event-driven trigger; 90 nodes.

HTTP Request, Telegram, Google Sheets +8
AI & RAG

Arvifund - Supabase (Fixed v2). Uses httpRequest, telegram, googleSheets, telegramTrigger. Event-driven trigger; 90 nodes.

HTTP Request, Telegram, Google Sheets +9