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.