---
schema_version: "1"
id: 2dc42000edbaaeecfbd3c5bcb0c21921d58322dda78c10bc2a94f68d27d7071c
title: Set Up Appointment Assistant Self-Service Scheduling For Existing Appointments
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/service/264-0-0/mfs_appointment_assistant_sss_existing_appointments_parent.md
canonical_url: https://help.salesforce.com/s/articleView?id=service.mfs_appointment_assistant_sss_existing_appointments_parent.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 8f9fe722d717a1e0743fea85f6f70e542e94e4a284348843191ef42e9548e36c
description: Let your customers confirm, reschedule, or cancel their upcoming appointments.
products:
  - Field Service
release: "264"
---
# Set Up Appointment Assistant Self-Service Scheduling For Existing Appointments

Let your customers confirm, reschedule, or cancel their upcoming appointments.

### 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;">Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">The Field Service core features, managed package, and mobile app are available in <strong>Enterprise</strong>, <strong>Unlimited</strong>, and <strong>Developer</strong> Editions.</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">The Field Service Appointment Assistant managed package and permission set license are required.</td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d150327e80">User Permissions Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">To configure layouts:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">Customize Application</td>

          </tr>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">To configure statuses:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">Customize Application</td>

          </tr>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">To configure the Appointment Assistant settings:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">Field Service Appointment Assistant</td>

          </tr>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">To add components to sites:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">Create and Set Up Experience Sites AND View Setup and Configuration</td>

          </tr>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">To create messaging components:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">Configure Messaging</td>

          </tr>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">To open, edit, or create a flow in Flow Builder:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">Manage Flow</td>

          </tr>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">To create a sharing rule:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d150327e80 ">Customize Application</td>

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

#### See Also

