Skip to main content

WEB API

Configuración y uso

La Web API proporciona una colección de métodos HTTP que sustentan la mayoría de las funciones de ZampiBot. Para comenzar a usar la Web API, siga el tutorial a continuación.

Uso usuario

Realice una llamada POST al archivo include/api.php de su instalación de ZampiBot. Puede utilizar el siguiente código para realizar las llamadas:

PHP

function zampibot_api($query) {
    $ch = curl_init('YOUR-DOMAIN/chatbot.zampisoft.com/include/api.php');
    $parameters = [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_USERAGENT => 'Support Board',
            CURLOPT_POST => true,
            CURLOPT_CONNECTTIMEOUT => 5,
            CURLOPT_POSTFIELDS => http_build_query(array_merge(['token' => 'YOUR-TOKEN'], $query))
    ];
    curl_setopt_array($ch, $parameters); 
    $response = curl_exec($ch);
    curl_close($ch);
    return json_decode($response, true);
}

Ejemplo de uso: zampibot_api(['function' => 'get-user', 'user_id' => 123]);

La variable $response contendrá la respuesta en formato JSON. Puede añadir nuevos argumentos en el array de la consulta: ['token' => '', 'function' => '', 'argument-name' => 'value', ...].

Reemplace las siguientes cadenas con los valores correctos:

  • Reemplace YOUR-DOMAIN con la URL de su sitio web. La URL completa debe apuntar al archivo include/api.php de su instalación. Debería verse así: https://TU-DOMINIO.com/chatbot.zampisoft.com/include/api.php.
    • Si usa la versión Cloud, ingrese https://chatbot.zampisoft.com.support/script/include/api.php.
  • Reemplace YOUR-TOKEN con el token de un usuario administrador. Puede obtener el token desde el área de Usuarios abriendo el perfil de un usuario admin. Solo se admiten tokens de administrador y solo los administradores pueden ver los tokens.
    • Si utiliza la versión cloud, debe usar el token de Account > Installation > API token.
    • ¡Advertencia! Este token debe mantenerse siempre en secreto.
  • Reemplace METHOD-NAME con el nombre de la función de la API que desea utilizar. Obténgalos de la lista de métodos a continuación.

Información

  • Algunas funciones están protegidas por razones de seguridad. Ingrese el código $GLOBALS['SB_FORCE_ADMIN'] = true antes de llamar a la función para ejecutarla correctamente. Ingrese el código $GLOBALS['SB_FORCE_ADMIN'] = false inmediatamente después de la llamada a la función por seguridad.
  • Algunas funciones requieren los detalles del usuario activo. Use el código $GLOBALS['SB_LOGIN'] = ['id' => '', 'first_name' => '', 'last_name' => '', 'email' => '', 'user_type' => '', 'department' => '']; para establecer el usuario activo.
  • Ejemplo de Postman: El token también se puede pasar como un parámetro de CABECERA (HEADER).
  • image.png

👥 WEB API: Usuarios

Métodos para gestionar usuarios, agentes y administradores.

get-user

Devuelve los detalles de un usuario.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-user.
  • user_id Requerido: El ID del usuario.
  • extra: Establézcalo en true para obtener detalles adicionales del usuario. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": {
        "id": "123456",
        "first_name": "John",
        "last_name": "Doe",
        "email": "johon@example.com",
        "profile_image": "https://chatbot.zampisoft.com/user.svg",
        "user_type": "visitor",
        "creation_time": "2020-05-12 14:28:57",
        "last_activity": "2020-05-12 14:28:57",
        "department": null,
        "token": "a521773c5a566a251c3fb00e93162b20ff955b12",
        "password": "",
        "details": [
            {
                "slug": "location",
                "name": "Location",
                "value": "New York, United States"
            },
            ...
        ]
    }
}

Devuelve {"success":true, "response":false} si no se encuentra el usuario.


get-user-by

Busca un usuario con los detalles especificados y lo devuelve.

Argumentos

  • by Requerido: El nombre del detalle del usuario. Valores aceptados: email, first_name, last_name, phone, [extra] (reemplace [extra] con cualquier nombre de detalle adicional del usuario).
  • value: El valor del campo.

Respuesta

JSON

{
    "id": "881",
    "first_name": "Don",
    "last_name": "John",
    "email": "example@example.com",
    "user_type": "visitor",
    "department": null
 }

Devuelve {"success":true, "response":false} si no se encuentra el usuario.


get-user-extra

Devuelve los detalles adicionales de un usuario.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-user-extra.
  • user_id Requerido: El ID del usuario.
  • slug: El slug del ajuste a recuperar. Si no se establece, se devuelven todos los detalles del usuario. Por defecto: false.
  • default: El valor por defecto a devolver si no se encuentran los detalles. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "slug": "browser",
            "name": "Browser",
            "value": "Chrome"
        },
        ...
    ]
}

Devuelve {"success":true, "response":[]} si no se encuentra el usuario.


get-user-language

Devuelve el código de idioma activo utilizado por el usuario. Por defecto, es el idioma del navegador del usuario.

Argumentos

  • user_id Requerido: El ID del usuario del que desea obtener el idioma.

Respuesta El código de idioma. Ejemplos: es, it. Devuelve false si el código es en o no se encuentra.


get-users

Devuelve los detalles de todos los usuarios.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-users.
  • sorting: Establece el orden de los valores devueltos. Ingrese ["column", "order"] y reemplace column con uno de los siguientes: first_name, last_name, email, profile_image, user_type, creation_time, last_activity, department. Reemplace order con ASC o DESC.
  • user_types: Array en formato JSON de tipos de usuario a incluir. Sintaxis: ["", "", "", ...]. Valores aceptados: visitor, lead, user, agent, admin. Por defecto: todos.
  • search: La cadena a buscar.
  • pagination: Entero de 1 a N para limitar el número de resultados. Ingrese 0 para los primeros 100 resultados, 1 para 101 a 200, etc.
  • extra: Establézcalo en true para incluir también todos los detalles extra. O como un array de slugs para incluir solo un subconjunto. Por defecto: false.
  • user_ids: Array de IDs. Si se establece, devuelve solo los usuarios incluidos en el array. Sintaxis: ["", "", "", ...]. Por defecto: false.
  • department: Si se establece, devuelve solo usuarios con al menos una conversación asignada al ID de departamento provisto. Por defecto: false.
  • tag: Si se establece, devuelve solo usuarios con al menos una conversación asignada a la etiqueta provista. Por defecto: false.
  • source: Si se establece, devuelve solo usuarios con al menos una conversación del canal provisto. Fuentes: em, tk, wa, fb, ig, tw, wc, tx, gb, ln, vb. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "id": "880",
            "first_name": "User",
            "last_name": "#29938",
            "email": null,
            "profile_image": "https://chatbot.zampisoft.com/user.svg",
            "user_type": "visitor",
            "creation_time": "2020-05-13 08:58:18",
            "last_activity": "2020-05-13 09:07:39",
            "department": null,
            "token": "6d969f64f5ed6263714b9b39f3d3700b66f16820"
        },
        {
            "id": "879",
            "first_name": "User",
            "last_name": "#86773",
            "email": null,
            "profile_image": "https://chatbot.zampisoft.com/user.svg",
            "user_type": "visitor",
            "creation_time": "2020-05-13 08:38:41",
            "last_activity": "2020-05-13 08:58:12",
            "department": null,
            "token": "2e5064670707d06b661d04353f4a462ec927f19a"
        }
        ...
    ]
}

get-new-users

Devuelve los usuarios creados después de la fecha o ID proporcionado.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-new-users.
  • datetime Requerido: ID de usuario o fecha y hora en formato: YYYY-MM-DD HH:MM:SS. Ej. 2020-05-13 13:35:59. Puede eliminar la hora y dejar solo la fecha. Las fechas en la base de datos son UTC+0.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "id": "880",
            "first_name": "User",
            "last_name": "#29938",
            "email": null,
            "profile_image": "https://chatbot.zampisoft.com/user.svg",
            "user_type": "visitor",
            "creation_time": "2020-05-13 08:58:18",
            "last_activity": "2020-05-13 09:07:39",
            "department": null,
            "token": "6d969f64f5ed6263714b9b39f3d3700b66f16820"
        },
        {
            "id": "879",
            "first_name": "User",
            "last_name": "#86773",
            "email": null,
            "profile_image": "https://chatbot.zampisoft.com/user.svg",
            "user_type": "visitor",
            "creation_time": "2020-05-13 08:38:41",
            "last_activity": "2020-05-13 08:58:12",
            "department": null,
            "token": "2e5064670707d06b661d04353f4a462ec927f19a"
        }
        ...
    ]
}

get-online-users

Devuelve los usuarios en línea, incluyendo agentes.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-online-users.
  • exclude_id: Array de IDs de usuarios en formato JSON para excluir. Sintaxis: [123, 123, 123, ...].
  • sorting: Nombre de la tabla de base de datos usada para ordenar. Por defecto: creation_time.
  • agents: Establézcalo en true para devolver solo agentes y administradores. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "id": "881",
            "first_name": "Don",
            "last_name": "John",
            "email": null,
            "profile_image": "https://chatbot.zampisoft.com/user.svg",
            "user_type": "visitor",
            "creation_time": "2020-05-13 09:18:59",
            "last_activity": "2020-05-13 09:32:34",
            "department": null,
            "token": "e435a5c67f4276cdb9c6fc19b7c015990ffc3268"
        },
        {
            "id": "880",
            "first_name": "User",
            "last_name": "#29938",
            "email": null,
            "profile_image": "https://chatbot.zampisoft.com/user.svg",
            "user_type": "visitor",
            "creation_time": "2020-05-13 08:58:18",
            "last_activity": "2020-05-13 09:32:28",
            "department": null,
            "token": "6d969f64f5ed6263714b9b39f3d3700b66f16820"
        }
        ...
    ]
}

get-users-with-details

Devuelve un array con los IDs y detalles de los usuarios que tienen los detalles solicitados.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-users-with-details.
  • details Requerido: Array de detalles de usuario. Ej. [ "email", "phone" ].
  • user_ids: Array o cadena separada por comas de IDs. Si se establece, solo se buscan estos usuarios. Use all o false para buscar en todos, o agents para buscar solo agentes/admins. Por defecto: false.

Respuesta

JSON

