# n8n

:::tip Disponible
Esta integración está activa y lista para usar en todos los planes Pro.
:::

Conecta Frihet a n8n para automatizar flujos de trabajo: recordatorios automáticos, sincronización con CRM, notificaciones personalizadas, y más.

## ¿Para qué sirve?

Con n8n integrado:

- **Recordatorios automáticos** — Envía emails cuando una factura vence
- **Sincronización CRM** — Nuevos clientes se crean en Salesforce, Pipedrive, etc.
- **Notificaciones personalizadas** — Slack, email, Telegram, webhook personalizado
- **Flujos complejos** — Condicionales, loops, ramificaciones lógicas
- **Webhook endpoints** — Otros sistemas disparan acciones en Frihet

## Nodo de comunidad oficial

Frihet publica un nodo de comunidad oficial en npm: **`n8n-nodes-frihet`**.

Instálalo directamente desde n8n sin configurar HTTP requests manuales:

1. En n8n: **Settings → Community Nodes → Install**
2. Introduce: `n8n-nodes-frihet`
3. Confirma la instalación

O vía CLI en instancias self-hosted:

```bash
npm install n8n-nodes-frihet
```

El nodo aparece en tu paleta con acceso nativo a todos los recursos de Frihet:

| Recurso | Operaciones |
|---------|-------------|
| Invoice | Create, Get, List, Update, Delete, Send, Mark Paid |
| Quote | Create, Get, List, Update, Delete, Send |
| Expense | Create, Get, List, Update, Delete |
| Client | Create, Get, List, Update, Delete |
| Product | Create, Get, List, Update, Delete |
| Vendor | Create, Get, List, Update, Delete |

Paginación cursor-based en todas las operaciones List. Campos fiscales completos: IVA, IGIC, IRPF.