- [Interactive Messaging Components](https://help.salesforce.com/articleView?id=service.messaging_components_parent.htm&language=en_US)

## (Optional) Add Notes to the Service Appointment Layout

To let your mobile workers see notes from customers, add the Service Notes field to the layout for mobile workers.

1. From Setup, go to the Object Manager tab.
2. In the Quick Find box, enter Service Appointment, and then select **Service Appointment**.
3. In Page Layouts, edit the layout used for the Field Service mobile workers.
4. Add the Service Note field to the layout.
5. Save the layout.

## (Optional) Add a Service Appointment Status for Confirmed Appointments

Add a Confirmed status to the Service Appointment Status options. If you enter this status in the Appointment Assistant Self-Service Scheduling settings, when the customers confirm their appointments, the service appointment’s status changes accordingly.

1. Add the new status.
    1. From Setup, go to the Object Manager tab.
    2. In the Quick Find box, enter Service Appointment, and then select **Service Appointment**.
    3. Click **Fields & Relationships**.
    4. In the Quick Find box, enter Status, and then select **Status**.
    5. In Status Picklist Values, click **New**.
    6. Enter the details of the Confirmed status.
    7. Save the new status.
2. If your Salesforce org uses status transitions:
    1. From Field Service Admin, go to the Field Service Settings tab.
    2. From Service Appointment Workflow, go to Status Transitions.
    3. Add the flows for the Confirmed status.

## Step 1: Configure Appointment Assistant Settings for Self-Service Scheduling

Make sure that the Appointment Assistant settings are configured.

1. Check if Appointment Assistant is configured in your org.
    1. From Setup, in the Quick Find box, enter Field Service, and then select **Field Service Settings**.
    2. If the Appointment Assistant section is filled in, you’re all set.
2. If it isn’t configured, see [Configure Field Service Settings for Real-Time Location](https://help.salesforce.com/s/articleView?id=service.mfs_appointment_assistant_fs_settings.htm&release=264.0.0&type=5 "Allow worker tracking and customer messaging in your Field Service settings.").

## Step 2: Add Self-Service Scheduling to Your Experience Builder Site

To enable Appointment Assistant Self-Service Scheduling, add it to your Experience Builder site.

1. From Setup, in the Quick Find box, enter Digital Experiences, and then select **All Sites**.
2. In the row for your site, click **Builder**.
3. From Experience Builder, click **Components** ![Components button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/support_field_service/images/mfs_aa_4_components_button.png).
4. From Custom Components, locate the Self-Service Scheduling component.
5. Drag the component onto the site.
    
    ![Self-Service Scheduling Lightning web component.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/support_field_service/images/mfs_aa_sss_lwc.png)
6. To open the settings panel, click anywhere in the Appointment Assistant Self-Service Scheduling component.
7. In Operating Hours, select the record that defines the appointment slots. For example, in this Operating Hours record, the company has 3-hour slots on Mondays and Wednesdays, and 2-hour slots on Tuesdays, Thursdays, and Sundays.
    
    ![Operating Hours](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/support_field_service/images/mfs_aa_sss_operating_hours.png)
8. In Statuses That Allow Rescheduling, enter statuses that aren’t pinned.
9. Fill in the remaining settings. Your selections are reflected in the preview of the component.
    
    ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/images/icon_note.png)
    
    Note The service appointment’s territory time determines the time zone. If the service appointment’s territory time is empty, the end user’s time zone is used.
10. Publish the site.

## Step 3: Enable Customers to Cancel Appointments

To enable customers to cancel their appointments in the Appointment Assistant Self-Service Scheduling screen, you must disable the option for mentioning an assigned user when the service appointment is dispatched.

1. In Field Service Admin, open the Field Service Settings tab.
2. Under Dispatch, select **Scheduled Jobs**.
3. Disable the **Mention assigned user when the Service Appointment is dispatched** option.
    
    ![Scheduled jobs](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/support_field_service/images/mfs_aa_sss_scheduled_jobs.png)
4. Save your changes.

## Step 4: Create a Messaging Component for Existing Appointments

Create a messaging component for messages that let customers open the Appointment Assistant Self-Service Scheduling page.

1. From Setup, in the Quick Find box, enter Messaging, and then select **Messaging Components**.
2. Click **New Component**.
3. Click **Notification**, and then click **Next**.
4. Enter the plain text version of your automated message. Include the URL placeholder that lets customers navigate to the Experience Builder site that you configured. For example: {!ServiceAppointment.ApptBookingInfoUrl}
5. Click **Next**.
6. Enter a name and description for your component. For example, Appointment Booking.
7. Click **Done**. The Messaging Component Builder opens.
8. In the left sidebar, click **Parameters**.
9. In the Custom Parameters section, click **New**.
10. Configure the URL parameter.
    
    - Name—A label for the parameter. For example, Change Appointment Booking.
    - API Name—ApptBookingInfoUrl
    - Type—**Text**
    - Object Type—**Service Appointment**
11. Click **Save**.
12. (Optional) In the left sidebar, click **Text** to further customize the plain text version of your automated message.
13. Save your changes.

## Step 5: Create Flows to Send Messages

Streamline your messaging process by setting up flows that use the messaging components that you created.

1. From Setup, in the Quick Find box, enter Process Automation, and then select **Flows**.
2. Click **New Flow**.
3. Select **Record-Triggered Flow**, and then click **Create**.
4. Set up the service appointment conditions that send the URL. For example, to send the URL when a service appointment moves to the Scheduled status, in the Configure Start window:
    1. In Object, enter Service Appointment.
    2. In Trigger the Flow When, select **A record is updated**.
    3. In Condition Requirements, select **All Conditions Are Met (AND)**.
    4. Set the Condition Requirements.
        
        - In Field, enter Status.
        - In Operator, select **Equals**.
        - In Value, enter Scheduled.
    5. In When to Run the Flow for Updated Records, select **Only when a record is updated to meet the condition requirements**.
    6. To run the flow after the record is saved, select to optimize the flow for **Actions and Related Records**.
    7. Click **Done**.
5. Add new resources that connect between the community URL, Service Appointment ID, and URL expiration time.
    1. From the Toolbox, click **New Resource**, and then create a variable for the URL input.
        
        - In Resource Type, select **Variable**.
        - Enter an API name.
        - In Data Type, select **Text**.
        - In Default Value, enter the link to the Experience Builder site, followed by these characters: /?guestToken=#{!$Record.Id}#\[Time in Hours\]
            
            ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/images/icon_note.png)
            
            Note The \[Time in Hours\] indicates how long the URL is valid for from the time it’s generated.
            
            ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/images/icon_note.png)
            
            Note To make sure that the link to the Experience Builder site is accurate, copy it from the Experience Builder settings.
            
            ![Published Status link to Experience Builder site](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/support_field_service/images/mfs_aa_sss_published_link.png)
        - In Availability Outside the Flow, select **Available for input**.
            
            ![New Resource screen for input](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/support_field_service/images/mfs_aa_sss_new_resource.png)
        - Click **Done**.
    2. Click **New Resource** again, and then create a variable for the URL output.
        
        - In Resource Type, select **Variable**.
        - Enter an API name.
        - In Data Type, select **Text**.
        - In Availability Outside the Flow, select **Available for input and Available for output**.
            
            ![New Resource screen for output](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/support_field_service/images/mfs_aa_sss_new_resource_output.png)
        - Click **Done**.
