Importing leads

Pipe leads in via Zapier (or any webhook tool)

Send leads from any Zap, Make scenario, or n8n workflow into Compass with a single POST.

Compass exposes a single webhook endpoint that any automation tool can POST a lead to. The payload shape is flexible, so you don't have to teach Zapier (or Make, or n8n) a particular schema, whatever field names the upstream tool sends, the Compass normalizer figures it out.

The endpoint
POST https://getcompass.studio/api/webhooks/website-lead

Authentication is a shared secret in the Authorization header:

Authorization: Bearer YOUR_SECRET_HERE
Generate a secret

Open Settings → Integrations and use the "Generate secret" tool. The secret is shown to you once; we never store it. Set it both as the WEBSITE_WEBHOOK_SECRET env var on your Vercel deployment and in your Zap's webhook auth header.

Zapier setup
  1. Create a new Zap. Pick whatever you like as the trigger, a Typeform submission, a Google Sheet row, a new Calendly invite, a Facebook Lead Ads lead, anything.
  2. Add a "Webhooks by Zapier" → "POST" action.
  3. URL: https://getcompass.studio/api/webhooks/website-lead.
  4. Payload type: JSON.
  5. Data: map whatever fields the trigger gives you to name, email, phone, etc. You can also include any extra fields, they'll land on the lead's activity log so nothing is lost.
  6. Required: workspace_id. Get yours from Settings → Integrations.
  7. Headers: Authorization: Bearer YOUR_SECRET.
  8. Test the action, Compass returns the new lead's ID on success.
Sample request (curl)
curl -X POST https://getcompass.studio/api/webhooks/website-lead \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_SECRET" \
  -d '{
    "workspace_id": "your-workspace-uuid",
    "name": "Sam Smith",
    "email": "sam@example.com",
    "phone": "0412 345 678",
    "source": "website",
    "notes": "Saw your work at the gallery!"
  }'
Make.com (formerly Integromat) and n8n

Same endpoint, same auth. Both tools have a generic "HTTP Request" / "HTTP" module, point it at the URL, set the method to POST, set the auth header, and pass whatever JSON shape works for your scenario.

Deduplication

Compass dedups inbound webhook leads by email within a 24-hour window. If the same email arrives twice in a day, the second submission is logged as a duplicate against the existing lead rather than creating a second row.

Common issues
  • 401 unauthorized, your Authorization header doesn't match theWEBSITE_WEBHOOK_SECRET env var.
  • 400 workspace_id_required, your payload didn't include a workspace_id. It must be a UUID string matching a workspace in Compass.
  • 404 unknown_workspace, the workspace_id looks like a UUID but doesn't point at a workspace we know about. Double-check it on the Integrations page.
  • 503 webhook_not_configured, the secret env var isn't set on your deployment. Until it is, the endpoint refuses every request as a safety measure.