Reference

Elation

Elation is a clinical-first EHR and patient engagement tool. It's designed for the craft of primary care medicine.

Elation is a clinical-first EHR and patient engagement tool. It's designed for the craft of primary care medicine.

Category: EHR Integrations. Adds 34 actions and 2 webhooks to a care flow.

What to configure

Set these once, on the extension in Awell Studio. An action fails at run time if a required setting is missing.

SettingRequiredNotes
Authorization URLYesThe complete URL of Elation authentication endpoint.
Base URLYesThe base URL of Elation API.
Client IDYesThe client ID for OAuth2 Password authentication.
Client SecretYesThe client secret for OAuth2 Password authentication. Stored as a secret.
PasswordNo⚠️ Deprecated: Elation now uses client credentials authentication. This setting is no longer required and should be removed from your settings. Stored as a secret.
Rate Limit DurationNoRate limit Elation webhooks at a certain duration (e.g. only 1 event for a given appointment_id every '30 s', '1 m', '12 h', '30 d'). Value should be {number} {unit}.
UsernameNo⚠️ Deprecated: Elation now uses client credentials authentication. This setting is no longer required and should be removed from your settings.

Actions

Elation adds these 34 actions to a care flow. Add one to a step, then fill in its inputs.

Add Allergy

Adds allergy to the patient profile. If allergy.name is NKDA, we will document a structured NKDA in the patient chart instead of creating a patient allergy called "NKDA"

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYesThe ID of the patient for whom the lab order is being created.
NamestringYesThe name of the allergy drug
Start DatedateNoThe date the allergy started (defaults to today)
ReactionstringNoThe reaction to the drug
SeveritystringNoHow severe the reaction is

Returns:

Data pointType
allergyIdnumber

Add History

Add history item on Elation's patient page

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYesThe patient for whom the the history is being created
TypestringYesThe type of history being created. Supported values: Past, Family, Social, Habits, Diet, Exercise, Immunization, Legal, Consultation, Health Maintenance, Past Surgical, Cognitive Status, Functional Status One of: Past, Family, Social, Habits, Diet, Exercise, Immunization, Legal, Consultation, Health Maintenance, Past Surgical, Cognitive Status, Functional Status.
TextstringYesThe text of the history being created

Add Message to an existing thread

Adds a message to an existing thread in Elation

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Thread IDnumericYesThe ID of the message thread to which the message will be added
Sender IDnumericYesThe ID of the user that adds the message to the thread
Message BodytextYesThe content of the message to be added to the thread

Returns:

Data pointType
messageIdnumber

Add Vitals

Add vitals for the patient

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYesThe patient for whom the the history is being created
Practice IDnumericYesPractice ID where the vitas are beind measured for the patient
Visit Note IDnumericNoWhen provided, the vitals will be attached to the visit note. Note that vitals can only be attached to unsigned visit notes.
Non-Visit Note IDnumericNoWhen provided, the vitals will be attached to the non-visit note. Note that vitals can only be attached to unsigned non-visit notes.
BMInumericNoBody Mass Index; optional and calculated if height and weight are available
HeightnumericNoPatient height in inches
Height NotestringNo
WeightnumericNoPatient weight in lbs
Weight NotestringNo
OxygennumericNoOxygen
Oxygen NotestringNo
Respiratory Rate (rr)numericNoRespiratory rate
Respiratory Rate NotestringNo
Heart Rate (hr)numericNoHeart rate
Heart Rate NotestringNo
Head Circumference (hc)numericNoHead circumference
Head Circumference NotestringNo
TemperaturenumericNoTemperature
Temperature NotestringNo
Blood Pressure (bp)numericNoBlood pressure
Blood Pressure NotestringNo
Body FatnumericNoBody fat percentage
Body Fat NotestringNo
Dry Lean Mass (dlm)numericNoDry lean mass
Dry Lean Mass NotestringNo
Body Fat Mass (bfm)numericNoBody fat mass
Body Fat Mass NotestringNo
Waist Circumference (wc)numericNoWaist circumference
Waist Circumference NotestringNo

Returns:

Data pointType
vitalsIdnumber

✨ Cancel Appointments

Cancel appointments for a patient using natural language.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Elation patient IDnumericYesThe Elation patient ID of the patient you want to cancel appointments for.
Describe the appointments you would like to canceltextYesProvide clear instructions about what appointments you want to cancel. You can search by appointment type (e.g., "Find all PCP visits"), status (e.g., "Find scheduled appointments"), or other criteria. Be as specific as possible for best results.

Returns:

Data pointType
cancelledAppointmentsjson
explanationstring

This AI-powered action uses AI to identify and cancel patient appointments based on natural language instructions. You can say, "All follow-up appointments for next week" and AI will identify and cancel the right ones for you.

