# Funciones de calculadora para cursos

## Registro para el curso

register\_customer\_on\_course(tariff\_id, email, email\_notification, period, reregistration)

<table><thead><tr><th width="239.15234375">Parámetros</th><th></th></tr></thead><tbody><tr><td><strong>!</strong> <strong>tariff_id</strong></td><td>parámetro obligatorio, el ID del plan de precios. Puedes copiarlo en la barra del navegador en la configuración del plan de precios.</td></tr><tr><td><strong>! email</strong></td><td>parámetro obligatorio, la dirección de correo electrónico del cliente. Puedes especificar un valor concreto o una variable en la que se registre el correo electrónico del cliente.</td></tr><tr><td><strong>email_notification</strong></td><td>parámetro opcional, envía al estudiante un mensaje de correo electrónico sobre su inscripción en el curso, si está habilitado.</td></tr><tr><td><strong>period</strong> </td><td><p>parámetro opcional, límite de tiempo de validez del plan de precios. Se admiten los siguientes formatos de fecha: %d.%m.%Y %H:%M o %d.%m.%Y Ejemplo:</p><p><code>period = '15.08.2023 11:00'</code></p></td></tr><tr><td>reregistration</td><td>parámetro opcional, con valores True o False. Este parámetro es opcional y se especifica si necesitas volver a registrar a los estudiantes en el mismo curso y plan de precios.</td></tr><tr><td>purchase_price</td><td>parámetro opcional. Permite especificar el coste del curso si el cliente pagó por acceder a él a través de un bot. Si no lo especificas, se utilizará el coste del plan de precios indicado. Será útil si el cliente paga por acceder al curso a través del bot a un precio distinto del coste del plan de precios indicado.</td></tr></tbody></table>

Ejemplo: register\_customer\_on\_course(123, email, 1, "", True)

{% hint style="info" %}
Para que los clientes reciban correos electrónicos, pasa 1 al parámetro **email\_notification.**

**¡Si no envías 1, entonces los correos electrónicos del cliente no se recibirán!**
{% endhint %}

## ¿Cómo puedo conceder acceso al curso a través de Telegram Web App?

Para ello, especifica la función en el Block Calculator

**`access_course_from_webapp(text, button_label)`**\
Durante el uso de la función, el estudiante inicia sesión en Telegram y obtiene acceso al curso. Para continuar la formación, el estudiante no necesita introducir un nombre de usuario y una contraseña, ya que la autorización ya se ha completado.

Parámetros de la función:

**`text`** - es el texto del mensaje que recibirá el cliente. El parámetro puede especificarse en una variable escribiéndolo en el campo Calculator antes de llamar a la función, o especificarse en la propia función entre comillas.

**`button_label`** - es el texto del botón de la Web App. Puedes especificar el parámetro ya sea en una variable o en la propia función. En el segundo caso, el parámetro se escribe entre comillas.

{% hint style="warning" %} <mark style="color:rojo;">Es relevante SOLO para trabajar con un bot de Telegram.</mark>
{% endhint %}

La captura de pantalla a continuación muestra un ejemplo de uso de la función.\
En el primer paso, registramos al cliente en el curso; luego usamos la función access\_course\_com\_webapp para proporcionar acceso al producto en línea. &#x20;

El resultado de la ejecución de la función:

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

Este botón abre una página con los cursos/tarifas que tiene el estudiante.

> Si el cliente no está asociado con la cuenta del estudiante, la función devuelve 'client not attached to customer'.
>
> Para crear dicha conexión, solo necesitas inscribirte en un curso a través de un bot.

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

## Cómo conceder acceso al curso a través de un bot

### register\_customer\_on\_course()

Para ello, especifica la función en el Block Calculator

**register\_customer\_on\_course(tariff\_id, email, email\_notification, period)**

