Aller au contenu principal

OCR de factures dans Zapier: Analyser chaque pièce jointe d'une boîte mail partagée avec AI Document Parser PDF4me

· 26 minutes de lecture
SEO and Content Writer

PDF4me AI Document Parser est une action Zapier qui analyse un document grâce à l'IA et renvoie ses champs au format JSON. Associée à Looping by Zapier, elle gère le cas classique de la comptabilité fournisseurs: un e-mail contenant plusieurs factures, chaque pièce jointe étant analysée individuellement.

Tous les outils de reconnaissance optique de caractères (OCR) pour factures présentent le même résultat: un document en entrée et des champs propres en sortie. Or, les factures arrivent autrement. Elles sont envoyées par e-mail à une boîte de réception partagée, par un fournisseur qui a joint trois PDF et indiqué « PFA » dans le corps du message. Le véritable problème n'est pas la lecture d'une seule facture, mais le fait qu'un seul déclencheur doive se transformer en plusieurs analyses. La plupart des solutions de contournement ignorent cette étape en se contentant d'examiner un dossier où les fichiers ont déjà été séparés. Ce Zap lui, ne l'ignore pas. Il se déroule en trois étapes, la seconde constituant la boucle.

Le Zap en bref
1. New Email in Shared Mailbox
Microsoft Outlook, polling every 2 minutes. One email is one supplier sending one or more invoices.
2. Create Loop From Line Items
Looping by Zapier. Turns the attachment list into one iteration per file.
3. AI - Document Parser
PDF4me. Runs your Analyzer against the attachment and returns the fields as JSON.
La version courte

Un fournisseur vous envoie un e-mail avec deux factures en pièces jointes. Looping by Zapier, chaque pièce jointe est traitée par l'analyseur de documents PDF4me AI Document Parser. Vous obtenez ainsi un fichier JSON structuré par facture, avec un score de confiance pour chaque champ, prêt à être importé dans Google Sheets, Airtable ou votre comptabilité. Trois étapes, sans aucune ligne de code.

Questions et réponses basées sur le pourquoi​

Why trigger on a shared mailbox instead of a folder?Car c'est là que se trouvent déjà les factures. Demander aux fournisseurs de les télécharger sur un portail, ou à une personne de les enregistrer d'abord dans Dropbox, ajoute une étape manuelle précisément au moment où vous essayez d'automatiser. Une boîte mail partagée est aussi la solution qui permet à un utilisateur de conserver son compte même après son départ: l'adresse appartient à la fonction, pas à la personne.

Why do you need a loop at all?Comme une étape Zap s'exécute une seule fois par déclencheur, et qu'un e-mail peut contenir un nombre quelconque de pièces jointes, sans boucle, Zapier traite la première pièce jointe qu'il reçoit et ignore silencieusement les autres. C'est le pire type de bug: le Zap devient valide, mais les factures disparaissent. Looping transforme la liste des pièces jointes en une itération par fichier.

Why an Analyzer instead of a fixed invoice schema?Les champs dont vous avez réellement besoin sont spécifiques à votre comptabilité. AI Document Parser exécute un Analyzer que vous définissez une seule fois dans le tableau de bord PDF4me. Ainsi, la même action traite les factures aujourd'hui et les bons de commande ou les bons de livraison ultérieurement. Modifiez le schéma et chaque Zap pointant vers cet Analyzer le prendra en compte sans reconstruction.

Why do confidence scores matter more than the extracted values?Car la reconnaissance optique de caractères (OCR) ne signale pas d'erreur de manière flagrante. Elle renvoie une réponse erronée plausible. L'analyseur attribue un score par champ, ce qui permet de transmettre à un humain tout élément inférieur à votre seuil plutôt que de le publier. Dans l'exemple analysé, les scores totaux étaient supérieurs à 90, tandis que l'état de facturation a obtenu 59,8, soit précisément la différence sur laquelle une file d'attente de vérification doit se baser.


Ce que vous obtiendrez​

Entrée: un e-mail dans une boîte de réception partagée contenant un nombre quelconque de factures PDF en pièces jointes. Sortie: une exécution Zap par pièce jointe, renvoyant la facture au format JSON structuré avec un score de confiance par champ, prête à être intégrée à n’importe quelle application en aval.

Outlook showing an email with the subject invoice and the body PFA, carrying two attachments, Samples 2.pdf at 196 KB and Samples 1.pdf at 199 KB, listed as 2 attachments totalling 395 KB

Deux pièces jointes, un message, un corps de texte de deux mots. Voilà les données que Zap doit traiter.

Zapier Zap history listing two successful runs of the Email Doc Parser Zap on Oct 15 2026 at 07:02:53 pm and 07:03:37 pm, each consuming 1 task, with the Outlook, Looping and PDF4me app icons shown on both rows

Un e-mail reçu, deux exécutions effectuées. Chaque itération de la boucle correspond à une exécution Zap distincte dans l'historique.


Ce dont vous avez besoin​

  • A Zapier account.Looping by Zapier Il s'agit d'une application intégrée; aucune installation n'est donc requise. Consultez votre forfait: Zap à plusieurs étapes sont nécessaires, et chaque itération de boucle compte comme une tâche.
  • PDF4me API key.Get your API key Le Zap runs sur l'application PDF4me en version 1.30.0.
  • An Analyzer saved in the PDF4me dashboard.Open the Analyzer list L' Analyzer intégré default_invoice_extraction produit le résultat affiché ici; vous pouvez donc commencer par là et créer le vôtre plus tard.
  • A Microsoft Outlook shared mailboxqui reçoit les factures des fournisseurs, et un compte autorisé à les consulter. Si vous n'en avez pas encore,Microsoft documents how to create one.
  • A test email you control, avec au moins deux fichiers PDF joints, afin que vous puissiez prouver que la boucle s'exécute plus d'une fois avant de pointer le Zap vers le courrier électronique réel du fournisseur.
Utilisez la même facture que celle utilisée dans ce tutoriel.
Joignez ce document à votre courriel de test; le Doc Text doit correspondre exactement au JSON ci-dessous, champ par champ. Il s’agit d’une facture d’exemple avec deux lignes, dont une avec une remise négative, ce qui est utile pour tester un analyseur syntaxique.
Télécharger sample-invoice-13594027.pdf

Le Zap en bref​

  1. New Email in Shared Mailbox (Microsoft Outlook) » interroge la boîte aux lettres toutes les 2 minutes.
  2. Create Loop From Line Items (Looping by Zapier) transforme la liste des pièces jointes en une itération par fichier.
  3. AI - Document Parser (PDF4me) exécute l' Analyzer sur la pièce jointe de l'itération actuelle.

Aperçu complet Zap​

Zapier editor showing the three step Email Doc Parser Zap: step 1 Microsoft Outlook New Email in Shared Mailbox with a 2 min polling badge reporting Found 1 new Email, step 2 Looping by Zapier Create Loop From Line Items reporting Sent 1 new Loop, and step 3 Pdf4me 1.30.0 AI - Document Parser reporting Sent 1 new Process Document

Trois étapes. La boucle au milieu permet à la troisième étape de s'exécuter une seule fois par accessoire.


Étape 1: Comment déclencher un Zap à partir d’une boîte aux lettres partagée?​

Déroulement jusqu'à présent: rien pour l'instant, ceci est le déclencheur.

L'arrivée d'une facture constitue l'événement, la boîte aux lettres en est donc le déclencheur.

  1. Créez un Zap et sélectionnez Microsoft Outlook > New Email in Shared Mailbox.
  2. Connectez le compte autorisé à lire la boîte aux lettres, puis choisissez l' adresse de la boîte aux lettres partagée et le dossier à surveiller. La surveillance de la boîte de réception est un bon point de départ.
  3. Testez le déclencheur avec l'e-mail que vous avez préparé. Zapier indique « 1 nouvel e-mail trouvé dans Microsoft Outlook » et la liste des pièces jointes devient disponible pour les étapes suivantes.

L'intervalle d'interrogation sur le Zap capturé est de 2 min, ce qui correspond à la planification du plan Zapier et non à une valeur que vous avez configurée à l'étape.

Tip.Utilisez un dossier dédié, et non la boîte de réception entière, dès que cela dépasse le stade du test. Une règle Outlook côté serveur classe les e-mails des fournisseurs dans un dossier spécifique.Invoices Ce dossier vous offre une vue d'ensemble claire des déclencheurs et un point de repère en cas de non-déclenchement. Il empêche également l'exécution automatique des tâches Zap sur les newsletters.


Étape 2: Comment parcourir toutes les pièces jointes d’un e-mail?​

Déroulement jusqu'à présent: le déclencheur Outlook.

C’est cette étape qui permet de transformer un e-mail en une exécution par facture.

  1. Ajouter Looping by Zapier > Create Loop From Line Items.
  2. Dans Values to Loop, associez les éléments de ligne de la pièce jointe du déclencheur. L'exécution capturée boucle deux valeurs; c'est le modèle à copier:
    • Attachments Name, le nom du fichier
    • Attachments File, le fichier lui-même
  3. Testez l'étape. Zapier indique « Envoyé 1 nouvelle boucle à Looping by Zapier et l'onglet Data out affiche la première itération ainsi qu'un aperçu de toutes les autres.

Create Loop From Line Items​

Looping by Zapier step 2 Run details Data out tab showing Loop Iteration 1 with Attachments Name Samples 2.pdf and an Attachments File URL on zapier-dev-files.s3.amazonaws.com, a preview_loop_values block listing iteration 1 as Samples 2.pdf and iteration 2 as Samples 1.pdf, and the fields Loop Id, Loop Id And Iteration, Loop Iteration Is Last false, Loop Iteration Last 2 and Loop Total Iterations 2

Loop Total Iterations lit 2, une par pièce jointe, et preview_loop_values nomme les deux fichiers avant que l'un ou l'autre n'ait été analysé.

Ce que la boucle vous offre​

ChampValeur dans l'exécution capturéeÀ quoi ça sert
Loop Iteration1Sur quel col vous vous trouvez, en comptant à partir de 1
Attachments NameSamples 2.pdfLe nom du fichier pour cette itération, utile pour nommer les enregistrements en aval
Attachments FileUne URL zapier-dev-files.s3.amazonaws.comLe fichier lui-même, et ce que vous mappez dans l'analyseur
Loop Total Iterations2Combien de pièces jointes contenait le courriel?
Loop Iteration Is LastfalseDéclencher un résumé ou une notification uniquement lorsque cette condition est remplie.
Loop Idd889b92b-c6a1-4abc-a6a1-a1d4c1c78e1dRelie toutes les itérations d'un même e-mail, ce qui permet de les regrouper en aval.
preview_loop_valuesItération 1 Samples 2.pdf, itération 2 Samples 1.pdfLa liste complète, visible au premier coup d'œil

Deux points importants sont à noter avant de poursuivre. La boucle ne s'exécute pas dans l'ordre d'apparition des pièces jointes dans Outlook: le courriel affichait d'abord « Exemples 2 » et la boucle a fonctionné en conséquence, mais il ne faut jamais s'y fier. De plus, Loop Id est le seul élément permettant de relier les lignes résultantes au courriel d'origine; il est donc préférable de l'intégrer dès maintenant plutôt que de le regretter plus tard.

Tip.Chaque itération correspond à une exécution Zap distincte et consomme une tâche. Un e-mail avec dix pièces jointes représente dix tâches, et non une seule; c’est la principale surprise sur la facture mensuelle.Zapier documents the loop limits et il est judicieux de les lire avant de pointer ce message vers une boîte aux lettres déjà bien remplie.


Étape 3: Comment transformer chaque pièce jointe en JSON structuré?​

Déroulement jusqu'à présent: le déclencheur plus la boucle.

Tout ce qui suit s'exécute une seule fois par pièce jointe, car cela se situe à l'intérieur de la boucle.

  1. Ajoutez PDF4me > AI - Document Parser et connectez votre clé API.
  2. Configure:
    • File: le jeton Attachments File provient de la boucle, et non du déclencheur. C’est une erreur fréquente.
    • File Name et File Ext: construisez le nom à partir Attachments Name de la boucle.
    • AI Analyzer Id: sélectionnez votre Analyzer dans la liste déroulante. default_invoice_extraction produit le résultat ci-dessous.
    • AI Analyzer Name (Deprecated): laisser vide.
  3. Test. Zapier signale l'envoi d'un nouveau Process Document à Pdf4me, et Data out contiennent les champs analysés.

Sortie AI - Document Parser, première pièce jointe​

PDF4me AI - Document Parser step 3 Run details Data out showing Trace Id 57525903-32b5-47ff-ad16-6c58179b5aa1, a Document Document Id of b9de2201-e98f-5659-b196-70d9bf18ff0e, and a Document Doc Text JSON holding invoiceNumber 13594027, vendorName Your Business Name, billTo John Smith, subTotal 37.5, two line items and a docConfidenceLevel block scoring every field

Doc Text contient la facture. Chaque champ apparaît également dans docConfidenceLevel avec une note associée.

Sortie AI - Document Parser, deuxième pièce jointe​

The same PDF4me AI - Document Parser step on the second loop iteration, showing a different Trace Id 0b16be26-64be-4cee-a764-8a52f2a263df and Document Id 5450ac57-f16a-50ec-834f-10bf80c5b505, with the same invoice fields and slightly different confidence scores

Un Trace Id différent et un identifiant de document différent permettent de distinguer les deux analyses dans les journaux.

Les deux pièces jointes de cette capture contiennent le même exemple de facture; les chiffres extraits correspondent donc. Le second essai ne prouve pas que l’analyseur gère deux mises en page différentes, mais que la troisième étape a été exécutée deux fois à partir d’un seul courriel.

Ce qui revient​

Champ de sortieCe qu'il contient
Trace IdUnique par appel. Veuillez l'indiquer dans votre ticket d'assistance.
Document Document IdL'identifiant PDF4me du document analysé est différent à chaque exécution.
Document Doc TextLa charge utile JSON: les champs extraits plus docConfidenceLevel
Document File Name, Document Name, DocMetadataNommage et métadonnées, renseignés en fonction de ce que vous mappez dans

Dans Doc Text l' Analyzer default_invoice_extraction renvoie les champs d'en-tête (invoiceNumber, invoiceDate, invoiceDateString, orderId, customerPO, paymentDeadline), le bloc fournisseur (vendorName, vendorAddress, vendorPhone, vendorEmail et les identifiants fiscaux, notamment vendorGSTIN, vendorPAN, vendorCIN, vendorVatUidNr, iban), le bloc client (billTo, billToAddress, billToPhone, billToEmail, billToState, billToPincode), les totaux (subTotal, cgst, sgst, cgstRate, sgstRate, totalTaxAmount, total) et un tableau lineItems. Pour l'exemple de facture qui correspond au invoiceNumber 13594027, billTo John Smith, total 37.5 et deux lignes, la seconde étant la ligne de remise -12.5.

Lecture des scores de confiance​

Le graphique docConfidenceLevel présente la même forme, chaque valeur étant remplacée par un nombre. Il s'agit des scores des deux exécutions enregistrées, et l'écart représente le point.

ChampCourse 1Course 2Ce que cela vous dit
vendorEmail98.998.9Texte lisible par machine, faites-lui confiance
vendorName98.598.5En-tête propre, faites-lui confiance
billTo97.397.3Propre, faites-lui confiance
subTotal9594.7Bien, et mériterait un contrôle de tolérance par rapport total
total92.892.8Bien, mais c'est ce champ qui mérite une vérification automatique.
billToAddress79.581.9Multiligne et enroulé, à vérifier si nécessaire
billToPincode60.860.8L'exemple exécute la ville, l'état et le code postal ensemble.
billToState59.859.8En bas du document, ne publiez pas ceci sans l'avoir relu.

Le même document a obtenu des scores légèrement différents lors de deux passages, ce qui est normal pour un modèle et explique pourquoi il est préférable de définir un seuil plutôt que de se fier à un seul chiffre. Choisissez un niveau, acheminez les documents en dessous vers une personne et laissez passer le reste.