**How it works:

  1. Retrieves all upcoming appointments for the patient from Elation
  2. Uses an LLM to interpret the prompt and identify which appointments should be canceled
  3. Processes the cancellation for matched appointments and handles partial success scenarios

What it needs (Inputs):

  • Elation patient ID (Required): The numeric ID of the patient in Elation whose appointments you want to cancel.
  • Describe the appointments you would like to cancel (Required): Natural language instructions describing which appointments should be canceled. Be specific about criteria such as time period, appointment type, or provider.

What it gives back (Outputs):

  • Cancelled Appointments: An array of appointment IDs that were successfully canceled.
  • Explanation: A detailed explanation of which appointments were canceled and why they matched your criteria.

Tips for best results:

  • Use single or double quotes for exact matches. For example, '"Follow-Up"' will only match appointments with exactly that type.
  • When you know exactly what to match (appointment type, status), put it in quotes (e.g., '"Scheduled"', '"Physical Exam"') for exact matching.
  • For other criteria where you're less certain, provide descriptive instructions without quotes.
  • Be specific about the time frame: "all appointments this week," "appointments in July," etc.
  • You can target specific appointment types: "all physical therapy appointments," "follow-up visits", etc.
  • Only future appointments with status "Scheduled" or "Confirmed" can be canceled.
  • If no appointments match your criteria, the action will explain why nothing was canceled.
  • For safety, highly specific criteria are recommended to avoid unintended cancellations.
  • Be clear and specific in your instructions to avoid ambiguity - this is critical for preventing accidental cancellations.

Example**:

Input:
  Elation patient ID: 12345
  Describe the appointments you would like to cancel: "All appointments with status 'Scheduled' for office visits in the next two weeks."

Output:
  Cancelled Appointments: [67890, 67891]
  Explanation: "I canceled 2 appointments based on your request:
  1. Appointment #67890: Scheduled for June 5, 2023 at 2:00 PM, type: Office Visit
  2. Appointment #67891: Scheduled for June 12, 2023 at 10:30 AM, type: Office Visit
  
  Both appointments were within the next two weeks and match the 'Office Visit' type and 'Scheduled' status as specified. The appointments were successfully canceled in the system and will need to be rescheduled after the patient returns from vacation."

✨ Check Patient Tags

Verify if patient tags in Elation match the given instruction.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Elation patient IDnumericYes
Instructions for checking tagstextYesProvide clear instructions for checking presence of absence of tags. For example: "Check if the patient has the tag 'Eligible'" or "Make sure the patient has tag 'A' but does not have tag 'B'"

Returns:

Data pointType
explanationstring
tagsFoundboolean

This AI-powered action uses AI to check if a patient's tags match given instructions in natural language. Ask "Is this patient marked as 'Diabetic' or 'Obese'?" — AI checks and explains the answer.

**How it works:

  1. Retrieves existing patient tags from Elation
  2. Uses an LLM to interpret natural language instructions and check if the patient's tags match the requirements
  3. Returns a boolean result and explanation of the check

What it needs (Inputs):

  • Elation patient ID (Required): The numeric ID of the patient in Elation whose tags you want to check.
  • Instructions for checking tags (Required): Natural language instructions explaining what tag conditions you want to verify. Be specific about what tags should or shouldn't be present.

What it gives back (Outputs):

  • Tags Found: Boolean (true/false) indicating whether the patient's tags match your specified criteria.
  • Explanation: A detailed explanation of why the tags match or don't match your criteria, including which tags were found or missing.

Tips for best results:

  • When specifying exact tag matches, use double quotes around tag names (e.g., "Diabetes", "High-Risk") for exact matching.
  • Case sensitivity and exact spelling matter when using quotes - "Diabetes" and "diabetes" will be treated as different tags.
  • You can use logical operators in your instructions, such as AND, OR, NOT (e.g., "Check if the patient has 'Diabetes' AND 'Hypertension' tags").
  • Complex conditions are supported, like "either/or", "both", "not", "any of", "none of".
  • Be precise about what combination of tags you're looking for to get accurate results.
  • The action provides reasoning about why the criteria was or wasn't met, which can be useful for debugging or explaining decisions.
  • Be clear and specific in your instructions to avoid ambiguity - this is critical for getting accurate results.

Example**:

Input:
  Elation patient ID: 12345
  Instructions for checking tags: "Check if the patient has the tag 'CCM Program' but does not have the tag 'Excluded'. They need to be in the CCM program without exclusions to be eligible for our new service."

Output:
  Tags Found: true
  Explanation: "The patient meets the specified criteria. They have the 'CCM Program' tag, indicating enrollment in the Chronic Care Management program. They do not have the 'Excluded' tag. The patient's complete tag list is: CCM Program, Diabetes, Hypertension. Based on these tags, the patient is eligible for the new service as they are in the CCM program without exclusions."

