> ## Documentation Index
> Fetch the complete documentation index at: https://docs.morf.health/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Appointment

> Event payload details and trigger documentation for Appointment data from Elation

<img src="https://mintcdn.com/morfhealth/EU2WCxuXGIUQcziR/images/elation.svg?fit=max&auto=format&n=EU2WCxuXGIUQcziR&q=85&s=06d58e76eb0b3a5e191b8fc13f4ba68a" alt="images/elation.svg" width="40" height="40" data-path="images/elation.svg" />

# Events

## Triggering Webhook Types

The following event types are associated with the Appointment event payload from Elation.

* `Elation Appointment Scheduled`
* `Elation Appointment Confirmed`
* `Elation Appointment Checked Out`
* `Elation Appointment Cancelled`
* `Elation Appointment With Doctor`
* `Elation Appointment In Room`
* `Elation Appointment Checked In`
* `Elation Appointment In Room Vitals Taken`
* `Elation Appointment Not Seen`
* `Elation Appointment Billed`
* `Elation Appointment Not Seen No Show`
* `Elation Appointment Not Seen Left Without Seeing`
* `Elation Appointment Not Seen Other`
* `Elation Appointment Deleted`

<RequestExample>
  ```json Example theme={null}
  {
    "appointment_datetime": "2016-10-13T11:15:00Z",
    "appointment_duration_in_minutes": 15,
    "appointment_id": "67176890458",
    "appointment_location_details": "Zoom",
    "appointment_type_title": "Follow-Up",
    "billing": {
      "billing_note": "This is a billing note",
      "referring_provider": "Dr. John Doe",
      "referring_provider_state": "CA"
    },
    "created_at": "2016-10-13T00:47:01Z",
    "deleted_at": "2016-10-14T01:12:18Z",
    "description": "follow up to procedure",
    "instructions": "Please arrive 5 minutes early",
    "last_modified_at": "2016-10-13T00:59:16Z",
    "metadata": {
      "baz": 42,
      "foo": "bar"
    },
    "mode": "VIDEO",
    "patient_id": "64058687489",
    "payment": {
      "amount": "20.00",
      "appointment_id": "67176890458",
      "bill": 42,
      "bill_id": "123456789101213",
      "created_at": "2020-01-27T16:17:43Z",
      "deleted_at": null,
      "id": "140755836010857",
      "payment_collected_at": "2020-01-27T16:17:43Z"
    },
    "physician_id": "131074",
    "practice_id": "65540",
    "service_location": {
      "address_line1": "123 Main Street",
      "address_line2": "Suite 200",
      "city": "San Francisco",
      "id": "13631735",
      "name": "Elation North",
      "phone_number": "555-555-5555",
      "state": "CA",
      "zip": "94107"
    },
    "status": null,
    "time_slot_status": "booked",
    "time_slot_type": "appointment"
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Description theme={null}
  {
    "appointment_datetime": "Scheduled date and time of the appointment.",
    "appointment_duration_in_minutes": "Duration of the appointment in minutes. Must be between 1 and 1440 minutes.",
    "appointment_id": "Unique identifier for the appointment. Read-only field.",
    "appointment_location_details": "Details for telehealth appointments. DEPRECATED as of 2024-06-11.",
    "appointment_type_title": "Reason for the appointment. Required field, maximum 50 characters.",
    "billing": {
      "billing_note": "Additional billing notes.",
      "referring_provider": "Name of the referring provider.",
      "referring_provider_state": "Two-letter state code of the referring provider."
    },
    "created_at": "Timestamp when the appointment was created.",
    "deleted_at": "Timestamp when the appointment was deleted, if applicable.",
    "description": "Additional description of the appointment. Maximum 500 characters.",
    "instructions": "Instructions for the appointment. Maximum 500 characters.",
    "last_modified_at": "Timestamp when the appointment was last modified.",
    "metadata": "Additional metadata associated with the appointment.",
    "mode": "Mode of the appointment. Must be either IN_PERSON or VIDEO.",
    "patient_id": "ID of the patient for this appointment.",
    "payment": {
      "amount": "Payment amount in decimal format.",
      "appointment_id": "ID of the associated appointment.",
      "bill": "Associated bill identifier, if any.",
      "bill_id": "Associated bill identifier, if any.",
      "created_at": "Timestamp when the payment record was created.",
      "deleted_at": "Timestamp when the payment record was deleted, if applicable.",
      "id": "Unique identifier for the payment. Read-only field.",
      "payment_collected_at": "Timestamp when the payment was collected."
    },
    "physician_id": "ID of the physician for this appointment.",
    "practice_id": "ID of the practice for this appointment.",
    "service_location": {
      "address_line1": "First line of the service location address.",
      "address_line2": "Second line of the service location address.",
      "city": "City of the service location.",
      "id": "Unique identifier for the service location.",
      "name": "Name of the service location.",
      "phone_number": "Contact phone number for the service location.",
      "state": "State of the service location.",
      "zip": "ZIP code of the service location."
    },
    "status": "Current status of the appointment.",
    "time_slot_status": "Status of the time slot.",
    "time_slot_type": "Type of time slot."
  }
  ```
