# 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**

<span style="white-space: pre-wrap;">Realice una llamada </span>`<span class="editor-theme-code">POST</span>`<span style="white-space: pre-wrap;"> al archivo </span>`<span class="editor-theme-code">include/api.php</span>`<span style="white-space: pre-wrap;"> de su instalación de ZampiBot. Puede utilizar el siguiente código para realizar las llamadas:</span>

**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:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">zampibot_api(['function' => 'get-user', 'user_id' => 123]);</span>`

<span style="white-space: pre-wrap;">La variable </span>`<span class="editor-theme-code">$response</span>`<span style="white-space: pre-wrap;"> contendrá la respuesta en formato </span>**JSON**<span style="white-space: pre-wrap;">. Puede añadir nuevos argumentos en el array de la consulta: </span>`<span class="editor-theme-code">['token' => '', 'function' => '', 'argument-name' => 'value', ...]</span>`.

**Reemplace las siguientes cadenas con los valores correctos:**

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

### Información

- <span style="white-space: pre-wrap;">Algunas funciones están protegidas por razones de seguridad. Ingrese el código </span>`<span class="editor-theme-code">$GLOBALS['SB_FORCE_ADMIN'] = true</span>`<span style="white-space: pre-wrap;"> antes de llamar a la función para ejecutarla correctamente. Ingrese el código </span>`<span class="editor-theme-code">$GLOBALS['SB_FORCE_ADMIN'] = false</span>`<span style="white-space: pre-wrap;"> inmediatamente después de la llamada a la función por seguridad.</span>
- <span style="white-space: pre-wrap;">Algunas funciones requieren los detalles del usuario activo. Use el código </span>`<span class="editor-theme-code">$GLOBALS['SB_LOGIN'] = ['id' => '', 'first_name' => '', 'last_name' => '', 'email' => '', 'user_type' => '', 'department' => ''];</span>`<span style="white-space: pre-wrap;"> para establecer el usuario activo.</span>
- **Ejemplo de Postman:**<span style="white-space: pre-wrap;"> El token también se puede pasar como un parámetro de CABECERA (HEADER).</span>
- [![image.png](https://docs.zampisoft.com/uploads/images/gallery/2026-01/scaled-1680-/vsbk1tpwN9BjFdo2-image.png)](https://docs.zampisoft.com/uploads/images/gallery/2026-01/vsbk1tpwN9BjFdo2-image.png)

---

# 👥 WEB API: Usuarios

Métodos para gestionar usuarios, agentes y administradores.

### get-user

Devuelve los detalles de un usuario.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-user</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario.
- `<span class="editor-theme-code">extra</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para obtener detalles adicionales del usuario. Por defecto: </span>`<span class="editor-theme-code">false</span>`.

**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"
            },
            ...
        ]
    }
}
```

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">{"success":true, "response":false}</span>`<span style="white-space: pre-wrap;"> si no se encuentra el usuario.</span>

---

### get-user-by

Busca un usuario con los detalles especificados y lo devuelve.

**Argumentos**

- `<span class="editor-theme-code">by</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El nombre del detalle del usuario. Valores aceptados: </span>`<span class="editor-theme-code">email</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">first_name</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">last_name</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">phone</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">[extra]</span>`<span style="white-space: pre-wrap;"> (reemplace \[extra\] con cualquier nombre de detalle adicional del usuario).</span>
- `<span class="editor-theme-code">value</span>`: El valor del campo.

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">{"success":true, "response":false}</span>`<span style="white-space: pre-wrap;"> si no se encuentra el usuario.</span>

---

### get-user-extra

Devuelve los detalles adicionales de un usuario.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-user-extra</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario.
- `<span class="editor-theme-code">slug</span>`<span style="white-space: pre-wrap;">: El slug del ajuste a recuperar. Si no se establece, se devuelven todos los detalles del usuario. Por defecto: </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">default</span>`<span style="white-space: pre-wrap;">: El valor por defecto a devolver si no se encuentran los detalles. Por defecto: </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">{"success":true, "response":[]}</span>`<span style="white-space: pre-wrap;"> si no se encuentra el usuario.</span>

---

### get-user-language

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

**Argumentos**

- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario del que desea obtener el idioma.

**Respuesta**<span style="white-space: pre-wrap;"> El código de idioma. Ejemplos: </span>`<span class="editor-theme-code">es</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">it</span>`<span style="white-space: pre-wrap;">. Devuelve </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> si el código es </span>`<span class="editor-theme-code">en</span>`<span style="white-space: pre-wrap;"> o no se encuentra.</span>

---

### get-users

Devuelve los detalles de todos los usuarios.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-users</span>`.
- `<span class="editor-theme-code">sorting</span>`<span style="white-space: pre-wrap;">: Establece el orden de los valores devueltos. Ingrese </span>`<span class="editor-theme-code">["column", "order"]</span>`<span style="white-space: pre-wrap;"> y reemplace </span>`<span class="editor-theme-code">column</span>`<span style="white-space: pre-wrap;"> con uno de los siguientes: </span>`<span class="editor-theme-code">first_name</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">last_name</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">email</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">profile_image</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">user_type</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">creation_time</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">last_activity</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">department</span>`<span style="white-space: pre-wrap;">. Reemplace </span>`<span class="editor-theme-code">order</span>`<span style="white-space: pre-wrap;"> con </span>`<span class="editor-theme-code">ASC</span>`<span style="white-space: pre-wrap;"> o </span>`<span class="editor-theme-code">DESC</span>`.
- `<span class="editor-theme-code">user_types</span>`<span style="white-space: pre-wrap;">: Array en formato </span>**JSON**<span style="white-space: pre-wrap;"> de tipos de usuario a incluir. Sintaxis: </span>`<span class="editor-theme-code">["", "", "", ...]</span>`<span style="white-space: pre-wrap;">. Valores aceptados: </span>`<span class="editor-theme-code">visitor</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">lead</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">user</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">agent</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">admin</span>`. Por defecto: todos.
- `<span class="editor-theme-code">search</span>`: La cadena a buscar.
- `<span class="editor-theme-code">pagination</span>`: 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.
- `<span class="editor-theme-code">extra</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para incluir también todos los detalles extra. O como un array de slugs para incluir solo un subconjunto. Por defecto: </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">user_ids</span>`<span style="white-space: pre-wrap;">: Array de IDs. Si se establece, devuelve solo los usuarios incluidos en el array. Sintaxis: </span>`<span class="editor-theme-code">["", "", "", ...]</span>`<span style="white-space: pre-wrap;">. Por defecto: </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">department</span>`<span style="white-space: pre-wrap;">: Si se establece, devuelve solo usuarios con al menos una conversación asignada al ID de departamento provisto. Por defecto: </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">tag</span>`<span style="white-space: pre-wrap;">: Si se establece, devuelve solo usuarios con al menos una conversación asignada a la etiqueta provista. Por defecto: </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">source</span>`<span style="white-space: pre-wrap;">: Si se establece, devuelve solo usuarios con al menos una conversación del canal provisto. Fuentes: </span>`<span class="editor-theme-code">em</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">tk</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">wa</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">fb</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">ig</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">tw</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">wc</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">tx</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">gb</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">ln</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">vb</span>`<span style="white-space: pre-wrap;">. Por defecto: </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-new-users</span>`.
- `<span class="editor-theme-code">datetime</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: ID de usuario o fecha y hora en formato: </span>`<span class="editor-theme-code">YYYY-MM-DD HH:MM:SS</span>`<span style="white-space: pre-wrap;">. Ej. </span>`<span class="editor-theme-code">2020-05-13 13:35:59</span>`. 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-online-users</span>`.
- `<span class="editor-theme-code">exclude_id</span>`<span style="white-space: pre-wrap;">: Array de IDs de usuarios en formato JSON para excluir. Sintaxis: </span>`<span class="editor-theme-code">[123, 123, 123, ...]</span>`.
- `<span class="editor-theme-code">sorting</span>`<span style="white-space: pre-wrap;">: Nombre de la tabla de base de datos usada para ordenar. Por defecto: </span>`<span class="editor-theme-code">creation_time</span>`.
- `<span class="editor-theme-code">agents</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para devolver solo agentes y administradores. Por defecto: </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-users-with-details</span>`.
- `<span class="editor-theme-code">details</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array de detalles de usuario. Ej. </span>`<span class="editor-theme-code">[ "email", "phone" ]</span>`.
- `<span class="editor-theme-code">user_ids</span>`<span style="white-space: pre-wrap;">: Array o cadena separada por comas de IDs. Si se establece, solo se buscan estos usuarios. Use </span>`<span class="editor-theme-code">all</span>`<span style="white-space: pre-wrap;"> o </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> para buscar en todos, o </span>`<span class="editor-theme-code">agents</span>`<span style="white-space: pre-wrap;"> para buscar solo agentes/admins. Por defecto: </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-agent</span>`.
- `<span class="editor-theme-code">agent_id</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-agents-ids</span>`.
- `<span class="editor-theme-code">admins</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> para excluir a los administradores. Por defecto: </span>`<span class="editor-theme-code">true</span>`.

**Respuesta**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[881, 153, ...]</span>`

---

### get-user-from-conversation

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-user-from-conversation</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación.
- `<span class="editor-theme-code">agent</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para obtener el último agente que respondió. Por defecto: </span>`<span class="editor-theme-code">false</span>`.

**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
}
```

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si hay agentes o admins en línea, o </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> si todos están desconectados.</span>

---

### search-users

Devuelve los usuarios que coinciden con la búsqueda.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">search-users</span>`.
- `<span class="editor-theme-code">search</span>`<span style="white-space: pre-wrap;"> </span>**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"
        }
        ...
    ]
}
```

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">{"success":true, "response":[]}</span>`<span style="white-space: pre-wrap;"> si no se encuentran usuarios.</span>

