# n8n-fibromuebles — Workflows internos de Fibromuebles

Workflows de n8n para herramientas internas de Fibromuebles.
Instancia n8n: `http://localhost:5678` → expuesto en `n8n.edd-os.com.ar`.

> Nota: El agente de ventas Richard (WhatsApp) vive en el proyecto separado `n8n-agent-audit/`.

---

## Agente de Caja (Telegram)

Bot de Telegram personal para que Edd registre y consulte movimientos de caja con lenguaje natural.

### Workflows

| Workflow | ID | Función |
|---|---|---|
| `telegram-caja-agent` | *(ver script)* | Bot principal — Telegram → Claude → PocketBase |
| `tool-caja-registrar` | *(ver script)* | POST movimiento a PocketBase |
| `tool-caja-listar` | *(ver script)* | GET movimientos de PocketBase formateados |

> Los IDs se imprimen al ejecutar `workflows/create_caja_telegram.py`.

### Arquitectura

```
Telegram (Edd) → Telegram Trigger → IF (chat_id autorizado)
                                        ↓
                                    Agente Caja (Claude Sonnet 4.6)
                                        ├→ registrar_movimiento → PocketBase POST
                                        └→ listar_movimientos   → PocketBase GET
                                        ↓
                                    Telegram: enviar respuesta
```

### PocketBase
- Instancia: `https://cortes-db.edd-os.com.ar`
- Colección: `movimientos` (debe tener List y Create rules = vacío)
- Admin UI: `https://cortes-db.edd-os.com.ar/_/`

### Crear los workflows

```bash
cd /home/edd/Proyectos/Edd-OS/projects/n8n-fibromuebles/workflows
python3 create_caja_telegram.py
```

### Configuración manual post-script (n8n UI)

1. **Credencial Telegram:** Credentials → New → Telegram API → pegar Bot Token → nombre: `"Caja Telegram Bot"`
2. **Asignar credencial** en nodos `Telegram Trigger` y `Enviar Respuesta` del workflow `telegram-caja-agent`
3. **Credencial Anthropic** en el nodo `Claude (Anthropic)`
4. **Chat ID de Edd** en el nodo `IF — Autorizado` (mandar `/start` al bot y mirar logs del Trigger)
5. **Activar** el workflow `telegram-caja-agent`

### Ejemplos de uso

```
Cobré 5000 de efectivo, seña del pedido 1042
→ 📥 Ingreso $5.000 · Efectivo · Seña · #1042 ✓

Pagué 2500 con Macro por materiales
→ 📤 Egreso $2.500 · Macro · materiales ✓

Qué hay de hoy?
→ *2026-03-29:*
  📥 +$5.000 · Efectivo · Seña #1042 [○/○]
  📤 -$2.500 · Macro · materiales [○/○]
```

---

## File Structure

```
n8n-fibromuebles/
├── CLAUDE.md
└── workflows/
    ├── create_caja_telegram.py     # Script para crear los 3 workflows vía API
    ├── system-prompt-caja.md       # System prompt del agente (documentación)
    └── code-nodes/
        ├── tool-caja-registrar.js  # Código del nodo Parse & Build
        └── tool-caja-listar.js     # Código del nodo Formatear
```
