Bots para finanzas: cómo aumentar la eficiencia administrativa a través de la automatización

Publicado: 2022-07-22

La mención de la oficina del futuro podría evocar imágenes de máquinas asumiendo tareas repetitivas y laboriosas. Pero ese futuro es ahora. El desarrollo de tecnologías como las aplicaciones basadas en la nube, así como las plataformas de software y los sistemas de planificación de recursos empresariales que ayudan a las empresas a lograr la máxima eficiencia operativa, han hecho realidad las oficinas automatizadas.

Según la consultora McKinsey, los departamentos de finanzas corporativas han reducido los costos en casi un 30 % durante la última década mediante la implementación de soluciones de automatización en áreas como compras, contabilidad y nómina. Estas innovaciones han transformado las funciones financieras y eliminado muchas ineficiencias.

Como analista financiero y desarrollador de software, aproveché al máximo la automatización configurando bots para tareas financieras cuando creé y construí mi propia empresa de consultoría, Pylink. Pero muchas oficinas de finanzas aún no lo han hecho, por lo que continúan dedicando una cantidad excesiva de tiempo y recursos a realizar tareas básicas.

No soy el único que ha notado el problema. La consultora PwC descubrió que las oficinas de finanzas necesitan aumentar su productividad y conocimiento a través de la automatización y la mejora de procesos, lo que puede reducir los costos en porcentajes de dos dígitos para muchas funciones clave. La investigación de PwC indica que la automatización podría reducir el 40 % del tiempo dedicado por las personas a los informes de gestión, el 27 % del tiempo dedicado a la contabilidad fiscal y el 23 % de las horas dedicadas a la gestión crediticia, la contabilidad general y la facturación.

Deloitte ha llegado a conclusiones comparables: citando una investigación publicada por Ayehu, informa que la automatización inteligente reduce los costos de los procesos comerciales entre un 25 y un 40 %. Y la investigación de Gartner revela que una empresa con 40 miembros del personal de contabilidad a tiempo completo podría eliminar más de $ 870,000 en gastos cada año mediante la automatización de tareas y la eliminación del trabajo adicional para corregir errores humanos.

En este artículo, me gustaría compartir algunas estrategias de automatización simples que he usado para mi empresa y mis clientes, soluciones fáciles que pueden ser útiles para organizaciones de cualquier tamaño.

Las soluciones listas para usar como QuickBooks pueden ser útiles para organizaciones más pequeñas. Sin embargo, para maximizar la eficiencia, aconsejo usar lenguajes de programación como Python para crear soluciones personalizadas, incluidos los bots para empresas. Python es muy intuitivo y proporciona una gran biblioteca estándar de herramientas, además de acceso a bibliotecas específicas de finanzas, lo que lo hace más versátil que Excel.

En mi artículo anterior para Toptal, mostré lo fácil que es usar Python para desarrollar modelos de flujo de efectivo personalizados para corporaciones. Te animo a leer eso si estás interesado en aprender el idioma. En este artículo, sin embargo, le daré una descripción general de las aplicaciones prácticas, que van desde el seguimiento del tiempo hasta la nómina y el correo electrónico, que un desarrollador puede implementar rápida y fácilmente si no está interesado en profundizar en el código usted mismo.

Cómo mi empresa aprovecha los bots para las finanzas: Pagos fáciles y eficientes

Permítanme demostrar lo útil que puede ser la automatización personalizada mostrándoles un ejemplo de mi empresa, que puede servir como estudio de caso. A pesar de ser una pequeña empresa, mi equipo en Pylink y yo enfrentamos una complejidad considerable que presenta desafíos en lo que respecta a los pagos, incluidos los siguientes:

  • Trabajamos en varios proyectos basados ​​en contratos por hora y tenemos que llevar un registro del tiempo de cada una de nuestras tareas.
  • Nuestros clientes son de diferentes países y por lo tanto nos pagan en múltiples monedas.
  • Si bien utilizamos un equipo de ingeniería de software interno en algunos proyectos, subcontratamos otros a desarrolladores de diferentes países.
  • Desde la perspectiva de la optimización fiscal, tenemos tres empresas: una con sede en el Reino Unido, otra con sede en la UE y otra independiente con sede en la UE.
  • Cada una de nuestras empresas tiene cuentas bancarias separadas en varias monedas, incluidos USD, EUR, GBP y HUF.
  • Tenemos costos regulares, como impuestos, salarios y beneficios para empleados de tiempo completo, espacio de oficina y suministros, y software, en diferentes monedas.

