# Negócios no sistema CRM

Os negócios no CRM são exibidos como cards com informações sobre o cliente, nome do negócio, descrição e valor.

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

Você pode adicionar outros campos, se necessário (veja a fig. 8-12).

## botão "Criar negócio"

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

O **Criar um negócio** a janela permite configurar e salvar rapidamente um novo negócio.

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

Preencha o formulário para criar um cliente. Se o cliente existir, o MaviBot solicitará que você o selecione do banco de dados.

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

1. Se o cliente não for encontrado, conecte um bot do WhatsApp ou de e-mail ao projeto.
2. Envie uma mensagem ao cliente pelo canal conectado — isso criará automaticamente o perfil dele.
3. Selecione a etapa do funil em que o negócio deve ser colocado.

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

As variáveis do negócio também podem ser adicionadas no formulário modal:

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

Em seguida, clique em **"Criar"** para adicionar o negócio ao sistema.

## O botão "Adicionar rapidamente"

Este botão também pode ajudar a adicionar manualmente um novo cliente ao CRM.

<div data-with-frame="true"><figure><img src="/files/7abdf8335dc961cd41fdb8a44742437c1b9ecbeb" alt="" width="308"><figcaption></figcaption></figure></div>

Clique no botão para abrir uma janela onde você pode inserir os dados do cliente.

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

Fig. 26 Janela de criação rápida de negócio (Observação: todos os dados são fictícios; qualquer semelhança é mera coincidência.)

Assim, o negócio será criado na **"Interessado"** etapa.

{% hint style="success" %}
Pronto!&#x20;

Agora você sabe como criar negócios.
{% endhint %}

## Como criar um negócio pelo chatbot

Exemplo de fluxo do chatbot para criar um negócio via função

Visão geral do processo:

1. Crie um bloco Iniciar

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

2. Crie dois blocos de botão.

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

3. Vá para as configurações da conexão, ative a opção "Usuário insere dados" e especifique o nome do serviço que o usuário irá inserir.

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

4. Depois, adicione a pergunta "Qual é o seu nome?" em um bloco branco. Crie um novo bloco abaixo dele e ative **"Usuário insere dados"** em suas configurações de seta.

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

A configuração "Usuário insere dados" com a variável `name` está ativada em toda conexão que leva ao bloco "Insira seu número de telefone".

5. Agora, crie dois blocos — "Chat" e "Fallback" — a partir do bloco "Insira seu número de telefone".

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

1. Selecione o **"RegEx math"** tipo nas configurações da conexão.
2. Ative a configuração "Usuário insere dados".
3. Insira o nome da variável: `phone`.

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

Agora, no bloco Fallback, escreva a mensagem: **"Isso está incorreto! Tente novamente."**

Essa configuração funcionará da seguinte forma: se o seu cliente inserir um número de telefone incorreto, ele receberá a mensagem do bloco Fallback. A mensagem de Fallback continuará sendo enviada até que o cliente insira um número de telefone correto.

6. Depois, pergunte ao cliente sobre o orçamento dele e crie imediatamente um novo bloco abaixo dele.

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

7. Ative a alternância **"Usuário insere dados"** configuração na conexão e insira o nome da variável: `budget`.

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

Ative a **"Usuário insere dados"** caixa de seleção na conexão e especifique a variável de telefone client\_name.

8. Você pode alterar o tipo do último bloco para "Leads" ou usar a `create_order` função.

   Aqui está a opção com o bloco vermelho "Leads".

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

Exemplo.

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

A função create\_order(name, budget, description, client\_name, phone, email, state\_id) é usada para criar um negócio do chatbot no CRM.

<details>

<summary>Parâmetros</summary>

O negócio ativo atual no funil, junto com as variáveis, estará disponível apenas nas funções de gerenciamento de negócios e CRM.

