# La API del software de edición

* [Cómo obtener mensajes en la URL de Webhook especificada en la configuración del proyecto](#how-to-get-messages-on-webhook-url-that-is-specified-in-the-projects-settings)&#x20;
* [Cómo usar un webhook universal](#how-to-use-a-universal-webhook)&#x20;
* [Cómo iniciar el bot](#how-to-launch-the-bot)&#x20;
* [Cómo trabajar con mensajes](#how-to-work-with-messages)&#x20;
* [Cómo distribuir los clientes](#how-to-distribute-the-clients)&#x20;
* [Cómo trabajar con variables](#how-to-work-with-variables)&#x20;
* [Cómo obtener client\_id](#how-to-get-client_id)&#x20;
* [Qué otras posibilidades hay](#what-other-possibilities-there-are)

Las solicitudes se realizan con el método **POST** en la URL, es decir **<https://chatter.mavibot.ai/api/{api\\_key}/{action}>**

Dónde se encuentra: **api\_key** es la clave para acceder a la API que se obtiene en la configuración del proyecto:

![](https://lh4.googleusercontent.com/NMHfsMXf9aqYBwcLqud8V-NoFMxqqxkcSdhxjckgEtowma_UmtxTmDqHFIsQwrpjc7kR8afwlpnC5FGMjLxYHtNwhnkR6xF0iwlUPjXTlkqRlYtoHfWrhp_dce8r5I5R-pPgDMzV)

{% hint style="success" %}
**Puedes obtener la clave de acceso usando la variable #{api\_key}.** Contiene la clave generada correspondiente. No olvides generar una antes de usarla.
{% endhint %}

{% hint style="danger" %}
Al copiar la url de la consulta desde esta página se inserta un espacio que debe eliminarse al llamar&#x20;

Un ejemplo de copiar el enlace de forma incorrecta: <https://chatter.mavibot.ai/api/callback&#x20>;

El espacio después de .pro es fácil de no notar, pero si se deja, la consulta no funcionará
{% endhint %}

{% hint style="warning" %}
**Al enviar la solicitud con el método GET, no uses palabras prohibidas.** Consulta la formación correcta de las solicitudes GET
{% endhint %}

## Cómo obtener mensajes en la URL de Webhook especificada en la configuración del proyecto

![La configuración del proyecto](https://lh5.googleusercontent.com/042KfsD4dxlKvcCDd-bReA7zTmfMHDr2LoX5jD1maPuo5OIwkyQ4qEXwFpwX41YA1Sx7SHES2TwLQD6Trs_TmwO57Pso2ogV4w8lJdmwhtIi7JdSwJvoePaXSYxO8NKLVm6kooPc)

Cada mensaje entrante o saliente viene con las siguientes solicitudes POST en json:

```
{
    'id': el identificador del mensaje en el sistema,
    'client': {
        'id': el identificador del cliente en el sistema,
        'recepient': el identificador del cliente en el mensajero,
        'client_type': el tipo de mensajero,
        'name': el nombre del cliente,
        'avatar': el avatar del cliente,
        'created_at': la fecha en que se creó el cliente,
        'tag': la clave de suscripción,
        'group': el bot al que está vinculado el cliente,
    },
    'message': el texto del mensaje,
    'attachments': el arreglo de enlaces a archivos,
    'message_id': el id del bloque desde el que se envió el mensaje,
    'project_id': el id del proyecto,
    'is_input': 1 si el mensaje es de un cliente, 0 si es del bot,
    'delivered': 1 si el mensaje se envió correctamente, 0 si hubo un error,
    'error_message': el mensaje que explica el error
}
```

Si la solicitud devolvió un error, no se reenviará. Si el servidor devolvió un error, las notificaciones llegarán a pesar de ello.

## Cómo usar un webhook universal

Estos métodos ahora se pueden lanzar tanto con la solicitud POST como con la GET.

* [callback ](#the-bots-launch)
* [whatsapp\_callback](#launching-the-bot-through-the-number-on-whatsapp)&#x20;
* [message ](#sending-the-message-to-the-client)
* [whatsapp\_message](#sending-messages-in-whatsapp)

Anteriormente, los parámetros (con los que se lanzaban los métodos de los clientes, es decir **client\_id**) estaban escritos de forma muy estricta en nuestros métodos y eso imponía algunas restricciones al usarlos con servicios de terceros.

Ahora puedes indicar en qué parámetro de la solicitud buscará Mavibot el identificador del usuario: para ello, se usa un parámetro con el prefijo **value\_** como **value\_user\_id** y **value\_group\_id**.

Además, el método para enviar el callback **callback** puede iniciarse transmitiendo un correo electrónico (**client\_email**) y un número de teléfono del cliente (**client\_phone**).

{% hint style="success" %}
Métodos **callback** y **whatsapp\_callback** no están vinculados a los nombres de los parámetros. Puedes especificar qué parámetro contendrá el número de teléfono, el correo electrónico y el id del cliente.
{% endhint %}

Es útil cuando configuras la recepción del webhook a través de otro sitio.

**Para especificar qué variable contiene client\_id** debes transferir **value\_client\_id** y mencionar el nombre del parámetro que contiene este valor

**Para especificar qué variable contiene phone** debes transferir **value\_phone** y mencionar el nombre del parámetro que contiene este valor

**Para especificar qué variable contiene email** debes transferir **value\_email** y mencionar el nombre del parámetro que contiene este valor

**Para especificar qué variable contiene user\_id** debes transferir **value\_user\_id** y mencionar el nombre del parámetro que contiene este valor

**Para especificar qué variable contiene group\_id** debes transferir **value\_group\_id** y mencionar el nombre del parámetro que contiene este valor

Ejemplo:

Escribe en la dirección value\_client\_id = my\_client

`https://chatter.mavibot.ai/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback?value_client_id=my_client`\
`{"my_client":49177759, "message":"Hello world"}`

La consulta será equivalente a la siguiente consulta:

`https://chatter.mavibot.ai/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback`\
`{"client_id":49177759, "message":"Hola mundo"}`

{% hint style="info" %}
Como puedes ver, el nombre del parámetro que contiene el nombre se diferencia por el prefijo **value\_**
{% endhint %}

## Cómo iniciar el bot

## El inicio del bot

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/callback`

El método puede usarse para iniciar el flujo de trabajo del cliente o para aprobar la acción en un servicio de terceros. Este mensaje no será visible para el cliente. \
**Además, los parámetros transferidos se guardan en las variables.** \
El método para enviar el callback ahora puede activarse compartiendo un correo electrónico (client\_email) o el número de teléfono del cliente (client\_phone)

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Cuerpo de la solicitud

| Name          | Tipo      | Descripción                                                 |
| ------------- | --------- | ----------------------------------------------------------- |
| client\_phone | de cadena | número de teléfono mediante el cual se encuentra al cliente |
| client\_email | de cadena | correo electrónico mediante el cual se encuentra al cliente |
| client\_id    | de cadena | id del cliente en el editor                                 |
| message       | de cadena | el texto del mensaje                                        |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json
 
params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/callback'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Inicio del bot a través del número en WhatsApp

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_callback`

Este método inicia el bot en WhatsApp después de que el cliente se registre a través del sitio o después de que deje una solicitud con su número de teléfono \
**Además, los parámetros transferidos se guardan en las variables**

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Cuerpo de la solicitud

| Name    | Tipo      | Descripción                       |
| ------- | --------- | --------------------------------- |
| name    | de cadena | el nombre del cliente             |
| message | de cadena | el texto del mensaje              |
| phone   | de cadena | el número de teléfono del cliente |
| bot\_id | de cadena | el id del bot                     |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## Inicio del bot a través del id de Telegram

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/tg_callback`

El método puede usarse para iniciar el flujo de trabajo o confirmar acciones en un sitio de terceros. Este mensaje no será visible para el cliente.&#x20;

**Además, los parámetros transferidos se guardan en las variables**

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Cuerpo de la solicitud

| Name      | Tipo      | Descripción                                  |
| --------- | --------- | -------------------------------------------- |
| message   | de cadena | el texto del mensaje                         |
| user\_id  | de cadena | el id del usuario en Telegram                |
| group\_id | de cadena | el nombre del bot (debe terminar en **bot**) |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## Cómo trabajar con mensajes

**Parámetros para enviar mensajes**

**attachment\_type** puede tomar estos valores: **imagen, video, enlace, archivo, audio** \
Al enviar archivos adjuntos, el parámetro **message** no es obligatorio

**buttons** identifica los botones que se adjuntarán al mensaje. El formato de los botones es comparable a la configuración avanzada de botones. Son posibles dos variantes de transmisión de los botones: una con la sugerencia en mensajeros sin botones y otra sin ella

Aquí tienes un ejemplo del parámetro buttons:

```
"buttons": {"hint": "Este texto se mostrará en Whatsapp",
 "buttons": [
    {"type": "reply", 
     "text": "Qué servicios podemos ofrecer", 
     "line": 0, "index_in_line": 0}, 
       
    {"type": "reply", 
     "text": "Información de pago", 
     "line": 0, 
     "index_in_line": 1}, 
        
    {"type": "reply", 
     "text": "Nuestra información de contacto", 
     "line": 1, "index_in_line": 0}, 
        
    {"type": "reply", 
     "text": "Dejar una solicitud", 
     "line": 1, "index_in_line": 1}
   ] 
}
```

## Envío del mensaje al cliente

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/message`

Este método puede usarse para enviar mensajes con notificaciones. El parámetro **message** es obligatorio si no estás enviando un archivo. Si lo haces, entonces el texto no es necesario

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Cuerpo de la solicitud

| Name             | Tipo      | Descripción                          |
| ---------------- | --------- | ------------------------------------ |
| message\_id      | de cadena | el número del bloque de envío        |
| message          | de cadena | el texto del mensaje                 |
| client\_id       | de cadena | el id del cliente en el editor       |
| attachment\_type | de cadena | el tipo de visualización del archivo |
| attachment\_url  | de cadena | la URL del archivo                   |
| buttons          | objeto    | buttons                              |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json

params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/message'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Envío de mensajes en WhatsApp

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_message`

Permite enviar un mensaje en nombre del bot conectado al número mencionado **whatsapp\_bot\_id** debe tomarse de la sección “Mensajeros y chats”. Cada página de WhatsApp conectada obtiene una identificación única

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Cuerpo de la solicitud

| Name              | Tipo      | Descripción                             |
| ----------------- | --------- | --------------------------------------- |
| message\_id       | de cadena | el número del bloque de envío           |
| whatsapp\_bot\_id | número    | el bot de WhatsApp que envía el mensaje |
| attachment\_url   | de cadena | la url del archivo                      |
| attachment\_type  | de cadena | el tipo de visualización del archivo    |
| message           | de cadena | el texto del mensaje                    |
| phone             | de cadena | el número de teléfono del destinatario  |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json

params = {"message": "some_text", "phone": "79875146788"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/whatsapp_message'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Envío de mensajes en masa

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/broadcast`

El método permite la distribución de mensajes. Si el parámetro **clients** no se menciona, la difusión se enviará a todos los usuarios. Es necesario enviar un archivo o un texto

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Cuerpo de la solicitud

| Name             | Tipo      | Descripción                                             |
| ---------------- | --------- | ------------------------------------------------------- |
| message\_id      | de cadena | el número del bloque de envío                           |
| list             | de cadena | la lista de números de destinatarios                    |
| shift            | de cadena | la cantidad de segundos entre mensajes. 0.2 por defecto |
| message          | de cadena | el texto del mensaje                                    |
| clients          | arreglo   | los ids de los destinatarios                            |
| attachment\_type | de cadena | el tipo de visualización del archivo                    |
| attachment\_url  | de cadena | la URL del archivo                                      |
| buttons          | de cadena | buttons                                                 |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{import requests
import json

params = {"message": "some_text", "clients": ["5", "58", "110"]}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/broadcast'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Obtención del historial de mensajes

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_history?client_id=`

Obtener el historial de mensajes. Puedes obtener el **client\_id** parámetro [AQUÍ](#how-to-get-client_id)

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Parámetros de consulta

| Name       | Tipo      | Descripción       |
| ---------- | --------- | ----------------- |
| client\_id | de cadena | el id del cliente |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "status": "success",
  "result": [
    {
      "id": 104500,
      "answered": true,
      "client_replica": false,
      "message_id": 390,
      "message_from_outside": 0,
      "created_at": 1587895014,
      "text": "CouCou",
      "attachments": {
        
      },
      "delivered": true,
      "error_message": "true"
    },
  ]
}
```

{% endtab %}
{% endtabs %}

## Borrado del historial de mensajes

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/clear_history?client_id=`

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Parámetros de consulta

| Name       | Tipo      | Descripción       |
| ---------- | --------- | ----------------- |
| client\_id | de cadena | el id del cliente |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/clear_history?client_id=85856'
requests.get(url)
```

{% endtab %}
{% endtabs %}

## Cómo distribuir los clientes

## Asignar un cliente a un empleado

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/assign_to_user`

El método permite asignar un cliente a un empleado. El parámetro de correo electrónico es opcional. Si no se proporciona el correo electrónico, se distribuirá mediante el algoritmo del sistema

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Parámetros de consulta

| Name               | Tipo   | Descripción                                     |
| ------------------ | ------ | ----------------------------------------------- |
| client\_id         | Cadena | el id del cliente                               |
| correo electrónico | Cadena | el correo electrónico del trabajador (opcional) |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json

params = {"message": "some_text", "clients": ["5", "58", "110"]}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/broadcast'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Carga de clientes en el sistema

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/load_clients`

El método permite cargar clientes en el sistema. Al subir clientes de WhatsApp puedes transferir el número libremente con @s.whatsapp.net al final o sin él.&#x20;

Puedes obtener el id del grupo (**group\_id**) [aquí ](#what-other-possibilities-there-are)a través de /api/\<api\_key>/connected\_channels&#x20;

(si client\_type=13 (telefonía) entonces group\_id=””)&#x20;

Puedes ver el tipo de mensajero del que vino el cliente (**client\_type**)&#x20;

Ej.: \[{"platform\_id":"79875555555","group\_id":34810,"client\_type":6}]

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Cuerpo de la solicitud

| Name         | Tipo   | Descripción                                  |
| ------------ | ------ | -------------------------------------------- |
| platform\_id | Cadena | el número de teléfono                        |
| group\_id    | Cadena | el id del grupo                              |
| client\_type | Cadena | el tipo de mensajero del que vino el cliente |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/load_clients'

params = [{ "platform_id": 274827917, "group_id": 169166236, "client_type":0},
{"platform_id":"79538550785@s.whatsapp.net", "group_id": "1hwF7lwEjv4SKYIGFhQnBw==", "client_type": 6}]
requests.post(url, json=params)
# en caso de éxito la función devuelve a cada elemento su id y estado adicional
# ejemplo de respuesta
# {"status":"success","items":[{"platform_id":"700000000@s.whatsapp.net","group_id":"5kqchxwyvdvFZOsp80q2qw==","client_type":6,"status":"success","id":1469409}]}
```

{% endtab %}
{% endtabs %}

## Añadir clientes a la lista

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/add_to_list`

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Cuerpo de la solicitud

| Name     | Tipo    | Descripción                           |
| -------- | ------- | ------------------------------------- |
| list\_id | entero  | el número de la lista                 |
| clients  | arreglo | el arreglo de números de los clientes |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## Eliminar clientes de la lista

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/remove_from_list`

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Cuerpo de la solicitud

| Name     | Tipo    | Descripción                           |
| -------- | ------- | ------------------------------------- |
| list\_id | entero  | el número de la lista                 |
| clients  | arreglo | el arreglo de números de los clientes |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## Obtener la lista de clientes

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_clients`

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Parámetros de consulta

| Name   | Tipo      | Descripción                                                         |
| ------ | --------- | ------------------------------------------------------------------- |
| offset | de cadena | desplazamiento desde el primer elemento                             |
| limit  | entero    | la cantidad de elementos en la respuesta. 500 por defecto, máx. 500 |
| list   | de cadena | el número de la lista                                               |

{% tabs %}
{% tab title="200: OK Devuelve el estado de los elementos y un arreglo" %}

```javascript
{
"status":"success",
"clients":[{
    "id":44483,
    "platform_id":"146467928",
    "client_type":0,
    "name":null,
    "avatar":null,
    "message_id":null,
    "project_id":1,
    "created_at":1588248599,
    "updated_at":1588248599,
    "custom_answer":null,
    "tag":null,
    "group":"143414131",
    "operator_start_dialog":null
    }
]
}
```

{% endtab %}
{% endtabs %}

## Obtener la lista de suscriptores en cualquier mensajero

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/subscribers`

Obtener la información sobre los clientes en el mensajero elegido

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Parámetros de consulta

| Name         | Tipo      | Descripción                                                                                             |
| ------------ | --------- | ------------------------------------------------------------------------------------------------------- |
| page         | entero    |                                                                                                         |
| tag          | de cadena | la etiqueta mencionada en la página de suscripción                                                      |
| group        | entero    | el id del grupo al que está vinculado el suscriptor                                                     |
| date\_from   | entero    | marca de tiempo de la fecha después de que se suscribieron                                              |
| date\_to     | entero    | marca de tiempo de la fecha hasta la que se suscribieron                                                |
| client\_type | entero    | el id del mensajero al que necesitas suscribir la lista. si no cambias nada aparecen todos los clientes |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
  {
    "id": 44886,
    "tag": null,
    "created_at": 1609867984,
    "name": "John Smith",
    "tg_id": "146467928",
    "group": "155824294",
    "variables": null
  },
  {
    "id": 44889,
    "tag": null,
    "created_at": 1609867984,
    "name": "Jane Austen",
    "tg_id": "1609867984",
    "group": "155824294",
    "variables": {
      "utm_source": "some_value"
    }
  }
]
```

{% endtab %}
{% endtabs %}

### Permiso para eliminar clientes

<mark style="color:verde;">**`POST`**</mark>` ``https://chatter.mavibot.ai/api/<api_key>/get_clients`

Permiso de acceso al generar la clave: “Permiso para eliminar clientes”

Parámetros

Ruta\
api key\* — token de acceso

Cuerpo\
client\_ids — lista de IDs de clientes que se eliminarán. Máximo 500. Ejemplo: \[199571, 199707, 1935722]

## Cómo trabajar con variables

## Atribución de variables

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/save_variables`

Permite guardar variables en la aplicación y en el cliente. \
La solicitud de atribución de variables, por defecto, añade a las variables de transacción. \
Si necesitas cambiar las variables en el perfil, debes añadir el prefijo **client**. \
Ej. para móvil: client.phone&#x20;

El parámetro **clients** permite atribuir variables en masa&#x20;

Ej.: {"client\_id":49177759, "variables":\
{"client.phone":"1234567890"}}

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Cuerpo de la solicitud

| Name       | Tipo      | Descripción                                      |
| ---------- | --------- | ------------------------------------------------ |
| clients    | arreglo   | arreglo de id de clientes para asignar variables |
| client\_id | de cadena | id del cliente                                   |
| variables  | objeto    | hash de variables (clave valor)                  |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json

params = {"client_id": "25554", "variables": {"var_name": "var_value"}}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/save_variables'
requests.post(url, json=params)
```

{% endtab %}
{% endtabs %}

## Obtención de variables

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_variables?client_id=`

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Parámetros de consulta

| Name       | Tipo      | Descripción    |
| ---------- | --------- | -------------- |
| client\_id | de cadena | id del cliente |

{% tabs %}
{% tab title="200: OK " %}

```javascript
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/get_variables?client_id=85856'
requests.get(url)
```

{% endtab %}
{% endtabs %}

## **Cómo obtener client\_id**

## Obtener client\_id por el valor platform\_id

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_platform_id`

El método devuelve el id del cliente para ejecutar solicitudes a la API

Ejemplo de parámetros: {"platform\_ids": \["571830542", "256865200"]}

#### Parámetros de ruta

| Name | Tipo      | Descripción     |
| ---- | --------- | --------------- |
|      | de cadena | clave de acceso |

#### Cuerpo de la solicitud

| Name          | Tipo      | Descripción                    |
| ------------- | --------- | ------------------------------ |
| platform\_ids | de cadena | arreglo de ids en el mensajero |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[{
"id":15099119,
"tag":null,
"created_at":1618815253,
"name":"Oscar Wilde",
"avatar":"https:\\/\\/files.salebot.pro\\/uploads\\/avatars\\/256865200.jpg",
"platform_id":"2568652",
"group":"Salebotpro_bot",
"variables":{"tg_username":"@wildeo"}},

{"id":21087377,
"tag":null,
"created_at":1626275893,
"name":"Freddie Mercury",
"avatar":"https:\\/\\/files.salebot.pro\\/uploads\\/avatars\\/571830542.jpg",
"platform_id":"571830542",
"group":"Salebotpro_bot",
"variables":{"tg_username":"@freddieisqueen"}
}]
```

{% endtab %}
{% endtabs %}

## Cómo obtener el id del cliente en Online chat

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/online_chat_client_id?recipient=`

Este método permite integrar el sitio y el chatbot, es decir, si una persona fue a la página con la oferta especial, puedes enviar de inmediato un mensaje sobre la oferta en el chat

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Parámetros de consulta

| Name      | Tipo      | Descripción                   |
| --------- | --------- | ----------------------------- |
| tag       | de cadena | etiqueta del cliente          |
| name      | de cadena | el nombre del cliente         |
| recipient | de cadena | el id del diálogo en el sitio |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{ "client_id": 36553 }
```

{% endtab %}
{% endtabs %}

¿Dónde obtienes el recipient? En el sitio que ejecuta el chat en línea “Mavibot.ai” necesitas obtener la propiedad SaleBotPro.recipient\_id con ayuda de JS.

![](https://lh4.googleusercontent.com/kTHJGnkdMXxirfxHrmgHcg3n9nRn35lHIiWbQ6LZyaQZ4IbO8TnOtgihTt4MdAqFa1bWujmpYDOId9ALFfmud8n-XD2AJlxep2luxjL4nCl2YgDTpdemE4wJVsgFuPw1h382oUL5)

## Cómo obtener el id del cliente con el número de WhatsApp

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_client_id?phone=`

El método devuelve el id del cliente para ejecutar solicitudes a la API si conoces el número de teléfono del cliente en WhatsApp. \
Si no existe tal cliente con este número, obtendrás un 404.

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Parámetros de consulta

| Name  | Tipo      | Descripción           |
| ----- | --------- | --------------------- |
| phone | de cadena | el número de teléfono |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## Obtención del id del cliente con el número de teléfono

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_phone?phone=`

El método devuelve el id del cliente para ejecutar solicitudes a la API. \
La búsqueda se realiza a través de clientes de WhatsApp, así como a través de variables.

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Parámetros de consulta

| Name  | Tipo      | Descripción           |
| ----- | --------- | --------------------- |
| phone | de cadena | el número de teléfono |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## Obtención del id del cliente por correo electrónico

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_email?email=`

El método devuelve el id del cliente para ejecutar solicitudes a la API. La búsqueda se realiza a través de variables.

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Parámetros de consulta

| Name               | Tipo      | Descripción                         |
| ------------------ | --------- | ----------------------------------- |
| correo electrónico | de cadena | correo electrónico para la búsqueda |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## Obtención del id del cliente por el valor de una variable

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/find_client_id_by_var?var=&val=`

El método devuelve el id del cliente para ejecutar solicitudes a la API

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Parámetros de consulta

| Name | Tipo      | Descripción                                                           |
| ---- | --------- | --------------------------------------------------------------------- |
| var  | de cadena | el nombre de la variable a través de la cual se realizará la búsqueda |
| val  | de cadena | el valor de la variable                                               |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## **Qué otras posibilidades hay**

## Mover la transacción al estado MavibotCRM

<mark style="color:verde;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/set_order_state`

El número de transacción puede obtenerse en la ventana de edición del flujo de trabajo de MavibotCRM.

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Cuerpo de la solicitud

| Name       | Tipo      | Descripción                                                      |
| ---------- | --------- | ---------------------------------------------------------------- |
| client\_id | de cadena | id del cliente                                                   |
| state\_id  | de cadena | el número de estado al que transferir la transacción del cliente |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## Comprobar si la persona sigue la cuenta de Instagram&#x20;

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/check_insta_subscription`

Puede llamarse tanto con el método POST como con el método GET

#### Parámetros de ruta

| Name     | Tipo      | Descripción        |
| -------- | --------- | ------------------ |
| api\_key | de cadena | la clave de acceso |

#### Cuerpo de la solicitud

| Name       | Tipo      | Descripción                                            |
| ---------- | --------- | ------------------------------------------------------ |
| user\_name | de cadena | el nombre de usuario del cliente que quieres comprobar |
| login      | de cadena | el usuario del bot que se está comprobando             |

{% tabs %}
{% tab title="200: OK El campo is\_follower es el que contiene la información sobre si la persona lo sigue o no" %}

```javascript
{
"username": "beyonce",
"account_id": "1463220603",
"avatar": "https://instagram.fhel6-1.fna.fbcdn.net/v/t51.2885-19/1060168..",
"real_name": "Beyonce",
"is_follower": true,
"status": 200
}
```

{% endtab %}
{% endtabs %}

## Comprobar si el número de teléfono tiene WhatsApp

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/check_whatsapp`

**Para usar el método DEBES tener conectados WhatsApp y Mavibot**

Puede llamarse tanto con el método POST como con el método GET \
El número de teléfono puede transferirse en cualquier formato

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

#### Cuerpo de la solicitud

| Name  | Tipo      | Descripción           |
| ----- | --------- | --------------------- |
| phone | de cadena | el número de teléfono |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

## Obtener la lista de mensajeros conectados al proyecto (incluyendo group\_id)

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/connected_channels`

La función devuelve el parámetro **group\_id** a cada mensajero y es el que debe transferirse al cargar los clientes&#x20;

El campo **status** también devuelve para WhatsApp, y contiene un valor de: \
**NOT\_STARTED = 0** \
**STARTED = 1** \
**ASLEEP = 2** \
**STOPPED = 3**

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{'project_id': 1, 
'viber': [{
        'id': 14, 
        'uri': 'salebotstage', 
        'name': 'salebotstage', 
        'enabled': true,
        'group_id': 11}], 
'facebook': [], 
'telegram': [{
        'id': 23, 
        'short_name': 'bulls_vs_bears_bot', 
        'name': 'bulls_vs_bears_bot', 
        'enabled': true,
        'group_id': 'bulls_vs_bears_bot'}], 
'whatsapp': [] 
}
```

{% endtab %}
{% endtabs %}

## Obtención de la lista de bloques del esquema del bot

<mark style="color:azul;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_messages`

#### Parámetros de ruta

| Name     | Tipo      | Descripción     |
| -------- | --------- | --------------- |
| api\_key | de cadena | token de acceso |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Respuesta
}
```

{% endtab %}
{% endtabs %}

{% hint style="success" %}
Si necesitas métodos adicionales, por favor contacta con soporte al cliente&#x20;
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/es/integrations/api/settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
