---
schema_version: "1"
id: 36445de51994983e8e819a80a47d3dae8f6eeff6fa5a7b80b19bf600baaf4584
title: "Flow Action: Save Appointment"
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/ls_flowactions_save_appointment.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.ls_flowactions_save_appointment.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: d51741d138d7a6636692f37d4d59db235086fffef0fc4dd95cc092d994c2393f
description: Use the Save Appointment action to create and modify appointments.
products:
  - Scheduler
  - Salesforce Platform
release: "264"
---
# Flow Action: Save Appointment

Use the Save Appointment action to create and modify 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: Lightning Experience.</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Enterprise</strong> and <strong>Unlimited</strong> Editions</td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
      <colgroup>
        <col style="width:21.78649237472767%">
        <col style="width:53.59477124183007%">
        <col style="width:24.618736383442265%">
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d16842e66">Input Value</th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d16842e69">Description</th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d16842e72">Data Type</th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Lead</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">
            <p>The ID of the lead record created for an unauthenticated (guest) customer appointment.
            </p>
            <p style="margin-bottom:0;">Using this attribute for authenticated customers can result in unexpected
              behavior.</p>
          </td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">Lead</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Optional Service Resource Ids List</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">
            <p>Used if multiresource scheduling is disabled.</p>
            <p>A comma-separated list of IDs of optional service resources. Salesforce Scheduler
              considers optional service resources as available for other appointments.</p>
            <p style="margin-bottom:0;">Example: 0HnRM0000004RWy0AM,0HnRM0000004S6A0AU</p>
          </td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Selected Timezone</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">
            <p>The user-selected time zone. This value is stored in internal logs and is used to debug
              issues. For valid time zone formats, see <a href="https://help.salesforce.com/s/articleView?id=xcloud.admin_supported_timezone.htm&amp;type=5&amp;language=en_US" target="_blank">Supported Time Zones</a>.</p>
            <p style="margin-bottom:0;">Example: America/Los_Angeles</p>
          </td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Service Appointment Fields</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">
            <p>The values of the service appointment attributes.</p>
            <p>To generate a value to pass to Service Appointment Fields:</p>
            <ol>
              <li>Use the Review Service Appointment component to generate the Additional Field Values
                attribute.</li>

              <li>Pass the Additional Field Values attribute value to Service Appointment Fields.</li>

            </ol>
            <p>For information about JSON fields, see the Create a Custom Review Service Appointment
              Screen section in <a href="https://help.salesforce.com/s/articleView?id=platform.ls_considerations_for_creating_a_custom_review_service_appointment_screen.htm&amp;release=264.0.0&amp;type=5" title="If you want to customize the Review Service Appointment screen beyond the inbuilt customization options, create your own screen. For example, create a custom Review Service Appointment Screen if you want to prefill values on the Review Service Appointment screen for guest flows.">Considerations for Creating a Custom Review Service Appointment Screen</a>.</p>
            <div class="slds-box slds-box_x-small slds-theme_shade slds-m-top_medium slds-m-bottom_medium">
              <div class="slds-media slds-media_responsive">
                <div class="slds-media__figure"><span class="slds-icon_container slds-icon_container_circle slds-icon-note-note"><img style="margin-bottom:0;" src="https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png" alt="Note"></span></div>
                <div class="slds-media__body" style="padding-top:.5rem;padding-bottom:.5rem;"><span class="slds-text-title_caps">Note</span> Predefined flows use the ServiceAppointmentFields flow variable in:<ul>
                    <li>Additional Field Values in the Review Service Appointment component</li>
                    <li>Service Appointment Fields in the Save Appointment action</li>
                  </ul>
                </div>
              </div>
            </div>
          </td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Service Resources</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">
            <p>Used if multiresource scheduling is enabled.</p>
            <p>A string representation of a JSON object that contains information such as:</p>
            <ul>
              <li>URL of the service resource user profile image</li>

              <li>Service territory member ID</li>

              <li>Indication of whether a service resource is active</li>

              <li>Resource type</li>

              <li>Service resource user record ID</li>

              <li>Service resource ID</li>

              <li>Service resource name</li>

              <li>Attendance type</li>

            </ul>
            <p>In predefined flows, this value is automatically created by the Timeslot screen and sent
              as output. The value is then passed to the review screen as input.</p>
            <p>If you want to create a JSON object without using the timeslot screen, provide these
              details:</p>
            <ul>
              <li>AttendanceType </li>

              <li>Name</li>

              <li>Id (Service Resource ID)</li>

              <li>Resource type</li>

            </ul>
            <p>AttendanceType supports three values: Primary, Required, and Optional.</p>
            <p>If you want to use multiresource scheduling and make some of the resources optional, set
              the AttendanceType attribute.</p>
            <div class="slds-box slds-box_x-small slds-theme_shade slds-m-top_medium slds-m-bottom_medium">
              <div class="slds-media slds-media_responsive">
                <div class="slds-media__figure"><span class="slds-icon_container slds-icon_container_circle slds-icon-note-note"><img style="margin-bottom:0;" src="https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png" alt="Note"></span></div>
                <div class="slds-media__body" style="padding-top:.5rem;padding-bottom:.5rem;"><span class="slds-text-title_caps">Note</span> Salesforce Scheduler considers optional service resources as available for other
                  appointments.</div>
              </div>
            </div>
            <div>
              <p>Example:</p>
              <pre class="line-numbers slds-box slds-box_x-small slds-theme_shade slds-m-top_medium slds-m-bottom_medium slds-scrollable_x"><code>[{"UserPhoto":"https://mycumulusbank.file.force.com/profilephoto/005/F","ServiceTerritoryMemberId":"0Hu5i000000LE8WCAW","IsActive":true,"ResourceType":"T","RelatedRecordId":"0055i000002AhHvAAK","Id":"0Hn5i000000PPCYCA4","Name":"Ben Smith","sobjectType":"ServiceResource","AttendanceType":"Primary"},{"UserPhoto":"","ServiceTerritoryMemberId":"0Hu5i000000Li1vCAC","IsActive":true,"ResourceType":"S","Id":"0Hn5i000000PT1RCAW","RelatedRecordId":null,"Name":"(Room) Taj Mahal","sobjectType":"ServiceResource","AttendanceType":"Optional"}]</code></pre>
            </div>
          </td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Work Type</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">
            <p>Used only in modify appointment flows. </p>
            <p>The work type of the service appointment.</p>
            <p>To populate this field:</p>
            <ol>
              <li>Create a work type record with these values:<ul>
                  <li>Resource type: variable </li>
                  <li>Data type: record </li>
                  <li>Object: WorkType </li>
                </ul>
              </li>

              <li>Add a getRecord action, and then use the response to populate this value.</li>

            </ol>
          </td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">Work Type</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Inbound Appointment Flow</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">A Boolean value that indicates whether the calling flow is an inbound new appointment
            flow.</td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Outbound Community Flow</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">A Boolean value that indicates whether the calling flow is for Experience Cloud site
            visitors.</td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Modify Appointment URL</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">The URL to use to modify an appointment that an unauthenticated (guest) user
            creates.</td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Create Appointment URL</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">The URL to use to launch the flow to create an unauthenticated (guest)
            appointment.</td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Modify Appointment Email Template</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">The developer name of the template for the confirmation email to notify a customer that
            their appointment has been modified. If you don’t specify a template name, no email is sent
            when an appointment is modified.</td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Create Appointment Email Template</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">The developer name of the template for the confirmation email to notify a customer that
            their appointment has been created. If you don’t specify a template name, no email is sent
            when an appointment is created.</td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Service Appointment Token</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">An encrypted token to identify the associated service appointment.</td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Modify Appointment</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">A Boolean value that indicates whether the user wants to reschedule the service
            appointment. The default value is false, and indicates that the user wants to cancel the
            service appointment.</td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">Boolean</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 "> Email Template for Modified Authenticated Appointments</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">The developer name of the email template used to send authenticated users an
            email after a paid appointment has been modified. If you don’t specify a template
            name, no email is sent when an appointment is modified. </td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

        </tr>
        <tr class="">
          <td data-label="Input Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e66 ">Email Template for Modified Guest Appointments</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e69 ">The developer name of the email template used to send guest users an email after
            a paid appointment has been modified. If you don’t specify a template name, no email
            is sent when an appointment is modified. </td>

          <td data-label="Data Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d16842e72 ">String</td>

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

  
| Output Value | Description | Data Type |
| --- | --- | --- |
| Error Message | Any error message that’s generated when saving an appointment. | String |
| Service Appointment ID | The ID of the service appointment that’s created or modified. | String |
| Are Payments Applicable | Indicates whether Payments is enabled in Salesforce Scheduler and if any payments apply to the selected service territories and work types. This value is always false for group service appointments. | Boolean |