{
    "email": [
        {
            "id": 4561,
            "value": "albert@example.com"
        },
        {
            "id": 98436,
            "value": "jessica@example.com"
        },
        ...
    ],
    "phone": [
        {
            "id": 12563,
            "value": "+4462367136"
        },
        {
            "id": 778956,
            "value": "+4462999345"
        },
        ...
    ],
    ...
}

get-agent

Devuelve los detalles de un agente o administrador.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-agent.
  • agent_id Requerido: El ID del agente.

Respuesta

JSON

{
   "success": true,
   "response": {
       "id": "123456",
       "first_name": "John",
       "last_name": "Doe",
       "email": "johon@example.com",
       "profile_image": "https://chatbot.zampisoft.com/user.svg",
       "user_type": "agent",
       "creation_time": "2020-05-12 14:28:57",
       "last_activity": "2020-05-12 14:28:57",
       "department": null,
       "token": "a521773c5a566a251c3fb00e93162b20ff955b12",
       "password": "",
       "details": [
           {
               "slug": "location",
               "name": "Location",
               "value": "New York, United States"
           },
           {
               "slug": "country_code",
               "name": "Country code",
               "value": "America/New_York"
           }
           ...
       ]
   }
                                }

get-agents-ids

Devuelve un array con los IDs de los Agentes.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-agents-ids.
  • admins: Establézcalo en false para excluir a los administradores. Por defecto: true.

Respuesta [881, 153, ...]


get-user-from-conversation

Devuelve el ID y correo electrónico del usuario, o del último agente, de la conversación dada.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-user-from-conversation.
  • conversation_id Requerido: El ID de la conversación.
  • agent: Establézcalo en true para obtener el último agente que respondió. Por defecto: false.

Respuesta

JSON

{
  "id": "123456",
  "email": "email@example.com"
}

agents-online

Verifica si al menos un agente o administrador está en línea.

Respuesta

JSON

{
    "success": true,
    "response": true
}

Devuelve true si hay agentes o admins en línea, o false si todos están desconectados.


search-users

Devuelve los usuarios que coinciden con la búsqueda.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese search-users.
  • search Requerido: La cadena a buscar. Los detalles adicionales del usuario también son compatibles.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "id": "881",
            "first_name": "Don",
            "last_name": "John",
            "email": null,
            "profile_image": "https://board.support/user.svg",
            "user_type": "visitor",
            "creation_time": "2020-05-13 09:18:59",
            "last_activity": "2020-05-13 09:32:34",
            "department": null,
            "token": "e435a5c67f4276cdb9c6fc19b7c015990ffc3268"
        },
        {
            "id": "880",
            "first_name": "User",
            "last_name": "#29938",
            "email": null,
            "profile_image": "https://board.support/user.svg",
            "user_type": "visitor",
            "creation_time": "2020-05-13 08:58:18",
            "last_activity": "2020-05-13 09:32:28",
            "department": null,
            "token": "6d969f64f5ed6263714b9b39f3d3700b66f16820"
        }
        ...
    ]
}

Devuelve {"success":true, "response":[]} si no se encuentran usuarios.


add-user

Crea un nuevo usuario.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese add-user.
  • first_name: Nombre del usuario. Por defecto: User.
  • last_name: Apellido. Por defecto: #RANDOM-NUMBER.
  • email: Email del usuario. Por defecto: vacío.
  • profile_image: Foto de perfil.
  • password: Contraseña. Por defecto: vacío.
  • user_type: Tipo de usuario. Valores: visitor, lead, user, agent, admin. Por defecto: visitor si no hay email, sino user.
  • extra: Array de detalles adicionales en formato JSON. Detalles integrados (IDs): phone, city, language, country, birthday, company, facebook, twitter, linkedin, website, ip, country_code, browser, currency, location, os, time_zone, current_url. Sintaxis: {"ID": ["value", "Name"], ...}.

Respuesta

JSON

{
    "success": true,
    "response": 123456
}

Otras respuestas posibles: duplicate-email, invalid-user-type, MySQL error message.


update-user

Actualiza los detalles de un usuario existente.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese update-user.
  • user_id Requerido: El ID del usuario a actualizar.
  • first_name, last_name, profile_image, password, user_type.
  • email: Ingrese NULL para eliminar el correo electrónico.
  • settings_extra: Array de detalles adicionales en formato JSON. Sintaxis: {"ID": ["value", "Name"], "ID": ["value", "Name"], ...}

Respuesta

JSON

{
    "success": true,
    "response": true
}

Other possible responses: duplicate-emailinvalid-user-typeMySQL error message.


delete-user

Elimina un usuario y todas las conversaciones y mensajes vinculados.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese delete-user.
  • user_id Requerido: El ID del usuario a eliminar.

Respuesta

JSON

{
    "success": true,
    "response": true
}

delete-users

Elimina múltiples usuarios y sus datos vinculados.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese delete-users.
  • user_ids Requerido: Array de IDs de usuarios. Sintaxis: [123, 123, ...]

Respuesta

JSON

{
    "success": true,
    "response": true
}

is-online

Verifica si un usuario está en línea.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese is-online.
  • user_id Requerido: El ID del usuario.

Respuesta true si está en línea, false si está desconectado.


current-url

Obtiene o establece la URL actual de un usuario o la última visitada.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese current-url.
  • user_id: El ID del usuario.
  • url: La URL para establecer como "Current URL". Si se establece, la función solo establecerá el valor y no devolverá ninguna URL.

Respuesta

JSON

{
    "success": true,
    "response": "https://charbot.zampisoft.com"
}

Returns {"success":true,"response":false} if the URL is not found. Returns {"success":true,"response":true} if the url argument is set.


count-users

Devuelve el conteo total de usuarios agrupados por tipo.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese count-users.

Respuesta

JSON

{
    "success": true,
    "response": {
        "all": "335",
        "lead": "288",
        ...
    }
}

update-user-to-lead

Cambia el tipo de usuario a "lead" (cliente potencial).

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese update-user-to-lead.
  • user_id Requerido: El ID del usuario.

Respuesta

JSON

{
    "success": true,
    "response": true
}

get-avatar

Genera la imagen de perfil usando la inicial del nombre y apellido, la guarda y devuelve la URL.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-avatar.
  • first_name Requerido: Nombre del usuario.
  • last_name: Apellido del usuario
Respuesta https://chatbot.zampisoft.com/uploads/13-04-21/9455859.png

get-bot-id

Devuelve el ID del bot de ZampiBot.

Respuesta 123


is-typing

Verifica si un usuario o agente está escribiendo en una conversación. (No funciona si Pusher está activo).

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese is-typing.
  • user_id Requerido: ID del usuario o agente a verificar.
  • conversation_id Requerido: ID de la conversación.

Respuesta Devuelve true si está escribiendo, de lo contrario false.


is-agent-typing

Verifica si un agente está escribiendo y devuelve sus detalles. (No funciona si Pusher está activo).

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese is-agent-typing.
  • conversation_id Requerido: ID de la conversación.
{
  "id": "",
  "first_name": "",
  "last_name": ""
}

Respuesta Devuelve false si nadie escribe, o un objeto con detalles del agente.


set-typing

Asigna el estado "escribiendo" a un usuario o agente en una conversación.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese set-typing.
  • user_id Requerido: ID del usuario o agente.
  • conversation_id Requerido: ID de la conversación.

Respuesta

JSON

{
    "success": true,
    "response": true
}

login

Inicia sesión de un usuario o agente. Puede hacerse vía email/contraseña o ID/token.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese login.
  • email / password: Para login tradicional.
  • user_id / user_token: Para login por token.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "id": "913",
            "profile_image": "https://board.support/user.svg",
            "first_name": "User",
            "last_name": "#29902",
            "email": null,
            "user_type": "visitor",
            "token": "9b25351047ee758aa97ee4868d130cc15eb8decf"
        },
        "YXNkWGNSeTdtRTdDYVkxVG8wckN4YWF6V2s0Tk1mczBSVHdQbHBpOWdmejVUTTdOUUxEUENhdUVoYmROWn..."
    ]
}

El segundo valor son los datos de sesión encriptados. Use SBF.loginCookie(response[1]); para guardarlo. Devuelve false si falla.


logout

Cierra la sesión del usuario conectado.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese logout.

Respuesta

JSON

{
    "success": true,
    "response": true
}

También debe borrarse la cookie sb-login del navegador.


update-login

Actualiza los detalles del usuario conectado. Si un detalle no se establece, se eliminará de la base de datos.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese update-login.
  • profile_image, first_name, last_name, email, department.

Respuesta

YXNkWGNSeTdtRTdDYVkxVG8wckN4YWF6V2s0Tk1mczBSVHdQbHBpOWdmejVUTTdOUUxEUENhdUVoYmROWn...

Cadena encriptada que debe guardarse en la cookie sb-login.


delete-leads

Elimina todos los leads (clientes potenciales), incluyendo conversaciones y mensajes vinculados.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese delete-leads.

Respuesta

JSON

{
    "success": true,
    "response": true
}

update-bot

Actualiza los detalles del perfil del bot. Si no existe, se crea uno.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese update-bot.
  • name: Nombre del bot.
  • profile_image: URL de imagen del bot.

Respuesta true en caso de éxito, false en caso contrario.


csv-users

Exporta todos los usuarios a un archivo CSV y devuelve la URL.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese csv-users.
  • user_ids: Array de IDs de usuario para exportar solo específicos.

Respuesta

JSON

{
    "success": true,
    "response": "https://board.support/uploads/users.csv"
}

WEB API: Conversaciones

Métodos para gestionar conversaciones y mensajes.

get-conversation

Devuelve una conversación y sus mensajes.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-conversation.
  • conversation_id Requerido: El ID de la conversación.
  • user_id: El ID del usuario vinculado.

Respuesta

JSON

{
    "success": true,
    "response": {
        "messages": [
            {
                "id": "2044",
                "user_id": "802",
                "message": "Hello!",
                "creation_time": "2020-05-0410:06:30",
                "attachments": "",
                "status_code": "0",
                "payload": "",
                "conversation_id": "946",
                "first_name": "Don",
                "last_name": "John",
                "profile_image": "https://chatbot.zampisoft.com/user.svg",
                "user_type": "lead"
            },
            {
                "id": "2045",
                "user_id": "377",
                "message": "Hello,howcanIhelp?",
                "creation_time": "2020-05-0410:06:33",
                "attachments": "",
                "status_code": "0",
                "payload": "",
                "conversation_id": "946",
                "first_name": "Bruce",
                "last_name": "Peterson",
                "profile_image": "https://chatbot.zampisoft.com/agent.svg",
                "user_type": "agent"
            }
            ...
        ],
        "details": {
            "user_id": "802",
            "first_name": "Don",
            "last_name": "John",
            "profile_image": "https://chatbot.zampisoft.com/user.svg",
            "user_type": "lead",
            "id": "946",
            "title": "",
            "conversation_time": "2020-05-0410:06:30",
            "conversation_status_code": "3",
            "department": null
        }
    }
}

