Notion API — páginas, bancos de dados, blocos e busca.
Nó Notion
O nó de workflow Notion (notion_request) chama a Notion REST API para ler e gravar pages, databases, blocks e executar workspace search. Use-o para registrar leads, atualizar quadros de tarefas ou anexar resumos de conversas ao Notion a partir de automações WhatsApp.
ID do nó no editor: notion_request
Base da API: https://api.notion.com/v1/
Header obrigatório: Notion-Version: 2022-06-28
O que faz
A cada execução, o engine:
- Resolve URL, headers e body com variáveis do workflow
- Injeta
{{notion_token}}de um serviço conectado ou chave de integração - Envia a requisição HTTP ao Notion
- Retorna status, data e headers
| Propriedade | Valor |
|---|---|
| Rótulo na paleta | Notion |
| Executor | http_request |
| Auth | Authorization: Bearer {{notion_token}} |
| Tipo de serviço conectado | notion (OAuth opcional) |
Pré-requisitos
Opção A — Serviço conectado (recomendado)
- Configurações → Chaves de API → Serviços conectados
- Adicione Notion e conclua o OAuth
- No nó, selecione Serviço conectado (
company_service_id)
Consulte Como integrar o Notion para o passo a passo completo do OAuth.
Opção B — Token de integração
- Crie uma internal integration no Notion
- Copie o Internal Integration Secret
- Adicione a chave de integração
notion_tokenna WhatsWave - Compartilhe cada database/page com a integração no Notion (⋯ → Connections)
Sem compartilhar, o Notion retorna 404 ou 403 mesmo com token válido.
Como configurar
Passo 1 — Adicionar o nó
- Abra Automações
- Paleta → Dados → Notion
- Selecione o serviço conectado (se usar OAuth)
- Escolha um template de operação ou configure URL/method/body manualmente
Passo 2 — Templates de operação
| Template | Method | Finalidade |
|---|---|---|
| Página — obter | GET | Buscar propriedades da page por page_id |
| Página — criar | POST | Criar page em um database |
| Página — atualizar propriedades | PATCH | Atualizar propriedades da page |
| Banco de dados — obter schema | GET | Schema do database e definições de propriedades |
| Banco de dados — consultar (query) | POST | Consultar/filtrar/ordenar linhas do database |
| Blocos — listar filhos | GET | Listar child blocks de uma page ou block |
| Blocos — anexar filhos | PATCH | Anexar blocks (paragraphs, lists, etc.) |
| Bloco — atualizar | PATCH | Atualizar um block individual |
| Bloco — arquivar | DELETE | Arquivar (soft-delete) um block |
| Buscar páginas e bancos | POST | Busca no workspace |
| Usuário — bot (me) | GET | Identidade atual do bot/integração |
Passo 3 — Encontrar IDs a partir de URLs do Notion
| Recurso | Padrão de URL | Formato do ID |
|---|---|---|
| Page | notion.so/Page-Title-abc123def456... | UUID de 32 caracteres (com ou sem hífens) |
| Database | notion.so/workspace/db-id?v=... | UUID do database |
Copie o ID da URL ou use Database — query / Search para descobrir IDs programaticamente.
Passo 4 — Exemplos de payloads
Criar page em database:
{
"parent": { "database_id": "{{variables.notion_database_id}}" },
"properties": {
"Name": {
"title": [{ "text": { "content": "{{trigger.body.name}}" } }]
},
"Phone": {
"phone_number": "{{trigger.body.phone}}"
},
"Status": {
"select": { "name": "New lead" }
}
}
}
As chaves de propriedade devem corresponder exatamente ao schema do seu database (case-sensitive).
Consultar database com filtro:
{
"filter": {
"property": "Phone",
"phone_number": { "equals": "{{contact.phone}}" }
},
"page_size": 10
}
Anexar parágrafo a uma page:
{
"children": [
{
"object": "block",
"type": "paragraph",
"paragraph": {
"rich_text": [
{
"type": "text",
"text": { "content": "Summary: {{variables.conversation_summary}}" }
}
]
}
}
]
}
Passo 5 — Usar a saída
{{notion_1.data}}
{{notion_1.data.id}}
{{notion_1.status}}
Saídas do nó
| Campo de saída | Descrição |
|---|---|
status | Status HTTP do Notion |
data | Objeto page, resultados de query, lista de blocks ou body de erro |
headers | Headers de resposta |
Referência de tipos de propriedade
Ao criar ou atualizar pages, envolva os valores no formato de propriedade do Notion:
| Tipo Notion | Formato JSON (simplificado) |
|---|---|
| Title | { "title": [{ "text": { "content": "..." } }] } |
| Rich text | { "rich_text": [{ "text": { "content": "..." } }] } |
| Number | { "number": 42 } |
| Select | { "select": { "name": "Option" } } |
| Multi-select | { "multi_select": [{ "name": "A" }] } |
| Date | { "date": { "start": "2026-07-09" } } |
| Checkbox | { "checkbox": true } |
| URL | { "url": "https://..." } |
{ "email": "user@example.com" } | |
| Phone | { "phone_number": "+5511999999999" } |
Use Database — get schema para ver nomes e tipos exatos das propriedades.
Dicas e boas práticas
- Compartilhe todo database com sua integração antes de ir para produção
- Use serviço conectado OAuth para que os tokens sejam renovados automaticamente
- Consulte antes de criar para evitar leads duplicados (filtre por phone ou email)
- Paginar consultas grandes — o Notion retorna no máximo 100 itens por requisição; use
start_cursorda resposta para a próxima página - Arquivar vs excluir — blocks do Notion são arquivados, não excluídos permanentemente
- Armazene
page_idem campos customizados do CRM para atualizações posteriores - Use Search com moderação — varre o workspace e é mais lento que database query
Exemplos de casos de uso
Registrar lead WhatsApp em database CRM do Notion
- Webhook ou gatilho de mensagem recebida
- Notion — query — verificar se o phone já existe
- Condição — encontrado vs novo
- Notion — create page ou update properties na page existente
- Enviar WhatsApp — confirmação
Anexar resumo de IA à page do Notion
- Conversa do Agent termina; resumo em
variables.summary - Notion — append blocks na page do contato no Notion a partir do ID no CRM
Digest diário do quadro de tarefas
- Gatilho agendado
- Notion — query no database onde Status = "Due today"
- Loop + Enviar mensagem aos responsáveis
FAQ
404 object not found?
ID incorreto ou a integração não tem acesso. Compartilhe a page/database com a integração.
400 validation_error em properties?
Nome ou tipo de propriedade incompatível. Busque o schema com Database — get schema e corresponda exatamente.
Posso fazer upload de arquivos no Notion?
File blocks exigem upload em um host primeiro e depois referenciar a URL no payload do block. Considere Google Drive para armazenamento de arquivos.
OAuth vs internal token?
OAuth (serviço conectado) é mais simples para equipes e gerencia o ciclo de vida do token. Internal tokens funcionam para bots de workspace único.
Rate limits?
O Notion impõe limites de taxa (~3 req/s em média). Adicione Delay entre operações em massa ou limite lotes com Loop.
Referência da API
| Item | Valor |
|---|---|
| ID do tipo de nó | notion_request |
| Base URL | https://api.notion.com/v1 |
| Header de versão | Notion-Version: 2022-06-28 |
| Auth | Bearer {{notion_token}} |
| Docs oficiais | Notion API |
Relacionados
Este artigo foi útil?
Precisa de mais ajuda? Falar com suporte