| Parámetros obligatorios                                                                                                                                                                                              | Parámetros opcionales                                                                                                                                                                                                  |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:rojo;">**!**</mark> **tariff\_id** - el ID del plan de precios. Puedes copiarlo en la barra del navegador en la configuración del plan de precios.                                                | **email\_notification** - Este parámetro envía al estudiante un mensaje de correo electrónico sobre su inscripción en el curso, si está habilitado.                                                                    |
| <mark style="color:rojo;">**!**</mark>**&#x20;email** - la dirección de correo electrónico del cliente. Puedes especificar un valor concreto o una variable en la que se registre el correo electrónico del cliente. | <p><strong>period</strong> - límite de tiempo de validez del plan de precios. Se admiten los siguientes formatos de fecha:  %d.%m.%Y %H:%M o %d.%m.%Y <br>Ejemplo:</p><p> <code>period = '15.08.2023 11:00'</code></p> |

{% hint style="danger" %}
Para que los clientes reciban correos electrónicos, debes pasar 1 en el parámetro **email\_notification.**&#x20;

**Si** <mark style="color:rojo;">no envías 1,</mark> **entonces los correos electrónicos del cliente&#x20;**<mark style="color:rojo;">**¡no se recibirán!**</mark>
{% endhint %}

Asigna una función a la variable.&#x20;

Después de la ejecución, una de las respuestas se escribirá en la variable:

**customer is already on tariff** - si hay un plan de precios o el acceso está cerrado manualmente

**wrong\_tariff\_id** - se especifica un id no válido

**tariff\_added** - El plan de precios se agregó al estudiante

Ejemplo:

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

## Cómo comprobar la disponibilidad de acceso al curso

### has\_customer\_tariff(tariff\_id)

Para ello, especifica la función en el Block Calculator **has\_customer\_tariff(tariff\_id, email)**<br>

| Parámetros obligatorios                                                                                                                                                                                 | Parámetros opcionales                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:rojo;">**!**</mark> **tariff\_id** - el ID del plan de precios. Puedes copiarlo en la barra del navegador en la configuración del plan de precios o en la sección Planes de precios. | **email** - parámetro opcional. Pasa este parámetro para comprobar si el cliente está inscrito en el curso con la dirección de correo electrónico especificada. |

Después de la ejecución, la función devuelve True o False.

{% hint style="danger" %}
Posibles respuestas de la función en caso de errores:

**wrong tariff\_id** - se pasó un valor no válido **tariff\_id**

**customer not found** - el usuario no está registrado como estudiante.
{% endhint %}

## Cómo registrar a un cliente en la plataforma SIN conceder acceso al curso

### register\_customer(email)

Para ello, especifica la función en el Block Calculator **register\_customer(email)**&#x20;

| Parámetros de la función                         | Descripción                                     |
| ------------------------------------------------ | ----------------------------------------------- |
| <mark style="color:rojo;">**!**</mark> **email** | la dirección de correo electrónico del cliente. |

Puedes especificar una variable en una función o valores de parámetros. Para especificar una variable, escribe su nombre, sin comillas ni signos de sintaxis, rejillas ni llaves. Para especificar un valor concreto, indica la dirección de correo electrónico del cliente entre comillas.

> Se recomienda asignar una variable a la función, así podrás ver el resultado de la función y trabajar con él. Ejemplo en la captura de pantalla de abajo: el nombre de la variable se establece antes del signo igual, seguido de la función y el parámetro entre paréntesis.

Después de la ejecución correcta de la función, la respuesta se escribirá en la variable:\
**customer created**

## ¿Cómo comprobar el acceso al curso y los límites de tiempo?

Para ello, especifica la función en el Block Calculator **has\_customer\_tariff\_with\_date(tariff\_id, email),** para comprobar la disponibilidad de acceso al curso por correo electrónico (devuelve una respuesta detallada sobre la disponibilidad de acceso y las restricciones de tiempo).

&#x20;Parámetros de la función:

| Parámetro obligatorio                                                                                                                                                                                   | Parámetro opcional              |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
| <mark style="color:rojo;">**!**</mark> **tariff\_id** - el ID del plan de precios. Puedes copiarlo en la barra del navegador en la configuración del plan de precios o en la sección Planes de precios. | **email** - parámetro opcional. |

La respuesta será:

* el estudiante está inscrito y hay un límite de tiempo de acceso: Tiene acceso hasta 2023-09-28 22:00:00&#x20;
* el estudiante está inscrito, no hay restricciones: Tiene acceso sin límite de tiempo&#x20;
* el estudiante no está inscrito: Sin acceso a esta tarifa

