Ce tutoriel explique comment automatiser le traitement des factures en extrayant les données des PDF téléchargés sur Google Drive.
Il utilise n8n, un outil d'automatisation des flux de travail, et l'API Mistral OCR, un service d'extraction de texte basé sur l'IA, pour extraire les détails des factures, faire correspondre les champs, convertir les devises en USD si nécessaire et tout enregistrer dans une Google Sheet.
Les professionnels peuvent ainsi gagner des heures sur des tâches financières répétitives grâce à cette configuration pratique.
Objectifs principaux
- Configurer n8n pour qu'il se déclenche lors du téléchargement de nouvelles factures PDF dans un dossier Google Drive.
- Extraire le texte des PDF en utilisant l'API OCR de Mistral.
- Convertir les montants non-USD en USD.
- Ajouter automatiquement les données des factures à une Google Sheet.
Étape 1 - Créer un dossier Google Drive et une Sheet pour les factures
Commencez par créer une nouvelle Google Sheet pour stocker les données des factures. Créez une nouvelle Google Sheet et ajoutez ces colonnes :
- Numéro de facture
- URL de la facture
- Date
- Fournisseur
- Postes de dépense
- Monnaie d'origine
- Montant d'origine
- Montant (USD)
- Description
- Notes

Ensuite, nous avons besoin d'un espace dédié dans Google Drive pour vos factures PDF. Cliquez sur "New" et sélectionnez "Folder". Donnez-lui un nom clair, comme "Mes Factures 2025". Après l'avoir créé, ouvrez le dossier et regardez l'URL dans votre navigateur. L'ID du dossier est la chaîne après "folders/" - par exemple, dans "https://drive.google.com/drive/folders/abcd12343", "abcd1234" est l'ID. Copiez cet ID, car vous en aurez besoin plus tard pour indiquer à n8n quel dossier surveiller.
Vérifiez que vous avez les permissions d'accès à ce dossier, et réservez-le exclusivement aux factures pour éviter de traiter des fichiers non pertinents.
Gardez la Google Sheet en dehors du dossier de factures PDF pour éviter les problèmes de déclenchement.

Étape 2 - Configurer n8n pour détecter les nouveaux PDF
Ensuite, configurez n8n pour qu'il vérifie toutes les minutes la présence de nouveaux PDF dans votre dossier Google Drive. Cette fréquence de vérification est idéale pour les tests, même si vous pourrez l'ajuster plus tard en production. Ouvrez n8n et créez un nouveau workflow à partir de zéro.

Ajoutez un nœud déclencheur "Google Drive" avec l'option "On changes involving a specific folder".

Configurez-le pour surveiller les événements "File Created", changez le dossier pour "By ID", collez l'ID du dossier de l'étape 1 dans le champ correspondant, et réglez l'intervalle de vérification à 1 minute.

Appuyez sur "ESC" et sauvegardez votre travail.

Pour faire fonctionner ce nœud, vous devrez vous authentifier avec Google Drive en utilisant OAuth 2.0. Dans n8n, allez dans "Credentials", accessible également depuis le menu principal, et cliquez sur "Create credential".

Sur l'écran suivant, sélectionnez "Google Drive OAuth2 API".

Les étapes suivantes nécessitent la création d'identifiants Google sur Google Cloud Platform (GCP). Les instructions détaillées pour ce processus plus long sont disponibles dans la documentation n8n qui comprend également une vidéo à suivre.
Étapes à suivre
- Générez et sauvegardez les identifiants reçus de GCP.
- Liez ces identifiants au nœud déclencheur dans n8n.
- Ajoutez l'URL de redirection OAuth dans GCP.
Pour finir
- Cliquez sur "Save", puis sur "Sign in with Google".
- Sur l'écran de consentement OAuth, autorisez l'accès à votre compte Gmail.

Maintenant, téléchargez un PDF dans notre dossier de factures et cliquez sur "Fetch Test Event", ce qui devrait vous montrer quelque chose de similaire à la capture d'écran ci-dessous.

Parfait ! Nous avons maintenant configuré un déclencheur qui s'active à chaque téléchargement de fichier.
Vous pouvez également sauvegarder le workflow, le définir comme "Active" et surveiller les nouveaux téléchargements de fichiers dans le panneau Executions sur la gauche.

Étape 3 - Créer un Agent AI n8n
De retour dans l'éditeur, ajoutez un Agent "Advanced AI" pour gérer l'ensemble du processus en cliquant sur le signe + de notre déclencheur Google Drive.

Ajoutez un nœud Tool Agent et utilisez ce Prompt (User Message) pour le guider :
Voici l'URL du PDF importé qui nécessite une OCR https://drive.google.com/uc?export=download&id={{ $json.id }}.
Le champ d'expression peut être extrait du schéma INPUT depuis notre nœud Google Drive.

Étape 4 - Large Language Model (LLM) et considérations relatives à la mémoire
Maintenant, nous devons ajouter le "cerveau" à notre agent IA - un LLM. Cliquez sur le signe + pour ajouter un Chat Model (LLM) à notre agent IA.