Devuelve {"success":true,"response":{"messages":[],"details":""}} si no se encuentra.


get-conversations

Devuelve todas las conversaciones. Cada una incluye el último mensaje.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-conversations.
  • pagination: Entero para paginación (0 para primeros 100, 1 para siguientes 100).
  • status_code: Códigos de estado: live = 0, esperando usuario = 1, esperando agente = 2, archivo = 3, papelera = 4, all = todos.
  • routing: Set it to true if the queue or routing is active in Settings > Miscellaneous. Default: false.
  • routing_unassigned: Set it to true to also view the conversations not assigned to any agent. Default: false.
  • department, source, tag: Filtros opcionales.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "message": "Hello World!",
            "message_id": "7351",
            "attachments": "",
            "payload": "",
            "message_status_code": "2",
            "last_update_time": "2023-10-02 16:00:06",
            "message_user_id": "377",
            "message_first_name": "Smart Assistant",
            "message_last_name": "",
            "message_profile_image": "https://example.com/image.jpg",
            "message_user_type": "bot",
            "conversation_id": "4084",
            "conversation_user_id": "4446",
            "conversation_status_code": "3",
            "conversation_creation_time": "2023-10-02 15:59:59",
            "department": "1",
            "agent_id": null,
            "title": "",
            "source": "tk",
            "extra": null,
            "tags": null,
            "conversation_first_name": "User",
            "conversation_last_name": "#26147",
            "conversation_profile_image": "https://example.com/image.jpg",
            "conversation_user_type": "lead"
        },
        ...
    ]
}

get-new-conversations

Devuelve conversaciones creadas después de la fecha/ID dada o con mensajes nuevos.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-new-conversations.
  • datetime Requerido: ID de conversación o fecha YYYY-MM-DD HH:MM:SS.
  • routing Set it to true if the queue or routing is active in Settings > Miscellaneous. Default: false.
  • routing_unassigned: Set it to true to also view the conversations not assigned to any agent. Default: false.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "message": "Hello World!",
            "message_id": "7351",
            "attachments": "",
            "payload": "",
            "message_status_code": "2",
            "last_update_time": "2023-10-02 16:00:06",
            "message_user_id": "377",
            "message_first_name": "Smart Assistant",
            "message_last_name": "",
            "message_profile_image": "https://example.com/image.jpg",
            "message_user_type": "bot",
            "conversation_id": "4084",
            "conversation_user_id": "4446",
            "conversation_status_code": "3",
            "conversation_creation_time": "2023-10-02 15:59:59",
            "department": "1",
            "agent_id": null,
            "title": "",
            "source": "tk",
            "extra": null,
            "tags": null,
            "conversation_first_name": "User",
            "conversation_last_name": "#26147",
            "conversation_profile_image": "https://example.com/image.jpg",
            "conversation_user_type": "lead"
        },
        ...
    ]
}

Return {"success":true, "response":[]} if no conversations are found.


get-user-conversations

Devuelve las conversaciones de un usuario.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-user-conversations.
  • user_id Requerido: El ID del usuario.
  • exclude_id: Excluir una conversación.
  • agents: true si el usuario es agente/admin.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "message": "Hello World!",
            "message_id": "7351",
            "attachments": "",
            "payload": "",
            "message_status_code": "2",
            "last_update_time": "2023-10-02 16:00:06",
            "message_user_id": "377",
            "message_first_name": "Smart Assistant",
            "message_last_name": "",
            "message_profile_image": "https://example.com/image.jpg",
            "message_user_type": "bot",
            "conversation_id": "4084",
            "conversation_user_id": "4446",
            "conversation_status_code": "3",
            "conversation_creation_time": "2023-10-02 15:59:59",
            "department": "1",
            "agent_id": null,
            "title": "",
            "source": "tk",
            "extra": null,
            "tags": null
        },
        ...
    ]
}

Return {"success":true, "response":[]} if no conversations are found.


get-new-user-conversations

Devuelve conversaciones de usuario actualizadas después de la fecha dada.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-new-user-conversations.
  • user_id Requerido: ID del usuario.
  • datetime Requerido: Conversation ID or date and time in the following format: YYYY-MM-DD HH:MM:SS. E.g. 2020-05-13 13:35:59. You can remove the time and leave only the date. The dates stored in the database are in UTC+0.

Respuesta

JSON

{
    "success": true,
    "response": [
       {
            "message": "Hello World!",
            "message_id": "7351",
            "attachments": "",
            "payload": "",
            "message_status_code": "2",
            "last_update_time": "2023-10-02 16:00:06",
            "message_user_id": "377",
            "message_first_name": "Smart Assistant",
            "message_last_name": "",
            "message_profile_image": "https://example.com/image.jpg",
            "message_user_type": "bot",
            "conversation_id": "4084",
            "conversation_user_id": "4446",
            "conversation_status_code": "3",
            "conversation_creation_time": "2023-10-02 15:59:59",
            "department": "1",
            "agent_id": null,
            "title": "",
            "source": "tk",
            "extra": null,
            "tags": null
        },
        ...
    ]
}

Return {"success":true, "response":[]} if no conversations are found.


search-conversations

Devuelve conversaciones que coinciden con la búsqueda.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese search-conversations.
  • search Requerido: Cadena de búsqueda (mensajes, adjuntos, emails, nombres, tags, etc.).

Respuesta

JSON

{
  "success": true,
  "response": [
        {
            "message": "Hello World!",
            "message_id": "7351",
            "attachments": "",
            "payload": "",
            "message_status_code": "2",
            "last_update_time": "2023-10-02 16:00:06",
            "message_user_id": "377",
            "message_first_name": "Smart Assistant",
            "message_last_name": "",
            "message_profile_image": "https://example.com/image.jpg",
            "message_user_type": "bot",
            "conversation_id": "4084",
            "conversation_user_id": "4446",
            "conversation_status_code": "3",
            "conversation_creation_time": "2023-10-02 15:59:59",
            "department": "1",
            "agent_id": null,
            "title": "",
            "source": "tk",
            "extra": null,
            "tags": null,
            "conversation_first_name": "User",
            "conversation_last_name": "#26147",
            "conversation_profile_image": "https://example.com/image.jpg",
            "conversation_user_type": "lead"
        },
        ...
  ]
}

Return {"success":true, "response":[]} if no conversations are found.


search-user-conversations

Busca en las conversaciones de un usuario específico.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese search-user-conversations.
  • search Requerido: La función de búsqueda puede buscar por nombres de archivos adjuntos, mensajes, correo electrónico del usuario, nombre y apellido, etiquetas, ID del agente, ID del departamento, título de la conversación y más.
  • user_id Requerido: ID del usuario.

Respuesta

JSON

{
  "exito": true,
  "respuesta": [
    {
      "id_mensaje": "7351",
      "mensaje": "¡Hola mundo!",
      "archivos_adjuntos": "",
      "carga_util": "",
      "codigo_estado_mensaje": "2",
      "hora_ultima_actualizacion": "2023-10-02 16:00:06",

      "id_usuario_mensaje": "377",
      "nombre_mensaje": "Asistente Inteligente",
      "apellido_mensaje": "",
      "imagen_perfil_mensaje": "https://example.com/image.jpg",
      "tipo_usuario_mensaje": "bot",

      "id_conversacion": "4084",
      "id_usuario_conversacion": "4446",
      "codigo_estado_conversacion": "3",
      "hora_creacion_conversacion": "2023-10-02 15:59:59",

      "departamento": "1",
      "id_agente": null,

      "titulo": "",
      "fuente": "tk",
      "extra": null,
      "etiquetas": null
    }
  ]
}

Returns {"success":true, "response":[]} if no conversations are found.


new-conversation

Crea una nueva conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese new-conversation.
  • user_id Requerido: ID del usuario vinculado.
  • status_code: Por defecto 1.
  • title: Título.
  • department: ID del departamento. Por defecto -1.
  • agent_id: ID del agente asignado. Por defecto -1.
  • source, extra, tags.

Respuesta

JSON

{
    "success": true,
    "response": {
        "messages": [],
        "details": {
            "user_id": "882",
            "first_name": "Don",
            "last_name": "John",
            "profile_image": "https://chatbot.zampisoft.com/user.svg",
            "user_type": "lead",
            "id": "1007",
            "title": "",
            "conversation_time": "2020-05-15 12:51:39",
            "conversation_status_code": "0",
            "department": null
        }
    }
}

Other possible responses: Conversation details array on success, otherwise user-not-foundMySQL error message.


update-conversation-status

Actualiza el código de estado de una conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese update-conversation-status.
  • conversation_id Requerido: ID de la conversación.
  • status_code Requerido: 0 (live), 1 (esperando usuario), 2 (esperando agente), 3 (archivo), 4 (papelera).

Respuesta

JSON

{
    "success": true,
    "response": true
}

update-conversation-department

Actualiza el departamento de una conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese update-conversation-department.
  • conversation_id Requerido: ID de la conversación.
  • department Requerido: ID del departamento. Use false para remover.
  • message: Mensaje para notificar a los agentes del nuevo departamento.

Respuesta

JSON

{
    "success": true,
    "response": true
}

update-conversation-agent

Asigna o actualiza el agente de una conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese update-conversation-agent.
  • conversation_id Requerido: ID de la conversación.
  • agent_id Requerido: ID del agente. false para remover.
  • message: Mensaje de notificación para el agente.

Respuesta

JSON

{
    "success": true,
    "response": true
}

set-rating

Asigna una calificación a una conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese set-rating.
  • settings Requerido: JSON { "settings" : { "conversation_id": "ID", "rating": "RATING" }}. 1 positivo, 0 negativo.
  • payload, message_id, message, user_id: Opcionales para actualizar mensaje.

Respuesta

JSON

{
    "success": true,
    "response": true
}

get-rating

Obtiene las calificaciones asignadas a un agente.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-rating.
  • user_id Requerido: ID del agente.

