JavaScript API

Bienvenido a la documentación de la API de JavaScript tawk.to.

La API (Interfaz de programación de aplicaciones) proporciona un conjunto de métodos útiles para tus proyectos web. Para aplicar al menos una de estas funciones, recuerda hacerlo después del código de inserción en tu página.

Utiliza la API de JavaScript para manipular el widget de chat que se muestra en tu sitio web.

Usos populares:

Estaremos siempre emocionados de ver cómo usas la API, ¡así que no dudes en compartir tus creaciones con nosotros!

onLoad

La función de devolución de llamada se ejecuta cuando la ventana de chat está minimizada (no es compatible con la ventana de chat emergente).

Tawk_API = Tawk_API || {};
Tawk_API.onLoad = function(){
    //place your code here
};

onStatusChange

La función de devolución de llamada se efectúa cuando cambia el estado de la página. Estos estados son en línea, ausente o fuera de línea y la devolución de llamada no es compatible con la ventana emergente de chat.

Tawk_API = Tawk_API || {};
Tawk_API.onStatusChange = function(status){
    //place your code here
};

onBeforeLoad

La función de devolución de llamada se ejecuta justo cuando Tawk_API está listo para usarse y antes de que se procese el widget. Esta devolución de llamada no es compatible con la ventana emergente de chat.

Tawk_API = Tawk_API || {};
Tawk_API.onBeforeLoad = function(){
    //place your code here
};

onChatMaximized

La función de devolución de llamada se efectúa cuando el widget está maximizado y dicha función no es compatible con la ventana emergente de chat.

Tawk_API = Tawk_API || {};
Tawk_API.onChatMaximized = function(){
    //place your code here
};

onChatMinimized

La función de devolución de llamada se establece cuando el widget está minimizado y dicha función no es compatible con la ventana emergente de chat.

Tawk_API = Tawk_API || {};
Tawk_API.onChatMinimized = function(){
    //place your code here
};

onChatHidden

Se invoca la función de devolución de llamada cuando el widget está oculto. Esta devolución de llamada no es compatible con la ventana emergente de chat.

Tawk_API = Tawk_API || {};
Tawk_API.onChatHidden = function(){
    //place your code here
};

onChatStarted

Se efectúa la función de devolución de llamada cuando se inicia el widget.

Tawk_API = Tawk_API || {};
Tawk_API.onChatStarted = function(){
    //place your code here
};

onChatEnded

Se invoca la función de devolución de llamada cuando finaliza el widget. Esta devolución de llamada no es compatible con la ventana emergente de chat.

Tawk_API = Tawk_API || {};
Tawk_API.onChatEnded = function(){
    //place your code here
};

onPrechatSubmit

La función de devolución de llamada se efectúa cuando se envía el formulario previo al chat. Los datos del formulario enviados se pasan a la función. Esta devolución de llamada no es compatible con la ventana emergente de chat.

Tawk_API = Tawk_API || {};
Tawk_API.onPrechatSubmit = function(data){
    //place your code here
};

onOfflineSubmit

La función de devolución de llamada se invoca cuando se envía el formulario sin conexión y los datos del mismo se consignan a la devolución de llamada. Los datos del formulario contendrán {nombre: ”, correo electrónico:”, mensaje: ”, preguntas: []}. Esta devolución de llamada no es compatible con la ventana emergente de chat.

Tawk_API = Tawk_API || {};
Tawk_API.onOfflineSubmit = function(data){
    //place your code here
};

visitor{};

Objeto utilizado para establecer el nombre y el correo electrónico del visitante. No coloques este objeto en una función, ya que los valores deben estar disponibles antes de descargar el script o guión del widget.



Configurar o cambiar los valores después de que se haya descargado el script del widget no enviará los valores al tablero.



Si el nombre y el correo electrónico no están disponibles en el momento de la carga (por ejemplo, aplicación de una sola página, inicio de sesión ajax), utiliza la función setAttributes en su lugar.

