Notificações
Como uma app avisa quem a usa — o canal no ecrã, o canal por email, e o sino da barra de navegação.
Uma aplicação de negócio precisa de avisar pessoas: uma oportunidade mudou de fase, um pedido chegou para aprovação, um relatório ficou pronto. No Keplin isso faz-se por dois canais, que existem em todas as apps e não se criam nem se apagam: um entrega no ecrã, a quem está a usar a app naquele momento; o outro entrega por email, a quem não está.
Ligam-se ou desligam-se nas Definições da app, secção Notificações:
- Abre a app.
- Clica no ícone Definições da app, no topo da árvore lateral.
- Na árvore de definições, dentro do grupo Aplicação, escolhe Notificações.

Notificações in-app
O primeiro canal entrega dentro da aplicação. Tem um único interruptor, Canal activo, e o comportamento é este:
- quem está com a app aberta recebe o aviso no momento, sem recarregar nada;
- quem não está recebe-o no próximo início de sessão — a mensagem fica guardada e não se perde;
- as mensagens por ler aparecem no sino da barra de navegação da app.
Nota
A entrega imediata depende do interruptor Notificações em tempo real das Definições da plataforma. Com ele desligado nada se perde: as notificações continuam a ser guardadas e aparecem na visita seguinte, apenas sem o "agora".
Notificações por email
O segundo canal manda email, e serve duas coisas: as notificações que a lógica da app envia por email, e a recuperação de palavra-passe dos utilizadores da app. Ambas saem pelo servidor de envio configurado logo abaixo, na mesma secção.
Preenche o bloco SMTP:
| Campo | O que é |
|---|---|
| Host | O endereço do servidor de email. |
| Porto | 465 com ligação segura, 587 para STARTTLS. |
| Ligação segura (TLS) | Liga para SMTPS (porto 465); desliga para STARTTLS (porto 587). |
| Utilizador e Password | As credenciais de envio. A password é guardada cifrada e nunca volta ao ecrã — deixá-la vazia quer dizer "manter a que está". |
| Endereço de envio (from) | O remetente que aparece a quem recebe. |

Atenção
Sem o canal de email activo e com SMTP preenchido, a recuperação de palavra-passe dos utilizadores da app não funciona — o pedido é aceite mas o email nunca sai.
Nota
Este servidor de email é da app, e é distinto do email dos avisos da plataforma (esse configura-se em Definições e serve para alarmes de infra-estrutura). Cada app pode enviar pelo servidor do seu cliente sem que isso mude nada na instalação.
Enviar uma notificação
As notificações partem da lógica da app — de um script ou de um passo de workflow. Nos scripts há duas ferramentas, uma por canal (ver SDK dos scripts).
No ecrã, com notify.send. Os destinatários são utilizadores da
app: users recebe nomes de utilizador, e roles expande para todos os
membros de um papel.
r = notify.send(
"Oportunidade ganha",
subtitle="Câmara Municipal de Aveiro — 18.400 €",
body="A proposta foi aceite. O contrato segue para assinatura.",
users=["ana.rocha"],
roles=["direcao"],
data={"url": "/oportunidades/42"},
)
# r = {"recipients": 4, "delivered": 2}
O delivered conta quem estava ligado e recebeu na hora; os restantes
recebem quando entrarem. O data viaja com a mensagem — é o que permite
que clicar no aviso leve a pessoa ao sítio certo da app.
Por email, com notify.email. Aqui o to aceita endereços livres,
e users/roles resolvem para o email dos utilizadores da app.
r = notify.email(
"Resumo do pipeline",
to=None,
users=None,
roles=["direcao"],
text="Estão 12 oportunidades abertas, 3 fecham esta semana.",
html=None,
)
# r = {"accepted": ["ana.rocha@exemplo.pt"], "skipped": []}
O skipped diz quem ficou de fora por não ter email preenchido na ficha —
vale a pena olhar para essa lista quando alguém se queixa de não receber.
O sino na barra da app
O sino que mostra as mensagens por ler não aparece sozinho: é um tipo de menu que se acrescenta no editor de navegação da app, com a contagem automática das não lidas. Está descrito em Navegação da app.

Quanto tempo se guardam
As mensagens acumulam-se. Cada app decide quanto tempo guarda o histórico na secção Rotação de registos das definições da app — a mesma onde se define a retenção dos registos de actividade. Zero dias quer dizer "guardar sempre".
Perguntas frequentes
A pessoa não recebeu nada no ecrã. Confirma três coisas, por esta ordem: o canal Notificações in-app está activo nas definições da app; o interruptor Notificações em tempo real está ligado nas Definições da plataforma; e a pessoa tem sessão aberta na app. Sem tempo real a mensagem não se perde — só chega mais tarde.
Posso avisar toda a gente de uma vez? Sim: em vez de nomes, passa
roles com o papel que queres. Quem estiver nesse papel na altura do envio
recebe.
As notificações de uma app aparecem noutra? Não. As mensagens e o histórico pertencem à app onde foram criadas, e os destinatários são utilizadores dessa app.
Posso criar mais canais além destes dois? Não. Os canais são fixos, e é deliberado: o que muda de aviso para aviso é o destinatário e o texto, não a canalização. Para separar assuntos, usa os papéis dos destinatários.