Aller au contenu principal

Facture QR suisse d' Airtable dans Zapier: Filtrer les lignes, générer le bordereau, envoyer un e-mail au débiteur

· 26 minutes de lecture
SEO and Content Writer

Le Filter by Zapier détermine quelles lignes Airtable deviennent des bordereaux de paiement. Placez-le entre un déclencheur New Record et PDF4me: seules les lignes marquées comme prêtes recevront une facture QR suisse, qui sera ensuite intégrée à l’enregistrement et envoyée par courriel au débiteur.

Un Zap qui surveille un tableau se déclenche à chaque ligne ajoutée. Pour la plupart des automatisations, c'est tout simplement du gaspillage. Pour une automatisation qui envoie un reçu de paiement par e-mail à un client, cela fait toute la différence entre un processus fonctionnel et l'envoi de la même facture trois fois parce que quelqu'un était encore en train de la saisir au moment du déclenchement. L'étape de filtrage est la solution, et il est préférable de bien la comprendre plutôt que de la copier.

Le Zap en bref
1. New Record
Airtable effectue une requête toutes les 2 minutes. Il détecte chaque ligne ajoutée au tableau.
2. Filter conditions
Filter by Zapier. Continue uniquement lorsque Status est exactement New.
3. Create SwissQR Bill
PDF4me. Génère le reçu du créancier, du débiteur et QR-IBAN.
4. Update Record
Airtable. Enregistre le fichier, son statut et un lien vers la même ligne.
5. Send Email
Gmail envoie le reçu à l'adresse indiquée sur la ligne.
La version courte

Un utilisateur saisit une donnée dans Airtable et définit Status sur New. Le Zap détecte cette donnée, le filtre vérifie ce champ, PDF4me génère une facture suisse avec QR code, et l'image est ajoutée à l'enregistrement tandis qu'une copie est envoyée au débiteur par e-mail. Définir le statut sur Generated lors de la même exécution empêche le Zap de la détecter à nouveau. Cinq étapes sont nécessaires, et la plus importante est le filtre.

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

Why does this need a Filter step at all?Le déclencheur Airtable de Zapier n'impose aucune condition. Il vous transmet chaque nouvel enregistrement et vous laisse le soin de décider. Qu'il s'agisse d'une ligne partiellement saisie, d'un doublon ou d'un enregistrement créé à titre expérimental, tous atteignent l'étape 3, sauf en cas d'interruption, et l'étape 5 consiste à envoyer un e-mail au client.

Why filter on Status rather than checking the fields are filled in?Status correspond à une décision prise par une personne, tandis que les autres colonnes ne contiennent que des données. Même en vérifiant que le QR-IBAN n'est pas vide et que le montant est supérieur à zéro, il serait toujours impossible de déterminer avec certitude si la ligne est terminée. Un champ indiquant simplement « J'ai terminé » est à la fois plus simple et indique plus clairement qui est responsable.

Why clean the IBAN in Airtable instead of in the Zap?Parce que Zapier ne dispose pas de langage d'expression dans un champ. Make vous permet d'encapsuler une valeur dansreplace() Là où vous l'utilisez, Zapier ne le fait pas. Le nettoyage est donc effectué plus tôt, dans les champs de formules Airtable, et Zap les mappe. L'avantage est non négligeable: les valeurs nettoyées sont visibles dans la grille, ce qui vous permet de voir ce que Zap enverra avant l'envoi.

Why does step 4 warn about a loop?Puisqu'elle écrit dans la table qui déclenche le Zap, sa propre mise à jour pourrait en principe réactiver ce dernier. Dans cette version, cela est impossible, car la mise à jour définit Status sur Generated et le filtre ne laisse passer que les éléments New. Il est important de comprendre ce point plutôt que de l'ignorer: le filtre n'est pas qu'une simple mesure de propreté, il est ce qui interrompt le cycle.


Ce que vous obtiendrez​

Entrée: une ligne Airtable contenant un créancier, un débiteur, un montant, un QR-IBAN et une référence, avec Status New. Sortie: une facture QR suisse associée à cet enregistrement, la ligne marquée Generated avec un lien » et un courriel envoyé au débiteur.

Airtable base PDF4me Live Automations with the Swiss QR Requests table open, showing rows INV-1001 to INV-1004 and INV-2001 to INV-2003 with CreditorName Muster AG at Bahnhofstrasse 1, 8001 Zuerich CH, a QRIBAN beginning CH4431999123, DebtorName Test Kunde AG at Seestrasse 10 in 8002 Zuerich, Amount 100.50 CHF, a Status column where INV-2002 reads New and the rest read Generated, and two formula columns at the far right named QRIBANClean and AmountText

