Configurar WhatsApp Business

Esta guía acompaña la pantalla de configuración de WhatsApp (Ajustes → Integraciones → WhatsApp → Configurar). Los pasos van numerados igual que las ayudas que ves bajo cada campo. Cuenta con 1-3 días, porque Meta revisa a mano la verificación de la empresa y las plantillas; si quieres empezar ya, Telegram no necesita nada de esto.

Estas guías se publican de momento en castellano. Dentro de la aplicación, la misma ayuda está en castellano, catalán, gallego, euskera, inglés y francés.

1. Qué pide la pantalla

En “Configuración Básica”, un “Nombre de la Integración” y el “Entorno”. En “Credenciales”, cuatro datos de Meta: el “ID del número de teléfono” (paso 4), el “Token de acceso” (paso 5), el “Secreto de la aplicación” (paso 6) y el “Token de verificación del webhook”, que inventas tú (paso 7).

Al guardar con “Guardar Configuración” aparece “Probar Conexión”. Después, cada usuario activa WhatsApp en sus preferencias de notificación: el enlace “Ir a preferencias de notificación” lleva allí.

2. Pasos 1 a 3: cuenta de Meta Business, verificación y app

Paso 1. Entra en business.facebook.com con tu cuenta de Facebook y crea un portafolio comercial (nombre de la empresa, tu nombre y un email de empresa).

Paso 2. En “Configuración del negocio → Centro de seguridad → Verificación del negocio”, sube el CIF/NIF y un justificante de dirección. Meta tarda 2-4 días; sin verificar solo puedes enviar en modo de prueba.

Paso 3. En developers.facebook.com → “Mis apps” → “Crear app”, elige el caso de uso “Conectar con clientes por WhatsApp”, ponle nombre y asóciala a tu portafolio.

3. Pasos 4 a 6: número, token y secreto de la app

Paso 4. En “Configuración de la API”, en el desplegable “Desde”, pulsa “Añadir número de teléfono” y verifícalo por SMS o llamada. El número no puede tener ya WhatsApp instalado. Debajo aparece el ID del número: cópialo en “ID del número de teléfono”.

Paso 5. El token de “Configuración de la API” caduca en 24 h. En “Configuración del negocio → Usuarios del sistema” crea un usuario del sistema administrador, asígnale la app y la cuenta de WhatsApp, pulsa “Generar token” con caducidad “Nunca” y los permisos whatsapp_business_messaging, whatsapp_business_management y business_management. Cópialo (empieza por EAA…) en “Token de acceso”: solo se muestra una vez.

Paso 6. En la app de Meta, “Configuración → Básica”, pulsa “Mostrar” junto a la clave secreta y cópiala en “Secreto de la aplicación”.

4. Pasos 7 y 8: token de verificación y guardar

Paso 7. Inventa una cadena larga y aleatoria (32 caracteres o más) y escríbela en “Token de verificación del webhook”. La usarás otra vez en el paso 9 y tiene que coincidir.

Paso 8. Pulsa “Guardar Configuración” y luego “Probar Conexión”. Si el token y el número son correctos, la integración pasa a activa.

5. Paso 9: el webhook de estado (recomendado)

Sirve para que goPrevina sepa si cada mensaje se entregó o se leyó. En la app de Meta, “WhatsApp → Configuración → Webhooks → Editar”. En “Callback URL” escribe https://<dominio-de-tu-API>/api/v1/whatsapp/webhook y en “Verify token” el mismo valor del paso 7. Pulsa “Verificar y guardar” y, en “Campos del webhook”, suscríbete a messages.

6. Paso 10: plantillas de mensajes para copiar y pegar

WhatsApp solo deja enviar plantillas aprobadas por Meta. Créalas en WhatsApp Manager → “Plantillas de mensajes” → “Crear plantilla”, con el nombre exacto y la categoría indicada, y pega el cuerpo tal cual (los parámetros {{1}}, {{2}}… van en el orden de la lista). Meta suele aprobar las de tipo UTILITY en 24-48 h.

prl_user_invitation — Categoría: UTILITY — Parámetros: recipientName, tenantName, activationUrl

Cuerpo para copiar: Hola {{1}}, te han invitado a {{2}} en goPrevina. Activa tu cuenta aquí: {{3}}

prl_password_reset — Categoría: AUTHENTICATION — Parámetros: recipientName, resetUrl

Cuerpo para copiar: Hola {{1}}, has solicitado restablecer tu contraseña. Usa este enlace: {{2}}

prl_critical_alert — Categoría: UTILITY — Parámetros: alertTitle, alertMessage

Cuerpo para copiar: ALERTA CRÍTICA: {{1}}. {{2}}

prl_document_expiring — Categoría: UTILITY — Parámetros: documentName, expiryDate, daysRemaining

Cuerpo para copiar: El documento «{{1}}» caduca el {{2}} (quedan {{3}} días). Revísalo en goPrevina.

prl_document_expired — Categoría: UTILITY — Parámetros: documentName, expiryDate

Cuerpo para copiar: El documento «{{1}}» ha caducado el {{2}}. Actualízalo en goPrevina.

prl_incident_reported — Categoría: UTILITY — Parámetros: incidentNumber, title, location

Cuerpo para copiar: Nuevo incidente {{1}}: «{{2}}» en {{3}}. Consúltalo en goPrevina.

prl_incident_assigned — Categoría: UTILITY — Parámetros: incidentNumber, title, assignedBy

Cuerpo para copiar: Se te ha asignado el incidente {{1}}: «{{2}}» (por {{3}}). Ábrelo en goPrevina.

prl_inspection_scheduled — Categoría: UTILITY — Parámetros: inspectionTitle, scheduledDate, location

Cuerpo para copiar: Inspección programada: «{{1}}» el {{2}} en {{3}}.

prl_inspection_reminder — Categoría: UTILITY — Parámetros: inspectionTitle, dueDate

Cuerpo para copiar: Recordatorio: la inspección «{{1}}» vence el {{2}}.

prl_training_reminder — Categoría: UTILITY — Parámetros: courseName, sessionDate, location

Cuerpo para copiar: Recordatorio de formación: «{{1}}» el {{2}} en {{3}}.

prl_medical_appointment — Categoría: UTILITY — Parámetros: appointmentDate, appointmentTime, location

Cuerpo para copiar: Tienes cita de vigilancia de la salud el {{1}} a las {{2}} en {{3}}.

prl_meeting_invitation — Categoría: UTILITY — Parámetros: meetingTitle, meetingDate, organizer

Cuerpo para copiar: Reunión: «{{1}}» el {{2}}, organiza {{3}}.

prl_notification — Categoría: UTILITY — Parámetros: title, message

Cuerpo para copiar: {{1}}: {{2}}

prl_generic — Categoría: UTILITY — Parámetros: dynamic

Cuerpo para copiar: {{1}}