Envio de SMS
Pré-requisitos de acesso
- Permissão (módulo): acesso liberado pelo guard administrativo da rota (
admin). Não há módulo dinâmico específico para esta tela. - Licença/Feature: Nenhuma.
- Contêiner do menu: GERAL → grupo Comunicação (ícone
campaign) → Envio de SMS.
O que é / quando usar
Tela para criar e agendar disparos de SMS em massa ou para uma lista de destinatários específicos. A mecânica é idêntica à de Envio de e-mail: cada disparo vira uma "ação em massa" (MassActions com action = 'SMS') que entra na fila do CommunicationScheduler. Use para avisos curtos, confirmações e campanhas por canal SMS.
Pré-condições
- Permissão: item sob o guard
adminda rota. Permissão no Axia é dupla (enum CPM no backend + módulo dinâmico no DB); aqui o gate efetivo é o guard de rota — valide perfil administrativo. - Licença/Feature: nenhuma.
- Dependências de outras telas: no modo Individual, o destinatário é validado contra a base de usuários (mesma checagem do e-mail).
Passo a passo
- Acesse o menu Comunicação → Envio de SMS.
- A tela lista os disparos existentes (colunas Quando, Assunto, Status, editar/excluir).
- Clique em Novo / Criar para abrir o modal.
- Escolha o público: Todos (
all) ou Individual (single). - No modo Individual, adicione cada destinatário (validado contra a base, vira chip).
- Preencha Mensagem e Data.
- Confirmar. O disparo entra na fila.
Campos
Listagem
| Coluna | O que mostra | Origem do dado |
|---|---|---|
Quando (when) | Data de criação/agendamento | MassActions.when/scheduleTo |
Assunto (subject) | Para SMS é gravado vazio | MassActions.subject (string vazia no SMS) |
| Status | CREATED/PENDING, EXECUTED, CANCELLED | MassActions.status |
| Editar / Excluir | Reabre o modal / cancela (marca CANCELLED) | — |
Modal de criação/edição
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Público (Todos / Individual) | Toda a base ou lista específica | Sim | all = true enfileira um registro PENDING por usuário da base; all = false por destinatário da lista. No modo edição, o público fica bloqueado. |
| E-mail/destinatário (só no modo Individual) | Identifica o usuário-alvo | Condicional (≥1 no modo Individual) | Validado contra a base via getUserByEmailWallet; só entra quem existe. Vira chip. |
Mensagem (message) | Texto do SMS | Sim | Gravado em MassActions.message. Diferente do e-mail, não há campo de assunto (gravado vazio). |
Data (when) | Data a partir da qual pode ser processado | Sim | Mínimo = hoje. O scheduler roda a cada 30 minutos. |
Ações e modais
- Criar (Confirmar): cria a
MassActions(action = 'SMS',status = 'CREATED') e os destinatáriosPENDING. A tela recarrega. - Editar: ajusta Mensagem e Data; público e lista ficam somente leitura. Salvar volta o disparo para
CREATED. - Excluir: marca
CANCELLED(não apaga).
Regras de negócio / cuidados
Atenção
- Caveat de entrega de SMS: no
CommunicationScheduleratual, o ramoaction === 'SMS'do laço de processamento está vazio (sem implementação de envio efetivo). Na prática, disparos de SMS criados por esta tela são registrados e agendados, mas o envio real depende da implementação do provedor de SMS no scheduler. Confirme com o time de plataforma se o canal SMS está ativo no ambiente antes de prometer entrega ao cliente. O fluxo de e-mail, por outro lado, é processado de fato. - Destinatário individual só é aceito se existir na base.
- Envio não imediato: depende do ciclo de 30 min do scheduler.
Irreversível
- Uma vez enviado pelo provedor, não há rollback do SMS. Cancelar só impede disparos ainda
PENDING.
- Idempotência: processamento por destinatário (
PENDING→EXECUTED); reexecução não reenvia quem já recebeu.