Close care gap

Close a care gap in Elation.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Quality ProgramstringYes
Care Gap IDstringYes

Create Appointment

Create an appointment using Elation's scheduling API.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYesThe patient to book the appointment for
Scheduled datedateYesNeeds to be an ISO8601 string
ReasonstringYesShould be one of the valid appointment types in Elation
Physician IDnumericYes
Practice IDnumericYes
DurationnumericNoNumber (in minutes). Must be a multiple of 5, the default duration is 15 minutes
DescriptionstringNo
Service location IDnumericNo
Telehealth detailsstringNo

Returns:

Data pointType
appointmentIdnumber

Easily create a patient appointment in Elation.

Creating an appointment requires a few strings to be well-formulated:

  • Scheduled date must be a datetime string (ISO-8601). For example, January 1, 2023 at noon, Pacific Time (-8 hours) would be shown as such: 2023-01-01T12:00:00.000-08:00
  • Reason must not be free text. This value comes from the following list of appointment types (Follow-Up, Office Visit, Physical Exam, etc.): Appointment types
  • Patient is the patient ID.
  • Physician is the physician ID (see Find Physician)
  • Practice is the practice ID (again, see Find Physician)

You can also include a duration (default to 15 minutes, or whatever has been set in your EHR)

Create care gap

Create a care gap in Elation.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Quality ProgramstringYes
Definition IDstringYes
Patient IDstringYes
Practice IDstringYes
Created datedateYes
StatusstringYesOne of: Open, Closed.
DetailtextNo

Returns:

Data pointType
idstring

Create lab order

A lab order represents an order for a patient to perform some lab tests for a vendor.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYesThe ID of the patient for whom the lab order is being created.
PracticenumericYesThe ID of the practice for which the lab order is being created.
Document DatedateYesThe date and time of the lab order document.
Ordering Physician IDnumericYesThe ID of the physician who is creating the order.
Vendor IDnumericNoThe ID of the vendor (or Lab) associated with the lab order.
ContentjsonNoRepresents the content of the lab order report. Should be in JSON format. See https://docs.elationhealth.com/reference/the-lab-order-content-object
Site IDnumericNoThe location where the patient will have the lab performed. Sites are specific to their lab vendor
ConfidentialbooleanNoDefaults to false. Whether the provider has marked the order as confidential. Should not be shared with a patient.

Returns:

Data pointType
labOrderIdnumber
printableLabOrderViewstring

Create Message Thread

Create a message thread in Elation's messaging system.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYesThe patient for which the thread is about
Sender IDnumericYesThe ID of the user initiating the message thread
Practice IDnumericYesThe practice associated with the patient chart
Document DatedateNoDefaults to today’s date if not provided
Chart DatedateNoDefaults to today’s date if not provided
Message BodytextYesThe content of the initial message in the thread
Recipient IDnumericNoA user ID of the recipient of the message. They will be added as a member to the thread.
Group IDnumericNoThe ID of a group that will be added as a member to the thread.
UrgentbooleanNoMarks the message thread as urgent if true. Defaults to false.

Returns:

Data pointType
messageThreadIdnumber

Create Non-Visit Note

Create a Non-Visit Note using Elation's patient API.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYes
AuthornumericYesThe author of a note. Should be the ID of a User in Elation.
CategorystringNoThe Category of a note, defaults to "Problem". Read the extension documentation for the list of possible values.
TagsstringNoComma-separated list of tags IDs
TexttextYesText of a note

Returns:

Data pointType
nonVisitNoteBulletIdnumber
nonVisitNoteIdnumber

The non-visit note is a special kind of note that, as the name suggests, is not associated with a visit. These notes, in their simplest form, provide a chronological account of information about the patient.

Additional documentation for some of the action fields:

  1. Category: The default category is "Problem" but you can choose any of "Past", "Family", "Social", "Instr", "PE", "ROS", "Med", "Data", "Assessment", "Test", "Tx", "Narrative", "Followup", "Reason", "Plan", "Objective", "Hpi", "Allergies", "Habits", "Assessplan", "Consultant", "Attending", "Dateprocedure", "Surgical", "Orders", "Referenced", "Procedure".
  2. Chart and document date automatically get set to the current date, i.e. the date when the action is orchestrated.

Create Patient

