# Trabajar con enlaces

## Enlaces con notificación de clic <a href="#dlya-raboty-s-ssylkami" id="dlya-raboty-s-ssylkami"></a>

proxy() | proxy\_date() | proxy\_timeout()

&#x20;<mark style="color:rojo;">**LEYENDA:**</mark>

<mark style="color:rojo;">**!**</mark> - Parámetros obligatorios

**proxy(lnk, one-shot)** - genera un enlace con notificación de clic. La función toma los siguientes parámetros:\ <mark style="color:rojo;">!</mark> **enlace** -enlace \
**one-shot** -indicador de que el enlace es de un solo uso. Simplemente pase el valor 1.

**proxy\_date(lnk, date, time)** - genera un enlace con notificación de clic y un tiempo de expiración especificado. La función toma los siguientes parámetros:\ <mark style="color:rojo;">!</mark> **enlace** - enlace\ <mark style="color:rojo;">!</mark> **date** - fecha de expiración del enlace \ <mark style="color:rojo;">!</mark> **tiempo** - hora de expiración del enlace\
**one-shot** - indicador de que el enlace es de un solo uso. Simplemente pase 1.

**proxy\_timeout(lnk, minutes, one-shot)** - genera un enlace con notificación de clic y un temporizador de acceso especificado. La función toma los siguientes parámetros:\ <mark style="color:rojo;">!</mark> **enlace** - enlace\ <mark style="color:rojo;">!</mark> **minutes** - la cantidad de minutos que el enlace permanece activo.\
**one-shot** - indicador de que el enlace es de un solo uso. Simplemente pase 1.

<details>

<summary>Ejemplo</summary>

Veamos un ejemplo sencillo:

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

Hemos creado dos enlaces proxy y los hemos insertado en botones y en el texto del mensaje. Como estamos probando en Telegram, es una buena oportunidad para recordar cómo formatear correctamente los enlaces usando Markdown. Para manejar caracteres especiales, hemos usado la función tg\_escape().

Así es como los ve el cliente, por ejemplo, en Telegram:

<div data-with-frame="true"><figure><img src="/files/358e3c165aac105b9b29cbf0061fd2ba63896b95" alt="" width="188"><figcaption></figcaption></figure></div>

Cuando el cliente hace clic en el enlace, recibimos una devolución de llamada:

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

Vamos a configurar una respuesta a este evento:

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

Ahora, probemos las funciones de eliminación de enlaces:

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

Así, si el cliente intenta usar el enlace de un solo uso después de que haya sido eliminado, recibirá un error porque el enlace ya no existe.

Vamos a eliminar el enlace con tiempo limitado:

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

Después de ejecutar la función, no quedan enlaces proxy en la ficha del cliente, y cualquier intento de seguir el enlace devuelve el mismo error.

</details>

<details>

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

Ejemplo de código para el campo "Mensaje" (no olvides habilitar **Markdown** si estás trabajando con Telegram):

```
*Prueba de enlaces:*
[Hacer clic](#{link3})
```

o prueba usando el siguiente formato de salida:

<pre><code><strong>Prueba de enlaces:
</strong>#{link2}
</code></pre>

Ejemplo de código en el campo "Calculadora":&#x20;

```
link1=proxy('https://mavibot.ai/', 1) 
link2=short_date('https://mavibot.ai/#tariff', '11.06.2025', '2pm') 
link3=tg_escape(link2)
```

</details>

{% hint style="info" %}
Cuando un cliente hace clic en un enlace proxy, recibirá una devolución de llamada en la forma **link\_was\_pressed** . Esto te permite configurar una reacción al clic en el enlace.

Para ello, introduce la devolución de llamada recibida en el campo "Condición" y establece el tipo de coincidencia en Coincidencia exacta.
{% endhint %}

## Acortamiento de enlaces

short() | short\_date() | short\_timeout()

&#x20;<mark style="color:rojo;">**LEYENDA:**</mark>

<mark style="color:rojo;">**!**</mark> - Parámetros obligatorios

**short(lnk, one-shot)** - genera un enlace sin notificación de clic. La función toma los siguientes parámetros:\ <mark style="color:rojo;">!</mark> **enlace** -enlace \
**one-shot** -indicador de que el enlace es de un solo uso. Simplemente pase el valor 1.

