---
schema_version: "1"
id: eddb9b6d2b91148bf0ddf9ae0578ca77c8c74f444fc87a548807f25b5834d298
title: Configure the Self-Service Appointment Flow
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/admin_appointment_flow_config.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.admin_appointment_flow_config.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 893ee7b61e2c98a73cdcd3bf5dc76639174155980ac3cf0c4c0fbf0c52a95ebb
description: Customize the self-service appointment management flows by editing the steps of the Intelligent Appointment Management Omniscripts used for self-scheduling appointments, viewing and canceling appointments, and verifying benefits.
products:
  - Health
release: "264"
---
# Configure the Self-Service Appointment Flow

Customize the self-service appointment management flows by editing the steps of the Intelligent Appointment Management Omniscripts used for self-scheduling appointments, viewing and canceling appointments, and verifying benefits.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition">
      <colgroup>
        <col>
      </colgroup>
      <tbody>
        <tr class="">
          <td class="slds-cell-wrap" style="vertical-align:top;">
            <p>Available in: Lightning Experience</p>
            <p style="margin-bottom:0;">Available in: <strong>Enterprise</strong> and <strong>Unlimited</strong> Editions with Health
              Cloud</p>
          </td>

        </tr>
      </tbody>
    </table>

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-health-264-0-0-production-enus/90a9f828-79ab-49cd-ac8c-86e58ef7478e/images/icon_note.png)

Note For the Omniscripts to run properly, records for all required Intelligent Appointment Management objects must be configured. In addition, Appointment Reason and Work Type Care Specialty records must be configured.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d238079e69">Omniscript</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d238079e72">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Omniscript" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e69 ">selfService</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e72 ">
              <p>Schedule appointments with providers through an Experience Cloud site.</p>
              <p style="margin-bottom:0;">The selfService Omniscript doesn’t support asset scheduling.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Omniscript" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e69 ">selfScheduleProvidersAndAssets </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e72 ">
              <p>Schedule appointments with providers and assets through an Experience Cloud
                site.</p>
              <p style="margin-bottom:0;">Asset scheduling through the selfScheduleProvidersAndAssets Omniscript is
                supported for Salesforce Scheduler only, not external EHR systems.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Omniscript" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e69 ">myAppointments</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e72 ">
              <p>View and cancel appointments with providers through an Experience Cloud site.</p>
              <p style="margin-bottom:0;">The myAppointments Omniscript doesn’t support asset scheduling. To support asset
                scheduling on your Experience Cloud site, use the My Appointment component
                instead.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Omniscript" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e69 ">viewBenefits</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e72 ">View insurance benefits through an Experience Cloud site.</td>

          </tr>
        </tbody>
      </table>

## Schedule an Appointment with Providers

