El sistema está inspirado en OAuth2.0, pero formalmente no lo es. Este método de conexión debe ser utilizado por cada socio que quiera publicar su integración en nuestro marketplace.
WAuth es necesario para que el usuario pueda conectar la integración con un solo clic, sin tener que manipular manualmente la clave API.
Cómo un usuario conecta la integración desde nuestro marketplace:
1. El usuario selecciona un CRM en el marketplace de integraciones de Wazzup.
2. Hace clic en "Conectar".
3. El usuario es redirigido al CRM.
4. Inicia sesión en el CRM y confirma que desea conectar la integración.
¡Listo! — el usuario ha conectado la integración entre Wazzup y el CRM.
Configuración de WAuth
Cuando se hayan completado todos los pasos para crear una integración, puedes proceder con la configuración de WAuth.
Paso 1: Llama a POST v3/marketplace para enviar los valores de los campos:
Parámetro | Tipo | Descripción |
crmCode | String | Una cadena de letras latinas y números (se pueden usar guiones y guiones bajos). Sirve para la identificación interna del CRM. Única en Wazzup. |
authRedirectUri | String | Dirección de la página a la que se redirigirá al cliente para confirmar la autorización.
Si cada cliente tiene una dirección única y no se puede redirigir a la misma página, deje este parámetro en blanco. Luego, cuando el cliente seleccione CRM en Wazzup, le pediremos que especifique el enlace. |
secret | String | La clave (token) necesaria para confirmar la instalación de la integración. Participa únicamente en solicitudes de servidor a servidor; nunca se envía al cliente. |
Estos parámetros se utilizarán cuando su cliente seleccione Wazzup CRM en la plataforma y haga clic en "Conectar". En este momento:
- Se genera un estado donde se codificarán crmCode y accountId.
- En la cadena de consulta authRedirectUri, agregue el estado y transfiera al usuario a este enlace. Si el parámetro authRedirectUri está vacío, solicitaremos al cliente que especifique su enlace y lo redirigiremos al enlace especificado.
El cliente seguirá el enlace donde se le autorizará en el CRM.
Paso 2: Si el cliente pudo iniciar sesión, CRM debe realizar una solicitud:
POST https://api.wazzup24.com/v3/connect/
El cuerpo de la solicitud debe contener JSON con los valores de los parámetros:
Parámetro | Tipo | Descripción |
state | String | Clave generada y firmada en Wazzup. La generamos cuando el usuario selecciona CRM en el marketplace y hace clic en "Conectar". |
secret | String | La clave ingresada por el administrador del CRM del marketplace |
crmKey | String | Una clave generada por el socio que se enviará en el encabezado {Autorización: "Bearer {wazzupKey}"} al enviar webhooks |
name | String | Nombre de la integración |
Ejemplo de solicitud
curl --location --request POST 'https://api.wazzup24.com/v3/connect' \ --header 'Content-Type: application/json' \ --data-raw ' { "state": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2Vy....", "secret": "61e5a375-1760-452f-ad73-5318844ffc4f", "crmKey": "e0629e11-0f67-4567-92a9-2237e91ec1b9", "name": "Any integration name" } '
Respuesta
HTTP/1.1 200 OK { "data": "1365e2e9119c4d889ca467cc4a9e6a48" }
Si todo está configurado correctamente, Wazzup recibirá la solicitud, almacenará la CRMKey, generará una APIKey y la devolverá en el cuerpo de la respuesta.
Después, CRM descarga información sobre usuarios, acuerdos, contactos y embudos con etapas, y establece la URL para los webhooks.
Listo — la integración se ha conectado correctamente.
Publicación en el Marketplace de Integraciones de Wazzup
Para poder publicar una integración, es necesario:
1. Implementar los escenarios de integración
2. Configurar la autorización mediante WAuth
3. Establecer el nombre y logo del CRM usando PATCH v3/marketplace
4. Escribir al soporte de Wazzup solicitando la publicación del módulo de integración. El soporte técnico de Wazzup enviará el ticket a un revisor, quien verificará que la integración funcione correctamente y cumpla con todos los requisitos. Si todo está bien, la integración será publicada. Si hay errores, el módulo será devuelto al desarrollador para su corrección, y recibirá una notificación en el chat donde se hizo la solicitud de publicación.
Conexión de la integración alojada en el Marketplace mediante WAuth
Si el usuario hizo clic en "Conectar integración", accedió correctamente al enlace indicado e inició sesión en el CRM, este debería realizar una solicitud.
POST https://api.wazzup24.com/v3/connect/
El cuerpo de la solicitud debe contener JSON con los valores de los siguientes parámetros:
Parámetro | Tipo | Descripción |
state | String | generado y firmado en el lado de Wazzup de la clave, recibida por el integrador en la primera etapa de conexión de CRM |
secret | String | El secreto ingresado por el administrador del CRM del marketplace |
сrmKey | String | Una clave generada por el socio que permite determinar a qué cliente se refieren los webhooks. La clave se incluirá en el encabezado {Autorización: "Bearer {wazzupKey}"} al enviar webhooks. |
name | String | El nombre de la integración. Por ejemplo, el dominio del cliente en CRM. Se especificará en el área personal cuando el cliente se conecte a la integración. |
curl --location --request POST 'https://api.wazzup24.com/v3/connect' \ --header 'Content-Type: application/json' \ --data-raw ' { "state": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2Vy....", "secret": "61e5a375-1760-452f-ad73-5318844ffc4f", "crmKey": "e0629e11-0f67-4567-92a9-2237e91ec1b9", "name": "Any integration name" } '
Respuesta
200 ok
datos: la clave que se usará * en el encabezado Autorización: Portador {apiKey} al realizar solicitudes a Wazzup
Cargando parámetros de Wauth
Para actualizar el código CRM, el URL de redirección de autenticación y el secreto, debe llamar a
POST https://api.wazzup24.com/v3/marketplace
El cuerpo de la solicitud debe contener JSON con los valores de los siguientes parámetros:
Parámetro | Tipo | Descripción |
crmCode | String | Una cadena de letras latinas y números (puede usar guiones y guiones bajos). Se utiliza para la identificación interna del CRM. Es única en Wazzup. No más de 50 caracteres. |
authRedirectUri | String | La dirección de la página a la que será redirigido el usuario que configure la integración para confirmar la autorización. |
secret | String | La clave (token) que se utiliza para confirmar la instalación de la integración. Participa únicamente en consultas entre servidores. |
Ejemplo de solicitud
curl --location --request POST 'https://api.wazzup24.com/v3/marketplace' \ --header 'Authorization: Bearer 4a0с541451244aa9a281fba4716da40d' \ --header 'Content-Type: application/json' \ --data-raw '{ "crmCode": "BestCrmInTheWorld", "secret": "our-secret", "authRedirectUri": "http://redirect.uri" }'
Simulación de la instalación de la integración del cliente (prueba Wauth)
Para simular la instalación de la integración por parte del cliente, es necesario llamar a:
POST https://api.wazzup24.com/v3/wauth
El cuerpo de la solicitud debe contener JSON con los valores de los siguientes parámetros:
Parámetro
Required marked * |
Tipo | Descripción |
type* | String | crmCode especificado por el integrador en el momento de la llamada POST /v3/marketplace |
domain | String | Es necesario si el parámetro authRedirectUri se deja vacío, ya que cada cliente tiene un enlace único.
En el parámetro de dominio, agregue el enlace completo a la cuenta de CRM: con el protocolo y el dominio. Por ejemplo, https://accountcrm.com/ Redireccionaremos a esta dirección para confirmar la autorización. Igual que cuando su cliente especifica un enlace único al conectarse. |
Cargar el nombre y el logotipo de la integración
Para cambiar el logotipo y el nombre público del módulo de integración, debe llamar a:
PATCH https://api.wazzup24.com/v3/marketplace
El cuerpo de la solicitud debe contener JSON con los valores de los siguientes parámetros:
Parámetro | Tipo | Descripción |
crmName | String | El nombre público de CRM en inglés, que se mostrará en el Área Personal de Wazzup |
logo | Object | Objeto con datos del logotipo:
— Fondo transparente o blanco — Formato SVG — Sin sangría interna en el logotipo — Nombre de la empresa en el logotipo en inglés |
logo.name | String | Nombre del archivo del logotipo |
logo.content | String | archivo codificado en base64 con el logotipo |
Ejemplo de solicitud
curl --location --request PATCH 'https://api.wazzup24.com/v3/marketplace' \ --header 'Authorization: Bearer 4a0b541a61244aa9a281fba4816da48d' \ --header 'Content-Type: application/json' \ --data-raw '{ "crmName": "The Cool CRM", "logo": { "name": "the-cool-crm.svg", "content": "YmFzZTY0LWVuY29kZWQtbG9nby1maWxlLWNvbnRlbnQK" } }'