---
title: "Fazendo contas dentro do fluxo"
url: https://ajuda.botconversa.com.br/aula/fazendo-contas-no-fluxo
section: "Criando automações"
date_modified: 2026-09-06T16:46:10.197013+00:00
language: pt-BR
---

# Fazendo contas dentro do fluxo

## Resposta rápida

**O BotConversa não tem um bloco de cálculo.** Nenhuma das ações disponíveis soma, subtrai ou multiplica, e o **Definir campo** grava texto, não faz conta. Para calcular algo dentro do fluxo, o caminho é o **bloco de Integração**: ele envia os valores para um endereço seu, que faz a conta e devolve o resultado — e você grava esse resultado num campo. Para **datas**, o Integrador resolve sem código, com a ação **Alterar data e hora**.

**Tempo de leitura:** ~6 min**Para quem é:** Quem monta fluxos | Desenvolvedor

## Por que não existe um bloco de conta?

Vale saber onde a busca termina, para você não perder tempo procurando a opção escondida:

-   A lista de **Ações** tem 17 opções — etiqueta, Kanban, sequência, atendimento, campo, automação. **Nenhuma é aritmética.**
-   **Definir/Atualizar o valor de um campo** aceita texto fixo ou variáveis `{}`, até 1000 caracteres. Escrever `{valor} * 2` ali grava **o texto literal** "10 \* 2", não o número 20.
-   O bloco **Condição** compara texto — É, NÃO É, Contém, Não Contém, Começa Com, Possui algum valor. **Não há "maior que" nem "menor que".**

Essa última é a que mais pega. Como não há comparação numérica, um fluxo do tipo "se o valor da compra for maior que R$ 200" **não se monta com Condição**. Ou o cálculo e a comparação acontecem fora, ou você desenha o fluxo com faixas escolhidas por botão pelo próprio cliente.

## Como faço a conta pelo bloco de Integração?

A ideia: o fluxo manda os números para um endereço seu, esse endereço faz a conta e devolve o resultado, e você grava o resultado num campo para usar nas mensagens seguintes.

1.  Garanta que os números estão em **campos do contato** — normalmente capturados por uma pergunta antes.
2.  No construtor, adicione **\+ → Integração → Adicionar Integração de Webhook**.
3.  Escolha o método **POST** e informe a **URL** do seu endpoint. Só **HTTPS** é aceito.
4.  Na aba **Corpo**, monte o JSON usando as variáveis `{}` dos campos.
5.  Clique em **Testar Requisição** e confira o retorno na aba **Resposta**.
6.  Na aba **Mapeamento de resposta**, aponte o campo do JSON que traz o resultado para um **campo do contato**.
7.  Ligue a saída **Em resposta com sucesso** ao próximo bloco e use a variável do campo na mensagem.

Um corpo típico, com os valores vindo dos campos:

```
{
  "quantidade": "{quantidade}",
  "preco_unitario": "{preco_unitario}"
}
```

E a resposta que o seu endpoint devolve:

```
{ "total": 249.9 }
```

No **Mapeamento de resposta**, você liga `total` ao campo `{total_pedido}`. Dali em diante, `{total_pedido}` funciona como qualquer outra variável do fluxo.

**Três limites do bloco de Integração que mudam o desenho do fluxo:** ele existe **apenas no plano PRO**; o **timeout é de 10 segundos**; e, se estourar, o fluxo segue pela **saída de baixo sem os dados** — o cliente recebe a mensagem com a variável vazia e **nada acusa erro**. Sempre mande a saída de baixo para uma mensagem de fallback, em vez de deixá-la seguir para o caminho normal.

## E para contas com datas?

Esse caso tem solução sem código. O [Integrador](/aula/conectando-com-outras-ferramentas-integrador) tem a ação utilitária **Alterar data e hora**, que **soma ou subtrai tempo** de um valor, além de ajustar fuso e formato.

É o que resolve "lembrete 1 dia antes da consulta" ou "follow-up 48 horas depois da compra" — sem endpoint nenhum.

## Dá para evitar a conta?

Com frequência, sim — e costuma sair mais barato que manter um endpoint no ar. Duas saídas que funcionam bem:

-   **Peça a faixa, não o número.** Em vez de perguntar o valor e comparar, ofereça botões: "até R$ 200", "de R$ 200 a R$ 500", "acima de R$ 500". O cliente classifica, e o fluxo ramifica por etiqueta — sem cálculo e sem comparação numérica.
-   **Deixe a conta com quem já a faz.** Se o número vem do seu sistema de vendas ou do checkout, traga o resultado já calculado pelo [webhook de entrada](/aula/configurando-webhooks), em vez de recalculá-lo aqui.

## Dicas

-   **Teste o endpoint fora antes.** Se ele já falha no seu terminal, não vai funcionar no fluxo — e depurar pelo construtor é bem mais lento.
-   **Meça o tempo de resposta.** Perto dos 10 segundos, o comportamento fica intermitente: às vezes chega, às vezes não. Endpoint de cálculo deve responder em menos de 1 segundo.
-   **Devolva número, não texto formatado.** Mande `249.9` e formate na mensagem do fluxo; devolver "R$ 249,90" trava qualquer uso posterior do valor.
-   **Use Ver todos os logs** no bloco para ver o que foi enviado e o que voltou em cada chamada real.

## Perguntas frequentes

Posso escrever `{a} + {b}` no campo de valor?

Pode escrever, mas o campo grava o texto literal. As variáveis são substituídas pelos valores e o resultado vira uma frase, não uma soma.

Existe algum bloco que compare números?

Não com operadores numéricos. A Condição compara texto — É, Contém, Começa Com e afins. Comparação de maior/menor precisa acontecer fora do fluxo.

Preciso mesmo do plano PRO?

Para o bloco de Integração, sim. Sem ele, restam a rota de datas pelo Integrador e o desenho por faixas com botões.

Onde hospedo o endpoint de cálculo?

Em qualquer serviço que responda HTTPS. Como a lógica costuma ser pequena, uma função serverless dá conta e sai praticamente de graça.

Consigo contar quantas vezes alguém passou por um ponto?

Não por incremento automático. O caminho é o mesmo: o endpoint recebe o valor atual, devolve o valor somado, e o mapeamento de resposta grava de volta no campo.