Exécutez le Zap et vérifiez​

  1. Publish le Zap.
  2. Envoyez un courriel de test à la boîte aux lettres partagée avec deux fichiers PDF en pièces jointes.
  3. Attendez le résultat du sondage, puis ouvrez Zap history.
  4. Vous devriez voir deux exécutions du Zap, et non une seule, chacune marquée comme réussie et consommant chacune une tâche.
  5. Ouvrez chaque exécution et vérifiez Data out de l'étape 3: l' Trace Id et Document Document Id doivent différer entre elles, et Doc Text doit contenir la facture de la pièce jointe.
  6. Vérifiez Loop Total Iterations à l'étape 2. Si la valeur est de 1 alors que vous avez joint deux fichiers, le problème provient du mappage des Values to Loop, et non de l'analyseur syntaxique.

Dans l'exécution capturée, les deux Zap runs se sont terminées à 19h02:53 et 19h03:37 le 15 octobre 2026, toutes deux réussies, 1 tâche chacune, à partir d'un seul e-mail contenant 395 Ko de pièces jointes.

What did you actually build?Un système de réception des factures qui s'adapte à leur arrivée. Plus besoin de télécharger de pièces jointes ni de ressaisir les totaux: un e-mail contenant cinq factures génère cinq enregistrements structurés au lieu d'un seul. Les scores de confiance permettent de définir clairement la limite entre traitement automatique et traitement vérifié.


Variantes courantes que vous pouvez ajouter sans reconstruction​

Inscrivez chaque facture sur une feuille.
Ajoutez une étape Google Sheets ou Airtable après l'analyseur syntaxique, toujours à l'intérieur de la boucle. Associez Loop Id à une colonne distincte afin de pouvoir regrouper les lignes d'un même e-mail.
Transférer les factures à faible fiabilité à un humain
Ajoutez un Filter by Zapier sur le champ docConfidenceLevel. Au-dessus du seuil défini, le document est publié automatiquement; en dessous, il est placé dans une file d’attente de révision ou envoyé à un canal Slack avec l’ Trace Id.
Ignorez tout ce qui n'est pas une facture.
Les fournisseurs joignent également des signatures et des logos. Un filtre sur Attachments Name se termine par .pdf, placé dans la boucle, empêche l'analyseur syntaxique d'être appelé sur une image et évite ainsi un gaspillage de ressources.
Analyser autre chose que des factures
L'action est pilotée par un schéma. PointAI Analyzer Id à unClassify Analyzer et un Zap gèrent les factures, les bons de commande et les bons de livraison, en renvoyant le type correspondant avec ses champs.

Comment cette méthode se compare-t-elle aux autres méthodes de reconnaissance optique de caractères (OCR) des factures?​

Chaque ligne décrit l'alternative. La dernière ligne correspond à ce Zap.

ComparaisonQui le dirige?D'où proviennent les facturesCe que vous entretenez
Plateforme d'automatisation AP vs ce ZapLa finance, dans un produit dédiéUne adresse de réexpédition vers ce produitUn contrat par document et ses règles d'approbation
Appel de l'API OCR depuis le code vs ce ZapUn développeur, dans une applicationQuel que soit le résultat de votre codeLe code, l'interrogation de la boîte aux lettres et les nouvelles tentatives
Module de capture ERP vs ce ZapLa finance, au sein de l'ERPUn scanner ou un dossier de dépôtLicences et flux de travail lié à cet ERP
Ce ZapToute personne pouvant modifier un ZapLa boîte aux lettres partagée que vous utilisez déjàSchéma en trois étapes et un Analyzer

Questions fréquentes​

Qu'est-ce que la reconnaissance optique de caractères (OCR) pour les factures?​

La reconnaissance optique de caractères (OCR) des factures consiste à lire une facture à l'aide d'un logiciel plutôt que par une personne, afin d'obtenir des données exploitables par vos systèmes concernant le fournisseur, la date, les lignes de commande et le total. L'OCR classique ne récupérait que les caractères présents sur la page et laissait à l'utilisateur le soin de déterminer le total; les analyseurs IA qui l'ont remplacée renvoient directement les champs nommés.