To edit the appointment management self-service flow for provider scheduling, open the Omnistudio app, go to the Omniscripts page, expand the healthCloudIAM/selfService Omniscript, and open the highest version. Click **New Version**. Then make changes and activate the new version.

   
| Component Name | Component Type | What It Does | What It Calls |
| --- | --- | --- | --- |
| CheckGuestUser | Set Values | Checks if the user has an existing Person Account. It also checks the user's time zone, their current time, and end of day time. | None |
| DRFetchUserDetails | Data Mapper Extract Action | Retrieves user details and records for appointment reason options. | HealthCloudIAMExtractAppointmentReason |
| ScheduleAppointmentOptions | Step | Displays a Flexcard with appointment options for the user. | None |
| MandateOptionSelection | Set Errors | Uses a formula to check that the user has selected an appointment reason so they can proceed with the flow. | None |
| SetSelectedWorkTypeId | Set Values | Sets the appointment reason's work type ID and work type name. | None |
| SelectLocation | Step | Prompts the user for a location. | GetMaps\_AutoComplete |
| SetAddressForProvderSearch | Set Values | Assigns the user's address to the provider search attributes. | None |
| DRFetchSchedulingSystem | Data Mapper Extract Action | Extracts the scheduling system and care specialty for the selected appointment reason. | HealthCloudIAMExtractSchedulingSystem |
| IPGetProviderAndSlots | Integration Procedure Action | Converts user input into attributes for the provider search functionality and uses the GetProviders API to fetch providers. | healthCloudIAM\_FetchProviderAndTimeSlots |
| IPGetSlotsForProviders | Integration Procedure Action | Retrieves time slots for the selected providers and sorts providers in this order: assigned, past, and other providers. The component then merges these providers into a single list. It also converts the time slots into the provider's operating time zone, if mentioned. If not, the slots are converted to the user's browser time zone. | healthCloudIAM\_FetchTimeSlots |
| SetCalendarDate | Set Values | Sets the calendar date as today along with the address entered by the user. | None |
| ScheduleProvider | Step | Displays a form with providers within a certain radius of the user's location along with filters to narrow the options. | None |
| CheckIfAcceptsNewPatient | Set Values | Sets a value to indicate if the provider is accepting new patients. | None |
| MandateSlotSelection | Set Errors | Uses a formula to check if the patient is new and the provider is accepting new patients so they can proceed with the flow. | None |
| NotAcceptingNewPatients | Step | Displays a message if the user is new and the provider isn't accepting any new patients at the moment. | None |
| IPTransformIndividualProviderData | Integration Procedure Action | Separates the selected provider's data and availability information from the list of all available providers. | healthCloudIAM\_TransformIndividualProviderData |
| IPTransformIndividualSlotsData | Integration Procedure Action | Runs when the user wants to see the next soonest appointment for a particular provider. The Integration Procedure fetches the earliest available appointment slots. | healthCloudIAM\_TransformIndividualSlotsData |
| SetCalendarFiltervalue | Set Values | Sets values of the calendar date for the next soonest appointment available. | None |
| ScheduleProviderIndividual | Step | Displays available slots to book an appointment for the selected provider. | None |
| NoSlotSelected | Set Errors | Requires the user to select an appointment slot before proceeding. | None |
| SetSelectedSlotValues | Set Values | Assembles the data for the selected appointment slot. | None |
| ExperienceWithProvider | Step | Displays options to indicate if the user has seen the provider in the last 3 years. | None |
| CheckExperienceWithProvider | Set Errors | Requires the user to specify if they’ve visited the provider in the last 3 years before proceeding. | None |
| SetWorkTypeId | Set Values | If the user has seen the provider in the past 3 years, this component assigns the established work type ID, and name. | None |
| DRFetchNewSchedulingSystem | Data Mapper Extract Action | Checks if the scheduling system is Salesforce or an external system. | HealthCloudIAMExtractSchedulingSystem |
| SetCallBookAppointment | Set Values | Checks if the BookAppointment API is to be called. The API is called only when the scheduling system is Salesforce. The API isn’t called for a user who has selected the EHR work type. | None |
| IPFetchSlotsForNewPatient | Integration Procedure Action | Uses the established work type ID to make an API call to find slots. Also checks if the selected slot is still available. | healthCloudIAM\_TransformForNewPatient |
| SelectedSlotNotAvailableForExistingPatient | Step | Displays a message if the selected slot isn’t available for a patient. | None |
| CollectGuestUserInfo | Step | If the selected slot is available, a form collects the guest username, email, and date of birth. | None |
| DRFetchInsurances | Data Mapper Extract Action | Retrieves insurance details | HealthCloudIAMExtractInsurance |
| ExistingInsurance | Step | This step is optional. Displays a form for existing user to verify their insurance details. | None |
| AddInsurance | Step | This step is optional. Displays a form for new users to enter their insurance details. | None |
| Referral | Step | This step is optional. Displays a form for users to enter details if they've been referred to the provider. | None |
| IPCheckSelectedSlotStatus | Integration Procedure Action | Checks if the selected slot is still available. | healthCloudIAM\_fetchSlotStatus |
| SelectedSlotNotAvailable | Step | Displays a message if the selected slot isn’t available. | None |
| IPTransformAllData | Integration Procedure Action | Transforms user selection data JSON into the appropriate structure so that it can be displayed to the user for review. | healthCloudIAM\_TransformBookAppointmentData |
| Review | Step | Displays the details of the selected appointment. | None |
| IPCreateGuestUser | Integration Procedure Action | If the flow user is a guest user, then this Integration Procedure creates a Person Account record for the guest user. | healthCloudIAM\_CreateGuestUser |
| IPBookAppointment | Integration Procedure Action | Transforms user selection into a format that can be passed on to the bookAppointment remote method to book the appointment. Updates the referral data. ​ If the user entered insurance details, a member plan record and a case record are created. Also creates a case record for guest users who select an external work type. | healthCloudIAM\_bookAppointment |
| AppointmentConfirmed | Step | Displays a confirmation message to an existing user that the appointment is booked. | None |
| NavigateToBenefits | Navigate Action | If the user clicks View Appointments on the confirmation screen, this component navigates them to the My Appointments page. | None |
| AppointmentConfirmedGuestUser | Step | Displays a confirmation message to a guest user that the appointment is booked. | None |
| AppointmentFailed | Step | Displays a message if the process workflow terminates abruptly. | None |
| AppointmentConfirmedGuest | Step | If a guest user selects an external work type (EHR) then this confirmation is displayed after booking their appointment. | None |
| NavigateAction | Navigate Action | Navigates the user back to the Home page. | None |

## Schedule an Appointment with Providers and Assets

To edit the appointment management self-service flow for provider and asset scheduling, open the Omnistudio app, go to the Omniscripts page, expand the healthCloudIAM/selfScheduleProvidersAndAssets Omniscript, and open the highest version. Click **New Version**. Then make changes and activate the new version.

