Material interno de treinamento · Customer Success

APIs REST
& integrações
com n8n

Guia de estudo para a equipe entender APIs, ler documentação e montar automações no n8n. Conceitos explicados do zero, com exercícios baseados na API da SenseData.

14 módulos exercícios com a SenseData v2 REST · JSON · Webhooks · Auth · n8n

Dicionário rápido — leia antes de começar

Você vai ver estas palavras o tempo todo. Aqui está cada uma em português claro. Não precisa decorar — volte aqui sempre que esbarrar num termo.

APIO "garçom" que leva seu pedido a um sistema e traz a resposta. É por onde dois programas conversam.
EndpointUm endereço (uma URL) dentro da API que faz uma coisa específica. Ex.: /v2/customers é o endereço dos clientes. Pense em "porta".
Requisição (request)O pedido que você envia. Tem um verbo (o que quer fazer) e um endereço (onde).
Resposta (response)O que a API devolve: os dados que você pediu + um número de status dizendo se deu certo.
Header (cabeçalho)Informações extras que viajam junto com o pedido — como o tipo de conteúdo e a sua identificação (o token).
TokenSua "senha de acesso" à API, em forma de código. Você cola num header para a API saber que é você.
Body (corpo)Os dados que você manda quando está criando ou alterando algo (em POST/PATCH). Quase sempre em JSON.
JSONO formato de texto usado para os dados. Parece uma lista organizada de "campo: valor".
Query paramUm filtro colado no fim da URL depois de ?. Ex.: ?page=2.
Status codeNúmero da resposta. 2xx deu certo · 4xx erro seu · 5xx erro do servidor.
Rate limitLimite de quantos pedidos você pode fazer por minuto. Se passar, vem o erro 429.
PostmanUm programa gratuito onde você monta e dispara essas requisições no clique de um botão — sem programar. Você instala no Módulo 5.
01

Fundamentos da comunicação entre sistemas

Cliente · Servidor · Requisição · Resposta

Antes de tocar em qualquer código, é preciso entender o problema que as APIs resolvem: fazer sistemas que foram construídos por empresas diferentes, em linguagens diferentes, conversarem entre si de forma confiável.

Vídeo de abertura — assista aqui mesmo

Este vídeo explica o conceito de API com a analogia do Restaurante da Selva: você entende como os sistemas se comunicam sem que o cliente precise saber o que acontece na "cozinha" (o servidor). Ele cobre, em poucos minutos, quase tudo que os primeiros módulos aprofundam — vale assistir antes de seguir.

O que você vai ver (com os tempos)

  • 01:30 A analogia do restaurante: o garçom leva o pedido (request) e traz a resposta (response)
  • 03:00 Endpoints e documentação: o "cardápio" define o que pode ser pedido
  • 04:04 Método GET — buscar dados
  • 04:23 Método POST — criar algo novo
  • 04:40 Método PUT — atualizar um registro
  • 04:55 Método DELETE — apagar uma informação
  • 05:45 JSON: a "bandeja padronizada" que transporta os dados
  • 06:40 Status 200 (OK) — sucesso
  • 07:20 Status 404 (Not Found) — não existe
  • 07:32 Status 500 — erro no servidor
  • 08:20 Segurança: a API Key como "pulseira VIP"
  • 09:15 Conclusão: o bom programador reutiliza APIs (Maps, Stripe…) em vez de reinventar a roda

O que é um sistema

Um sistema é qualquer software que guarda e processa informação. No dia a dia você convive com vários, e quase nunca eles "nascem" sabendo conversar uns com os outros:

ERP

Gestão interna de uma empresa: notas fiscais, estoque, financeiro.

CRM

Relacionamento com clientes: leads, oportunidades, funil de vendas.

Plataforma de automação fiscal

Captura, processa e transmite documentos fiscais (NF-e, SPED) entre o contribuinte e os sistemas da Receita.

WhatsApp / Site / Banco

Canais de entrada e saída de dados que precisam ser conectados ao resto.

O problema central

Como o Site avisa o CRM que chegou um lead? Como o WhatsApp manda um pedido para o ERP? Como o ERP envia um lançamento para o sistema financeiro? Sem um "idioma comum" e uma "porta de entrada", cada integração viraria uma gambiarra frágil. A resposta para isso é a API.

A analogia do garçom

A API é o garçom do restaurante. Você (o cliente) não entra na cozinha nem mexe nas panelas. Você faz um pedido pelo cardápio (a documentação), o garçom leva à cozinha (o servidor), a cozinha processa, e o garçom traz a resposta — seu prato ou um "acabou o ingrediente". A API esconde a complexidade e expõe só o que você pode pedir.

