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:

Información


👥 WEB API: Usuarios

Métodos para gestionar usuarios, agentes y administradores.

get-user

Devuelve los detalles de un usuario.

Argumentos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Respuesta

JSON

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

delete-users

Elimina múltiples usuarios y sus datos vinculados.

Argumentos

Respuesta

JSON

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

is-online

Verifica si un usuario está en línea.

Argumentos

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

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

Respuesta

JSON

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

update-user-to-lead

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

Argumentos

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

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

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

{
  "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

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

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

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

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

Respuesta

JSON

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

update-bot

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

Argumentos

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

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

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

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

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

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

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

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

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

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

Respuesta

JSON

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

update-conversation-department

Actualiza el departamento de una conversación.

Argumentos

Respuesta

JSON

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

update-conversation-agent

Asigna o actualiza el agente de una conversación.

Argumentos

Respuesta

JSON

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

set-rating

Asigna una calificación a una conversación.

Argumentos

Respuesta

JSON

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

get-rating

Obtiene las calificaciones asignadas a un agente.

Argumentos

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

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

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

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

Respuesta

JSON

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

delete-message

Elimina un mensaje existente.

Argumentos

Respuesta

JSON

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

delete-attachments

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

Argumentos

Respuesta

JSON

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

update-messages-status

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

Argumentos

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

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

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

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

Respuesta

JSON

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

count-conversations

Cuenta el número de conversaciones.

Argumentos

Respuesta

JSON

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

check-conversations-assignment

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

Argumentos

Respuesta

JSON

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

get-last-agent-in-conversation

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

Argumentos

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

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

Respuesta

JSON


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

get-multi-setting

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

Argumentos

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

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

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

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

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

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

Respuesta

JSON


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

get-departments

Devuelve los departamentos de ZampiBot.

Parámetros

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

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

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

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

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

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

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

Respuesta

JSON


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

search-articles

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

Argumentos

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

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

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

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

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

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

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

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

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

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

Respuesta

JSON


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

pusher-trigger

Dispara un evento en un canal de Pusher.

Argumentos

Respuesta

JSON


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

chat-css

Devuelve el estilo CSS para los colores del chat.

Argumentos

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

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

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

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

Respuesta

JSON


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

Devuelve el ID de la nota.


delete-note

Elimina una nota de una conversación.

Argumentos

Respuesta

JSON


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

automations-get

Devuelve todas las automatizaciones.

Argumentos

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

Respuesta

JSON


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

automations-validate

Valida una automatización.

Argumentos

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

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

Respuesta

JSON


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

automations-is-sent

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

Argumentos

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

Respuesta

JSON


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

reports

Devuelve los reportes especificados.

Parámetros

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

Respuesta

JSON


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

updates-available

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

Parámetros

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

Respuesta Devuelve la respuesta del servicio de newsletter.


upload-path

Devuelve la ruta de subidas (uploads) de ZampiBot.

Argumentos

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

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

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

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

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

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

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

Respuesta

JSON


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

dialogflow-update-intent

Actualiza una Intención (Intent) de Dialogflow.

Argumentos

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

Respuesta

JSON


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

dialogflow-get-entity

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

Argumentos

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

Respuesta

JSON


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

dialogflow-get-agent

Devuelve los detalles del agente de Dialogflow.

Argumentos

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

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

Respuesta

JSON


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

Devuelve la respuesta de Dialogflow.


dialogflow-human-takeover

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

Argumentos

Respuesta

JSON


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

dialogflow-smart-reply

Devuelve las sugerencias de respuesta inteligente (Smart Reply).

Argumentos

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

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

Respuesta

JSON


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

Devuelve la respuesta de OpenAI.


google-translate

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

Parámetros

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

Respuesta

JSON

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

📱 WEB API: WhatsApp

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

whatsapp-send-message

Envía un mensaje a un número de WhatsApp.

Argumentos

Respuesta

JSON


{
     "success": true,
     "response": {
         "messaging_product": "whatsapp",
         "contacts": [
             {
                 "input": "+16315551234",
                 "wa_id": "+16315551234"
             }
         ],
         "messages": [
             {
                 "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI3N0EyQUJDMjFEQzZCQUMzODMA"
             }
         ]
     }
 }

whatsapp-send-template

Envía una plantilla de WhatsApp a un número de WhatsApp.

Argumentos

Respuesta

JSON


{
     "success": true,
     "response": {
         "messaging_product": "whatsapp",
         "contacts": [ ... ],
         "messages": [
             {
                 "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI3N0EyQUJDMjFEQzZCQUMzODMA"
             }
         ]
     }
 }

💬 WEB API: Messenger

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

messenger-send-message

Envía un mensaje a Messenger o Instagram.

Argumentos

Respuesta

JSON


{
    "success": true,
    "response": {
        "recipient_id": "89995542233",
        "message_id": "11445777889"
    }
}

✈️ WEB API: Telegram

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

telegram-send-message

Envía un mensaje a Telegram.

Argumentos

Respuesta

JSON


{
    "success": true,
    "response": {
        "ok": true,
        "result": {
            "message_id": 2030,
            "from": {
                "id": 21202173,
                "is_bot": true,
                "first_name": "joe",
                "username": "sb_officialbot"
            },
            "chat": {
                "id": 148766722,
                "first_name": "Fede",
                "last_name": "Schio",
                "username": "fedechioc",
                "type": "private"
            },
            "date": 1699621061,
            "text": "Hello!"
        }
    }
}

🟣 WEB API: Viber

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

viber-send-message

Envía un mensaje a Viber.

Argumentos

Respuesta

JSON


{
   "status":0,
   "status_message":"ok",
   "message_token":5741311803571721087,
   "chat_hostname":"SN-CHAT-05_",
   "billing_status":1
}

🟢 WEB API: LINE

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

line-send-message

Envía un mensaje a LINE.

Argumentos

Respuesta

JSON


{
    "sentMessages": [
        {
            "id": "481156985669026149",
            "quoteToken": "fKOxH1EKOAKYFLW6fe8vFGoKl2I2UZocU6KcoZgwtVrSTQjLbXFVer3Z-..."
        }
    ]
}

🟢 WEB API: WeChat

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

wechat-send-message

Envía un mensaje a WeChat.

Argumentos

Respuesta

JSON


[
   "{...}",
   "5741311803571721087"
]

El primer elemento del array es la respuesta, el segundo elemento es el token.


💬 WEB API: Slack

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

send-slack-message

Envía un mensaje a Slack.

Argumentos

Respuesta

JSON


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

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

archive-slack-channels

Archiva todos los canales de Slack. Si tiene muchos canales, esta operación puede tardar mucho tiempo en completarse y podría necesitar ejecutarla varias veces. Importante: Todos sus canales de Slack serán archivados.

Argumentos

Respuesta

JSON


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

slack-users

Devuelve la información de conexión de los miembros agentes-slack.

Argumentos

Respuesta

JSON


{
    "success": true,
    "response": {
        "slack_users": [
            {
                "id": "U328T701Z",
                "name": "Support Schio"
            },
            {
                "id": "UR5F0GK7T",
                "name": "Robert Pitt"
            }
            ...
        ],
        "agents": [
            {
                "id": "2",
                "name": "Alex Smith"
            },
            {
                "id": "445",
                "name": "Federico Schiocchet"
            },
            {
                "id": "724",
                "name": "Alberto Prade"
            }
            ...
        ],
        "saved": {
            "U328T701Z": "445",
            "UR5F0GK7T": "2"
            ...
        }
    }
}

slack-presence

Comprueba si un agente de Slack está en línea, si al menos un agente está en línea, o devuelve todos los usuarios en línea.

Argumentos

Respuesta

JSON


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

Devuelve online u offline para la verificación de un solo agente. Devuelve un array de IDs de usuarios para la verificación de múltiples usuarios.


slack-channels

Devuelve la lista de todos los canales de Slack, incluyendo los canales archivados.

Argumentos

Respuesta

JSON


{
    "ok": true,
    "channels": [
        {
            "id": "C012AB3CD",
            "name": "general",
            "is_channel": true,
            "is_group": false,
            "is_im": false,
            "created": 1449252889,
            "creator": "U012A3CDE",
            "is_archived": false,
            "is_general": true,
            "unlinked": 0,
            "name_normalized": "general",
            "is_shared": false,
            "is_ext_shared": false,
            "is_org_shared": false,
            "pending_shared": [],
            "is_pending_ext_shared": false,
            "is_member": true,
            "is_private": false,
            "is_mpim": false,
            "updated": 1678229664302,
            "topic": {
                "value": "Company-wide announcements and work-based matters",
                "creator": "",
                "last_set": 0
            },
            "purpose": {
                "value": "This channel is for team-wide communication and announcements. All team members are in this channel.",
                "creator": "",
                "last_set": 0
            },
            "previous_names": [],
            "num_members": 4
        },
        {
            "id": "C061EG9T2",
            "name": "random",
            "is_channel": true,
            "is_group": false,
            "is_im": false,
            "created": 1449252889,
            "creator": "U061F7AUR",
            "is_archived": false,
            "is_general": false,
            "unlinked": 0,
            "name_normalized": "random",
            "is_shared": false,
            "is_ext_shared": false,
            "is_org_shared": false,
            "pending_shared": [],
            "is_pending_ext_shared": false,
            "is_member": true,
            "is_private": false,
            "is_mpim": false,
            "updated": 1678229664302,
            "topic": {
                "value": "Non-work banter and water cooler conversation",
                "creator": "",
                "last_set": 0
            },
            "purpose": {
                "value": "A place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber you'd prefer to keep out of more focused work-related channels.",
                "creator": "",
                "last_set": 0
            },
            "previous_names": [],
            "num_members": 4
        }
    ],
    "response_metadata": {
        "next_cursor": "dGVhbTpDMDYxRkE1UEI="
    }
}

slack-message-sent

Webhook enviado cuando se envía un mensaje a Slack.

Respuesta

JSON

{
    "function": "slack-message-sent",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "message": "Hi! How are you doing?",
        "conversation_id": "1057",
        "slack_channel": "C028BGU6TTT"
    }
}