Create a patient profile using Elation's patient API.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
First namestringYes
Last namestringYes
Date of BirthdateYes
SexstringYesPossible values are 'Male', 'Female', 'Other', 'Unknown'
Primary Physician IDnumericYesThe ID of the primary physician associated to the patient
Caregiver Practice IDnumericYes
EmailstringNo
Mobile phonestringNoThe number will be stored in US national format in Elation
Middle NamestringNo
Actual NamestringNo
Gender identitystringNoPossible values are 'unknown', 'man', 'woman', 'transgender_man', 'transgender_woman', 'nonbinary', 'option_not_listed', 'prefer_not_to_say', 'two_spirit'
Legal gender markerstringNoPossible values are 'M', 'F', 'X', 'U'
PronounsstringNoPronouns by which a patient identifies self. Possible values are 'he_him_his', 'she_her_hers', 'they_them_theirs', 'not_listed'
Sexual orientationstringNoPossible values are 'unknown', 'straight', 'gay', 'bisexual', 'option_not_listed', 'prefer_not_to_say', 'lesbian', 'queer', 'asexual'
SSNstringNoThe Social Security number of the patient
EthnicitystringNoPossible values are 'No ethnicity specified', 'Hispanic or Latino', 'Not Hispanic or Latino', 'Declined to specify'.
RacestringNoPossible values are 'No race specified', 'American Indian or Alaska Native', 'Asian', 'Black or African American', 'Native Hawaiian or Other Pacific Islander', 'White', 'Declined to specify'.
Preferred languagestringNoFull names e.g. 'English', 'Spanish' or 'French'.
NotesstringNoAdditional notes about the patient
Previous first namestringNoThe previous first name of the patient
Previous last namestringNoThe previous last name of the patient
TagsstringNoThe tags associated with the patient. Separate multiple tags with a comma (max 10 per patient).

Returns:

Data pointType
patientIdnumber

This action creates a patient in Elation.

When creating a patient, you will have to specifiy the primary physician and caregiver practice ID:

  • Primary physician ID: you can retrieve this ID by using the Find Physicians API call, or by using the Find Physician action
  • Caregiver Practice ID: similar to the primary physician ID, you can find this ID by using the same API call or action

If the Elation API throws an error indicating the patient with the provided information already exists, the action will succeed and the ID of the existing patient will be returned.

Create referral order

Create a referral order in Elation.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYes
Practice IDnumericYes
Contact namestringYes
BodytextYes
Authorization forstringYesOne of: Referral For Treatment, includes Consult Visit, Procedure / Testing Only, Consult (One Visit Only).
Consultant namestringYes
SpecialtystringNo

Returns:

Data pointType
idnumber

Create Visit Note