Para desarrollar un sistema de pago que cumpla con estos desafíos, uso (y recomiendo) las siguientes tecnologías para crear un bot de Python que se ejecute en la infraestructura de la nube de Amazon Web Services (AWS).

  • Base de código: Python (descargable gratis)
  • Servicio en el que se ejecuta el código: AWS Lambda
    • Lambda hace que sea conveniente escalar la ejecución de nuestro código según sea necesario.
    • Este servicio entra en vigencia solo cuando se activa. Pones tu código de Python en una función Lambda y configuras un evento desencadenante, desde un comando de voz de Alexa hasta una hora de calendario programada.
    • Dado que Lambda no tiene servidor, es una solución rentable que requiere que paguemos solo por el tiempo de cómputo que realmente usamos.
  • Herramienta de operaciones bancarias: Wise API
    • Una API (interfaz de programación de aplicaciones) es un intermediario de software que permite que dos aplicaciones se comuniquen entre sí. Wise API nos permite a mí y a mi equipo obtener fácilmente información de estados de cuenta y datos históricos de transacciones, así como realizar pagos automáticamente. También nos permite realizar un seguimiento de los tipos de cambio de divisas y realizar conversiones automáticas.
  • Rastreador de tiempo: Everhour + Everhour API
    • Este software ofrece un seguimiento preciso del tiempo y capacidades flexibles de facturación y presupuesto. Además, se integra a la perfección con herramientas de gestión de proyectos como Asana, Trello, Jira y GitHub.
  • Remitente del correo electrónico: servicio de correo electrónico simple de Amazon
    • Con Amazon SES, tenemos una forma adaptable y segura de enviar correos electrónicos HTML desde cualquier aplicación, junto con análisis de datos para monitorear las entregas y los rebotes.
    • El nivel de uso gratuito de SES le permite enviar hasta 62 000 mensajes por mes sin cargo si activa el servicio desde una aplicación alojada en Amazon EC2 o mediante AWS Lambda.
  • Programador: AWS EventBridge
    • Con esta herramienta, podemos activar fácilmente nuestro bot Python para realizar funciones financieras programadas mensual o quincenalmente.
    • Debido a que EventBridge, como Lambda, no requiere un servidor para funcionar, reduce significativamente nuestros gastos generales.
  • Notificación de holgura: API de holgura
    • Esta API envía alertas en tiempo real para informarnos de las horas de nuestros contratistas y decirnos si los clientes nos han pagado.
  • Slack comunicación con el bot: Slack API + Amazon API Gateway
    • La API de Slack permite que el bot de Python nos envíe solicitudes de pago para su aprobación.
    • Con un solo clic de nuestra parte, nuestro bot puede usar API Gateway para completar cada pago automáticamente.
    • API Gateway ofrece un nivel gratuito que le brinda acceso a más de un millón de llamadas API y un millón de mensajes por mes durante un año.

Así es como utilicé estas herramientas para automatizar un caso de uso multitarea: pagar al personal, a los contratistas y a mí mismo. Le mostraré todo el proceso a un alto nivel antes de profundizar en las prácticas de automatización más comunes.

Un diagrama de flujo con iconos muestra el proceso de nueve pasos que sigue Miklos para pagar a los empleados, a los desarrolladores y a sí mismo. Los detalles completos se proporcionan en el texto que sigue.

Ahora sigamos los pasos:

  1. El primer día de cada mes, usamos AWS EventBridge para activar el bot de Python que se almacena en AWS Lambda.
  2. Usando la API de Everhour, el bot extrae las hojas de horas de todos los empleados, contratistas (desarrolladores, en el caso de Pylink) y yo.
  3. Luego, el bot agrega las horas trabajadas para cada proyecto y crea una hoja de tiempo y una factura (ambos PDF). Luego envía estos documentos a los clientes por correo electrónico.
  4. Además, el bot notifica al equipo de Pylink a través de Slack sobre el horario de los contratistas. También pide permiso para pagarles presentando botones de “aprobar” y “denegar”.
  5. Si alguien del equipo de administración de Pylink aprueba la solicitud, el bot envía un mensaje a nuestra propia API (una URL pública siempre disponible) a través de AWS API Gateway, que ejecuta otro código en una función Lambda para realizar la transferencia.
  6. La segunda función de Lambda utiliza la API de Wise para realizar el pago.
  7. El día 14 de cada mes, usamos nuevamente EventBridge para programar otra serie de funciones de seguimiento. Pero esta vez, EventBridge activa un código diferente guardado en otra función de Lambda.
  8. Este código utiliza la API de Wise para realizar un seguimiento de las transacciones de las últimas dos semanas y comprobar si el cliente ha pagado.
  9. Si ha habido un pago del cliente, el bot envía una confirmación de Slack al equipo de Pylink a través de la API de Slack. Si no ha habido un pago, el bot envía un correo electrónico al cliente utilizando el servicio de Amazon SES.

