Skip to main content

Integração ZapFlow × Metrito

ZapFlow é o primeiro parceiro nativo do Metrito. Esta integração é exclusiva e direta — a ZapFlow tem acesso privilegiado à nossa API de rastreamento, podendo conectar workspaces de seus usuários via OAuth, disparar eventos de rastreamento, criar registros de vendas e decodificar UTMs embutidas em mensagens do WhatsApp.

Visão Geral

A integração entre ZapFlow e Metrito é composta por quatro pilares:

1. Conexão via OAuth

Por que OAuth e não API Key manual?

Pedir ao usuário que copie e cole uma API Key é uma barreira. Com OAuth, o fluxo é:
  1. Usuário clica em “Conectar Metrito” dentro do ZapFlow
  2. É redirecionado para a tela de autorização do Metrito (já estará logado na maioria dos casos)
  3. Seleciona a workspace e clica em Autorizar
  4. Retorna ao ZapFlow com a API Key já gerada e armazenada automaticamente
Importante: o usuário precisa estar logado no Metrito para que a tela de consentimento seja exibida. Se não estiver, será redirecionado para o login e depois voltará automaticamente para a tela de autorização — o fluxo retoma sem intervenção.

Credenciais ZapFlow

As credenciais abaixo foram fornecidas pela equipe do Metrito exclusivamente para a ZapFlow:
O client_secret deve ser armazenado de forma segura no backend da ZapFlow. Nunca exponha-o no frontend.

Construindo a URL de autorização

Callback: trocando o código pela API Key

No endpoint https://zapflow.io/metrito/callback (backend):
Resposta de sucesso:
A partir daqui, access_token é a API Key do usuário no Metrito. Use-a como Bearer token em todas as chamadas subsequentes.

2. Decodificação de Mensagens WhatsApp

Como funciona o rastreamento invisível do Metrito

O Metrito embute um identificador invisível nas mensagens do WhatsApp usando caracteres Unicode de largura zero: Esses caracteres são completamente invisíveis para o usuário final, mas quando o ZapFlow recebe uma mensagem do WhatsApp, pode detectá-los e enviar ao Metrito para obter os UTMs e parâmetros da sessão original do lead.

Snippet: detectar e decodificar em uma mensagem

Exemplo de uso no handler de mensagens do ZapFlow

Resposta da API de decodificação

Se a mensagem não contiver rastreamento, params e tracking_link_id serão null.

3. Nó de Automação Metrito

O ZapFlow possui um módulo de automações. O objetivo é ter um nó exclusivo “Metrito” que o usuário pode adicionar em qualquer fluxo para interagir com a plataforma.

O que o nó deve fazer

O usuário:
  1. Seleciona qual ação executar (por enquanto: Disparar Evento)
  2. Escolhe um gatilho existente do tipo api — listado diretamente da API do Metrito
  3. Pode criar um novo gatilho caso não exista o que precisa

3.1 Buscando o Container do usuário

Antes de listar gatilhos, é necessário obter o container do Metrito associado à workspace do usuário. Use o workspace_id retornado no OAuth.
Identificadores aceitos pelo endpoint GET /v3/tracking/containers/{container_id}:
Recomendação: no onboarding do nó Metrito, peça ao usuário seu Metrito Tracking Code (MTC). É curto, fácil de copiar e identifica o container v3 sem ambiguidade.

3.2 Listando Gatilhos disponíveis (tipo api)

Resposta:

3.3 Criando um novo Gatilho via API

Se o usuário quiser criar um novo gatilho diretamente pelo ZapFlow:
Apenas gatilhos do tipo api podem ser criados via API pública. Gatilhos de pageview, clique, scroll etc. são criados pela interface da plataforma.

3.4 Disparando um Evento de Rastreamento

Com o gatilho selecionado (ou recém-criado), dispare o evento quando a automação executar o nó:

Diferença entre config.name e config.facebook.name

Se config.facebook for omitido, o evento é registrado no Metrito mas não é enviado para a Meta. Isso é válido para eventos internos que não precisam de atribuição.

4. Webhook de Pedido (Registro de Venda)

Diferença em relação ao evento de rastreamento

Resumo: use o Webhook de Pedido quando quiser registrar que uma venda aconteceu. Use o evento de rastreamento para sinais de funil (lead, proposta, clique). Os dois podem coexistir numa mesma automação.

Onde encontrar a chave k

O parâmetro k não é a API Key OAuth. Ele é específico de uma conexão “Personalizado” criada pelo usuário na plataforma Metrito:
  1. Na plataforma, acesse Conexões → Adicionar Conexão → Personalizado
  2. Após criar, a URL completa do webhook (incluindo ?k=...) é exibida
  3. Copie e use como destino para os webhooks de pedido
O ZapFlow pode armazenar essa chave k separadamente da API Key OAuth. São credenciais independentes.

Disparando um Webhook de Pedido

Status de transação e seus efeitos

O Metrito faz upsert automático pelo campo transaction.id. Se a mesma venda for enviada novamente com status atualizado (ex: pendingapproved), o registro é atualizado e os impactos de receita são calculados corretamente.

5. Fluxo Completo: Da Mensagem à Venda

Este é o fluxo ideal de uma automação ZapFlow que usa todos os recursos Metrito:

6. Resumo de Endpoints

URL base: https://api.metrito.com

7. Boas Práticas

  • Guarde a API Key por workspace: cada usuário ZapFlow que conectar o Metrito terá uma API Key diferente, vinculada à workspace que escolheu. Armazene-a associada ao ID de usuário ZapFlow.
  • Use Idempotency-Key em POSTs: previne duplicatas em caso de retry automático. Use um UUID gerado por evento ou uma combinação de IDs únicos.
  • Decodifique apenas se houver caracteres invisíveis: use hasMetritoTracking() antes de chamar a API para evitar requisições desnecessárias.
  • Passe as UTMs em todos os eventos: quanto mais contexto de atribuição o Metrito receber, mais precisa será a atribuição de receita às campanhas do usuário.
  • Use mlid quando disponível: o Metrito Lead ID (mlid) nos UTMs tem prioridade máxima na atribuição. Se estiver nos params da decodificação, sempre inclua-o no webhook de pedido.

Suporte

Para dúvidas técnicas sobre esta integração, entre em contato diretamente com a equipe de engenharia do Metrito: Email: contato@metrito.com Documentação pública: https://docs.metrito.com