- [npm](https://www.npmjs.com/package/n8n-nodes-frihet)
- [GitHub](https://github.com/Frihet-io/n8n-nodes-frihet)

## Requisitos

- **Cuenta n8n** — [Crea una en n8n.io](https://n8n.io)
- **Conocimiento básico de n8n** — O usa templates preconfigurados
- **API endpoint de Frihet** — Consulta la [documentación de la API REST](/desarrolladores/api-rest)
- **Frihet Pro o superior**

## Obtener credenciales de Frihet

### En Frihet

1. Ve a **Ajustes** → **Integraciones** → **n8n**
2. Haz clic en **"Generar API Key"**
3. Copia la clave (algo como: `fh_live_XXXXXXXXXXXXXXXXX`)
4. Haz clic en **"Crear Webhook"**
5. Copia el webhook URL (para recibir eventos)

Guarda ambos en lugar seguro.

## Conectar Frihet a n8n

### Paso 1: Crea workflow en n8n

1. Ve a [n8n.io](https://n8n.io)
2. **Nuevo workflow**
3. Añade nodo: **Frihet** (búscalo)

### Paso 2: Configura credenciales

1. En el nodo de Frihet, ve a **Credenciales**
2. Haz clic en **"Crear nueva credencial"**
3. Pega la **API Key** de Frihet
4. Guarda

### Paso 3: Elige acción

En el nodo, elige qué hacer:

- Crear factura
- Crear gasto
- Crear cliente
- Obtener listado de clientes
- Obtener listado de facturas
- Marcar factura como pagada

## Casos de uso común

### Recordatorio de vencimiento

**Cuando:** Cada mañana a las 9am
**Qué hace:** Busca facturas vencidas y envía email al cliente

```
n8n workflow:
1. Trigger: Cada día a las 09:00
2. Nodo Frihet: Obtener facturas vencidas
3. Loop: Para cada factura
4. Nodo Email: Enviar email de recordatorio
5. Actualizar en Frihet: Marcar "Recordatorio enviado"
```

### Nuevo cliente → CRM

**Cuando:** Se crea cliente en Frihet
**Qué hace:** Automáticamente lo añade a Salesforce/Pipedrive

```
n8n workflow:
1. Trigger: Webhook de Frihet (nuevo cliente)
2. Nodo Frihet: Obtener datos del cliente
3. Nodo Salesforce: Crear contacto
4. Nodo Email: Notificar al equipo
```

### Factura pagada → Notificación Slack

**Cuando:** Se marca una factura como pagada
**Qué hace:** Envía notificación a Slack con detalles

```
n8n workflow:
1. Trigger: Webhook de Frihet (factura pagada)
2. Nodo Frihet: Obtener detalles de factura
3. Nodo Slack: Enviar mensaje formateado
4. Nodo Sheet: Registrar en Google Sheets (opcional)
```

### Crear factura desde form

**Cuando:** Alguien completa un formulario
**Qué hace:** Automáticamente crea factura en Frihet

```
n8n workflow:
1. Trigger: Webhook de formulario (TypeForm, Typebot, etc.)
2. Node: Procesar datos del formulario
3. Nodo Frihet: Crear factura
4. Nodo Email: Confirmar al cliente
```

## Templates preconfigurados

n8n y Frihet ofrecen templates listos:

1. En n8n, ve a **Community** → **Templates**
2. Busca **"Frihet"**
3. Elige un template
4. Haz clic en **"Use this template"**
5. Solo configura credenciales

### Templates disponibles

- "Recordatorio de facturas vencidas"
- "Sincronizar clientes a Airtable"
- "Notificaciones de pagos en Slack"
- "Crear facturas desde Typeform"
- "Backup diario a Google Drive"

Úsalos como base y personaliza.

## Webhook de Frihet

Frihet envía eventos automáticamente a n8n. Consulta la [documentación completa de webhooks](/desarrolladores/webhooks) para detalles sobre firma HMAC-SHA256, reintentos y todos los tipos de evento.

### Eventos que disparan webhook

| Evento | Datos enviados |
|--------|----------------|
| **Factura creada** | ID, cliente, monto, vencimiento |
| **Factura pagada** | ID, cliente, monto, fecha pago |
| **Factura vencida** | ID, cliente, monto, días vencida |
| **Cliente creado** | ID, nombre, email, teléfono |
| **Gasto creado** | ID, categoría, monto, fecha |
| **Pago recibido** | ID factura, cliente, monto |

### Configurar webhook en Frihet

1. **Ajustes** → **Integraciones** → **n8n**
2. Haz clic en **"Crear Webhook"**
3. Elige qué eventos disparar (recomendado: todos)
4. Copia la URL del webhook
5. En n8n, configura un nodo **"Webhook"** como trigger con esa URL

## Acciones disponibles en Frihet

### Crear factura

```javascript
Entrada:
- Cliente ID (o crear nuevo)
- Concepto
- Monto
- Vencimiento
- IVA

Salida:
- ID de factura creada
- Número de documento
- Estado
```

### Crear gasto

```javascript
Entrada:
- Categoría
- Monto
- Fecha
- Proveedor (opcional)

Salida:
- ID de gasto
- Confirmación
```

### Obtener listado

```javascript
Entrada:
- Filtro (fecha, cliente, estado)
- Límite de resultados

Salida:
- Array de facturas/gastos/clientes
```

### Marcar como pagada

```javascript
Entrada:
- ID factura
- Monto (opcional)
- Método de pago (opcional)

Salida:
- Confirmación
- Fecha de actualización
```

## Ejemplo completo: Recordatorio diario

### Objetivo

Cada mañana a las 8am, si hay facturas vencidas, envía email al cliente.

### Workflow en n8n

**Paso 1: Trigger**
```
Scheduler: Todos los días a las 08:00
Timezone: Europe/Madrid
```

**Paso 2: Obtener facturas vencidas**
```
Nodo: Frihet
Acción: Get Invoices
Filtro: State = "unpaid" AND Due Date < Today
```

**Paso 3: Loop sobre cada factura**
```
Loop Node: Para cada factura en el resultado
  - Obtener email del cliente
  - Calcular días vencida
```

**Paso 4: Enviar email**
```
Nodo: Gmail / SendGrid
Para: email del cliente
Asunto: "Factura #{{$node.Frihet.data.number}} por cobrar"
Cuerpo:
  "Tu factura {{id}} de {{monto}} euros
   está vencida desde hace {{días_vencida}} días.
   Por favor, realiza el pago cuanto antes.
   [Enlace de pago]"
```

**Paso 5: Actualizar en Frihet**
```
Nodo: Frihet
Acción: Update Invoice
Actualizar: reminder_sent = true
Actualizar: reminder_date = today
```

## Sincronización bidireccional con CRM

### Crear cliente en Frihet → Salesforce

```
1. Trigger: Webhook Frihet (cliente creado)
2. Frihet: Obtener datos del cliente
3. Salesforce: Crear Account
4. Salesforce: Crear Contact
5. Frihet: Guardar Salesforce ID en cliente
```

### Crear deal en Salesforce → Factura en Frihet

```
1. Trigger: Webhook Salesforce (deal ganado)
2. Salesforce: Obtener datos del deal
3. Frihet: Crear cliente (si es nuevo)
4. Frihet: Crear factura con monto del deal
5. Salesforce: Actualizar deal con link a Frihet
```

## Notificaciones personalizadas

### Opción 1: Email

```
Nodo: Gmail / SendGrid
Plantilla personalizada con:
  - Logo de tu empresa
  - Detalles de factura
  - Enlace de pago
```

### Opción 2: Slack

```
Nodo: Slack
Mensaje:
  ":moneybag: Factura pagada
   Cliente: {{cliente}}
   Monto: €{{monto}}
   Estado: Pagada ✅"
```

### Opción 3: WhatsApp/Telegram

```
Nodo: Telegram / WhatsApp (vía Twilio)
Mensaje:
  "Hola {{nombre}},
   Tu factura #{{id}} vence en 3 días.
   [Paga aquí]"
```

### Opción 4: Webhook personalizado

Si tienes tu propio sistema:

```
Nodo: HTTP POST
URL: https://tu-sistema.com/frihet-webhook
Body:
  {
    "event": "invoice_paid",
    "invoice_id": "...",
    "amount": 1200,
    "client": "..."
  }
```

Tu sistema procesa como necesite.

## Condiciones y lógica

Puedes agregar condiciones:

```
IF factura vencida MÁS DE 7 DÍAS
  THEN enviar email + crear tarea
ELSE IF vencida MENOS DE 7 DÍAS
  THEN solo enviar email
ELSE
  THEN no hacer nada
```

O ramificaciones más complejas:

```
IF cliente es "Premium"
  THEN llamar por teléfono
ELSE IF cliente es "Regular"
  THEN enviar email
ELSE
  THEN ignorar
```

## Testing y debugging

### Ejecutar workflow manualmente

1. En n8n, haz clic en **"Execute"**
2. Ves resultados paso a paso
3. Si hay error, lo muestra con detalles
4. Ajusta y vuelve a ejecutar

### Logs y historial

1. Ve a **Executions** en tu workflow
2. Ves cada ejecución:
   - Cuándo se ejecutó
   - Si fue exitosa
   - Tiempo de ejecución
   - Resultados de cada nodo

### Test con datos de prueba

Antes de activar (schedule), prueba:

1. Edita el trigger a **Manual**
2. Haz clic en **"Execute"** varias veces
3. Verifica que cada nodo funciona
4. Luego cambia a **Trigger automático** (scheduler)

## Límites y costos

### En n8n

- **Workflow automáticos:** Depende de tu plan
- **Ejecuciones:** Gratuito hasta cierto límite
- **Nodos:** Ilimitados
- **Integraciones:** Cientos disponibles

### En Frihet

- **API calls:** Incluidos en Pro (no hay límite adicional)
- **Webhooks:** Ilimitados
- **Datos:** Sin límite especial para n8n

## Troubleshooting

### "Webhook no dispara"

- Verifica que el webhook está **activo** en Frihet
- El evento debe coincidir con la configuración
- Comprueba logs de n8n: **Executions** → historial
- Si hay error HTTP, revisa estado del webhook

### "Error: No credentials found"

- En n8n, verifica que las credenciales están guardadas
- Copia nuevamente la API Key de Frihet
- Recrea la credencial

### "¿Cómo debug si algo no funciona?"

1. Añade nodo **"Log"** entre pasos para ver datos intermedios
2. Ejecuta manualmente paso a paso
3. Ve **Executions** → historial completo
4. Busca el error en los logs

### "¿Puedo usar múltiples workflows?"

Sí. Puedes tener:

- Workflow 1: Recordatorios diarios
- Workflow 2: Sincronización CRM
- Workflow 3: Backups automáticos
- Todos corriendo en paralelo

## Próximos pasos

- Explora [plantillas de n8n](https://n8n.io/workflows)
- Lee la [documentación de la API REST](/desarrolladores/api-rest) y los [webhooks](/desarrolladores/webhooks)
- Crea tu primer automation personalizado

---

**Anterior:** [Revolut Business](./revolut)
