Pular para o conteúdo
vibe coding

Automação Ágil: Fluxos com Make, n8n e Power Automate

Admin 5 min de leitura
Automação Ágil: Fluxos com Make, n8n e Power Automate

Automação Ágil: Fluxos com Make, n8n e Power Automate

“Processos manuais custam tempo, dinheiro e geram erros. Automatizá‑los com ferramentas adequadas transforma a operação em um motor de eficiência.”

Neste artigo vamos construir, passo a passo, um fluxo de automação empresarial usando três plataformas amplamente adotadas no mercado: Make (antigo Integromat), n8n (open‑source) e Microsoft Power Automate. Você verá a arquitetura ideal, como conectar sistemas via webhook e API REST, além de códigos reais em Go e JavaScript que podem ser inseridos nas ferramentas para estender a lógica.

Público-alvo: Analistas de negócios, desenvolvedores de integração e gestores de TI que desejam acelerar a digitalização de processos sem criar infraestruturas complexas.


Tecnologia e Inovação

Sumário

  • Conceitos fundamentais e arquitetura de automação
  • Ferramentas low‑code para orquestração de fluxos
  • Integração via webhook e API REST
  • Exemplo prático completo
  • Monitoramento, logs e otimizações
  • Conclusão

  • Conceitos fundamentais e arquitetura de automação

    ConceitoPor que importa?
    RPA (Robotic Process Automation)Permite reproduzir tarefas repetitivas em sistemas legados ou SaaS sem alterar código.
    WebhookCanal de comunicação “push” que notifica instantaneamente outras ferramentas quando um evento ocorre.
    API RESTInterface padronizada para leitura e escrita de dados entre sistemas heterogêneos.
    BPMN (Business Process Model and Notation)Linguagem visual para mapear processos e garantir que a automação siga a lógica de negócio.
    Orquestração de FluxoCoordenação de múltiplas chamadas, decisões condicionais e tratamento de exceções em um único pipeline.

    A arquitetura típica que vamos explorar tem três camadas:

  • Entrada – Formulário web, e‑mail ou sensor que dispara um webhook.
  • Orquestrador – Make, n8n ou Power Automate recebem o evento, aplicam regras de negócio e encadeiam chamadas.
  • Destino – Sistemas finais (CRM, ERP, Slack, etc.) recebem os dados processados.
  • Desenvolvimento e Código

    Ferramentas low‑code para orquestração de fluxos

    FerramentaPrincipais recursosQuando usar
    MakeConexões nativas a mais de 1 000 apps, editor visual de cenários, suporte a funções JavaScript.Processos que precisam de alta disponibilidade e integração pronta‑a‑usar.
    n8nCódigo aberto, execução auto‑hospedada, possibilidade de criar nós customizados em JavaScript/TypeScript.Empresas que desejam total controle sobre a infraestrutura e flexibilidade de customização.
    Power AutomateIntegração profunda com o ecossistema Microsoft (Office 365, Teams, Dynamics), gatilhos baseados em eventos do Azure.Organizações já inseridas no Microsoft 365 e que precisam de fluxos que interajam com SharePoint, Outlook, etc.

    Por que combinar as três?

    • Make oferece rapidez na prototipação;
    • n8n garante que você pode hospedar o fluxo internamente, evitando dependência de nuvem pública;
    • Power Automate conecta o fluxo ao ambiente corporativo da Microsoft, permitindo, por exemplo, criar documentos no SharePoint automaticamente.

    Integração via webhook e API REST

    1. Criando um endpoint webhook em Go

    O código abaixo expõe um endpoint HTTP simples que recebe um payload JSON, valida a assinatura HMAC e encaminha o conteúdo para a API de um sistema de tickets (ex.: ServiceNow). O servidor pode ser rodado em qualquer máquina ou serviço de nuvem (AWS Lambda, Google Cloud Run, etc.).

    // webhook_server.go
    

    package main

    import ( "crypto/hmac" "crypto/sha256" "encoding/hex" "encoding/json" "io/ioutil" "log" "net/http" "os" )

    type TicketPayload struct { Title string json:"title" Description string json:"description" Priority string json:"priority" }

    // verifica assinatura HMAC enviada no cabeçalho X-Signature func validateSignature(body []byte, signature string) bool { secret := []byte(os.Getenv("WEBHOOK_SECRET")) mac := hmac.New(sha256.New, secret) mac.Write(body) expectedMAC := hex.EncodeToString(mac.Sum(nil)) return hmac.Equal([]byte(expectedMAC), []byte(signature)) }

    // handler principal func webhookHandler(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { http.Error(w, "Método não permitido", http.StatusMethodNotAllowed) return }

    signature := r.Header.Get("X-Signature") body, err := ioutil.ReadAll(r.Body) if err != nil { http.Error(w, "Falha ao ler corpo", http.StatusBadRequest) return } defer r.Body.Close()

    if !validateSignature(body, signature) { http.Error(w, "Assinatura inválida", http.StatusUnauthorized) return }

    var payload TicketPayload if err := json.Unmarshal(body, &payload); err != nil { http.Error(w, "JSON inválido", http.StatusBadRequest) return }

    // chamada à API do ServiceNow (exemplo simplificado) req, _ := http.NewRequest(http.MethodPost, "https://example.service-now.com/api/now/table/incident", nil) q := req.URL.Query() q.Add("short_description", payload.Title) q.Add("description", payload.Description) q.Add("priority", payload.Priority) req.URL.RawQuery = q.Encode() req.Header.Set("Authorization", "Bearer "+os.Getenv("SNOW_TOKEN"))

    resp, err := http.DefaultClient.Do(req) if err != nil { http.Error(w, "Erro ao criar ticket", http.StatusInternalServerError) return } defer resp.Body.Close()

    if resp.StatusCode >= 200 && resp.StatusCode < 300 { w.WriteHeader(http.StatusCreated) w.Write([]byte({"status":"ok"})) } else { http.Error(w, "ServiceNow retornou erro", http.StatusBadGateway) } }

    func main() { http.HandleFunc("/webhook", webhookHandler) port := os.Getenv("PORT") if port == "" { port = "8080" } log.Printf("Servidor rodando na porta %s", port) log.Fatal(http.ListenAndServe(":"+port, nil)) }

    Como usar:

  • Compile (go build -o webhook_server webhook_server.go).
  • Defina as variáveis de ambiente WEBHOOK_SECRET e SNOW_TOKEN.
  • Exponha o endpoint (https://seu-dominio.com/webhook) e registre‑o como destino nos fluxos do Make/n8n/Power Automate.
  • 2. Função JavaScript customizada no n8n

    n8n permite inserir Function Nodes que executam código JavaScript puro. O exemplo abaixo recebe o payload do webhook, normaliza campos e decide se o ticket deve ser criado ou apenas registrado para auditoria.

    ```javascript // n8n Function Node // Entrada: item (payload do webhook) // Saída: item com campo "action" const payload = items[0].json;

    // Normaliza prioridade (texto livre → número) const priorityMap = { "alta": 1, "média": 2, "baixa": 3 }; const priority = priorityMap[payload.priority?.toLowerCase()] || 3;

    // Regra de negócio: tickets com prioridade 1 são enviados imediatamente, // os demais são armazenados em uma planilha Google. let action = priority === 1 ? "createTicket" : "storeAudit

    Artigos relacionados