# Caso: integración Evolution API ↔ Chatwoot — "Something went wrong in importing messages" > Resuelto el **2026-09-02** contra el host real. > Servicios: `evolution-api` v2.3.7 (`q6tnsvkvrjw4g0ab532l3r1s`, > https://evoapi.urieljareth.org) y Chatwoot v4.16.2 > (`c11xzy2tx2cdapm32f5b89vy`, https://chat.urieljareth.org). > Resultado: flujo en vivo bidireccional OK en inbox 6 (Asesoría Personal) e > inbox 10 (Personal), inbox 12 (JM) creado, errores de importación > desactivados (limitación de upstream, ver §2). --- ## 0. Síntomas reportados 1. En la conversación de estado aparecía `💬 Something went wrong in importing messages.` (inbox 6, conv 29). 2. "La instancia no funciona": el mensaje de prueba del usuario (desde su número personal al de Asesoría) no aparecía. ## 1. Diagnóstico (verificado con logs + código fuente 2.3.7) ### 1.1 La instancia SÍ funcionaba — el problema era visibilidad Los logs mostraban los mensajes de prueba (`5214451052792@s.whatsapp.net`) llegando y entregándose: `Found conversation ... ID: 22 - Name: Uriel Jareth`. La conversación 22 existía pero estaba **`pending`**: Chatwoot no muestra las pendientes en la bandeja "Abiertas" → parecía que no llegaba nada. ### 1.2 La importación de historial es imposible en esta topología (upstream) Cadena del error: - El importador (`chatwoot-import-helper.ts`) escribe **directo a la DB de Chatwoot** vía `CHATWOOT_IMPORT_DATABASE_CONNECTION_URI` — no hay fallback por API en 2.3.7. - El stack de Evolution trae esa URI apuntando a **su propio postgres** (`postgres:5432/chatwoot`) — una base que ahí no existe (Chatwoot usa su postgres en otro stack, DB `chatwoot`, `ssl=off`). - El cliente (`libs/postgres.client.ts`) **fuerza `ssl: {rejectUnauthorized: false}` siempre** → contra cualquier postgres de este host (todos `ssl=off`) el resultado es `Error on getExistingSourceIds: The server does not support SSL connections` → `Something went wrong in importing messages`. Habilitar SSL en el postgres de Chatwoot habría arriesgado el stack parcheado a mano; se descartó. La decisión: **desactivar la importación** (`importMessages=false`, `importContacts=false`) y operar solo con el flujo en vivo. Conclusión práctica: **el historial previo del teléfono no se importa** — exactamente el techo que impone WhatsApp de todas formas (ver discusión en [evolution-go-stack.md](evolution-go-stack.md) §3). ### 1.3 JM estaba roto de fábrica - Su `chatwoot.url` tenía **slash final** (`https://chat.urieljareth.org/`) — la doc exige sin slash. - No existía su inbox en Chatwoot → warnings `inbox not found` en bucle. ### 1.4 INSTA queda pendiente (decisión del usuario) Desconectada (`close`), `accountId=2` (solo existe la cuenta 1), token distinto y sin inbox. Mientras esté `enabled=true` seguirá dando avisos `inbox not found`. Reactivarla exige re-escanear QR + corregir accountId. ## 2. Fixes aplicados (2026-09-02) | Fix | Cómo | Resultado | |---|---|---| | Import fuera | `POST /chatwoot/set/{Asesoria Personal,Personal,JM}` con `importMessages=false`, `importContacts=false` | 201; 0 ERROR en logs después | | Conversaciones visibles | `conversationPending=false` en las tres + `toggle_status` de la conv 22 → open | conv 22 abierta en inbox 6 | | JM reparado | misma llamada con URL sin slash + `autoCreate=true` | **inbox 12 "JM" creado** | | Webhooks | verificados intactos en inbox 6 y 10 (`…/chatwoot/webhook/{instancia}`) | sin cambios | ## 3. Mapa actual de la integración | Instancia | Inbox | Estado | |---|---|---| | Asesoría Personal (5214438634306) | 6 | open, flujo bidireccional verificado en logs | | Personal (5214451052792) | 10 | open, verificado por el usuario | | JM (5214451672052) | 12 | open, inbox recién creado | | INSTA | — | close + accountId=2: reactivar a decisión del usuario | Notas operativas: - El parámetro `daysLimitImportMessages` queda inertre (importMessages=false). - Re-conectar una instancia o re-guardar la config de Chatwoot ya no dispara importaciones fallidas. - Si algún día se quiere importación de historial de verdad: habilitar SSL en un postgres y cruzar redes de stacks, o esperar que upstream añada fallback por API (el importador 100% SQL-Direct está en 2.3.7).