Inicio / Guías prácticas / Cómo cobrar rápido: un sistema automatizado de facturación hecho por ti mismo

Cómo cobrar rápido: un sistema automatizado de facturación hecho por ti mismo

Tutorial general Tiempo de lectura: 5-8 min

9 de agosto de 2021 | 11 minutos

Guía histórica de Make (la fuente indica el 9 de agosto de 2021). Este artículo reproduce una guía publicada entonces por Make/Integromat. Los ejemplos, plantillas, módulos y funciones citados son los de esa guía y ese momento, no una ejecución real de este sitio ni una garantía de disponibilidad, compatibilidad o precios vigentes. Para el estado actual, consulta las fuentes oficiales. La guía original de Make (2021) presentaba esta solución de automatización de facturas como útil para freelancers y empresas que deseaban un proceso estandarizado capaz de aportar mejoras inmediatas en la productividad. Invoice3-automation-illustration.png La guía citaba que solo en Estados Unidos había más de 50 millones de freelancers en 2021, así que era probable que a algunos de ellos no les entusiasmara dedicar tiempo a las tareas de facturación. Es fácil entender por qué: la facturación es un proceso de varios pasos que consume algo de tiempo cada mes y en el que los pequeños errores pueden convertirse fácilmente en problemas administrativos graves. El tiempo es dinero, y nadie lo sabe mejor que un freelancer. La propia naturaleza del proceso de facturación —monótono, repetitivo y propenso a errores— lo convierte en un objetivo perfecto para la automatización, y por eso estamos aquí hoy. En este caso de uso te mostraremos cómo crear un sistema automatizado de facturación que hará lo siguiente por ti:

  • Calcular las horas trabajadas
  • Crear una factura
  • Guardar la factura en Google Drive
  • Enviar la factura por correo a la persona correspondiente (por ejemplo, RR. HH. o contabilidad)

Según esa guía, la solución resultaba útil para freelancers, pero también para empresas que trabajan con freelancers y deseaban un proceso estandarizado capaz de aportar mejoras inmediatas en la productividad. Ahora, remanguémonos y creemos algo nuevo juntos. Los pasos, módulos y fórmulas que siguen son el ejemplo que describía la guía original; adáptalos a tus propias cuentas y comprueba cada módulo antes de confiar en él.

Requisitos básicos

Nuestro sistema automatizado de facturación está pensado para freelancers que trabajan con aplicaciones de control horario, como Harvest, Clockify o Toggl. El escenario automatizado resultante se basa en Harvest, pero puedes cambiar esta app por otra aplicación de control horario siempre que sea compatible con Make. Además de esto, necesitarás una cuenta de Make (puede ser una gratuita), una cuenta de Google y la siguiente plantilla de factura. Nota importante: por favor, no solicites acceso de edición a la plantilla (no se concederá). Te recomendamos hacer una copia de la plantilla y añadirla a una carpeta de tu cuenta de Google Drive antes de continuar. Así es como se ve la plantilla de factura: El texto encerrado entre {{ }} corresponde a las variables que cambian con los últimos valores en cada nueva factura, según los datos generados en el escenario. Llegaremos a eso más adelante, no te preocupes. Ahora, vamos a empezar a crear el escenario de Make

Paso 1: Crear el escenario de Make

El primer paso para crear un escenario de Make es abrir el constructor de escenarios. Una vez inicies sesión en tu cuenta de Make, accederás a tu Dashboard. En la parte superior derecha de la pantalla verás un botón Create a new scenario. Haz clic en él y llegarás al constructor de escenarios. En el constructor de escenarios, verás un círculo con un signo más dentro y un cursor animado que te indica dónde hacer clic para empezar. Una vez hagas clic en el círculo, aparecerá la lista de aplicaciones disponibles. En el cuadro de búsqueda, escribe “Harvest” y haz clic en la app. Verás todos los módulos disponibles para la app (disparadores, acciones y búsquedas). Como esta automatización obtendrá todas las entradas de tiempo del mes anterior para crear la factura por ti, seleccionaremos el módulo List Time Entries como inicio del escenario. Después de hacerlo, tendrás que conectar tu cuenta de Harvest con Make.