Os quatro conceitos que sustentam tudo

ConceitoO que éNo exemplo do iFood
ClienteQuem faz o pedidoO app no seu celular
ServidorQuem processa e guarda os dadosOs servidores do iFood
RequisiçãoA mensagem de pedido enviada"Quero ver restaurantes perto de mim"
RespostaO retorno com dados ou statusA lista de restaurantes em JSON
CLIENTE App do iFood API o "garçom" regras + porta SISTEMA Banco de dados requisição resposta
Fig. 1.1 — O caminho de ida (requisição) e volta (resposta)
Exercício de fixação
  1. O que é uma API, com suas próprias palavras?
  2. Qual a diferença entre um sistema e uma API?
  3. O que é uma requisição?
Responda — sua resposta fica salva para correção
02

A internet e o protocolo HTTP

Métodos · Requisição · Resposta

Toda API REST conversa por cima do HTTP — o mesmo protocolo que seu navegador usa para abrir sites. Dominar HTTP é dominar 70% das integrações.

Como um site funciona, por baixo

Quando você digita um endereço, o navegador manda uma requisição para um servidor, que devolve uma resposta (o HTML da página). Uma API faz exatamente o mesmo — só que devolve dados (JSON) em vez de uma página bonita.

Definição

HTTP (HyperText Transfer Protocol) é o conjunto de regras que define como cliente e servidor trocam mensagens: qual ação está sendo pedida, qual o endereço, quais dados vão junto e o que voltou.

Os 5 métodos (verbos) HTTP

O verbo diz a intenção da requisição. O mesmo endereço pode se comportar de formas diferentes dependendo do verbo usado.

GETBuscar / ler dados. Nunca altera nada.GET /clientes
POSTCriar um novo registro.POST /clientes
PUTAtualizar o registro inteiro (substitui tudo).PUT /clientes/10
PATCHAtualizar parcialmente (só um campo).PATCH /clientes/10
DELETEExcluir um registro.DELETE /clientes/10
NAVEGADOR (cliente) SERVIDOR (API) GET /clientes/10 + headers 200 OK + { "nome": "João" } ANATOMIA DE UMA TROCA HTTP Requisição = verbo + endereço + headers + (body) Resposta = status + headers + body
Fig. 2.1 — A mesma mecânica de um site, devolvendo dados
Exercício — escolha o verbo certo SenseData

Na API da SenseData v2, qual verbo HTTP você usaria para cada tarefa de Customer Success?

Tarefa realSeu verbo
Listar os clientes da carteira
Importar novos clientes vindos do ERP
Atualizar só o CSM responsável de um cliente
Apagar uma nota de cliente lançada por engano
Responda — sua resposta fica salva para correção
Laboratório — primeiro contato com a SenseData SenseData

Antes de qualquer integração, valide seu token (sua senha de acesso à API) chamando GET https://api.sensedata.io/v2/me e enviando, junto, o header (cabeçalho) Authorization: Bearer <token>. Se voltar 200 com os seus dados de usuário, a credencial está válida — e você já tem a base de toda a API.
Calma: você ainda não sabe onde digitar isso. No Módulo 5 você instala o Postman e faz essa chamada na prática, passo a passo. A documentação oficial de todos os endpoints fica em api.sensedata.io/v2/redoc.

03

JSON na prática

O idioma universal das APIs

JSON (JavaScript Object Notation) é o formato em que praticamente toda API moderna troca dados. É só texto, legível por humanos e por máquinas. Se você entende JSON, você entende o que entra e sai de qualquer integração.

{
  "nome": "João",
  "idade": 30,
  "cidade": "São Paulo"
}

Os tipos de dados

String — texto

"nome": "João"

Number — número

"idade": 30

Boolean — verdadeiro/falso

"ativo": true

Array — lista

"telefones": [
  "11999999999",
  "11888888888"
]

Object — objeto aninhado

"endereco": {
  "cidade": "São Paulo",
  "uf": "SP"
}
Erros que travam iniciantes

Vírgula sobrando após o último item; aspas simples em vez de duplas (JSON exige aspas duplas); chave sem aspas. Um validador como jsonlint.com aponta o erro na hora.

A estrutura em camadas