Notez les deux colonnes à droite. QRIBANClean et AmountText sont des champs de formule, et c'est ce que le Zap mappe réellement.

The generated Swiss QR bill for INV-2003, showing a Receipt half and a Payment part either side of a scissor line, both listing the account payable to Muster AG at Bahnhofstrasse 1, 8001 Zuerich, the structured reference, additional information Rechnung INV-2003, payable by Test Kunde AG at Seestrasse 10, 8002 Zuerich, and currency CHF with amount 100.50

Reçu, ligne de découpe, zone de paiement. La disposition est standardisée.

Gmail showing the received message with subject Your Swiss QR bill INV-2003, a body reading Hello Test Kunde AG, Please find your Swiss QR bill with the INV-2003 attached, Amount 100.50 CHF, and one attachment previewing the QR bill

Le montant affiché est 100,50 et non 100,5, car le corps du texte inclut également le champ de formule.


Ce dont vous avez besoin​

  • A Zapier accountsur un forfait qui autorise les Zaps en plusieurs étapes.Filter by Zapier est intégré, mais cela compte comme une étape.
  • Clé API PDF4me. Obtenez votre clé API.
  • An Airtable baseLa base capturée est PDF4me Live Automations avec une table nommée Swiss QR Requests: le bloc créancier, le bloc débiteur, QRIBAN, Référence, Montant, Devise, Message, Email, un champ Status, un champ OutputLink et un champ de pièce jointe appelé Document.
  • Two Airtable formula fields. QRIBANClean supprime les espaces du QR-IBAN. AmountText formate le montant avec deux décimales. Voir la sectionAirtable formula reference si vous n'en avez jamais écrit auparavant.
  • A Gmail accountconnecté à Zapier, eta QR-IBAN de votre banque. Une référence QR nécessite un QR-IBAN, et non un IBAN ordinaire.

Le Zap en bref​

  1. New Record (Airtable) se déclenche à chaque nouvelle ligne dans Swiss QR Requests.
  2. Filter conditions (Filter by Zapier) se poursuivent uniquement lorsque Status est exactement New.
  3. Create SwissQR Bill (PDF4me) génère le bordereau au PNG.
  4. Update Record (Airtable) enregistre le fichier, le statut et un lien vers la ligne.
  5. Send Email (Gmail) permet de transmettre le reçu au débiteur.

Aperçu complet de Zap​

Zapier run detail showing version 1 and a successful run on Oct 23 2026 at 11:31:53 pm, with five steps each marked with a green tick: Airtable New Record on a 2 min schedule reporting Found 1 new Record, Filter by Zapier Filter conditions reporting the run passed the rules, PDF4me Create SwissQR Bill reporting Sent 1 new SwissQr Bill, Airtable Update Record reporting Sent 1 new Record, and Gmail Send Email reporting Sent 1 new Message

Une étape réussie. Le filtre en position 2 garantit la sécurité des trois étapes suivantes.


Étape 1: Comment déclencher un Zap à partir d’une nouvelle ligne Airtable?​

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

  1. Créez un Zap et sélectionnez Airtable > New Record.
  2. Connectez votre compte, puis choisissez Base PDF4me Live Automations et Table Swiss QR Requests.
  3. Test. Zapier signale avoir trouvé 1 nouvel enregistrement dans Airtable et chaque colonne devient disponible pour les étapes suivantes.

L'indicateur de sondage sur le Zap capturé affiche 2 min, ce qui provient du plan plutôt que de toute configuration que vous avez effectuée ici.

Tip.New Record signifie « nouveau », et non « modifié ». Si quelqu'un crée une ligne et la remplit dix minutes plus tard, le Zap l'aura déjà considérée comme vide et le filtre l'aura déjà rejetée; par conséquent, aucune action ne sera déclenchée une fois la saisie terminée. Si votre équipe travaille de cette manière, utilisez plutôt l'événement de mise à jour d'enregistrement et conservez le même filtre.


Étape 2: Comment empêcher un Zap de s’exécuter sur des lignes qui ne sont pas prêtes?​

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

C'est l'étape dont dépend le reste du Zap.

  1. Ajouter Filter by Zapier > Only continue if....
  2. Élaborez une règle:
    • Champ: 1. Status
    • Condition: (Texte) Exactly matches
    • Valeur: New
  3. Testez-le. Zapier vous indique si l'enregistrement qu'il possède aurait continué et nomme le champ qui a fait la différence.

configuration Filter conditions​