Paso 2: Configurar el módulo de Harvest

En el cuadro de configuración, haz clic en el botón Add de la derecha y aparecerá un cuadro de autorización. Aquí tendrás que conceder autorización a Make para que pueda acceder a los datos de tu cuenta. Una vez autorizado, llega el momento de configurar el módulo. En el campo Number of entries to return, no necesitas introducir ningún número, ya que probablemente no sabrás cuántas entradas habrá en un mes concreto. Para evitarlo, haz clic en el campo y mapea la función de palabra clave ignore que encontrarás en la pestaña General functions. El resto de los campos permanecen sin cambios, excepto los campos de fecha From y To (a los que tendrás que desplazarte hacia abajo). Introducir fechas estáticas en estos campos no funcionará, ya que las fechas deberán cambiar cada mes y dentro del módulo no hay opción para seleccionar las fechas del mes anterior. Así que, para mostrar la fecha correcta, tendremos que usar una de las funciones integradas de Make, similares a las que encuentras en Excel. Veamos cómo hacerlo.

Dónde encontrar funciones en Make

Al configurar cualquier módulo de una app, simplemente haz clic en uno de los campos y aparecerá un cuadro con todas las funciones disponibles. Make tiene una variedad de funciones que te permiten manipular datos de todo tipo para que tus escenarios funcionen exactamente como quieres. Volviendo al módulo de Harvest, para mostrar las fechas correctas tendrás que usar algunas funciones de la categoría Date and time. Estas son:

  • addDays: devuelve una nueva fecha como resultado de añadir un número dado de días a una fecha. Los días se restan introduciendo un número negativo
  • setDate: devuelve una nueva fecha con el día del mes especificado en los parámetros
  • formatDate: devuelve una fecha en el formato solicitado y, opcionalmente, en una zona horaria especificada
  • parseDate: analiza una cadena con una fecha y devuelve la fecha

¿Te da respeto? Entendemos que hace falta un tiempo para acostumbrarse a las fórmulas, así que para resolverlo puedes simplemente copiar y pegar la siguiente fórmula en el campo From del módulo: {{parseDate(formatDate(setDate(addDays(now; -1); 1); "DD/MM/YYYY"); "DD/MM/YYYY")}} En el campo To, simplemente mapea la variable now, que devuelve la fecha y la hora actuales cuando se ejecuta el escenario. Una vez hecho esto, haz clic en OK y el módulo de Harvest quedará configurado. Probablemente estés pensando que, al usar la variable now, el escenario capturará las entradas de tiempo correspondientes al primer día del mes. Muy pronto te mostraremos cómo evitarlo, pero no nos saltemos ningún paso.

Paso 3: Cálculo de horas totales por tarifa horaria

En el primer paso, se obtienen de Harvest todas las horas individuales del intervalo de fechas. En el segundo paso, las horas se suman y se multiplican por tu tarifa horaria para obtener el importe total de la factura. Empecemos calculando las horas totales. Make tiene una herramienta que puede encargarse de esto fácilmente. Para añadir esta herramienta al escenario, sitúate sobre la app de Harvest y haz clic en el signo más de la derecha. Busca Tools y selecciona Numeric Aggregator. Sugerencia: también puedes seleccionar Numeric Aggregator desde el menú Tools en la parte inferior del constructor de escenarios. Para configurar el módulo, solo tienes que seleccionar la opción SUM en Aggregate function y asignar el elemento de datos Hours del módulo de Harvest al campo Value. ¿Recuerdas el punto del final del paso 1 sobre usar la variable now y arrastrar por error entradas del día 1 del nuevo mes? Ahora veremos cómo evitar que eso ocurra. Make tiene otra herramienta integrada llamada Filter, en la que puedes establecer condiciones que los datos deben cumplir antes de poder continuar en el escenario. En otras palabras, puedes configurar un Filter para permitir que solo pasen las entradas de tiempo del mes anterior, omitiendo las entradas del día 1 del nuevo mes cuando se ejecute el escenario.