---

### add-user

Crea un nuevo usuario.

**Argumentos**

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

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Otras respuestas posibles: </span>**duplicate-email**<span style="color: rgb(40, 60, 73); background-color: rgb(255, 255, 255);">,</span><span style="white-space: pre-wrap;"> </span>**invalid-user-type**<span style="color: rgb(40, 60, 73); background-color: rgb(255, 255, 255);">,</span><span style="white-space: pre-wrap;"> </span>**MySQL error message**<span style="color: rgb(40, 60, 73); background-color: rgb(255, 255, 255);">.</span>

---

### update-user

Actualiza los detalles de un usuario existente.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">update-user</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario a actualizar.
- `<span class="editor-theme-code">first_name</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">last_name</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">profile_image</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">password</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">user_type</span>`.
- `<span class="editor-theme-code">email</span>`<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">NULL</span>`<span style="white-space: pre-wrap;"> para eliminar el correo electrónico.</span>
- `<span class="editor-theme-code">settings_extra</span>`<span style="white-space: pre-wrap;">: Array de detalles adicionales en formato JSON. Sintaxis: </span><span style="color: rgb(49, 75, 91); background-color: rgb(236, 242, 246);">{"ID": \["value", "Name"\], "ID": \["value", "Name"\], ...}</span>

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Other possible responses: </span>**duplicate-email**<span style="white-space: pre-wrap;">, </span>**invalid-user-type**<span style="white-space: pre-wrap;">, </span>**MySQL error message**.

---

### delete-user

Elimina un usuario y todas las conversaciones y mensajes vinculados.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">delete-user</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario a eliminar.

**Respuesta**

JSON

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

---

### delete-users

Elimina múltiples usuarios y sus datos vinculados.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">delete-users</span>`.
- `<span class="editor-theme-code">user_ids</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array de IDs de usuarios. Sintaxis: </span>`<span class="editor-theme-code">[123, 123, ...]</span>`

**Respuesta**

JSON

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

---

### is-online

Verifica si un usuario está en línea.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">is-online</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario.

**Respuesta**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si está en línea, </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> si está desconectado.</span>

---

### current-url

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">current-url</span>`.
- `<span class="editor-theme-code">user_id</span>`: El ID del usuario.
- `<span class="editor-theme-code">url</span>`: 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"
}
```

<span style="white-space: pre-wrap;">Returns </span>**{"success":true,"response":false}**<span style="white-space: pre-wrap;"> if the URL is not found. Returns </span>**{"success":true,"response":true}**<span style="white-space: pre-wrap;"> if the </span>**url**<span style="white-space: pre-wrap;"> argument is set.</span>

---

### count-users

Devuelve el conteo total de usuarios agrupados por tipo.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">count-users</span>`.

**Respuesta**

JSON

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

---

### update-user-to-lead

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">update-user-to-lead</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-avatar</span>`.
- `<span class="editor-theme-code">first_name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Nombre del usuario.
- `<span class="editor-theme-code">last_name</span>`: 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**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">123</span>`

---

### is-typing

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

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">is-typing</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID del usuario o agente a verificar.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID de la conversación.

**Respuesta**<span style="white-space: pre-wrap;"> Devuelve </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si está escribiendo, de lo contrario </span>`<span class="editor-theme-code">false</span>`.

---

### is-agent-typing

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">is-agent-typing</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID de la conversación.

```
{
  "id": "",
  "first_name": "",
  "last_name": ""
}
```

**Respuesta**<span style="white-space: pre-wrap;"> Devuelve </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> si nadie escribe, o un objeto con detalles del agente.</span>

---

### set-typing

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

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">set-typing</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID del usuario o agente.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">login</span>`.
- `<span class="editor-theme-code">email</span>`<span style="white-space: pre-wrap;"> / </span>`<span class="editor-theme-code">password</span>`: Para login tradicional.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> / </span>`<span class="editor-theme-code">user_token</span>`: 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..."
    ]
}
```

<span style="white-space: pre-wrap;">El segundo valor son los datos de sesión encriptados. Use </span>`<span class="editor-theme-code">SBF.loginCookie(response[1]);</span>`<span style="white-space: pre-wrap;"> para guardarlo. Devuelve </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> si falla.</span>

---

### logout

Cierra la sesión del usuario conectado.

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">logout</span>`.

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">También debe borrarse la cookie </span>`<span class="editor-theme-code">sb-login</span>`<span style="white-space: pre-wrap;"> del navegador.</span>

---

### update-login

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

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">update-login</span>`.
- `<span class="editor-theme-code">profile_image</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">first_name</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">last_name</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">email</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">department</span>`.

**Respuesta**

```
YXNkWGNSeTdtRTdDYVkxVG8wckN4YWF6V2s0Tk1mczBSVHdQbHBpOWdmejVUTTdOUUxEUENhdUVoYmROWn...
```

<span style="white-space: pre-wrap;">Cadena encriptada que debe guardarse en la cookie </span>`<span class="editor-theme-code">sb-login</span>`.

---

### delete-leads

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

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">delete-leads</span>`.

**Respuesta**

JSON

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

---

### update-bot

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">update-bot</span>`.
- `<span class="editor-theme-code">name</span>`: Nombre del bot.
- `<span class="editor-theme-code">profile_image</span>`: URL de imagen del bot.

**Respuesta**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> en caso de éxito, </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> en caso contrario.</span>

---

### csv-users

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">csv-users</span>`.
- `<span class="editor-theme-code">user_ids</span>`: 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-conversation</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación.
- `<span class="editor-theme-code">user_id</span>`: 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
        }
    }
}
```

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">{"success":true,"response":{"messages":[],"details":""}}</span>`<span style="white-space: pre-wrap;"> si no se encuentra.</span>

---

### get-conversations

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-conversations</span>`.
- `<span class="editor-theme-code">pagination</span>`: Entero para paginación (0 para primeros 100, 1 para siguientes 100).
- `<span class="editor-theme-code">status_code</span>`<span style="white-space: pre-wrap;">: Códigos de estado: live = </span>`<span class="editor-theme-code">0</span>`<span style="white-space: pre-wrap;">, esperando usuario = </span>`<span class="editor-theme-code">1</span>`<span style="white-space: pre-wrap;">, esperando agente = </span>`<span class="editor-theme-code">2</span>`<span style="white-space: pre-wrap;">, archivo = </span>`<span class="editor-theme-code">3</span>`<span style="white-space: pre-wrap;">, papelera = </span>`<span class="editor-theme-code">4</span>`, all = todos.
- `<span class="editor-theme-code">routing</span>`<span style="white-space: pre-wrap;">: </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">Set it to</span><span style="white-space: pre-wrap;"> </span>**true**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">if the</span><span style="white-space: pre-wrap;"> </span>**queue**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">or</span><span style="white-space: pre-wrap;"> </span>**routing**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">is active in</span><span style="white-space: pre-wrap;"> </span>**Settings &gt; Miscellaneous**<span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">. Default:</span><span style="white-space: pre-wrap;"> </span>**false**<span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">.</span>
- `<span class="editor-theme-code">routing_unassigned</span>`<span style="white-space: pre-wrap;">: </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">Set it to</span><span style="white-space: pre-wrap;"> </span>**true**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">to also view the conversations not assigned to any agent. Default:</span><span style="white-space: pre-wrap;"> </span>**false**<span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">.</span>
- `<span class="editor-theme-code">department</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">source</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">tag</span>`: 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-new-conversations</span>`.
- `<span class="editor-theme-code">datetime</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: ID de conversación o fecha </span>`<span class="editor-theme-code">YYYY-MM-DD HH:MM:SS</span>`.
- `<span class="editor-theme-code">routing </span>`<span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">Set it to</span><span style="white-space: pre-wrap;"> </span>**true**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">if the</span><span style="white-space: pre-wrap;"> </span>**queue**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">or</span><span style="white-space: pre-wrap;"> </span>**routing**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">is active in</span><span style="white-space: pre-wrap;"> </span>**Settings &gt; Miscellaneous**<span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">. Default:</span><span style="white-space: pre-wrap;"> </span>**false**<span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">.</span>
- `<span class="editor-theme-code">routing_unassigned</span>`<span style="white-space: pre-wrap;">: </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">Set it to</span><span style="white-space: pre-wrap;"> </span>**true**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">to also view the conversations not assigned to any agent. Default:</span><span style="white-space: pre-wrap;"> </span>**false**<span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">.</span>

**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"
        },
        ...
    ]
}
```

<span style="white-space: pre-wrap;">Return </span>**{"success":true, "response":\[\]}**<span style="white-space: pre-wrap;"> if no conversations are found.</span>

---

### get-user-conversations

Devuelve las conversaciones de un usuario.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-user-conversations</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario.
- `<span class="editor-theme-code">exclude_id</span>`: Excluir una conversación.
- `<span class="editor-theme-code">agents</span>`<span style="white-space: pre-wrap;">: </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si el usuario es agente/admin.</span>