Respuesta {"success": true, "response": [4,2]} (4 positivas, 2 negativas).

The response array: [count of positive ratings, count of negative ratings]. In the example above there are 4 positive ratings and 2 negative ratings.


get-new-messages

Devuelve los mensajes de una conversación creados después de la fecha/ID dada.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-new-messages.
  • user_id Requerido: ID del usuario.
  • conversation_id Requerido: ID de la conversación.
  • datetime Requerido: ID o fecha YYYY-MM-DD HH:MM:SS.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "id": "2319",
            "user_id": "377",
            "message": "Welcome to our support chat!",
            "creation_time": "2020-05-12 18:04:50",
            "attachments": "",
            "status_code": "0",
            "payload": "",
            "conversation_id": "1004",
            "first_name": "Virtual",
            "last_name": "Agent",
            "profile_image": "https://chatbot.zampisoft.com/bot.svg",
            "user_type": "bot"
        },
        {
            "id": "2320",
            "user_id": "877",
            "message": "Thank you! I need help.",
            "creation_time": "2020-05-12 18:04:51",
            "attachments": "",
            "status_code": "0",
            "payload": "",
            "conversation_id": "1004",
            "first_name": "Don",
            "last_name": "John",
            "profile_image": "https:/chatbot.zammpisoft.com/user.svg",
            "user_type": "lead"
        },
        ...
    ]
}

Return {"success":true, "response":[]} if no conversations are found.


get-last-message

Devuelve el último mensaje de una conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-last-message.
  • conversation_id Requerido: ID de la conversación.
  • exclude_message: Excluir mensaje con texto específico.
  • user_id: Verificar solo mensajes de este usuario.

Respuesta

JSON

{
    "success": true,
    "response": {
        "message": "Welcome to our support chat!",
        "attachments": "",
        "payload": ""
    }
}

send-message

Añade un nuevo mensaje a una conversación existente.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese send-message.
  • user_id Requerido: El ID del usuario que envía el mensaje. Utilice la API get-bot-id para obtener el ID del bot si es el sistema quien envía el mensaje.
  • conversation_id Requerido: El ID de la conversación.
  • message: El contenido del mensaje.
  • attachments: Array de archivos adjuntos en formato JSON.
    • Sintaxis del array: [["nombre", "enlace"], ["nombre", "enlace"], ...].
    • Reemplace nombre con el nombre del archivo adjunto y enlace con la URL completa del archivo.
    • Nota: Es su responsabilidad subir los archivos adjuntos a un servidor remoto; este argumento solo acepta la URL de archivos que ya han sido subidos previamente.
    • Por defecto: [].
  • conversation_status_code: El código de estado que se asignará a la conversación.
    • Códigos de estado: activo (live) = 0, esperando respuesta del usuario = 1, esperando respuesta del agente = 2, archivado = 3, papelera = 4.
    • Establézcalo en skip para dejar el estado actual de la conversación sin cambios.
  • payload: Array en formato JSON con información adicional. Puede insertar cualquier valor.
    • Sintaxis del array: { "clave": valor, "clave": valor, ... }.
  • queue: Establézcalo en true si la función de Cola está activa en Configuración > Misceláneas > Cola (Queue). Por defecto: false.
  • recipient_id: El ID del usuario que recibe el mensaje. Utilice este atributo para que el sistema detecte y aplique el idioma correcto del usuario.

Respuesta

JSON

{
    "success": true,
    "response": {
        "status": "success",
        "message-id": 123456,
        "queue": false,
        "notifications": ["sms", "email"],
        "message": "Text of the message"
    }
}

Other possible responses: invalid-status-codeMySQL error message. The notifications response include the notifications sent to the user or agents.


update-message

Actualiza un mensaje existente.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese update-message.
  • message_id Requerido: El ID del mensaje.
  • message: El contenido del mensaje.
  • attachments: Array de archivos adjuntos en formato JSON.
    • Sintaxis del array: [["nombre", "enlace"], ["nombre", "enlace"], ...].
    • Reemplace nombre con el nombre del archivo adjunto y enlace con la URL completa del archivo adjunto.
    • Nota: Es su responsabilidad subir los archivos adjuntos a un servidor remoto; este argumento solo acepta la URL de los archivos que ya han sido subidos previamente.
    • Por defecto: [].
  • payload: Array en formato JSON de información adicional.
    • Puede insertar cualquier valor.
    • Sintaxis del array: { "clave": valor, "clave": valor, ... }.

Respuesta

JSON

{
    "success": true,
    "response": true
}

delete-message

Elimina un mensaje existente.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese delete-message.
  • message_id Requerido: ID del mensaje.

Respuesta

JSON

{
    "success": true,
    "response": true
}

delete-attachments

Elimina todos los adjuntos de una conversación o mensaje (incluyendo AWS S3).

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese delete-attachments.
  • conversation_id: El ID de la conversación que contiene los archivos adjuntos que desea eliminar. Por defecto: false.
  • message_id: El ID del mensaje que contiene los archivos adjuntos que desea eliminar. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": true
}

update-messages-status

Actualiza el estado de múltiples mensajes a "leído".

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese update-messages-status.
  • message_ids Requerido: Array de IDs de mensajes [1, 212, ...].
  • user_id: ID del usuario (requerido para Pusher).

Respuesta

JSON

{
    "success": true,
    "response": true
}

get-agents-in-conversation

Devuelve un array con todos los agentes que tienen al menos un mensaje en la conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-agents-in-conversation.
  • conversation_id Requerido: ID de conversación (puede ser un array).

Respuesta

JSON

{
     "success": true,
     "response": {
         "1546": [
             {
                 "id": 5463,
                 "first_name": "Don",
                 "last_name": "John",
                 "profile_image": "https://chatbot.zampisoft.com/user.svg",
                 "conversation_id": 1546
             },
             {
                 "id": 6413,
                 "first_name": "Steven",
                 "last_name": "Travolta",
                 "profile_image": "https://chatbot.zampisoft.com/user.svg",
                 "conversation_id": 1546
             },
             ...
         ]
     }
 }

transcript

Exporta una conversación a CSV o TXT y devuelve la URL.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese transcript.
  • conversation_id Requerido: El ID de la conversación que desea exportar.
  • type:
    • Establézcalo en csv para exportar la conversación como un archivo CSV.
    • Establézcalo en txt para exportar la conversación como un archivo de texto.
    • Establézcalo en false para utilizar el tipo definido en Configuración > Administración > Tipo de transcripción (Settings > Admin > Transcript type).
    • Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": "https://chatbot.zampisoft.com/uploads/conversation-1021.csv"
}

Return {"success":true, "response":false} if the conversation is not found.


direct-message

Envía un mensaje de chat directo.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese direct-message.
  • user_ids Requerido: Array de IDs de usuario, ej. [45, 89, 65].
  • message Requerido: El mensaje.
  • subject: El asunto. Requerido solo para correos electrónicos. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": true
}

messaging-platforms-send-message

Envía un mensaje a la plataforma de mensajería vinculada (Facebook, WhatsApp, etc.).

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese messaging-platforms-send-message.
  • conversation_id Requerido: El ID de la conversación.
  • message Requerido: El mensaje.
  • attachments Requerido: Array de archivos adjuntos en formato JSON.
  • Sintaxis del array: [["nombre", "enlace"], ["nombre", "enlace"], ...].
  • Reemplace nombre con el nombre del archivo adjunto y enlace con la URL completa del archivo adjunto.
  • Nota: Es su responsabilidad subir los archivos adjuntos a un servidor remoto; este argumento solo acepta la URL de los archivos que ya han sido subidos previamente.
  • user Requerido: Array asociativo con { "id": 123, "profile_image":
  • source: Array asociativo con { "source": CÓDIGO DE FUENTE } como valor.
  • Códigos de fuente disponibles: em (Email), tk (Ticket), wa (WhatsApp), fb (Facebook Messenger), ig (Instagram), tw (Twitter), wc (WeChat), tx (Mensaje de texto), gb (Google Business Messages), tg (Telegram), ln (LINE), vb (Viber).
  • Para Telegram: La fuente también debe incluir { "chat_id": "123456789" }.
  • Para Facebook Messenger: La fuente también debe incluir { "page_id": "123456789" }.

Respuesta

JSON

{
    "success": true,
    "response": true
}

count-conversations

Cuenta el número de conversaciones.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese count-conversations.
  • status_code: Filtrar por código de estado.

Respuesta

JSON

{
    "success": true,
    "response": 123456
}

check-conversations-assignment

Verifica si una lista de conversaciones está asignada a un departamento o agente.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese check-conversations-assignment.
  • conversation_ids Requerido: Array de IDs de las conversaciones a verificar, ej. [45, 565, 68].
  • agent_id: El ID del agente. Por defecto: false.
  • department_id: El ID del departamento. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": [1234, 5, ...]
}

get-last-agent-in-conversation

Devuelve el último agente que respondió a una conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-last-agent-in-conversation.
  • conversation_id Requerido: El ID de la conversación.

Respuesta

JSON


{
     "success": true,
     "response": {
        "id": 123,
        "first_name": "Don",
        "last_name": "John",
        "email": "email@example.com",
        "password": "$P$BcCpYeU21wYnXKW2LpJj/F9xRdSmLM/"
     }
 }

Devuelve false si la conversación no tiene respuestas de agentes.


execute-bot-message

Envía un mensaje del bot y devuelve su contenido.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese execute-bot-message.
  • name Requerido: El nombre del mensaje del bot. Valores disponibles: offline, follow_up, welcome.
  • conversation_id Requerido: El ID de la conversación a la que enviar el mensaje.
  • last_user_message: Úselo para mostrar diferentes extractos de texto en el área de administración y el panel de chat. Por defecto: false.
  • check: Establézcalo en false para enviar el mensaje incluso si ya se envió hace menos de 10 días. Por defecto: true.

Respuesta

JSON

{
    "success": true,
    "response": {
       "message": "Lorem ipsum dolor",
       "attachments": [],
       "id": 123,
       "settings": {
          "active": true,
          "title": "",
          "message": ""
       }
    }
}

ID es el ID del mensaje que se acaba de crear.


⚙️ WEB API: Configuración (Settings)

Funciones relacionadas con la configuración, artículos, traducciones y más.

get-setting

Devuelve una configuración guardada en el área de Configuración.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-setting.
  • setting Requerido: El ID de la configuración. Puede obtener los IDs de todas las configuraciones del archivo resources\json\settings.json o con la función de la API get-settings.

