Elementos de Conteúdo
O Botpress inclui seu próprio Sistema de Gerenciamento de Conteúdo (ou CMS) para gerenciar o conteúdo de um chatbot. Tudo o que seu chatbot diz vem do CMS.
Antes de começarmos a discutir como é possível criar e editar o conteúdo do seu chatbot, é necessário entender os diferentes conceitos do CMS no Botpress.
Tipos de Conteúdo
Um tipo de conteúdo define a estrutura do que o chatbot envia. Ele também determina como seu chatbot deve renderizar o conteúdo. Pode ser tão simples ou tão complexo quanto quiser.
Por exemplo, um tipo de conteúdo pode ser um texto simples, uma imagem ou um carrossel.
💡 Dica: Como regra geral, quanto mais específicos do domínio forem os tipos de conteúdo, mais fácil será gerenciar o chatbot para pessoas não técnicas.
Os tipos de conteúdo são específicos dos chatbots aos quais estão associados.
Aqui estão alguns exemplos típicos:
- Um restaurante Menu e MenuPage tipos;
- Um QuestionWithChoices tipo;
- Um ImportantBroadcast tipo.
Como é mostrado, os tipos de conteúdo no Botpress são muito mais específicos do que os "tipos de mensagem" generalizados nas plataformas tradicionais de criação de chatbots.
Os desenvolvedores definem os tipos de conteúdo em JavaScript. Cada tipo de conteúdo tem seu próprio .jsarquivo, e o Botpress encontra e registra automaticamente novos tipos de conteúdo com base no diretório e na convenção de nomenclatura do arquivo.
Elemento de Conteúdo
Um elemento de conteúdo contém os dados de um tipo de conteúdo. Vários elementos podem pertencer a um único tipo de conteúdo.
Por exemplo, o tipo de conteúdo "texto" incluirá um elemento para cada frase do seu Bot.
Exemplo:
{
"id": "builtin_text-pSsHWg",
"formData": {
"text": "👋, {{state.$r}}!",
"variations": ["Hello, {{state.$r}}!", "Welcome to Botpress, {{state.$r}}!"],
"typing": true
},
"createdBy": "admin",
"createdOn": "2018-05-14T00:57:36.026Z"
}
Todos os elementos de conteúdo do mesmo tipo de conteúdo são armazenados em um único .json arquivo no data/bots/{your-bot}/content-elements/ diretório.
💡 Dica: Lembre-se de que um tipo de conteúdo informa como o conteúdo é renderizado e um elemento de conteúdo informa o que renderizar.
Adicionando Conteúdo
É possível adicionar e editar conteúdo de duas maneiras:
Editor de Fluxo
É possível adicionar conteúdo ao criar um nó no Editor de fluxo.
- Clique no botão de adição.
- Escolha dizer algo.
- Clique no ícone do arquivo.
- Escolha um tipo de conteúdo.
- Selecione Adicionar novo.

Interface de Conteúdo
Na Interface do Botpress Studio, é possível adicionar conteúdo ao seu chatbot.
- Navegue até a guia Conteúdo;
- Clique no sinal de mais ao lado de Filtrar por Tipo de Conteúdo;
- Insira as informações necessárias.
💡 Dica: Também é possível pode adicionar um tipo de conteúdo específico clicando no botão de adição, que aparece quando passa o mouse sobre o título do conteúdo.

A interface de conteúdo é útil para a separação de interesses.
Caso queira que um colaborador não técnico examine o conteúdo, edite-o quanto à gramática e crie o tom desejado para o seu chatbot.
Tradução
Seus chatbots podem suportar vários idiomas. Se uma tradução específica não estiver disponível para o idioma atual, o chatbot usará o idioma padrão.
Quando um usuário conversa com seu chatbot, extraímos o idioma do navegador e o salvamos como um atributo de usuário (disponível no evento como user.language).
Depois que a user.languagepropriedade for definida, ela não será substituída. Portanto, é necessário perguntar ao usuário qual é seu idioma preferido ou usar o mecanismo NLU para detectá-lo.
Ao renderizar elementos de conteúdo, tentaremos renderizar o idioma configurado pelo usuário; caso contrário, ele usará o padrão do chatbot.
Tipos de Conteúdo Suportados
Botão de Ação
Este botão aciona uma ação, frequentemente usada em cartas. É possível adicionar dois parâmetros a este botão, a saber:
- Título: Texto escrito no botão.
- Ação: Um de dizer algo, abrir url e criar postback.
Áudio
Permite fazer upload de um arquivo de áudio mp3. O arquivo poderá ser reproduzido no chat.

Cartão
Um cartão é uma mensagem com um título e uma legenda opcional. Ele também contém uma imagem e botões de ação. Observe que no primeiro é necessário criar o botão de ação separadamente.
Carrossel
Um carrossel é um conjunto de cartas. Essa coleção de cartões pode ser apresentada como um slide de rolagem horizontal ou uma pilha de mensagens vertical, dependendo do canal.
Arquivo
Atualmente, o tipo de conteúdo do arquivo é suportado apenas pelo channel-vonage. Ele permite o upload de um arquivo .pdf que o usuário pode baixar do chat. Além disso, é possível adicionar um título opcional que aparecerá como uma mensagem no arquivo.
Ao carregar um arquivo de uma url variável, talvez seja necessário utilizar chaves triplas para liberar a url, ou seja, {{{temp.fileUrl}}}.
Imagem
Para mostrar uma imagem com um título opcional na janela de bate-papo, é possível usar o elemento de conteúdo Imagem. Os formatos de imagem suportados são .tiff, .jpg, .png, .jpeg, .gif, .bmp, .tif.
Ao carregar uma imagem de uma url variável, talvez seja necessário usar chaves triplas para liberar a url, ou seja, {{{temp.imageUrl}}}.
Localização
Atualmente, o tipo de conteúdo de localização é suportado apenas por channel-vonage. Ele gera uma mensagem mostrando um local com um endereço e título opcionais.
Os parâmetros necessários para completar este elemento de conteúdo são longitude e latitude.
Escolha Única
Este componente carrega uma mensagem, geralmente uma pergunta, e sugere escolhas ao usuário para cumprir a mensagem. O usuário pode escolher apenas uma opção e, ao selecionar a preferência, é possível instruir seu chatbot a obter um valor personalizado.
Texto
O tipo de conteúdo de texto denota uma mensagem de texto normal com indicadores de digitação opcionais e alternativas. É possível usar markdown em seu texto para adicionar formatação e estilo, mas certifique-se de que o canal de destino possa renderizar esse texto.
É possível escrever HTML no conteúdo de texto no canal da web e seu chatbot irá renderizá-lo corretamente. Isso abre a possibilidade de incluir iFrames e construir páginas da Web em miniatura (comumente conhecidas como visualizações da Web) em seu conteúdo sem criar componentes personalizados.
Vídeo
O tipo de conteúdo de vídeo apresenta uma mensagem mostrando um arquivo de vídeo com um título opcional. É possível enviar o vídeo ou vincular a um arquivo de vídeo que será obtido quando o elemento de conteúdo for invocado.
Ao carregar um vídeo de um URL variável, pode ser necessário usar chaves triplas para liberar o URL, ou seja, {{{temp.videoUrl}}}.
Lista Suspensa
A lista suspensa exibe uma lista de opções para o usuário. Ele inclui uma mensagem para o usuário e é possível personalizar o texto do marcador de posição suspenso e o texto exibido no botão de seleção.