🪝 WEB API: Webhooks

Los Webhooks son mensajes automatizados enviados desde ZampiBot a una URL cuando ocurre algo. Contienen datos personalizados y se envían a una URL única definida por usted.

Uso

  1. Inicie sesión en el área de administración y vaya a Configuración > Misceláneas > Webhooks.
  2. URL de destino: Ingrese la URL a donde ZampiBot enviará los datos. Esta URL debe apuntar a un archivo PHP que pueda leer los datos recibidos. Puede usar el siguiente código para capturar los datos: $response = json_decode(file_get_contents('php://input'), true); La variable $response será un array.
  3. Clave secreta (Secret key): Ingrese una contraseña secreta de su elección. Esta clave se incluye en todos los Webhooks; utilícela para validar el Webhook y asegurarse de que fue enviado por ZampiBot y no por un tercero.
  4. Active los Webhooks y guarde. ZampiBot comenzará a enviar los Webhooks de la lista a continuación a su URL.

Notas:

¿Falta algún Webhook? ¿Necesita un Webhook que aún no está disponible? ¡Contáctenos y lo agregaremos!


message-sent

Webhook enviado cuando un usuario o un agente envía un nuevo mensaje.

Respuesta

{
    "function": "message-sent",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "user_id": "947",
        "conversation_user_id": "947",
        "conversation_id": "1057",
        "conversation_status_code": "2",
        "conversation_source": "wa",
        "message_id": "2574",
        "message": "Hello! How are you?",
        "attachments": [["name","https://example.com/image.png"],["name","https://example.com/file.txt"]]
    }
}