Respuesta

JSON

{
    "success": true,
    "response": {
        "option": "value",
        "option": "value",
        ...
    }
}

get-multi-setting

Devuelve una sub-configuración de otra configuración.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-multi-setting.
  • id Requerido: El ID de la configuración principal. Puede obtener los IDs de todas las configuraciones del archivo resources\json\settings.json o con la función de la API get-settings.
  • sub_id Requerido: El ID de la sub-configuración. Puede obtener los IDs de todas las configuraciones del archivo resources\json\settings.json o con la función de la API get-settings.
  • default: El valor a devolver si no se encuentra la configuración. Por defecto: false.

Respuesta Devuelve el valor de la sub-configuración si está disponible; de lo contrario, devuelve el valor por defecto.


get-external-setting

Devuelve una configuración externa. Las configuraciones externas se guardan en una fila dedicada de la base de datos.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-external-setting.
  • name Requerido: El nombre de la configuración.
  • default: El valor a devolver si no se encuentra la configuración. Por defecto: false.

Respuesta Devuelve el valor de la configuración si está disponible; de lo contrario, devuelve el valor por defecto.


get-settings

Devuelve un array con todas las configuraciones.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-settings.

Respuesta

JSON

{
    "success": true,
    "response": {
        "chat-manual-init": [
            false,
            "checkbox"
        ],
        "chat-login-init": [
            false,
            "checkbox"
        ],
        "init-dashboard": [
            true,
            "checkbox"
        ],
        "chat-timetable-disable": [
            false,
            "checkbox"
        ],
        "rtl": [
            false,
            "checkbox"
        ],
        "front-auto-translations": [
            true,
            "checkbox"
        ],
        ...
    }
}

save-settings

Guarda todas las configuraciones.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese save-settings.
  • settings Requerido: El array de configuraciones. Obténgalo de get-settings.
  • external_settings: Configuraciones guardadas en una fila dedicada de la tabla sb_settings de la base de datos.
  • external_settings_translations: Traducciones de las configuraciones externas.

Respuesta

JSON

{
    "success": true,
    "response": true
}

save-external-setting

Guarda una configuración externa. Las configuraciones externas se guardan en una fila dedicada de la base de datos.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese save-external-setting.
  • name Requerido: El nombre de la configuración.
  • value Requerido: El valor de la configuración.

Respuesta

JSON

{
    "success": true,
    "response": true
}

export-settings

Exporta todas las configuraciones de ZampiBot a un archivo JSON y devuelve la URL del archivo.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese export-settings.

Respuesta

JSON

{
    "success": true,
    "response": "http://example.com/chatbot.zampisoft.com/uploads/settings_855776223.json"
}

Devuelve la URL del archivo JSON que contiene las configuraciones.


import-settings

Importa las configuraciones de ZampiBot desde un archivo JSON generado a través de la función export-settings.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese import-settings.
  • file_url Requerido: La URL del archivo JSON que contiene las configuraciones.

Respuesta

JSON

{
    "success": true,
    "response": true
}

get-departments

Devuelve los departamentos de ZampiBot.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-departments.

Respuesta

{
    "1": {
        "name": "Ejemplo",
        "color": "yellow",
        "image": "https://example.com/image.png"
    },
    "2": {
        "name": "Ejemplo",
        "color": "red",
        "image": "https://example.com/image.png"
    },
    ...
}

saved-replies

Devuelve un array con todas las respuestas guardadas.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese saved-replies.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "reply-name": "hola",
            "reply-text": "¡Hola! ¿Cómo puedo ayudarte?"
        },
        {
            "reply-name": "email",
            "reply-text": "Nuestro correo electrónico es soporte@ejemplo.com."
        },
        ...
    ]
}

get-translation

Devuelve las traducciones en el idioma dado.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-translation.
  • language_code Requerido: El código de idioma de dos letras.

Respuesta

JSON

{
    "name": "Arabic",
    "front": {
        "Activities": "أنشطة",
        "All": "الكل",
        "All articles": "جميع المقالات",
        "All fields are required.": "جميع الحقول مطلوبة",
        ...
    },
    "admin": {
        "A conversation was started by": "",
        "Activate": "",
        "Activation complete! Page reload in progress...": "",
        "Add a saved reply": "",
        ...
    }
}

get-translations

Devuelve las traducciones del back-end y del front-end, para todos los idiomas disponibles.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-translations.

Respuesta

JSON

{
    "ar": {
        "name": "Arabic",
        "front": {
            "Activities": "أنشطة",
            "All": "الكل",
            "All articles": "جميع المقالات",
            "All fields are required.": "جميع الحقول مطلوبة",
            ...
        },
        "admin": {
            "A conversation was started by": "",
            "Activate": "",
            "Activation complete! Page reload in progress...": "",
            "Add a saved reply": "",
            ...
        }
    },
    "da": {
        "name": "Danish",
        "front": {
            "Activities": "Aktiviteter",
            "All": "Alle",
            "All articles": "Alle artikler",
            "All fields are required.": "Alle felter skal udfyldes.",
            ...
        },
        "admin": {
            "A conversation was started by": "",
            "Activate": "",
            "Activation complete! Page reload in progress...": "",
            "Add a saved reply": "",
            ...
        }
    },
    ...
}

save-translations

Guarda las traducciones y sobrescribe los archivos de traducción. ¡Advertencia! Si el array de traducciones dado está corrupto, podría corromper los archivos de traducciones. Haga primero una copia de seguridad de la carpeta de traducciones (\resources\languages\). Cada vez que se guarda una traducción, se crea una copia de seguridad automáticamente en la carpeta uploads.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese save-translations.
  • translations Requerido: El array de traducciones con todas las traducciones. Utilice el método get-translations para obtener el array.

Respuesta

JSON

{
    "success": true,
    "response": true
}

translate-string

Traduce una cadena al idioma del código de idioma especificado. Esta función solo funciona para traducciones del front-end.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese translate-string.
  • string Requerido: La cadena a traducir.
  • language_code: El código de idioma de dos letras. Establézcalo en false para usar el idioma del usuario activo. Por defecto: false.

Respuesta Devuelve la cadena traducida si se encuentra la traducción; de lo contrario, devuelve la cadena original.


📄 WEB API: Artículos

Funciones de Artículos y Base de Conocimientos.

get-articles

Devuelve un array con todos los artículos o un solo artículo.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-articles.
  • id: El ID del artículo. Para obtener los IDs de los artículos, ejecute este método nuevamente sin argumentos. Por defecto: -1.
  • count: El número máximo de artículos devueltos. Por defecto: todos.
  • full: Booleano. Establézcalo en true para obtener el contenido completo de los artículos. Por defecto: false.
  • categories:
    • Establézcalo en true para obtener el array de todas las categorías; en tal caso, la respuesta es un array doble (el primer elemento son los artículos, el segundo son las categorías).
    • Establézcalo en el ID de la categoría para obtener solo los artículos de la categoría dada.
    • Por defecto: false.
  • articles_language: Obtiene los artículos en el idioma del código de idioma dado. Si no hay artículos en el código de idioma dado, se devuelven los artículos en el idioma por defecto. Establézcalo en all para obtener todas las traducciones. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "id": "6P2Oq",
            "title": "What's new with the API V2?",
            "content": "The API V2 is the new iteration of o ...",
            "link": "https://chatbot.zampisoft.com",
            "categories": ["K92kl"]
        },
        {
            "title": "Should I move to the new system?",
            "content": "Yes. The newest version of the Actions ...",
            "link": "https://chatbot.zampisoft.com",
            "id": "qf7kD",
            "categories": ["ols85"]
        },
        ...
    ]
}

Respuesta (Un solo artículo):

JSON

{
    "success": true,
    "response": {
        "id": "6P2Oq",
        "title": "What's new with the API V2?",
        "content": "The API V2 is the new iteration of our developer API. The new API integrates...",
        "link": "https://board.support",
        "categories": ["K92kl"]
    }
}

save-article

Guarda todos los artículos. Esta función elimina todos los artículos existentes y los reemplaza con los del array dado.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese save-article.
  • article Requerido: Array de artículos. Utilice la función get-articles para obtener la estructura del artículo.

Respuesta

JSON

{
    "success": true,
    "response": true
}

search-articles

Devuelve los artículos que coinciden con la búsqueda.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese search-articles.
  • search Requerido: La cadena a buscar. La función de búsqueda admite título y contenido.
  • articles_language: Busca solo los artículos en el idioma del código de idioma dado. Si no hay artículos en el código de idioma dado, la búsqueda devuelve los artículos en el idioma por defecto. Establézcalo en all para obtener todas las traducciones. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": [
         {
             "id": "118",
             "title": "Hello world!",
             "content": "Lorem ipsum dolor sit amet...",
             "editor_js": "",
             "link": "",
             "category": "basements",
             "parent_category": "video",
             "language": "",
             "parent_id": null,
             "slug": "images-and-photos",
             "update_time": "2024-06-04"
         },
         {
             "id": "127",
             "title": "How to develop an app",
             "content": "Resitor Lorem ipsum dolor sit amet...",
             "editor_js": "",
             "link": "",
             "category": "",
             "parent_category": "",
             "language": "",
             "parent_id": null,
             "slug": null,
             "update_time": "2024-05-24"
         },
         ...
    ]
}

get-articles-categories

Devuelve un array con todas las categorías de artículos.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-articles-categories.

Respuesta

{
    "success": true,
    "response": [
        {
            "title": "Audio",
            "description": "Lorem ipsum dolor sit amet. ",
            "image":"https://example.com/image.jpg",
            "id": "audio",
            "parent": true,
            "languages": {
                "es": {
                    "title": "Audio",
                    "description": "Es eorem ipsum dolor sit amet. "
                }
            }
        },
        {
            "title": "Video",
            "description": "Lorem ipsum dolor.",
            "image": "https://example.com/image.jpg",
            "id": "video",
            "languages": []
        },
        ...
    ]
}

save-articles-categories

Guarda o actualiza el array de categorías de artículos.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese save-articles-categories.
  • categories Requerido: Array de categorías. Obtenga el array de categorías existentes con la función get-articles-categories.

Respuesta

JSON

{
    "success": true,
    "response": true
}

article-ratings

