Skip to content

Zapier / Make / CRM Integration

Connect Webnav.ai to Zapier, Make, or your own CRM in two directions:

  • Pull data with the open REST API (Bearer API key) — leads, tickets, conversations.
  • Receive events in real time with outbound Webhooks (HMAC-signed).

1. Create an API key

Dashboard → Developers → API Keys → Create. Copy the key (wn_live_…) — it is shown only once.

2. Pull data (REST API)

Authenticate with Authorization: Bearer wn_live_…. All endpoints return data scoped to the domains you own.

bash
curl -H "Authorization: Bearer wn_live_xxx" \
  "https://www.webnav.ai/api/v1/leads?limit=50&since=2026-01-01T00:00:00Z"
EndpointReturns
GET /api/v1/leadsCaptured leads (?limit, ?since)
GET /api/v1/ticketsSupport tickets (?status)
GET /api/v1/conversationsQuestion logs

In Zapier, use the "Webhooks by Zapier → GET" or a custom app polling /api/v1/leads with the Bearer header. In Make, use an HTTP module with the same header. Map the returned JSON data[] into your CRM (HubSpot, Salesforce, Notion, Google Sheets, …).

3. Receive events (Webhooks)

Dashboard → Developers → Webhooks → add your endpoint URL (e.g. a Zapier "Catch Hook" URL), pick a domain and events (lead.captured, ticket.created). Copy the signing secret (shown once).

When an event fires, Webnav.ai POSTs JSON to your URL:

json
{ "event": "lead.captured", "domain": "shop.example.com",
  "data": { "lead_id": "…", "email": "a@b.com", "name": "Jane" }, "ts": 1749800000 }

Headers: X-Webnav-Event, X-Webnav-Timestamp, X-Webnav-Nonce, X-Webnav-Signature.

Verify the signature (recommended for your own server; Zapier/Make catch hooks can skip it):

signature = base64( HMAC_SHA256(secret, `${timestamp}\n${nonce}\n${base64(sha256(rawBody))}`) )
js
import crypto from 'crypto';
function verify(req, rawBody, secret) {
  const ts = req.headers['x-webnav-timestamp'];
  const nonce = req.headers['x-webnav-nonce'];
  const bodyHash = crypto.createHash('sha256').update(rawBody).digest('base64');
  const expected = crypto.createHmac('sha256', secret)
    .update(`${ts}\n${nonce}\n${bodyHash}`).digest('base64');
  return expected === req.headers['x-webnav-signature'];
}

Use the Test button next to a webhook in the dashboard to send a ping event and confirm your endpoint receives it.

Events

EventFires when
lead.capturedA visitor leaves contact info (form or auto-detected email)
ticket.createdA support ticket is submitted

Subscribe to all with *.

Webnav.ai — AI 智能客服