**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
        },
        ...
    ]
}
```

<span style="color: rgb(40, 60, 73); background-color: rgb(255, 255, 255);">Return</span><span style="white-space: pre-wrap;"> </span>**{"success":true, "response":\[\]}**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(40, 60, 73); background-color: rgb(255, 255, 255);">if no conversations are found.</span>

---

### get-new-user-conversations

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-new-user-conversations</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID del usuario.
- `<span class="editor-theme-code">datetime</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">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.</span>

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">search-conversations</span>`.
- `<span class="editor-theme-code">search</span>`<span style="white-space: pre-wrap;"> </span>**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"
        },
        ...
  ]
}
```

<span style="white-space: pre-wrap;">Return </span>**{"success":true, "response":\[\]}**<span style="white-space: pre-wrap;"> if no conversations are found.</span>

---

### search-user-conversations

Busca en las conversaciones de un usuario específico.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">search-user-conversations</span>`.
- `<span class="editor-theme-code">search</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: </span><span style="color: rgb(49, 75, 91); background-color: rgb(255, 255, 255);">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.</span>
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**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
    }
  ]
}
```

<span style="white-space: pre-wrap;">Returns </span>**{"success":true, "response":\[\]}**<span style="white-space: pre-wrap;"> if no conversations are found.</span>

---

### new-conversation

Crea una nueva conversación.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">new-conversation</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID del usuario vinculado.
- `<span class="editor-theme-code">status_code</span>`<span style="white-space: pre-wrap;">: Por defecto </span>`<span class="editor-theme-code">1</span>`.
- `<span class="editor-theme-code">title</span>`: Título.
- `<span class="editor-theme-code">department</span>`<span style="white-space: pre-wrap;">: ID del departamento. Por defecto </span>`<span class="editor-theme-code">-1</span>`.
- `<span class="editor-theme-code">agent_id</span>`<span style="white-space: pre-wrap;">: ID del agente asignado. Por defecto </span>`<span class="editor-theme-code">-1</span>`.
- `<span class="editor-theme-code">source</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">extra</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">tags</span>`.

**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
        }
    }
}
```

<span style="white-space: pre-wrap;">Other possible responses: </span>**Conversation details array**<span style="white-space: pre-wrap;"> on success, otherwise </span>**user-not-found**<span style="white-space: pre-wrap;">, </span>**MySQL error message**.

---

### update-conversation-status

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">update-conversation-status</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID de la conversación.
- `<span class="editor-theme-code">status_code</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: </span>`<span class="editor-theme-code">0</span>`<span style="white-space: pre-wrap;"> (live), </span>`<span class="editor-theme-code">1</span>`<span style="white-space: pre-wrap;"> (esperando usuario), </span>`<span class="editor-theme-code">2</span>`<span style="white-space: pre-wrap;"> (esperando agente), </span>`<span class="editor-theme-code">3</span>`<span style="white-space: pre-wrap;"> (archivo), </span>`<span class="editor-theme-code">4</span>`<span style="white-space: pre-wrap;"> (papelera).</span>

**Respuesta**

JSON

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

---

### update-conversation-department

Actualiza el departamento de una conversación.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">update-conversation-department</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID de la conversación.
- `<span class="editor-theme-code">department</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: ID del departamento. Use </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> para remover.</span>
- `<span class="editor-theme-code">message</span>`: 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">update-conversation-agent</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID de la conversación.
- `<span class="editor-theme-code">agent_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: ID del agente. </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> para remover.</span>
- `<span class="editor-theme-code">message</span>`: Mensaje de notificación para el agente.

**Respuesta**

JSON

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

---

### set-rating

Asigna una calificación a una conversación.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">set-rating</span>`.
- `<span class="editor-theme-code">settings</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: JSON </span>`<span class="editor-theme-code">{ "settings" : { "conversation_id": "ID", "rating": "RATING" }}</span>`<span style="white-space: pre-wrap;">. </span>`<span class="editor-theme-code">1</span>`<span style="white-space: pre-wrap;"> positivo, </span>`<span class="editor-theme-code">0</span>`<span style="white-space: pre-wrap;"> negativo.</span>
- `<span class="editor-theme-code">payload</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">message_id</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">user_id</span>`: Opcionales para actualizar mensaje.

**Respuesta**

JSON

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

---

### get-rating

Obtiene las calificaciones asignadas a un agente.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-rating</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID del agente.

**Respuesta**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">{"success": true, "response": [4,2]}</span>`<span style="white-space: pre-wrap;"> (4 positivas, 2 negativas).</span>

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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-new-messages</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID del usuario.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID de la conversación.
- `<span class="editor-theme-code">datetime</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: ID o fecha </span>`<span class="editor-theme-code">YYYY-MM-DD HH:MM:SS</span>`.

**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"
        },
        ...
    ]
}
```

<span style="white-space: pre-wrap;">Return </span>**{"success":true, "response":\[\]}**<span style="white-space: pre-wrap;"> if no conversations are found.</span>

---

### get-last-message

Devuelve el último mensaje de una conversación.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-last-message</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: ID de la conversación.
- `<span class="editor-theme-code">exclude_message</span>`: Excluir mensaje con texto específico.
- `<span class="editor-theme-code">user_id</span>`: 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">send-message</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El ID del usuario que envía el mensaje. Utilice la API </span>`<span class="editor-theme-code">get-bot-id</span>`<span style="white-space: pre-wrap;"> para obtener el ID del bot si es el sistema quien envía el mensaje.</span>
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación.
- `<span class="editor-theme-code">message</span>`: El contenido del mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de archivos adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del archivo adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa del archivo.</span>
    - **Nota:**<span style="white-space: pre-wrap;"> 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.</span>
    - **Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.
- `<span class="editor-theme-code">conversation_status_code</span>`: El código de estado que se asignará a la conversación.
    - **Códigos de estado:**<span style="white-space: pre-wrap;"> activo (live) = </span>`<span class="editor-theme-code">0</span>`<span style="white-space: pre-wrap;">, esperando respuesta del usuario = </span>`<span class="editor-theme-code">1</span>`<span style="white-space: pre-wrap;">, esperando respuesta del agente = </span>`<span class="editor-theme-code">2</span>`<span style="white-space: pre-wrap;">, archivado = </span>`<span class="editor-theme-code">3</span>`<span style="white-space: pre-wrap;">, papelera = </span>`<span class="editor-theme-code">4</span>`.
    - <span style="white-space: pre-wrap;">Establézcalo en </span>`<span class="editor-theme-code">skip</span>`<span style="white-space: pre-wrap;"> para dejar el estado actual de la conversación sin cambios.</span>
- `<span class="editor-theme-code">payload</span>`: Array en formato JSON con información adicional. Puede insertar cualquier valor.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">{ "clave": valor, "clave": valor, ... }</span>`.
- `<span class="editor-theme-code">queue</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si la función de Cola está activa en </span>`<span class="editor-theme-code">Configuración > Misceláneas > Cola</span>`<span style="white-space: pre-wrap;"> (</span>**Queue**<span style="white-space: pre-wrap;">). Por defecto: </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">recipient_id</span>`: 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"
    }
}
```

<span style="white-space: pre-wrap;">Other possible responses: </span>**invalid-status-code**<span style="white-space: pre-wrap;">, </span>**MySQL error message**<span style="white-space: pre-wrap;">. The </span>**notifications**<span style="white-space: pre-wrap;"> response include the notifications sent to the user or agents.</span>

---

### update-message

Actualiza un mensaje existente.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">update-message</span>`.
- `<span class="editor-theme-code">message_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del mensaje.
- `<span class="editor-theme-code">message</span>`: El contenido del mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de archivos adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del archivo adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa del archivo adjunto.</span>
    - **Nota:**<span style="white-space: pre-wrap;"> 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.</span>
    - **Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.
- `<span class="editor-theme-code">payload</span>`: Array en formato JSON de información adicional.
    - Puede insertar cualquier valor.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">{ "clave": valor, "clave": valor, ... }</span>`.

**Respuesta**

JSON

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

---

### delete-message

Elimina un mensaje existente.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">delete-message</span>`.
- `<span class="editor-theme-code">message_id</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">delete-attachments</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;">: El ID de la conversación que contiene los archivos adjuntos que desea eliminar. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">message_id</span>`<span style="white-space: pre-wrap;">: El ID del mensaje que contiene los archivos adjuntos que desea eliminar. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

