# Funções (API) na calculadora

{% hint style="warning" %}
As funções da API estão disponíveis apenas nos planos "Business" e "MaviBot AI".
{% endhint %}

## API MaviBot

<mark style="color:vermelho;">**LEGENDA:**</mark>\ <mark style="color:vermelho;">**!**</mark> -Parâmetros obrigatórios

### Como enviar callback

#### **callback()**

{% hint style="danger" %}
Você pode enviar callback apenas para OUTRO cliente.

VOCÊ NÃO PODE enviar um callback para VOCÊ MESMO!
{% endhint %}

<details>

<summary>Descrição</summary>

**callback(client\_id, callback\_message)**

Parâmetros:

<mark style="color:vermelho;">**!**</mark>**&#x20;client\_id** - identificador do cliente

<mark style="color:vermelho;">**!**</mark>**&#x20;callback\_message** - texto da mensagem de callback

</details>

<details>

<summary>Exemplo</summary>

Um callback é uma mensagem especial do sistema que o bot reconhece como um comando para acionar uma ação específica. Essa mensagem é invisível para o usuário e é registrada apenas no perfil do cliente para processamento interno.

Vamos enviar um callback para o cliente com client\_id=73704021

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

Em seguida, definimos a resposta para esse callback no bloco com a condição.

</details>

<details>

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

```
callback('73704021', 'callback TEST123')

callback(client_id, 'callback TEST123')
```

</details>

### Como enviar callback no Telegram

#### **tg\_callback()**

<details>

<summary>Descrição</summary>

**tg\_callback(platform\_id , callback\_message,group\_id, business\_connection\_id)**

Parâmetros:

<mark style="color:vermelho;">**!**</mark>**&#x20;platform\_id** -  identificador do cliente no Telegram

<mark style="color:vermelho;">**!**</mark>**&#x20;callback\_message** - texto da mensagem de callback

&#x20;**group\_id** -  identificador do bot do Telegram

**tg\_business -** para trabalhar com clientes de negócios, o valor "1" é passado.

</details>

<details>

<summary>Exemplo</summary>

Este é um exemplo com os parâmetros obrigatórios:

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

Este é um exemplo com os parâmetros opcionais

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

</details>

<details>

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

```
tg_callback('73704021', 'callback TEST123')

tg_callback(platform_id, 'callback TEST123', None, 1)
```

</details>

### Como adicionar um redirecionamento do bot com uma tag em resposta a um botão de callback?

<details>

<summary>Descrição</summary>

**tg\_callback\_url\_open(callback\_query\_id, url)**

Parâmetros: \ <mark style="color:vermelho;">**!**</mark>**&#x20;callback\_query\_id** - este id permite identificar a pessoa que pressionou o botão e mostrar a ela uma notificação de alerta,\ <mark style="color:vermelho;">**!**</mark>**&#x20;url** - URL- especificando o bot e o parâmetro (fica assim: t.me/seu\_bot?start=XXXX, em vez de seu\_bot - nome do bot)

</details>

### **Como enviar mensagem ao cliente**

**message() | platform\_message() | whatsapp\_message()**

{% hint style="info" %}
Para armazenar texto com quebras de linha em uma variável, defina o valor da seguinte forma:

`text = "Texto da primeira linha" + "\n" + "Texto da segunda linha" + "\n" +"Texto da terceira linha"`
{% endhint %}

<details>

<summary>Descrição</summary>

**message(client\_id, text, message\_id, timeout)**

Parâmetros:\ <mark style="color:vermelho;">**!**</mark>**&#x20;client\_id** - identificador do cliente\ <mark style="color:vermelho;">**!**</mark>**&#x20;text** - texto da mensagem\
**message\_id** - o ID do bloco. Se você deixar o campo de texto vazio (") e preencher este parâmetro, o texto do bloco especificado será enviado ao cliente.

*Observação: Se você passar o parâmetro message\_id para a função message, o bloco ainda será executado completamente, e o cliente especificado no parâmetro client\_id será movido para o bloco que você passou em message\_id.*

\
**timeout** - atraso da mensagem ou horário agendado de envio. Você pode usar o parâmetro timeout para atrasar o envio da mensagem:\
a) Um atraso em segundos (até 3600 segundos). Se o valor exceder 3600, a mensagem será enviada em uma hora. Se o valor for negativo, a mensagem será enviada imediatamente. Exemplo: timeout = 50                                                                                                                 &#x20;

b) Uma data e hora específicas no formato dd.mm.yyyy hh:mm, exemplo: timeout = '03.04.2022 15:00'. Se uma data passada for especificada, a mensagem será enviada imediatamente.

**platform\_message(platform\_id, text, client\_type,  message\_id, timeout,group\_id)**

