Skip to main content
Use webhooks to send identified company data to any URL in real-time. Build custom integrations, power internal tools, or connect to any service.

Features

  • Real-time delivery when events occur
  • Custom endpoints - send to any URL
  • Flexible payload with full company data
  • Retry logic for failed deliveries
  • Secret authentication for security
  • Delivery logs for debugging

Setup

  1. Go to SettingsIntegrationsWebhooks
  2. Click Create Webhook
  3. Enter a name and your endpoint URL
  4. Optionally add a secret for signature verification
  5. Save and activate

Webhook Events

Configure which events trigger your webhook via Automations:
EventTrigger
New companyWhen a new company is first identified
Company returnsWhen a known company visits again
Session startedWhen any session begins
Contact revealedWhen a contact email is revealed
Enters segmentWhen a company matches a segment

Payload Format

{
  "event": "company.identified",
  "timestamp": "2024-01-15T10:30:00Z",
  "workspace": {
    "uuid": "ws_abc123",
    "name": "My Workspace"
  },
  "company": {
    "uuid": "org_xyz789",
    "name": "Acme Inc",
    "domain": "acme.com",
    "industry": "Technology",
    "employee_range": "50-200",
    "location": {
      "city": "San Francisco",
      "region": "California",
      "country": "United States"
    }
  },
  "session": {
    "uuid": "sess_123",
    "started_at": "2024-01-15T10:25:00Z",
    "pages_viewed": 3,
    "referrer": "google.com"
  }
}

Security

Signature Verification

If you add a secret, Snitcher includes a signature header for verification:
X-Snitcher-Signature: sha256=abc123...
Verify the signature by computing HMAC-SHA256 of the payload with your secret:
const crypto = require('crypto');

function verifySignature(payload, signature, secret) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return signature === expected;
}

Retry Logic

Failed webhook deliveries are retried automatically:
AttemptDelay
1Immediate
21 minute
35 minutes
430 minutes
52 hours
After 5 failed attempts, the delivery is marked as failed and logged.

Viewing Logs

  1. Go to IntegrationsWebhooks
  2. Click on your webhook
  3. Select View Logs
Logs include:
  • Request payload
  • Response status code
  • Response body (if any)
  • Error messages
  • Timestamp

Testing

Send a test webhook to verify your endpoint:
  1. Edit your webhook
  2. Click Send Test
  3. Choose an event type
  4. Check your endpoint for the test payload

Common Use Cases

Use CaseDescription
Internal dashboardSend data to your own analytics system
Custom CRMIntegrate with CRMs not natively supported
Slack botBuild custom notifications
Data warehouseStream to Snowflake, BigQuery, etc.
Lead scoringTrigger custom scoring workflows

Troubleshooting

  • Verify you have an automation configured to trigger the webhook
  • Check that the webhook is not archived
  • Review webhook logs for errors
  • Ensure you’re using the raw request body (not parsed JSON)
  • Verify the secret matches exactly
  • Check for any proxy/middleware modifying the request
Webhooks time out after 30 seconds. Ensure your endpoint responds quickly. For slow processing, respond immediately and process asynchronously.