Middleware Botmaker ↔ Bitrix24

Manual de integración Bitrix24 y Botmaker

Generar y descargar PDF PDF del proyecto Iniciar sesión

Guía detallada para equipos técnicos y operaciones. Incluye URLs, cabeceras, cuerpos JSON mínimos y variables de entorno.

1. ¿Qué es esta aplicación?

Es un middleware (puente) entre Botmaker (WhatsApp / bots conversacionales) y Bitrix24 (CRM y leads). Recibe eventos por webhooks, los registra, los procesa y crea leads en Bitrix24.

2. Bitrix24 — qué debes configurar (explícito)

2.1 Webhook REST hacia Bitrix24

Para crear/actualizar leads desde el flujo Botmaker→Bitrix, necesitas una URL de webhook de Bitrix24 con permisos de CRM, por ejemplo:

https://TU_PORTAL.bitrix24.com/rest/USUARIO/CODIGO_SECRETO/

Esa URL completa va en BITRIX24_WEBHOOK_URL. La aplicación llamará crm.lead.add mediante POST a {WEBHOOK_URL}/{metodo}.

Asegúrate de que el webhook tenga permisos para: crear leads.

3. Botmaker — qué debes configurar (explícito)

3.1 Webhook de entrada hacia esta aplicación

Botmaker debe enviar eventos POST a:

https://ecdonline.com.mx/webhook/botmaker

3.2 Seguridad: cabecera de firma (obligatorio)

Cada petición debe incluir la cabecera HTTP:

X-Botmaker-Signature: <valor_secreto>

Ese valor debe ser idéntico (comparación segura) a BOTMAKER_WEBHOOK_SECRET en tu servidor. Si falta o no coincide → 401 Invalid signature.

3.3 Formato mínimo del JSON que valida la aplicación

La aplicación fusiona datos de messages, clientPayload, context, attributes y variables para obtener nombre, apellidos, fechas, etc. Conviene que el flujo del bot rellene esos datos de forma coherente con tus mapeos.

3.4 API de Botmaker (consulta/configuración)

Debes disponer de:

La aplicación utiliza estas credenciales para verificar conectividad técnica con Botmaker desde el panel.

3.5 Correo electrónico (E-mail) hacia Bitrix

El flujo Botmaker→Bitrix puede enviar el EMAIL estándar del lead en Bitrix (mismo formato multivalor que PHONE: VALUE + VALUE_TYPE: WORK). Los alias de origen incluyen email, correo, mail, etc. (configurable en config/integrations.php o JSON en .env). El valor debe ser un correo válido; si no lo es, el campo no se envía.

Si en tu portal el correo obligatorio es un campo personalizado (UF_CRM_*), define en el mapeo email → ese código (y comprueba en Bitrix si el campo admite formato múltiple o solo texto plano).

4. Variables de entorno (.env) — referencia rápida

VariableUso
APP_URLURL base pública del middleware (webhooks y enlaces).
BOTMAKER_API_URLBase de la API REST de Botmaker.
BOTMAKER_API_TOKENToken de conectividad para API de Botmaker.
BOTMAKER_WEBHOOK_SECRETDebe coincidir con X-Botmaker-Signature.
BITRIX24_WEBHOOK_URLURL REST de entrada (crm.lead.*, crm.contact.*).
BITRIX24_WEBHOOK_SECRETDebe coincidir con auth.application_token.
BOTMAKER_SALARY_CURRENCYMoneda para normalizar salario (ej. MXN).
BOTMAKER_SOURCE_ALIASES_JSONOpcional: JSON de alias de campos (ver config/integrations.php).
BOTMAKER_BITRIX_FIELDS_JSONOpcional: mapeo campo lógico → código de campo Bitrix.
BOTMAKER_ENUM_MAPS_JSONOpcional: mapas de listas (estado, semanas cotizadas, etc.).

Valores sensibles también pueden gestionarse desde el panel en Configuración (tabla settings), con prioridad sobre el fichero de configuración cuando existan.

5. Flujos paso a paso

5.1 Botmaker → Bitrix24

  1. Llega POST a /webhook/botmaker con firma válida.
  2. Se crea un registro en Registros de Webhooks con correlation_id.
  3. Se valida firma/token de Botmaker y se registra en Registros de Webhooks.
  4. Se mapean los campos del payload (nombre, teléfono, correo, estado + mapeos dinámicos activos).
  5. Se envía a Bitrix24 por crm.lead.add.
  6. El resultado (éxito o error) queda en el mismo registro de webhook.

6. Panel web (/monitor)

Tras iniciar sesión y verificar correo, según tu rol verás secciones como:

En la pantalla de inicio de sesión hay un enlace al manual público /manual.

Esta misma guía está en Manual de integración del menú lateral (usuarios con acceso al tablero). La copia pública sin sesión es la ruta /manual; dentro de la app autenticada, /monitor/manual.

7. Límites y buenas prácticas

8. Comandos útiles

9. Pruebas desde el webservice (panel y JSON)

Además de Artisan, puedes probar integraciones con la misma sesión del panel (cookies de Laravel).

9.1 Panel web

Ruta: https://ecdonline.com.mx/monitor/integration-tests. Requiere usuario autenticado, correo verificado y permiso gestionar configuración (settings.manage).

Las llamadas a Bitrix pueden tardar varios segundos (timeout HTTP configurable). Si algo falla, revisa la consola del navegador y storage/logs/laravel.log.

9.2 Endpoints JSON (HTTP)

Para Postman, scripts internos o orquestadores que compartan la sesión del navegador:

No están pensados para integración pública sin autenticación; no sustituyen al webhook oficial /webhook/botmaker.

9.3 Servicio interno

La lógica compartida vive en App\Services\IntegrationProbeService, usada por los comandos, el panel Livewire y el controlador JSON.