### update-messages-status

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">update-messages-status</span>`.
- `<span class="editor-theme-code">message_ids</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array de IDs de mensajes </span>`<span class="editor-theme-code">[1, 212, ...]</span>`.
- `<span class="editor-theme-code">user_id</span>`: 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-agents-in-conversation</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">transcript</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación que desea exportar.
- `<span class="editor-theme-code">type</span>`:
    - <span style="white-space: pre-wrap;">Establézcalo en </span>`<span class="editor-theme-code">csv</span>`<span style="white-space: pre-wrap;"> para exportar la conversación como un archivo CSV.</span>
    - <span style="white-space: pre-wrap;">Establézcalo en </span>`<span class="editor-theme-code">txt</span>`<span style="white-space: pre-wrap;"> para exportar la conversación como un archivo de texto.</span>
    - <span style="white-space: pre-wrap;">Establézcalo en </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> para utilizar el tipo definido en </span>`<span class="editor-theme-code">Configuración > Administración > Tipo de transcripción</span>`<span style="white-space: pre-wrap;"> (</span>**Settings &gt; Admin &gt; Transcript type**).
    - **Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

<span style="color: rgb(40, 60, 73); background-color: rgb(255, 255, 255);">Return</span><span style="white-space: pre-wrap;"> </span>**{"success":true, "response":false}**<span style="white-space: pre-wrap;"> </span><span style="color: rgb(40, 60, 73); background-color: rgb(255, 255, 255);">if the conversation is not found.</span>

---

### direct-message

Envía un mensaje de chat directo.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">direct-message</span>`.
- `<span class="editor-theme-code">user_ids</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array de IDs de usuario, ej. </span>`<span class="editor-theme-code">[45, 89, 65]</span>`.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El mensaje.
- `<span class="editor-theme-code">subject</span>`<span style="white-space: pre-wrap;">: El asunto. Requerido solo para correos electrónicos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">messaging-platforms-send-message</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El mensaje.
- `<span class="editor-theme-code">attachments</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Array de archivos adjuntos en formato JSON.
- **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
- <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del archivo adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa del archivo adjunto.</span>
- **Nota:**<span style="white-space: pre-wrap;"> 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.</span>
- `<span class="editor-theme-code">user</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array asociativo con </span>`<span class="editor-theme-code">{ "id": 123, "profile_image":</span>`
- `<span class="editor-theme-code">source</span>`<span style="white-space: pre-wrap;">: Array asociativo con </span>`<span class="editor-theme-code">{ "source": CÓDIGO DE FUENTE }</span>`<span style="white-space: pre-wrap;"> como valor.</span>
- **Códigos de fuente disponibles:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">em</span>`<span style="white-space: pre-wrap;"> (Email), </span>`<span class="editor-theme-code">tk</span>`<span style="white-space: pre-wrap;"> (Ticket), </span>`<span class="editor-theme-code">wa</span>`<span style="white-space: pre-wrap;"> (WhatsApp), </span>`<span class="editor-theme-code">fb</span>`<span style="white-space: pre-wrap;"> (Facebook Messenger), </span>`<span class="editor-theme-code">ig</span>`<span style="white-space: pre-wrap;"> (Instagram), </span>`<span class="editor-theme-code">tw</span>`<span style="white-space: pre-wrap;"> (Twitter), </span>`<span class="editor-theme-code">wc</span>`<span style="white-space: pre-wrap;"> (WeChat), </span>`<span class="editor-theme-code">tx</span>`<span style="white-space: pre-wrap;"> (Mensaje de texto), </span>`<span class="editor-theme-code">gb</span>`<span style="white-space: pre-wrap;"> (Google Business Messages), </span>`<span class="editor-theme-code">tg</span>`<span style="white-space: pre-wrap;"> (Telegram), </span>`<span class="editor-theme-code">ln</span>`<span style="white-space: pre-wrap;"> (LINE), </span>`<span class="editor-theme-code">vb</span>`<span style="white-space: pre-wrap;"> (Viber).</span>
- **Para Telegram:**<span style="white-space: pre-wrap;"> La fuente también debe incluir </span>`<span class="editor-theme-code">{ "chat_id": "123456789" }</span>`.
- **Para Facebook Messenger:**<span style="white-space: pre-wrap;"> La fuente también debe incluir </span>`<span class="editor-theme-code">{ "page_id": "123456789" }</span>`.

**Respuesta**

JSON

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

---

### count-conversations

Cuenta el número de conversaciones.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">count-conversations</span>`.
- `<span class="editor-theme-code">status_code</span>`: 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">check-conversations-assignment</span>`.
- `<span class="editor-theme-code">conversation_ids</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array de IDs de las conversaciones a verificar, ej. </span>`<span class="editor-theme-code">[45, 565, 68]</span>`.
- `<span class="editor-theme-code">agent_id</span>`<span style="white-space: pre-wrap;">: El ID del agente. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">department_id</span>`<span style="white-space: pre-wrap;">: El ID del departamento. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

### get-last-agent-in-conversation

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-last-agent-in-conversation</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**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/"
     }
 }
```

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> si la conversación no tiene respuestas de agentes.</span>

---

### execute-bot-message

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">execute-bot-message</span>`.
- `<span class="editor-theme-code">name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El nombre del mensaje del bot. Valores disponibles: </span>`<span class="editor-theme-code">offline</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">follow_up</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">welcome</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación a la que enviar el mensaje.
- `<span class="editor-theme-code">last_user_message</span>`<span style="white-space: pre-wrap;">: Úselo para mostrar diferentes extractos de texto en el área de administración y el panel de chat. Por defecto: </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">check</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> para enviar el mensaje incluso si ya se envió hace menos de 10 días. Por defecto: </span>`<span class="editor-theme-code">true</span>`.

**Respuesta**

JSON

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

`<span class="editor-theme-code">ID</span>`<span style="white-space: pre-wrap;"> es el ID del mensaje que se acaba de crear.</span>

---

# ⚙️ WEB API: Configuración (Settings)

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

### get-setting

<span style="white-space: pre-wrap;">Devuelve una configuración guardada en el área de </span>**Configuración**.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-setting</span>`.
- `<span class="editor-theme-code">setting</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El ID de la configuración. Puede obtener los IDs de todas las configuraciones del archivo </span>`<span class="editor-theme-code">resources\json\settings.json</span>`<span style="white-space: pre-wrap;"> o con la función de la API </span>`<span class="editor-theme-code">get-settings</span>`.

**Respuesta**

JSON

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

---

### get-multi-setting

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-multi-setting</span>`.
- `<span class="editor-theme-code">id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El ID de la configuración principal. Puede obtener los IDs de todas las configuraciones del archivo </span>`<span class="editor-theme-code">resources\json\settings.json</span>`<span style="white-space: pre-wrap;"> o con la función de la API </span>`<span class="editor-theme-code">get-settings</span>`.
- `<span class="editor-theme-code">sub_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El ID de la sub-configuración. Puede obtener los IDs de todas las configuraciones del archivo </span>`<span class="editor-theme-code">resources\json\settings.json</span>`<span style="white-space: pre-wrap;"> o con la función de la API </span>`<span class="editor-theme-code">get-settings</span>`.
- `<span class="editor-theme-code">default</span>`<span style="white-space: pre-wrap;">: El valor a devolver si no se encuentra la configuración. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**<span style="white-space: pre-wrap;"> Devuelve el valor de la sub-configuración si está disponible; de lo contrario, devuelve el valor por defecto.</span>

---

### get-external-setting

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-external-setting</span>`.
- `<span class="editor-theme-code">name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El nombre de la configuración.
- `<span class="editor-theme-code">default</span>`<span style="white-space: pre-wrap;">: El valor a devolver si no se encuentra la configuración. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**<span style="white-space: pre-wrap;"> Devuelve el valor de la configuración si está disponible; de lo contrario, devuelve el valor por defecto.</span>

---

### get-settings

Devuelve un array con todas las configuraciones.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-settings</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">save-settings</span>`.
- `<span class="editor-theme-code">settings</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El array de configuraciones. Obténgalo de </span>`<span class="editor-theme-code">get-settings</span>`.
- `<span class="editor-theme-code">external_settings</span>`<span style="white-space: pre-wrap;">: Configuraciones guardadas en una fila dedicada de la tabla </span>`<span class="editor-theme-code">sb_settings</span>`<span style="white-space: pre-wrap;"> de la base de datos.</span>
- `<span class="editor-theme-code">external_settings_translations</span>`: 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">save-external-setting</span>`.
- `<span class="editor-theme-code">name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El nombre de la configuración.
- `<span class="editor-theme-code">value</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">export-settings</span>`.

**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

<span style="white-space: pre-wrap;">Importa las configuraciones de ZampiBot desde un archivo JSON generado a través de la función </span>`<span class="editor-theme-code">export-settings</span>`.

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">import-settings</span>`.
- `<span class="editor-theme-code">file_url</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-departments</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">saved-replies</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-translation</span>`.
- `<span class="editor-theme-code">language_code</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-translations</span>`.

**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

<span style="white-space: pre-wrap;">Guarda las traducciones y sobrescribe los archivos de traducción. </span>**¡Advertencia!**<span style="white-space: pre-wrap;"> 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 (</span>`<span class="editor-theme-code">\resources\languages\</span>`<span style="white-space: pre-wrap;">). Cada vez que se guarda una traducción, se crea una copia de seguridad automáticamente en la carpeta </span>`<span class="editor-theme-code">uploads</span>`.

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">save-translations</span>`.
- `<span class="editor-theme-code">translations</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El array de traducciones con todas las traducciones. Utilice el método </span>`<span class="editor-theme-code">get-translations</span>`<span style="white-space: pre-wrap;"> para obtener el array.</span>

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">translate-string</span>`.
- `<span class="editor-theme-code">string</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: La cadena a traducir.
- `<span class="editor-theme-code">language_code</span>`<span style="white-space: pre-wrap;">: El código de idioma de dos letras. Establézcalo en </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> para usar el idioma del usuario activo. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**<span style="white-space: pre-wrap;"> Devuelve la cadena traducida si se encuentra la traducción; de lo contrario, devuelve la cadena original.</span>

---

# 📄 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-articles</span>`.
- `<span class="editor-theme-code">id</span>`<span style="white-space: pre-wrap;">: El ID del artículo. Para obtener los IDs de los artículos, ejecute este método nuevamente sin argumentos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">-1</span>`.
- `<span class="editor-theme-code">count</span>`<span style="white-space: pre-wrap;">: El número máximo de artículos devueltos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> todos.</span>
- `<span class="editor-theme-code">full</span>`<span style="white-space: pre-wrap;">: Booleano. Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para obtener el contenido completo de los artículos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">categories</span>`:
    - <span style="white-space: pre-wrap;">Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> 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).</span>
    - Establézcalo en el ID de la categoría para obtener solo los artículos de la categoría dada.
    - **Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">articles_language</span>`<span style="white-space: pre-wrap;">: 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 </span>`<span class="editor-theme-code">all</span>`<span style="white-space: pre-wrap;"> para obtener todas las traducciones. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">save-article</span>`.
- `<span class="editor-theme-code">article</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array de artículos. Utilice la función </span>`<span class="editor-theme-code">get-articles</span>`<span style="white-space: pre-wrap;"> para obtener la estructura del artículo.</span>

