Funcionalidades do usuário (visão produto)
Este documento lista funcionalidades e “lacunas comuns” para a experiência do usuário no Pilot Status, sem expor detalhes internos de infraestrutura (provedores, filas, workers, etc).
O que você já tem (base do produto)
- Multi-projetos: um usuário pode ter vários projetos; tudo opera no escopo do projeto.
- Números: usuário pode usar o próprio número ou o número da plataforma para enviar mensagens.
- Opt-in/anti-spam: destinatário precisa autorizar enviando uma mensagem de autorização para o número que vai disparar.
- Templates: criação de templates com variáveis; envio de mensagem a partir do template.
- Webhooks: usuário configura webhook para receber resposta (reply) mesmo usando o número da plataforma.
- Logs: status de fila, enviado, lido e falha.
- Ambientes: TEST e PRODUÇÃO (produção requer aprovação de admin).
Sugestões de funcionalidades (do ponto de vista do usuário)
Conta e projeto
- Convites e time: membros por projeto (ex.: Admin, Developer, Finance).
- Permissões por área: separar “pode enviar”, “pode ver logs”, “pode gerenciar chaves”, “pode faturamento”.
- Ambiente por projeto: permitir isolar TEST/LIVE por projeto e deixar explícito no UI.
- Auditoria: histórico de ações (criou API key, alterou webhook, aprovou template, etc).
Números e autorização (opt-in)
- Lista de consentimentos: ver quem autorizou, quando, por qual número/ambiente e status (ativo/revogado).
- Revogação/opt-out: bloquear envios para contatos que pediram para parar (palavras-chave e/ou lista manual).
- Expiração de consentimento: opcional (ex.: renovar opt-in após X dias sem interação).
- Mensagem padrão de opt-in: permitir editar o texto e idioma, com placeholders e links.
- Fluxo de “testar opt-in”: ferramenta no painel para simular/validar a autorização de um número.
Contatos e segmentação
- Agenda de contatos por projeto: salvar contatos e metadados (nome, tags, campos customizados).
- Listas/segmentos: agrupar contatos por tags/regras para uso em campanhas e fluxos recorrentes.
- Bloqueios: blacklist por número, domínio, país/DDD, horários, etc.
Templates (governança e qualidade)
- Validação do template: checar JSON/variáveis obrigatórias antes de salvar e antes de enviar.
- Pré-visualização real: render do template com variáveis de exemplo e “mensagem final” que será enviada.
- Versionamento com rollback: permitir voltar para uma versão aprovada anterior.
- Aprovação por ambiente: permitir aprovar em TEST e promover para LIVE.
- Biblioteca e organização: categorias, tags, busca, clonagem, duplicar versão.
Envio e API (ergonomia e confiabilidade)
- Idempotência: permitir um “idempotency key” para evitar envios duplicados por retry do cliente.
- Correlação ponta-a-ponta: permitir “correlationId” do cliente e exibir em logs/webhooks.
- Regras de rate-limit visíveis: mostrar limites do plano e consumo (diário/mensal) por projeto/ambiente.
- Modo “dry-run” em TEST: validar template+variáveis sem efetivar envio.
- Reenvio controlado: permitir reprocessar mensagens falhas (com botão no log e limites de segurança).
Logs (investigação e operação)
- Busca avançada: por correlationId, messageId, número, template, janela de tempo, status, ambiente e projeto.
- Drill-down por mensagem: timeline (criada → na fila → enviada → lida/falha) com campos relevantes.
- Exportação: CSV e/ou webhook de auditoria para integração com BI.
- Retenção e privacidade: configurar retenção de logs (ex.: 30/90/180 dias) e mascarar conteúdo sensível.
Webhooks (confiabilidade e segurança)
- Assinatura: assinatura HMAC por ambiente, com secret rotacionável.
- Retry com backoff: retries automáticos em falha (5xx/timeout) com limite e “dead-letter” para inspeção.
- Logs de entrega de webhook: status, tempo, payload, tentativas, última falha e replay manual.
- Eventos adicionais: webhook de “read”, “delivered”, “queued/accepted”, “template.approved/rejected”, “quota.exceeded”.
- Teste de webhook: botão “enviar evento de teste” no painel para validar integração.
UX de ambiente TEST x PRODUÇÃO
- Guardrails: banners e cores diferentes para evitar confusão entre TEST e LIVE.
- Checklist de produção: itens que o usuário precisa concluir (opt-in OK, webhook OK, template aprovado, etc).
- Sandbox com limites claros: erros com mensagens acionáveis quando atingir limite diário/mensal.
Segurança e compliance
- Rotação e escopo de API keys: expiração opcional, permissões por chave, última utilização e IP allowlist.
- LGPD: exportar dados do projeto, deletar contato, anonimizar logs sob demanda.
- Termos e política: mostrar regras anti-spam e responsabilização do cliente (opt-in obrigatório).
Faturamento e plano
- Dashboard de uso: consumo por projeto/ambiente, taxa de falha, custo estimado e previsão.
- Overages/pacotes: compra de pacotes extras e bloqueio/alerta quando atingir limites.
- Alertas: notificar por e-mail/webhook quando estiver perto do limite mensal/diário.
Suporte e confiabilidade percebida
- Status page: página pública com incidentes e histórico.
- Alertas de incidentes: inscrição para receber avisos (e-mail) por projeto.
- Guia de integração: snippets (curl/Node/Python), erros comuns, boas práticas e checklist de go-live.
Checklist rápido (MVP + próximos passos)
- MVP essencial: consentimentos (ver/gerir), assinatura de webhook, logs detalhados por mensagem, rate-limit visível, idempotência.
- Recomendado: retry de webhook com replay, exportação de logs, papéis por projeto, opt-out/blacklist.
- Opcional: agenda/segmentos, status page pública, retenção configurável, overages e alertas avançados.