# Criando meu primeiro BOT

## Você sabe como criar um bot?

Para ficar mais fácil, podemos separar a criação do Bot em 3 partes, sendo elas:

1. Definir uma exigência do bot
2. Criar um fluxograma
3. Inserir o bot na plataforma

{% hint style="info" %}
**Dica # 1**  : Entender qual é o objetivo do bot (  **Definir um uso do bot**  ) e como ativar (  **Criar um fluxograma**  ) são essenciais antes de realmente colocar a mão na massa! (  **Inserir o bot na plataforma**  )
{% endhint %}

### 1. Definir uma necessidade do Bot

{% hint style="info" %}
**Dica # 2**  : O bot deve ter uma necessidade principal! Ser informativo, transacional, coletar dados entre outros ... Você pode criar novos fluxos dentro do seu bot e criar cada assunto ou função separadamente, desta forma você garante que o escopo do bot seja menor e fique mais simples para a manutenção !
{% endhint %}

### 2. Criar um fluxograma

Esse será o escopo do nosso bot:

![](/files/hQq29M0BAH6c39kfFF3k)

{% hint style="info" %}
**Dica # 3**  : Existem muitas ferramentas para criar fluxos de maneira rápida, entre elas:   [Driagram.io](http://diagram.io/)  ,  [Whimscal](https://whimsical.com/)&#x20;
{% endhint %}

### 3. Inserir bot na plataforma

{% hint style="info" %}
**Dica # 4**  : Para iniciar esta etapa, você precisa acessar a nossa plataforma, você pode  [acessar](https://app.cosmobots.io/user/login) (caso já tenha um usuário) ou criar um [novo cadastro](https://app.cosmobots.io/user/register). <br>
{% endhint %}

Vamos colocar a mão na massa dentro da plataforma!

Siga este passo-a-passo:

1\. Após acessar a plataforma, clique no botão de novo bot. (Conforme imagem abaixo)

![](/files/HYhrL2DQ3zSVRWaTnwB0)

2\. Nomeie seu Bot, por exemplo: Analista Cosmonauta

![](/files/WVpm4S3wVMJyNwBxCVg4)

{% hint style="info" %}
**Dica # 5** : Você também pode **definir** seu bot, adicionar uma **imagem** para identificá-lo e também pode **clonar** outro bot que já tenha feito!
{% endhint %}

**Fluxos:**

Após seguir o 2º passo, o Bot irá abrir uma tela que exibe os *Fluxos* que ele possui. Por padrão, uma ferramenta sempre virá com 3 Fluxos já criados, sendo eles:

\- Boas vindas.

\- Exceção.

\- Excluir.&#x20;

\* A partir daqui o nosso Bot será separado por fluxos

Fluxo: Boas vindas

&#x20;  3\. Altere a mensagem principal do Fluxo Boas Vindas para uma mensagem que lhe agrade, exemplo:

![](/files/ZWxcxdVc9NF7EZYadniM)

{% hint style="info" %}
**Dica #6** : Dentro das etapas de mensagem você pode citar campos criados na plataforma, escrevendo um simples "@" irá puxar todos os campos, como no caso do exemplo a cima está citando o Nome do cliente.
{% endhint %}

{% hint style="info" %}
**Dica # 7** : Dentro da Mensagem você também pode criar botões de opções para o usuário, escolher entre salvar ou não a resposta obtida, dentre outras opções.
{% endhint %}

Fluxo : Filtro

&#x20;  4\. Crie outro  Fluxo com o nome Menu;

&#x20;  5\. Insira um filtro com uma função de identificar se o usuário está ou não cadastrado na ferramenta:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000624426/original/Ub3zQdt8CeVHhZaI8tH1IwLFcDfCAGh23g.gif?1585337842)

{% hint style="info" %}
**Dica # 8** : Os  [Filtros](https://help.cosmobots.io/help/bot-builder/fluxo-da-conversa/filtro)  disponibilizam uma opção de inserir condições que permitem que sejam feitos direcionamentos, se preferir, também é possível criar Filtros com  [Funções Complexas](https://cosmobotshelp.freshdesk.com/a/solutions/articles/61000237966) .
{% endhint %}

&#x20;Fluxo: Usuário cadastrado

6\. Crie um novo Fluxo com o nome "usuário cadastrado";

7\. Crie uma etapa de Mensagem e nela informe ao usuário que ele já possui cadastro:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000624469/original/wmo7KTX5qpZFpJ8lVThSw-V2OkdzSABu4Q.gif?1585338048)

{% hint style="info" %}
**Dica # 9** : Quando precisar salvar uma resposta de um cliente como por exemplo em uma pergunta, caso você salve a resposta em um campo de contato, o mesmo irá para a base de dados e ficará salvo na plataforma, caso você salve como um contexto irá ficar salvo apenas durante a sessão atual de conversação entre o Bot e o Cliente, você pode utilizar estes campos como valores para realizar filtros, assim você pode diversificar o seu fluxograma para cada tipo de cliente.
{% endhint %}

Fluxo: Menu de opções&#x20;

&#x20;  8\. Crie um fluxo chamado "Menu de opções"

&#x20;  9\. Agora crie uma mensagem com as opções de criar um novo cadastro ou sabre sobre os produtos oferecidos, salve como contexto e coloque o nome do contexto de "opcao\_do\_menu":

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000624501/original/lfSAqWRPwa4oQ_E-y5QOftFUrtVNMbgQ0w.gif?1585338339)