email-sent

Webhook enviado cuando se envía un correo electrónico de notificación a un usuario o a un agente.

Respuesta

{
    "function": "email-sent",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "recipient_id": "957",
        "message": "Hello! How can I help you?",
        "attachments": [["name","https://example.com/image.png"],["name","https://example.com/file.txt"]]
     }
}

sms-sent

Webhook enviado cuando un usuario o un agente envía un nuevo mensaje de texto (SMS).

Respuesta

{
    "function": "sms-sent",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "recipent_id": "947",
        "message": "Hello! How are you?",
        "Body": "Hello! How are you?",
        "From": "+15104564545",
        "To": "+15305431221",
        "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"
        }
    }
}

new-messages

Webhook enviado cuando se reciben nuevos mensajes en el widget de chat o en el área de administración. Si desea recibir mensajes enviados por usuarios desde plataformas externas como WhatsApp o Instagram, utilice message-sent en su lugar.

Respuesta

{
    "function": "new-messages",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "details": {
            "message": "Hello world!",
            "message_id": "10231",
            "attachments": "",
            "payload": "",
            "message_status_code": "0",
            "last_update_time": "2024-04-02 16:57:19",
            "message_user_id": "1964",
            "message_first_name": "Don",
            "message_last_name": "John",
            "message_profile_image": "https://example.com/image.jpg",
            "message_user_type": "admin",
            "department": null,
            "agent_id": null,
            "title": "",
            "source": null,
            "extra": null,
            "tags": null,
            "id": "4607",
            "user_id": "4747",
            "creation_time": "2024-04-02 16:57:17",
            "status_code": "1"
        },
        "messages": [
            {
                "details": {
                    "message": "Hello world!",
                    "attachments": "",
                    "payload": {},
                    "status_code": "0",
                    "id": "10231",
                    "profile_image": "https://example.com/image.jpg",
                    "first_name": "Don",
                    "last_name": "John",
                    "user_id": "1964",
                    "user_type": "admin",
                    "full_name": "Don John",
                    "creation_time": "2024-04-02 16:57:19"
                }
            }
        ]
    }
}