</ResponseExample>

### Payload Field Details

<ResponseField name="Appointment" type="Event Payload">
  <Expandable title="fields" defaultOpen="true">
    <ResponseField name="appointment_id" type="string" required>
      `ID` Unique identifier for the appointment. Read-only field.

      ```json CEL theme={null}
      appointment_id
      ```

      ```json Example theme={null}
      "67176890458"
      ```
    </ResponseField>

    <ResponseField name="appointment_datetime" type="timing.v1.Timestamp" required>
      Scheduled date and time of the appointment.

      ```json CEL theme={null}
      appointment_datetime
      ```

      ```json Example theme={null}
      "2016-10-13T11:15:00Z"
      ```
    </ResponseField>

    <ResponseField name="appointment_duration_in_minutes" type="uint64">
      Duration of the appointment in minutes. Must be between 1 and 1440 minutes.

      ```json CEL theme={null}
      appointment_duration_in_minutes
      ```

      ```json Example theme={null}
      15
      ```
    </ResponseField>

    <ResponseField name="time_slot_type" type="string" required>
      Type of time slot.

      ```json CEL theme={null}
      time_slot_type
      ```

      ```json Example theme={null}
      "appointment"
      ```
    </ResponseField>

    <ResponseField name="time_slot_status" type="string">
      Status of the time slot.

      ```json CEL theme={null}
      time_slot_status
      ```

      ```json Example theme={null}
      "booked"
      ```
    </ResponseField>

    <ResponseField name="appointment_type_title" type="string" required>
      Reason for the appointment. Required field, maximum 50 characters.

      ```json CEL theme={null}
      appointment_type_title
      ```

      ```json Example theme={null}
      "Follow-Up"
      ```
    </ResponseField>

    <ResponseField name="description" type="string">
      Additional description of the appointment. Maximum 500 characters.

      ```json CEL theme={null}
      description
      ```

      ```json Example theme={null}
      "follow up to procedure"
      ```
    </ResponseField>

    <ResponseField name="status" type="elation.v1.AppointmentStatus" required>
      Current status of the appointment.

      ```json CEL theme={null}
      status
      ```

      ```json Example theme={null}
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_SCHEDULED
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_CONFIRMED
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_CHECKED_OUT
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_CANCELLED
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_WITH_DOCTOR
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_IN_ROOM
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_CHECKED_IN
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_IN_ROOM_VITALS_TAKEN
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_NOT_SEEN
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_BILLED
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_NOT_SEEN_NO_SHOW
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_NOT_SEEN_LEFT_WITHOUT_SEEING
      elation.v1.AppointmentStatus.APPOINTMENT_STATUS_NOT_SEEN_OTHER
      ```
    </ResponseField>

    <ResponseField name="service_location" type="object">
      Location details where the appointment will take place.

      ```json CEL theme={null}
      service_location
      ```

      ```json Example theme={null}
      {
      "address_line1": "123 Main Street",
      "address_line2": "Suite 200",
      "city": "San Francisco",
      "id": "13631735",
      "name": "Elation North",
      "phone_number": "555-555-5555",
      "state": "CA",
      "zip": "94107"
      }
      ```
    </ResponseField>

    <ResponseField name="service_location.id" type="string">
      `ID` Unique identifier for the service location.

      ```json CEL theme={null}
      service_location.id
      ```

      ```json Example theme={null}
      "13631735"
      ```
    </ResponseField>

    <ResponseField name="service_location.name" type="string">
      Name of the service location.

      ```json CEL theme={null}
      service_location.name
      ```

      ```json Example theme={null}
      "Elation North"
      ```
    </ResponseField>

    <ResponseField name="service_location.address_line1" type="string">
      `PII` First line of the service location address.

      ```json CEL theme={null}
      service_location.address_line1
      ```

      ```json Example theme={null}
      "123 Main Street"
      ```
    </ResponseField>

    <ResponseField name="service_location.address_line2" type="string">
      `PII` Second line of the service location address.

      ```json CEL theme={null}
      service_location.address_line2
      ```

      ```json Example theme={null}
      "Suite 200"
      ```
    </ResponseField>

    <ResponseField name="service_location.city" type="string">
      `PII` City of the service location.

      ```json CEL theme={null}
      service_location.city
      ```

      ```json Example theme={null}
      "San Francisco"
      ```
    </ResponseField>

    <ResponseField name="service_location.state" type="string">
      `PII` State of the service location.

      ```json CEL theme={null}
      service_location.state
      ```

      ```json Example theme={null}
      "CA"
      ```
    </ResponseField>

    <ResponseField name="service_location.zip" type="string">
      `PII` ZIP code of the service location.

      ```json CEL theme={null}
      service_location.zip
      ```

      ```json Example theme={null}
      "94107"
      ```
    </ResponseField>

    <ResponseField name="service_location.phone_number" type="string">
      `PII` Contact phone number for the service location.

      ```json CEL theme={null}
      service_location.phone_number
      ```

      ```json Example theme={null}
      "555-555-5555"
      ```
    </ResponseField>

    <ResponseField name="appointment_location_details" type="string">
      Details for telehealth appointments. DEPRECATED as of 2024-06-11.

      ```json CEL theme={null}
      appointment_location_details
      ```

      ```json Example theme={null}
      "Zoom"
      ```
    </ResponseField>

    <ResponseField name="patient_id" type="string" required>
      `ID` ID of the patient for this appointment.

      ```json CEL theme={null}
      patient_id
      ```

      ```json Example theme={null}
      "64058687489"
      ```
    </ResponseField>

    <ResponseField name="physician_id" type="string" required>
      ID of the physician for this appointment.

      ```json CEL theme={null}
      physician_id
      ```

      ```json Example theme={null}
      "131074"
      ```
    </ResponseField>

    <ResponseField name="practice_id" type="string" required>
      ID of the practice for this appointment.

      ```json CEL theme={null}
      practice_id
      ```

      ```json Example theme={null}
      "65540"
      ```
    </ResponseField>

    <ResponseField name="metadata" type="object">
      `HI` `ID` `PII` Additional metadata associated with the appointment.

      ```json CEL theme={null}
      metadata
      ```

      ```json Example theme={null}
      {
      "baz": 42,
      "foo": "bar"
      }
      ```
    </ResponseField>

    <ResponseField name="billing" type="object">
      Billing information for the appointment. Must be enabled for practice.

      ```json CEL theme={null}
      billing
      ```

      ```json Example theme={null}
      {
      "billing_note": "This is a billing note",
      "referring_provider": "Dr. John Doe",
      "referring_provider_state": "CA"
      }
      ```
    </ResponseField>

    <ResponseField name="billing.billing_note" type="string">
      Additional billing notes.

      ```json CEL theme={null}
      billing.billing_note
      ```

      ```json Example theme={null}
      "This is a billing note"
      ```
    </ResponseField>

    <ResponseField name="billing.referring_provider" type="string">
      Name of the referring provider.

      ```json CEL theme={null}
      billing.referring_provider
      ```

      ```json Example theme={null}
      "Dr. John Doe"
      ```
    </ResponseField>

    <ResponseField name="billing.referring_provider_state" type="string">
      Two-letter state code of the referring provider.

      ```json CEL theme={null}
      billing.referring_provider_state
      ```

      ```json Example theme={null}
      "CA"
      ```
    </ResponseField>

    <ResponseField name="payment" type="object">
      Payment information associated with the appointment.

      ```json CEL theme={null}
      payment
      ```

      ```json Example theme={null}
      {
      "amount": "20.00",
      "appointment_id": "67176890458",
      "bill": 42,
      "bill_id": "123456789101213",
      "created_at": "2020-01-27T16:17:43Z",
      "deleted_at": null,
      "id": "140755836010857",
      "payment_collected_at": "2020-01-27T16:17:43Z"
      }
      ```
    </ResponseField>

    <ResponseField name="payment.id" type="string">
      `ID` Unique identifier for the payment. Read-only field.

      ```json CEL theme={null}
      payment.id
      ```

      ```json Example theme={null}
      "140755836010857"
      ```
    </ResponseField>

    <ResponseField name="payment.amount" type="string">
      Payment amount in decimal format.

      ```json CEL theme={null}
      payment.amount
      ```

      ```json Example theme={null}
      "20.00"
      ```
    </ResponseField>

    <ResponseField name="payment.payment_collected_at" type="timing.v1.Timestamp">
      Timestamp when the payment was collected.

      ```json CEL theme={null}
      payment.payment_collected_at
      ```

      ```json Example theme={null}
      "2020-01-27T16:17:43Z"
      ```
    </ResponseField>

    <ResponseField name="payment.bill" type="int64">
      Associated bill identifier, if any.

      ```json CEL theme={null}
      payment.bill
      ```

      ```json Example theme={null}
      42
      ```
    </ResponseField>

    <ResponseField name="payment.appointment_id" type="string">
      ID of the associated appointment.

      ```json CEL theme={null}
      payment.appointment_id
      ```

      ```json Example theme={null}
      "67176890458"
      ```
    </ResponseField>

    <ResponseField name="payment.created_at" type="timing.v1.Timestamp">
      Timestamp when the payment record was created.

      ```json CEL theme={null}
      payment.created_at
      ```

      ```json Example theme={null}
      "2020-01-27T16:17:43Z"
      ```
    </ResponseField>

    <ResponseField name="payment.deleted_at" type="timing.v1.Timestamp">
      Timestamp when the payment record was deleted, if applicable.

      ```json CEL theme={null}
      payment.deleted_at
      ```

      ```json Example theme={null}
      null
      ```
    </ResponseField>

    <ResponseField name="payment.bill_id" type="string">
      Associated bill identifier, if any.

      ```json CEL theme={null}
      payment.bill_id
      ```

      ```json Example theme={null}
      "123456789101213"
      ```
    </ResponseField>

    <ResponseField name="created_at" type="timing.v1.Timestamp" required>
      Timestamp when the appointment was created.

      ```json CEL theme={null}
      created_at
      ```

      ```json Example theme={null}
      "2016-10-13T00:47:01Z"
      ```
    </ResponseField>

    <ResponseField name="last_modified_at" type="timing.v1.Timestamp" required>
      Timestamp when the appointment was last modified.

      ```json CEL theme={null}
      last_modified_at
      ```

      ```json Example theme={null}
      "2016-10-13T00:59:16Z"
      ```
    </ResponseField>

    <ResponseField name="deleted_at" type="timing.v1.Timestamp">
      Timestamp when the appointment was deleted, if applicable.

      ```json CEL theme={null}
      deleted_at
      ```

      ```json Example theme={null}
      "2016-10-14T01:12:18Z"
      ```
    </ResponseField>

    <ResponseField name="mode" type="string" required>
      Mode of the appointment. Must be either IN\_PERSON or VIDEO.

      ```json CEL theme={null}
      mode
      ```

      ```json Example theme={null}
      "VIDEO"
      ```
    </ResponseField>

    <ResponseField name="instructions" type="string">
      Instructions for the appointment. Maximum 500 characters.

      ```json CEL theme={null}
      instructions
      ```

      ```json Example theme={null}
      "Please arrive 5 minutes early"
      ```
    </ResponseField>
  </Expandable>
</ResponseField>