Create a visit note for a patient. This action will create a visit note in the patient chart.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYes
TemplatestringYesVisit note template. Supports "Complete H&P (1 col)" and "Simple". One of: Complete H&P (1 col), Simple.
CategorystringYesBullet category. Supports "ROS" and "Narrative". One of: ROS, Narrative.
Physician IDnumericYesPrescribing physician ID
AuthornumericYesThe author of a note. Should be the ID of a User in Elation.
TexttextYesText of a note
TypestringNoType of visit note. Defaults to Office Visit Note.
ConfidentialbooleanNoWhether this note is confidential to the practice and shouldn`t be shared automatically with third parties. Defaults to false.

Returns:

Data pointType
visitNoteIdnumber

Delete Non-Visit Note

Delete a Non-Visit Note using Elation's patient API.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Non-Visit Note IDnumericYesID of the note to delete

Deletes the non-visit note identified by an ID.

Find Appointment

Retrieve appointments for a given patient, physician, practice, and/or times

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Patient IDnumericYesPatient ID
Physician IDnumericNoPhysician ID
Practice IDnumericNoPractice ID
From DatedateNoDate from which to filter appointments
To datedateNoDate to which appointments are filtered
Event TypestringNoEvent Type (appointment or leave empty)

Returns:

Data pointType
appointment_existsboolean
appointmentsjson

✨ Find Appointments

Find all appointments for a patient using natural language.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Elation patient IDnumericYes
Describe the appointments to search fortextYesProvide clear instructions about what appointments you want to find. You can search by appointment type (e.g. "Find all PCP visits"), status (e.g., "Find scheduled appointments"), or other criteria. Be as specific as possible for best results.

Returns:

Data pointType
appointmentCountsByStatusjson
appointmentsjson
appointmentsFoundboolean
explanationstring

This AI-powered action finds **all appointments for a patient based on a prompt in natural language. Want to know how many mental health sessions someone has had this year? Just ask — AI returns them all.

How it works:

  1. All appointments, independent of their date or status, for the patient are retrieved from Elation.
  2. Based on the provided prompt, an LLM tries to find all appointments from the list of appointments that match the prompt.

What it needs (Inputs):

  • Elation patient ID (Required): The numeric ID of the patient in Elation whose appointments you want to search.
  • Describe the appointments to search for (Required): A natural language description of the appointments you're looking for. Be as specific as possible about appointment types, timing, status, or other criteria.

What it gives back (Outputs):

  • Appointments: Array of appointment objects that match your search criteria (in JSON format).
  • Explanation: A detailed explanation of why these appointments were selected, including the reasoning behind the matches.
  • Appointment Counts By Status: A summary of how many matching appointments were found in each status category (e.g., "Scheduled": 2, "Completed": 1).

Tips for best results:

  • When you know exactly what to match (status, appointment type), put it in quotes (e.g., '"Scheduled"', '"Office Visit"') for exact matching.
  • For other criteria where you're less certain, provide descriptive instructions without quotes.
  • Include specific time ranges, such as "all appointments in 2023" or "appointments from January to March" when relevant.
  • Filter by appointment status: "Cancelled," "Completed," "Scheduled," or "Confirmed" when relevant.
  • Be clear and specific in your instructions and avoid ambiguity - this is critical for getting accurate results.

Example**:

Input:
  Elation patient ID: 12345
  Describe the appointments to search for: "Find all completed appointments with type 'Physical Exam' in the last 6 months"

Output:
  Appointments: [
    {
      "id": 67890,
      "scheduled_date": "2023-06-10T13:00:00Z",
      "status": {
        "status": "Completed"
      },
      "reason": "Physical Exam",
      "mode": "IN_PERSON"
    },
    {
      "id": 67891,
      "scheduled_date": "2023-03-15T09:30:00Z",
      "status": {
        "status": "Completed"
      },
      "reason": "Physical Exam",
      "mode": "IN_PERSON"
    }
  ]
  Explanation: "I found 2 completed physical exam appointments in the last 6 months. The first appointment was on June 10, 2023, and the second appointment was on March 15, 2023. Both appointments were in-person and are marked as completed in the system."
  Appointment Counts By Status: {
    "Completed": 2
  }

✨ Find Future Appointment

Find a future appointment in Elation.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Elation patient IDnumericYes
Describe what appointment you would like to findtextYes

Returns:

Data pointType
appointmentjson
appointmentExistsboolean
explanationstring

This AI-powered action finds a **single future appointment for a patient based on a prompt in natural language. Just type something like "next cardiology appointment" — AI figures it out and finds the matching appointment for you.

How it works:

  1. All future appointments with status Scheduled or Confirmed for the patient are retrieved from Elation.
  2. Based on the provided prompt, an LLM tries to find a single appointment from the list of future appointments that matches the prompt.
  3. If multiple appointments exist that match the instructions, only the first one is returned.

What it needs (Inputs):

  • Elation patient ID (Required): The numeric ID of the patient in Elation whose appointments you want to search.
  • Describe what appointment you would like to find (Required): A natural language description of the appointment you're looking for. Be as specific as possible about the type, status, timing, or any other important aspect for your use case.

What it gives back (Outputs):

  • Appointment: The complete appointment data in JSON format (if found).
  • Appointment Exists: Boolean indicator (true/false) of whether a matching appointment was found.
  • Explanation: A clear explanation of why the selected appointment was chosen or why no appointment was found.

Tips for best results:

  • Include specific details about the appointment type, status, or purpose in your description.
  • Use single or double quotes for exact matches. For example, if you search for '"Physical Exam"', the action will search for appointments with that exact appointment type (with small variations physical exams, Physical exam).
  • When you know exactly what to match (status, physician name, appointment type), put it in quotes (e.g., '"Scheduled"', '"Follow-Up"') for exact matching.
  • For other criteria where you're less certain, provide descriptive instructions without quotes, for example all physical exams - then AI action will try to find all exams that can be classified as physical exams.
  • Time-based instructions work well, such as "next week," "this month," or "next Thursday."
  • If multiple appointments match your criteria, only the first one will be returned.
  • Be clear and specific in your instructions to avoid ambiguity - this is critical for getting accurate results.

Example**:

Input:
  Elation patient ID: 12345
  Describe what appointment you would like to find: "Find my next video appointment with status 'Confirmed' for 'Follow-Up'"

Output:
  Appointment: {
    "id": 67890,
    "scheduled_date": "2023-08-15T14:30:00Z",
    "status": {
      "status": "Confirmed"
    },
    "mode": "VIDEO",
    "reason": "Follow-Up"
  }
  Appointment Exists: true
  Explanation: "I found a video appointment scheduled for August 15, 2023 at 2:30 PM. The appointment is confirmed and is for a Follow-Up visit, which matches your search criteria. This is the earliest upcoming confirmed video appointment for a follow-up."

Find Physician

Retrieve a physician using Elation's patient API.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
First NamestringNoFirst Name to search for.
Last NamestringNoLast Name to search for.
NPI (National Provider Identifier)stringNoNPI to search for.

Returns:

Data pointType
caregiverPracticeIdnumber
physicianCredentialsstring
physicianEmailstring
physicianFirstNamestring
physicianIdnumber
physicianLastNamestring
physicianNPIstring
physicianUserIdnumber

Get Appointment

Retrieve an appointment using Elation's scheduling API.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Appointment IDnumericYesProvide the ID of the appointment you want to fetch the details of

Returns:

Data pointType
appointmentjson
descriptionstring
durationnumber
patientIdnumber
physicianIdnumber
practiceIdnumber
reasonstring
scheduledDatedate
serviceLocationIdnumber
statusjson
statusStringstring
telehealthDetailsstring

Retrieve appointment details using an appointment ID.

Get letter

Retrieve a letter from Elation.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Letter IDnumericYes

Returns:

Data pointType
bodystring
signedBynumber

Get Non-Visit Note

Get a Non-Visit Note using Elation's patient API.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Non-Visit Note IDnumericYesID of a note

Returns:

Data pointType
authorIdnumber
chartDatedate
documentDatedate
patientIdnumber
practiceIdnumber
tagsstring
textstring

Retrieve the details of a non-visit note identified by an ID.

Get Patient

Retrieve a patient profile using Elation`s patient API.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Patient IDnumericYesThe Elation patient ID