&#x20;  10\. Crie uma etapa em JavaScript para validar a resposta do usuário é um número e uma das opções disponibilizadas:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000624600/original/vR-YKEphrtjZkT1yj2LZGcuWLPdExFDmLQ.gif?1585339140)

{% hint style="info" %}
**Dica # 10** : Caso queira criar um bot com características parecidas, código segue usado nessa etapa  [JavaScript](https://help.cosmobots.io/help/bot-builder/fluxo-da-conversa/javascript) :
{% endhint %}

```
const resposta_do_usuario = Number(context.opcao_do_menu);
context.resposta_valida = 0;
console.log(resposta_do_usuario);
console.log(Number.isNaN(resposta_do_usuario));
if (!(Number.isNaN(resposta_do_usuario))) {
   context.resposta_valida = (resposta_do_usuario === 2 || resposta_do_usuario === 1) ? 1 : 0;
}
```

JavaScript

&#x20;  11\. Crie um Filtro que irá validar uma etapa JavaScript

&#x20;  12\. Em Campo insira o Contexto, em Nome insira resposta\_valida, em Condição insira Igual e em Valor insira 1

&#x20;  13\. Clique em "Ou" insira os mesmos dados da etapa 12, porém em Valor insira 2:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000622489/original/QYMs9imQ-gjDKtAXyRHqB2IrOu3jOgbpsQ.gif?1585328823)

&#x20;  14\. Agora do lado não do Filtro, crie uma Mensagem com o texto resposta invalida:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000622527/original/1S8ff9mVm8_csAvnL_SaiMGPAK6QTHpgYA.gif?1585329114)

&#x20;  15\. Após a Mensagem para inserir uma Etapa que direcionará novamente para o Menu de Opções:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000622532/original/wkWxN_AVWMYmqWSTRYbXOy-gj7M7xNbAIw.gif?1585329149)

{% hint style="info" %}
**Dica # 11** : Caso queira criar um bot com características parecidas, código segue usado nessa etapa  [JavaScript](https://help.cosmobots.io/help/bot-builder/fluxo-da-conversa/javascript) :
{% endhint %}

&#x20;  16\. Crie outro filtro;

&#x20;  17\. Em campo insira Contexto, em Nome insira opcao\_do\_menu, em Condição insira Igual e em valor insira 1:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000622549/original/xQ60VF9IKYeFyq7kRjLzBPzVTZ2ggDY2qg.gif?1585329306)

Fluxo: Produtos oferecidos&#x20;

&#x20;  18\. Crie um Fluxo com o Nome Produtos oferecidos;

&#x20;  19\. Insira a Mensagem que informa quais são os produtos oferecidos:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000622598/original/-P3WV4j4dEeql_Bx99twhaUVaPRJWSiU3w.gif?1585329604)

Fluxo: Cadastro

&#x20;  20\. Crie um fluxo com o nome "Cadastro"

&#x20;  21\. Crie uma mensagem solicitando o nome do usuário;

&#x20;  22\. Uma solicitando o e-mail;

&#x20;  23\. Uma perguntando se os dados informados estão corretos;

&#x20;  24\. E uma de confirmação. Essa deve ser salva como Contexto, e o Nome do contexto salvo como opcao\_do\_menu2:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000622722/original/BDORQv23bhRfhXygXcgPsbbYul2rpbvcmA.gif?1585330233)

&#x20;  25\. Crie uma etapa em JavaScript para validar a resposta do usuário é um número e uma das opções disponibilizadas:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000622937/original/vUX6dJxjNI70iUkUiXU93uQWoMT2QxjqCw.gif?1585331176)

> **Dica # 10** : Aqui vai outro exemplo de código JavaScript que pode ser usado para filtrar como informações oferecidas pelo usuário:

```
let testando_validade_resposta= Number(context.opcao_do_menu2)
context.validade_resposta = 0;
if (!(Number.isNaN(context.testando_validade_resposta))) {
   context.validade_resposta= (testando_validade_resposta === 1|| testando_validade_resposta ===2)? 1 : 0;
   
} 
```

JavaScript

&#x20;  26\. Crie um Filtro que irá validar uma etapa JavaScript;

&#x20;  27\. Em campo insira o contexto, em nome insira a validação\_resposta, em condição insira igual e em valor insira 1;

&#x20;  28\. Agora repita os passos 13, 14 e 15:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000587984/original/1OGbSJHT59HQKIZc9elI6UUs_UCXX4Vv6Q.gif?1585156437)

&#x20;  29\. Crie outro Filtro;

&#x20;  30\. Em Campo insira Contexto, em Nome insira opcao\_do\_menu2, em Condição insira Igual e em valor insira 1:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000623161/original/vGfpjkBZaBAL202W7M9I3Sl7ekLUd4nyLg.gif?1585332195)

&#x20;  31\. Crie uma mensagem de finalização:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000623162/original/mleuv9mEZGQUlduc0Tc-enPqL-98Ezw9TA.gif?1585332220)

32\. Agora conecte todos os fluxos usando como Etapas:

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000624016/original/vix3RUeVG8_oAF30WFYb1upy6BhTahLcnA.gif?1585335874)

Vamos testar o bot?

![](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/61000625141/original/RMBwpv-AZTbZJoGjqjnZN_fkDTs6sbBlbQ.gif?1585342397)

Informações adicionais:

Nesse exemplo, use as etapas no JavaScript para demonstrar as características da ferramenta, mas o uso do código na criação do bot não é obrigatório.


---

# 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://help.cosmobots.io/help/bot-builder/criar-o-bot/criando-meu-primeiro-cosmobots.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.