<table><thead><tr><th width="303.3046875">Parâmetros</th><th>Significado</th></tr></thead><tbody><tr><td><strong>name</strong></td><td><p>Nome do negócio.</p><p>Parâmetro opcional; se não for passado, será aplicado ao negócio ativo atual do cliente</p></td></tr><tr><td><strong>budget</strong></td><td>Valor do negócio (número). Parâmetro opcional; se não for passado, será aplicado ao negócio ativo atual do cliente. Se você passar um valor não numérico no <strong>budget</strong> parâmetro, a função retornará a resposta: <strong>'budget must be a number'</strong></td></tr><tr><td><strong>description</strong> </td><td>Descrição do negócio. Parâmetro opcional;</td></tr><tr><td><strong>client_name</strong></td><td>(parâmetro opcional) string, nome para um novo cliente</td></tr><tr><td><strong>phone</strong></td><td>(parâmetro opcional) string, número de telefone para um novo cliente</td></tr><tr><td><strong>email</strong></td><td>(parâmetro opcional) string, e-mail para um novo cliente</td></tr><tr><td><strong>state_id</strong> </td><td>o número permite especificar o estado em que o negócio ficará após a criação (um parâmetro opcional)</td></tr></tbody></table>

{% hint style="info" %}
Para criar um cliente, a variável de telefone ou e-mail deve ser especificada. Se o telefone for especificado e não houver cliente com esse telefone no projeto, um novo será criado.

Se a variável de e-mail for especificada sem a variável de telefone, e não houver cliente no projeto com esse endereço, um novo será criado.
{% endhint %}

</details>

No fluxo, coletamos os seguintes dados em etapas:

* Nome - nome do negócio (no exemplo, I need a website e I need a landing);
* Budget — custo do negócio, que foi informado nos blocos depois que o cliente selecionou o tipo de site;
* Phone — número de telefone do cliente
* Client\_name — nome do cliente

Se você precisar criar um negócio em um estado específico da transação, passe o parâmetro state\_id.

{% hint style="info" %}
Importante!&#x20;

Se você não passar nenhum parâmetro, então passe none em vez do parâmetro (como na Fig. 36, onde none é especificado em vez do parâmetro de e-mail).
{% endhint %}

Onde encontrar o id do estado (parâmetro state\_id)

<div data-with-frame="true"><figure><img src="/files/3326715f6297c97d9f0d250d15901ed01de033e1" alt="" width="316"><figcaption></figcaption></figure></div>

ID da etapa:

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

## Outras configurações

A barra de busca é uma pesquisa de negócio pelo nome do cliente.

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

Filtro: permite filtrar negócios com vários parâmetros. Você também pode salvar o filtro criado se o usar com frequência.

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

## Como acionar um bot quando um negócio se move para uma nova etapa do funil

Para acionar um bot quando a etapa de um negócio mudar no funil do CRM:

1. Vá para as configurações do projeto.
2. Abra as **"Callbacks"** seção.

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

Clique em **"Configurações de callback de transição de etapa do CRM"**:

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

Depois disso, você verá uma janela modal com todos os funis do projeto. Você pode escolher o funil inteiro ou uma etapa específica.

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

Depois salve as configurações.&#x20;

Agora, quando o estado do negócio mudar — automaticamente ou manualmente — uma notificação é gerada de qualquer lugar do site, que pode ser usada para acionar uma resposta do bot.

{% hint style="info" %}
A notificação se parece com isto: **crm\_state\_changed Nome do funil: Nome da etapa**
{% endhint %}

A variável callback\_query\_id também aparecerá no card do cliente, armazenando o identificador do negócio para o qual a notificação foi enviada.

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

Para acionar seu bot em resposta a esse evento, insira o texto do callback no campo de gatilho de uma conexão ou de um bloco baseado em gatilho (como um bloco Iniciar ou Trigger).

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

{% hint style="info" %}
Se você quiser manter o cliente no fluxo principal do chatbot, use o bloco "Chat". Esse bloco não pode ser transicionado, então, após reagir ao callback, o cliente permanece no funil principal enquanto ainda recebe a mensagem.

Se você precisar continuar o funil após uma mudança de estado, use o bloco "Start". O cliente será redirecionado para o bloco "Start" em resposta ao callback, permitindo que o funil prossiga a partir dali.
{% endhint %}

