Webhooks

Receive real-time event notifications

Webhooks

Webhooks allow your systems to receive real-time notifications when events happen in BindPilot.

Setting Up Webhooks

Create a Webhook Endpoint

  1. Go to Settings > Integrations > Webhooks
  2. Click Add Webhook
  3. Enter your webhook URL (HTTPS required)
  4. Choose events to subscribe to (see table below)
  5. Click Create

BindPilot sends a test event; confirm receipt.

Webhook URL Requirements

  • HTTPS only (no HTTP)
  • Accessible from the internet (not localhost)
  • Responds with 2xx status within 30 seconds
  • Valid SSL certificate

Available Events

| Event | Triggered When | Payload | |-------|----------------|---------| | quote.created | New quote generated | Quote ID, client, risk, carriers | | quote.completed | All carriers have responded | Quotes received, best rate | | quote.selected | Agent selected a quote | Quote ID, carrier, premium | | policy.bound | Policy bound with carrier | Policy number, effective date, premium | | renewal.due | Renewal date approaching | Client, expiration date, current carrier | | renewal.shopped | Renewal agent shopped carriers | Results, recommended carrier | | client.created | New client added | Client ID, name, contact info | | team.member_added | Team member invited | Member name, role |

Webhook Payload Format

{
  "id": "webhook_event_123",
  "timestamp": "2026-04-13T21:45:00Z",
  "event": "quote.completed",
  "data": {
    "quote_id": "q_abc123",
    "client_id": "c_xyz789",
    "quotes": [
      {
        "carrier": "State Farm",
        "premium": 1200,
        "coverage": { "limit_1m": true, "deductible_1000": true }
      }
    ]
  },
  "signature": "sha256=abcdef123456..."
}

Verifying Webhooks

Each webhook includes an HMAC signature for security verification.

To verify:

import hmac
import hashlib

secret = "your_webhook_secret"
signature = request.headers.get('X-BindPilot-Signature')
body = request.body

expected_sig = 'sha256=' + hmac.new(
  secret.encode(),
  body.encode(),
  hashlib.sha256
).hexdigest()

assert signature == expected_sig  # Verified!

Retry Policy

If your endpoint returns a non-2xx status or times out:

| Attempt | Delay | |---------|-------| | 1st retry | 5 minutes | | 2nd retry | 30 minutes | | 3rd retry | 2 hours | | 4th retry | 1 day |

After 4 failed attempts, BindPilot marks the endpoint as "failing" and stops sending events. Manually re-enable from the webhook settings.

Testing Webhooks

  1. Go to Settings > Integrations > Webhooks > [Webhook] > Test
  2. Choose an event type
  3. BindPilot sends a test payload
  4. Confirm receipt on your end

Common Webhook Uses

Scenario 1: Sync to your CRM

  • Subscribe to quote.selected and policy.bound
  • When these events fire, POST the data to your CRM (Salesforce, Pipedrive, etc.)
  • Keeps your CRM automatically updated

Scenario 2: Trigger email campaigns

  • Subscribe to renewal.due and renewal.shopped
  • Trigger an email campaign when the event fires

Scenario 3: Custom reporting

  • Subscribe to all events
  • Log to your data warehouse
  • Build custom dashboards and reports

Next: Learn about CSV import/export for bulk operations.

Last updated: Recently