**Respuesta**

JSON

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

---

### search-articles

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">search-articles</span>`.
- `<span class="editor-theme-code">search</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: La cadena a buscar. La función de búsqueda admite título y contenido.
- `<span class="editor-theme-code">articles_language</span>`<span style="white-space: pre-wrap;">: 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 </span>`<span class="editor-theme-code">all</span>`<span style="white-space: pre-wrap;"> para obtener todas las traducciones. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-articles-categories</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">save-articles-categories</span>`.
- `<span class="editor-theme-code">categories</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array de categorías. Obtenga el array de categorías existentes con la función </span>`<span class="editor-theme-code">get-articles-categories</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">article-ratings</span>`.
- `<span class="editor-theme-code">article_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del artículo.
- `<span class="editor-theme-code">rating</span>`<span style="white-space: pre-wrap;">: La calificación a añadir. Ingrese </span>`<span class="editor-theme-code">1</span>`<span style="white-space: pre-wrap;"> para una calificación positiva o </span>`<span class="editor-theme-code">0</span>`<span style="white-space: pre-wrap;"> para una negativa. Si se establece este argumento, el método añade la calificación; de lo contrario, devuelve las calificaciones existentes. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si el argumento </span>`<span class="editor-theme-code">rating</span>`<span style="white-space: pre-wrap;"> está establecido.</span>

---

# ➕ WEB API: Más métodos

### send-email

<span style="white-space: pre-wrap;">Envía un correo electrónico a un usuario existente utilizando las plantillas de correo de la sección </span>`<span class="editor-theme-code">Configuración > Notificaciones</span>`.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">send-email</span>`.
- `<span class="editor-theme-code">recipient_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario al cual enviar el correo electrónico.
- `<span class="editor-theme-code">sender_id</span>`: El ID del usuario remitente.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El mensaje del correo electrónico.
- `<span class="editor-theme-code">attachments</span>`: Array de archivos adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del archivo adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa del archivo.</span>
    - **Nota:**<span style="white-space: pre-wrap;"> 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.</span>
    - **Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.

**Respuesta**

JSON

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

**Otras posibles respuestas:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">missing-user-id-or-message</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">security-error</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">user-email-not-found</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">user-or-sender-not-found</span>`.

---

### send-custom-email

<span style="white-space: pre-wrap;">Envía un correo electrónico genérico a una dirección de correo. El correo y nombre del remitente son los configurados en </span>`<span class="editor-theme-code">Configuración > Notificaciones > Configuración de correo electrónico</span>`.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">send-custom-email</span>`.
- `<span class="editor-theme-code">to</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: La dirección de correo electrónico del destinatario.
- `<span class="editor-theme-code">subject</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El asunto del correo.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El mensaje del correo.
- `<span class="editor-theme-code">sender_suffix</span>`<span style="white-space: pre-wrap;">: Añade el texto proporcionado al nombre del remitente. </span>**Por defecto:**<span style="white-space: pre-wrap;"> vacío.</span>

**Respuesta**

JSON

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

---

### email-piping

<span style="white-space: pre-wrap;">Ejecuta la sincronización de </span>**email piping**<span style="white-space: pre-wrap;"> con ZampiBot y convierte los correos electrónicos en mensajes de chat.</span>

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">email-piping</span>`.
- `<span class="editor-theme-code">force</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para forzar la ejecución de la sincronización; por defecto, la sincronización se ejecuta un máximo de una vez por minuto. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

### send-sms

<span style="white-space: pre-wrap;">Envía un mensaje de texto (SMS) a un usuario o agente. Si el argumento </span>`<span class="editor-theme-code">template</span>`<span style="white-space: pre-wrap;"> es verdadero (</span>`<span class="editor-theme-code">true</span>`), el mensaje se traduce automáticamente.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">send-sms</span>`.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El mensaje de texto.
- `<span class="editor-theme-code">to</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El número de teléfono. Incluya el código de país.
- `<span class="editor-theme-code">template</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> para enviar solo el mensaje sin el contenido de la plantilla. </span>**Por defecto:**<span style="white-space: pre-wrap;"> el mensaje se envía dentro de la plantilla configurada en </span>`<span class="editor-theme-code">Configuración > Notificaciones SMS</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;">: Establézcalo si el mensaje contiene el campo de combinación </span>`<span class="editor-theme-code">{conversation_url_parameter}</span>`.
- `<span class="editor-theme-code">attachments</span>`<span style="white-space: pre-wrap;">: Array de adjuntos. Sintaxis: </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`<span style="white-space: pre-wrap;"> o </span>`<span class="editor-theme-code">["enlace", "enlace", ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa.</span>
    - Es su responsabilidad subir los archivos a un servidor remoto.
    - **Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">recipient_id</span>`: 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**

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

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> si las notificaciones Push están deshabilitadas en el área de configuración.</span>

---

### get-versions

Devuelve las versiones instaladas de ZampiBot y las Apps.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-versions</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">cron-jobs</span>`.

**Respuesta**

JSON

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

---

### pusher-trigger

Dispara un evento en un canal de Pusher.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">pusher-trigger</span>`.
- `<span class="editor-theme-code">channel</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El nombre del canal.
- `<span class="editor-theme-code">event</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El nombre del evento.
- `<span class="editor-theme-code">data</span>`<span style="white-space: pre-wrap;">: Array de valores. Sintaxis: </span>`<span class="editor-theme-code">[ "nombre" => "valor" ]</span>`.

**Respuesta**

JSON

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

---

### chat-css

Devuelve el estilo CSS para los colores del chat.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">chat-css</span>`.
- `<span class="editor-theme-code">color_1</span>`<span style="white-space: pre-wrap;">: El primer color en formato RGB o HEX. </span>**Por defecto:**<span style="white-space: pre-wrap;"> el primer color guardado en el área de configuración.</span>
- `<span class="editor-theme-code">color_2</span>`<span style="white-space: pre-wrap;">: El segundo color en formato RGB o HEX. </span>**Por defecto:**<span style="white-space: pre-wrap;"> el segundo color guardado en el área de configuración.</span>
- `<span class="editor-theme-code">color_3</span>`<span style="white-space: pre-wrap;">: El tercer color en formato RGB o HEX. </span>**Por defecto:**<span style="white-space: pre-wrap;"> el tercer color guardado en el área de configuración.</span>

**Respuesta**<span style="white-space: pre-wrap;"> El código CSS.</span>

---

### text-formatting-to-html

<span style="white-space: pre-wrap;">Convierte el </span>**formato de texto**<span style="white-space: pre-wrap;"> de los mensajes de chat a los códigos HTML equivalentes y devuelve el mensaje.</span>

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">text-formatting-to-html</span>`.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El mensaje de texto.

**Respuesta**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">Lorem ipsum dolor <b>sit amet</b>, <i>consectetur adipiscing elit</i>, sed do eiusmod tempor incididunt.</span>`

---

### clear-text-formatting

<span style="white-space: pre-wrap;">Elimina el </span>**formato de texto**<span style="white-space: pre-wrap;"> de los mensajes de chat.</span>

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">clear-text-formatting</span>`.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El mensaje de texto.

**Respuesta**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.</span>`

---

### get-notes

Devuelve las notas internas de una conversación.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">get-notes</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">add-note</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación a la cual vincular la nota.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del agente o administrador que crea la nota.
- `<span class="editor-theme-code">name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El nombre de la nota.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">delete-note</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación vinculada a la nota.
- `<span class="editor-theme-code">note_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la nota.

**Respuesta**

JSON

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

---

### automations-get

Devuelve todas las automatizaciones.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">automations-get</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">automations-save</span>`.
- `<span class="editor-theme-code">automations</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array de automatizaciones. Obténgalo de la función </span>`<span class="editor-theme-code">automations-get</span>`.
- `<span class="editor-theme-code">translations</span>`<span style="white-space: pre-wrap;">: Array de traducciones de automatizaciones. Obténgalo de la función </span>`<span class="editor-theme-code">automations-get</span>`.

**Respuesta**

JSON

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

---

### automations-validate

Valida una automatización.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">automations-validate</span>`.
- `<span class="editor-theme-code">automation</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: La automatización.

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">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 </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> si la automatización es inválida.</span>

---

### 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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">automations-run-all</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">automations-run</span>`.
- `<span class="editor-theme-code">automation</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: La automatización.
- `<span class="editor-theme-code">validate</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para validar la automatización antes de ejecutarla. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

