# 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**.

![](https://1728608858-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSnqDgLbXBccdKMOdEJ%2F-LTwUXNyWdseK-KZJ7hu%2F-LTwUYcZwCrWLPWbgf3i%2Fimage.png?alt=media\&token=35c9c210-e45d-490e-8f55-97e46191a2cd)

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**

![](https://1728608858-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSnqDgLbXBccdKMOdEJ%2F-LTwUXNyWdseK-KZJ7hu%2F-LTwUoF_LFMxG0Idt6uW%2Fimage.png?alt=media\&token=ad2a7736-2525-4f3a-b9a4-e4bd7e0d3f82)

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](https://help.cosmobots.io/help/bot-builder/fluxo-da-conversa/javascript), que você pode encontrar [aqui.](https://help.cosmobots.io/help/bot-builder/fluxo-da-conversa/javascript)
{% endhint %}


---

# 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/dados/objetos.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.