Paso 4: Configurar el filtro

Para configurar un Filter, haz clic en la ruta entre los 2 módulos para abrir el cuadro de configuración. Puedes empezar dándole un nombre al filtro. En el primer campo bajo Condition, necesitas usar la función formatDate combinada con la función addDays para mostrar solo el nombre del mes anterior. Esta es la fórmula que debes usar en ese campo: {{formatDate(addDays(now; -1); "MMM")}} Debajo de eso, selecciona el operador de texto Equal to. En el campo inferior, tienes que mapear el elemento de datos Created at del módulo de Harvest y también convertirlo para mostrar solo el nombre del mes. Al hacerlo, el Filter comparará el mes del campo superior con el mes en que se crearon las entradas en el campo inferior, que puede ser el mes anterior o el actual. Solo las entradas creadas en el mes anterior cumplirán la condición y pasarán a los módulos siguientes, mientras que las entradas creadas el día 1 se detendrán en el Filter. Usa la siguiente fórmula para conseguirlo y mapea el elemento de datos Created at entre corchetes como se muestra en la imagen inferior. {{formatDate(;"MMM")}}

Paso 5: Configurar las variables para calcular el importe debido

Una vez configurado el Filter, es hora de calcular el importe total multiplicando las horas totales por tu tarifa horaria. Tendrás que crear algunas variables para los cálculos, de modo que puedas usar estas variables en el siguiente módulo para crear la factura. El módulo que debes usar aquí es Set multiple variables, que también se encuentra en el menú Tools. Hay 5 variables que vas a crear:

  • Hours
  • Amount
  • Month
  • Name
  • Address

Empecemos añadiendo una variable para Hours. Primero, haz clic en el botón Add item. Debes introducir manualmente el nombre de todas las variables que añadas en el campo Variable name. A continuación tienes la fórmula que puedes usar en el campo Variable value para redondear el total de hours generado por el módulo anterior. Mapea el elemento de datos result, que contiene las horas totales del módulo Numeric aggregator, dentro de los corchetes. Fórmula: {{round((***** 100)) / 100}} Después, añade la segunda variable para Amount. De nuevo, usa la fórmula de redondeo que aparece abajo, mapea el elemento de datos result y sustituye la parte de “your hourly rate” por tu tarifa horaria real (el número, sin símbolos). Fórmula: {{(round((3.result***** 100)) / 100)***** "{your hourly rate}"}} La tercera variable es la de Month. Como quieres mostrar el mes anterior, usa esta fórmula: {{formatDate(addDays(now; -1); "MMM")}} Para las variables Name y Address, simplemente introduce los datos que quieras que se muestren en la factura cada vez que se cree.

Paso 6: Crear la factura

Ahora pasamos a la factura propiamente dicha. Como la plantilla de factura es un documento de Google, busca la app de Google Docs y selecciona el módulo Create a Document from a template. Pulsa el botón Add y conecta tu cuenta de Google con Make. En el menú Create a document from a template, selecciona By Dropdown. En el menú Choose a Drive, selecciona My Drive. En el campo Document ID, elige la plantilla de factura que proporcionamos al principio (y que guardaste en tu Google Drive). En este punto, necesitas mapear los datos a los campos del módulo Google Docs. Copia y pega las siguientes fórmulas de date and time en los campos correspondientes del módulo:

  • invoice_id : {{formatDate(now; "YYYYMMDD")}}
  • bill_date : {{formatDate(now; "DD/MM/YYYY HH:MM")}}
  • due_date : {{formatDate(addDays(now; 14); "DD/MM/YYYY")}}

El due_date anterior está configurado para el día 15 de cada mes, y puedes cambiarlo en la fórmula según prefieras. Continúa y mapea los datos del módulo Set multiple variables, como se muestra a continuación: En el campo New Document’s Location, elige dónde quieres subir la nueva factura en tu Google Drive. Después de hacer esto, el módulo de Google Docs quedará completamente configurado. Sigamos con el escenario.

Paso 7: Descargar y enviar la factura por correo