Filter by Zapier step 2 Configure and test panel showing the rule Only continue if 1. Status Text Exactly matches New, and below it a yellow result box reading Your zap would not have continued, with a test record created 2026-10-23 19:46:35 and Items that didn't match listing Status: Generated

Le filtre fonctionne correctement, il ne présente aucun dysfonctionnement. L'enregistrement de test ayant déjà été Generated, le Zap refuse à juste titre d'émettre un second ticket.

Il est important de lire attentivement l'encadré jaune, car il contient l'information la plus utile à l'écran. L'arrêt de votre zap n'est pas une erreur. Zapier a testé la règle sur l'enregistrement le plus récent, dont Status était Generated suite à une exécution précédente, et le filtre a fonctionné correctement. Les éléments ne correspondant pas indiquent le champ et la valeur exacts qui ont provoqué l'arrêt.

Tip.Exactly matches est sensible à la casse et aux espaces.new etNew Avec un espace final, les deux méthodes échouent, sans message d'erreur, sur chaque ligne. Si un filtre ne passe jamais, comparez la valeur dans la case jaune à votre règle caractère par caractère avant toute autre modification. Un champ de sélection unique est plus sûr qu'un champ de texte libre, car il est impossible de faire une erreur de saisie.


Étape 3: Comment transformer la ligne en un billet QR suisse?​

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

Tout ce qui suit ne s'applique qu'aux lignes qui ont été validées.

  1. Ajouter PDF4me > Create SwissQR Bill.
  2. Définissez les champs qui déterminent la sortie:
    • Format Type: PNG
    • Devise: CHF
    • Reference Type: QRR
    • Language Type: English
    • Separator Line: Line with Scissor
    • Creditor Address Type et Ultimate Debtor Address Type: S
  3. Associez les données de paiement à partir du déclencheur:
    • Amount: le champ de formule Amount Text, et non le montant brut.
    • IBAN: le champ de formule QRIBAN Clean
    • Creditor Name, Creditor Street, Creditor City, Creditor Postal Code à partir des colonnes du créancier), Creditor Country étant défini sur CH-Switzerland
    • Les champs Débiteur final proviennent des colonnes Débiteur et suivent le même modèle.
    • Reference et Unstructured Message de la ligne

Create SwissQR Bill​

PDF4me Create SwissQR Bill step showing Format Type PNG, Currency CHF, Reference Type QRR, Language Type English, Separator Line with Scissor, Amount mapped to the Amount Text field reading 100.50, IBAN mapped to QRIBAN Clean reading CH4431999123000889012, Creditor Address Type S, Creditor Name Muster AG, Creditor Street Bahnhofstrasse 1, Creditor City Zuerich, Creditor Country CH-Switzerland, Creditor Postal Code 8001, the matching Ultimate Debtor fields for Test Kunde AG at Seestrasse 10 in 8002 Zuerich, a structured Reference and an Unstructured Message reading Rechnung INV-2003

Le montant et l'IBAN proviennent de champs de formule. Toutes les autres données sont directement issues de leur colonne respective.

Ce que chaque paramètre détermine​

ChampValeur iciCe qu'il contrôle
Format TypePNGUne image plutôt qu'un PDF, dont l'aperçu est intégré dans une cellule de pièce jointe Airtable
Reference TypeQRRUne référence QR structurée, qui nécessite un QR-IBAN. Les alternatives sont SCOR et NON
Separator LineLine with ScissorTrace la ligne de séparation entre le reçu et la partie paiement
Creditor Address TypeSAdresse structurée: rue, code postal et ville dans des champs séparés
MontantAmountTextLe champ de formule, déjà à deux décimales
IBANQRIBANCleanLe champ de formule, déjà dépourvu d'espaces

Tip.Reference Type et le compte doivent correspondre. QRR requiert un QR-IBAN et une référence à 27 chiffres. Si vous utilisez un IBAN classique, vous obtiendrez un reçu qui semble correct mais qui ne pourra pas être scanné; c’est le pire des cas, car Zap n’indique aucun problème.


Étape 4: Comment réinscrire le bordereau dans le registre?​

Déroulement jusqu'à présent: tout est passé par l'étape PDF4me.

  1. Ajouter Airtable > Update Record.
  2. Configure:
    • Base et Table: comme à l'étape 1
    • Record: l’ ID du déclencheur
    • Append attachments: False
    • Document: l' File Url de l'étape 3
    • Status: Generated
    • OutputLink: l’URL de l’enregistrement, si vous en conservez un.
  3. Laissez un champ sur deux vide.

Update Record​

Airtable Update Record step test panel listing the data being sent: appendAttachments false, the application and table identifiers, the row id, a Document field set to a long api.pdf4me.com GetDocument URL, a Status field set to Generated and an OutputLink field set to an airtable.com record URL, followed by a long list of empty optional fields including Title, the creditor and debtor columns, QRIBANClean and AmountText