Returns:

Data pointType
actualNamestring
caregiverPracticeIdnumber
dobdate
emailstring
ethnicitystring
firstNamestring
genderIdentitystring
lastNamestring
legalGenderMarkerstring
mainPhonetelephone
middleNamestring
mobilePhonetelephone
notesstring
patientObjectjson
preferredLanguagestring
preferredServiceLocationIdnumber
previousFirstNamestring
previousLastNamestring
primaryPhysicianIdnumber
pronounsstring
racestring
sexstring
sexualOrientationstring
ssnstring
statusstring

Using a patient identifier, retrieve a patient object from Elation.

Note that when retrieve the mobile phone number, we are tranforming the number to an international format. We apply a heuristic and assume all mobile numbers in Elation are in US national format so we prepend the number with the +1 country code. Having the number in international format unlocks more powerful functionality like sending text messages with 3rd party services like Twilio and MessageBird.

Get Pharmacy

Retrieve a pharmacy profile using Elation's pharmacies API

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
NCPDP IDstringYesThe NCPDP ID of the pharmacy

Returns:

Data pointType
addressOnestring
addressTwostring
citystring
namestring
pharmacyObjectjson
phonetelephone
statestring
zipstring

Get Physician

Retrieve a physician using Elation's patient API.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Physician IDnumericYes

Returns:

Data pointType
caregiverPracticeIdnumber
physicianCredentialsstring
physicianEmailstring
physicianFirstNamestring
physicianLastNamestring
physicianNPIstring
physicianUserIdnumber

Using a physician identifier, retrieve a physician object from Elation.

Get referral order

Retrieve a referral order from Elation.

This action can be previewed in Studio before you publish, and retries automatically on a transient failure.

InputTypeRequiredDescription
Referral Order IDnumericYes

Returns:

Data pointType
consultantNamestring
diagnosisCodesstrings_array
diagnosisLabelsstrings_array
letterIdstring
patientIdnumber
practicenumber

Post letter

Post a letter using Elation's patient API.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYesID of the patient
PracticenumericYesID of a Practice
Referral Order IDnumericNoId of the Referral Order (Not needed with subject)
SubjectstringNoSubject of the letter (Not needed with referral order)
BodytextYesBody of the letter
Contact NPI codestringYesNPI of the contact whom you want to send this letter
Type of letterstringNoType of letter. Defaults to "provider". The type can be one of the following: "patient", "referral", "provider" or "patient_initiated".

Returns:

Data pointType
letterIdnumber

Sign non-visit note

Sign a non-visit note in Elation.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Non-Visit Note IDnumericYes
Signed bynumericYesThe ID of a physician or office staff who signs the note. Note: it has to be a physician ID, or an office staff ID, not a user ID.

Sign visit note

Sign a visit note in Elation.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Visit Note IDnumericYes
Signed bynumericYesThe ID of a physician or office staff who signs the note. Note: it has to be a physician ID, or an office staff ID, not a user ID.

Update Non-Visit Note

Update a Non-Visit Note using Elation's patient API.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Non-Visit Note IDnumericYesID of a note.
Non-Visit Note Bullet IDnumericNoID of a bullet in a note. Required when want to edit text, author or category of a note.
TexttextNoText of a note. Required when "Bullet ID" is provided.
AuthornumericNoAuthor of a note. Should be ID of a User. Required when "Bullet ID" is provided.
PatientnumericNoID of a Patient
CategorystringNoCategory of a note. Defaults to "Problem". One from the list: "Problem", "Past", "Family", "Social", "Instr", "PE", "ROS", "Med", "Data", "Assessment", "Test", "Tx", "Narrative", "Followup", "Reason", "Plan", "Objective", "Hpi", "Allergies", "Habits", "Assessplan", "Consultant", "Attending", "Dateprocedure", "Surgical", "Orders", "Referenced", "Procedure".
PracticenumericNoID of a Practice.
Document DatedateNoDate in ISO 8601 format.
Chart DatedateNoDate in ISO 8601 format.
TagsstringNoComma-separated list of tags IDs.
Signed by (user ID)numericNo⚠️ DEPRECATED - Please use the "Sign non-visit note" action to sign a non-visit note instead.