Tawk_API = Tawk_API || {};
Tawk_API.visitor = {
    name  : 'Name',
    email : 'email@email.com'
};

maximize();

Maximiza el widget de chat.

Tawk_API.maximize();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.maximize();
};

minimize();

Minimiza el widget de chat.

Tawk_API.minimize();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.minimize();
};

toggle();

Minimiza o maximiza el widget de chat según el estado actual.

Tawk_API.toggle();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.toggle();
};

popup();

Abre el widget de chat como una ventana emergente.

Tawk_API.popup();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.popup();
};

getWindowType();

Devuelve el tipo de widget actual, ya sea en línea o insertado.

Tawk_API.getWindowType();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.getWindowType() === 'inline'){
        // do something if it's inline
    }else{
        // do something if it's embed
    }
};

showWidget();

Muestra el widget de chat.

Tawk_API.showWidget();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.showWidget();
};

hideWidget();

Oculta el widget de chat.

Tawk_API.hideWidget();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.hideWidget();
};

toggleVisibility();

Oculta o muestra el widget de chat según el estado de visibilidad actual.

Tawk_API.toggleVisibility();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.toggleVisibility();
};

getStatus();

Devuelve el estado de la página actual (en línea, ausente o fuera de línea).

Tawk_API.getStatus();

//Example

Tawk_API.onLoad = function(){
    var pageStatus = Tawk_API.getStatus();

    if(pageStatus === 'online'){
        // do something for online
    }else if(pageStatus === 'away'){
        //do something for away
    }else{
        // do something for offline
    }
};

isChatMaximized();

Devuelve un valor booleano (verdadero o falso) que indica si el widget de chat está maximizado.

Tawk_API.isChatMaximized();


//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isChatMaximized()){
        //do something if it's maximized
    }
};

isChatMinimized();

Devuelve un valor booleano (verdadero o falso) que indica si el widget de chat está minimizado.

Tawk_API.isChatMinimized();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isChatMinimized()){
        // do something if it's minimized
    }
};

isChatHidden();

Devuelve un valor booleano (verdadero o falso) que indica si el widget de chat está oculto.

Tawk_API.isChatHidden();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isChatHidden()){
        // do something if chat widget is hidden
    }
};

isChatOngoing();

Devuelve un valor booleano (verdadero o falso) que indica si actualmente hay un chat en curso.

Tawk_API.isChatOngoing();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isChatOngoing()){
        //do something if there's ongoing chat
    }
};

isVisitorEngaged();

Devuelve un valor booleano (verdadero o falso) que indica si el visitante está actualmente chateando o ha solicitado chatear.

Tawk_API.isVisitorEngaged();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isVisitorEngaged()){
        // do something if visitor is engaged in chat
    }
};

endChat();

Finaliza el chat en curso.

Tawk_API.endChat();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.endChat();
};

setAttributes();

Establece metadatos personalizados con respecto a este chat / visitante.

Esta función toma dos valores: atributo y devolución de llamada.

El valor del atributo es del tipo de datos de objeto, que es un par clave-valor.

La clave es del tipo de datos de cadena y solo puede contener caracteres alfanuméricos y «-» (guión).

También puedes utilizar esta función para configurar el nombre y el correo electrónico del visitante. Sin embargo, primero deberás habilitar el modo seguro y también proporcionar el valor hash calculado en esta función.

Consulta la sección de
modo seguro a continuación sobre cómo hacer esto.

La razón por la que debes estar en modo seguro es para garantizar la integridad de los datos, que el valor enviado desde el widget al tablero sea genuino y no haya sido modificado.

La devolución de llamada, que es una función, se invocará para notificar si lo guardado falló.

