Interface e experiências de mensagens

Este guia destina-se aos parceiros que criam experiências para usuários finais: explica o que os usuários veem no aplicativo MorisBox e quais APIs / payloads usar para mensagens enriquecidas, menus e fluxos com várias etapas.

Não é um design system para o site de documentação.


O que os usuários veem

No espaço do parceiro do aplicativo móvel / Application Client:

ÁreaObjetivo
MensagensSua lista do hub: notificações, mídia, newsletters e cartões de fluxo (os mais recentes primeiro)
FormuláriosFluxos interativos disponíveis
ConversasConversas de suporte abertas pelo usuário
BotsSeus bots disponíveis in-app

Os envios automatizados dos parceiros aparecem em Mensagens. Não coloque conteúdo de campanhas nas conversas de suporte.


Componentes básicos (tipos de conteúdo)

Use POST /api/v1/messages com content_type (e os campos de mídia, link ou HTML). Referência completa: Mídia e tipos de conteúdo, Mensagens.

Texto

Notificação simples ou legenda.

{
  "phone": "+228XXXXXXXX",
  "content_type": "text",
  "body": "Votre dossier a été mis à jour.",
  "priority": "notification"
}

Interface do usuário: linha de lista / balão simples.


Imagem

{
  "phone": "+228XXXXXXXX",
  "content_type": "image",
  "body": "Photo de l’agence",
  "media_url": "https://cdn.example.com/agence.jpg",
  "media_filename": "agence.jpg"
}

Interface do usuário: prévia da imagem · toque para abrir em tamanho completo.


Documento / áudio / vídeo

{
  "content_type": "document",
  "body": "Guide d’affiliation",
  "media_url": "https://cdn.example.com/guide.pdf",
  "media_filename": "guide.pdf"
}
TipoInterface do usuário
documentLinha de arquivo (nome, tipo, abrir)
audioLinha de áudio · abrir / reproduzir
videoCartão de vídeo · abrir

Link CTA

Cartão enriquecido com título, descrição, botão e imagem opcional.

{
  "content_type": "link",
  "body": "Consultez votre espace assuré.",
  "link_url": "https://morisbox.com",
  "link_title": "Espace assuré SEED",
  "link_description": "Cotisations, demandes et documents.",
  "link_label": "Ouvrir le portail",
  "link_image_url": "https://cdn.example.com/cover.jpg"
}

Interface do usuário: cartão + botão principal · abre a URL.


Newsletter HTML

Layout enriquecido (imagem, vídeo, HTML). Abre em tela cheia quando o usuário toca na linha do hub (sem exibir primeiro uma prévia reduzida).

{
  "content_type": "html",
  "subject": "SEED Actu · Juillet",
  "html": "<div><h1>Bonjour</h1><img src=\"https://…/photo.jpg\" style=\"max-width:100%\"/><p>…</p></div>"
}

Interface do usuário: título da lista = subject · toque → leitor HTML completo.
Mais detalhes: Newsletters HTML.


Convite para um fluxo

Formulário interativo com várias telas (cadastro, lista de espera, …).

POST /api/v1/bots/{bot_code}/flows/{flow_code}/invite
{ "phone": "+228XXXXXXXX" }

Interface do usuário: cartão de fluxo · abre o runner do formulário · ao concluir, o mesmo cartão se torna um resumo somente leitura.
Mais detalhes: Fluxos interativos.


Interface de conversa com bots (menus e etapas)

Quando um usuário executa uma sessão de bot, o runtime pode apresentar:

Tipo de evento / etapaExperiência do usuário
message / flow_messageTexto na interface de fluxo/bot
menu (button)Lista vertical de opções
menu (list)Lista com seções (no estilo das listas do WhatsApp)
flow_screen + formFormulário com vários campos (inputs, select, phone, email, …)
flow_screen + input / selectCampo único ou opções
paymentConfirmação de pagamento (stub / futuro)
flow_completedConclusão + resumo opcional

Tipos de campo de formulário (telas de fluxo)

Defina-os em fields_json em uma etapa de formulário:

typeControle
textEntrada de texto
phoneTelefone (validado como E.164)
emailE-mail (validado)
numberNumérico
dateData YYYY-MM-DD
booleanSim / Não
selectLista de opções (options: [{id, label}])

Valide no servidor: Validação de campos.

Exemplo de definição de uma etapa de formulário

[
  {
    "key": "full_name",
    "type": "text",
    "label": "Nom complet",
    "required": true,
    "placeholder": "Ex. Ama Koffi"
  },
  {
    "key": "email",
    "type": "email",
    "label": "E-mail",
    "required": false
  },
  {
    "key": "service",
    "type": "select",
    "label": "Service",
    "required": true,
    "options": [
      { "id": "affiliation", "label": "Affiliation" },
      { "id": "pension", "label": "Pension" }
    ]
  }
]

Escolher o componente correto

ObjetivoUsar
Alerta pontualtext ou modelo
Exibir uma foto / PDFimage / document
Direcionar ao seu portalCTA link
Conteúdo enriquecido mensal semelhante a e-mailNewsletter html
Cadastro / lista de espera com várias etapasConvite para fluxo + etapas de formulário
Menu guiado de serviçosMenus de bot (local ou service)
Chat de suporte contínuoConversa iniciada pelo usuário (respostas dos agentes)

Separadores e estrutura no conteúdo enriquecido

Nas newsletters HTML, estruture o conteúdo com:

  • Títulos (h1-h3) para as seções
  • Linhas horizontais (<hr>) ou blocos espaçados para separação visual
  • Cartões (divs com borda) para os CTAs
  • Listas (ul / ol) para facilitar a leitura rápida

Nos fluxos, use etapas (telas) separadas em vez de um único formulário longo sempre que possível: isso oferece uma experiência móvel melhor.


Fluxos de ponta a ponta

1. Campanha: imagem + link

  1. Envie uma image com legenda
  2. Envie um CTA link para “Concluir minha solicitação”

2. Lista de espera de onboarding

  1. POST …/flows/waitlist/invite
  2. O usuário preenche os formulários de identidade + preferências
  3. O cartão passa ao status completed, com um resumo

3. Newsletter com mídia

  1. Crie o HTML com <img> e <video>
  2. content_type=html + subject
  3. O usuário abre o leitor completo a partir do hub

Documentação relacionada da API

TemaPágina
Enviar mensagensMensagens
Tipos de mídiaMídia e tipos de conteúdo
NewslettersNewsletters HTML
FluxosFluxos interativos
Bots360Bots
Autenticação de botsCredenciais de bots e webhooks
ValidaçãoValidação de campos