Update Patient

Update a patient profile using Elation's patient API.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Patient IDnumericYesThe ID of the patient in Elation
First NamestringNo
Last NamestringNo
Date of BirthdateNoYYYY-MM-DD
SexstringNoPossible values are 'Male', 'Female', 'Other', 'Unknown'
Primary Physician IDnumericNoThe ID of the primary physician associated to the patient
Caregiver Practice IDnumericNo
Middle NamestringNo
Actual NamestringNo
Gender identitystringNoPossible values are 'unknown', 'man', 'woman', 'transgender_man', 'transgender_woman', 'nonbinary', 'option_not_listed', 'prefer_not_to_say', 'two_spirit'
Legal gender markerstringNoPossible values are 'M', 'F', 'X', 'U'
PronounsstringNoPossible values are 'he_him_his', 'she_her_hers', 'they_them_theirs', 'not_listed'
Sexual orientationstringNoPossible values are 'unknown', 'straight', 'gay', 'bisexual', 'option_not_listed', 'prefer_not_to_say', 'lesbian', 'queer', 'asexual'
SSNstringNoThe Social Security number of the patient
EthnicitystringNoPossible values are 'No ethnicity specified', 'Hispanic or Latino', 'Not Hispanic or Latino', 'Declined to specify'.
RacestringNoPossible values are 'No race specified', 'American Indian or Alaska Native', 'Asian', 'Black or African American', 'Native Hawaiian or Other Pacific Islander', 'White', 'Declined to specify'.
Preferred languagestringNoFull names e.g. 'English', 'Spanish' or 'French'.
NotesstringNoAdditional notes about the patient.
Previous first namestringNoThe previous first name of the patient
Previous last namestringNoThe previous last name of the patient
StatusstringNoThe status of the patient (active, deceased, inactive, prospect)
TagsstringNoThe tags associated with the patient. Separate multiple tags with a comma (max 10 per patient).

Update a patient in Elation using any fields available in create patient. We use Elation's PATCH method to apply partial modifications to a the patient resource (i.e. update only what is needed).

✨ Update Patient Tags

Update patient tags in Elation.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Elation patient IDnumericYes
Specify tags to add, remove, or modifytextYesProvide clear instructions for tag changes and relevant context, especially for uncommon tags. Specify new tags in single quotes (e.g., 'Patient-Tag').

Returns:

Data pointType
explanationstring
updatedTagsstring

This AI-powered action uses AI to manage patient tags in Elation based on natural language instructions. Want to mark someone for special attention? Just say it, and AI updates their tags in Elation.

**How it works:

  1. Retrieves existing patient tags from Elation
  2. Uses an LLM to interpret natural language instructions and determine required tag changes
  3. Updates patient tags in Elation according to the interpreted changes

What it needs (Inputs):

  • Elation patient ID (Required): The numeric ID of the patient in Elation whose tags you want to update.
  • Specify tags to add, remove, or modify (Required): Natural language instructions explaining what tag changes you want to make. Be specific about which tags to add, remove, or modify.

What it gives back (Outputs):

  • Updated Tags: A comma-separated list of all patient tags after your requested changes have been applied.
  • Explanation: A detailed explanation of what changes were made to the tags and why.

Tips for best results:

  • When specifying new tags to add, use single quotes around tag names (e.g., 'Diabetes', 'High-Risk') for exact matching.
  • Case sensitivity and exact spelling matter when using quotes - 'Diabetes' and 'diabetes' will be treated as different tags.
  • Be explicit about which tags to remove or replace (e.g., "Remove the 'Temporary' tag").
  • You can include context to help the AI understand why tags are being modified.
  • To clear all tags, you can say "Remove all tags" or "Clear all existing tags."
  • Due to Elation API limitations, clearing all tags is implemented by setting a single space tag (' '). This is the recommended workaround from Elation's team.
  • Tags must already exist in your Elation database to be added.
  • Be clear and specific in your instructions to avoid ambiguity - this is critical for getting accurate results.

Example**:

Input:
  Elation patient ID: 12345
  Specify tags to add, remove, or modify: "Add the tags 'Diabetes' and 'CCM Program'. Remove the 'Inactive' tag if it exists."

Output:
  Updated Tags: "Diabetes, CCM Program, Hypertension"
  Explanation: "I've made the following changes to the patient's tags:
  1. Added 'Diabetes' tag as requested
  2. Added 'CCM Program' tag as requested
  3. No 'Inactive' tag was found, so no removal was necessary
  4. The existing 'Hypertension' tag was preserved"