### automations-is-sent

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">automations-is-sent</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario a verificar.
- `<span class="editor-theme-code">automation</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: La automatización. Puede ser </span>`<span class="editor-theme-code">["id" => 123]</span>`<span style="white-space: pre-wrap;"> donde 123 es el ID de la automatización.</span>
- `<span class="editor-theme-code">repeat_id</span>`<span style="white-space: pre-wrap;">: Establézcalo solo si la automatización se puede enviar múltiples veces al usuario. Obténgalo de </span>`<span class="editor-theme-code">sb_automations_validate</span>`<span style="white-space: pre-wrap;">. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**<span style="white-space: pre-wrap;"> Devuelve </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si la automatización ya ha sido enviada; de lo contrario, devuelve </span>`<span class="editor-theme-code">false</span>`.

---

### 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**<span style="white-space: pre-wrap;"> Esta es una función de administración y solo funciona si el usuario activo es un </span>**agente**<span style="white-space: pre-wrap;"> o un </span>**administrador**.

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">clean-data</span>`.

**Respuesta**

JSON

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

---

### reports

Devuelve los reportes especificados.

**Parámetros**

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

**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

<span style="white-space: pre-wrap;">Añade una nueva fila a la tabla </span>`<span class="editor-theme-code">sb_reports</span>`<span style="white-space: pre-wrap;"> de la base de datos.</span>

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">reports-update</span>`.
- `<span class="editor-theme-code">name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El nombre del reporte (ver valores disponibles en la función </span>`<span class="editor-theme-code">reports</span>`).
- `<span class="editor-theme-code">value</span>`<span style="white-space: pre-wrap;">: El valor de la fila. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">external_id</span>`<span style="white-space: pre-wrap;">: Un ID externo. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">extra</span>`<span style="white-space: pre-wrap;">: Un valor extra. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

### updates-available

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

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">updates-available</span>`.

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si hay al menos una actualización disponible; de lo contrario, devuelve </span>`<span class="editor-theme-code">false</span>`.

---

### newsletter

<span style="white-space: pre-wrap;">Añade un suscriptor al servicio de boletín configurado en </span>`<span class="editor-theme-code">Configuración > Misceláneas > Newsletter</span>`<span style="white-space: pre-wrap;">. El ajuste </span>`<span class="editor-theme-code">Configuración > Misceláneas > Newsletter > Activo</span>`<span style="white-space: pre-wrap;"> debe estar habilitado.</span>

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">newsletter</span>`.
- `<span class="editor-theme-code">email</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: La dirección de correo electrónico del suscriptor.
- `<span class="editor-theme-code">first_name</span>`<span style="white-space: pre-wrap;">: El nombre del suscriptor. </span>**Por defecto:**<span style="white-space: pre-wrap;"> vacío.</span>
- `<span class="editor-theme-code">last_name</span>`<span style="white-space: pre-wrap;">: El apellido del suscriptor. </span>**Por defecto:**<span style="white-space: pre-wrap;"> vacío.</span>

**Respuesta**<span style="white-space: pre-wrap;"> Devuelve la respuesta del servicio de newsletter.</span>

---

### upload-path

Devuelve la ruta de subidas (uploads) de ZampiBot.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">upload-path</span>`.
- `<span class="editor-theme-code">url</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para obtener la URL en su lugar. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">date</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para obtener también la carpeta de fecha relativa a la fecha actual. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">is-allowed-extension</span>`.
- `<span class="editor-theme-code">extension</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: La extensión del archivo, ej. </span>`<span class="editor-theme-code">jpg</span>`.

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si la extensión está permitida; de lo contrario, devuelve </span>`<span class="editor-theme-code">false</span>`.

---

### system-requirements

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">system-requirements</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">logs</span>`.
- `<span class="editor-theme-code">string</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El mensaje de registro.
- `<span class="editor-theme-code">user</span>`<span style="white-space: pre-wrap;">: Establézcalo para incluir el ID de usuario en el mensaje de registro. Este valor puede ser </span>`<span class="editor-theme-code">["id" => 123]</span>`<span style="white-space: pre-wrap;">. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

### aws-s3

<span style="white-space: pre-wrap;">Sube un archivo a Amazon S3, o elimina un archivo de Amazon S3. Amazon S3 debe estar activo y configurado en </span>`<span class="editor-theme-code">Configuración > Misceláneas > Amazon S3</span>`.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">aws-s3</span>`.
- `<span class="editor-theme-code">file_path</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: La ruta al archivo para subir o la URL del archivo de Amazon S3 para eliminar.
- `<span class="editor-theme-code">action</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">PUT</span>`<span style="white-space: pre-wrap;"> para subir un archivo. Establézcalo en </span>`<span class="editor-theme-code">DELETE</span>`<span style="white-space: pre-wrap;"> para eliminar un archivo. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">PUT</span>`.
- `<span class="editor-theme-code">bucket_name</span>`<span style="white-space: pre-wrap;">: El nombre del bucket. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

Devuelve la URL del archivo de Amazon S3.

---

# 🧠 WEB API: Inteligencia Artificial

<span style="white-space: pre-wrap;">La </span>**aplicación de Inteligencia Artificial**<span style="white-space: pre-wrap;"> es necesaria para utilizar este conjunto de APIs.</span>

### dialogflow-message

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-message</span>`.
- `<span class="editor-theme-code">conversation_id</span>`: El ID de una conversación. Si se proporciona, la respuesta se añade a la conversación como un nuevo mensaje.
- `<span class="editor-theme-code">message</span>`: La cadena que contiene el texto del mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de archivos adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del archivo adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa del archivo. Dialogflow puede leer este array.</span>
- `<span class="editor-theme-code">language</span>`<span style="white-space: pre-wrap;">: El idioma del bot. </span>**Por defecto:**<span style="white-space: pre-wrap;"> el idioma principal del bot.</span>
- `<span class="editor-theme-code">event</span>`: Dispara un evento de Dialogflow.
- `<span class="editor-theme-code">parameters</span>`: Array de información opcional.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">{ "nombre": "valor", "nombre": "valor", ...}</span>`.
- `<span class="editor-theme-code">audio</span>`<span style="white-space: pre-wrap;">: URL de un archivo de audio para el reconocimiento de voz. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">token</span>`: 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:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">dialogflow-not-active</span>`<span style="white-space: pre-wrap;">, mensaje de error de </span>`<span class="editor-theme-code">MySQL</span>`<span style="white-space: pre-wrap;"> o </span>`<span class="editor-theme-code">cURL</span>`.

---

### dialogflow-get-intents

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-get-intents</span>`.
- `<span class="editor-theme-code">intent_name</span>`: El nombre de la intención.
- `<span class="editor-theme-code">language</span>`<span style="white-space: pre-wrap;">: El idioma del agente. </span>**Por defecto:**<span style="white-space: pre-wrap;"> el idioma principal del agente.</span>

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-create-intent</span>`.
- `<span class="editor-theme-code">expressions</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array con las frases de entrenamiento. </span>**Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">["", "", ...]</span>`.
- `<span class="editor-theme-code">response</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Cadena que contiene la respuesta del bot cuando la entrada del usuario coincide con una expresión del usuario.
- `<span class="editor-theme-code">agent_language</span>`<span style="white-space: pre-wrap;">: El código de idioma de la intención. </span>**Por defecto:**<span style="white-space: pre-wrap;"> idioma principal del agente. Para ver la lista de códigos de idiomas, visite la documentación de Dialogflow. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

### dialogflow-update-intent

Actualiza una Intención (Intent) de Dialogflow.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-update-intent</span>`.
- `<span class="editor-theme-code">intent_name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El nombre de la Intención. Obténgalo con la función </span>`<span class="editor-theme-code">dialogflow-get-intents</span>`.
- `<span class="editor-theme-code">expressions</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array con las frases de entrenamiento. </span>**Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">["", "", ...]</span>`.
- `<span class="editor-theme-code">agent_language</span>`<span style="white-space: pre-wrap;">: El código de idioma de la intención. </span>**Por defecto:**<span style="white-space: pre-wrap;"> idioma principal del agente.</span>

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-entity</span>`.
- `<span class="editor-theme-code">entity_name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El nombre único de la Entidad.
- `<span class="editor-theme-code">synonyms</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Array de valores de la Entidad.
    - **Sintaxis de valor único:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">['value' => '', 'synonyms' => ['', '', ...]]</span>`.
- `<span class="editor-theme-code">agent_language</span>`<span style="white-space: pre-wrap;">: El código de idioma de la intención. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

### dialogflow-get-entity

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-get-entity</span>`.
- `<span class="editor-theme-code">entity_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El ID de la Entidad. Déjelo vacío o inserte </span>`<span class="editor-theme-code">all</span>`<span style="white-space: pre-wrap;"> para obtener todas las Entidades. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">all</span>`.
- `<span class="editor-theme-code">agent_language</span>`<span style="white-space: pre-wrap;">: El código de idioma de la intención. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">google-get-token</span>`.

**Respuesta**

JSON

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

---

### dialogflow-get-agent

Devuelve los detalles del agente de Dialogflow.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-get-agent</span>`.

**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**

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

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-curl</span>`.
- `<span class="editor-theme-code">query</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: La consulta de Dialogflow en formato JSON.
- `<span class="editor-theme-code">language</span>`<span style="white-space: pre-wrap;">: El idioma del agente de Dialogflow. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">type</span>`<span style="white-space: pre-wrap;">: El tipo de llamada. Valores soportados: </span>`<span class="editor-theme-code">POST</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">GET</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">PATCH</span>`<span style="white-space: pre-wrap;">. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">POST</span>`.
- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;">: Token de Sesión de Dialogflow (no es el Token de Actualización). Páselo si lo tiene; de lo contrario, se generará uno. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

