Webhook Subscriptions

Currently supported subscriptions

resource_typeeventdescription
Appointmentappointment_insertionFires upon acomplete or failed response when inserting an appointment into the health record system.
Appointmentappointment_createdFires when NexHealth detects a new appointment in the health record system.
Appointmentappointment_updatedFires when NexHealth detects a change to an appointment object in the health record system.
Appointmentappointment_requestedFires when NexHealth detects a new appointment has been requested but not (yet) inserted into the health record system. This is only for offices using the NexHealth webapp without an integrated health record system.
FormRequestform_request_completedFires when a patient submits a completed form.
FormResponseform_response_insertionFires upon a complete or failed response when inserting a form into the health record system.
Documentdocument_insertionFires upon a complete or failed response when inserting a document into the health record system.
Patientpatient_createdFires when NexHealth detects a new patient has been created in the health record system.
Patientpatient_updatedFires when NexHealth detects a change to a patient object.
PatientInsuranceCoveragepatient_insurance_createdFires when patient insurance is created.
PatientInsuranceCoveragepatient_insurance_updatedFires when patient insurance is updated.
Procedureprocedure_createdFires when NexHealth detects a new procedure has been created in the health record system.
Procedureprocedure_updatedFires when NexHealth detects a change to a procedure object in the health record system (ex: status from scheduled to completed or inactive).
SyncStatussync_status_read_changeFires when an integration's read functionality status changes from red to green (in other words, when reads functionality comes back online). <r><r>Currently, the webhook does not trigger from green to red. Instead, we recommend using the read_status_at field from the sync status endpoint response to determine the last successful read timestamp. Keep in mind that outside business hours—especially on weekends and holidays—the read_status_at value may show a delay of several hours or days.
SyncStatussync_status_write_changeFires when an integration's write status changes from red to green (in other words, when writes functionality comes back online). <r><r>Currently, the webhook does not trigger from green to red. Instead, we recommend using the write_status_at field from the sync status endpoint response to determine the last successful write timestamp. Keep in mind that outside business hours—especially on weekends and holidays—the write_status_at value may show a delay of several hours or days.

You can find example payloads for each subscription below.