Trois champs sont remplis, tous les autres sont vides. Cette liste constitue votre vérification de sécurité avant la mise en marche du Zap.

Deux éléments diffèrent de la procédure habituelle. La pièce jointe est une URL, et non un fichier: Zapier transmet le lien PDF4me à Airtable, qui le récupère. C’est pourquoi il n’y a pas d’étape de téléchargement séparée. De Append attachments Airtable False remplace le contenu du champ Document. Ainsi, la réexécution d’une ligne écrase son ticket au lieu de collecter des copies.

Zapier will warn you about a loop here, and it is right to.Cette étape écrit dans la table qui déclenche le Zap; sa propre mise à jour pourrait donc en principe réactiver le Zap. Cependant, elle ne le fait pas, car la mise à jour définit Status sur Generated et le filtre de l’étape 2 ne laisse passer que New. Si vous modifiez ce filtre, veuillez relire cette étape au préalable.


Étape 5: Comment envoyez-vous le bordereau au débiteur?​

Déroulement jusqu'à présent: tout est passé par la mise à jour de l'enregistrement.

  1. Ajouter Gmail > Send Email.
  2. Configure:
    • To: la colonne Email du déclencheur
    • Subject: Your Swiss QR bill plus le Title
    • Body type: Html
    • Body: une brève formule de salutation mentionnant le débiteur, la facture et le montant.
    • Attachments: l' File Url de l'étape 3

Configuration Send Email​

Gmail Send Email step showing the To field holding a mapped Email value from the Airtable trigger

Le destinataire est choisi par rangée, donc chaque débiteur reçoit son propre avis de passage et personne ne tient de liste d'adresses.

Utilisez Amount Text dans le corps du message plutôt que la colonne « Montant » brute. C'est gratuit et cela garantit que le montant indiqué dans l'e-mail correspond à celui du reçu, évitant ainsi à vos clients de remarquer une éventuelle incohérence.


Exécutez le Zap et vérifiez​

  1. Publish le Zap.
  2. Ajoutez une ligne aux Swiss QR Requests avec un créancier, un débiteur, un montant, un QR-IBAN et Status New.
  3. Attendez le résultat du sondage, puis lancez Zap Run. Les cinq étapes devraient être validées au vert.
  4. Ouvrez la ligne: Document doit contenir le bordereau, Status doit indiquer Generated.
  5. Ouvrez le reçu et vérifiez que la partie reçu et la partie paiement indiquent le même compte, la même référence et le même montant.
  6. Vérifiez la boîte de réception du débiteur.
  7. Ajoutez maintenant une ligne avec Status Generated et vérifiez que le Zap s'arrête à l'étape 2. C'est le test que la plupart des gens ignorent, et c'est celui qui prouve l'efficacité du filtre.

Dans l'exécution capturée, la version 1 du Zap s'est terminée avec succès le 23 octobre 2026 à 23h31min53s, produisant un bordereau pour INV-2003 payable à Muster AG à Zuerich pour un montant de 100,50 CHF.

What did you actually build?Un générateur de bordereaux de paiement avec système de sécurité. Les données restent dans la base que votre équipe modifie, le bordereau est automatiquement associé à l'enregistrement qui l'a généré, et un seul champ détermine le montant à émettre. Personne n'ouvre de portail bancaire et aucun envoi double de la même facture n'est effectué.


Variantes courantes que vous pouvez ajouter sans reconstruction​

Ajoutez une deuxième condition
Le filtre accepte plusieurs règles. Exiger que le montant soit supérieur à zéro ainsi que Status New permet de repérer les lignes enregistrées avant la fin de la saisie.
Noter les échecs, pas seulement les succès.
Définissez Status sur « Échec » à partir d'un chemin d'erreur Zap pour qu'une ligne défectueuse ne soit plus invisible. Une ligne bloquée indéfiniment sur New est un symptôme normal qui passe souvent inaperçu.
Collez le bordereau sur une page de facture.
Changez Format Type en PDF et fusionnez le bordereau sous votre modèle de facture avant l'étape 4, afin que le débiteur reçoive un seul document au lieu de deux.
Facture pour plus d'une entité
Le bloc créancier provient des colonnes, une base peut donc émettre pour deux sociétés. Attribuez à chaque ligne son propre QR-IBAN et rien d'autre ne change.

Comment cela se compare-t-il à la création du même flux dans Make​

Nous avons publiéthe same scenario in Make La veille: même base, même action PDF4me, même résultat. La seule différence réside dans la formulation utilisée par la plateforme.