### Como mover um negócio

Para mover um negócio para qualquer etapa do funil, basta clicar e arrastá-lo com o botão esquerdo do mouse até a etapa desejada.

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

Quando um negócio é movido para **"Failed"** ou **"Archived,"** uma janela modal aparece solicitando que você especifique o motivo. Essa ação cria uma variável de negócio correspondente: `failed_reason` ou `archived_reason`.

O motivo fornecido é salvo na respectiva variável. Se o negócio for restaurado posteriormente, a variável `restored_from_failed` ou `restored_from_archived` é adicionada com o valor `"true"`.

## Como impedir a movimentação de um negócio para a etapa especificada

Se você precisar restringir as etapas para as quais os negócios podem ser movidos manualmente, configure a restrição nas configurações do estado.

Abra o funil e vá para as configurações da etapa.

<div data-with-frame="true"><figure><img src="/files/3326715f6297c97d9f0d250d15901ed01de033e1" alt="" width="316"><figcaption></figcaption></figure></div>

Use as configurações da etapa para restringir a movimentação de negócios para etapas específicas. Selecione as etapas desejadas na lista de verificação (é possível selecionar várias) e salve as alterações.

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

Após salvar, as etapas restritas serão destacadas visualmente no MaviBot CRM. Elas aparecerão mais escuras, e mover negócios para elas será desativado. Se as restrições de movimentação de etapa forem aplicadas, essas etapas também ficarão ocultas na interface de chat do cliente.

## Reação à exclusão de negócio no CRM

Quando um negócio é excluído no CRM, o bot recebe um callback chamado **`crm_lead_removed`** para notificar o cliente.

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

## Como alternar negócios

Quando ações são realizadas em negócios diretamente na página do CRM, os seguintes callbacks são acionados:

* `change_responsible_order` — o responsável atribuído ao negócio foi alterado.
* `crm_state_changed` — o negócio foi movido para uma etapa diferente do funil.
* `crm_system_state_changed` — o negócio foi movido para **Lost**, **Won**, ou **Archived**.
* `crm_lead_removed` — o negócio foi excluído.

Além disso, as variáveis do cliente incluirão `callback_order_id`, que contém o ID do negócio específico afetado pela ação no CRM.

Ao processar um desses callbacks, o negócio correspondente torna-se temporariamente ativo dentro do bloco de processamento, permitindo que você acesse suas variáveis diretamente.

Quando o fluxo avança para o próximo bloco, a lógica padrão do MaviBot é retomada — qualquer acesso subsequente às variáveis do negócio retornará os valores do negócio ativo mais recente do cliente.

### Como alternar um negócio para um estágio ativo no bot

O `switch_order(order_id)` a função permite tornar um negócio específico ativo para acessar suas variáveis.

* `order_id` — um parâmetro opcional para o ID do negócio específico. Se omitido, o negócio mais recente do cliente torna-se ativo.
* Para ativar um negócio específico, passe o ID dele para a `switch_order(order_id)` função.
* Se você chamar essa função dentro de um bloco de calculadora e fornecer um ID de negócio de destino, poderá acessar as variáveis desse negócio em todos os blocos seguintes.

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

Se o `switch_order` função for chamada com o ID de um negócio excluído ou inexistente, nenhuma troca ocorrerá. Nesse caso, a função retornará o ID do negócio atualmente ativo para o cliente (ou `None` se o cliente não tiver um negócio ativo).

Você pode, portanto, verificar se a troca foi bem-sucedida comparando o `order_id` passado para a função com o valor que ela retorna:

`switch_result = switch_order(order_id)`

`result = if(switch_result == order_id, value_if_true, value_if_false)`

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

Se nenhum argumento for passado para a `switch_order()` função, ela ativará o negócio mais recente do cliente. Isso permite reverter ou redefinir o negócio ativo — por exemplo, após realizar operações com outro negócio, ou quando você não precisar manter um negócio temporariamente ativado por um callback do CRM.


---

# 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/crm/setting/deals.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.
