CASE STUDY · PRODUCTION DEPLOYMENTCASO DE ESTUDIO · IMPLEMENTACIÓN EN PRODUCCIÓN

From 88% manual review to 9.2%, with zero incorrectly approved invoices in the validated dataset.De 88% de revisión manual a 9,2%, con cero facturas aprobadas incorrectamente en el dataset validado.

An end-to-end accounts payable control and accounting workflow deployed in production for the Madrid based marketing consultant firm. Un circuito de control y contabilización de cuentas a pagar de punta a punta desplegado en producción para la consultora de marketing con sede en Madrid.

The problemEl problema

Every invoice arrived by email and was processed by hand: data entry, validation against the vendor master, duplicate checks, tax treatment and payment preparation. 88 out of every 100 invoices required human intervention, and the controls lived in people's heads, not in the process.Cada factura llegaba por correo y se procesaba a mano: carga de datos, validación contra el maestro de proveedores, control de duplicados, tratamiento fiscal y preparación del pago. 88 de cada 100 facturas requerían intervención humana, y los controles vivían en la cabeza de las personas, no en el proceso.

The redesignEl rediseño

One governed circuit, from the inbox to a controlled ERP handoff. AP Tower prepares and validates the accounting entry; the ERP records it and handles payment.Un solo circuito gobernado, de la casilla de correo a una carga controlada en el ERP. AP Tower prepara y valida el asiento; el ERP lo contabiliza y gestiona el pago.

Six-stage AP workflow from email intake through Google Document AI extraction, deterministic controls, human approval, an ERP-ready accounting entry, and posting and payment inside the ERP. An n8n automation rail delivers exceptions and alerts through authenticated webhooks, retries failures, and exposes execution status. 01 Email intake Invoices arrive by mail and PDF 02 AI extraction Google Document AI 03 Deterministic controls Duplicates, tax, vendor master vs ERP 04 Human approval Named decision recorded 05 ERP-ready entry ERP-importable ledger 06 ERP posting and payment Handled inside the ERP. AP Tower never pays Circuito AP de seis etapas desde la entrada por correo hasta la extracción con Google Document AI, controles determinísticos, aprobación humana, asiento listo para el ERP y contabilización y pago dentro del ERP. Una capa de automatización n8n entrega excepciones y alertas mediante webhooks autenticados, reintenta fallos y muestra el estado de las ejecuciones. 01 Entrada por correo Las facturas llegan por correo y PDF 02 Extracción con IA Google Document AI 03 Controles determinísticos Duplicados, impuestos, maestro de proveedores vs ERP 04 Aprobación humana Decisión nominada y registrada 05 Asiento importable al ERP Listo para importar al ERP 06 Contabilización y pago en el ERP Gestionados en el ERP. AP Tower no paga
n8n automation rail: authenticated webhooks · exception and alert routing · failed-delivery retries · execution and error monitoring Capa de automatización n8n: webhooks autenticados · derivación de excepciones y alertas · reintentos de entregas fallidas · monitoreo de ejecuciones y errores

Quality, measuredCalidad, medida

Accuracy here is not a promise. Every release is measured against a versioned golden dataset of 106 real invoices with the correct answer defined by hand, including cases designed to fail: fraud attempts, duplicates and broken data. A suite of 37 regression eval groups blocks any version that performs worse than the last.La exactitud acá no es una promesa. Cada versión se mide contra un golden dataset versionado de 106 facturas reales con la respuesta correcta definida a mano, incluidos casos diseñados para fallar: intentos de fraude, duplicados y datos rotos. Una suite de 37 grupos de evaluaciones de regresión bloquea cualquier versión que rinda peor que la anterior.

ResultsResultados

96.2%96,2%
extraction accuracyde exactitud de extracción
88% → 9.2%88% → 9,2%
invoices requiring human reviewde facturas que requieren revisión humana
0
invoices approved that should have been stoppedfacturas aprobadas que debían frenarse
106
invoices in the versioned golden datasetfacturas en el golden dataset versionado

Measured against the golden dataset, not estimated. Medido contra el golden dataset, no estimado.

Six weeks against real accounting recordsSeis semanas contra la contabilidad real

This was a regression test of the automated AP Tower pipeline, intentionally run without the Human in the Loop review stage. It was deliberately different from the production operating flow, where flagged or uncertain invoices were reviewed by a named person before export. Across May and June, 58 AP Tower outputs were reconciled against the Madrid based marketing consultant firm's accounting records. Of the 54 with a matching record, 36 matched base and VAT to the cent, 10 reflected the expected ERP tax treatment for foreign services, six differed only by posting date, and two extraction errors were identified.Esta fue una prueba de regresión del circuito automatizado de AP Tower, ejecutada intencionalmente sin la etapa de revisión Human in the Loop. Fue deliberadamente diferente del flujo operativo en producción, donde una persona identificada revisaba las facturas marcadas o inciertas antes de exportarlas. Durante mayo y junio, se conciliaron 58 outputs de AP Tower contra la contabilidad de la consultora de marketing con sede en Madrid. De los 54 con contraparte, 36 coincidieron al céntimo en base e IVA, 10 reflejaron el tratamiento fiscal esperado del ERP para servicios extranjeros, seis sólo presentaron diferencias de fecha de contabilización y se identificaron dos errores de extracción.