Choisissez "OpenAI" comme fournisseur de Chat Model pour l'agent et sélectionnez le modèle "4o-mini". Ajoutez vos identifiants OpenAI en utilisant une clé API créée sur leur plateforme.

Le modèle GPT 4o-mini est suffisamment intelligent pour notre tâche, rapide et économique.
Comme nous traitons chaque facture indépendamment sans contexte conversationnel, il n'est pas nécessaire d'activer la mémoire comme un buffer de fenêtre—laissez-la simplement désactivée. Pendant une seule exécution qui, dans notre cas, impliquera plusieurs requêtes d'outils, l'agent IA maintient un contexte interne pour gérer efficacement ces interactions.
Étape 5 - Obtenir une clé API Mistral
Pour utiliser Mistral OCR, vous aurez besoin d'une clé API de Mistral AI. Mistral OCR est un outil de pointe qui excelle dans l'extraction de texte à partir de documents complexes, notamment les factures aux mises en page variées ou même les notes manuscrites. Il est multilingue par nature et gère mieux les tableaux, les images et le formatage avancé que les solutions OCR traditionnelles, ce qui le rend idéal pour nos différents formats de factures.
Rendez-vous sur https://mistral.ai/ et créez un compte. Une fois connecté, accédez à la section API Keys dans votre tableau de bord et générez une clé API.

Copiez-la de manière sécurisée - vous en aurez besoin à l'étape suivante.
Étape 6 - Créer l'outil Mistral OCR dans n8n
Donnons à l'Agent IA un outil HTTP Request pour extraire le texte des PDF.

Renommez le nœud "HTTP Request Mistral OCR". Définissez sa description comme suit : "Extract text from a PDF document. Requires the document URL".

Configurez la requête HTTP avec ces paramètres :
Method: POST
URL: https://api.mistral.ai/v1/ocr
Headers:
- Authorization: Bearer <Mistral_API_key> (remplacer <Mistral_API_key> par votre clé)
- Content-Type: application/json

Ajoutez l'expression JSON suivante :

En définissant "include_image_base64" sur false, nous nous assurons de ne recevoir que du texte, sans données d'image, ce qui permet de garder une sortie légère. Le résultat de l'OCR peut sembler un peu désordonné — avec des sauts de ligne aléatoires ou un formatage mixte — mais ce n'est pas un problème.
La force de l'Agent IA réside dans sa capacité à analyser cette sortie brute avec le LLM pour trouver les détails clés de la facture, ce qui représente un avantage considérable lors du traitement de factures variées ou manuscrites.
Considération de sécurité
Pour plus de simplicité, nous avons ajouté la clé API directement dans l'en-tête du nœud. Pour masquer la clé API des exportations de workflow, nous recommandons de créer des identifiants pour chaque appel API depuis la page Overview > Credentials. Choisissez "New Credential", sélectionnez "Header Auth" puis ajoutez le nom et la valeur.


Dans votre nœud, sélectionnez Authentification > Generic Credential Type > Header Auth et choisissez les identifiants que vous avez créés précédemment.

Étape 7 - Ajouter la conversion de devises avec CurrencyFreaks
Si une facture n'est pas en USD, nous laisserons l'agent IA effectuer la conversion en utilisant l'API CurrencyFreaks.
Inscrivez-vous sur https://currencyfreaks.com/ pour obtenir une clé API gratuite.

L'agent n'utilisera cet outil que si la devise de la facture n'est pas en USD. Il récupérera les taux de change du jour et effectuera lui-même les calculs de conversion. Certains modèles d'IA ayant du mal avec les mathématiques, essayez d'ajouter l'outil calculateur n8n si les conversions de devises échouent.
Dans le nœud AI Agent, ajoutez un autre outil HTTP Request nommé "Currency Conversion Rates", et définissez sa description comme suit : "Get the latest exchange rate for a given currency to USD."
Configurez-le comme une requête HTTP :
Method: GET
URL: https://api.currencyfreaks.com/v2.0/rates/latest
Envoyer les paramètres de requête :
- Nom : "apikey"
- Valeur : <currency_api_key> remplacer ceci avec l'API reçue de CurrencyFreaks

Voilà pour le deuxième appel API.
Pour rendre votre agent IA encore plus intelligent, vous pouvez ajuster son prompt système pour prendre en compte le pays ou l'adresse de la facture. Certaines devises hors États-Unis utilisent également le symbole "$", ce qui peut entraîner des erreurs de classification. En instruisant l'agent à vérifier les indices de localisation - comme une adresse à Singapour - il peut automatiquement reconnaître la devise comme étant des dollars singapouriens et déclencher la conversion correcte en USD. Ce petit ajustement peut faire passer votre automatisation de bonne à surhumaine !
Étape 8 - Enregistrer les données de facture dans Google Sheets
Ensuite, nous allons ajouter un outil Google Sheets pour ajouter les informations de facture dans notre feuille de calcul. Commencez par modifier la description de l'outil en "Set Manually", saisissez "Append invoice information to an existing google sheet", et définissez l'opération sur "Append or Update Row". Choisissez le document et la feuille appropriés pour notre feuille de factures. Comme le résultat de l'OCR peut utiliser différents noms, nous laissons le LLM décider. Cependant, nous n'utiliserons pas le mode de mappage des colonnes "Map automatically" car cela n'a pas produit le résultat souhaité dans notre cas. À la place, utilisez "Map Each Column Manually" et nous utilisons l'URL vers la facture comme identifiant unique.