Al final del paso anterior, la nueva factura se sube a Google Drive. En el paso actual, la factura se descargará desde su ubicación y se enviará por correo al destinatario (o destinatarios, si hay más de uno). Primero tendrás que buscar la app de Google Drive y elegir el módulo Download a file. Una vez selecciones tu cuenta de Google Drive, mapea el elemento de datos Document ID del módulo de Google Docs al campo File ID. Después, marca la opción Show advanced settings en la parte inferior del módulo y selecciona PDF en la opción Convert Google Documents Files to Format. Eso es todo lo que necesitamos para configurar este módulo. Pasemos al paso final de esta automatización.

Paso 8: Configurar el módulo de Gmail

Y por fin puedes enviar la factura por correo a quien necesites añadiendo al escenario el módulo de Gmail Send an email. Este módulo es bastante sencillo de configurar. Después de añadir tu cuenta de Google, introduce el destinatario al que quieres enviar la factura. Si tienes varios destinatarios, tendrás que añadir cada uno individualmente (uno a uno). Puedes redactar el correo añadiendo Subject y Content en sus respectivos campos. Todos los datos que necesitas pueden asignarse desde el módulo Set multiple variables, como en la imagen inferior. Nota: nuestro ejemplo usa algo de HTML para los espacios y el párrafo, pero puedes omitirlo si quieres e introducir el texto que desees. Lo último que hay que hacer en este módulo (y lo más importante) es adjuntar la factura descargada al correo. Para ello, haz clic en Add an attachment y selecciona Google Drive > Download a file como source file. También tienes la opción de añadir destinatarios en CC y Blind CC (copia oculta) en los campos situados debajo del adjunto. Una vez hecho esto, solo tienes que pulsar el botón Save en la parte inferior del constructor de escenarios para guardar todos los ajustes de tu escenario. ¡Ya casi está! En este punto, solo nos queda asegurarnos de que la automatización funciona.

Paso 9: Probar el escenario

El paso final es probar el escenario y asegurarte de que funciona exactamente como quieres. El mejor día para probarlo será el día 1, así el escenario obtendrá las entradas de tiempo correctas. Sin embargo, también puedes probar el escenario cualquier otro día para comprobar si realmente se envía una factura (ignorando las entradas). Simplemente pulsa el botón Run once que encontrarás en la parte inferior izquierda del escenario. La ejecución debería verse así: Si la ejecución fue correcta, entonces puedes programarlo para que se ejecute automáticamente el día 1 de cada mes. Para programar el escenario, primero actívalo con el interruptor situado debajo del botón Run once. En el cuadro de configuración de la programación, selecciona Days of the month en Run scenario, marca 1 en Days e introduce la hora a la que quieres que se ejecute el escenario. Después, pulsa Activate. Y eso es todo, amigos. Si has llegado hasta aquí, has creado tu propio sistema automatizado de facturación desde cero.

Conclusión

Como ya cubrimos la automatización de facturas y las apps de control horario en el pasado, solo era cuestión de tiempo que combináramos estas herramientas en una solución capaz de marcar la diferencia para millones de personas que trabajan por horas. Además, las empresas que trabajan con freelancers y contratistas también pueden beneficiarse de este escenario automatizado, ya que esta solución puede clonarse una y otra vez. Mejores procesos llevan a mejores resultados: solo hace falta un poco de paciencia y una herramienta potente. ¡Feliz automatización!

Preparación

Antes de montar el flujo, comprueba que Make encaja con tu caso

Si el proceso se repite, implica varias aplicaciones y necesita mantenimiento visual, puedes empezar con una versión de bajo riesgo en Make.

  • Define primero la entrada, la salida y el disparador
  • Consulta precios, límites y restricciones de módulos en la página oficial
  • Mantén las alertas de error y la revisión manual
  • No automatices primero acciones de alto riesgo
★★★★★
Primero valora el caso y luego prueba a pequeña escala
Esta página incluye enlaces de afiliado. Podemos ganar una comisión si te registras o contratas a través de ellos, sin costo adicional para ti.