The selfScheduleProvidersAndAssets Omniscript includes the same elements as the selfService Omniscript and these additional elements specifically for scheduling assets.

   
| Component Name | Component Type | What It Does | What It Calls |
| --- | --- | --- | --- |
| IPGetAssetAndSlots | Integration Procedure Action | Converts user input into attributes for the asset search functionality and uses the GetAssets API to fetch assets. | healthCloudIAM\_FetchAssetAndTimeSlots |
| IPGetSlotsForAssets | Integration Procedure Action | Retrieves time slots for the selected assets and then merges these providers into a single list. It also converts the time slots into the asset's operating time zone, if mentioned. If not, the slots are converted to the user's browser time zone. | healthCloudIAM\_FetchAssetTimeSlots |
| ScheduleAsset | Step | Displays a form with assets within a certain radius of the user's location along with filters to narrow the options. | None |
| IPTransformIndividualAssetData | Integration Procedure Action | Separates the selected asset's data and availability information from the list of all available assets. | healthCloudIAM\_TransformIndividualAssetData |
| SetSelectedSlotValuesForAssets | Set Values | Assembles the data for the selected appointment slot. | None |
| IPTransformAllDataForAsset | Integration Procedure Action | Transforms user selection data JSON into the appropriate structure so that it can be displayed to the user for review. | healthCloudIAM\_TransformBookAssetAppointmentData |
| AppointmentDetailsForProvider | Step | Displays the details of the selected provider appointment. | None |
| AppointmentDetailsForAsset | Step | Displays the details of the selected asset appointment. | None |

## Cancel an Appointment

To edit the appointment cancellation self-service flow, open the Omnistudio app, go to the Omniscripts page, expand the healthCloudIAM/myAppointments Omniscript, and open the highest version. Click **New Version**. Then make changes and activate the new version.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:16%">
          <col style="width:16%">
          <col style="width:29.28%">
          <col style="width:38.72%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d238079e1066">Component Name </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d238079e1069">Component Type </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d238079e1072">What It Does </th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d238079e1075">What It Calls </th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">DR-FetchAppointmentReason-234 </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Data Mapper Extract Action </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Extracts the reason for the appointment. </td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">HealthCloudIAMExtractAppointmentReason </td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">SetValues </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Set Values </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Sets the Context ID for the logged in user, which is the business account ID
              associated with that user. </td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">None </td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">IPFetchServiceAppointments</td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Integration Procedure Action </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Extracts past and upcoming appointments for the user. </td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">healthCloudIAM_FetchServiceAppointments </td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">Appointment_History </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Step </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Displays the past and upcoming appointments in a Flexcard. </td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">None </td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">Cancel_Appointment </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Step </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Confirms that the user wants to cancel the appointment. </td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">None </td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">DR-CancelAppointmentParameters_234 </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Data Mapper Extract Action </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Retrieves all the appointment parameters from objects ServiceAppointment,
              CarePractnFacilityAppt, and Identifier.</td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">HealthCloudIAMCancelAppointmentParameters</td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">Check_IF_EHR_LS </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Set Values </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Fetches the values for sourceSystem and externalAppointmentId.</td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">None </td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">DR-TransformParameters_LS_234 </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Data Mapper Transform Action </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 "> If the appointment is on the Lightning Scheduler, then the appointment data is
              mapped to attribute values for the cancelAppointment API method.</td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">HealthCloudIAMTransformLSParameters</td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">DR-TransformParameters_EHR_234 </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Data Mapper Transform Action </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">If the appointment is on an external scheduling system, then the appointment
              data is mapped to attribute values for the cancelAppointment API method.</td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">HealthCloudIAMTransformEHRParameters</td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">CancelAppointmentRemoteAction </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Remote Action </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Calls the cancelAppointment method from
              healthcloudext.AppointmentBookingSelfServiceWrapper to cancel the selected
              appointment. </td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">
              <p>Remote Class: healthcloudext.AppointmentBookingSelfServiceWrapper</p>
              <p style="margin-bottom:0;">Remote Method: cancelAppointment</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">AppoinmentCancelled </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Step </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Displays a confirmation that the appointment is canceled. </td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">None </td>

          </tr>
          <tr class="">
            <td data-label="Component Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1066 ">NavigateAction </td>

            <td data-label="Component Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1069 ">Navigate Action </td>

            <td data-label="What It Does" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1072 ">Restarts the OmniScript and takes the user back to the list of past and
              remaining upcoming appointments.</td>

            <td data-label="What It Calls" class="slds-cell-wrap" style="vertical-align:top;" headers="d238079e1075 ">None </td>

          </tr>
        </tbody>
      </table>

## View Your Benefits

To edit the benefits self-service flow, open the Omnistudio app, go to the Omniscripts page, expand the healthCloudIAM/viewBenefits Omniscript, and open the highest version. Click **New Version**. Then make changes and activate the new version.

   
| Component Name | Component Type | What It Does | What It Calls |
| --- | --- | --- | --- |
| DR-GetMemberPlans\_234 | Data Mapper Extract Action | Retrieves the active and inactive insurance plans associated with the user's account. | HealthCloudIAMExtractMemberPlans |
| Your\_Benefits | Step | Displays the active and inactive insurance plans for the user. | None |
| DR-GetCoverageBenefit\_234 | Data Mapper Extract Action | Fetches the latest record from CoverageBenefit. | HealthCloudIAMExtractCoverageBenefit |
| Benefit\_Details | Step | Displays benefit details in a Flexcard. | None |