One-time setup required — Deploy the Edge Function and run the SQL migration to activate your ingest URL. See the setup guide below.

Your Ingest URL

Give this URL to any data provider — they'll POST visitor records here

Active
https://YOUR_PROJECT_REF.supabase.co/functions/v1/webhook-ingest

Supports any JSON payload. Auto-detects provider format (RB2B, Opensend, Clearbit, or generic). Secure this URL with the secret header below — don't share it publicly.

Auth Secret

Send this as the x-webhook-secret header with every request

••••••••••••••••••••••••••••••••

Set this as the WEBHOOK_SECRET environment variable in your Supabase project (Dashboard → Edge Functions → webhook-ingest → Secrets). The Edge Function rejects any request that doesn't include this value.

Provider Setup

Click a provider to see how to wire it up

RB2B
B2B LinkedIn profile identification
Opensend
B2C email + phone identification
Visitor Intelligence
Visitor identity resolution via pixel
Any Provider
Generic JSON — works with any source
Test / cURL
Send a test payload from your terminal

Setting up RB2B

1
Log in to your RB2B dashboard and go to Integrations → Webhooks.
2
Click Add Webhook and paste your Ingest URL from above.
3
In the Headers field, add: x-webhook-secret = your Auth Secret above.
4
Select events: person.identified (required). Enable any others you want.
5
Click Save and use RB2B's built-in test button. You should see a row appear in the event log below within seconds.

Setting up Opensend

1
In your Opensend account, go to Settings → Integrations → Webhook.
2
Paste your Ingest URL into the Webhook URL field.
3
Under Authentication, add a custom header: x-webhook-secret = your Auth Secret.
4
Enable the visitor_identified event trigger and save.
5
Optionally add x-webhook-source: opensend as a second header to help with auto-detection.

Setting up Visitor Intelligence Pixel

The pixel doesn't support custom headers, so the secret is passed as a URL query parameter instead.

1
Open your Visitor Intelligence pixel settings in your account.
2
Find the Webhook URL field and paste this URL — including the ?secret= parameter:

3
Save. The pixel will now push each new visitor event directly to Supabase in real time.
4
Trigger a test visit on your site (or trigger a test page visit). A new row should appear in the event log below within seconds, with source = visitor-intelligence.

Generic JSON — any provider

1
Set the destination URL to your Ingest URL above.
2
Add the header x-webhook-secret: YOUR_SECRET to every request.
3
POST any JSON object. The endpoint auto-extracts common fields: email, name, phone, page_url, city, state.
4
Optionally add the header x-webhook-source: your-provider-name to tag where events came from in the log.

Send a test payload with cURL

Run this from your terminal — replace the placeholders with your real URL and secret.

curl -X POST \ "https://YOUR_PROJECT_REF.supabase.co/functions/v1/webhook-ingest" \ -H "Content-Type: application/json" \ -H "x-webhook-secret: YOUR_WEBHOOK_SECRET" \ -d '{ "email": "jane.smith@example.com", "name": "Jane Smith", "phone": "+15551234567", "page_url": "https://yoursite.com/pricing", "city": "Austin", "state": "TX" }'

A successful request returns {"received":true,"id":"...","source":"unknown"} and you'll see the row appear in the event log below.

Incoming Events

Visitor records received via webhook

No events yet
Once you configure a provider above and they send their first payload, visitor records will appear here in real time.