Devuelve la respuesta de Dialogflow.

---

### dialogflow-human-takeover

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-human-takeover</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación.
- `<span class="editor-theme-code">auto_messages</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para enviar también mensajes de fuera de línea (</span>**offline**), seguimiento (**follow\_up**<span style="white-space: pre-wrap;">) y suscripción si están activos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

### dialogflow-smart-reply

Devuelve las sugerencias de respuesta inteligente (Smart Reply).

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">dialogflow-smart-reply</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID de la conversación.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El mensaje de texto a partir del cual generar las sugerencias.
- `<span class="editor-theme-code">dialogflow_language</span>`<span style="white-space: pre-wrap;">: El idioma del agente de Dialogflow. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;">: El token de acceso de Dialogflow. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;"> (Segundo parámetro con el mismo nombre en la doc original, se refiere a OpenAI): Establézcalo para habilitar las sugerencias de OpenAI. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">open-ai-message</span>`.
- `<span class="editor-theme-code">message</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: La cadena que contiene el texto del mensaje.
- `<span class="editor-theme-code">max_tokens</span>`<span style="white-space: pre-wrap;">: 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. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;">. Si este parámetro es falso, el valor por defecto es el guardado en </span>`<span class="editor-theme-code">Configuración > Inteligencia Artificial > OpenAI > Max tokens</span>`, o se calcula automáticamente.
- `<span class="editor-theme-code">model</span>`<span style="white-space: pre-wrap;">: El modelo de OpenAI. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;">. Si este parámetro es falso, el valor por defecto es el guardado en </span>`<span class="editor-theme-code">Configuración > Inteligencia Artificial > OpenAI > Model</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;">: 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. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">audio</span>`<span style="white-space: pre-wrap;">: URL de un archivo de audio para el reconocimiento de voz. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Devuelve un array con el primer valor establecido en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> si es exitoso, </span>`<span class="editor-theme-code">false</span>`<span style="white-space: pre-wrap;"> en caso de error. El segundo valor es el mensaje de OpenAI si es exitoso, o el mensaje de error si falla.</span>

---

### open-ai-curl

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">open-ai-curl</span>`.
- `<span class="editor-theme-code">url_part</span>`<span style="white-space: pre-wrap;">: La parte de la URL de la API. Por ejemplo, si quiere llamar a </span>`<span class="editor-theme-code">https://api.openai.com/v1/completions</span>`<span style="white-space: pre-wrap;">, ingrese solo </span>`<span class="editor-theme-code">completions</span>`.
- `<span class="editor-theme-code">post_fields</span>`: Los parámetros de la API en formato JSON.
- `<span class="editor-theme-code">type</span>`<span style="white-space: pre-wrap;">: El tipo de llamada HTTP. Valores permitidos: </span>`<span class="editor-theme-code">GET</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">POST</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">UPLOAD</span>`.

**Respuesta**

JSON

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

Devuelve la respuesta de OpenAI.

---

### google-translate

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

**Parámetros**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">google-translate</span>`.
- `<span class="editor-theme-code">strings</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Array de las cadenas a traducir, ej. </span>`<span class="editor-theme-code">["Hello world", "How are you?"]</span>`.
- `<span class="editor-theme-code">language_code</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El código de idioma de dos letras al que desea traducir. Para Chino Tradicional use </span>`<span class="editor-theme-code">zt</span>`<span style="white-space: pre-wrap;">, para Chino Simplificado use </span>`<span class="editor-theme-code">zh</span>`<span style="white-space: pre-wrap;">, para Portugués Brasileño use </span>`<span class="editor-theme-code">pt</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">google-language-detection-update-user</span>`.
- `<span class="editor-theme-code">string</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El texto del cual detectar el idioma.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario.

**Respuesta**

JSON

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

---

# 📱 WEB API: WhatsApp

<span style="white-space: pre-wrap;">La aplicación de </span>**WhatsApp**<span style="white-space: pre-wrap;"> es necesaria para utilizar este conjunto de APIs.</span>

### whatsapp-send-message

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">whatsapp-send-message</span>`.
- `<span class="editor-theme-code">to</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El número de teléfono del destinatario. Incluya el código del país. Ej. </span>`<span class="editor-theme-code">+39321305455</span>`.
- `<span class="editor-theme-code">message</span>`: El mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa.</span>
    - <span style="white-space: pre-wrap;">Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.
- `<span class="editor-theme-code">phone_id</span>`<span style="white-space: pre-wrap;">: El ID del número de teléfono. Obténgalo de </span>`<span class="editor-theme-code">Configuración > WhatsApp</span>`<span style="white-space: pre-wrap;">. Este ajuste es necesario solo si ha sincronizado múltiples números de WhatsApp. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">whatsapp-send-template</span>`.
- `<span class="editor-theme-code">to</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El número de teléfono del destinatario. Incluya el código del país. Ej. </span>`<span class="editor-theme-code">+39321305455</span>`.
- `<span class="editor-theme-code">template_name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El nombre de la plantilla. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">Configuración > WhatsApp > Cloud API template fallback > Template name</span>`.
- `<span class="editor-theme-code">template_languages</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Una cadena separada por comas de todos los códigos de idioma disponibles para la plantilla. Ej. </span>`<span class="editor-theme-code">en_US,it_IT</span>`<span style="white-space: pre-wrap;">. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">Configuración > WhatsApp > Cloud API template fallback > Template languages</span>`.
- `<span class="editor-theme-code">phone_id</span>`<span style="white-space: pre-wrap;">: El ID del número de teléfono. Obténgalo de </span>`<span class="editor-theme-code">Configuración > WhatsApp > Cloud API numbers</span>`<span style="white-space: pre-wrap;">. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">parameters</span>`<span style="white-space: pre-wrap;">: El array de parámetros de la plantilla en formato JSON. Ej. </span>`<span class="editor-theme-code">["A", "B,C", "D,E"]</span>`.
    - <span style="white-space: pre-wrap;">El primer elemento del array son los parámetros del </span>**encabezado (header)**.
    - <span style="white-space: pre-wrap;">El segundo son los parámetros del </span>**cuerpo (body)**.
    - <span style="white-space: pre-wrap;">El tercero son los parámetros de los </span>**botones (button)**.
    - Cada parámetro es una cadena separada por una coma.
    - **Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">Configuración > WhatsApp > Cloud API template fallback</span>`.
- `<span class="editor-theme-code">language</span>`<span style="white-space: pre-wrap;">: El idioma de la plantilla. </span>**Por defecto:**<span style="white-space: pre-wrap;"> cadena vacía.</span>
- `<span class="editor-theme-code">conversation_url_parameter</span>`<span style="white-space: pre-wrap;">: Establézcalo si el texto de la plantilla contiene el campo de combinación </span>`<span class="editor-theme-code">{conversation_url_parameter}</span>`<span style="white-space: pre-wrap;">. </span>**Por defecto:**<span style="white-space: pre-wrap;"> cadena vacía.</span>
- `<span class="editor-theme-code">user_name</span>`<span style="white-space: pre-wrap;">: Establézcalo si el texto de la plantilla contiene el campo de combinación </span>`<span class="editor-theme-code">{recipient_name}</span>`.
- `<span class="editor-theme-code">user_email</span>`<span style="white-space: pre-wrap;">: Establézcalo si el texto de la plantilla contiene el campo de combinación </span>`<span class="editor-theme-code">{recipient_email}</span>`.
- `<span class="editor-theme-code">recipient_id</span>`<span style="white-space: pre-wrap;">: El ID de usuario de ZampiBot al que le está enviando la plantilla. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

# 💬 WEB API: Messenger

<span style="white-space: pre-wrap;">La aplicación de </span>**Messenger**<span style="white-space: pre-wrap;"> es necesaria para utilizar este conjunto de APIs.</span>

### messenger-send-message

Envía un mensaje a Messenger o Instagram.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">messenger-send-message</span>`.
- `<span class="editor-theme-code">psid</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El PSID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de Facebook. Obténgalo usando la función </span>`<span class="editor-theme-code">get-user</span>`.
- `<span class="editor-theme-code">facebook_page_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El ID de la Página de Facebook. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de Facebook. Obténgalo usando la función </span>`<span class="editor-theme-code">get-conversation</span>`<span style="white-space: pre-wrap;">. El ID es el valor </span>`<span class="editor-theme-code">extra</span>`.
- `<span class="editor-theme-code">message</span>`: El mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa.</span>
    - <span style="white-space: pre-wrap;">Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.
- `<span class="editor-theme-code">metadata</span>`<span style="white-space: pre-wrap;">: Proporcione el ID del mensaje de ZampiBot vinculado a este mensaje. Inclúyalo siempre que sea posible para evitar problemas. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

---

# ✈️ WEB API: Telegram

<span style="white-space: pre-wrap;">La aplicación de </span>**Telegram**<span style="white-space: pre-wrap;"> es necesaria para utilizar este conjunto de APIs.</span>

### telegram-send-message

