Integrar o CRM do FarejaLeads ao seu site
Veja no FarejaLeads quem acessou o site ou o app, por onde chegou, as telas mais vistas, o caminho até a compra, quem virou cliente e quanto pagou — e quando o visitante é um lead que você já prospectou. Funciona para os seus sites e para os dos seus clientes: cada site tem a própria chave.
O jeito mais rápido: peça ao agente de código
Cadastre o site no app (ou peça ao Claude com o MCP do FarejaLeads: crm_sites e depois crm_integrar, que já traz a chave do site). Abra o repositório do site no Claude Code e cole:
Integre o FarejaLeads a este projeto para ver quem acessa o site, quem vira cliente e os pagamentos.
1. Coloque esta tag no <head> de todas as páginas (no layout raiz do framework):
<script defer src="https://farejaleads.com/r.js" data-site="<CHAVE_PUBLICA>"></script>
Não use cookie de terceiros nem colete texto digitado; o script já respeita Do Not Track.
2. Depois do login ou cadastro, chame no navegador:
window.farejaleads?.identify(usuario.email, { nome: usuario.nome })
3. No servidor, quando alguém virar cliente ou pagar (webhook do gateway), envie:
POST https://farejaleads.com/api/public/rastreio/evento
Authorization: Bearer <chave secreta do site, na variável de ambiente FAREJALEADS_SECRET — nunca no código nem no navegador>
{"eventos":[{"tipo":"pagamento","email":"...","valor_centavos":9790,"moeda":"BRL","id":"<id do pedido>"}]}
Tipos: cliente, pagamento, identify, evento. "id" evita contar o mesmo pagamento duas vezes.
4. Na política de privacidade, diga que o site usa o FarejaLeads para medir visitas e clientes, e ofereça o opt-out (window.farejaleads.optout()).
5. Teste: abra o site, navegue por duas páginas e confira em https://farejaleads.com/app (ou pelo MCP do FarejaLeads, crm_resumo) que as visitas chegaram.1. O script
Uma tag, em todas as páginas. Cerca de 1,5 KB comprimido, sem cookies, sem dependências:
<script defer src="https://farejaleads.com/r.js" data-site="<CHAVE_PUBLICA>"></script>Cada página vista conta, inclusive nas trocas de rota de SPA (React, Next.js, TanStack, Vue). Uma sessão termina depois de 30 minutos parado. Para apontar a outro coletor, use data-endpoint.
- HTML puro / WordPress: Cole o <script> antes de </head> em todas as páginas (no WordPress: tema → header.php, ou um plugin de inserir código no cabeçalho).
- Next.js (App Router): Em app/layout.tsx: import Script from "next/script" e, dentro do <body>, <Script src="…/r.js" data-site="…" strategy="afterInteractive" />. As trocas de rota já contam sozinhas.
- Next.js (Pages Router): Em pages/_document.tsx, dentro do <Head>, a mesma tag <script defer …>.
- React (Vite / CRA): Em index.html, antes de </head>. Rotas do React Router contam sozinhas (o script escuta pushState e popstate).
- TanStack Start / Router: No head() da rota raiz (src/routes/__root.tsx): scripts: [{ src: "…/r.js", defer: true, "data-site": "…" }].
- App mobile (WebView): A página carregada pela WebView leva o script; telas nativas mandam eventos pela API de servidor.
3. Cliente novo e pagamento, pelo servidor
O mais confiável é o servidor avisar: POST https://farejaleads.com/api/public/rastreio/evento com Authorization: Bearer e a chave secreta do site (começa com sk_; aparece uma vez, ao criar o site). Guarde-a numa variável de ambiente, nunca no navegador nem no repositório.
// Node 18+ (fetch nativo). Chame no webhook de pagamento ou no cadastro.
await fetch("https://farejaleads.com/api/public/rastreio/evento", {
method: "POST",
headers: { "content-type": "application/json", authorization: `Bearer ${process.env.FAREJALEADS_SECRET}` },
body: JSON.stringify({
eventos: [
{ tipo: "cliente", email: "ana@empresa.com.br", nome: "Ana", user_id: "123" },
{ tipo: "pagamento", email: "ana@empresa.com.br", valor_centavos: 9790, moeda: "BRL", id: "pedido_789" },
],
}),
});tipo:cliente,pagamento,identifyouevento(comevento= o nome).- Quem:
email,user_id(o id no seu produto) ouanon_id.nomeepropriedadessão opcionais. valor_centavosinteiro (negativo = estorno),moeda(padrão BRL),quando(ISO, até 30 dias atrás).id: o id do pedido ou do evento — o mesmo id não entra duas vezes. Até 100 eventos por chamada.
Recebe pelo Stripe? Sem código
No painel do Stripe da sua conta, crie um webhook para https://farejaleads.com/api/public/rastreio/stripe/<SITE_ID> com os eventos checkout.session.completed, invoice.paid e charge.refunded. Depois guarde o segredo de assinatura (whsec_…) — ele fica cifrado:
curl -X PUT https://farejaleads.com/api/public/rastreio/stripe/<SITE_ID> \
-H "authorization: Bearer $FAREJALEADS_SECRET" \
-H "content-type: application/json" \
-d '{"segredo":"whsec_..."}'Cada pagamento vira receita da pessoa (pelo e-mail do cliente no Stripe) e marca a pessoa como cliente; estornos descontam.
Privacidade e LGPD
Você, dono do site, é o controlador dos dados dos seus visitantes; o FarejaLeads é o operador e trata os dados só para mostrar esses números a você.
- Informe na sua política de privacidade que o site mede visitas e clientes com o FarejaLeads, com a finalidade.
- Ofereça o opt-out: um botão que chame
window.farejaleads.optout()(eoptin()para voltar). - O script respeita Do Not Track e Global Privacy Control, não usa cookies, não lê o que é digitado e não guarda o IP.
- O endereço da página é guardado sem a parte depois do “?”, onde às vezes vão e-mails e tokens. Eventos ficam 90 dias.