kb.erickguedes.com
N8N: Automação Low-Code

Integracoes e HTTP Request

Aula 4 de 6

HTTP Request Node

O node HTTP Request e a porta de entrada para integrar com qualquer API REST.

echo "=== HTTP Request Node ==="
echo ""
echo "Metodos suportados: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS"
echo ""
echo "Parametros principais:"
echo "  URL: Endereco da requisicao"
echo "  Method: GET (padrao)"
echo "  Headers: Objeto JSON com headers"
echo "  Body: Corpo da requisicao (JSON, XML, Form) "
echo "  Auth: Credential pre-configurada"
echo ""
echo "Paginator:"
echo "  Pagination Mode: Update/Offset/Cursor"
echo "  Response Path: JSONPath para dados paginados"
echo "=== Exemplos de HTTP Request ==="
echo ""
echo "GET com headers:"
echo "  URL: https://api.github.com/repos/n8n-io/n8n"
echo "  Headers: { 'Accept': 'application/json' }"
echo "  Response: { name: 'n8n', stars: 40000, ... }"
echo ""
echo "POST com body:"
echo "  URL: https://api.exemplo.com/orders"
echo "  Method: POST"
echo "  Body (JSON):"
echo "    {"
echo "      customer: $json.customer,"
echo "      items: $json.items,"
echo "      total: $json.total"
echo "    }"
echo ""
echo "DELETE com auth:"
echo "  URL: https://api.exemplo.com/users/123"
echo "  Method: DELETE"
echo "  Credential: Bearer Token"

Integracoes Nativas

O N8N possui centenas de integracoes nativas (nodes). Abaixo as mais comuns:

echo "=== Integracoes Populares ==="
echo ""
echo "--- Comunicacao ---"
echo "Gmail: Enviar/ler emails, gerenciar labels"
echo "Slack: Enviar mensagens, criar canais"
echo "Telegram: Bots, envio de mensagens"
echo ""
echo "--- Produtividade ---"
echo "Notion: Criar/atualizar paginas e databases"
echo "Airtable: CRUD em bases Airtable"
echo "Google Sheets: Ler/escrever planilhas"
echo "Google Calendar: Criar eventos"
echo ""
echo "--- CRM ---"
echo "HubSpot: Contatos, deals, empresas"
echo "Salesforce: Leads, contas, oportunidades"
echo "Pipedrive: Deals, pessoas, organizacoes"
echo ""
echo "--- Dev/Tech ---"
echo "GitHub: Issues, PRs, repos"
echo "PostgreSQL: Queries SQL"
echo "MongoDB: Documentos, colecoes"
echo "Redis: Key-value operations"

Integracao com Gmail

echo "=== Gmail Node ==="
echo ""
echo "Operacoes:"
echo "  - Send: Enviar email"
echo "  - Get: Ler email especifico"
echo "  - List: Listar emails (com filtros)"
echo "  - Reply: Responder email"
echo "  - Trash: Mover para lixo"
echo ""
echo "Exemplo - Enviar email:"
echo "  To: [email protected]"
echo "  Subject: 'Pedido #123 confirmado'"
echo "  Body (HTML): '<h1>Confirmado</h1><p>Pedido #123</p>'"
echo "  Attachments: PDF do pedido"

Integracao com Slack

echo "=== Slack Node ==="
echo ""
echo "Operacoes:"
echo "  - Send Message: Enviar para canal/usuario"
echo "  - Upload File: Enviar arquivo"
echo "  - Create Channel: Criar canal"
echo "  - List Messages: Listar mensagens"
echo ""
echo "Exemplo - Notificar canal:"
echo "  Channel: #vendas-pedidos"
echo "  Text: 'Novo pedido de R\$ 5.000,00'"
echo "  Blocks (rich format):"
echo "    - Section: 'Cliente: Acme Corp'"
echo "    - Section: 'Produto: Plataforma Pro'"
echo "    - Divider"
echo "    - Actions: [Aprovar, Recusar]"

Autenticacao OAuth2 / API Key

echo "=== Tipos de Credential ==="
echo ""
echo "OAuth2:"
echo "  - Seguro, com refresh token"
echo "  - UX: Redirect URL para autorizar"
echo "  - Ex: Google, Slack, GitHub, HubSpot"
echo "  - Setup: Client ID + Client Secret"
echo ""
echo "API Key:"
echo "  - Simples, header ou query param"
echo "  - Ex: Notion, Airtable, SendGrid"
echo "  - Setup: Key + (opcional) Header Name"
echo ""
echo "Basic Auth:"
echo "  - Usuario + Senha"
echo "  - Ex: Bancos de dados, APIs legadas"
echo ""
echo "Configuracao: Settings > Credentials > Add > Select type"
echo "=== Criando Credential OAuth2 ==="
echo ""
echo "1. Ir em Settings > Credentials > Add"
echo "2. Selecionar 'Google OAuth2 API'"
echo "3. Preencher Client ID e Secret (Google Cloud Console)"
echo "4. Clicar em 'Sign In with Google'"
echo "5. Autorizar escopos (Gmail, Sheets, etc)"
echo "6. Salvar - credential pronta para usar"

Lab: Automacao Multiplataforma

cat > automacao_multiplataforma.sh << 'EOF'
echo "=== Lab: Automacao Multiplataforma ==="
echo ""

echo "Cenario: Novo lead no site -> CRM + Equipe + Planilha"
echo ""

echo "1. Trigger: Webhook POST /leads"
echo "   Body: { name, email, company, phone }"
echo ""

echo "2. Code Node: Validar email"
echo "   const email = $json.email;"
echo "   if (!email || !email.includes('@'))"
echo "     throw 'Email invalido';"
echo "   return items;"
echo ""

echo "3. HubSpot Node: Criar contato"
echo "   Operation: Upsert"
echo "   Email: {{ \$json.email }}"
echo ""
echo "4. Slack Node: Notificar SDR"
echo "   Channel: #novos-leads"
echo "   Text: 'Novo lead: {{ \$json.name }} - {{ \$json.company }}'"
echo ""

echo "5. Google Sheets: Adicionar linha"
echo "   Spreadsheet ID: <id-da-planilha>"
echo "   Sheet: Leads"
echo "   Data: [name, email, company, phone, date]"
echo ""

echo "6. Gmail Node: Enviar email de boas-vindas"
echo "   To: { { \$json.email } }"
echo "   Subject: 'Bem-vindo!'"
echo "   Body: 'Recebemos seu contato...'"
echo ""

echo "Workflow completo em < 10 nodes"
EOF

HTTP Request e a integracao universal. Nodes nativos economizam tempo. A combinacao dos dois cobre qualquer cenario de automacao.