Générer des factures dynamiques avec Make et PDF4me

By Nishanth Asokan | Automatisation

Générer des factures dynamiques avec Make et PDF4me

La génération dynamique de documents est le processus qui consiste à créer automatiquement un lot de documents personnalisés à l’aide de données dynamiques provenant d’une source. Par exemple, une facture peut être personnalisée pour adresser chaque destinataire par son nom. La création de documents avec des données dynamiques nécessite une source de données, comme une liste, une feuille de calcul, une base de données, JSON ou des tableaux. Les champs de fusion sont des espaces réservés dans des modèles prédéfinis qui sont ensuite remplacés par des données provenant de l’une des sources de données susmentionnées ou de toute autre source de données prise en charge.

La création d’une facture avec des données dynamiques nécessite l’application de techniques telles que la fusion de courrier ou l’utilisation de champs de fusion. L’une des méthodes les plus populaires de génération de documents dynamiques implique l’utilisation du rendu moustache, qui est beaucoup plus facile dans la conception de modèles. Les factures personnalisées sont basées sur des modèles de documents créés à l’aide de Word ou d’autres créateurs de formulaires qui ont des capacités de champs de fusion. Nous abordons ici l’utilisation de modèles créés à l’aide de la syntaxe mustache - {{placeholder field}} - qui est ensuite remplacée par les données dynamiques.

PDF4me Action Générer un document dans Make vous permet de créer des scénarios pour générer des documents dynamiques et les automatiser. Le processus de génération peut être automatisé si vous avez le modèle et les données dynamiques prêts. Le modèle peut être un fichier Word ou HTML, ou tout autre format supporté. Les données peuvent être une feuille de calcul, CSV, JSON, XML ou une liste de données.

Génération d’une facture dynamique

La génération d’une facture avec des données dynamiques à l’aide d’Make nécessite que le modèle et les données soient stockés dans une plateforme de stockage en nuage. Au moins, le modèle doit être dans un stockage en nuage comme Dropbox, mais les données peuvent être transmises directement à un champ de données d’entrée.

Voyons comment créer un exemple de facture comme ci-dessous en utilisant un scénario Make.

Modèle de moustache pour la facturation dynamique

Dans notre cas d’utilisation, l’échantillon suivant est censé être disponible dans un emplacement Dropbox.

Ajouter un déclencheur de surveillance des fichiers pour lancer le scénario.

Créez un module Dropbox pour surveiller l’arrivée des modèles. Dès que le nouveau fichier de modèle arrive dans le dossier, le scénario est déclenché.

Action de surveillance des fichiers pour le module Dropbox

Ajouter une action Télécharger le fichier Dropbox

Une fois que le fichier modèle est détecté dans le dossier source, le module Dropbox avec l’action Télécharger le fichier transmettra le fichier du stockage à l’action PDF4me. Nous devons ajouter 2 actions Download files.

Un pour le téléchargement du modèle.

Action de téléchargement de fichiers pour le module Dropbox

Un autre pour télécharger les données JSON

Télécharger les données JSON depuis Dropbox

Ajouter le module PDF4me pour l’action Générer un document

Ensuite, dans le scénario, nous devons ajouter le module PDF4me avec l’action Generate Document. Ici, vous devez configurer le type de modèle, le type de sortie et les données d’entrée. Les données d’entrée peuvent être saisies directement dans le champ ou, dans notre cas, être configurées pour obtenir les données du fichier JSON.

Module PDF4me Generate Document pour Make

Les données du champ de saisie doivent ressembler à ce qui suit pour le modèle du cas d’utilisation :

{
    "Documents" : [
        {
            "header" : {
                "docType" : "Copie originale"
            },
            "corps" : {
                "Colonne1" : "Quantité",
                "Column2" : "Description",
                "Colonne3" : "Prix unitaire",
                "Column4" : "Total",
                "Facture" : {
                    "nombre" : 14957,
                    "date" : "25-02-2022",
                    "Instructions" : "Instruction Invoice 1",
                    "subTotal" : 200150,
                    "taxe" : "18%",
                    "dueDate" : "25-03-2022",
                    "expédition" : "200"
                },
                "Biller" : {
                    "phone" : "989797",
                    "fax" : "998463",
                    "email" : "[email protected]",
                    "web" : "www.doc1.com",
                    "adresse" : {
                        "entreprise" : "Organisation 1",
                        "Rue" : "Rue 1",
                        "Ville" : "Ville 1",
                        "zip" : "123456"
                    }
                },
                "Récepteur" : {
                    "nom" : "Recette 1",
                    "adresse" : {
                        "rue" : "testveien 3",
                        "Ville" : "Ville 1",
                        "zipcode" : "0555",
                        "Pays" : "Pays 1"
                    }
                },
                "Produit" : [
                    {
                        "quantité" : 1,
                        "description" : "item 1",
                        "unitPrice" : 45,
                        "totalPrice" : 867
                    },
                    {
                        "quantité" : 2,
                        "description" : "élément 2",
                        "unitPrice" : 123,
                        "totalPrice" : 3464
                    },
                    {
                        "quantité" : 3,
                        "description" : "item 3",
                        "unitPrice" : 323,
                        "totalPrice" : 6564
                    }
                ]
            },
            "pied de page" : {
                "phone" : "phone123",
                "fax" : "fax123",
                "email" : "[email protected]",
                "web" : "www.123.com"
            }
        
        }
    ]
}

Ajouter un Iterator pour gérer les multiples fichiers de sortie.

Comme il est évident, l’action PDF4me va générer plusieurs fichiers en fonction des données. Pour gérer cela, nous avons besoin d’un module Make Iterator pour gérer chaque fichier pour l’action suivante.

Itérateur de contrôle de flux pour les fichiers de sortie

Ajout du module Dropbox Upload pour sauvegarder les fichiers de sortie

Créez un module Dropbox avec l’action Télécharger des fichiers pour enregistrer tous les fichiers dans le dossier souhaité.

Action de téléchargement de fichiers pour le module Dropbox

Le résultat de notre scénario devrait ressembler au document ci-dessous.

Modèle final fusionné

Avec un PDF4me Abonnement développeur, vous pouvez créer des scénarios dans Make qui peuvent automatiser la génération massive de documents avec des données dynamiques à faible coût. L’abonnement garantit que votre automatisation ne s’arrête jamais en raison d’une pénurie du nombre d’appels API.

Related Blog Posts