# Trabajo con etiquetas de MaviBot

## Crear / eliminar etiqueta

create\_label() | add\_label() | remove\_label() | remove\_label\_everywhere() | count\_of\_clients\_with\_label() | has\_label()

<details>

<summary>Descripción</summary>

Las etiquetas de MaviBot se muestran en un perfil de cliente como:

<div data-with-frame="true"><figure><img src="/files/fc6752bc574437b9ad89d5e5d889295613c3c3cf" alt="" width="355"><figcaption><p>Etiquetas en un perfil de cliente</p></figcaption></figure></div>

y en el **"Listas"** :

<div data-with-frame="true"><figure><img src="/files/de746cff5e05dde54bc6af723ff94c3ab1aae2f3" alt=""><figcaption></figcaption></figure></div>

**create\_label(label\_name)**\
crea una etiqueta de MaviBot con el nombre especificado

Parámetros:\ <mark style="color:rojo;">**!**</mark>**&#x20;label\_name**- nombre de la etiqueta, especificado entre comillas simples ('').

**add\_label(label\_name, client\_id)**\
añadir etiqueta de MaviBot al cliente&#x20;

Parámetros:\ <mark style="color:rojo;">**!**</mark>**&#x20;label\_name -** nombre de la etiqueta, especificado entre comillas simples ('')\
**client\_id** ID del cliente. Si se omite, se usa el ID del cliente actual&#x20;

**remove\_label(label\_name, client\_id)**\
eliminar etiqueta del cliente&#x20;

Parámetros:\ <mark style="color:rojo;">**!**</mark>**&#x20;label\_name** - nombre de la etiqueta, especificado entre comillas simples ('')\
**client\_id** - ID del cliente. Si se omite, se usa el ID del cliente actual

**has\_label(label\_name, client\_id**) - comprobar si el cliente tiene la etiqueta&#x20;

Parámetros:\ <mark style="color:rojo;">**!**</mark>**&#x20;label\_name** - nombre de la etiqueta, especificado entre comillas simples ('')\
**client\_id** - ID del cliente. Si se omite, se usa el ID del cliente actual

**remove\_label\_everywhere(label\_name)**\
eliminar etiqueta de todos los clientes

Parámetros:\ <mark style="color:rojo;">**!**</mark>**&#x20;label\_name**- nombre de la etiqueta, especificado entre comillas simples ('')

**count\_of\_clients\_with\_label(label\_name)**\
obtener el número total de clientes con la etiqueta

Parámetros:\ <mark style="color:rojo;">**!**</mark>**&#x20;label\_name**- nombre de la etiqueta, especificado entre comillas simples ('')

</details>

<details>

<summary>Ejemplo</summary>

Entonces, veamos **cómo se crea una etiqueta de MaviBot**.

Solo necesitas ejecutar la función de creación una vez en el bloque gris (un bloque sin estado), por ejemplo:

<div data-with-frame="true"><figure><img src="/files/17d73ed994580346d83ab489cae208853f7c0fc6" alt=""><figcaption><p>   Creación de una etiqueta usando la función de calculadora</p></figcaption></figure></div>

Al mismo tiempo, la variable ***a*** puede usarse para analizar el éxito de la función de creación de etiquetas:

<div data-with-frame="true"><figure><img src="/files/b4f2f70414f413bff0076b9ace23f8d45ac9384d" alt="" width="563"><figcaption></figcaption></figure></div>

A continuación, puedes **asignar una etiqueta a cualquier cliente** añadiendo la `add_label()` función en el bloque correspondiente de tu embudo:

<div data-with-frame="true"><figure><img src="/files/c7548f63d4355f5bae8f3fa725fff28ed30475a0" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/49672605bc558cbe67c9c8eeb855e286b2c7b246" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/b9330cb212018b916f1fed2d9dfd8344c5af5079" alt="" width="319"><figcaption></figcaption></figure></div>

Puedes comprobar si un cliente tiene una etiqueta usando la `has_label()` función:

<div data-with-frame="true"><figure><img src="/files/c18ab5c1d423970563f1618e36ac922c00fe21c4" alt=""><figcaption></figcaption></figure></div>