dialogflow-message

Webhook enviado cuando Dialogflow envía una respuesta a un mensaje de usuario.

Respuesta

{
    "function": "dialogflow-message",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "response": {
            "token": "ya29.a0Afkjh8MADFYeT4BgCy3917xqSDdVvw4mgVHrgrLDcgRk9ajWoQAgdjv5e...",
            "messages": [
                {
                    "message": "Hi! How are you doing?"
                }
            ],
            "response": {
                "responseId": "46d2c208-2a7f-4ca2-bd7d-6636982b8bee-0f0e27e1",
                "queryResult": {
                    "queryText": "hi",
                    "action": "input.welcome",
                    "allRequiredParamsPresent": "true",
                    "fulfillmentText": "Hi! How are you doing?",
                    "fulfillmentMessages": [ ... ],
                    "outputContexts": [ ... ],
                    "intent": {
                        "name": "projects/api-project-655517752147/agent/intents...",
                        "displayName": "Default Welcome Intent"
                    },
                    "intentDetectionConfidence": "1",
                    "languageCode": "en"
                },
                "alternativeQueryResults": [ ... ]
            }
        },
        "message": "Hello",
        "conversation_id": 123456
    }
}

message-deleted

Webhook enviado cuando se elimina un mensaje.

Respuesta

{
    "function": "message-deleted",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": "2595"
}

La clave data contiene el ID del mensaje eliminado.


rich-message

Webhook enviado cuando el usuario presiona el botón de envío y los valores ingresados en el Mensaje Enriquecido (Rich Message) se envían a ZampiBot. Todos los Mensajes Enriquecidos que requieren el envío de datos activan este Webhook; algunos de ellos son el formulario de correo electrónico de seguimiento, el formulario de registro y los botones.

Respuesta

{
    "function": "rich-message",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "result": true,
        "data": {
            "type": "inputs",
            "result": {
                "name": [
                    "Don Jhon",
                    "Name"
                ],
                "your-email": [
                    "example@gmail.com",
                    "Your Email"
                ],
                "site-url": [
                    "www.example.com",
                    "Site URL"
                ]
            }
        },
        "id": "example"
    }
}

new-conversation

Webhook enviado cuando se recibe una nueva conversación en el widget de chat del usuario.

Respuesta

{
    "function": "new-conversation-received",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "messages": [
            {
                "id": "10222",
                "user_id": "4746",
                "message": "Hi there!",
                "creation_time": "2024-04-02 07:26:18",
                "attachments": "",
                "status_code": "0",
                "payload": "",
                "conversation_id": "4605",
                "first_name": "User",
                "last_name": "#19332",
                "profile_image": "https://example.com/image.png",
                "user_type": "lead"
            },
            {
                "id": "10223",
                "user_id": "377",
                "message": "How are you?",
                "creation_time": "2024-04-02 07:26:22",
                "attachments": "",
                "status_code": "2",
                "payload": "{\"follow_up_message\":true,\"preview\":\"Preview text!\"]\"}",
                "conversation_id": "4605",
                "first_name": "Smart Assistant",
                "last_name": "",
                "profile_image": "https://example.com/image.png",
                "user_type": "bot"
            }
        ],
        "details": {
            "user_id": "4746",
            "first_name": "User",
            "last_name": "#19332",
            "profile_image": "https://example.com/image.png",
            "user_type": "lead",
            "id": "4605",
            "title": "",
            "status_code": "0",
            "creation_time": "2024-04-02 07:26:17",
            "department": null,
            "agent_id": null,
            "source": null,
            "extra": null,
            "extra_2": null,
            "extra_3": null,
            "tags": null,
            "busy": false
        }
    }
}

new-conversation-created

