Source: https://rox.chat/kb/pt/dev/basic-objects/message-types.html

> Tanto as mensagens de agentes quanto as mensagens de visitantes e as mensagens de serviço dentro do serviço Rox.Chat são categorizadas em vários tipos e subtipos.

# Tipos e Subtipos de Mensagens

Tanto as mensagens de agentes quanto as mensagens de visitantes e as mensagens de serviço dentro do serviço **Rox.Chat** são categorizadas em vários tipos e subtipos.

## Tipos de Mensagem

Cada mensagem no **Rox.Chat** possui um tipo, denominado `Tipo`. Valores numéricos são utilizados no banco de dados. Valores de string são utilizados na API.

| Kind                  | Valor Numérico | Valor String          | Descrição                                                                                                                                                  |
| --------------------- | -------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `VISITOR`             | `1`            | `visitor`             | Mensagem de um visitante.                                                                                                                                  |
| `OPERATOR`            | `2`            | `operator`            | Mensagem de um agente.                                                                                                                                     |
| `FOR_OPERATOR`        | `3`            | `for_operator`        | Mensagem de serviço, visível apenas para agentes.                                                                                                          |
| `INFO`                | `4`            | `info`                | Mensagem de serviço.                                                                                                                                       |
| `OPERATOR_BUSY`       | `9`            | `operator_busy`       | Mensagem indicando que o operador está ocupado.                                                                                                            |
| `CONT_REQ`            | `10`           | `cont_req`            | Solicitação de contato.                                                                                                                                    |
| `CONTACTS`            | `11`           | `contacts`            | Contatos. A mensagem que vem após o preenchimento dos campos que apareceram no evento `request_contacts` desencadeado por uma mensagem do tipo `cont_req`. |
| `FILE_OPERATOR`       | `13`           | `file_operator`       | Arquivo de um agente.                                                                                                                                      |
| `FILE_VISITOR`        | `14`           | `file_visitor`        | Arquivo de um visitante.                                                                                                                                   |
| `FORM_RESPONSE`       | `15`           | `form_response`       | Mensagem com dados de formulário enviados ao integrar com o Zendesk. A mensagem contém um JSON no campo `data` com os dados do formulário preenchido.      |
| `OPERATOR_NOTE`       | `16`           | `operator_note`       | Nota do agente (ação `operator_note`).                                                                                                                     |
| `KEYBOARD`            | `17`           | `keyboard`            | Uma mensagem do lado do **Rox.Chat** com um conjunto de botões que o visitante pode clicar.                                                                |
| `KEYBOARD_RESPONSE`   | `18`           | `keyboard_response`   | Uma mensagem do lado do visitante com o botão selecionado em resposta ao `keyboard`.                                                                       |
| `APPLE_CHAT`          | `19`           | `apple_chat`          | Mensagens do lado do **Rox.Chat** para o visitante no **Apple Messages for Business**.                                                                     |
| `APPLE_CHAT_RESPONSE` | `20`           | `apple_chat_response` | Resposta de um visitante para mensagens do **Rox.Chat** no **Apple Messages for Business**.                                                                |

## Subtipos de Mensagem

As mensagens podem ter um atributo opcional chamado `subKind`, mas nem todas as mensagens possuem um subtipo. Não possui um valor numérico. Armazenado no campo de dados JSON da mensagem.

| Subtipo                 | Kind           | Descrição                                                                                                                                                                                                                                                                                   |
| ----------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fields_by_operator`    | `FOR_OPERATOR` | Uma mensagem indicando que o agente alterou as informações de contato do visitante.<br><br>*O agente alterou as informações de contato do visitante*                                                                                                                                        |
| `new-visited-page`      | `FOR_OPERATOR` | Uma mensagem informando que o visitante navegou para outra página.<br><br>*O visitante clicou para a página...*                                                                                                                                                                             |
| `visitor-reopened-chat` | `FOR_OPERATOR` | Mensagem quando um visitante reabre o chat.<br><br>*O visitante reabriu a caixa de diálogo*                                                                                                                                                                                                 |
| `visitor-closed-chat`   | `FOR_OPERATOR` | Uma mensagem quando um visitante fecha um chat.<br><br>*O visitante fechou a caixa de diálogo*                                                                                                                                                                                              |
| `operator-joined`       | `INFO`         | Mensagens sobre o recebimento de um chat por um agente e a transferência para outro agente.<br><br>*O agente {nome_do_agente} entrou na conversa*<br><br>*O diálogo foi repassado para o agente {nome_do_agente}*<br><br>*O agente {nome_do_agente} pegou a solicitação para processamento* |
| `chat-info-message`     | `FOR_OPERATOR` | Uma mensagem com informações sobre de onde o visitante veio.                                                                                                                                                                                                                                |
| `hello-message`         | `INFO`         | Uma mensagem de boas-vindas no início de um diálogo.                                                                                                                                                                                                                                        |
| `operator_comment`      | `FOR_OPERATOR` | Uma mensagem sobre um agente adicionando um comentário.<br><br>*O agente {nome_do_agente} adicionou um comentário: {comentário}*                                                                                                                                                            |
| `closure-warning`       | `INFO`         | Uma mensagem para fechar o chat em breve com mais inatividade.<br><br>*Em caso de mais inatividade, a sala de bate-papo será fechada*                                                                                                                                                       |
| `message_sent`          | `FOR_OPERATOR` | Uma mensagem sobre o envio de mensagens não lidas para a caixa de correio do visitante.<br><br>*Mensagens não lidas foram enviadas para o e-mail do visitante {e-mail}.*                                                                                                                    |
| `visitor-online-status` | `FOR_OPERATOR` | Mensagens de status do visitante.<br><br>*O visitante foi colocado em um status offline*<br><br>*O visitante foi colocado em um status online*                                                                                                                                              |