6. Add the Apex action.
    1. To add an element to the flow, click ![Add element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/resources-global/_corporate/images/flow_plus_icon.png).
    2. Under Interaction, select **Action**.
    3. In the Action field, enter FSAA.AARebookingGetURLcontroller.
    4. Enter a name for the Label. The API Name is automatically populated accordingly.
    5. In Set Input Values:
        
        - Include the valueFromFlow option.
        - Select the URL input variable that you created in step 5.
    6. Under Advanced:
        
        - Select **Manually assign variables**.
        - In the output field, select the URL output variable that you created in step 5.
            
            ![Apex action details window](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/support_field_service/images/mfs_aa_sss_apex_action.png)
    7. Click **Done**.
7. Add the Update Records component.
    1. To add an element to the flow, click ![Add element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/resources-global/_corporate/images/flow_plus_icon.png).
    2. Under Data, select **Update Records**.
    3. Enter a name for the Label. The API Name is automatically populated accordingly.
    4. Under Set Field Values for the Service Appointment Record:
        
        - In Field, select **ApptBookingInfoUrl**.
        - In Value, select the URL output variable that you created in step 5.
    5. Click **Done**.
8. Add the Send Conversation Messages action.
    1. Add a collection variable for the Messaging User object. This collection variable is populated with a list of messaging user record IDs based on your criteria. For example, you can configure your flow to send an automated message to a subset of messaging users based on channel and consent status.
    2. Add an action to the canvas. The New Action window opens.
    3. Select the **Send Conversation Messages** action and complete the fields.
        
        - In **Messaging Users**, select the collection variable that you created.
        - In **Messaging Component**, select your new messaging component. Make sure that the component status is Active on the Messaging Components page in Setup.
        - Select **Any Time** for when to send the message.
        - Select **Yes**, apply Messaging End User settings for end user’s consent preferences.
        - In **Session Longevity**, select **Yes, End Session Immediately** if the end user doesn’t need to respond in this messaging session.
        
        You can use values from earlier in a flow to set inputs for the message. If the action fields don’t contain valid inputs, the flow fails.
        
        ![Send Conversation Messages flow action](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/support_field_service/images/mfs_aa_send_conversation_messages.png)
    4. Click **Done**.
9. Save and activate the flow.

- To help troubleshoot flows, turn on flow debug logs.
- For an optimal customer experience, use complete addresses.
- The limit for active flows per flow type is 2,000.

## Step 6: Enable Complex Work for Existing Appointments

If you’re using Enhanced Scheduling and Optimization, you can let users reschedule appointments with scheduling dependencies with Appointment Assistant Self-Service Scheduling. Appointment Assistant Self-Service Scheduling supports complex work only if you’re using Enhanced Scheduling and Optimization.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_field_service-264-0-0-production-enus/3f7dceb9-dd70-454a-b49e-bbb4526a158d/images/icon_note.png)

Note When using complex work, it’s possible that the **Maximum days to get candidates or to book an appointment** option in Field Service Settings can minimize the number of days that the user gets slots for. See [Known Issue](https://issues.salesforce.com/issue/a028c00000zKoXSAA0/fsl-getabslots-api-retrieves-slots-while-ignoring-duedate).

Give guest users access to the required service appointments. To minimize what guest users can access, only share service appointments used for Appointment Assistant.

1. From Setup, in the Quick Find box, enter Security, and then select **Sharing Settings**.
2. For manage sharing settings, select **Service Appointments**.
3. Under Sharing Rules, click **New**.
4. For Rule Type, select **Guest user access, based on criteria**.
5. Enter the sharing criteria. For example, enter this criteria.
    1. For Field, select **Status**.
    2. For Operator, select **not equal to**.
    3. For Value, enter Completed.
6. Select to include records owned by high-volume users.
7. Share the rule with <Your Site Name> Site Guest User.
8. Save the rule.