La función devuelve un valor lógico: True o False.&#x20;

<div data-with-frame="true"><figure><img src="/files/b9873c33d975d54281f3bbbe64f7bb6dbab330d9" alt=""><figcaption></figcaption></figure></div>

**Otras acciones relacionadas con etiquetas se realizan de forma similar**—eliminar una etiqueta de un cliente específico o eliminar una etiqueta por completo de todos los clientes.

También puedes contar el número de clientes con una etiqueta determinada usando la `count_of_clients_with_label()` función.

<div data-with-frame="true"><figure><img src="/files/7056dae6ac636d5859d57ab1534c296dc6022558" alt="" width="375"><figcaption><p>Conteo del número de clientes por una etiqueta determinada</p></figcaption></figure></div>

</details>

<details>

<summary>Ejemplo de código para copiar</summary>

`/Crear etiqueta/ a=create_label('tag1')`

`/Asignar etiqueta al cliente/ a=add_label('stage 1')`

`/Comprobar si el cliente tiene etiqueta/ a=has_label('этап 1','73704021')`

`/Contar el número de clientes con una etiqueta determinada/ etap1=count_of_clients_with_label('stage 1') tovar1=count_of_clients_with_label('1')`

</details>

## Creando una etiqueta

<details>

<summary>Descripción</summary>

**create\_label(label\_name)** - crea una etiqueta de MaviBot con el nombre especificado

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;label\_name**- nombre de la etiqueta, especificado entre comillas simples ('')

</details>

### Creación de una etiqueta sin duplicados

<details>

<summary>Descripción</summary>

**create\_label\_if\_not\_exist(name, color) -** crea una nueva etiqueta si todavía no existe una con el mismo nombre y devuelve su identificador; de lo contrario, devuelve el identificador de la etiqueta existente

**name** — nombre de la etiqueta

**color** — color de la etiqueta (predeterminado: 0)

Tabla de colores para **color** parámetro:

0 — gris claro&#x20;

1 — amarillo

2 — azul&#x20;

3 — rojo

4 — rosa

5 — beige&#x20;

6 — morado

7 — azul claro&#x20;

8 — gris

9 - verde

</details>

### Obtener todas las etiquetas del cliente

<details>

<summary>Descripción</summary>

**get\_all\_client\_labels(client\_id)**&#x20;

***Parámetros:***

**client\_id** - opcional; si no se proporciona, se recuperarán las etiquetas del cliente actual.

La función devuelve una respuesta en formato JSON: {"161":"tag1","228":"tag2"}, donde: la clave es el ID de la etiqueta y el valor es el nombre de la etiqueta

</details>

<details>

<summary>Ejemplo</summary>

<figure><img src="/files/78aee46cfb6611b7c8f10b852f38ce42c57dd910" alt="" width="375"><figcaption><p>Obtener todas las etiquetas del cliente actual</p></figcaption></figure>

</details>

### Eliminar etiquetas del cliente por array

<details>

<summary>Descripción</summary>

**remove\_multiple\_client\_labels(labels\_array, names) -** elimina las etiquetas especificadas en el array

**labels\_array** - array de etiquetas. <mark style="color:$primary;">O</mark> <mark style="color:naranja;">**ID**</mark> arreglo<mark style="color:naranja;">**,**</mark> <mark style="color:$primary;">O</mark> <mark style="color:naranja;">**names**</mark> array.&#x20;

<mark style="color:naranja;">Si se pasa el array names</mark>a otro servicio<mark style="color:naranja;">❗es obligatorio pasar el segundo parámetro (names) establecido en 1.</mark>

**names** - Establecer en 1 si el array contiene nombres de etiquetas en lugar de IDs. Esto indica que el array consiste en nombres.

{% hint style="danger" %}
¡NO se permite combinar IDs de etiquetas y nombres de etiquetas en la misma función!
{% endhint %}

</details>

<details>

<summary>Ejemplo</summary>

`/*Eliminar etiquetas por ID*/`

`r = remove_multiple_client_labels('[138,169,166]')`&#x20;

`/*Eliminar etiquetas por nombre de etiqueta*/`