Parâmetros:\ <mark style="color:vermelho;">**!**</mark>**&#x20;platform\_id** -  identificador do cliente no messenger\ <mark style="color:vermelho;">**!**</mark>**&#x20;text** - texto da mensagem\
**client\_type -** tipo de messenger, parâmetro opcional. Se não for especificado, o cliente será procurado no mesmo messenger de onde o bot envia a mensagem. Se for especificado, o cliente será encontrado entre o banco de dados do messenger especificado. Você pode encontrar os tipos de messenger [aqui.](/doc/pt/chatbot/functions/variaveis.md#how-to-work-with-variables)\
**message\_id** - ID do bloco. Se for especificado, o cliente receberá a mensagem do bloco especificado, não o valor do parâmetro text.\
**timeout** - horário de envio ou atraso. É semelhante ao parâmetro de mesmo nome da função message().\
**group\_id** - identificador do bot

**whatsapp\_message(phone, text, message\_id)**

Parâmetros:\ <mark style="color:vermelho;">**!**</mark>**&#x20;phone**- número de telefone do cliente onde o WhatsApp está registrado\ <mark style="color:vermelho;">**!**</mark>**&#x20;text** - texto da mensagem\
**message\_id** -é o ID do bloco. Se o campo de texto for deixado em branco ('') e este parâmetro for definido, o cliente receberá o conteúdo da mensagem do bloco especificado.

{% hint style="info" %}
O bot do WhatsApp precisa estar conectado ao projeto.
{% endhint %}

</details>

<details>

<summary>Exemplo</summary>

Um exemplo simples de envio de mensagem por client\_id:

<div data-with-frame="true"><figure><img src="/files/719ce29f1210e3f468be333d6d19ec2e13220110" alt="" width="563"><figcaption><p>Enviando uma mensagem por client_id</p></figcaption></figure></div>

Diferentes opções para enviar uma mensagem por client\_id:

<div data-with-frame="true"><figure><img src="/files/d58c984bcf2eb9396b27f397971e6c33410b3a9c" alt="" width="563"><figcaption><p>Diferentes opções para enviar uma mensagem </p></figcaption></figure></div>

Exemplo de envio de mensagem via platform\_message():

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

</details>

<details>

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

```
/*Enviando uma mensagem por client_id*/
message(73704021, 'Texto da mensagem para o cliente')
/*Enviando uma mensagem por client_id com atraso de 30 segundos*/
message(73704021, 'Oi! Obrigado por escrever..','',30)
/*Enviando mensagem do bloco 3190 por client_id em 03.04.2022 às 15h*/
message(73704021, '',3190, '03.04.2022 3pm')

/*Enviando mensagem no WhatsApp*/
whatsapp_message('79999999999', 'Texto da mensagem para o cliente')
```

</details>

### Obtendo client\_id pelo valor de platform\_id

get\_client\_id\_by\_platform\_i&#x64;**()**

<details>

<summary>Descrição</summary>

**get\_client\_id\_by\_platform\_id(client\_type, platform\_id , group)**&#x20;

Após a execução, a função retornará o client\_id se um cliente correspondente às condições especificadas for encontrado; caso contrário, retornará None.

<mark style="color:vermelho;">**!**</mark> **client\_type** - messenger. Para o valor de client\_type, leia [este artigo](/doc/pt/chatbot/functions/variaveis.md).&#x20;

<mark style="color:vermelho;">**!**</mark> **platform\_id** - ID do cliente no messenger especificado.

**group**  - é um parâmetro obrigatório se houver mais de um bot messenger conectado.

{% hint style="warning" %}
Se vários messengers do mesmo tipo estiverem conectados no projeto, a busca será baseada em todos os messengers conectados desse tipo.

Nesse caso, recomendamos passar o parâmetro group.
{% endhint %}

</details>

### Função para requisições get: requests\_get(url, answer\_type, headers, params, auth, proxy)&#x20;

<details>

<summary>Descrição</summary>

<mark style="color:vermelho;">**!**</mark>**&#x20;url** - é um link onde a requisição é feita

**answer\_type**  – é um parâmetro opcional que define o que deve ser retornado da resposta do servidor: ('status' – retorna o código de status da resposta; 'json' – retorna o corpo json da resposta; 'text' – retorna o texto bruto da resposta; qualquer outro valor (incluindo o padrão) retorna uma resposta no formato: '{"status": status\_code, "data": data}')

**headers** - é um parâmetro opcional para passar os cabeçalhos da requisição,&#x20;

**params** - é *get* parâmetros da requisição (também podem ser incluídos diretamente na URL),

**auth** - é um parâmetro opcional útil para autenticação na API. Se você não quiser usar nenhum parâmetro opcional, mas precisar do próximo, passe 0 aqui.

**proxy** -  é um parâmetro opcional; aceita um valor: "de", que encaminha a requisição por um endereço IP europeu.

</details>

### Funções para requisições POST

<details>

<summary>Descrição</summary>

requests\_post(url, answer\_type, headers, data, json\_data, auth, proxy)

<mark style="color:vermelho;">**!**</mark>**&#x20;url** - é um link onde a requisição é feita,

**answer\_type** - é um parâmetro opcional que define o que deve ser retornado da resposta do servidor: ('status' – retorna o código de status da resposta; 'json' – retorna o corpo json da resposta; 'text' – retorna o texto bruto da resposta; qualquer outro valor (incluindo o padrão) retorna uma resposta no formato: '{"status": status\_code, "data": data}')

**headers** - é um parâmetro opcional para passar os cabeçalhos da requisição

**data** - é um parâmetro opcional; representa o corpo da requisição quando a API não trabalha com json.

&#x20;**json\_data** - é um parâmetro opcional; também representa o corpo da requisição. Você deve usar apenas um desses parâmetros por vez.

{% hint style="warning" %}
Observe: certas configurações de cabeçalhos podem bloquear o envio da requisição com um tipo específico de corpo.
{% endhint %}

**auth** - é um parâmetro opcional útil para autenticação na API. Se você não quiser usar nenhum parâmetro opcional, mas precisar do próximo, passe 0 aqui

**proxy** - é um parâmetro opcional; aceita um valor: "de", que encaminha a requisição por um endereço IP europeu.

</details>

### Funções para requisições PUT

<details>

<summary>Descrição</summary>

requests\_put(url, answer\_type, headers, data, auth, proxy)

<mark style="color:vermelho;">**!**</mark>**&#x20;url** - é um link onde a requisição é feita

**answer\_type** - é um parâmetro opcional que define o que deve ser retornado da resposta do servidor: ('status' – retorna o código de status da resposta; 'json' – retorna o corpo json da resposta; 'text' – retorna o texto bruto da resposta; qualquer outro valor (incluindo o padrão) retorna uma resposta no formato: '{"status": status\_code, "data": data}')

**headers** - é um parâmetro opcional para passar os cabeçalhos da requisição

**data** - é um parâmetro opcional; representa o corpo da requisição quando a API não trabalha com json.

**auth** - é um parâmetro opcional útil para autenticação na API. Se você não quiser usar nenhum parâmetro opcional, mas precisar do próximo, passe 0 aqui

proxy - é um parâmetro opcional; aceita um valor: "de", que encaminha a requisição por um endereço IP europeu.

**data\_is\_json** é um parâmetro opcional.\
Se definido, os dados passados em `data` serão enviados no formato JSON.\
Para ativá-lo, passe `'1'`.

</details>

### Funções para requisições PATCH

requests\_patch(url, answer\_type, headers, data, auth, proxy)

<details>

<summary>Descrição</summary>

<mark style="color:vermelho;">**!**</mark>**&#x20;url** - é um link onde a requisição é feita

**answer\_type** - é um parâmetro opcional que define o que deve ser retornado da resposta do servidor: ('status' – retorna o código de status da resposta; 'json' – retorna o corpo json da resposta; 'text' – retorna o texto bruto da resposta; qualquer outro valor (incluindo o padrão) retorna uma resposta no formato: '{"status": status\_code, "data": data}')

**headers** - é um parâmetro opcional para passar os cabeçalhos da requisição

**data** - é um parâmetro opcional; representa o corpo da requisição quando a API não trabalha com json.

**auth** - é um parâmetro opcional útil para autenticação na API. Se você não quiser usar nenhum parâmetro opcional, mas precisar do próximo, passe 0 aqui

proxy - é um parâmetro opcional; aceita um valor: "de", que encaminha a requisição por um endereço IP europeu.

</details>

### Funções para requisições DELETE

requests\_delete(url, answer\_type, headers, data, json\_data, auth, proxy)

<details>

<summary>Descrição</summary>

<mark style="color:vermelho;">**!**</mark>**&#x20;url** - é um link onde a requisição é feita

**answer\_type** - é um parâmetro opcional que define o que deve ser retornado da resposta do servidor: ('status' – retorna o código de status da resposta; 'json' – retorna o corpo json da resposta; 'text' – retorna o texto bruto da resposta; qualquer outro valor (incluindo o padrão) retorna uma resposta no formato: '{"status": status\_code, "data": data}')

**headers** - é um parâmetro opcional para passar os cabeçalhos da requisição

data -  é um parâmetro opcional; representa o corpo da requisição quando a API não trabalha com json.

json\_data - é opcional e também pode ser usado como corpo da requisição. No entanto, apenas uma opção deve ser usada por vez

auth - é um parâmetro opcional útil para autenticação na API. Se você não quiser usar nenhum parâmetro opcional, mas precisar do próximo, passe 0 aqui

proxy - é um parâmetro opcional; aceita um valor: "de", que encaminha a requisição por um endereço IP europeu.

</details>

### Função para obter o nome do bloco pelo seu ID

<details>

<summary>Descrição</summary>

get\_block\_name\_by\_id(block\_id)

<mark style="color:vermelho;">**!**</mark>**&#x20;block\_id** — identificador do bloco (id)&#x20;

</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/pt/chatbot/functions/api.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.