Obtiene las calificaciones de un artículo o añade una nueva calificación al mismo.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese article-ratings.
  • article_id Requerido: El ID del artículo.
  • rating: La calificación a añadir. Ingrese 1 para una calificación positiva o 0 para una negativa. Si se establece este argumento, el método añade la calificación; de lo contrario, devuelve las calificaciones existentes. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": "[-1, 1, 1, -1]"
}

Devuelve true si el argumento rating está establecido.


➕ WEB API: Más métodos

send-email

Envía un correo electrónico a un usuario existente utilizando las plantillas de correo de la sección Configuración > Notificaciones.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese send-email.
  • recipient_id Requerido: El ID del usuario al cual enviar el correo electrónico.
  • sender_id: El ID del usuario remitente.
  • message Requerido: El mensaje del correo electrónico.
  • attachments: Array de archivos adjuntos en formato JSON.
    • Sintaxis del array: [["nombre", "enlace"], ["nombre", "enlace"], ...].
    • Reemplace nombre con el nombre del archivo adjunto y enlace con la URL completa del archivo.
    • Nota: Es su responsabilidad subir los archivos adjuntos a un servidor remoto; este argumento solo acepta la URL de los archivos que ya han sido subidos previamente.
    • Por defecto: [].

Respuesta

JSON

{
    "success": true,
    "response": true
}

Otras posibles respuestas: missing-user-id-or-message, security-error, user-email-not-found, user-or-sender-not-found.


send-custom-email

Envía un correo electrónico genérico a una dirección de correo. El correo y nombre del remitente son los configurados en Configuración > Notificaciones > Configuración de correo electrónico.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese send-custom-email.
  • to Requerido: La dirección de correo electrónico del destinatario.
  • subject Requerido: El asunto del correo.
  • message Requerido: El mensaje del correo.
  • sender_suffix: Añade el texto proporcionado al nombre del remitente. Por defecto: vacío.

Respuesta

JSON

{
    "success": true,
    "response": true
}

email-piping

Ejecuta la sincronización de email piping con ZampiBot y convierte los correos electrónicos en mensajes de chat.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese email-piping.
  • force: Establézcalo en true para forzar la ejecución de la sincronización; por defecto, la sincronización se ejecuta un máximo de una vez por minuto. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": true
}

send-sms

Envía un mensaje de texto (SMS) a un usuario o agente. Si el argumento template es verdadero (true), el mensaje se traduce automáticamente.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese send-sms.
  • message Requerido: El mensaje de texto.
  • to Requerido: El número de teléfono. Incluya el código de país.
  • template: Establézcalo en false para enviar solo el mensaje sin el contenido de la plantilla. Por defecto: el mensaje se envía dentro de la plantilla configurada en Configuración > Notificaciones SMS.
  • conversation_id: Establézcalo si el mensaje contiene el campo de combinación {conversation_url_parameter}.
  • attachments: Array de adjuntos. Sintaxis: [["nombre", "enlace"], ["nombre", "enlace"], ...] o ["enlace", "enlace", ...].
    • Reemplace nombre con el nombre del adjunto y enlace con la URL completa.
    • Es su responsabilidad subir los archivos a un servidor remoto.
    • Por defecto: false.
  • recipient_id: El ID del usuario al cual enviar el mensaje de texto. Este argumento es requerido para que funcionen las traducciones.

Respuesta

JSON

{
    "success": true,
    "response": {
        "sid": "SM1f0e8ae6ade43cb3c0ce4525424e404f",
        "date_created": "Fri, 13 Aug 2010 01:16:24 +0000",
        "date_updated": "Fri, 13 Aug 2010 01:16:24 +0000",
        "date_sent": null,
        "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "to": "+15305431221",
        "from": "+15104564545",
        "body": "A Test Message",
        "status": "queued",
        "flags": [
            "outbound"
        ],
        "api_version": "2010-04-01",
        "price": null,
        "uri": "/2010-04-01/Accounts/ACXXXX/Messages/SM1f004f.json"
    }
}

push-notification

Envía una notificación Push a un agente, un grupo de agentes o a todos los agentes. Las notificaciones Push deben estar habilitadas en el área de configuración.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese push-notification.
  • title Requerido: El título de la notificación.
  • message Requerido: El texto del mensaje.
  • interests Requerido: Se aceptan los siguientes valores:
    • ID de Agente o usuario.
    • Array de IDs de agentes o usuarios (ej. [1, 2, 3]).
    • Ingrese agents para enviar la notificación a todos los agentes y administradores.
    • Ingrese department-ID para enviar la notificación a todos los agentes y administradores asignados al departamento dado o a aquellos sin departamento asignado. Reemplace ID con el ID del departamento.
  • conversation_id: El ID de la conversación que se abrirá cuando el usuario haga clic en la notificación.
  • icon: La URL del icono de la notificación. Por defecto: Icono de ZampiBot o icono de notificaciones.

Respuesta

JSON

{
    "success": true,
    "response": {
        "id": "8b1c4e05-5e08-4926-86b0-a56ab7817e25",
        "external_id": null,
        "errors": {}
    }
}

Devuelve false si las notificaciones Push están deshabilitadas en el área de configuración.


get-versions

Devuelve las versiones instaladas de ZampiBot y las Apps.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-versions.

Respuesta

JSON

{
    "success": true,
    "response": {
        "sb": "3.0.4",
        "dialogflow": "1.0.2",
        "slack": "1.0.3"
    }
}

cron-jobs

Ejecuta las tareas programadas (cron jobs).

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese cron-jobs.

Respuesta

JSON

{
    "success": true,
    "response": true
}

pusher-trigger

Dispara un evento en un canal de Pusher.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese pusher-trigger.
  • channel Requerido: El nombre del canal.
  • event Requerido: El nombre del evento.
  • data: Array de valores. Sintaxis: [ "nombre" => "valor" ].

Respuesta

JSON

{
    "success": true,
    "response": true
}

chat-css

Devuelve el estilo CSS para los colores del chat.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese chat-css.
  • color_1: El primer color en formato RGB o HEX. Por defecto: el primer color guardado en el área de configuración.
  • color_2: El segundo color en formato RGB o HEX. Por defecto: el segundo color guardado en el área de configuración.
  • color_3: El tercer color en formato RGB o HEX. Por defecto: el tercer color guardado en el área de configuración.

Respuesta El código CSS.


text-formatting-to-html

Convierte el formato de texto de los mensajes de chat a los códigos HTML equivalentes y devuelve el mensaje.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese text-formatting-to-html.
  • message Requerido: El mensaje de texto.

Respuesta Lorem ipsum dolor <b>sit amet</b>, <i>consectetur adipiscing elit</i>, <code>sed</code> do eiusmod tempor incididunt.


clear-text-formatting

Elimina el formato de texto de los mensajes de chat.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese clear-text-formatting.
  • message Requerido: El mensaje de texto.

Respuesta Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.


get-notes

Devuelve las notas internas de una conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese get-notes.
  • conversation_id Requerido: El ID de la conversación.

Respuesta

JSON

{
    "success": true,
    "response": [
        {
            "id": 98207,
            "user_id": "1538",
            "name": "Lorem ipsum dolor sit amet",
            "message": "Lorem ipsum dolor sit amet, consectetur elit, sed do eiusmod tempor incididunt."
        },
        {
            "id": 76986,
            "user_id": "1596",
            "name": "Lorem ipsum dolor",
            "message": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor."
        },
        ...
    ]
}

add-note

Añade una nueva nota a una conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese add-note.
  • conversation_id Requerido: El ID de la conversación a la cual vincular la nota.
  • user_id Requerido: El ID del agente o administrador que crea la nota.
  • name Requerido: El nombre de la nota.
  • message Requerido: El mensaje de la nota.

Respuesta

JSON

{
    "success": true,
    "response": 33560
}

Devuelve el ID de la nota.


delete-note

Elimina una nota de una conversación.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese delete-note.
  • conversation_id Requerido: El ID de la conversación vinculada a la nota.
  • note_id Requerido: El ID de la nota.

Respuesta

JSON

{
    "success": true,
    "response": true
}

automations-get

Devuelve todas las automatizaciones.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese automations-get.

Respuesta

JSON

[
    {
        "emails": [
            {
                "id": "0BOaG",
                "conditions": [
                    [
                        "datetime",
                        "is-between",
                        "10/04/2021 - 13/04/2021"
                    ],
                    [
                        "include_urls",
                        "contains",
                        "https://example.com"
                    ],
                    ...
                ],
                "name": "Excepteur sint",
                "message": "Excepteur sint occaecat cupidatat non proident.",
                "subject": "Cupidatat non proident"
            },
            ...
        ],
        "sms": [
            {
                "id": "vo2sY",
                "conditions": [
                    [
                        "datetime",
                        "is-exactly",
                        "13/04/2021"
                    ]
                ],
                "name": "Excepteur sint",
                "message": "Excepteur sint occaecat cupidatat non caecat cupidatat non proident"
            },
            {
                "id": "hwkmQ",
                "name": "Excepteur sint occaecat cupidatat non proident",
                "message": "Excepteur sint occaecat cupidatat non  occaecat cupidatat non proident"
            },
            ...
        ],
        "messages": [],
        "popups": [
            {
                "id": "ckN24",
                "conditions": [
                    [
                        "user_type",
                        "is-user"
                    ],
                    [
                        "languages",
                        "en"
                    ]
                ],
                "name": "s",
                "message": "Excepteur sint occaecat cupidatat non prcaecat cupidatat non proident",
                "title": "Excepteur sint occaecat",
                "profile_image": "https://example.com/image.jpg"
            },
            ...
        ],
        "design": [
            {
                "id": "bX1qA",
                "conditions": [
                    [
                        "user_type",
                        "is-user"
                    ]
                ],
                "name": "Excepteur sint",
                "message": "Excepteur sint occaecat cupidatat caecat cupidatat non proident",
                "title": "",
                "color_1": "rgb(0, 235, 26)",
                "color_2": "rgb(255, 0, 0)",
                "color_3": "rgb(255, 0, 0)",
                "background": "https://example.com/image.jpg",
                "brand": "https://example.com/image.jpg",
                "icon": "https://example.com/image.jpg"
            },
            ...
        ]
    },
    {
        "fr": {
            "messages": [
                {
                    "id": "y6hNE",
                    "name": "XXXX",
                    "message": "XXXX"
                }
            ]
        },
        ...
    }
]

automations-save

