KEPLIN Docs

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:

  1. Abre a app.
  2. Clica no ícone Definições da app, no topo da árvore lateral.
  3. Na árvore de definições, dentro do grupo Aplicação, escolhe Notificações.

A secção Notificações das definições da app: os dois canais fixos — in-app e por email — e o SMTP de envio.
A secção Notificações das definições da app: os dois canais fixos — in-app e por email — e o SMTP de envio.

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.

O bloco SMTP do canal de email: servidor, porto, ligação segura, credenciais e endereço de envio.
O bloco SMTP do canal de email: servidor, porto, ligação segura, credenciais e endereço de envio.

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.

O menu Notificações no editor de navegação — é ele que põe o sino do centro de notificações na barra da app.
O menu Notificações no editor de navegação — é ele que põe o sino do centro de notificações na barra 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.