Saltar al contenido principal

Integración ERP

La integración ERP permite el intercambio de información en tiempo real entre nuestro sistema y tu ERP. Con esta integración, puedes traer datos de tu ERP e incorporarlos en las interacciones de atención al cliente. Además, la integración te permite recibir notificaciones para varios tipos de eventos generados por el sistema.

Habilitando la Integración ERP

Para usar la integración ERP, edita una instancia registrada y habilita su uso marcando la casilla de activación:

Panel de Contacto

Registra una URL en el campo Panel de Contacto para incorporar características de tu sistema directamente en la ventana de servicio:

Atención

Se recomienda que tu iframe funcione con un ancho máximo de 300px.

Consejo

Es altamente recomendable usar el protocolo https.

Una vez que la URL está registrada, se activará una solicitud POST cada vez que se abra un perfil. Esta solicitud enviará toda la información de contacto disponible:

{
"tipo_envio": "common",
"referencia": "api send",
"mensagens": [
{
"numero": "11999999999",
"mensagem": "test message 1"
},
{
"numero": "11999999998",
"mensagem": "test message 2"
}
]
}

Personalización

Personaliza el contenido de los mensajes enviados usando plantillas personalizables.

Formato de texto disponible:

_text_ Texto en cursiva
*text* Texto en negrita
~text~ Texto tachado

Variables disponibles:

VariableDescripciónEjemplo
$UsuarioNome$Nombre del agente que envió el mensajeMaria
$UsuarioLogin$Email de inicio de sesión del agente que envió el mensajemaria@erp.com
$IdUsuario$Código identificador único del agente001
$Departamento$Nombre del departamento al que pertenece el agenteSoporte
$JidDestiny$JID del contacto que está siendo atendido5511987654321@s.whatsapp.net
$TextMessage$Mensaje escrito por el agente¡Buenos días!
Atención

Todas las variables disponibles están encerradas entre el símbolo $, por ejemplo: $var_name$

Eventos

La integración con tu ERP te permite registrar URLs que recibirán varios eventos generados por el sistema. Para cada evento a continuación, puedes registrar una URL de callback específica:

EVENTODescripción
OnLoadContactAl cargar un contacto. Se activa justo después de que el perfil de contacto es seleccionado y cargado. Puede usarse para actualizar campos del perfil antes de que los datos se muestren en pantalla. Ejemplo ↓
OnBeforeSaveContactAntes de guardar un contacto. Usado principalmente para validar datos del usuario y/o aplicar reglas de negocio antes de que el contacto sea guardado.
OnSaveContactDespués de guardar un contacto. Ocurre si el evento OnBeforeSaveContact retorna true.
OnStartConversationDespués de iniciar una conversación. Ocurre cuando el primer mensaje es enviado al contacto.
OnEndConversationAl finalizar una conversación. Ocurre cuando el servicio es finalizado automáticamente por el sistema o manualmente por el operador.
¡próximamente!
OnGetChatMessageSugestionEvento a ser llamado para retornar una matriz de sugerencias de respuesta. Se activa con cada nueva respuesta del contacto. ¡próximamente!

Registra la URL del evento que se activará en uno de los campos descritos arriba, usando el siguiente formato:

https://my-erp.com.br/api/OnLoadContact.php?jid=`$Jid$`&status=`$Status$`

Variables Disponibles

VariableDescripciónRetorna
$InstanceId$Código identificador único de la instancia.integer
$ProfileId$Código identificador único del perfil.integer
$Jid$JID del contacto - proporcionado por WhatsApp.string
Ejemplo: 5511987654321@s.whatsapp.net
$name$Nombre del contactostring
Ejemplo: Maria
$isGroup$Si el contacto es un grupo.true o false
$StatusInt$Estado del contacto en formato numérico.0 Normal
1 Bloqueado
2 Archivado
3 Bloqueado
$Status$Estado del contacto.string
Ejemplo: Locked
$LockedUserId$Código único del operador al que está bloqueado el contacto.integer
$LockedUserName$Nombre del operador al que está bloqueado el contacto.string
Ejemplo: Agente Maria
$LockedUserLogin$Email del operador al que está bloqueado el contacto.string
Ejemplo: maria@company.com
$DepartmentId$Código único del departamento al que pertenece el contacto.integer
$Department$Nombre del departamento al que fue transferido o pertenece el contacto.string
Ejemplo: Finanzas
$SegmentName$Nombre del segmento seleccionado para el contacto, previamente registrado en
la configuración de la instancia, bajo Clasificaciones.
string
$LastMessageId$Código único del último mensaje del chat.integer
$MsgRead$Número de mensajes enviados y leídos por el contacto.integer
$MsgUnread$Número de mensajes no leídos del contacto.integer
$Email$Email registrado para el contacto.string
Ejemplo: felipe@gmail.com
$Phone$Número de teléfono registrado para el contacto.
Si no está registrado, retorna el número de teléfono según el JID del contacto.
string
Ejemplo: (54) 9876-5432
$Document$Documento registrado para el contacto.string
Ejemplo: 123.456.789-10
$Note$Nota registrada en la pestaña ... en el registro del contacto,
y mostrada debajo de la foto de perfil en la lista de contactos.
string
$CreateDate$Fecha y hora en que el contacto fue creado.timestamp
Ejemplo:20210205 13:47:00
$LastStatusDateTime$Fecha y hora de la última actualización de estado para el contacto.timestamp
Ejemplo: 20210205 13:47:00
$LockedUserDate$Fecha y hora cuando el contacto fue bloqueado.timestamp
Ejemplo: 20210205 15:55:00
$wid$WID de la instanciastring
Ejemplo: C61BBC40-D019-427A-A31C-230243E27242

OnLoadContact

Puedes retornar un json con el perfil de contacto actualizado. Ejemplo de un perfil a ser retornado:

Usa las variables $jid$ y $webid$ en la URL informada, para recibir el identificador del contacto actual en tu API.

{
"Name": "Maria",
"Email": "maria@gmail.com",
"SegmentName": "",
"Telefone": "(11) 98765-4321",
"UrlInfo": "http://my-erp.com.br/panel?jid=5511987654321@s.whatsapp.net", // custom iframe
"UrlPicture": "http://my-erp.com.br/updatedPicture?jid=5511987654321@s.whatsapp.net",
"MemoText": "Call tomorrow",
"Document": "123.456.789-10",
"Priority": 1, // 1, 2 or 3
"Group": "",
"CSS": "",
"InternalID": ""
}
Consejo

No es necesario llenar todos los campos.

Atención

El perfil retornado reemplazará permanentemente el contenido del perfil existente.

La URL retornada en el campo UrlInfo será usada en el iframe del contacto:

API de Variables

Si necesitas guardar variables en nuestra plataforma, usa nuestra API de variables.

EndPoint  https://witi.me/api/witime/savevars.aspx?key=API_KEY&WID=INSTANCE_WID&NAME=VARIABLE_NAME
Método     POST
Body       contenido json o text a ser guardado
Retorno    "OK" si se guardó exitosamente

Atención

El nombre de la variable debe ser único, de lo contrario la variable existente será reemplazada.

Recuperar variables

EndPoint  https://witi.me/api/witime/loadvars.aspx?key=API_KEY&WID=INSTANCE_WID&NAME=VARIABLE_NAME
Método     GET
Retorno     Datos previamente guardados