The final June batch imported 39/39 accounting movements, 14/14 supplier invoices and 14/14 VAT records into the ERP's demo company with zero import errors. Its accounting reconciliation closed at €0.00. One fiscal extraction issue reached the test batch; the reconciliation exposed it and the control was added after that load.El lote final de junio importó 39/39 movimientos contables, 14/14 facturas de proveedor y 14/14 registros de IVA en la empresa demo del ERP, sin errores de importación. La conciliación contable cerró en €0,00. Un error de extracción fiscal llegó al lote de prueba; la conciliación lo expuso y el control se agregó después de esa carga.

Field evidenceEvidencia de campo

58
AP Tower outputs reconciledoutputs de AP Tower conciliados
54
with a matching accounting recordcon contraparte contable
14/14
invoices and VAT records imported in the final June batchfacturas y registros de IVA importados en el lote final de junio
€0.00€0,00
accounting reconciliation differencede diferencia en la conciliación contable

Supervised comparison using downloaded accounting records. No write was made to the Madrid based marketing consultant firm's live ERP company. Comparación supervisada con registros contables descargados. No se realizó ninguna escritura en la empresa activa del ERP de la consultora de marketing con sede en Madrid.

GovernanceGobernanza

A named human approves the ERP export, with the decision and rationale recorded in a hash-chained audit trail. An embedded review copilot (GPT-5 mini) explains why an invoice was flagged and suggests next steps; it is strictly read-only and cannot modify data or approve payments. When the system is in doubt, it stops: fail-closed by design.Una persona identificada aprueba la exportación al ERP, y la decisión y su motivo quedan registrados en una trazabilidad de auditoría hash-encadenada. Un copiloto de revisión integrado (GPT-5 mini) explica por qué una factura fue marcada y sugiere próximos pasos; es estrictamente de solo lectura y no puede modificar datos ni aprobar pagos. Cuando el sistema tiene dudas, se detiene: fail-closed por diseño.

Automation business caseBusiness case de automatización

The accounting workflow already detected exceptions, but they remained inside AP Tower until an operator opened the review queue. n8n adds a reliable delivery and monitoring layer without moving accounting logic out of the controlled application:El circuito contable ya detectaba excepciones, pero quedaban dentro de AP Tower hasta que una persona abría la cola de revisión. n8n suma una capa confiable de entrega y monitoreo sin sacar la lógica contable de la aplicación controlada:

  • Receives minimal events through HMAC-authenticated webhooks.Recibe eventos mínimos mediante webhooks autenticados con HMAC.
  • Routes exceptions and operational alerts.Deriva excepciones y alertas operativas.
  • Retries failed deliveries through a durable outbox.Reintenta entregas fallidas mediante un outbox durable.
  • Makes execution status and errors visible to the operator.Hace visibles al operador el estado de las ejecuciones y los errores.

AP Tower remains the system of record. n8n cannot change accounting states, approve invoices or write to the ERP, and receives no PDFs, bank details, tax IDs, amounts, supplier names or invoice text.AP Tower sigue siendo el sistema de registro. n8n no puede cambiar estados contables, aprobar facturas ni escribir en el ERP, y no recibe PDFs, datos bancarios, identificadores fiscales, importes, nombres de proveedores ni texto de facturas.

Production engineering evidenceEvidencia de ingeniería en producción

The public evidence package shows how the system is operated after deployment: automated evals and container smoke tests, controlled Cloud Run promotion and rollback, structured monitoring and alerts, idempotent delivery, retries, dead-letter handling and manual replay procedures.El paquete público de evidencia muestra cómo se opera el sistema después del despliegue: evaluaciones y smoke tests del contenedor automatizados, promoción y rollback controlados en Cloud Run, monitoreo y alertas estructuradas, entrega idempotente, reintentos, manejo de dead letters y procedimientos de replay manual.

It contains sanitized architecture and failure-flow diagrams, the CI/CD workflow, monitoring definitions, release validation and the operational runbook. No client data, credentials or application source code are published.Incluye diagramas sanitizados de arquitectura y fallos, el workflow de CI/CD, definiciones de monitoreo, validación del release y el runbook operativo. No publica datos del cliente, credenciales ni código fuente de la aplicación.

View production evidence on GitHub →Ver evidencia de producción en GitHub →

IntegrationsIntegraciones

  • Email intake (Gmail via IMAP)Entrada por correo (Gmail mediante IMAP)
  • Google Document AI (extraction)Google Document AI (extracción)
  • The ERP (validated import of accounting entries, supplier invoices and VAT records)El ERP (importación validada de asientos, facturas de proveedor y registros de IVA)
  • n8n (authenticated webhooks, exception routing, retries and monitoring)n8n (webhooks autenticados, derivación de excepciones, reintentos y monitoreo)
  • Google Cloud Run (deployment)Google Cloud Run (despliegue)

Stack

Python · FastAPI · Streamlit · Google Document AI · PostgreSQL · n8n · Docker · Google Cloud Run