Envía un mensaje a Telegram.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">telegram-send-message</span>`.
- `<span class="editor-theme-code">chat_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El Chat ID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de Telegram. Obténgalo usando la función </span>`<span class="editor-theme-code">get-conversation</span>`<span style="white-space: pre-wrap;">. El ID es el valor </span>`<span class="editor-theme-code">extra</span>`.
- `<span class="editor-theme-code">message</span>`: El mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa.</span>
    - <span style="white-space: pre-wrap;">Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.
- `<span class="editor-theme-code">conversation_id</span>`<span style="white-space: pre-wrap;">: Esta configuración es necesaria solo si ha sincronizado múltiples bots de Telegram. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**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

<span style="white-space: pre-wrap;">La aplicación de </span>**Viber**<span style="white-space: pre-wrap;"> es necesaria para utilizar este conjunto de APIs.</span>

### viber-send-message

Envía un mensaje a Viber.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">viber-send-message</span>`.
- `<span class="editor-theme-code">viber_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El Viber ID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de Viber. Obténgalo usando la función </span>`<span class="editor-theme-code">get-user</span>`.
- `<span class="editor-theme-code">message</span>`: El mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa.</span>
    - <span style="white-space: pre-wrap;">Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.

**Respuesta**

JSON

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

---

# 🟢 WEB API: LINE

<span style="white-space: pre-wrap;">La aplicación de </span>**LINE**<span style="white-space: pre-wrap;"> es necesaria para utilizar este conjunto de APIs.</span>

### line-send-message

Envía un mensaje a LINE.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">line-send-message</span>`.
- `<span class="editor-theme-code">line_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El LINE ID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de LINE. Obténgalo usando la función </span>`<span class="editor-theme-code">get-user</span>`.
- `<span class="editor-theme-code">message</span>`: El mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa.</span>
    - <span style="white-space: pre-wrap;">Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.

**Respuesta**

JSON

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

---

# 🟢 WEB API: WeChat

<span style="white-space: pre-wrap;">La aplicación de </span>**WeChat**<span style="white-space: pre-wrap;"> es necesaria para utilizar este conjunto de APIs.</span>

### wechat-send-message

Envía un mensaje a WeChat.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">wechat-send-message</span>`.
- `<span class="editor-theme-code">open_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: El WeChat ID. Para obtener esta información, el usuario primero debe enviarle un mensaje a través de WeChat. Obténgalo usando la función </span>`<span class="editor-theme-code">get-user</span>`.
- `<span class="editor-theme-code">message</span>`: El mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa.</span>
    - <span style="white-space: pre-wrap;">Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.
- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;">: El token de Google. Obténgalo de la respuesta de esta función. Inclúyalo siempre que sea posible por razones de rendimiento. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

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

---

# 💬 WEB API: Slack

<span style="white-space: pre-wrap;">La aplicación de </span>**Slack**<span style="white-space: pre-wrap;"> es necesaria para utilizar este conjunto de APIs.</span>

### send-slack-message

Envía un mensaje a Slack.

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">send-slack-message</span>`.
- `<span class="editor-theme-code">user_id</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El ID del usuario vinculado al mensaje.
- `<span class="editor-theme-code">full_name</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: El nombre del remitente, aparecerá en Slack a la izquierda del mensaje. Debería ser el nombre de un agente si el mensaje proviene de un agente, o el nombre del usuario en caso contrario.
- `<span class="editor-theme-code">profile_image</span>`<span style="white-space: pre-wrap;">: La imagen de perfil del remitente, aparecerá en Slack a la izquierda del mensaje. Formatos soportados: </span>`<span class="editor-theme-code">PNG</span>`<span style="white-space: pre-wrap;"> y </span>`<span class="editor-theme-code">JPG</span>`<span style="white-space: pre-wrap;">. </span>**Por defecto:**<span style="white-space: pre-wrap;"> vacío.</span>
- `<span class="editor-theme-code">message</span>`: El contenido del mensaje.
- `<span class="editor-theme-code">attachments</span>`: Array de adjuntos en formato JSON.
    - **Sintaxis del array:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[["nombre", "enlace"], ["nombre", "enlace"], ...]</span>`.
    - <span style="white-space: pre-wrap;">Reemplace </span>`<span class="editor-theme-code">nombre</span>`<span style="white-space: pre-wrap;"> con el nombre del adjunto y </span>`<span class="editor-theme-code">enlace</span>`<span style="white-space: pre-wrap;"> con la URL completa.</span>
    - <span style="white-space: pre-wrap;">Es su responsabilidad subir los archivos a un servidor remoto; este argumento solo acepta la URL de archivos ya subidos. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">[]</span>`.
- `<span class="editor-theme-code">channel</span>`: El canal de Slack vinculado al mensaje. Por razones de rendimiento, incluya siempre el canal. Obtendrá el canal después de la primera llamada de esta función, desde la respuesta (ejemplo: C011JFFGSKY).

**Respuesta**

JSON

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

**Otras posibles respuestas:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">slack-not-active</span>`<span style="white-space: pre-wrap;">, mensaje de error de </span>`<span class="editor-theme-code">MySQL</span>`<span style="white-space: pre-wrap;"> o </span>`<span class="editor-theme-code">cURL</span>`.

### archive-slack-channels

<span style="white-space: pre-wrap;">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. </span>**Importante:**<span style="white-space: pre-wrap;"> Todos sus canales de Slack serán archivados.</span>

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">archive-slack-channels</span>`.

**Respuesta**

JSON

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

### slack-users

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">slack-users</span>`.

**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**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">slack-presence</span>`.
- `<span class="editor-theme-code">agent_id</span>`<span style="white-space: pre-wrap;">: El ID del agente a verificar. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.
- `<span class="editor-theme-code">list</span>`<span style="white-space: pre-wrap;">: Establézcalo en </span>`<span class="editor-theme-code">true</span>`<span style="white-space: pre-wrap;"> para devolver todos los usuarios en línea. </span>**Por defecto:**<span style="white-space: pre-wrap;"> </span>`<span class="editor-theme-code">false</span>`.

**Respuesta**

JSON

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

<span style="white-space: pre-wrap;">Devuelve </span>`<span class="editor-theme-code">online</span>`<span style="white-space: pre-wrap;"> u </span>`<span class="editor-theme-code">offline</span>`<span style="white-space: pre-wrap;"> para la verificación de un solo agente. Devuelve un array de IDs de usuarios para la verificación de múltiples usuarios.</span>

---

### slack-channels

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

**Argumentos**

- `<span class="editor-theme-code">token</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**: Su token secreto de administrador.
- `<span class="editor-theme-code">function</span>`<span style="white-space: pre-wrap;"> </span>**Requerido**<span style="white-space: pre-wrap;">: Ingrese </span>`<span class="editor-theme-code">slack-channels</span>`.

**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. <span style="white-space: pre-wrap;">Inicie sesión en el área de administración y vaya a </span>`<span class="editor-theme-code">Configuración > Misceláneas > Webhooks</span>`.
2. **URL de destino:**<span style="white-space: pre-wrap;"> Ingrese la URL a donde ZampiBot enviará los datos. Esta URL debe apuntar a un archivo </span>**PHP**<span style="white-space: pre-wrap;"> que pueda leer los datos recibidos. Puede usar el siguiente código para capturar los datos: </span>`<span class="editor-theme-code">$response = json_decode(file_get_contents('php://input'), true);</span>`<span style="white-space: pre-wrap;"> La variable </span>`<span class="editor-theme-code">$response</span>`<span style="white-space: pre-wrap;"> será un array.</span>
3. **Clave secreta (Secret key):**<span style="white-space: pre-wrap;"> 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.</span>
4. Active los Webhooks y guarde. ZampiBot comenzará a enviar los Webhooks de la lista a continuación a su URL.

**Notas:**

- <span style="white-space: pre-wrap;">La clave </span>`<span class="editor-theme-code">sender-url</span>`<span style="white-space: pre-wrap;"> se incluye en todos los Webhooks y contiene la URL desde la cual se envía el webhook.</span>
- <span style="white-space: pre-wrap;">La configuración </span>**Webhooks activos**<span style="white-space: pre-wrap;"> define qué webhooks están habilitados. Ingrese los nombres de los webhooks separados por comas. Déjelo vacío para habilitar todos.</span>

**¿Falta algún Webhook?**<span style="white-space: pre-wrap;"> ¿Necesita un Webhook que aún no está disponible? ¡Contáctenos y lo agregaremos!</span>

---

### 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

<span style="white-space: pre-wrap;">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 </span>`<span class="editor-theme-code">message-sent</span>`<span style="white-space: pre-wrap;"> en su lugar.</span>

**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"
}
```

<span style="white-space: pre-wrap;">La clave </span>`<span class="editor-theme-code">data</span>`<span style="white-space: pre-wrap;"> contiene el ID del mensaje eliminado.</span>

---

### 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:**<span style="white-space: pre-wrap;"> activo = </span>`<span class="editor-theme-code">0</span>`<span style="white-space: pre-wrap;">, esperando respuesta del usuario = </span>`<span class="editor-theme-code">1</span>`<span style="white-space: pre-wrap;">, esperando respuesta del agente = </span>`<span class="editor-theme-code">2</span>`<span style="white-space: pre-wrap;">, archivado = </span>`<span class="editor-theme-code">3</span>`<span style="white-space: pre-wrap;">, papelera = </span>`<span class="editor-theme-code">4</span>`.

---

### 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"
}
```

<span style="white-space: pre-wrap;">La clave </span>`<span class="editor-theme-code">data</span>`<span style="white-space: pre-wrap;"> contiene el ID del usuario eliminado.</span>

---

### 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"
    }
}
```

---