> For the complete documentation index, see [llms.txt](https://help.cosmobots.io/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.cosmobots.io/help/bot-builder/dados/objetos.md).

# Objetos

Objetos representam um conjunto, ou tipo, de informação. Por exemplo, caso você queira que o bot acesse uma lista de produtos, primeiro precisamos criar um objeto chamado **Produto** e depois criar campos dentro deste objeto que definam as propriedades deste produto, como exemplo: Nome, Cor, Tamanho, etc.

Para os leitores desenvolvedores, objetos são similares a uma tabela do banco de dados.

## **Objetos Padrões**

Existem hoje 2 objetos padrões no Cosmo:

* **Usuário:** referente a propriedades do usuário. Seguem os campos padrões:
* &#x20;\- Primeiro Nome\
  &#x20; \- Sobrenome\
  &#x20; \- Email\
  &#x20; \- Telefone\
  &#x20; \- Idade\
  &#x20; \- Idioma\
  &#x20; \- Sexo\ <br>
* **Conversa:** referente as mensagens trocadas com o usuário durante a conversa. Seguem os campos padrões:
* &#x20;\- Usuário (relacionado ao objeto do Usuário)\
  &#x20; \- Canal (Website, Facebook, etc...)\
  &#x20; \- Duração (Duração do contexto da conversa atual)\
  &#x20; \- Primeira Mensagem (Horário)\
  &#x20; \- Última Mensagem (Horário)\
  &#x20; \- Mensagens (Lista de todas as mensagens do contexto da conversa atual)\
  &#x20;     \- Mensagem (Mensagem enviada pelo usuário)\
  &#x20;     \- Percepção (Define as características da mensagem, incluindo o NLP)\
  &#x20;     \- Etapas (As etapas percorridas pela mensagem atual)\
  &#x20;     \- Horário (referente ao envio da mensagem)\ <br>

Dos 2 objetos acima, apenas em **Usuário** é possível criar campos personalizados.

## **Criando Objeto Personalizado**

E é claro que você pode criar novos objetos, com campos personalizados, relacionados ou não entre si.

Para criar basta ir na aba **Dados** e clicar em **Novo Objeto**.

![](/files/-LTwUYcZwCrWLPWbgf3i)

Aqui, por exemplo, estamos criando o Objeto **Pedido** e definindo que o Objeto Controlador seja **Usuário**, ou seja, queremos que 1 usuário possa ter 1 ou mais pedidos relacionados. Portanto para existir 1 pedido precisa existir 1 usuário.

No Cosmo, por enquanto, você pode ter um objeto com no máximo 2 níveis de hierarquia se o objeto controlador for **Usuário**, e no máximo 1 nível de hierarquia caso o objeto controlador seja um objeto personalizado.

O nível de hierarquia aqui definimos como o relacionamento entre um objeto e o seu objeto controlador. Ou seja, um relacionamento de objeto pai para objeto filho, onde um registro pai pode estar relacionado a 1 ou mais registros filhos. Portanto considerando 2 níveis teríamos: Objeto Avô > Objeto Pai > Objeto Filho.

CUIDADO: com este modelo de objeto controlador, caso você exclua algum registro do objeto controlador, por exemplo o usuário, todos os registros controlados por este registro de usuário também serão excluídos.

### **Editando Objeto Personalizado**

![](/files/-LTwUoF_LFMxG0Idt6uW)

O campo **Nome** se refere a forma como esse campo pode ser usado como referência no fluxo da conversa.

O **Objeto Controlador** não pode ser alterado depois de criado o objeto.

O **Campo de Referência** significa qual o campo será usado quando o pedido aparecer na lista de pesquisas ou relacionado em outros objetos. No exemplo acima, o registro do pedido será representado pelo campo Número do Pedido.

{% hint style="danger" %}
Lembrando que caso você precise baixar os seus objetos personalizados, é necessário seguir um código [JavaScript](/help/bot-builder/fluxo-da-conversa/javascript.md), que você pode encontrar [aqui.](/help/bot-builder/fluxo-da-conversa/javascript.md)
{% endhint %}