Maintenant, définissez la valeur de chaque colonne sur "Defined automatically by the model" en utilisant l'icône étoile IA.

Cela permet à l'agent de mapper de manière flexible les champs de facture aux colonnes, même si les formats de facture diffèrent. Il est possible que Google Sheets nécessite l'ajout d'autorisations supplémentaires dans GCP pour l'accès en lecture et écriture.
Étape 9 - Définir la tâche de l'Agent IA
Expliquez à l'Agent IA ce qu'il doit faire à l'aide d'un message système clair. Dans le nœud AI Agent, définissez le prompt suivant :
# Rôle
Tu es un agent IA qui traite les PDF de factures téléchargés sur Google Drive.
# Déclencheur
Tu as été déclenché par le téléchargement d'un nouveau PDF. Il n'y a pas d'humain dans la boucle, donc exécute toutes les étapes sans demander.
# Outils et Étapes
**Étape 1 :** Outil Mistral OCR API
- Reçoit l'URL du document et renvoie en markdown les informations extraites de la facture.
**Étape 2 (optionnelle) :** Outil API de Conversion de Devise
- Si le markdown de la facture contient des informations sur une devise autre que USD, appelle l'outil pour les taux de conversion via API.
**Étape 3 (obligatoire) :** Outil Google Sheets
- Ajoute une nouvelle ligne avec l'outil Google Sheet et associe autant d'informations que possible.
# IMPORTANT
Invoque l'outil OCR une seule fois par exécution/téléchargement de PDF.
La rédaction des prompts au format Markdown aide à les structurer correctement et améliore la compréhension de l'IA.

Dépanner l'Agent IA
En cas d'erreurs ou de résultats incorrects, il est utile d'examiner les Executions en double-cliquant sur n'importe quel nœud.

Visualiser l'INPUT et l'OUTPUT aide à résoudre les problèmes. Voici un exemple avec l'outil Google Sheets.

Les problèmes courants peuvent être : un ID de dossier incorrect dans le déclencheur Google Drive, des problèmes d'authentification avec Google Drive ou Sheets, des clés API invalides pour Mistral ou CurrencyFreaks, ou une utilisation incorrecte des outils par l'agent.
Pour tester les APIs séparément, vous pouvez utiliser Postman ou d'autres outils.
Pour l'API Mistral OCR :
Ce contenu semble être une commande curl avec des paramètres techniques et ne nécessite pas de traduction selon les règles données, car il contient uniquement :
- Des commandes techniques (curl, POST)
- Des URL
- Des paramètres API
- Du code JSON
Il doit donc rester tel quel, en anglais.
Pour l'API CurrencyFreaks :
curl -X GET "https://api.currencyfreaks.com/v2.0/rates/latest?apikey=<currency_api_key>"
Note : Ce prompt contient uniquement une commande curl et une URL d'API, il n'y a donc rien à traduire selon les règles données.
N'oubliez pas de remplacer <Mistral_API_key>, <file_id>, et <currency_api_key> par vos véritables valeurs. Pour tester rapidement l'OCR sans Google Drive, essayez un PDF public comme https://arxiv.org/pdf/2201.04234.
Une fois configuré, le workflow s'exécute automatiquement dès qu'un nouveau PDF arrive dans votre dossier Google Drive.
Tester avec une grande variété de PDFs vous permettra de mettre en valeur l'efficacité de la combinaison entre un OCR puissant et un traitement IA intelligent. Si certains cas particuliers ne fonctionnent pas bien, ajustez le prompt système avec des instructions supplémentaires ou ajoutez un exemple d'entrée et de sortie.

Mettez l'agent IA au défi avec des notes manuscrites ou des reçus mal scannés ou photographiés en format PDF. L'API Mistral prend également en charge le téléchargement d'images PNG, bien que l'intégration nécessiterait des ajustements mineurs.
Mot de la fin
Vous avez réussi à construire un système automatisé qui surveille un dossier Google Drive, extrait les détails des factures avec Mistral OCR, convertit les devises si nécessaire, et enregistre tout dans une Google Sheet. Un véritable gain de temps pour toute personne travaillant avec des factures.
Pour aller plus loin, explorez les notifications via Slack—consultez la documentation du node Slack pour la configuration.
Merci de votre lecture ! Jetez un œil au Sheet de temps en temps—l'automatisation est puissante, mais les données financières méritent toujours une vérification humaine occasionnelle.