Guarda todas las automatizaciones.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese automations-save.
  • automations Requerido: Array de automatizaciones. Obténgalo de la función automations-get.
  • translations: Array de traducciones de automatizaciones. Obténgalo de la función automations-get.

Respuesta

JSON

{
    "success": true,
    "response": true
}

automations-validate

Valida una automatización.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese automations-validate.
  • automation Requerido: La automatización.

Respuesta

JSON

{
      "conditions": [
          [
              "user_type",
              "is-user"
          ],
          ...
      ],
      "repeat_id": ""
  }

Devuelve solo las condiciones del lado del cliente y las condiciones del servidor inválidas que pueden validarse en un momento posterior. Si no se devuelven condiciones, la automatización es válida y puede ejecutarse. Devuelve false si la automatización es inválida.


automations-run-all

Valida todas las automatizaciones, ejecuta las válidas y devuelve las automatizaciones con condiciones del lado del cliente, condiciones del servidor inválidas y automatizaciones de popup y diseño.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese automations-run-all.

Respuesta

JSON

[
    {
        "id": "0BOaG",
        "conditions": [
            [
                "datetime",
                "is-between",
                "10/04/2021 - 13/04/2021"
            ],
            [
                "include_urls",
                "contains",
                "https://example.com"
            ],
            ...
        ],
        "name": "Excepteur sint",
        "message": "Excepteur sint occaecat cupidatat non proident.",
        "subject": "Cupidatat non proident",
        "type": "emails"
    },
    {
        "id": "bX1qA",
        "conditions": [
            [
                "user_type",
                "is-user"
            ]
        ],
        "name": "Excepteur sint",
        "message": "Excepteur sint occaecat cupidatat caecat cupidatat non proident",
        "title": "",
        "color_1": "rgb(0, 235, 26)",
        "color_2": "rgb(255, 0, 0)",
        "color_3": "rgb(255, 0, 0)",
        "background": "https://example.com/image.jpg",
        "brand": "https://example.com/image.jpg",
        "icon": "https://example.com/image.jpg",
        "type": "design"
    },
    ...
]

automations-run

Ejecuta una sola automatización y opcionalmente la valida antes de ejecutarla.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese automations-run.
  • automation Requerido: La automatización.
  • validate: Establézcalo en true para validar la automatización antes de ejecutarla. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": true
}

automations-is-sent

Verifica si una automatización ya ha sido enviada a un usuario.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese automations-is-sent.
  • user_id Requerido: El ID del usuario a verificar.
  • automation Requerido: La automatización. Puede ser ["id" => 123] donde 123 es el ID de la automatización.
  • repeat_id: Establézcalo solo si la automatización se puede enviar múltiples veces al usuario. Obténgalo de sb_automations_validate. Por defecto: false.

Respuesta Devuelve true si la automatización ya ha sido enviada; de lo contrario, devuelve false.


clean-data

Esta función realiza las siguientes tareas: Elimina visitantes con una antigüedad mayor a 24h, elimina mensajes en la papelera con una antigüedad mayor a 30 días, y archiva mensajes donde la última respuesta fue de un agente y tienen una antigüedad mayor a 24h.

Requisitos Esta es una función de administración y solo funciona si el usuario activo es un agente o un administrador.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese clean-data.

Respuesta

JSON

{
    "success": true,
    "response": true
}

reports

Devuelve los reportes especificados.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese reports.
  • name Requerido: El nombre del reporte. Valores disponibles: conversations, missed-conversations, conversations-time, visitors, leads, users, agents-response-time, agents-conversations, agents-conversations-time, agents-ratings, countries, languages, browsers, os, subscribe, follow-up, registrations, articles-searches, articles-ratings, articles-views-single, articles-views, sms-automations, email-automations, message-automations, direct-sms, direct-emails, direct-messages.
  • date_start: La fecha de inicio de los reportes. Formato: dd/mm/yyyy o yyyy-mm-dd. Por defecto: false.
  • date_end: La fecha de finalización de los reportes. Formato: dd/mm/yyyy o yyyy-mm-dd. Por defecto: false.
  • timezone: La zona horaria del usuario que llama a esta función, ej. Europe/London. Por defecto: false.

Respuesta

JSON

{
   "title": "New conversations",
   "description": "Count of new conversations started by users.",
   "data": {
       "03/2021": [
           2
       ],
       "04/2021": [
           0
       ],
       "05/2021": [
           0
       ],
       ...
   },
   "table": [
       "Date",
       "Count"
   ],
   "table_inverse": true,
   "label_type": 1,
   "chart_type": "line"
}  

reports-update

Añade una nueva fila a la tabla sb_reports de la base de datos.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese reports-update.
  • name Requerido: El nombre del reporte (ver valores disponibles en la función reports).
  • value: El valor de la fila. Por defecto: false.
  • external_id: Un ID externo. Por defecto: false.
  • extra: Un valor extra. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": true
}

updates-available

Comprueba si hay actualizaciones disponibles para ZampiBot y las aplicaciones de ZampiBot.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese updates-available.

Respuesta

JSON

{
    "success": true,
    "response": true
}

Devuelve true si hay al menos una actualización disponible; de lo contrario, devuelve false.


newsletter

Añade un suscriptor al servicio de boletín configurado en Configuración > Misceláneas > Newsletter. El ajuste Configuración > Misceláneas > Newsletter > Activo debe estar habilitado.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese newsletter.
  • email Requerido: La dirección de correo electrónico del suscriptor.
  • first_name: El nombre del suscriptor. Por defecto: vacío.
  • last_name: El apellido del suscriptor. Por defecto: vacío.

Respuesta Devuelve la respuesta del servicio de newsletter.


upload-path

Devuelve la ruta de subidas (uploads) de ZampiBot.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese upload-path.
  • url: Establézcalo en true para obtener la URL en su lugar. Por defecto: false.
  • date: Establézcalo en true para obtener también la carpeta de fecha relativa a la fecha actual. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": "\var\www\htdocs\chatbot.zampisoft.com\uploads\10-03-23"
}

o

JSON

{
    "success": true,
    "response": "https://www.example.com/chatbot.zampisoft.com/uploads/10-03-23"
}

is-allowed-extension

Comprueba si está permitido subir archivos con la extensión especificada.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese is-allowed-extension.
  • extension Requerido: La extensión del archivo, ej. jpg.

Respuesta

JSON

{
    "success": true,
    "response": true
}

Devuelve true si la extensión está permitida; de lo contrario, devuelve false.


system-requirements

Comprueba si la máquina host cumple con los requisitos del sistema de ZampiBot.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese system-requirements.

Respuesta

JSON

{
  "success": true,
  "response": {
      "php-version": true,
      "zip-archive": true,
      "plugin-folder": true,
      "uploads-folder": true,
      "apps-folder": true,
      "languages-folder": true,
      "ajax": true,
      "curl": true,
      "UTF8mb4": true
  }
}

logs

Añade un mensaje de registro al archivo de log.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese logs.
  • string Requerido: El mensaje de registro.
  • user: Establézcalo para incluir el ID de usuario en el mensaje de registro. Este valor puede ser ["id" => 123]. Por defecto: false.

Respuesta

JSON

{
  "success": true,
  "response": true
}

aws-s3

Sube un archivo a Amazon S3, o elimina un archivo de Amazon S3. Amazon S3 debe estar activo y configurado en Configuración > Misceláneas > Amazon S3.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese aws-s3.
  • file_path Requerido: La ruta al archivo para subir o la URL del archivo de Amazon S3 para eliminar.
  • action: Establézcalo en PUT para subir un archivo. Establézcalo en DELETE para eliminar un archivo. Por defecto: PUT.
  • bucket_name: El nombre del bucket. Por defecto: false.

Respuesta

JSON

{
  "success": true,
  "response": "https://example.s3.amazonaws.com/example.txt"
}

Devuelve la URL del archivo de Amazon S3.


🧠 WEB API: Inteligencia Artificial

La aplicación de Inteligencia Artificial es necesaria para utilizar este conjunto de APIs.

dialogflow-message

Envía un mensaje a Dialogflow y devuelve la respuesta.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-message.
  • conversation_id: El ID de una conversación. Si se proporciona, la respuesta se añade a la conversación como un nuevo mensaje.
  • message: La cadena que contiene el texto del mensaje.
  • attachments: Array de archivos adjuntos en formato JSON.
    • Sintaxis del array: [["nombre", "enlace"], ["nombre", "enlace"], ...].
    • Reemplace nombre con el nombre del archivo adjunto y enlace con la URL completa del archivo. Dialogflow puede leer este array.
  • language: El idioma del bot. Por defecto: el idioma principal del bot.
  • event: Dispara un evento de Dialogflow.
  • parameters: Array de información opcional.
    • Sintaxis del array: { "nombre": "valor", "nombre": "valor", ...}.
  • audio: URL de un archivo de audio para el reconocimiento de voz. Por defecto: false.
  • token: El token de acceso de Dialogflow. Por razones de rendimiento, incluya siempre este token. Obtendrá el token después de la primera llamada de esta función, dentro de la respuesta.

Respuesta

JSON

{
    "success": true,
    "response": {
        "token": "ya29.a0AfH6SE4SVIeOPWSfxRVfHNcJIoR-IvRTtrEe4P9VXHa",
        "messages": [
            {
                "message": "Hi! How are you doing?",
                "attachments": []
            }
        ],
        "response": {
            "responseId": "1a5e30d0-d6d4-4f0c-83e3-2fb9e31c2a5e-e15c53b8",
            "queryResult": {
                "queryText": "Hello",
                "action": "input.welcome",
                "parameters": [],
                "allRequiredParamsPresent": true,
                "fulfillmentText": "Hi! How are you doing?",
                "fulfillmentMessages": [
                    {
                        "platform": "ACTIONS_ON_GOOGLE",
                        "simpleResponses": {"simpleResponses": [ { "textToSpeech": "Example"} ]}
                    },
                    {
                        "text": { "text": [ "Hi! How are you doing?" ]  }
                    }
                ],
                "intent": {
                    "name": "projects/api-project-657752147/agent/intents/fe27e-f39d-4db3-92c2",
                    "displayName": "Default Welcome Intent"
                },
                "intentDetectionConfidence": 1,
                "languageCode": "en"
            },
            "alternativeQueryResults": [
                {
                    "queryText": "Hello",
                    "languageCode": "en"
                }
            ]
        }
    }
}

Otras posibles respuestas: dialogflow-not-active, mensaje de error de MySQL o cURL.


