Webhooks
Manage the OS webhook integration and inspect incoming events.
Webhook Endpoint
Send a POST request with an x-webhook-secret header matching your configured WEBHOOK_SECRET environment variable.
Connected
Connection Status
Total Events0
Successful0
Failed0
Last Received—
Test Webhook
Sends a sample appointment.booked payload to verify your endpoint and secret are working.
Event History
No webhook events received yet.
Select an event to view its payload.
Field Mapping
How incoming webhook JSON fields populate database columns.
| Webhook Field | Database Target | Description |
|---|---|---|
| event | webhook_events.event | Normalized event name |
| contact_id | contacts.os_contact_id | OS contact identifier |
| appointment_id | appointments.os_appointment_id | OS appointment identifier |
| first_name | contacts.first_name | Contact first name |
| last_name | contacts.last_name | Contact last name |
| contacts.email | Contact email | |
| phone | contacts.phone | Contact phone |
| business_name | contacts.business_name | Business name |
| website | contacts.website | Website URL |
| appointment_start | appointments.appointment_start | Appointment start (ISO 8601) |
| appointment_end | appointments.appointment_end | Appointment end (ISO 8601) |
| timezone | appointments.timezone | IANA timezone |
| appointment_status | appointments.appointment_status | Normalized status |
| assigned_user | appointments.assigned_user_name | Assigned team member name |
| meeting_link | appointments.meeting_link | Meeting URL |
| lead_source | appointments.lead_source | Lead source |
| deal_value | opportunities.deal_value | Deal value ($) |
| sales_outcome | opportunities.sales_outcome | Sales outcome (pending, qualified, follow_up_needed, closed_won, etc.) |
| pipeline_stage | opportunities.stage | Pipeline stage (call_booked, call_completed, qualified, follow_up, closed_won, maybe_later, etc.) |
| form_responses.* | discovery_form_responses.* | Nine discovery form answers |