Update referral order resolution

Update the resolution of a referral order in Elation.

This action can be previewed in Studio before you publish.

InputTypeRequiredDescription
Referral Order IDnumericYes
Resolution statestringYesOne of: Outstanding, Fulfilled, Cancelled.
Resolving documentnumericYesThe ID of the document that resolves the referral order. Can be f.e. a reference to a non-visit note. Required if the resolution state is "fulfilled".

Webhooks

Elation can send these 2 events into Awell, where each one can start a care flow or move a patient along. Point the webhook at the URL Studio shows you when you enable it.

appointmentCreatedOrUpdated

Payload:

Data pointType
appointmentjson
appointmentIdnumber

patientCreatedOrUpdated

Payload:

Data pointType
patientjson
patientIdnumber

Waiting on a result

These actions can pause a care flow until the other system reports back.

EventActionWhat it waits for
lab_order.signedcreateLabOrderWait for lab order to be signed

Setup and notes

Elation is a cloud-based health record system designed for healthcare providers, clinics, and medical practices. It offers a range of features including patient scheduling, charting, e-prescribing, billing, and telemedicine. Overall, Elation is designed to streamline the workflow of medical practices, improve patient care, and increase efficiency.

Setup

Webhooks

The integration of webhooks with Elation presents unique challenges and considerations:

  • **Non-Discriminative Triggers: Elation does not differentiate between the creation or update of a resource. Both actions will set off webhook with action saved, which might not provide enough discriminative information for some use cases.
  • Programmatic Setup: Elation webhooks can only be configured programmatically, as there's no dedicated user interface in Elation to set up webhooks. View this demo video for a step-by-step guide on how to set up your webhooks in Elation.
  • Limitation on user-triggered actions**: Elation has a concept called "Preventing echo". This means that that any action carried out by the user affiliated with the API credentials that created the subscription doesn't trigger a webhook. You can read more about this behaviour here. If you are not receiving any webhooks from Elation after setting up your subscription, then this is the reason. A feasible workaround to the above limitation is creating a dedicated user not meant for human interactions but serves the sole purpose of facilitating M2M communication.

If you need help setting up your webhooks in Elation, reach out! We are happy to help you.

Extension settings

In order to use this extension you will need to provide the extension with the following settings:

  • Base URL / endpoint URL of the API
  • Authorization URL
  • Client ID for OAuth2 Password authentication
  • Client Secret for OAuth2 Password authentication
  • API Username for OAuth2 Password authentication
  • API Password for OAuth2 Password authentication

Not sure where you can find all of this information? Click here to have a look at Elation's Developer documentation.

The following actions are supported with Elation today:

Find physicians

Search a physician based on a set of parameters. The ID of the physician matching the search parameters will be returned. To retrieve the details of the physician, you can use the the "Get physician" action.

Note that this action can only support finding one physician so if your search criteria match multiple physicians the action will throw an error.

Changelog

January 30, 2024

  • New actions
    • Post letter: Using patient and practice identifier, post a new letter to either Provider, Patient or associate it with an existing Referral.

October 3, 2023

  • The README is now more concise with less unneeded detail. A section on the particularities of Elation subscriptions (webhooks) was added.
  • Misc. updates to labels, descriptions, action fields order
  • Action updates
    • Create Non-Visit Note:
      • Simplify the action by removing some optional action fields (we can always expand later)
      • document_date and chart_date are now automatically set to the date of today so that the corresponding action fields could be removed
    • Create patient
      • dob is now a date field type (was a string)
      • You can pass a mobile phone number and email when creating a patient
    • Find physician
      • Only returns the physician ID instead of all the details of the physician. To retrieve the details one can use the new Get physician action
    • Update patient
      • dob is now a date field type (was a string)
      • We are now using PATCH instead of PUT which allows for a partial update, i.e. only update the fields that are needed.
  • New actions
    • Get physician: Using a physician identifier, retrieve a physician object from Elation.
  • Removed actions
    • Update Non-Visit Note
  • Webhooks
    • Fix the type of patientId in patientCreatedOrUpdated webhook
    • Added appointmentCreatedOrUpdated webhook

September 4, 2023

  • rename onCreatePatient webhook to patientCreatedOrUpdated
  • filter non saved actions for this webhook

August 21, 2023

  • make non-visit note text a large input (StringType.TEXT)

May 23, 2024

  • add patient_status.status to patient object in getPatient action
  • add status to updatePatient action

Where this page comes from

The settings, actions, inputs, outputs and webhooks above are generated from the extension's own code, at @awell-health/awell-extensions v2.1.159. They match what the platform actually does rather than a description of it.

Field-level detail also appears in Awell Studio when you configure the action. Something wrong or missing? Email support@awellhealth.com.

On this page