Como sincronizar HubSpot e Notion com o n8n?
Se o seu time guarda os dados de CRM no HubSpot e o contexto dos projetos no Notion, manter as duas ferramentas sincronizadas manualmente consome tempo o tempo todo. Este guia mostra como criar workflows automatizados no n8n que conectam as duas, para que as atualizações de deals cheguem ao Notion e as notas de reunião voltem para o HubSpot sem ninguém precisar copiar e colar. Não é preciso código personalizado, só os nodes nativos do n8n e um pouco de configuração.
Contribuição de
SaaS Hackers
Resposta rápida: Você pode sincronizar HubSpot e Notion usando o n8n com workflows automatizados que disparam a partir de eventos do CRM (novo contato, deal atualizado, closed won) e gravam dados estruturados em databases do Notion, e vice-versa. A configuração leva menos de uma hora e não exige código personalizado, apenas os nodes nativos de HubSpot e Notion do n8n.
O HubSpot guarda os dados do seu CRM. O Notion guarda o raciocínio do seu time. Sem conexão entre os dois, seus account managers ficam copiando e colando detalhes de deals nas notas de reunião, e o time de operações vai atrás de um contexto que já existe em outro lugar.
Este tutorial mostra exatamente como criar uma sincronização bidirecional entre HubSpot e Notion usando o n8n, cobrindo registros de contas e notas. Ao final, você terá um workflow funcionando que mantém as duas ferramentas sincronizadas automaticamente, sem pagar por uma integração nativa que faz só metade do trabalho.
O que você precisa antes de começar
Antes de montar qualquer coisa, deixe estas três coisas prontas:
- Uma instância do n8n (self-hosted ou n8n Cloud, as duas funcionam)
- Uma conta do HubSpot com acesso à API habilitado (qualquer plano pago ou um sandbox de desenvolvedor)
- Um workspace do Notion com pelo menos um database configurado para contas ou contatos
Você também precisará criar credenciais no n8n para as duas ferramentas. O HubSpot usa OAuth2 ou um token de private app. O Notion usa um secret de integração vinculado a um workspace específico.
Como configurar suas credenciais do HubSpot no n8n
- Na sua conta do HubSpot, acesse Settings > Integrations > Private Apps
- Crie um novo private app e conceda a ele os escopos de
crm.objects.contacts.read,crm.objects.deals.read, ecrm.objects.companies.read(adicione escopos de escrita se pretende enviar dados de volta) - Copie o token de acesso
- No n8n, vá em Credentials > New > HubSpot API e cole o token
Como configurar suas credenciais do Notion no n8n
- Acesse notion.so/my-integrations e crie uma nova integração
- Dê um nome a ela (por exemplo, "n8n Sync") e selecione o workspace que você quer conectar
- Copie o secret da integração
- No n8n, vá em Credentials > New > Notion API e cole o secret
- De volta ao Notion, abra o database que você quer sincronizar e clique em Share > Invite e convide sua integração pelo nome
Workflow 1: HubSpot para Notion (sincronização de contas)
Este workflow dispara sempre que um registro de empresa é criado ou atualizado no HubSpot e grava os dados em um database do Notion.
Passo 1: adicione um node HubSpot Trigger
- Crie um novo workflow no n8n
- Adicione um node HubSpot Trigger como ponto de partida
- Defina o evento como
company.creationoucompany.propertyChangeconforme você queira capturar novos registros, atualizações ou ambos - Autentique com as credenciais que você configurou acima
Se você usa uma instância self-hosted sem URL pública de webhook, use o node HubSpot em modo de polling e defina um schedule trigger (a cada 15 minutos funciona bem para a maioria dos times). Se você está planejando uma estrutura de relatórios mais ampla em torno deste workflow, vale pensar também em atribuição e rastreamento de origem, principalmente se quiser rastrear o tráfego vindo de ferramentas de AI junto com a atividade do CRM.
Passo 2: adicione um node HubSpot para buscar os dados completos da empresa
O trigger só passa o ID da empresa. Você precisa de um segundo node para buscar o registro completo.
- Adicione um node HubSpot depois do trigger
- Defina Resource como
Companye Operation comoGet - Mapeie o ID da empresa a partir da saída do trigger usando uma expressão:
{{ $json.objectId }} - Selecione as propriedades que você quer: nome da empresa, domínio, owner, deal stage, receita anual e quaisquer campos personalizados que o seu time use
Passo 3: adicione um node Notion para criar ou atualizar uma página
- Adicione um node Notion
- Defina Resource como
Database Pagee Operation comoCreate - Selecione o seu database de contas
- Mapeie os campos do HubSpot para as propriedades do Notion:
| Campo do HubSpot | Propriedade do Notion |
|---|---|
| name | Name (title) |
| domain | Website (URL) |
| hubspot_owner_id | Owner (texto ou relation) |
| annualrevenue | ARR (número) |
| hs_lastmodifieddate | Last Updated (data) |
Para atualizações, e não criações, é preciso verificar antes se a página já existe. Adicione um node Notion extra antes da etapa de criação, configurado como Search com um filtro pelo domínio ou pelo ID da empresa no HubSpot armazenado como propriedade no Notion. Se algum resultado voltar, mude para uma operação de Update usando o ID da página retornado.
Passo 4: adicione um node IF para tratar a lógica de criar vs atualizar
- Adicione um node IF entre a busca e a gravação
- Condição:
{{ $json.results.length }}é maior que0 - Ramo True: conecte a um node Notion Update
- Ramo False: conecte a um node Notion Create
Isso evita páginas duplicadas e mantém seu database do Notion organizado.
Workflow 2: Notion para HubSpot (notas e resumos de reunião)
Este workflow roda quando uma nova página é adicionada a um database de notas de reunião no Notion e envia uma nota ou engagement de volta para o registro da empresa correspondente no HubSpot.
Passo 1: adicione um Schedule Trigger
O Notion não oferece webhooks de saída nativamente, então o n8n consulta o database periodicamente.
- Adicione um node Schedule Trigger
- Configure para rodar a cada 10 ou 15 minutos
- Este é o seu ponto de entrada
Passo 2: consulte o database do Notion em busca de novas páginas
- Adicione um node Notion
- Defina Resource como
Databasee Operation comoGet Many - Selecione o seu database de notas de reunião
- Adicione um filtro:
Created Timeé depois de{{ $now.minus(15, 'minutes').toISO() }}
Isso traz apenas as páginas criadas nos últimos 15 minutos, de acordo com o seu intervalo de polling.
Passo 3: extraia o ID da empresa no HubSpot a partir do Notion
Para isso funcionar, o seu template de notas de reunião no Notion precisa de uma propriedade que armazene o ID da empresa no HubSpot. Adicione uma propriedade do tipo Number ou Text chamada "HubSpot ID" ao seu template do Notion e inclua-a no processo padrão de anotações do seu time.
Mapeie no n8n: {{ $json.properties['HubSpot ID'].number }}
Passo 4: crie um engagement no HubSpot
- Adicione um node HTTP Request (o node nativo do HubSpot não cobre todos os tipos de engagement, então use a API diretamente aqui)
- Método:
POST - URL:
https://api.hubapi.com/engagements/v1/engagements - Authentication: Header Auth usando o token do seu private app do HubSpot
- Body (JSON):
{
"engagement": {
"active": true,
"type": "NOTE"
},
"associations": {
"companyIds": ["{{ $json.properties['HubSpot ID'].number }}"]
},
"metadata": {
"body": "{{ $json.properties.Name.title[0].plain_text }}\n\n{{ $json.properties.Summary.rich_text[0].plain_text }}"
}
}Isso cria uma nota na timeline de atividades do HubSpot, vinculada à empresa correta, com o título da página e um campo de resumo vindo do Notion.
Como tratar erros e evitar sincronizações duplicadas
Sincronizações bidirecionais quebram de maneiras previsíveis. Veja como evitar os problemas mais comuns.
Evite loops infinitos: Quando o n8n grava um registro no HubSpot, o HubSpot dispara um webhook de volta para o n8n, que tenta gravar no Notion, que você então consulta de novo. Adicione uma propriedade de metadados (por exemplo, synced_by_n8n: true) a todo registro criado pelo seu workflow e coloque um node IF no início de cada workflow que ignore os registros com essa marcação.
Trate campos ausentes com elegância: Use os nodes IF e Set do n8n para definir valores de fallback para qualquer propriedade opcional. Se annualrevenue for nulo no HubSpot, defina como 0 antes de passar ao Notion, em vez de deixar o workflow falhar.
Registre as falhas em um database de erros no Notion: Adicione um error workflow no n8n (Settings > Error Workflow) que grave as execuções com falha em uma página dedicada do Notion. Assim seu time ganha visibilidade sem precisar monitorar o n8n diretamente. Se essa sincronização virar parte de uma operação de receita maior, você também pode precisar do apoio de agências de marketing ops para B2B SaaS especializadas em governança de workflows, atribuição e desenho de processos de CRM.
Como construímos e testamos esta configuração
Este workflow foi construído e testado no n8n Cloud (v1.x) usando um sandbox de desenvolvedor do HubSpot e um workspace do Notion com três databases: Accounts, Meeting Notes e Sync Errors. A sincronização bidirecional rodou sem duplicações em 50 registros de teste e enviou corretamente 12 notas de reunião de volta ao HubSpot como engagements.
A configuração descrita aqui é o mesmo padrão que o SaaS Hackers usa ao criar workflows de automação de CRM para times de B2B SaaS que querem a stack de GTM conectada sem middleware caro.
Perguntas frequentes
O n8n oferece integração nativa entre HubSpot e Notion sem código personalizado?
Sim. O n8n inclui nodes nativos para HubSpot e Notion. Você pode montar um workflow de sincronização funcional usando apenas os editores de nodes, sem escrever código. Para tipos avançados de engagement no HubSpot (como notas), pode ser necessário um node HTTP Request apontando diretamente para a API do HubSpot, mas nenhum script personalizado é necessário.
Qual é a diferença entre uma sincronização unidirecional e bidirecional entre HubSpot e Notion?
Uma sincronização unidirecional envia dados em uma única direção, normalmente do HubSpot para o Notion. Uma sincronização bidirecional lê as mudanças nas duas ferramentas e as grava na outra. A abordagem bidirecional mantém os registros de contas atualizados no Notion e envia notas de reunião ou atualizações de volta para a timeline de atividades do HubSpot, de modo que as duas ferramentas reflitam a mesma realidade.
Com que frequência a sincronização entre HubSpot e Notion no n8n é atualizada?
Depende da configuração do seu trigger. Os webhooks do HubSpot disparam quase em tempo real (segundos após a mudança no registro). O Notion, que não oferece webhooks de saída, depende de polling. Um intervalo de 10 a 15 minutos é um padrão prático para a maioria dos times. Se você precisa de atualizações mais rápidas do Notion para o HubSpot, considere usar um formulário conectado à API do Notion ou um botão de disparo manual no seu template do Notion.
Esta sincronização entre HubSpot e Notion é gratuita?
A versão auto-hospedada do n8n é gratuita e de código aberto. O n8n Cloud tem um plano gratuito com execuções limitadas. A API de apps privados do HubSpot está disponível em todos os planos, inclusive no gratuito. A API do Notion está disponível em todos os planos. O único custo é a hospedagem do n8n, se você mesmo a gerenciar, ou a assinatura do n8n Cloud, caso não faça isso.
O que acontece se uma sincronização falhar no meio do processo?
O n8n registra cada execução com sua entrada, saída e estado de erro. Você pode inspecionar as execuções com falha diretamente no log de execuções. Adicionar um workflow de erro que grave as falhas em um banco de dados de erros no Notion (como descrito acima) dá à sua equipe uma forma mais rápida de identificar e corrigir sincronizações quebradas, sem precisar entrar no n8n toda vez.
Contribuição de
SaaS Hackers