`r2 = remove_multiple_client_labels('["newTestTag","tag2"]', 1)`

La variable almacena el resultado de la ejecución de la función: ya sea un mensaje de error o un número que indica cuántas etiquetas se eliminaron.

<div data-with-frame="true"><figure><img src="/files/c1d6e227642b8aeedbd699c2a170af0d7ac0dde5" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

### Buscar clientes por múltiples etiquetas

<details>

<summary>Descripción</summary>

**find\_clients\_by\_multiple\_labels(labels\_array, names)** - encuentra clientes por múltiples etiquetas

{% hint style="warning" %}
¡IMPORTANTE! Esto encuentra solo a aquellos clientes que tienen TODAS las etiquetas especificadas.
{% endhint %}

Parámetros:

**labels\_array** - array de etiquetas. <mark style="color:$primary;">O</mark> <mark style="color:naranja;">**ID**</mark> arreglo<mark style="color:naranja;">**,**</mark> <mark style="color:$primary;">O</mark> <mark style="color:naranja;">**names**</mark> array.&#x20;

<mark style="color:naranja;">Si se pasa el array names</mark>a otro servicio<mark style="color:naranja;">❗es obligatorio pasar el segundo parámetro (names) establecido en 1.</mark>

**names** - Establecer en 1 si el array contiene nombres de etiquetas en lugar de IDs. Esto indica que el array consiste en nombres.

{% hint style="danger" %}
¡NO se permite combinar IDs de etiquetas y nombres de etiquetas en la misma función!
{% endhint %}

Devuelve un array de IDs de clientes (client\_id): \[41121, 41192, 41522]

</details>

<details>

<summary>Ejemplo</summary>

`/*Encontrar clientes que tienen todas las etiquetas especificadas por ID*/`

`r = find_clients_by_multiple_labels('[138,169,166]')`&#x20;

`/*Encontrar clientes que tienen todas las etiquetas especificadas por nombres de etiqueta*/`

`r2 = find_clients_by_multiple_labels('["newTestTag","tag2"]', 1)`

<div data-with-frame="true"><figure><img src="/files/09c62eda16e71f1abce02f414e567ebd8de70e22" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

### Comprobar array de etiquetas del cliente

<details>

<summary>Descripción</summary>

**has\_client\_multiple\_labels(labels\_array, names)** - comprueba el array de etiquetas del cliente

{% hint style="warning" %}
¡IMPORTANTE! Devuelve **True** si un cliente tiene todas las etiquetas especificadas!
{% endhint %}

Parámetros:

**labels\_array** - array de etiquetas. <mark style="color:$primary;">O</mark> <mark style="color:naranja;">**ID**</mark> arreglo<mark style="color:naranja;">**,**</mark> <mark style="color:$primary;">O</mark> <mark style="color:naranja;">**names**</mark> array.&#x20;

<mark style="color:naranja;">Si se pasa el array names</mark>a otro servicio<mark style="color:naranja;">❗es obligatorio pasar el segundo parámetro (names) establecido en 1.</mark>

**names** - Establecer en 1 si el array contiene nombres de etiquetas en lugar de IDs. Esto indica que el array consiste en nombres.

{% hint style="danger" %}
¡NO se permite combinar IDs de etiquetas y nombres de etiquetas en la misma función!
{% endhint %}

Devuelve ya sea **un error**, o **True** si el cliente tiene todas las etiquetas del array, o **Falso** si el cliente no tiene todas las etiquetas.

</details>

<details>

<summary>Ejemplo</summary>

`/*Comprobar si el cliente tiene todas las etiquetas especificadas por ID*/`

`r = has_client_multiple_labels('[138,169,166]')`

`/*Comprobar si el cliente tiene todas las etiquetas especificadas por nombres de etiqueta*/`

&#x20;`r2 = has_client_multiple_labels('["newTestTag","tag2"]', 1)`

<div data-with-frame="true"><figure><img src="/files/bd01c2720a266773fdd8e850bd345417fcbde2ff" alt="" width="563"><figcaption></figcaption></figure></div>

</details>


---

# 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/chatbot/functions/calculadora/tags.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.