{ "empresa": { "razao_social", "cnpj" objeto com dados da empresa "socios": [ {…}, {…} ] array de objetos "funcionarios": [ {…}, {…}, {…} ] array de objetos
Fig. 3.1 — Objetos dentro de objetos, arrays dentro de objetos
Exercício — monte o JSON de um cliente SenseData SenseData

O endpoint (o endereço dentro da API) POST /v2/customers exige os campos: id_legacy, name_contract, name, dt_register, status, cs e csm. Monte o JSON de um cliente, lembrando que status, cs e csm são objetos (uma referência a outro cadastro — chamamos de FK, "chave estrangeira").

Responda — sua resposta fica salva para correção
Exercício avançado — batch de clientes SenseData

A SenseData aceita arrays em POST/PATCH para inserção em lote. Monte um corpo que crie dois clientes de uma vez — é assim que se sincroniza uma carteira inteira sem estourar rate limit.

Responda — sua resposta fica salva para correção
04

APIs REST na prática

Endpoints · Recursos · Verbos

REST é o padrão arquitetural mais usado para construir APIs. A ideia central: organizar a API em torno de recursos (substantivos) e usar os verbos HTTP para agir sobre eles.

Endpoint = endereço de um recurso

https://api.empresa.com/clientes
└──────────┬─────────┘ └───┬───┘
        base URL        recurso

Recursos comuns: /clientes, /produtos, /pedidos. Repare que são sempre substantivos no plural — nunca verbos. A ação quem define é o método HTTP.

Verbo + recurso = operação

GETLista todos os clientes/clientes
GETBusca o cliente de id 10/clientes/10
POSTCria um novo cliente/clientes
DELETEApaga o cliente de id 10/clientes/10
A regra de ouro REST

O endereço diz com o quê você está mexendo (o recurso). O verbo diz o que você quer fazer. /clientes é o mesmo endereço para listar (GET) e para criar (POST) — muda só o verbo.

RECURSO /clientes — UMA URL, VÁRIAS AÇÕES /clientes recurso GET listar POST criar PATCH editar DELETE apagar
Fig. 4.1 — O recurso é o centro; os verbos orbitam em torno dele
Exercício — leia o endpoint da SenseData SenseData

O que cada chamada faz na API v2?

  • GET /v2/customers
  • GET /v2/customers/8821
  • POST /v2/nps
  • DELETE /v2/customers_notes
  • PATCH /v2/billing
Responda — sua resposta fica salva para correção
05

Consumindo APIs

Instalar o Postman · Headers · Params · Body

Agora você vai disparar requisições de verdade. As ferramentas mais usadas são Postman, Insomnia e Bruno — todas deixam você montar a requisição peça por peça e ver a resposta.

As quatro peças de uma requisição

PeçaPara que serveExemplo
HeadersMetadados: formato, autenticaçãoContent-Type: application/json
Path ParamIdentifica um item na própria URL/users/2
Query ParamFiltra / pagina, após o ?/users?page=2
BodyOs dados enviados (em POST/PUT/PATCH)JSON do novo registro
GET /clientes/10?status=ativo ▲ path param query param ▼
Fig. 5.1 — Path param identifica o item; query param filtra

Lendo a resposta

// GET https://reqres.in/api/users/2
{
  "data": {
    "id": 2,
    "email": "janet.weaver@reqres.in",
    "first_name": "Janet"
  }
}

Mãos à obra: instalando o Postman

O Postman é um programa gratuito onde você monta e dispara requisições clicando — não precisa programar nada. É a forma mais fácil de fazer sua primeira chamada de verdade. Vamos do download até a primeira resposta.

Baixe o Postman

Abra o navegador e vá em postman.com/downloads. O site detecta seu sistema automaticamente.

Windows Clique em Windows 64-bit. Vai baixar um arquivo Postman-win64-Setup.exe.

Mac Clique em Mac Apple Chip (para os MacBooks M1/M2/M3/M4) ou Mac Intel Chip nos modelos mais antigos.

Instale

Windows Dê dois cliques no arquivo baixado. A instalação é automática — em poucos segundos o Postman abre sozinho.

Mac Abra o arquivo .zip/.dmg baixado e arraste o ícone do Postman para a pasta Aplicativos. Depois abra pelo Launchpad.

Pule o login (opcional)

O Postman pede para criar conta. Você pode criar uma grátis (útil para salvar seu trabalho na nuvem) ou clicar em "Continue without an account" / "Skip", no rodapé, para usar offline. Para o treinamento, qualquer opção serve.

Crie sua primeira requisição

Clique no botão New (ou no + ao lado das abas). Vai abrir uma aba em branco com uma barra no topo: um seletor de método (começa em GET) e um campo de URL ("Enter URL").

GET https://api.sensedata.io/v2/me Send 1. método 2. cole a URL aqui 3. clique em Send
Fig. 5.2 — A barra principal do Postman: método, URL e o botão Send

Escolha o método e digite a URL

Deixe o método em GET. No campo de URL, cole o nosso primeiro endereço de teste:

https://api.sensedata.io/v2/me

Esse endereço apenas devolve "quem é você" — é o teste mais seguro para começar, não altera nada.

Coloque o token — aqui é o pulo do gato

Logo abaixo da barra de URL há uma fileira de abas: Params · Authorization · Headers · Body. Clique em Authorization.

No campo "Type", escolha Bearer Token. Vai aparecer uma caixa "Token" à direita. Cole ali o seu token (aquele código que a SenseData fornece). Pronto — é exatamente esse o "onde colocar o token".

Params Authorization Headers Body Type Bearer Token Token cole-seu-token-aqui ●●●●●●●●●● ▲ é aqui que o token entra
Fig. 5.3 — Aba Authorization → tipo Bearer Token → cole o token na caixa

Clique em Send e leia a resposta

Aperte o botão azul/amarelo Send. Na metade de baixo da tela aparece a resposta: um JSON com seus dados e, no canto, o status. Se vier 200 OK em verde, deu tudo certo — seu token funciona!

Se der erro, não entre em pânico

401 → token errado, vazio, ou faltou escolher "Bearer Token". 404 → URL digitada errada. 429 → você fez chamadas demais, espere um pouco. (A tabela completa está no Módulo 10.)

Boa prática: guarde o token numa variável

Para não colar o token toda hora, clique no ícone de olho no canto superior direito → Add em "Environment". Crie uma variável chamada token e cole o valor lá uma única vez. Depois, na aba Authorization, escreva {{token}} no lugar do token. Assim você troca a credencial em um só lugar.

200 OK Time: 240 ms { "id": 7, "name": "Leônidas", "email": "leonidas@empresa.com.br" } ▲ deu certo
Fig. 5.4 — Resposta de sucesso: status 200 e o JSON com seus dados
Insomnia e Bruno

O Insomnia e o Bruno são alternativas gratuitas ao Postman e funcionam quase igual: método, URL, aba de Auth para o Bearer Token e botão de enviar. Se você aprendeu no Postman, usa qualquer um deles sem dificuldade. O Bruno é leve e guarda tudo em arquivos no seu computador.

Exercício — busca filtrada na SenseData SenseData

Agora no Postman: monte a URL que lista os clientes cancelados em 2025, trazendo 100 por página. Cole no campo de URL, mantenha o método em GET e o Bearer Token na aba Authorization, e clique em Send. Dica: a SenseData filtra por data com os sufixos :start e :end e pagina com limit e page.

Responda — sua resposta fica salva para correção
Exercício — path param × query param SenseData

Você quer (a) o cliente de id interno 8821 e (b) todos os contatos ativos desse mesmo cliente. Escreva as duas chamadas.

Responda — sua resposta fica salva para correção
Exercício avançado — crie um contato via POST SenseData

POST /v2/contacts exige: customer, is_main_sponsor, is_active e name. Crie o contato principal de um cliente, referenciando-o pela chave do ERP.

[
  {
    "customer": { "id_legacy": "ERP-4471" },
    "name": "Leônidas Ferreira",
    "email": "leonidas@contabilidademodelo.com.br",
    "occupation": "Sócio-diretor",
    "is_main_sponsor": true,
    "is_active": true
  }
]
Responda — sua resposta fica salva para correção
06

Autenticação

API Key · Bearer Token · OAuth 2.0

APIs sérias não são abertas: elas precisam saber quem está chamando e se essa pessoa pode. Isso evita abuso, permite cobrança e protege dados. A credencial quase sempre viaja num header.

Os três modelos que você vai encontrar

API Key

Uma chave fixa enviada num header. Simples, comum em integrações servidor-a-servidor.

x-api-key: abc123

Bearer Token

Um token (muitas vezes temporário) enviado no header Authorization.

Authorization:
 Bearer eyJhbGci…

OAuth 2.0

Fluxo onde o app troca credenciais por um token de acesso, sem expor a senha do usuário.

OAuth 2.0 — o fluxo simplificado

SEU APP SERVIDOR DEAUTORIZAÇÃO API DERECURSOS 1. credenciais 2. access token 3. requisição + Bearer token 4. dados protegidos O token tem validade; ao expirar, repete-se o passo 1–2 (refresh).
Fig. 6.1 — OAuth troca credenciais por um token de acesso temporário
Segurança

Nunca coloque chaves ou tokens dentro da URL nem em código versionado no Git. Use variáveis de ambiente / credenciais do n8n. Trate todo token como se fosse uma senha.

Exercício de diagnóstico SenseData

Você chamou GET https://api.sensedata.io/v2/customers e recebeu 401. O que aconteceu e como resolver?

Responda — sua resposta fica salva para correção
07

Webhooks

Quando o sistema avisa você

Até aqui você chamava a API. Webhook é o inverso: a API chama você quando algo acontece. É a base de quase toda automação em tempo real.

Polling × Webhook

Polling (ruim)

Seu sistema fica perguntando de minuto em minuto: "tem novidade? e agora? e agora?". Desperdiça recursos e atrasa.

Webhook (bom)

Você registra uma URL. Quando o evento ocorre, o outro sistema dispara um POST para você na hora. Zero desperdício.

EXEMPLO: PAGAMENTO NO STRIPE STRIPE WEBHOOK n8n CRM pagamento ✓ dispara POST processa atualiza payload recebido pelo webhook: { "evento": "pagamento.aprovado", "valor": 199.90 }
Fig. 7.1 — Um evento percorre a cadeia automaticamente, em tempo real
Exercício — webhook simples

Crie um nó Webhook (no n8n) e faça-o receber o payload abaixo. Depois, visualize os dados recebidos.

{
  "nome": "Maria",
  "email": "maria@email.com"
}
Responda — sua resposta fica salva para correção
Exercício avançado — pesquisa NPS → SenseData SenseData

Sua ferramenta de pesquisa (ex.: formulário de NPS) dispara um webhook a cada resposta. Receba o payload no n8n e registre a resposta na SenseData via POST /v2/nps (obrigatórios: id_legacy, customer, ref_date, survey_date, medium, respondent, score).

// payload recebido no webhook
{ "cnpj": "12345678000190", "quem": "leonidas@cliente.com.br", "nota": 9 }
Responda — sua resposta fica salva para correção
08

n8n do zero ao avançado

Nodes · Fluxos · Execução

O n8n é uma ferramenta de automação visual: em vez de escrever todo o código de integração, você arrasta nodes (nós) e os conecta formando um fluxo. Cada node faz uma coisa; os dados fluem de um para o outro.

Anatomia de um fluxo

ConceitoO que é
TriggerO node que inicia o fluxo (Webhook, agendamento, novo e-mail…)
NodeUma etapa: chamar API, transformar dado, gravar em planilha…
ConexãoA "linha" por onde os dados passam de um node ao próximo
ExecuçãoUma rodada completa do fluxo, com dados reais percorrendo os nodes

Três fluxos para treinar

PRÁTICA 1 — captura simples Webhook Set Google Sheets PRÁTICA 2 — decisão condicional Webhook IF Email (true) Stop (false) PRÁTICA 3 — enriquecer e gravar HTTP Request Edit/Transform JSON CRM
Fig. 8.1 — Do mais simples ao mais completo, em nodes encadeados
Dica de hospedagem

O n8n roda em nuvem (n8n.cloud) ou self-hosted num VPS via Docker. Para integrações com dados sensíveis, o self-hosted dá controle total — coerente com cenários onde já se avalia VPS próprio para orquestração.

Exercício — monte a Prática 1

Crie um fluxo Webhook → Set → Google Sheets que receba nome e e-mail e grave uma linha na planilha. Ative e teste com a URL de produção.

Responda — sua resposta fica salva para correção
09

Manipulação de dados no n8n

Expressions · JSON Path · Merge · Loop

O que separa um fluxo bonito de um fluxo que funciona é a manipulação de dados. Aqui você aprende a pescar exatamente o campo certo de dentro de um JSON e a transformar listas.

Expressions e JSON Path

No n8n, você acessa dados de nodes anteriores com expressions, escritas entre {{ }}. O caminho até o dado é o JSON Path.

// dado de entrada
{ "cliente": { "nome": "João" } }
// expression para extrair "João"
{{ $json.cliente.nome }}   // → João

Operações essenciais

Set / Edit Fields

Cria, renomeia e remodela campos para o formato que o próximo sistema espera.

Merge

Junta dados de dois ramos — ex.: combinar o lead com o resultado de uma API de enriquecimento.

Split / Loop

Quebra um array em itens individuais para processar um a um (Split Out / Loop Over Items).

1 item [ A, B, C ] (array) Split Out item A item B item C
Fig. 9.1 — Split transforma uma lista em itens processáveis um a um
Exercício — extraia o CSM do cliente SenseData

A resposta de GET /v2/customers/8821 chega assim. Escreva a expression que devolve o e-mail do CSM.

{
  "id": 8821,
  "name": "Contabilidade Modelo",
  "csm": { "name": "Bruno", "email": "bruno.csm@empresa.com.br" }
}
Responda — sua resposta fica salva para correção
Exercício avançado — uma tarefa de CS por cliente em risco SenseData

Você buscou os clientes com NPS detrator e recebeu um array. Crie uma atividade (POST /v2/tasks) para o CSM acompanhar cada cliente da lista.

Responda — sua resposta fica salva para correção
10

Tratamento de erros

Status HTTP · Retry · Timeout · Logs

Integração que não trata erro é integração que falha em silêncio. Saber ler o status HTTP da resposta é a habilidade de diagnóstico número um.

Os status que você precisa conhecer de cor

CódigoFamíliaSignificado
200SucessoOK — deu certo
201SucessoCreated — recurso criado (típico de POST)
400Erro do clienteBad Request — você mandou algo malformado
401Erro do clienteUnauthorized — falta autenticação válida
403Erro do clienteForbidden — autenticado, mas sem permissão
404Erro do clienteNot Found — recurso não existe
422Erro do clienteUnprocessable Entity — falha de validação (campo obrigatório/FK)
429Erro do clienteToo Many Requests — você estourou o rate limit
500Erro do servidorInternal Server Error — o problema é do outro lado
Como memorizar as famílias

2xx = "deu certo". 4xx = "o erro foi seu" (cliente). 5xx = "o erro foi deles" (servidor). Só isso já direciona 90% do diagnóstico: se é 4xx, revise sua requisição; se é 5xx, o problema está no servidor e cabe retry.

Estratégias de resiliência

Retry

Tentar de novo automaticamente em falhas temporárias (5xx, 429), com espera crescente entre tentativas (backoff).

Timeout

Definir um tempo máximo de espera para não travar o fluxo indefinidamente quando a API não responde.

Logs

Registrar o que entrou, o que voltou e o erro. Sem log, você fica cego quando algo quebra em produção.

No n8n

Cada node tem Settings → Retry On Fail e Continue On Fail. Use um Error Trigger num fluxo separado para capturar qualquer falha e notificar a equipe automaticamente.

Exercício — diagnostique na SenseData SenseData

Caso 1: GET /v2/customers/9999 retornou 404.
Caso 2: POST /v2/customers retornou 422 em um dos itens do array.
Diagnostique cada um.

Responda — sua resposta fica salva para correção
11

Projeto Real 1 — Captação de leads

Webhook · JSON · API · Transformação

Primeiro projeto ponta a ponta. Um formulário capta um lead; o n8n recebe, organiza, registra no CRM e dispara avisos por e-mail e WhatsApp. É o fluxo que mais gera valor comercial imediato.

Formulário Webhook n8n / Set CRM Email WhatsApp
Fig. 11.1 — Pipeline de captação de leads ponta a ponta

Objetivos de aprendizado

  • Webhook recebendo o lead do formulário.
  • JSON: ler e validar os campos que chegaram.
  • API: criar o contato no CRM via POST autenticado.
  • Transformação: mapear os campos do formulário para o formato do CRM.
Entregável

Fluxo n8n ativo que, ao receber um lead, cria o contato no CRM e notifica a equipe. Inclua ao menos um node de validação (IF) descartando leads sem e-mail.

Responda — sua resposta fica salva para correção
12

Projeto Real 2 — Integração financeira

GET · POST · Auth · Logs · Erros

Aqui o foco é confiabilidade. Dados saem do Sistema A, passam pelo n8n e entram no Sistema B. Dinheiro não admite falha silenciosa: autenticação, logs e tratamento de erro são obrigatórios.

Sistema AGET dados n8n Sistema BPOST cria Logs
Fig. 12.1 — A→n8n→B, com trilha de logs paralela

Funcionalidades obrigatórias

  • GET autenticado para extrair os lançamentos do Sistema A.
  • POST autenticado para inserir no Sistema B.
  • Logs de cada execução (entrada, saída, status).
  • Tratamento de erro com retry em 5xx/429 e notificação em falha definitiva.
Idempotência

Em integração financeira, reenviar o mesmo lançamento duas vezes é desastre. Garanta idempotência: use um identificador único por transação para que o Sistema B reconheça e ignore duplicatas (ver Módulo 13). Na SenseData, esse papel é do id_legacy — a chave do seu sistema de origem, usada para deduplicação.

Exercício aplicado — sincronizar faturas no SenseData SenseData

Concretizando o projeto com a SenseData: extraia faturas do ERP e grave em POST /v2/billing (obrigatórios: id_legacy, customer, ref_doc, ref_invoice, due_date, invoice_date, amount, status). Depois, quando o cliente pagar, atualize via PATCH /v2/billing.

Responda — sua resposta fica salva para correção
13

APIs REST avançadas

Paginação · Rate limit · Versão · Idempotência · OpenAPI

Os conceitos que aparecem quando você sai de exemplos de tutorial e encara APIs reais de produção, com milhares de registros e limites rígidos.

Paginação

APIs não devolvem 50 mil registros de uma vez. Elas paginam: ?page=2&per_page=100 ou via cursor. Seu fluxo precisa percorrer todas as páginas até o fim.

Rate limits

Limite de chamadas por janela de tempo. Estourou? Vem o 429. Respeite o header Retry-After e use backoff.

Versionamento

APIs evoluem sem quebrar quem já usa: /v1/clientes, /v2/clientes. Saiba qual versão você consome.

Cache

Guardar respostas que mudam pouco evita chamadas repetidas e melhora performance. Headers como ETag e Cache-Control governam isso.

Idempotência

Repetir a mesma requisição não deve criar efeitos duplicados. Chave de idempotência protege POSTs sensíveis (pagamentos).

HATEOAS

A resposta traz links para as próximas ações possíveis, tornando a API auto-descritiva. Mais raro, mas bom conhecer.

OpenAPI / Swagger — a documentação viva

A maioria das APIs sérias publica um arquivo OpenAPI (antes "Swagger"): a especificação legível por máquina de todos os endpoints, parâmetros e respostas. É o "mapa oficial" — saber lê-lo encurta qualquer integração.

Ao ler uma doc OpenAPI, mapeie sempre: Endpoint Método Headers Body Respostas Esses cinco itens descrevem qualquer chamada por completo.
Fig. 13.1 — Os cinco itens a extrair de qualquer documentação
Documentação oficial da SenseData SenseData

A referência completa da API v2 está publicada em formato ReDoc, com todos os endpoints, parâmetros, campos obrigatórios e exemplos de resposta:

https://api.sensedata.io/v2/redoc

Use essa página como seu "mapa oficial": ao precisar de um endpoint novo, procure-o ali e extraia os cinco itens acima (endpoint, método, headers, body, respostas) antes de montar a chamada no Postman ou no n8n.

Exercício — paginação completa na SenseData SenseData

Você precisa extrair toda a base de clientes (são ~2.300). A SenseData devolve no máximo 100 por página. Descreva o laço que garante trazer todos sem perder nenhum.

Responda — sua resposta fica salva para correção
Exercício — sobreviver ao rate limit (429) SenseData

Durante a importação em lote, a SenseData começou a responder 429. O que está acontecendo e qual a estratégia correta?

Responda — sua resposta fica salva para correção
Exercício — leia a doc de KPIs e monte a chamada SenseData

Você quer o health score de um cliente nos últimos 6 meses. Consultando a doc oficial (api.sensedata.io/v2/redoc): qual a sequência de chamadas e a URL final?

Responda — sua resposta fica salva para correção
14

Arquitetura de integrações

Nativa × API custom · Síncrono · Event-driven

O módulo que transforma um operador de n8n em um arquiteto: saber qual mecanismo escolher para cada problema, e por quê.

Quando usar o quê

MecanismoUse quando
API (request)Você precisa de uma resposta na hora. Comunicação síncrona.
WebhookReagir a eventos do outro sistema em tempo real, sem ficar perguntando.
Fila (queue)Volume alto ou picos: desacopla produtor e consumidor, processa no ritmo possível.
Banco de dadosPersistir estado, histórico, logs e dados de referência consultáveis.

Síncrono

Pede e espera a resposta antes de continuar. Simples, mas trava se o outro lado demora.

Assíncrono

Dispara e segue a vida; a resposta chega depois (callback/webhook/fila). Resiliente.

Event-driven

O sistema reage a eventos publicados. Componentes desacoplados, escala melhor.

Integração nativa × integração por API custom

Esta é uma das primeiras decisões de qualquer integração: usar uma conexão pronta que a ferramenta já oferece, ou construir você mesmo a chamada à API. As duas levam ao mesmo lugar — a diferença é quanto trabalho, controle e manutenção cada uma exige.

Integração nativa (conector pronto)

A ferramenta (n8n, Zapier, Make…) já traz um nó/conector daquele serviço. Você só faz login, escolhe a ação numa lista e preenche os campos. A autenticação, o formato do JSON e o tratamento de erro já vêm prontos.

Ex.: no n8n, o nó "Gmail" ou "Google Sheets" — clicou, conectou a conta, pronto.

Integração por API custom (você monta)

Não existe conector pronto (ou ele não cobre o que você precisa), então você usa um nó genérico de HTTP Request e monta a chamada na mão: método, URL, header com o token, body em JSON. É exatamente o que você aprendeu nos módulos anteriores.

Ex.: a SenseData não tem um nó dedicado no n8n — então você integra via HTTP Request, montando GET /v2/customers com o Bearer token.

NATIVA — conector pronto n8n (nó) Serviço login + escolher ação auth/JSON já resolvidos API CUSTOM — você monta HTTP Request API do serviço método + URL + header (token) você trata JSON e erros mesmo resultado final muda o esforço, o controle e a manutenção
Fig. 14.2 — Dois caminhos para o mesmo destino: conector pronto ou chamada construída à mão

Comparativo rápido

CritérioNativa (conector)API custom (HTTP)
Rapidez para montarAlta — poucos cliquesMenor — você configura tudo
Conhecimento exigidoBaixoMédio — REST, JSON, auth, erros
FlexibilidadeLimitada ao que o conector expõeTotal — qualquer endpoint da API
ManutençãoO fornecedor atualiza o conectorSua — se a API mudar, você ajusta
Quando a API mudaCostuma continuar funcionandoPode quebrar e exigir correção
Disponível paraSó serviços popularesQualquer API com documentação
Regra prática

Se existe um conector nativo que faz o que você precisa, use-o — é mais rápido e exige menos manutenção. Parta para a API custom (HTTP Request) quando não houver conector, quando ele não cobrir a ação específica, ou quando você precisar de um endpoint que só a API oferece. No caso da SenseData, como não há nó dedicado, o caminho é sempre o HTTP Request.

Exercício — nativa ou custom? SenseData

Para cada tarefa, decida o caminho mais sensato:

  1. Mandar um e-mail de aviso pelo Gmail quando um fluxo terminar.
  2. Buscar os clientes detratores na SenseData.
  3. Salvar uma linha numa planilha do Google Sheets.
  4. Criar uma tarefa de CS na SenseData a partir de um webhook.
Responda — sua resposta fica salva para correção

Estudo de caso — fluxo corporativo completo

ERP n8n CRM WhatsApp Data Warehouse
Fig. 14.1 — Dados percorrendo a stack corporativa e desaguando no DW para análise
Exercício — desenhe a arquitetura

Escolha um processo do seu trabalho e desenhe a arquitetura completa: o que é síncrono, o que é assíncrono, onde entram webhooks, onde fica o log e onde os dados são armazenados para análise.

Responda — sua resposta fica salva para correção

Projeto Final integrador

Tudo junto, ponta a ponta

Um projeto realista do dia a dia de Customer Success, usando só o que você aprendeu e endpoints reais da SenseData. Objetivo: quando um cliente responde uma pesquisa de NPS com nota baixa (detrator), o CSM responsável é avisado na hora e já recebe uma tarefa de acompanhamento — sem ninguém precisar ficar olhando relatório.

Cenário — alerta de cliente em risco SenseData

A pesquisa de NPS dispara um webhook a cada resposta. Se a nota for de 0 a 6 (detrator), o fluxo busca quem é o cliente e o CSM dele, cria uma tarefa de contato e notifica o time. Notas 7+ são apenas registradas. É um fluxo curto, seguro e de valor imediato para a carteira.

Webhookresposta de NPS IF nota ≤ 6 ?detrator? GET cliente + CSM POST tarefa de contato Notifica CSM (Slack) nota 7+ → só registra Registra log Erro → avisa equipe
Fig. ★ — Detrator de NPS aciona busca, tarefa, notificação e log; nota alta só é registrada

Passo a passo do fluxo

  1. Webhook recebe a resposta de NPS (com CNPJ ou e-mail do respondente e a nota).
  2. IF: a nota é menor ou igual a 6? Se não, segue para "só registrar" e encerra.
  3. GET /v2/customers (filtrando por CNPJ) para descobrir o cliente e quem é o CSM responsável.
  4. POST /v2/tasks criando uma tarefa de contato para esse CSM, com prazo de 2 dias.
  5. Notifica o CSM no canal interno (Slack/e-mail) com o nome do cliente e a nota.
  6. Log de cada execução e um ramo de erro que avisa o time se algo falhar.

Entregáveis

1 · Fluxo n8n

Funcionando, ativo e testado com respostas de NPS de exemplo.

2 · Documentação dos endpoints

Os endpoints da SenseData usados: método, header de token, body e respostas.

3 · Mapeamento JSON

De-para: campos do webhook de NPS → campos da tarefa na SenseData.

4 · Tratamento de erros

Retry em 429/5xx e notificação ao time em caso de falha.

5 · Diagrama do fluxo

Visão geral de quem dispara o quê, do webhook ao log.

Onde você chega

Concluindo este projeto, você sai de "não sei o que é uma API" e passa a construir, sozinho, uma automação real de Customer Success — lendo a documentação da SenseData, montando requisições, tratando erros e orquestrando tudo no n8n.