Cette distinction est importante lorsque vous choisissez un outil. Une bibliothèque qui effectueoptical character recognition Il vous donne du texte. Un analyseur de documents vous donne total, invoiceNumber et billTo, que Zap peut ensuite intégrer dans une feuille de calcul.

Comment fonctionne le looping avec Zapier?​

Looping by Zapier est une application intégrée qui réexécute les étapes ci-dessous, une fois par élément. Create Loop From Line Items prend un ensemble d'éléments de ligne d'une étape précédente, comme la liste des pièces jointes d'un e-mail, et lance une itération pour chaque élément.

Chaque itération correspond à une exécution Zap distincte, avec sa propre entrée dans Zap history et sa propre consommation de tâches. Au sein d'une itération, vous obtenez Loop Iteration, Loop Total Iterations, Loop Iteration Is Last et un Loop Id commun à toutes les itérations du même enregistrement source.

Qu'est-ce que le traitement des factures par OCR?​

Le traitement des factures par reconnaissance optique de caractères (OCR) englobe l'ensemble du processus, et non pas seulement la lecture: une facture arrive, ses champs sont extraits, les valeurs sont vérifiées et le résultat est enregistré dans un grand livre ou une file d'attente de vérification. L'extraction est généralement la partie la plus simple.

Ce qui détermine son bon fonctionnement en pratique, ce sont la réception des données et la gestion des exceptions. Ce Zap gère la réception des données via la boîte aux lettres partagée et la boucle, et vous fournit les éléments nécessaires à la gestion des exceptions avec docConfidenceLevel.

Comment automatiser la comptabilité fournisseurs?​

Commencez par la saisie des données, car toute intervention manuelle à ce stade annule tous les processus ultérieurs. Attribuez une adresse unique aux fournisseurs, déclenchez un processus à partir de cette adresse et assurez-vous qu'un courriel contenant plusieurs factures génère plusieurs enregistrements et non un seul.

Ensuite, définissez les éléments à comptabiliser automatiquement. Un seuil de confiance appliqué aux champs extraits permet de distinguer les factures pouvant être traitées automatiquement par votre système comptable de celles nécessitant une vérification manuelle. Cette distinction garantit la sécurité du fonctionnement de l'automatisation.


Dépannage​

Seule la première pièce jointe est analysée.

VérifierLoop Total Iterations à l'étape 2. Si la valeur affichée est 1,Values to Loop est mappé sur un seul champ plutôt que sur les éléments de ligne de la pièce jointe, la boucle n'a donc rien à parcourir. Si elle lit 2 mais qu'une seule analyse a eu lieu, l'étape 3File est associé au déclencheur au lieu de la boucleAttachments File.

Le nombre de tâches est plus élevé que prévu.

Voici la boucle fonctionnant comme prévu. Un courriel avec dix pièces jointes correspond à dix exécutions et dix tâches. Ajoutez un filtre à l'intérieur de la boucle afin que les signatures, les logos et tout élément qui n'est pas un PDF ne soient jamais analysés.

Doc Text est renvoyé vide ou comporte des champs manquants.

L' Analyzer détermine quels champs existent. Une clé vide signifie que le schéma exigeait un élément absent de ce document, ce qui est normal. Une clé entièrement vide signifie qu'elle est vide.Doc Text signifie généralement le mauvaisAI Analyzer Id, ou un fichier qui a atteint l'action sans son extension, alors vérifiezFile Name etFile Ext.

Les valeurs semblent correctes, mais la publication en aval est incorrecte.

RegarderdocConfidenceLevel avant de blâmer la cartographie. Dans cette capture, les scores totaux étaient supérieurs à 92 tandis quebillToState Le score était de 59,8, donc un champ peut être présent, plausible et pourtant erroné. Gardez leTrace Id sur chaque enregistrement afin de pouvoir associer une mauvaise ligne à sa séquence.


Prochaines étapes​

La difficulté de l'automatisation des factures n'a jamais été de lire la facture elle-même. C'était l'enveloppe dans laquelle elle arrivait, et c'est une boucle qui permet de l'ouvrir.