Appointment
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "Appointment",
  "event_name": "appointment_insertion.complete",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "appointment": {
      "id": 1822,
      "patient_id": 2897,
      "provider_id": 104,
      "provider_name": "Dr. John Smith",
      "start_time": "2020-06-05T20:16:57.007Z",
      "confirmed": true,
      "patient_missed": false,
      "created_at": "2020-06-05T20:16:57.007Z",
      "updated_at": "2020-06-05T20:16:57.007Z",
      "note": "Patient has been having a cough for 3 days",
      "end_time": "2020-06-05T20:16:57.007Z",
      "unavailable": false,
      "cancelled": false,
      "timezone": "America/New_York",
      "institution_id": 1,
      "appointment_type_id": 0,
      "checkin_at": null,
      "location_id": 1,
      "foreign_id": "94",
      "foreign_id_type": "msg-dentrix-DataSource-100",
      "misc": {
        "is_booked_on_nexhealth": true
      },
      "last_sync_time": "2020-06-05T20:16:57.007Z",
      "patient_confirmed": 0,
      "created_by_user_id": 197,
      "is_guardian": false,
      "patient_confirmed_at": null,
      "cancelled_at": null,
      "is_new_clients_patient": false,
      "confirmed_at": null,
      "sooner_if_possible": null,
      "operatory_id": 181,
      "deleted": false,
      "checked_out": false,
      "checked_out_at": null,
      "referrer": "http://mypractice.com/book",
      "is_past_patient": true,
      "timezone_offset": "-4:00"
    }
  }
}
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "Appointment",
  "event_name": "appointment_created",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "appointments": [
      {
        "id": 1822,
        "patient_id": 2897,
        "provider_id": 104,
        "provider_name": "Dr. John Smith",
        "start_time": "2020-06-05T20:16:57.007Z",
        "confirmed": true,
        "patient_missed": false,
        "created_at": "2020-06-05T20:16:57.007Z",
        "updated_at": "2020-06-05T20:16:57.007Z",
        "note": "Patient has been having a cough for 3 days",
        "end_time": "2020-06-05T20:16:57.007Z",
        "unavailable": false,
        "cancelled": false,
        "timezone": "America/New_York",
        "institution_id": 1,
        "appointment_type_id": 0,
        "checkin_at": null,
        "location_id": 1,
        "foreign_id": "94",
        "foreign_id_type": "msg-dentrix-DataSource-100",
        "misc": {
          "is_booked_on_nexhealth": true
        },
        "last_sync_time": "2020-06-05T20:16:57.007Z",
        "patient_confirmed": 0,
        "created_by_user_id": 197,
        "is_guardian": false,
        "patient_confirmed_at": null,
        "cancelled_at": null,
        "is_new_clients_patient": false,
        "confirmed_at": null,
        "sooner_if_possible": null,
        "operatory_id": 181,
        "deleted": false,
        "checked_out": false,
        "checked_out_at": null,
        "referrer": "http://mypractice.com/book",
        "is_past_patient": true,
        "timezone_offset": "-4:00",
        "patient": {
          "id": 415,
          "email": "[email protected]",
          "first_name": "John",
          "middle_name": "Anthony",
          "last_name": "Smith",
          "name": "John Smith",
          "created_at": "2020-06-05T20:16:57.007Z",
          "updated_at": "2020-06-05T20:16:57.007Z",
          "institution_id": null,
          "foreign_id": null,
          "foreign_id_type": "--DataSource-",
          "bio": {
            "city": "New York",
            "state": "NY",
            "gender": "Female",
            "zip_code": "20814",
            "new_patient": false,
            "non_patient": true,
            "phone_number": "5163042196",
            "date_of_birth": "1964-05-03",
            "address_line_1": "",
            "address_line_2": "",
            "street_address": "",
            "cell_phone_number": "",
            "home_phone_number": "",
            "work_phone_number": ""
          },
          "inactive": false,
          "last_sync_time": null,
          "guarantor_id": null,
          "unsubscribe_sms": true,
          "balance": {
            "amount": "62.00",
            "currency": "USD"
          },
          "billing_type": "Standard Billing - finance charges",
          "chart_id": "017407",
          "preferred_language": "es",
          "preferred_locale": "es",
          "location_ids": [
            101,
            102,
            103
          ]
        },
        "descriptors": [
          {
            "id": 1822,
            "descriptor_type": "Procedure Code",
            "name": "Emr Descriptor Name",
            "code": "Emr Descriptor Code",
            "location_id": 13,
            "foreign_id": "94",
            "foreign_id_type": "msg-dentrix-DataSource-100",
            "data": {},
            "active": true,
            "last_sync_time": "2021-05-21T16:23:03.046Z",
            "created_at": "2021-05-21T16:23:03.046Z",
            "updated_at": "2021-05-21T16:23:03.046Z"
          }
        ]
      }
    ]
  }
}
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "Appointment",
  "event_name": "appointment_updated",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "appointment": {
      "id": 1822,
      "patient_id": 2897,
      "provider_id": 104,
      "provider_name": "Dr. John Smith",
      "start_time": "2020-06-05T20:16:57.007Z",
      "confirmed": true,
      "patient_missed": false,
      "created_at": "2020-06-05T20:16:57.007Z",
      "updated_at": "2020-06-05T20:16:57.007Z",
      "note": "Patient has been having a cough for 3 days",
      "end_time": "2020-06-05T20:16:57.007Z",
      "unavailable": false,
      "cancelled": false,
      "timezone": "America/New_York",
      "institution_id": 1,
      "appointment_type_id": 0,
      "checkin_at": null,
      "location_id": 1,
      "foreign_id": "94",
      "foreign_id_type": "msg-dentrix-DataSource-100",
      "misc": {
        "is_booked_on_nexhealth": true
      },
      "last_sync_time": "2020-06-05T20:16:57.007Z",
      "patient_confirmed": 0,
      "created_by_user_id": 197,
      "is_guardian": false,
      "patient_confirmed_at": null,
      "cancelled_at": null,
      "is_new_clients_patient": false,
      "confirmed_at": null,
      "sooner_if_possible": null,
      "operatory_id": 181,
      "deleted": false,
      "checked_out": false,
      "checked_out_at": null,
      "referrer": "http://mypractice.com/book",
      "is_past_patient": true,
      "timezone_offset": "-4:00",
      "patient": {
        "id": 415,
        "email": "[email protected]",
        "first_name": "John",
        "middle_name": "Anthony",
        "last_name": "Smith",
        "name": "John Smith",
        "created_at": "2020-06-05T20:16:57.007Z",
        "updated_at": "2020-06-05T20:16:57.007Z",
        "institution_id": null,
        "foreign_id": null,
        "foreign_id_type": "--DataSource-",
        "bio": {
          "city": "New York",
          "state": "NY",
          "gender": "Female",
          "zip_code": "20814",
          "new_patient": false,
          "non_patient": true,
          "phone_number": "5163042196",
          "date_of_birth": "1964-05-03",
          "address_line_1": "",
          "address_line_2": "",
          "street_address": "",
          "cell_phone_number": "",
          "home_phone_number": "",
          "work_phone_number": ""
        },
        "inactive": false,
        "last_sync_time": null,
        "guarantor_id": null,
        "unsubscribe_sms": true,
        "balance": {
          "amount": "62.00",
          "currency": "USD"
        },
        "billing_type": "Standard Billing - finance charges",
        "chart_id": "017407",
        "preferred_language": "es",
        "preferred_locale": "es",
        "location_ids": [
          101,
          102,
          103
        ]
      },
      "descriptors": [
        {
          "id": 1822,
          "descriptor_type": "Procedure Code",
          "name": "Emr Descriptor Name",
          "code": "Emr Descriptor Code",
          "location_id": 13,
          "foreign_id": "94",
          "foreign_id_type": "msg-dentrix-DataSource-100",
          "data": {},
          "active": true,
          "last_sync_time": "2021-05-21T16:23:03.046Z",
          "created_at": "2021-05-21T16:23:03.046Z",
          "updated_at": "2021-05-21T16:23:03.046Z"
        }
      ]
    },
    "previous_attributes": {
      "confirmed": false,
      "created_at": null
    }
  }
}
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "Appointment",
  "event_name": "appointment_requested",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "appointments": [
      {
        "id": 1822,
        "patient_id": 2897,
        "provider_id": 104,
        "provider_name": "Dr. John Smith",
        "start_time": "2020-06-05T20:16:57.007Z",
        "confirmed": true,
        "patient_missed": false,
        "created_at": "2020-06-05T20:16:57.007Z",
        "updated_at": "2020-06-05T20:16:57.007Z",
        "note": "Patient has been having a cough for 3 days",
        "end_time": "2020-06-05T20:16:57.007Z",
        "unavailable": false,
        "cancelled": false,
        "timezone": "America/New_York",
        "institution_id": 1,
        "appointment_type_id": 0,
        "checkin_at": null,
        "location_id": 1,
        "foreign_id": "94",
        "foreign_id_type": "msg-dentrix-DataSource-100",
        "misc": {
          "is_booked_on_nexhealth": true
        },
        "last_sync_time": "2020-06-05T20:16:57.007Z",
        "patient_confirmed": 0,
        "created_by_user_id": 197,
        "is_guardian": false,
        "patient_confirmed_at": null,
        "cancelled_at": null,
        "is_new_clients_patient": false,
        "confirmed_at": null,
        "sooner_if_possible": null,
        "operatory_id": 181,
        "deleted": false,
        "checked_out": false,
        "checked_out_at": null,
        "referrer": "http://mypractice.com/book",
        "is_past_patient": true,
        "timezone_offset": "-4:00",
        "patient": {
          "id": 415,
          "email": "[email protected]",
          "first_name": "John",
          "middle_name": "Anthony",
          "last_name": "Smith",
          "name": "John Smith",
          "created_at": "2020-06-05T20:16:57.007Z",
          "updated_at": "2020-06-05T20:16:57.007Z",
          "institution_id": null,
          "foreign_id": null,
          "foreign_id_type": "--DataSource-",
          "bio": {
            "city": "New York",
            "state": "NY",
            "gender": "Female",
            "zip_code": "20814",
            "new_patient": false,
            "non_patient": true,
            "phone_number": "5163042196",
            "date_of_birth": "1964-05-03",
            "address_line_1": "",
            "address_line_2": "",
            "street_address": "",
            "cell_phone_number": "",
            "home_phone_number": "",
            "work_phone_number": ""
          },
          "inactive": false,
          "last_sync_time": null,
          "guarantor_id": null,
          "unsubscribe_sms": true,
          "balance": {
            "amount": "62.00",
            "currency": "USD"
          },
          "billing_type": "Standard Billing - finance charges",
          "chart_id": "017407",
          "preferred_language": "es",
          "preferred_locale": "es",
          "location_ids": [
            101,
            102,
            103
          ]
        },
        "descriptors": [
          {
            "id": 1822,
            "descriptor_type": "Procedure Code",
            "name": "Emr Descriptor Name",
            "code": "Emr Descriptor Code",
            "location_id": 13,
            "foreign_id": "94",
            "foreign_id_type": "msg-dentrix-DataSource-100",
            "data": {},
            "active": true,
            "last_sync_time": "2021-05-21T16:23:03.046Z",
            "created_at": "2021-05-21T16:23:03.046Z",
            "updated_at": "2021-05-21T16:23:03.046Z"
          }
        ]
      }
    ]
  }
}
FormRequest
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "FormRequest",
  "event_name": "form_request_completed",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "formrequest": {
      "id": "d2594a76862247209d4c35a92e0902f8",
      "location_id": 1,
      "appointment_id": 1
    }
  }
}
FormResponse
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "FormResponse",
  "event_name": "form_response_insertion.complete",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "formresponse": {
      "id": 435,
      "status": "complete",
      "response_documents": [
        {
          "id": 435,
          "pdf_url": "/api/documents/ee0913ee13af4e0aa4df2af1738d43d6.pdf"
        }
      ],
      "form_request_id": "d1b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b",
      "patient_id": 415
    }
  }
}
Document
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "Document",
  "event_name": "document_insertion.complete",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "document": {
      "uuid": "d44ada30-36a5-11ee-8567-63ba706887a3",
      "description": "Insurance coverage eligibility",
      "expiring_url": "/documents/3/test_document.pdf?1753721119",
      "sync_status": "active",
      "sync_completed_at": "2023-11-01T13:15:12Z"
    }
  }
}
Patient
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "Patient",
  "event_name": "patient_created",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "patients": [
      {
        "id": 415,
        "email": "[email protected]",
        "first_name": "John",
        "middle_name": "Anthony",
        "last_name": "Smith",
        "name": "John Smith",
        "created_at": "2020-06-05T20:16:57.007Z",
        "updated_at": "2020-06-05T20:16:57.007Z",
        "institution_id": null,
        "foreign_id": null,
        "foreign_id_type": "--DataSource-",
        "bio": {
          "city": "New York",
          "state": "NY",
          "gender": "Female",
          "zip_code": "20814",
          "new_patient": false,
          "non_patient": true,
          "phone_number": "5163042196",
          "date_of_birth": "1964-05-03",
          "address_line_1": "",
          "address_line_2": "",
          "street_address": "",
          "cell_phone_number": "",
          "home_phone_number": "",
          "work_phone_number": ""
        },
        "inactive": false,
        "last_sync_time": null,
        "guarantor_id": null,
        "unsubscribe_sms": true,
        "balance": {
          "amount": "62.00",
          "currency": "USD"
        },
        "billing_type": "Standard Billing - finance charges",
        "chart_id": "017407",
        "preferred_language": "es",
        "preferred_locale": "es",
        "location_ids": [
          1,
          2,
          3
        ]
      }
    ]
  }
}
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "Patient",
  "event_name": "patient_updated",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "patient": {
      "id": 415,
      "email": "[email protected]",
      "first_name": "John",
      "middle_name": "Anthony",
      "last_name": "Smith",
      "name": "John Smith",
      "created_at": "2020-06-05T20:16:57.007Z",
      "updated_at": "2020-06-05T20:16:57.007Z",
      "institution_id": null,
      "foreign_id": null,
      "foreign_id_type": "--DataSource-",
      "bio": {
        "city": "New York",
        "state": "NY",
        "gender": "Female",
        "zip_code": "20814",
        "new_patient": false,
        "non_patient": true,
        "phone_number": "5163042196",
        "date_of_birth": "1964-05-03",
        "address_line_1": "",
        "address_line_2": "",
        "street_address": "",
        "cell_phone_number": "",
        "home_phone_number": "",
        "work_phone_number": ""
      },
      "inactive": false,
      "last_sync_time": null,
      "guarantor_id": null,
      "unsubscribe_sms": true,
      "balance": {
        "amount": "62.00",
        "currency": "USD"
      },
      "billing_type": "Standard Billing - finance charges",
      "chart_id": "017407",
      "preferred_language": "es",
      "preferred_locale": "es",
      "location_ids": [
        1,
        2,
        3
      ]
    },
    "previous_attributes": {
      "inactive": true
    }
  }
}
PatientInsuranceCoverage
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "PatientInsuranceCoverage",
  "event_name": "patient_insurance_created",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "patient_insurance_coverages": [
      {
        "id": 18,
        "subscription_relation": "self",
        "patient_id": 25,
        "priority": 2,
        "plan_id": 18,
        "subscriber_num": "123456789",
        "effective_date": "2022-01-01",
        "expiration_date": "2022-12-31",
        "insurance_type": "dental",
        "updated_at": "2020-06-05T20:16:57.007Z",
        "active": true
      }
    ]
  }
}
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "PatientInsuranceCoverage",
  "event_name": "patient_insurance_updated",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "patient_insurance_coverage": {
      "id": 18,
      "subscription_relation": "self",
      "patient_id": 25,
      "priority": 2,
      "plan_id": 18,
      "subscriber_num": "123456789",
      "effective_date": "2022-01-01",
      "expiration_date": "2022-12-31",
      "insurance_type": "dental",
      "updated_at": "2020-06-05T20:16:57.007Z",
      "active": true
    },
    "previous_attributes": {
      "priority": 1
    }
  }
}
Procedure
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "Procedure",
  "event_name": "procedure_created",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "procedures": [
      {
        "id": 11,
        "location_id": 21,
        "patient_id": 162,
        "provider_id": 84,
        "appointment_id": 283,
        "code": "D6100",
        "name": "Implant Removal",
        "status": "referred",
        "updated_at": "2020-06-05T20:16:57.007Z",
        "body_site": null,
        "fee": {
          "amount": "62.00",
          "currency": "USD"
        },
        "start_date": "2022-06-24",
        "end_date": "2022-06-24"
      }
    ]
  }
}
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "Procedure",
  "event_name": "procedure_updated",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "procedure": {
      "id": 11,
      "location_id": 21,
      "patient_id": 162,
      "provider_id": 84,
      "appointment_id": 283,
      "code": "D6100",
      "name": "Implant Removal",
      "status": "referred",
      "updated_at": "2020-06-05T20:16:57.007Z",
      "body_site": null,
      "fee": {
        "amount": "62.00",
        "currency": "USD"
      },
      "start_date": "2022-06-24",
      "end_date": "2022-06-24"
    },
    "previous_attributes": {
      "status": "scheduled"
    }
  }
}
SyncStatus
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "SyncStatus",
  "event_name": "sync_status_read_change.green",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "syncstatus": {
      "institution_id": 1,
      "sync_source_type": "DataSource",
      "sync_source_name": "My Source",
      "emr": {
        "id": 11,
        "name": "dentrix",
        "display_name": "Dentrix",
        "type": [
          "cloud",
          "onprem"
        ]
      },
      "read_status": "green",
      "read_status_at": "2020-06-05T20:16:57.007Z",
      "write_status": "red",
      "write_status_at": "2020-06-05T20:16:57.007Z",
      "locations": null
    }
  }
}
{
  "institution_id": 1,
  "subdomain": "test-subdomain",
  "webhook_subscription_id": 2,
  "resource_type": "SyncStatus",
  "event_name": "sync_status_write_change.red",
  "event_time": "2024-03-21T17:52:47.824Z",
  "data": {
    "syncstatus": {
      "institution_id": 1,
      "sync_source_type": "DataSource",
      "sync_source_name": "My Source",
      "emr": {
        "id": 11,
        "name": "dentrix",
        "display_name": "Dentrix",
        "type": [
          "cloud",
          "onprem"
        ]
      },
      "read_status": "green",
      "read_status_at": "2020-06-05T20:16:57.007Z",
      "write_status": "red",
      "write_status_at": "2020-06-05T20:16:57.007Z",
      "locations": null
    }
  }
}