Skip to content

Webhook System - Complete Summary

✅ What's Implemented

1. Database (Applied ✓)

  • webhook_configurations table - Store webhook settings
  • webhook_logs table - Track delivery attempts
  • Triggers for all events (contact, deal, conversation, message)
  • RLS policies for security

2. Delivery

  • Method: HTTP POST requests
  • Features: HMAC signatures, error logging, batch dispatch, automatic retries

3. Configuration

  • Settings Page: the "Webhooks" tab under Settings → Storage & Developer
  • Features: Create, edit, delete, test webhooks, view delivery logs
  • Help: Comprehensive on-screen guidance

4. Integration

  • Events trigger webhooks automatically
  • Hooks updated: the app, the app

📋 Available Events (17 Total)

Category Events Description
Contact Events (3) contact.created
contact.updated
contact.assigned
When contacts are added, updated, or assigned
Deal/Lead Events (4) deal.created
deal.updated
deal.stage.changed
deal.assigned
When deals are created, updated, change stages, or assigned
Conversation Events (3) conversation.created
conversation.assigned
conversation.status.changed
When conversations are created, assigned, or status changes
Message Events (5) message.received
message.sent
message.delivered
message.read
message.failed
When messages are received, sent, delivered, read, or fail
Broadcast Events (1) broadcast.response When a contact replies to a broadcast/campaign message
Meeting Events (1) zoom.recording.completed When a Zoom cloud recording finishes processing

🔧 HTTP Method: POST

⚠️ Important: All webhooks use HTTP POST (not GET)

Your endpoint must: 1. Accept POST requests 2. Parse JSON body 3. Respond within 5 seconds

📝 Request Format

Every webhook POST includes:

Headers: - Content-Type: application/json - X-Webhook-Event: event.type - X-Webhook-Timestamp: ISO timestamp - X-Webhook-Signature: HMAC-SHA256 (if secret configured)

Body (JSON):

{
 "event": "contact.created",
 "timestamp": "2024-01-15T10:30:00Z",
 "data": {
 "id": "uuid",
 "first_name": "John",
 "last_name": "Doe",
 "organization_id": "org-uuid",...
 }
}

🚀 How to Use

Step 1: Go to Webhook Settings

Settings → Webhooks tab

Step 2: Get Test URL

Visit https://webhook.site and copy your unique URL

Step 3: Create Webhook

  1. Click "Create Webhook"
  2. Enter:
  3. Name: "My Integration"
  4. URL: Your webhook.site URL
  5. Events: Select events to subscribe to
  6. Secret: (Optional) HMAC signature
  7. Click Create

Step 4: Test

Click "Test" button → Check webhook.site for delivery

📚 Documentation Files

  • WEBHOOK_SYSTEM.md - Complete documentation
  • TEST_WEBHOOK_SYSTEM.md - Step-by-step testing guide
  • QUICK_START_WEBHOOKS.md - Quick reference

✨ Features

  • ✅ Real-time event notifications
  • ✅ HMAC signature verification
  • ✅ Delivery logging
  • ✅ Test functionality
  • ✅ Active/inactive toggle
  • ✅ Event filtering
  • ✅ Comprehensive help text
  • ✅ View delivery logs

🔒 Security

  • RLS policies protect data
  • Optional HMAC signatures
  • HTTPS only
  • Organization-scoped

📊 Monitoring

  • View all delivery attempts in logs
  • See response codes and errors
  • Track success/failure rates
  • Debug delivery issues

Everything is ready to use! 🎉

Go to: Settings → Webhooks to get started.