El ejemplo
La consola de administración de Bridge proporciona un ejemplo generado con la configuración de tu espacio de trabajo. El ejemplo ampliado de abajo agrega validación y mensajes sobre el estado del envío. Antes de ejecutarlo, reemplaza los valores de ejemplo con los de la configuración generada para ti. Reemplaza el marcado del formulario y el texto del consentimiento con los tuyos. Acme Motors es un negocio ficticio usado en este ejemplo. Sustitúyelo por el negocio que le escribirá a la persona y describe los mensajes de WhatsApp que acepta recibir. Consulta los requisitos de consentimiento. El script muestra validación, estado del envío y manejo de errores. Conserva los campos de solicitud y la acción de reCAPTCHA de tu configuración generada.Qué hace el ejemplo
- Comprueba los campos obligatorios antes de obtener un token de CAPTCHA.
- Registra
consent.capturedAtcuando la persona marca la casilla. Si el navegador restaura una casilla marcada anteriormente, pide una nueva acción de consentimiento. - Permite un solo envío a la vez y mantiene el botón deshabilitado después de la aceptación para evitar otro envío desde esa instancia del formulario.
- Presenta un
202como aceptación y puesta en cola, y muestra elrequestIddevuelto como referencia para soporte. Nunca afirma que se haya entregado un mensaje de WhatsApp. - Muestra los fallos de CAPTCHA que permiten un nuevo intento y genera un token nuevo en cada intento manual. No reintenta automáticamente un POST.
- Trata un fallo de red posterior al envío como un resultado incierto: no afirma que el lead se haya rechazado ni que sea seguro reenviarlo.
Tu clave de captura no es una clave de API
La guía de autenticación indica que nunca debes colocar una clave en código frontend. Esa regla se refiere a la clave de la API de integraciones y sigue vigente. Tu
captureKey es otro tipo de valor.x-api-key de la API de integraciones, tu captureKey está diseñada para aparecer en el HTML de tu página, donde cualquiera puede leerla. No permite leer ningún dato: solo identifica a qué espacio de trabajo pertenece un envío. El abuso se limita mediante otras dos comprobaciones: el token de reCAPTCHA y la aceptación de envíos únicamente desde los dominios registrados para tu espacio de trabajo.
Nunca uses aquí tu clave de la API de integraciones ni la coloques en una página.
Incluye el ID del espacio de trabajo en la URL
El ID del espacio de trabajo debe ir en el cuerpo de la solicitud y en la URL como?workspaceId=.... Debe estar en ambos lugares: antes de la solicitud real, el navegador envía una solicitud de comprobación CORS sin cuerpo. Sin el ID en la URL no podemos identificar el espacio de trabajo ni devolver el encabezado que autoriza tu dominio, por lo que el navegador bloquea la solicitud antes de enviarla.
Este fallo puede confundir: verás un error de CORS en la consola del navegador, pero no habrá una solicitud en nuestros registros porque la solicitud real nunca salió de la página. Por eso conviene configurarlo bien desde el inicio.
Genera el token de CAPTCHA al enviar el formulario
Un token de reCAPTCHA v3 dura aproximadamente dos minutos. Si lo generas al cargar la página, puede haber vencido cuando la persona termina de completar el formulario. Se rechazará con un403, que puede parecer un problema de permisos en lugar de uno de vigencia.
Genera un token nuevo para cada intento
Un token se verifica exactamente una vez. Si falla el envío y reintentas con el mismo token, su reutilización no se puede distinguir de un ataque y devuelve el mismo error que recibiría un bot. Vuelve a llamar siempre agrecaptcha.execute antes de reintentar.
Qué debes enviar
La referencia del endpoint contiene el contrato completo. Estos son los campos cuyo significado no resulta evidente solo con el esquema:La marca que vende tu landing page, no el ID de una línea, canal o teléfono. Solo es obligatorio si tu espacio de trabajo tiene marcas habilitadas. Nunca se exige el ID de una línea.
El origen y la ruta de la página, sin la cadena de consulta. Los parámetros UTM se envían por separado en
utm; una cadena de consulta sin filtrar puede contener identificadores de clic o tokens de sesión que no deben almacenarse. Envía https://example.com/offer, no https://example.com/offer?gclid=....Tu declaración de que la persona aceptó y de cuándo lo hizo. Consulta los requisitos de consentimiento: el texto de autorización del formulario no es opcional.
Se recopilan de la cadena de consulta mediante una lista de permitidos: los parámetros
utm_* y cualquier nombre adicional que configures en la consola. Se usa una lista de permitidos, no una lista de exclusiones, porque recopilar datos de más no es reversible.Después del envío
Un202 significa que el lead fue aceptado y puesto en cola. No significa que se haya enviado un mensaje: eso ocurre después, en otro servicio. Indícale a la persona que le escribirás pronto.
Cualquier otra respuesta es un error. Consulta la referencia de errores para saber qué significa cada uno y si puedes corregirlo.