**short\_date(lnk, date, time)** - genera un enlace sin notificación de clic y con un tiempo de expiración especificado. La función toma los siguientes parámetros:\ <mark style="color:rojo;">!</mark> **enlace** - enlace\ <mark style="color:rojo;">!</mark> **date** - fecha de expiración del enlace \ <mark style="color:rojo;">!</mark> **tiempo** - hora de expiración del enlace\
**one-shot** - indicador de que el enlace es de un solo uso. Simplemente pase 1.

**short\_timeout(lnk, minutes, one-shot)** - genera un enlace sin notificación de clic y con un temporizador de acceso especificado. La función toma los siguientes parámetros:\ <mark style="color:rojo;">!</mark> **enlace** - enlace\ <mark style="color:rojo;">!</mark> **minutes** - la cantidad de minutos que el enlace permanece activo.\
**one-shot** - indicador de que el enlace es de un solo uso. Simplemente pase 1.

## **Eliminación de enlaces**

remove\_links() | remove\_one\_time\_links()| remove\_timer\_links()

<mark style="color:rojo;">**LEYENDA:**</mark>

<mark style="color:rojo;">**!**</mark> - Parámetros obligatorios

**remove\_links()** - desactivación de todos los enlaces acortados enviados al cliente

\
**remove\_one\_time\_links()** - desactivación de todos los enlaces de un solo uso enviados al cliente<br>

**remove\_timer\_links()** - desactivación de todos los enlaces con tiempo limitado enviados al cliente

## Enlace de cuestionario del bot de Telegram

quiz\_link\_timeout() | quiz\_link\_date() | quiz\_link()

{% hint style="warning" %}
¡Ten en cuenta!

¡Hay un límite de 21 días de validez del enlace, así que debe actualizarse!
{% endhint %}

Para habilitar la visualización del cuestionario en Telegram, necesitas:

1\. Copia el ID de una página del sitio web. Para hacerlo, ve a la sección "Sitios web" y selecciona el sitio web deseado:

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

Más adelante en el texto, nos referiremos a **mini\_landing\_page\_id** como nombre de la variable.

2\. En el campo "Calculadora", usa una de las siguientes funciones:

<mark style="color:rojo;">**LEYENDA:**</mark>

<mark style="color:rojo;">**!**</mark> - Parámetros obligatorios

**quiz\_link\_timeout(mini\_landing\_page\_id, minutes)  -** genera un enlace con un límite de duración establecido en minutos

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;mini\_landing\_page\_id** - ID de la página del sitio web\
**minutes -** duración del enlace en minutos (tipo: número)

**quiz\_link\_date(mini\_landing\_page\_id, date, time) -** genera un enlace con una expiración limitada a una fecha y hora específicas

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;mini\_landing\_page\_id** - ID de la página del sitio web\
**date** - fecha activa del enlace (formato: dd.mm.yyyy)\
**tiempo** - hora activa del enlace (formato: hh:mm)

&#x20;**quiz\_link(mini\_landing\_page\_id)** - genera un enlace sin tiempo de expiración

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;mini\_landing\_page\_id** - ID de la página del sitio web

<details>

<summary>Ejemplo</summary>

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

3\. Crea un **Aplicación web de Telegram** botón y especifica el nombre de la variable entre llaves con el símbolo de almohadilla.

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

<mark style="color:rojo;">**¡Importante!**</mark> \
Asegúrate de que el valor de la variable se guarde correctamente en la configuración avanzada.

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

Si usas **quiz\_link\_timeout** para redirigir a un cliente a una página del sitio web, puedes usar variables del cliente dentro del título y la descripción de la página. Por ejemplo, si el cliente tiene una variable **name** con el valor "John", y la descripción de la página incluye **"Hola #{name}, ¿cómo estás?"**, la salida será "Hola John, ¿cómo estás?". Sin embargo, si el cliente no tiene esa variable, el valor se tomará de las variables globales del proyecto.

{% hint style="warning" %}
**¡Nota!** Ten cuidado al usar enlaces sin tiempo de expiración. Si el enlace se comparte con otra persona y completa el cuestionario, los resultados se registrarán bajo el cliente para el que se generó originalmente el enlace.
{% endhint %}

</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/links.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.