Anteriormente, todas estas tareas se realizaban manualmente, lo que consumía un tiempo y una energía valiosos que ahora se pueden gastar en otros lugares. Lo mejor de todo es que pudimos configurar este proceso sin una gran inversión de tiempo o dinero.

Lo que puede hacer con la automatización

Ahora veamos algunas de las aplicaciones más prácticas para la automatización, usando las herramientas que ya he discutido. Para su referencia, incluiré algunos ejemplos de codificación como un recurso para sus desarrolladores internos, contratados o independientes, o para usted mismo, si elige aprender Python para ayudarlo con el trabajo de su empresa o cliente.

Seguimiento de horas de trabajo y proyectos

Al final de cada mes, el bot (usando Everhour) ejecuta la función "cerrar_el_mes" que recopila todas las horas que se dedicaron a diferentes tareas:

  • Mis horas en mis proyectos de consultoría (ingresos)
  • Las horas de los desarrolladores en los proyectos del cliente (tanto ingresos como costos)
  • Las horas de los desarrolladores en nuestro propio desarrollo de software (costo)

Lo que sigue es una función simple que devuelve un Pandas DataFrame, es decir, una tabla con filas y columnas, que incluye todas las horas y proyectos de un período de tiempo para un usuario determinado. Tenga en cuenta que, como se mencionó anteriormente, este y todos los extractos de codificación posteriores son solo aspectos destacados de la base de código completa, no un tutorial paso a paso para construir nuestro bot.

Una captura de pantalla que muestra una muestra del código de Python escrito para realizar la función "cerrar_el_mes". Muestra el lenguaje y la sintaxis que usó el autor línea por línea.

Creación de una hoja de tiempo y una factura en PDF

Con el seguimiento automático de las horas del proyecto de cada trabajador, la siguiente tarea es crear hojas de tiempo y facturas. Hay muchos paquetes de Python que le permiten crear archivos PDF. Usamos PyFPDF, una biblioteca compacta de generación de documentos que ofrece simplicidad y flexibilidad para dibujar formas y agregar imágenes y texto. Como puede ver en el siguiente ejemplo, produce una factura limpia y profesional:

Se muestra una factura de Pylink. Dice, "Facturado a Watchclever Ltd", el cliente, y proporciona la fecha de la factura, la fecha de vencimiento, el período facturado y el tipo de pago (transferencia bancaria). También muestra las horas de cada uno de los cuatro consultores y el total combinado de 45,7 horas.

Si bien existen métodos más avanzados para crear informes, PDF es una buena opción porque es un formato universal utilizado en todas las industrias y es fácil de generar. También permite enviar archivos a cualquier persona mientras se asegura de que todas las fuentes, imágenes, tablas y formatos se transfieran. Además, funciona independientemente del hardware y el sistema operativo de su computadora, y se puede usar sin conexión.

Mandando correos electrónicos

Amazon Simple Email Service es una herramienta rentable y escalable para crear e implementar correos electrónicos HTML con buen formato. Además, el análisis de datos de SES rastrea y comparte información sobre los resultados del ciclo de retroalimentación para notificarle si algún destinatario reporta su mensaje como spam, ya sea por error o porque el correo electrónico se envió a la dirección incorrecta. Los análisis también miden la efectividad de cada comunicación en términos de compromiso, incluidas las tasas de apertura y de clics. Esta característica es particularmente útil para los correos electrónicos de marketing.

Aquí hay un ejemplo del código de Python utilizado para generar un correo electrónico con una factura adjunta y enviarlo a un cliente:

Una captura de pantalla muestra un extracto de codificación con el lenguaje Python y la sintaxis que el autor usó para crear un correo electrónico, adjuntar una factura y enviarla a su cliente para el pago.

Y aquí está el correo electrónico que produce:

Una captura de pantalla del correo electrónico creado por el código. Se adjunta PDF de la factura. El mensaje dice:

Automatización de actividades bancarias

Elegimos Wise para cuentas bancarias privadas y comerciales porque tenemos ingresos y costos en varias monedas, y esta empresa de tecnología financiera tiene tarifas de cambio favorables, una interfaz de usuario intuitiva y una API flexible con documentación detallada.

Usamos esta API para realizar las siguientes tareas:

  • Recopile información de estados de cuenta para cada empresa y moneda, de modo que pueda ver rápidamente la liquidez agregada y real.
  • Extraer información histórica de transacciones, de modo que pueda identificar tendencias en diferentes elementos de costos, así como verificar si el cliente ha pagado la factura del mes anterior. Si no lo han hecho, la API envía un correo electrónico de recordatorio.
  • Realiza transferencias de dinero automáticamente.

A continuación se muestra el código que programamos para completar la primera de estas tareas (recopilación de información del estado de cuenta):

Una captura de pantalla muestra una muestra del código de Python que el autor usa para obtener información sobre el saldo de cada una de las empresas de Pylink.

Para los costos fijos regulares (salario, impuestos, costos de oficina, etc.), no necesita escribir código para realizar transferencias automáticas; Wise tiene una función de pago programado. Sin embargo, si la cantidad no es fija sino que se basa en una fórmula que un algoritmo puede calcular, la API de Wise es útil. En mi caso, el salario del asesor comercial es un ejemplo notable ya que es una función de los ingresos mensuales. Al verificar las horas rastreadas, el bot sabe exactamente cuántos ingresos tenemos y, por lo tanto, cuánto pagar al asesor.

Mitigación de riesgos a través de una conversación bilateral con el bot

Es crucial estar al tanto de la actividad del bot, ya que puede haber errores de codificación que no se revelan durante la prueba. Recibimos notificaciones en tiempo real en Slack, por lo que podemos corregir cualquier código roto de inmediato. Aquí hay un par de ejemplos de notificaciones que nos permiten saber que el bot está funcionando correctamente:

Esta imagen pequeña y simple captura un mensaje de Slack del bot Pylink que dice: "¡El pago se realizó correctamente!"

La siguiente imagen es otra notificación de Slack del bot Pylink. El texto dice: "Cierre del mes anterior 2022-01-01 -- 2022-01-31" y muestra el costo total del trabajo realizado para Watchclever Ltd. durante este período, seguido de un desglose de este costo en función de las horas por cada consultor.

También permitimos que el bot envíe preguntas de confirmación para el equipo de Pylink antes de cada transferencia bancaria. Esto nos ayuda a evitar errores debido a un error humano. Imagine que un desarrollador comete un error tipográfico e ingresa 825 horas en lugar de 8,25 horas para un ticket. Un paso de aprobación en Slack garantiza que no transfiramos cien veces más dinero del que debemos. El proceso conserva el elemento de verificación humana pero ofrece una experiencia perfecta.

Una captura de pantalla de una notificación de Slack de "Confirmación de pago" del bot Pylink. Dice: "Yurii trabajó 43,5 horas el mes pasado; por lo tanto, debe pagar [en blanco] USD. ¿Puedo pagarle?" (El monto en dólares está redactado). Se presentan las opciones "Aprobar" y "denegar".

También hay muchas otras funciones que puede lograr con la API de Slack.

La oficina del mañana

La automatización empresarial puede ayudar a las organizaciones a prosperar. Las herramientas que mencioné pueden transformar las empresas que necesitan una mayor eficiencia y control, especialmente cuando se trata de funciones transaccionales como cuentas por pagar, cuentas por cobrar y otras áreas contables centrales.

Pero este no es el final de la historia. Según McKinsey, el desafío para los líderes corporativos es crear una red aún más amplia para nuevas eficiencias. La empresa respalda la reinvención de toda la operación financiera, yendo más allá de las tareas transaccionales al liderar áreas como el análisis de datos: consolidación, simplificación y control de la información en toda la corporación. No podría estar mas de acuerdo. Le recomiendo que explore soluciones de codificación que ayuden a su organización a apropiarse de sus respuestas y promover su cultura orientada a los resultados. Mientras tanto, adoptar las tácticas que he descrito aquí puede ayudar a su empresa a ser más eficiente hoy, mientras le da una idea de las posibilidades del mañana.