{% hint style="danger" %}
**Posibles respuestas de la función en caso de errores:**

**wrong tariff\_id** - se pasó un valor no válido **tariff\_id**

**customer not found** -el usuario no está registrado como estudiante.
{% endhint %}

## Cómo eliminar el acceso al curso de un estudiante a través de un bot&#x20;

### del\_customer\_from\_course(**course\_id, email**)

Para ello, especifica la función en el Block Calculator  **del\_customer\_from\_course(course\_id, email)**

| Parámetros                                                 | Descripción                                 |
| ---------------------------------------------------------- | ------------------------------------------- |
| <mark style="color:rojo;">**!**</mark>**&#x20;tariff\_id** | ID del plan de precios                      |
| <mark style="color:rojo;">**!**</mark>**&#x20;email**      | dirección de correo electrónico del cliente |

## Cómo comprobar si un estudiante ha asistido a un seminario web&#x20;

### customer\_was\_on\_translation()

El acceso al curso debe concederse en el bot.

Hay una función para ello [register\_customer\_on\_course()](https://docs.salebot.pro/onlain-kursy/sozdanie-kursov/chat-bot-dlya-onlain-kursa#kak-vydat-dostup-k-kursu-cherez-bot-register_customer_on_course) y [access\_course\_from\_webapp()](https://docs.salebot.pro/onlain-kursy/sozdanie-kursov/chat-bot-dlya-onlain-kursa#kak-vydat-dostup-k-kursu-cherez-web-app-telegramm)

Para comprobar si un estudiante asistió o no al seminario web, especifica la función en el Block Calculator customer\_was\_on\_translation(translation\_guid, email, after\_start\_time)

| Parámetros obligatorios                                                                                                                                                                                         | Parámetro opcional                                                                             |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| <p><mark style="color:rojo;"><strong>!</strong></mark> translation\_guid - el ID de la transmisión. Copia el valor del campo </p><p><em>El nombre está en el enlace de configuración de la transmisión</em></p> | after\_start\_time - la hora de inicio de la transmisión en el formato: '2023-04-18 13:30:00'. |
| <mark style="color:rojo;">**!**</mark> email - dirección de correo electrónico del estudiante                                                                                                                   |                                                                                                |

{% hint style="warning" %}
**¡Presta atención!** El nombre de la variable puede ser cualquier nombre que te resulte cómodo y comprensible. En caso de error al escribir los parámetros de la función, se escribirá un mensaje en la variable:  wrong translation\_guid

En este caso, recomendamos comprobar los parámetros de la función y volver a probarlos. Para obtener el valor del tiempo de permanencia en el seminario web a partir de una variable en el Calculator, puedes usar la función de trabajar con arrays y diccionarios. enlace/enlace [arrays](https://docs.salebot.pro/peremennye-1/rabota-s-massivami-i-slovaryami/rabota-s-massivami#kak-poluchit-element-massiva) y [diccionarios](https://docs.salebot.pro/peremennye-1/rabota-s-massivami-i-slovaryami/rabota-so-slovaryami#kak-poluchit-znachenie-slovarya-po-klyuchu).

Ejemplo de configuración en el Block Calculator:

time\_spent1 = answer2\[0]\['time\_spent']
{% endhint %}

## ¿Cómo encontrar el nombre del estudiante vinculado a un bot?

Hay casos en los que los estudiantes pueden estar vinculados al chat en línea de la cuenta personal de un estudiante, así como aquellos que están vinculados a un mensajero y escriben a tus supervisores a través de un bot. Para emitir correctamente certificados nominativos de finalización del curso en el bot y no buscar el nombre del estudiante en la lista, existe una función:

get\_customer\_name() - devuelve el nombre del estudiante asociado con el cliente.

Una función sin parámetros.

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

Devuelve el nombre del estudiante que el estudiante introdujo durante el registro en el curso, o el nombre del estudiante de su cuenta personal.


---

# 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/lms/como-vender-cursos/venta-de-cursos-en-un-chatbot/funciones-de-calculadora-para-cursos.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.
