Como criar um lembrete no celular com n8n, sem cadastro
Beber água, tomar um remédio, pagar uma conta, alongar as costas: todo mundo tem algum lembrete que gostaria de receber no celular, sempre no mesmo horário. Neste tutorial você vai fazer o n8n mandar essa notificação sozinho, todos os dias às 9h, usando o ntfy (lê-se “notify”), um serviço gratuito de notificações que não pede cadastro, e-mail nem senha.
O workflow tem só dois nós: um gatilho de horário e um HTTP Request que envia a mensagem. É um ótimo exemplo para aprender a usar o método POST, que serve para enviar dados a um serviço, e não apenas consultar.
O que você vai construir
Este é o workflow final no editor do n8n:

- Schedule Trigger: dispara o workflow todos os dias às 9h.
- HTTP Request: faz um POST para o endereço do seu tópico no ntfy.sh, com o texto do lembrete.
Versão usada: n8n 2.40.7. Os nomes de botões e campos aparecem em inglês, exatamente como na interface. Os prints mostram um tópico de exemplo; ao montar o seu, crie um nome novo, como explicamos logo abaixo.
Pré-requisitos
- Um n8n funcionando. Se ainda não tem, siga antes o tutorial n8n do zero com Docker: instale e receba a cotação do dólar no e-mail.
- Acesso à internet a partir do n8n.
- O app ntfy instalado no celular (ele é gratuito na loja de aplicativos do Android e do iPhone). Não é preciso criar conta.
Como o ntfy funciona (e por que o tópico é a sua senha)
No ntfy, as mensagens são organizadas em tópicos. Um tópico é só um nome: quem envia uma mensagem para https://ntfy.sh/nome-do-topico faz com que ela chegue a todos os aparelhos inscritos nesse mesmo nome. Não existe cadastro, e é justamente por isso que o nome do tópico funciona como uma senha: qualquer pessoa que souber o nome pode ler as suas mensagens e também mandar mensagens para você.
Por isso, nunca use nomes óbvios, como “lembrete” ou “meu-celular”. Invente um nome longo e aleatório, com letras sem acento, números e hífens, e não o compartilhe. No exemplo deste tutorial usamos lembrete-aebd460ecc248ff1. Como esse nome agora está publicado aqui, ele deixou de ser secreto: crie o seu, trocando os caracteres depois de “lembrete-” por outros quaisquer. E, como o servidor ntfy.sh é público, evite colocar dados sensíveis no texto das mensagens.
Montando o workflow, nó por nó
Crie um workflow novo e dê a ele o nome Lembrete no celular (ntfy). Depois, adicione os dois nós abaixo, nesta ordem.
Nó 1: Schedule Trigger (todo dia às 9h)
Clique em Add first step, digite “schedule” na busca e escolha Schedule Trigger. Esse gatilho dispara o workflow em horários definidos por você, sem ninguém precisar clicar em nada.

| Campo | Valor | Por que assim |
|---|---|---|
| Trigger Interval | Days | O lembrete é diário. |
| Days Between Triggers | 1 | Um dia entre um disparo e outro, ou seja, todos os dias. |
| Trigger at Hour | 9am | Dispara às 9h da manhã. |
| Trigger at Minute | 0 | Exatamente às 9h00. |
Repare no aviso amarelo no topo do nó: “This workflow will run on the schedule you define here once you publish it.” Ou seja, o horário só passa a valer depois que o workflow for publicado (veremos isso no teste). Enquanto isso, você pode testar à vontade clicando em Execute workflow no canvas.
A saída do nó, no print, foi gerada por uma execução manual e mostra a data e a hora do disparo em vários formatos, como Readable date, Day of week e Hour. O campo Timezone merece atenção: no nosso n8n ele apareceu como America/Sao_Paulo (UTC-03:00), o horário de Brasília. Se no seu aparecer outro fuso, o lembrete vai chegar na hora errada; nesse caso, ajuste o fuso em Settings do workflow (campo Timezone) ou na variável GENERIC_TIMEZONE do seu n8n.
Nó 2: HTTP Request (enviar a notificação)
Enviar uma mensagem pelo ntfy é simples: basta fazer um POST para o endereço do tópico, com o texto da mensagem no corpo da requisição. A URL do exemplo é esta (lembre-se de trocar pelo seu tópico):
https://ntfy.sh/lembrete-aebd460ecc248ff1
E este é o texto do lembrete, que vai no campo Body:
Bom dia! Hora de beber um copo de água e conferir a agenda do dia.
Clique no + à direita do Schedule Trigger, adicione um nó HTTP Request e preencha como na tabela:

| Campo | Valor | Por que assim |
|---|---|---|
| Method | POST | Estamos enviando uma mensagem, e não consultando dados. |
| URL | a URL do primeiro bloco acima | Endereço do seu tópico no servidor público ntfy.sh. |
| Authentication | None | O ntfy.sh não pede login para tópicos comuns. |
| Send Query Parameters | desligado | Não são necessários. |
| Send Headers | ligado | Para enviar o título da notificação. |
| Specify Headers | Using Fields Below | Preenchemos o cabeçalho em campos, sem escrever JSON. |
| Headers → Name / Value | Title / Lembrete | O ntfy usa o cabeçalho Title como título da notificação. Use um título sem acentos (veja os erros comuns). |
| Send Body | ligado | O texto do lembrete vai no corpo da requisição. |
| Body Content Type | Raw | Enviamos o texto puro, do jeito que está. |
| Content Type | text/plain | Avisa ao ntfy que o corpo é um texto simples. |
| Body | o texto do segundo bloco acima | É a mensagem que aparece na notificação. Aqui acentos funcionam normalmente. |
| Options | (nenhuma) | As opções padrão bastam. |
Clique em Execute step. Se tudo deu certo, o ntfy devolve 1 item com a confirmação do envio: id (o código da mensagem), time (o momento do envio, contado em segundos), event igual a message, o topic, o title e a message que você mandou. O campo expires indica até quando a mensagem fica guardada no servidor para aparelhos que estavam desligados; no nosso teste, a diferença entre expires e time foi de 43.200 segundos, ou seja, 12 horas.
O workflow completo e o teste
1. Inscreva o celular no tópico
Abra o app ntfy no celular, toque no botão + para se inscrever num tópico, digite o nome exato do seu tópico (no exemplo, lembrete-aebd460ecc248ff1) e mantenha o servidor padrão, ntfy.sh. Pronto: a partir daí, tudo o que for enviado para esse tópico aparece como notificação no celular. Se preferir testar antes pelo computador, abra no navegador o endereço https://ntfy.sh/ seguido do nome do tópico.
2. Execute o workflow
No n8n, clique em Execute workflow. Os dois nós ficam verdes, com 1 item em cada ligação:

No painel Logs, na barra inferior, selecione o HTTP Request para ver a resposta do ntfy em forma de tabela:

Ao mesmo tempo, a mensagem chegou na página do tópico no ntfy.sh, que estava aberta no navegador, com o título “Lembrete” e o texto do corpo. Nos aparelhos inscritos no tópico, como o seu celular, ela chega como notificação:

O aviso “Notificações estão bloqueadas”, à esquerda, aparece porque o navegador usado no teste não tinha permissão para mostrar notificações. Ele não impede a mensagem de chegar; se quiser receber avisos também no computador, basta permitir as notificações do ntfy.sh no seu navegador.
3. Publique para valer todos os dias
Até aqui, o lembrete só foi enviado porque você clicou no botão. Para que ele chegue sozinho todos os dias às 9h, clique em Publish, no canto superior direito do editor. Na janela Publish workflow, o n8n sugere um nome de versão (Version name) e oferece um campo opcional para descrever as mudanças (Describe changes (optional)). Clique em Publish para confirmar.

Um detalhe importante: o n8n precisa estar ligado no horário do lembrete. Se ele roda no seu computador e o computador estiver desligado às 9h, a notificação daquele dia não será enviada. Para lembretes que não podem falhar, o ideal é um n8n que fique sempre no ar.
Erros comuns
Título e texto com caracteres estranhos. Não aparece erro no n8n, mas a notificação chega embaralhada. No teste abaixo, usamos o título “Atenção”, com cedilha e til, no cabeçalho Title. O ntfy aceitou a mensagem, mas o título virou “Aten” seguido de símbolos sem sentido, e a palavra “água”, no texto, também chegou quebrada. Os cabeçalhos de uma requisição HTTP foram feitos para caracteres simples; por isso, deixe o Title sem acentos e escreva o que precisar de acento no Body.

“The resource you are requesting could not be found”, com a mensagem “page not found”. O nome do tópico tem caracteres que o ntfy não aceita. No teste, usamos lembrete do joão, com espaços e acento, e o servidor respondeu 404. Use só letras sem acento, números, hífen e sublinhado.

- A mensagem aparece no n8n, mas não no celular. Confira se o nome do tópico no app é exatamente igual ao da URL, letra por letra. Maiúsculas e minúsculas fazem diferença.
- O lembrete não chega às 9h. Verifique se o workflow foi publicado, se o n8n estava ligado nesse horário e se o campo Timezone da saída do Schedule Trigger mostra o fuso certo.
JSON do workflow para importar
Se preferir, importe o workflow pronto. Baixe o arquivo abaixo ou copie o JSON. No n8n, crie um workflow novo e escolha uma das opções: abra o menu … (três pontinhos) no topo do editor, vá em Import e depois em From file; ou cole o JSON direto no canvas com Ctrl+V.
O download é um arquivo .zip com o lembrete-celular-ntfy.json dentro. Descompacte antes de importar (ou copie o JSON do bloco abaixo).
{
"name": "Lembrete no celular (ntfy)",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"id": "3c9e7a11-1111-4f6d-8b03-0f0000000001",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
0
]
},
{
"parameters": {
"method": "POST",
"url": "https://ntfy.sh/lembrete-aebd460ecc248ff1",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Title",
"value": "Lembrete"
}
]
},
"sendBody": true,
"contentType": "raw",
"rawContentType": "text/plain",
"body": "Bom dia! Hora de beber um copo de água e conferir a agenda do dia.",
"options": {}
},
"id": "3c9e7a11-2222-4f6d-8b03-0f0000000002",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.5,
"position": [
260,
0
]
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
}
}
Depois de importar, troque o tópico na URL do HTTP Request pelo nome que você criou; o tópico do exemplo é público. O workflow não usa credenciais.
Recapitulando
- O Schedule Trigger dispara o workflow num horário fixo, mas só depois que o workflow é publicado.
- O HTTP Request com POST envia dados a um serviço; no ntfy, basta mandar o texto para o endereço do tópico.
- O nome do tópico funciona como senha: use um nome longo e aleatório e não o divulgue.
- O cabeçalho Title define o título da notificação e deve ficar sem acentos.
Com essa mesma base, você pode trocar o texto fixo por dados de outra API, como a cotação do dólar ou os próximos feriados, e receber tudo no celular. Nos próximos tutoriais, vamos continuar montando automações simples e úteis com o n8n.