ComparaisonDans MakeDans ce Zap
Filtrer les lignes par rapport à ce ZapUne formule sur le déclencheur, gratuiteUne étape de filtrage, qui consomme une tâche par ligne vue
Nettoyage de l'IBAN et du montant par rapport à ce Zapreplace() et formatNumber() à l'intérieur du moduleDeux champs de formule Airtable: les cartes Zap
Joindre le fichier vs ce ZapUn module de téléchargement séparé contenant des octetsFile Url saisie directement dans le champ de pièce jointe
Ce Zap5 modules, logique répartie entre le déclencheur et les modules5 étapes, la logique étant répartie entre Airtable et le filtre.

Questions fréquentes​

Qu'est-ce qu'un billet QR suisse?​

Le reçu QR suisse est le bordereau de paiement qui a remplacé les anciens formulaires orange et rouge en Suisse. Il comporte un code QR contenant le nom du créancier, du débiteur, le montant et la référence; le payeur le scanne donc avec son application bancaire au lieu de saisir quoi que ce soit.

Il comporte deux moitiés, une partie reçu et une partie paiement, séparées par une ligne de découpe, et sa mise en page est fixée par leSwiss implementation guidelines published by SIX Générer un tel modèle est un problème de spécification, et non un problème de conception.

Quel est le numéro QR-IBAN en Suisse?​

Un QR-IBAN est un second numéro de compte émis par votre banque en plus de votre IBAN habituel. Il est reconnaissable à son identifiant d'établissement, qui se situe dans une plage réservée. Il indique à la banque qu'un paiement entrant comporte une référence QR structurée, ce qui lui permet de l'associer automatiquement à une facture.

Pour ce Zap, la règle est simple: si Reference Type est QRR, le champ IBAN doit contenir le QR-IBAN. Mélanger les deux génère un reçu qui provoque une erreur de numérisation.

Airtable peut-il créer des factures?​

Il ne s'agit pas de codes de paiement. Airtable stocke les données et peut les présenter dans une interface ou une vue imprimable, mais ne peut pas générer de code QR conforme aux spécifications de paiement et n'a aucun moyen de valider le résultat.

Ce qui est particulièrement efficace ici, c'est que ce module centralise les données et, grâce aux champs de formule, permet leur nettoyage. Le Zap, quant à lui, les convertit en un format standard et renvoie le résultat.

Pourquoi mon filtre Zapier ne fonctionne-t-il pas?​

Neuf fois sur dix, la valeur ne correspond pas à ce que vous attendez. Exactly matches compare la chaîne entière, en tenant compte de la casse et des espaces de fin; ainsi, new, New et NEW échouent tous par rapport à New.

Ouvrez le panneau de test du filtre et consultez la ligne « Éléments ne correspondant pas ». Il affiche le champ et la valeur que Zapier a réellement détectée, ce qui suffit généralement à repérer immédiatement la différence. Le passage à une liste déroulante unique pour la colonne Airtable résout définitivement le problème.


Dépannage​

Le Zap s'arrête systématiquement au niveau du filtre.

Lisez leItems that didn't match Ligne dans le panneau de test du filtre: elle indique le champ et sa valeur. Généralement, la colonne Status contient une valeur différente de celle indiquée.New ou le déclencheur s'est activé sur une rangée avant même que quiconque ne l'ait actionné.

Le même ticket est distribué deux fois.

L'étape 4 ne définit pas Status, ou bien elle lui attribue une valeur que le filtre autorise encore. La mise à jour et le filtre forment un seul et même mécanisme: en cas de divergence, le Zap peut retraiter sa propre sortie. Il est donc important de les vérifier conjointement, et non séparément.

La pièce jointe n'est jamais enregistrée.

Airtable récupère le fichier à partir de l'URL que vous lui fournissez; cette URL doit donc être accessible Airtable la demande. Vérifiez les correspondances de l'étape 4.File Url à partir de l'étape PDF4me et non d'un autre champ, et vérifiez que l'identifiant d'enregistrement provient du déclencheur.

Les tâches sont effectuées plus rapidement que prévu.

Le filtre s'applique à chaque ligne détectée par le déclencheur; par conséquent, même les lignes rejetées vous sont facturées. Si le tableau reçoit un volume important de données non facturables, configurez le Zap avec une vue ne contenant que les lignes candidates, au lieu du tableau complet.


Prochaines étapes​

La plupart des automatisations échouent sur les lignes que vous n'aviez pas l'intention de traiter, et non sur celles que vous vouliez traiter. Un seul champ et une seule étape suffisent généralement à résoudre le problème.