Mensajes de error devueltos:

  1. INVALID_ATTRIBUTES: No se enviaron los atributos
  2. SESSION_EXPIRED: la sesión actual del visitante ha expirado
  3. SERVER_ERROR: error interno del servidor
  4. ACCESS_ERROR: Error al acceder a la página
  5. ATTRIBUTE_LIMIT_EXCEEDED: el total de atributos personalizados (excluyendo nombre, correo electrónico y hash) es 50
  6. CONTAINS_INVALID_KEY: la clave personalizada no es alfanumérica ni guión (las claves serán minúsculas)
  7. CONTAINS_INVALID_VALUE: el valor personalizado está vacío o la longitud total es superior a 255 caracteres
Tawk_API.setAttributes(attributes, callback);

//Example

Tawk_API.onLoad = function(){
    Tawk_API.setAttributes({
        'id'    : 'A1234',
        'store' : 'Midvalley'
    }, function(error){});
};


//Example for setting name and email

Tawk_API.onLoad = function(){
    Tawk_API.setAttributes({
        'name'  : 'Name',
        'email' : 'email@email.com',
        'hash'  : 'hash value'
    }, function(error){});
}

addEvent();

Configura un evento personalizado a la hora de chatear.
Esta función toma 3 valores: nombre del evento, metadatos opcionales y devolución de llamada.

El nombre del evento es del tipo de datos de cadena y solo puede contener caracteres alfanuméricos y «-» (guión).

La devolución de llamada, que es una función, se invocará para notificar si lo guardado generó error.

INVALID_EVENT_NAME, INVALID_ATTRIBUTES, ATTRIBUTE_LIMIT_EXCEEDED, CONTAINS_INVALID_KEY, CONTAINS_INVALID_VALUE, SESSION_EXPIRED, SERVER_ERROR

Tawk_API.addEvent(eventName, metadata, callback);

//Example

Tawk_API.onLoad = function(){
    Tawk_API.addEvent('requested-quotation', function(error){});

    Tawk_API.addEvent('product-add-to-cart', {
        'sku'    : 'A0012',
        'name'  : 'Jeans',
        'price' :'50'
    }, function(error){});
};

addTags();

Agrega etiquetas al chat.
Esta función toma dos valores; etiquetas y devolución de llamada.
Este es del tipo de datos de matriz.
El contenido de las etiquetas debe ser del tipo de datos de cadena.

El número total de etiquetas es 10.
La devolución de llamada, que es una función, se invocará para notificar si lo guardado generó error.

INVALID_TAGS, TAG_LIMIT_EXCEEDED, VERSION_CONFLICT, SESSION_EXPIRED, SERVER_ERROR

Tawk_API.addTags(tags, callback);

//Example

Tawk_API.onLoad = function(){
    Tawk_API.addTags(['hello', 'world'], function(error){});
};

removeTags();

Elimina las etiquetas del chat.
Esta función toma dos valores: etiquetas y devolución de llamada.
Este es del tipo de datos de matriz.
El contenido de las etiquetas debe ser del tipo de datos de cadena.

La devolución de llamada, que es una función, se invocará para notificar si lo guardado falló.

INVALID_TAGS, TAG_LIMIT_EXCEEDED, SESSION_EXPIRED, SERVER_ERROR

Tawk_API.removeTags(tags, callback);

//Example

Tawk_API.onLoad = function(){
    Tawk_API.removeTags(['hello', 'world'], function(error){});
};

Secure Mode

El método seguro es asegurarse de que los datos que estás enviando sean realmente tuyos.

Para habilitar el modo seguro, inserta el siguiente código en tu página.

El hash es HMAC generado por el lado del servidor utilizando SHA256, el correo electrónico del usuario y la clave API de tu sitio.

Puedes obtener tu clave o llave API desde
Administración>Visión general.

Tawk_API = Tawk_API || {};
Tawk_API.visitor = {
    name  : 'Name',
    email : 'email@email.com',
    hash  : '<calculate-hash>'
};

// Here is an example showing how you could do it using PHP

Tawk_API = Tawk_API || {};
Tawk_API.visitor = {
    name  : ' echo $user->name; ?>',
    email : ' echo $user->email; ?>',
    hash  : ' echo hash_hmac("sha256", $user->email, ""); ?>'
};