dialogflow-get-intents

Devuelve la Intención (Intent) de Dialogflow especificada o todas las Intenciones.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-get-intents.
  • intent_name: El nombre de la intención.
  • language: El idioma del agente. Por defecto: el idioma principal del agente.

Respuesta

JSON

[
  {
    "name": "projects/example/agent/intents/1655ee2c-8116-45f1-95fu-93700ff32e8d",
    "displayName": "Default Welcome Intent",
    "priority": 500000,
    "mlEnabled": true,
    "events": [ "WELCOME" ],
    "trainingPhrases": [
      {
        "name": "43ca0e72-6055-4b88-af13-b0d241",
        "type": "EXAMPLE",
        "parts": [
          {
            "text": "just going to say hi"
          }
        ]
      },
      {
        "name": "5159aabc-8524-404f-b679-f2228db1",
        "type": "EXAMPLE",
        "parts": [
          {
            "text": "Hello"
          }
        ]
      },
      ...
    ],
    "action": "input.welcome",
    "messages": [
      {
        "text": {
          "text": [ "Hi! How are you doing?", "Hello! How can I help you?" ]
        }
      }
    ]
  },
  ...
]

dialogflow-create-intent

Crea una nueva Intención (Intent) en Dialogflow. La nueva Intención se vinculará al agente sincronizado en el área de administración.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-create-intent.
  • expressions Requerido: Array con las frases de entrenamiento. Sintaxis del array: ["", "", ...].
  • response Requerido: Cadena que contiene la respuesta del bot cuando la entrada del usuario coincide con una expresión del usuario.
  • agent_language: El código de idioma de la intención. Por defecto: idioma principal del agente. Para ver la lista de códigos de idiomas, visite la documentación de Dialogflow. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": true
}

dialogflow-update-intent

Actualiza una Intención (Intent) de Dialogflow.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-update-intent.
  • intent_name Requerido: El nombre de la Intención. Obténgalo con la función dialogflow-get-intents.
  • expressions Requerido: Array con las frases de entrenamiento. Sintaxis del array: ["", "", ...].
  • agent_language: El código de idioma de la intención. Por defecto: idioma principal del agente.

Respuesta

JSON

{
    "success": true,
    "response": true
}

dialogflow-entity

Crea una nueva Entidad en Dialogflow. La nueva Entidad se vinculará al agente sincronizado en el área de administración.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-entity.
  • entity_name Requerido: El nombre único de la Entidad.
  • synonyms Requerido: Array de valores de la Entidad.
    • Sintaxis de valor único: ['value' => '', 'synonyms' => ['', '', ...]].
  • agent_language: El código de idioma de la intención. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": true
}

dialogflow-get-entity

Devuelve una Entidad de Dialogflow, o todas las Entidades del agente.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-get-entity.
  • entity_id Requerido: El ID de la Entidad. Déjelo vacío o inserte all para obtener todas las Entidades. Por defecto: all.
  • agent_language: El código de idioma de la intención. Por defecto: false.

Respuesta

JSON

{
    "success": true,
    "response": {
      "name":"projects/small-talk-43da7/agent/entityTypes/t5td1425-2k13-16cc-a7bb-f119b8d94112a",
      "displayName":"woocommerce-products",
      "kind":"KIND_MAP",
      "autoExpansionMode":"AUTO_EXPANSION_MODE_DEFAULT",
      "entities":[
         {
            "value":"Abstract Print Cotton Blouse",
            "synonyms":[
               "Abstract Print Cotton Blouse"
            ]
         },
         {
            "value":"Cashmere Carpenter Beanie",
            "synonyms":[
               "Cashmere Carpenter Beanie"
            ]
         },
         ...
      ],
      "enableFuzzyExtraction":true
    }
}

google-get-token

Genera un nuevo Token de Dialogflow y lo devuelve. El token es válido por 1 hora.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese google-get-token.

Respuesta

JSON

{
    "success": true,
    "response": "ya27.a1AfH6SMDu9dn0TfRbNVAIEsSoeJPD1_jr1JpfL15..."
}

dialogflow-get-agent

Devuelve los detalles del agente de Dialogflow.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-get-agent.

Respuesta

JSON

{
    "success": true,
    "response": {
        "parent":"projects/woocommerce-abcde",
        "displayName": "ABCDE",
        "defaultLanguageCode": "en",
        "timeZone": "Europe/Madrid",
        "enableLogging": true,
        "matchMode": "MATCH_MODE_HYBRID" ,
        "classificationThreshold": 0.6,
        "apiVersion": "API_VERSION_V2",
        "tier": "TIER_STANDARD"
    }
}

dialogflow-set-active-context

Activa un contexto de Dialogflow en la sesión del usuario activo.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-set-active-context.
  • context_name Requerido: El nombre del contexto.
  • user_id Requerido: El ID del usuario vinculado al contexto.
  • parameters: Array de parámetros de Dialogflow vinculados al contexto. Ejemplo: { "woocommerce-products": "Running Shoes" }.
  • life_span: La vida útil del contexto. Por defecto: 5.
  • token: Token de Sesión de Dialogflow (no es el Token de Actualización). Páselo si lo tiene; de lo contrario, se generará uno. Por defecto: false.
  • language: El idioma del agente. Por defecto: idioma principal del agente.

Respuesta

JSON

{
   "success":true,
   "response": {
      "responseId":"09f2f825-3dbf-4c27-a5bb-6bd0b71e44b9-1d846bd2",
      "queryResult":{
         "queryText":"sb-trigger-context",
         "outputContexts":[
            {
               "name":"projects/abcde/agent/sessions/208/contexts/abcde",
               "lifespanCount":4,
               ...
            }
         ],
         "languageCode":"en"
      }
   }
}

dialogflow-curl

Envía datos a Dialogflow. Utilice este método para enviar consultas a Dialogflow.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-curl.
  • query Requerido: La consulta de Dialogflow en formato JSON.
  • language: El idioma del agente de Dialogflow. Por defecto: false.
  • type: El tipo de llamada. Valores soportados: POST, GET, PATCH. Por defecto: POST.
  • token: Token de Sesión de Dialogflow (no es el Token de Actualización). Páselo si lo tiene; de lo contrario, se generará uno. Por defecto: false.

Respuesta

JSON

{
   "success": true,
   "response": "..."
}

Devuelve la respuesta de Dialogflow.


dialogflow-human-takeover

Dispara la toma de control humana (human takeover) de Dialogflow.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-human-takeover.
  • conversation_id Requerido: El ID de la conversación.
  • auto_messages: Establézcalo en true para enviar también mensajes de fuera de línea (offline), seguimiento (follow_up) y suscripción si están activos. Por defecto: false.

Respuesta

JSON

{
   "success": true,
   "response": [true, true, ...]
}

dialogflow-smart-reply

Devuelve las sugerencias de respuesta inteligente (Smart Reply).

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese dialogflow-smart-reply.
  • conversation_id Requerido: El ID de la conversación.
  • message Requerido: El mensaje de texto a partir del cual generar las sugerencias.
  • dialogflow_language: El idioma del agente de Dialogflow. Por defecto: false.
  • token: El token de acceso de Dialogflow. Por defecto: false.
  • conversation_id (Segundo parámetro con el mismo nombre en la doc original, se refiere a OpenAI): Establézcalo para habilitar las sugerencias de OpenAI. Por defecto: false.

Respuesta

JSON

{
   "suggestions": [
	   "I would be happy to help!",
	   "What can I do for you?",
       ...
	],
	"token": "ya29.a0AVvZVsrU7gAannWzuztBR-AphpjdWr0JrPoq9au0Ai",
	"detected_language": false,
	"smart_reply": false
}

open-ai-message

Envía un mensaje a OpenAI y devuelve la respuesta, opcionalmente añade la respuesta a una conversación existente como un nuevo mensaje.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese open-ai-message.
  • message Requerido: La cadena que contiene el texto del mensaje.
  • max_tokens: El número máximo de tokens de OpenAI que se pueden usar para generar el mensaje. Este parámetro cambia la longitud del mensaje de respuesta. Por defecto: false. Si este parámetro es falso, el valor por defecto es el guardado en Configuración > Inteligencia Artificial > OpenAI > Max tokens, o se calcula automáticamente.
  • model: El modelo de OpenAI. Por defecto: false. Si este parámetro es falso, el valor por defecto es el guardado en Configuración > Inteligencia Artificial > OpenAI > Model.
  • conversation_id: El ID de la conversación. Si se establece, la respuesta de OpenAI se añade a una conversación existente como un nuevo mensaje. Por defecto: false.
  • audio: URL de un archivo de audio para el reconocimiento de voz. Por defecto: false.

Respuesta

JSON

{
     "success": true,
     "response": [
         true,
         "I am an AI digital assistant. How can I help you today?",
         false,
         false
     ]
}

Devuelve un array con el primer valor establecido en true si es exitoso, false en caso de error. El segundo valor es el mensaje de OpenAI si es exitoso, o el mensaje de error si falla.


open-ai-curl

Llama a la API de OpenAI (ChatGPT) y devuelve la respuesta.

Argumentos

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese open-ai-curl.
  • url_part: La parte de la URL de la API. Por ejemplo, si quiere llamar a https://api.openai.com/v1/completions, ingrese solo completions.
  • post_fields: Los parámetros de la API en formato JSON.
  • type: El tipo de llamada HTTP. Valores permitidos: GET, POST, UPLOAD.

Respuesta

JSON

{
   "success": true,
   "response": "..."
}

Devuelve la respuesta de OpenAI.


google-translate

Traduce múltiples cadenas a través de Google Translate.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese google-translate.
  • strings Requerido: Array de las cadenas a traducir, ej. ["Hello world", "How are you?"].
  • language_code Requerido: El código de idioma de dos letras al que desea traducir. Para Chino Tradicional use zt, para Chino Simplificado use zh, para Portugués Brasileño use pt.

Respuesta

JSON

{
    "success": true,
    "response": [ "Ciao mondo", "Come stai?", ...]
}

google-language-detection-update-user

Detecta el idioma de un texto y lo asigna a un usuario.

Parámetros

  • token Requerido: Su token secreto de administrador.
  • function Requerido: Ingrese google-language-detection-update-user.
  • string Requerido: El texto del cual detectar el idioma.
  • user_id Requerido: El ID del usuario.

Respuesta

JSON

{
   "success": true,
   "response": true
}