Skip to main content
Sync events fire when Cobalt detects changes that occurred directly in your EHR system. These keep you informed about activities your staff performed in the EHR itself — appointments scheduled, patient information updated, and statuses changed.
appointment.created and appointment.updated also fire as Operation Events when triggered by an action Cobalt performed. The event types are the same; the trigger differs.

Payload Envelope

Every sync event uses this envelope:
This envelope (with object: "event" and created) applies to sync, operation, and on-demand live-fetch events (appointment.live_fetch_completed, availability.live_fetch_completed, patient.live_fetch_completed) alike. Live-fetch events carry action: "sync" and additionally include a timestamp field, a legacy alias of created retained for backward compatibility; prefer created. See Receiving Webhooks for details.

Appointment Events

Triggered when EHR staff create an appointment in your EHR (detected by Cobalt’s sync).Payload Example:
Data Fields:The full appointment record is included (same shape as appointment.updated, without updated_fields). Key fields:
Triggered when EHR staff update an appointment in your EHR (detected by Cobalt’s sync).Payload Example:
Data Fields:
Triggered when an appointment’s status changes in your EHR system.Payload Example:
Data Fields:

Patient Events

Sync patient events carry the full patient object in data (not a subset), so you can update your own system without a follow-up GET /v1/patients. patient.updated additionally includes a changes map describing what changed. Note that sync events use changes ({ old, new } per field), whereas the Operation patient.updated event uses an updated_fields array of field names.
Triggered when EHR staff create a new patient in your EHR (detected by Cobalt’s sync).Payload Example:
Data Fields:The full patient object. Key identifiers:
Triggered when EHR staff update patient information in your EHR (detected by Cobalt’s sync).Payload Example:
Data Fields:The full patient object (same shape as patient.created) plus:Fields that can appear in changes: first_name, last_name, middle_name, address_street, address_line2, address_city, address_state, address_zip, phone, cell_phone, home_phone, work_phone, email, dob, sex, status, insurance_name, insurance_subscriber_number, referred_to_provider_id, pcp_first_name, pcp_last_name, medications, problems, vitals.
Insurance changes made directly in the EHR do not currently emit a sync event. Insurance is synced into the patient record, but only Cobalt-initiated add/update calls fire patient.insurance.added / patient.insurance.updated (see Operation Events).

Claim Events

Triggered when a new claim is detected in your EHR (detected by Cobalt’s sync).Payload Example:
Data Fields:
Triggered when a synced claim changes in your EHR. Only fires when a header field actually changed (for example a status, payment, or balance update), so unchanged claims re-seen during a sync do not emit an event.Payload Example:
Data Fields:The full claim object (same fields as claim.created) plus: