Las facturas del correo a una hoja, solas
n8n coge cada factura en PDF de tu Gmail, Claude saca proveedor, fecha, base, IVA y total, y todo cae en una hoja de Google para revisar.
Qué consigues
Cada factura en PDF que llega a tu Gmail acaba como una fila en una hoja de Google: proveedor, CIF, número, fecha, base, IVA y total. Ejemplo: un bar de tapas en Sevilla que recibe al mes facturas de 12 proveedores (bebidas, pescado, pan, hielo, gas). Antes alguien las apuntaba a mano el domingo. Ahora solo revisa la hoja y se la pasa a la gestoría.
Lo que necesitas
- n8n encendido de forma continua: en un servidor o en n8n Cloud (desde 20 €/mes en facturación anual). En tu portátil solo funcionará mientras esté encendido.
- Gmail y Google Sheets conectados a n8n. En n8n Cloud basta con «Sign in with Google». Autoalojado, necesitas tu propia credencial OAuth (lo explicamos en la guía de primer flujo).
- Una clave de la API de Claude con algo de saldo. En n8n Cloud también puedes usar los créditos de su pasarela.
- Coste de IA: con Claude Haiku 5.5 (0,10 $ por millón de tokens de entrada), 12 facturas de una o dos páginas salen por céntimos al mes. Con Sonnet 5.5, que lee mejor las facturas raras, tampoco llega a 1 $.
- Hora y media.
Pasos
1. Etiqueta las facturas en Gmail
En Gmail, abre las opciones de búsqueda, pon los remitentes de tus proveedores y marca que tenga adjunto. Si quieres, prueba antes esta búsqueda:
has:attachment filename:pdf from:(bebidas@proveedor.es OR pedidos@pescados.es)
Pulsa Crear filtro y elige aplicar la etiqueta «Facturas».
Deberías ver: las facturas nuevas entrando con la etiqueta «Facturas».
2. Prepara la hoja
Crea una hoja con estas columnas: Recibida, Proveedor, CIF, Número, Fecha factura, Base, IVA %, Cuota IVA, Total, Estado.
Deberías ver: la fila de cabecera y nada más.
3. Gmail Trigger con adjuntos
En n8n añade Gmail Trigger, evento Message Received, y comprueba cada hora. Pon a mano estos ajustes:
- Simplify: apagado. Si está encendido, no aparecen las opciones de adjuntos.
- Filters > Label Names or IDs: Facturas.
- Options > Download Attachments: encendido. El primer adjunto llega como
attachment_0.
Deberías ver: al pulsar Execute, el último correo con su PDF en la pestaña de datos binarios.
4. Claude lee la factura
Añade el nodo Anthropic, recurso Document, operación Analyze Document. Elige el modelo (Haiku 5.5 para empezar). En Input Type pon Binary File(s) y en el campo del binario, attachment_0. En Text Input pega:
Eres auxiliar administrativo de un bar en España. Lee esta factura y
devuelve SOLO un JSON, sin texto antes ni después, con estas claves:
proveedor, cif, numero, fecha_factura (AAAA-MM-DD), base, iva_porcentaje,
cuota_iva, total.
Los importes, como números con punto decimal y sin símbolo de euro.
Si hay varios tipos de IVA, pon en iva_porcentaje "varios" y suma las cuotas.
Si un dato no aparece o no se lee bien, pon null. No inventes nada.
Si el documento no es una factura, devuelve {"no_es_factura": true}.
Deberías ver: en la salida, un campo content con el JSON como texto.
Alternativa: el nodo Extract From File (operación Extract From PDF) saca el texto del PDF sin IA. Luego se lo pasas a Claude con Message a Model. Aquí usamos Analyze Document porque es más sencillo y le envía a Claude el PDF tal cual.
5. Convierte el texto en campos
Añade un nodo Code (JavaScript) con esto:
return $input.all().map(item => {
const texto = item.json.content[0].text;
const limpio = texto.replace(/`{3}(json)?/g, '').trim();
return { json: JSON.parse(limpio) };
});
Deberías ver: proveedor, total y el resto como campos separados.
6. Añade la fila
Nodo Google Sheets, Sheet Within Document, Append Row. Arrastra cada campo a su columna. En «Recibida» pon la expresión {{ $now.toFormat('yyyy-MM-dd') }} y en «Estado» escribe a mano Pendiente de revisar.
Deberías ver: la factura de prueba en la hoja.
7. Revisa y publica
Prueba con tres facturas de proveedores distintos y compara cada fila con el PDF. Cuando cuadren, publica el flujo.
El gestor manda. La hoja sirve para tenerlo todo controlado y adelantar trabajo. No es tu contabilidad. Revisa cada fila contra el PDF, cambia el estado a «Revisada» y sigue mandando las facturas originales a tu gestoría. Lo que diga tu gestor va por delante de lo que diga la hoja.
Errores típicos
- No salen las opciones de adjuntos. Tienes Simplify encendido en el Gmail Trigger. Apágalo.
- El JSON falla en el nodo Code. Claude ha añadido texto alrededor. Insiste en el prompt con «SOLO un JSON» o sube a Sonnet 5.5. El código ya limpia las marcas de bloque de código.
- Un proveedor manda dos PDF (factura y albarán). El flujo solo lee
attachment_0. Pide al proveedor un PDF por correo o repite los pasos 4 a 6 conattachment_1. - Importes con coma que la hoja trata como texto. Pide números con punto (ya está en el prompt) y pon las columnas de importes con formato de moneda en Sheets.
- Fiarte sin revisar. Una cifra mal leída descuadra el trimestre. La columna «Estado» existe para eso. Y comparte la hoja solo con quien la necesite: las facturas llevan datos de terceros.
Siguiente paso
Si es tu primer flujo en n8n, empieza por n8n gratis: instálalo y haz tu primer flujo. Para ordenar el resto del correo, sigue con Ordena tu bandeja de entrada con Claude. Si prefieres que funcione desde el primer día, en KENSHO te lo dejamos montado con tus proveedores reales.