Generar facturas dinámicas con Make y PDF4me

By Nishanth Asokan | Automatización

Generar facturas dinámicas con Make y PDF4me

La generación de documentos dinámicos es el proceso de creación automática de un lote de documentos personalizados con datos dinámicos de una fuente. Por ejemplo, una factura podría personalizarse para dirigirse a cada destinatario por su nombre. La creación de documentos con datos dinámicos requeriría una fuente de datos, como una lista, una hoja de cálculo, una base de datos, JSON o matrices. Los campos de fusión son marcadores de posición en plantillas predefinidas que se sustituyen posteriormente utilizando datos de una de las fuentes de datos mencionadas anteriormente o de cualquier otra fuente de datos admitida.

La creación de una factura con datos dinámicos requiere la aplicación de técnicas como la combinación de correspondencia o el uso de campos de fusión. Uno de los métodos más populares de generación de documentos dinámicos consiste en el uso de la fusión de correo, que es mucho más fácil en el diseño de plantillas. Las facturas personalizadas se basan en plantillas de documentos creadas con Word u otros creadores de formularios que tienen la capacidad de fusionar campos. Aquí discutimos el uso de plantillas creadas usando la sintaxis mustache - {{campo marcador de posición}} - que posteriormente se sustituye por los datos dinámicos.

PDF4me Acción de generar documentos en Make le permite crear escenarios para generar documentos dinámicos y automatizarlos. El proceso de generación se puede automatizar si tiene la plantilla y los datos dinámicos preparados. La plantilla puede ser un archivo Word o HTML, o cualquier otro formato soportado. Los datos pueden ser una hoja de cálculo, CSV, JSON, XML o una lista de datos.

Generar una factura dinámica

Generar una factura con datos dinámicos utilizando Make requiere que la plantilla y los datos se almacenen en una plataforma de almacenamiento en la nube. Al menos, la plantilla debe estar en un almacenamiento en la nube como Dropbox, pero los datos pueden pasarse a un campo de datos de entrada directamente.

Veamos cómo crear una factura de ejemplo como la que se muestra a continuación utilizando un escenario de Make.

Plantilla de bigote para la facturación dinámica

En nuestro caso de uso, se espera que la siguiente muestra esté disponible en una ubicación de Dropbox.

Añadir un disparador de vigilancia de archivos para iniciar el escenario

Cree un módulo de Dropbox para vigilar la llegada de las plantillas. En cuanto llegue el nuevo archivo de plantilla a la carpeta, se activará el escenario.

Acción de ver archivos para el módulo de Dropbox

Añadir una acción de Dropbox de descarga de archivos

Una vez que el archivo de la plantilla se detecta en la carpeta de origen, el módulo de Dropbox con la acción Descargar archivos pasará el archivo desde el almacenamiento a la acción PDF4me. Necesitamos añadir 2 acciones de descarga de archivos.

Uno para descargar la Plantilla.

Acción de descarga de archivos para el módulo de Dropbox

Otro para descargar los datos JSON

Descargar datos JSON de Dropbox

Añadir el módulo PDF4me para la acción de generar documentos

A continuación en el escenario, tenemos que añadir el módulo PDF4me con la Acción Generar Documento. Aquí, usted necesita para configurar el tipo de plantilla, el tipo de salida, y los datos de entrada. Los datos de entrada pueden ser introducidos directamente en el campo o en nuestro caso, configurar para obtener los datos del archivo JSON.

Módulo PDF4me Generate Document para Make

Los datos del campo de entrada deben tener el siguiente aspecto para la plantilla del caso de uso:

{
    "Documents": [
        {
            "header": {
                "docType": "Original Copy"
            },
            "body": {
                "Column1": "Quantity",
                "Column2": "Description",
                "Column3": "Unit Price",
                "Column4": "Total",
                "Invoice": {
                    "number": 14957,
                    "date": "25-02-2022",
                    "instructions": "Instruction Invoice 1",
                    "subTotal": 200150,
                    "tax": "18%",
                    "dueDate": "25-03-2022",
                    "shipping": "200"
                },
                "Biller": {
                    "phone": "989797",
                    "fax": "998463",
                    "email": "[email protected]",
                    "web": "www.doc1.com",
                    "address": {
                        "company": "Organization 1",
                        "street": "Street 1",
                        "city": "City 1",
                        "zip": "123456"
                    }
                },
                "Recepient": {
                    "name": "recepeint 1",
                    "address": {
                        "street": "testveien 3 ",
                        "city": "City 1",
                        "zipcode": "0555",
                        "country": "Country 1"
                    }
                },
                "Product": [
                    {
                        "quantity": 1,
                        "description": "item 1",
                        "unitPrice": 45,
                        "totalPrice": 867
                    },
                    {
                        "quantity": 2,
                        "description": "item 2",
                        "unitPrice": 123,
                        "totalPrice": 3464
                    },
                    {
                        "quantity": 3,
                        "description": "item 3",
                        "unitPrice": 323,
                        "totalPrice": 6564
                    }
                ]
            },
            "footer": {
                "phone": "phone123",
                "fax": "fax123",
                "email": "[email protected]",
                "web": "www.123.com"
            }
        
        }
    ]
}

Añadir un Iterador para manejar los múltiples archivos de salida

Como es obvio, la acción PDF4me generará múltiples archivos basados en los datos. Para manejar esto necesitamos un módulo Make Iterator para manejar cada archivo para la siguiente acción.

Iterador de control de flujo para los archivos de salida

Añadir el módulo Dropbox Upload para guardar los archivos de salida

Cree un módulo de Dropbox con la acción Cargar archivos para guardar todos los archivos en la carpeta deseada.

Acción de subir archivos para el módulo de Dropbox

El resultado de nuestro escenario debería ser similar al del documento siguiente.

Plantilla combinada final

Con una Suscripción para desarrolladores de PDF4me , puede crear escenarios en Make que pueden automatizar la generación masiva de documentos con datos dinámicos a bajo coste. La suscripción asegura que su automatización nunca se detenga debido a cualquier escasez en el número de llamadas a la API.

Related Blog Posts