Webhook enviado cuando se crea una nueva conversación.

Respuesta

{
    "function": "new-conversation-created",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "messages": [
            {
                "id": "10222",
                "user_id": "4746",
                "message": "Hi there!",
                "creation_time": "2024-04-02 07:26:18",
                "attachments": "",
                "status_code": "0",
                "payload": "",
                "conversation_id": "4605",
                "first_name": "User",
                "last_name": "#19332",
                "profile_image": "https://example.com/image.png",
                "user_type": "lead"
            },
            {
                "id": "10223",
                "user_id": "377",
                "message": "How are you?",
                "creation_time": "2024-04-02 07:26:22",
                "attachments": "",
                "status_code": "2",
                "payload": "{\"follow_up_message\":true,\"preview\":\"Preview text!\"]\"}",
                "conversation_id": "4605",
                "first_name": "Smart Assistant",
                "last_name": "",
                "profile_image": "https://example.com/image.png",
                "user_type": "bot"
            }
        ],
        "details": {
            "user_id": "4746",
            "first_name": "User",
            "last_name": "#19332",
            "profile_image": "https://example.com/image.png",
            "user_type": "lead",
            "id": "4605",
            "title": "",
            "status_code": "0",
            "creation_time": "2024-04-02 07:26:17",
            "department": null,
            "agent_id": null,
            "source": null,
            "extra": null,
            "extra_2": null,
            "extra_3": null,
            "tags": null,
            "busy": false
        }
    }
}

conversation-status-updated

Webhook enviado cuando cambia el código de estado de una conversación.

Respuesta

{
    "function": "conversation-status-updated",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "conversation_id": "1057",
        "status_code": "0"
    }
}

Códigos de estado: activo = 0, esperando respuesta del usuario = 1, esperando respuesta del agente = 2, archivado = 3, papelera = 4.


login

Webhook enviado cuando un usuario inicia sesión correctamente desde el formulario de inicio de sesión del chat. Este Webhook se envía solo si el inicio de sesión es exitoso.

Respuesta

{
    "function": "login",
    "key": "xxxxxxxx",
    "data": {
        "details": {
            "id": "18",
            "profile_image": "https://schiocco.s3.amazonaws.com/3045506.png",
            "first_name": "Fede",
            "last_name": "",
            "email": "fede@fede.com",
            "user_type": "user",
            "token": "ec83c134e5d53be98abd0025145473eec0ff814e",
            "url": "https://sandbox.cloud.board.support\/script",
            "password": "$2y$10$vYtwWDEqOt7jMSBcCmPigOrqw06tdD8ZSFm70L6c1PLEQ8j938l2W",
            "conversation_id": "false"
        }
    },
    "sender-url": "http:\/\/localhost\/"
}

registration

Webhook enviado cuando un usuario se registra correctamente desde el formulario de registro del chat. Este Webhook se envía solo si el registro es exitoso. También se envía si el registro se actualiza a través del formulario de registro de un Mensaje Enriquecido.

Respuesta

{
    "function": "registration",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "id": "example",
        "conversation_id": "123", 
        "user": {
            "profile_image": [
                "https://board.support/user.svg",
                "Profile image"
            ],
            "first_name": [
                "Don",
                "First name"
            ],
            "last_name": [
                "John",
                "Last name"
            ],
            "email": [
                "example@email.com",
                "Email"
            ],
            "password": [
                "12345678",
                "Password"
            ],
            "password-check": [
                "12345678",
                "Repeat password"
            ],
            "user_type": [
                "user",
                ""
            ]
        },
        "extra": {
            "phone": [
                "+02123456789",
                "Phone"
            ],
            "city": [
                "London",
                "City"
            ]
        }
    }
}

user-deleted

Webhook enviado cuando se elimina un usuario.

Respuesta

{
    "function": "user-deleted",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": "951"
}

La clave data contiene el ID del usuario eliminado.


new-email-address

Webhook enviado cuando un usuario registra su correo electrónico a través de un mensaje de seguimiento, mensaje de suscripción o mensaje enriquecido de correo electrónico.

Respuesta

{
    "function": "new-email-address",
    "key": "xxxxxxxx",
    "sender-url": "https://example.com",
    "data": {
        "name": "John Doe",
        "email": "email@example.com"
    }
}


Created 2026-01-10 17:45:59 UTC by ZampiSoft
Updated 2026-01-11 09:23:50 UTC by ZampiSoft