# admin Platform - Full Documentation # \- (Subtract) Calculates the difference of two values. ## Use `value1 - value2` and replace each value with merge fields, expressions, or other numeric values. ![Calculate Difference Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Calculate Difference Example This formula calculates the difference of the product Amount less the Discount Amount. Discount Amount is a custom currency field. `Amount - Discount_Amount__c` ![Report Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Report Example `AMOUNT:SUM - Product.Discount_Amount__c:SUM` calculates the difference of all Amount fields and all Discounted Amount custom fields on the products in your report. This formula is a currency data type that returns a currency sign and decimal places. # “View All” and “Modify All” Permissions Overview The “View All” and “Modify All” permissions ignore sharing rules and settings, allowing administrators to grant access to records associated with a given object across the organization. “View All Records” and “Modify All Records” can be better alternatives to the “View All Data” and “Modify All Data” permissions. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: All Editions
Be aware of the following distinctions between the permission types.
Permissions Used for Users who need them

View All Records

Modify All Records

Viewing or modifying all records for a specific object. Users who manage records for specific objects
View All Fields Viewing all fields and field data for a specific object. Users who require broad view access to fields for specific objects.

View All Data

Modify All Data

Managing all data in an organization; for example, data cleansing, deduplication, mass deletion, mass transferring, and managing record approvals.

Users with View All Data (or Modify All Data) permission can view (or modify) all apps and data, even if the apps and data aren’t shared with them but must still be assigned field permissions.

Administrators of an entire organization who require widespread access.

If a user requires access only to metadata for deployments, you can enable the Modify Metadata Through Metadata API Functions permission. This permission gives such users the access they need for deployments without providing access to org data. For details, see “Modify Metadata Through Metadata API Functions Permission” in Salesforce Help.

View All Fields (Global)

Viewing fields and field data for all objects. To see an object’s fields, the user must also have the required object permissions.

Available only for the Platform Integration User.
View All Users Viewing all users in the organization. Grants Read access to all users, so that you can see their user record details, see them in searches, list views, and so on. Users who need to see all users in the organization. Useful if the organization-wide default for the user object is Private. Administrators with the Manage Users permission are automatically granted the View All Users permission.
View All Lookup Record Names Viewing record names in all lookup and system fields. Administrators and users who need to see all information about a record, such as its related records and the Owner, Created By, and Last Modified By fields. This permission only applies to lookup record names in list views and record detail pages.
## Considerations - View All Data, Modify All Data, and View All Records or Modify All Records for a given object don’t override field-level security. Users must still have field permissions or the View All Fields object permission to access each field on an object. - In profiles or permission sets, if you enable the View All Data or Modify All Data user permissions, or View All Records, Modify All Records, or View All Fields for a given object, required permissions are enabled automatically. Required permissions for objects and fields created or made accessible later will also be enabled automatically without impacting the profile’s or permission set’s Last Modified Date. If you disable any of the required permissions, the "View All" or "Modify All" permission is also disabled, but all of the other automatically enabled permissions remain enabled. - If you have a large number of objects, enabling or disabling the View All Data or Modify All Data permissions in a profile or permission set can time out. To avoid performance issues, we recommend that you use the Metadata API instead of making these updates in Setup. - View All Records and Modify All Records aren’t available for ideas, price books, article types, and products. - View All Records and Modify All Records allow for delegation of object permissions only. To delegate user administration and custom object administration duties, define delegated administrators. - View All Records for a given object doesn't automatically give access to its standard detail objects and vice versa. Users must have Read access granted via sharing to see any associated standard child records to the parent record, or the parent record itself. However, View All Records for a given object does give access to its child custom object records without access being granted via sharing. - View All Users is available if your organization has User Sharing, which controls user visibility in the organization. - View All Data, Modify All Data, and View All Records, Modify All Records, or View All Fields for a given object can't be assigned to external users. - View All Records is required to enable the Query All Files permission, which grants users the access to content files and objects. See [Set Up Users to Query Salesforce Files](https://help.salesforce.com/s/articleView?id=experience.collab_files_query.htm&language=en_US) #### See Also - [Object Permissions](https://help.salesforce.com/s/articleView?id=platform.users_profiles_object_perms.htm&release=264.0.0&type=5 "Object permissions specify the base-level access users have to create, read, edit, and delete records for each object.") # () (Open Parenthesis and Close Parenthesis) Specifies that the expressions within the open parenthesis and close parenthesis are evaluated first. All other expressions are evaluated using standard operator precedence. ## Use (expression1) expression2... and replace each expression with merge fields, expressions, or other numeric values. ![Subtraction and Division Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Subtraction and Division Example `(Unit_Value__c - Old_Value__c) / New_Value__c` calculates the difference between the old value and new value divided by the new value. ![Report Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Report Example `(DURATIONHOURS:SUM * RowCount) / 24` calculates the duration of all event times the record count per 24 hours. This formula is a percent data type that returns a positive or negative integer or decimal, representing what percent of a day is spent on events. # (Optional) Define a Platform Event If you have a custom platform event defined in your Salesforce org that you want to use for the event relay, you can skip this step. You can also skip this step if you want to use the event relay with a change data capture event. Otherwise, follow the steps in this section to define an example platform event, `Carbon_Comparison__e`, which the event relay configuration steps use. ### Required Editions
User Permissions Needed
To define a platform event: Customize Application
1. From Setup, in the Quick Find box, enter Platform Events, and then select **Platform Events**. 2. Click **New Platform Event**. 3. Provide these values. - Label: Carbon Comparison - Plural Label: Carbon Comparisons 4. Save your changes. 5. Create these fields. In Custom Fields & Relationships, click **New** for each field, and follow the wizard. - Field type: Number, Field Label: Annual Mileage, Length: 6, Decimal Places: 0 - Field type: Text, Field Label: Current Vehicle, Length: 100 - Field type: Text, Field Label: Model Year, Length: 4 # (Optional) Install Salesforce CLI DevOps Center Plugin (Beta) Install the Salesforce CLI DevOps Center plugin to perform DevOps Center actions on the command line for developers who plan to work outside of DevOps Center or want to automate tasks. We plan to roll out new commands over time. The first set of commands support the ability to deploy changes to a pipeline environment and perform a validate-only deployment. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/images/icon_note.png) Note This feature is a Beta Service. Customer may opt to try such Beta Service in its sole discretion. Any use of the Beta Service is subject to the applicable Beta Services Terms provided at [Agreements and Terms](https://www.salesforce.com/company/legal/agreements/). The DevOps Center CLI plugin is compatible with DevOps Center package version 6.0 or later. Salesforce CLI releases on a weekly basis. See the [Salesforce CLI Release Notes](https://github.com/forcedotcom/cli/blob/main/releasenotes/README.md) for information on the timing for the official release of the DevOps Center plugin. To use the DevOps Center CLI commands, you must: - Be assigned the DevOps Center Release Manager permission set. This permission set enables you to perform promotions. See [Assign the DevOps Center Permission Sets](https://help.salesforce.com/s/articleView?id=platform.devops_center_assign_permsets.htm&release=264.0.0&type=5 "Assign permission sets to everyone working on your project in DevOps Center. Consider who must change project-level settings (such as adding another work environment) and who needs access to only work items.") for details. - Authorize the org in which DevOps Center is installed. The easiest way to authorize an org is with the `org login web` command. See [Authorization](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth.htm) in the Salesforce DX Developer Guide for details. To install and configure Salesforce CLI, see [Salesforce CLI Setup Guide](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_intro.htm). After you install Salesforce CLI, the DevOps Center plugin is installed the first time you run a DevOps Center CLI command. If you already have the CLI installed or want to proactively install the plugin, run this command: ``` sf plugins install @salesforce/plugin-devops-center ``` #### See Also - [_Salesforce CLI Command Reference_: sf project deploy pipeline](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_project_commands_unified.htm) - [_Salesforce Help_: Deploy Changes Using Salesforce CLI](https://help.salesforce.com/s/articleView?id=platform.devops_center_deploy_changes_cli.htm&type=5&language=en_US) # (Optional) Seed a Source Control Repository with Org Metadata If you’re currently using change sets to move changes to environments in your release pipeline, it’s likely that you don’t have a source control repository that contains your production org’s metadata. Although you can approach this task in any number of ways, this method uses the Salesforce (Developer Experience) DX tools that many of you’re already familiar with. However, those of you who don’t have any experience using DX developer tools can easily follow along. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/images/icon_note.png) Note If you already use source control and have your source control system repositories set up, you can skip this task. Before you begin, install DevOps Center and the required developer tools. These steps were developed and tested using a GitHub repo. - [Install DevOps Center](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_install.htm&type=5&language=en_US). - [Install Salesforce Extension for VS Code, Salesforce CLI, and Java Platform, Standard Edition Development Kit](https://developer.salesforce.com/tools/vscode/en/vscode-desktop/install). - [Install Git](https://git-scm.com/download). After you create the DevOps Center project repository, you'll retrieve your metadata from a source org and then add those files to the repository. From now on, the source control repository’s main branch now becomes your source of truth for all your metadata and changes. This method assumes: - You have limited experience with Salesforce DX developer tools. - You don’t currently use source control. - You want to retrieve all (or most) your metadata from a source org, such as your release environment, to seed the source control repo. - You haven’t customized the user interface or Git functionality in VS Code. After you complete the tasks to seed the repo, you have a source control repository with a main branch. Continue configuring DevOps Center, then add environments and build your release pipeline, which creates the associated pipeline stage branches. 1. **[Create a DevOps Center Project Repository](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_seed_repo_create_project.htm&release=264.0.0&type=5)** Create a project in DevOps Center, which creates a corresponding GitHub repository with the required Salesforce DX project structure. 2. **[Authorize the Source or Production Org](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_seed_repo_auth_source_org.htm&release=264.0.0&type=5)** In Salesforce Extensions for VS Code, connect the release (production) org or source org that contains the metadata that you want to add to the source control repository. 3. **[Generate a Manifest and Retrieve Metadata From the Org](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_seed_repo_generate_manifest.htm&release=264.0.0&type=5)** In Salesforce Extensions for VS Code, use Salesforce CLI to generate the manifest that contains the metadata types you want to retrieve from the production org. 4. **[Add the Local DX Project Files to the GitHub Repository](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_seed_repo_add_files_to_repo.htm&release=264.0.0&type=5)** In Salesforce Extensions for VS Code, add the files you retrieved from your org to the DevOps Center project’s GitHub repository. The GitHub repository has the same name as the DevOps Center project name. After you add the files to the source control repository, the process creates the main branch, which you’ll associate with your release environment. Other branches for pipeline stages are created when you build your pipeline in DevOps Center. # \* (Multiply) Multiplies its values. ## Use `value1 * value2` and replace each value with merge fields, expressions, or other numeric values. ![Consulting Days Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Consulting Days Example This formula calculates the number of consulting days times 1200 given that this formula field is a currency data type and consulting charges a rate of $1200 per day. Consulting Days is a custom field. `Consulting_Days__c * 1200` ![Report Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Report Example `RowCount * AGE:AVG` calculates the record count times the average age value of your report. This formula is a number data type that returns a positive or negative integer or decimal. # / (Divide) Divides its values. ### Required Editions
Available in:
## Use `value1 / value2` and replace each value with merge fields, expressions, or other numeric values. ![Revenue Amount](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Revenue Amount `AnnualRevenue/ NumberOfEmployees` This formula calculates the revenue amount per employee using a currency field. ``` IF(NumberOfOpportunities > 0, NumberOfWonOpportunities / NumberOfOpportunities, null) ``` ![% Won Opportunities Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) % Won Opportunities Example `WON:SUM / RowCount` calculates the percent of Won opportunities using a record count representing the number of all opportunities in your report. This formula is a number data type that returns a positive or negative integer. ![% Difference between Cost and Sales Price Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) % Difference between Cost and Sales Price Example `(TOTAL_PRICE:SUM - QUANTITY:SUM * Product2.Cost__c:SUM) / (QUANTITY:SUM * Product2.Cost__c:SUM)` calculates the average percent difference between what a product costs and its selling price on a product-by-product level. `Product2.Cost__c:SUM` is a custom currency field named Cost on products, which includes the cost of each product. This formula is a percent data type that returns a positive or negative integer. For best results, use this formula on a summary Opportunities with Products report that is summarized by Product Name and includes summary totals for Quantity, Total Price, and Cost. # & and + (Concatenate) Connects two or more strings. ## Use string1&string2 and replace each string with merge fields, expressions, or other values. ![Trip Expense Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Trip Expense Example `"Expense-" & Trip_Name__c & "-" & ExpenseNum__c` This formula displays the text Expense- followed by trip name and the expense number. This is a text formula field that uses an expense number custom field. # && (AND) Evaluates if two values or expressions are both true. Use this operator as an alternative to the logical function AND. ## Use `(logical1) && (logical2)` and replace logical1 and logical2 with the values or expressions that you want evaluated. ![Generic Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Generic Example `IF((Price<100 && Quantity<5),"Small", null)` This formula displays Small if the price is less than 100 and the quantity is less than five. Otherwise, this field is blank. # ^ (Exponentiation) Raises a number to a power of a specified number. ## Use number^integer and replace number with a merge field, expression, or another numeric value; replace integer with a merge field that contains an integer, expression, or any integer. ## Tips Avoid replacing integer with a negative number. ![Number of Employees Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Number of Employees Example `NumberOfEmployees^4` calculates the number of employees to the 4th power. ![Report Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Report Example `ACTIVE:SUM ^ 2` calculates the number of active Salesforce users to the 2nd power for administration. This formula is a number data type that returns a positive integer. # \+ (Add) Calculates the sum of two values. ## Use `value1 + value2` and replace each value with merge fields, expressions, or other numeric values. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If the values are text, the + concatenates. ![Formula Field Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Formula Field Example `Amount + Maint_Amount__c + Services_Amount__c` This formula calculates the sum of the product Amount, maintenance amount, and services fees. Maint amount and Service Fees are custom currency fields. ![Report Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Report Example `EMAIL_OPT_OUT:SUM + DO_NOT_CALL:SUM` calculates all Email Opt Out fields plus all Do Not Call fields on the leads in your report. This formula is a number data type that returns a positive integer. ![Validation Rule Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Validation Rule Example Let’s say you have a custom object that allows users to track the total number of hours worked in a week. Use the following example to ensure that users can’t save a time card record with more than 40 hours in a work week. ``` Monday_Hours__c + Tuesday_Hours__c + Wednesday_Hours__c + Thursday_Hours__c + Friday_Hours__c > 40 ``` Use a formula like this one in a validation rule to display the following error message when the total number of hours entered for each work day is greater than 40: “Your total hours can’t exceed 40.” This example requires five custom fields on your custom object, one for each day of work. # < (Less Than) Evaluates if a value is less than the value that follows this symbol. ## Use Evaluates if a value is less than the value that follows this symbol. ![Revenue Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Revenue Example `IF(AnnualRevenue < 1000000, 1, 2)` assigns the value 1 with revenues less than one million and the value 2 to revenues greater than one million. # <= (Less Than or Equal) Evaluates if a value is less than or equal to the value that follows this symbol. ## Use value1 <= value2 and replace each `value` with merge fields, expressions, or other numeric values. ![Revenue Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Revenue Example `IF(AnnualRevenue <= 1000000, 1, 2)` assigns the value 1 with revenues less than or equal to one million and the value 2 with revenues greater than one million. # <> and != (Not Equal) Evaluates if two values aren’t equivalent.
Description: Evaluates if two values aren’t equivalent.
Use: expression1 <> expression2 or expression1 != expression2, and replace each expression with merge fields, expressions, or other numeric values.
Example:
IF(Maint_Amount__c + Services_Amount__c<> Amount, 
 "DISCOUNTED", "FULL PRICE")

This formula displays DISCOUNTED on a product if its maintenance amount and services amount don’t equal the product amount. Otherwise, displays FULL PRICE. Note that this example uses two custom currency fields for Maint Amount and Services Amount.

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important Don’t use this function for a null comparison, such as `MyDateTime__c != null`. Use [ISBLANK](https://help.salesforce.com/s/articleView?id=platform.customize_functions_isblank.htm&release=264.0.0&type=5 "Determines if an expression has a value and returns TRUE if it does not. If it contains a value, this function returns FALSE.") instead. ## Use expression1 <> expression2 or expression1 != expression2, and replace each `expression` with merge fields, expressions, or other numeric values. ![Discount Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Discount Example ``` IF(Maint_Amount__c + Services_Amount__c<> Amount, "DISCOUNTED", "FULL PRICE") ``` This formula displays DISCOUNTED on a product if its maintenance amount and services amount don’t equal the product amount. Otherwise, displays FULL PRICE. Note that this example uses two custom currency fields for Maint Amount and Services Amount. # \= and == (Equal) Evaluates if two values are equivalent. The = and == operators are interchangeable. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important Don’t use this function for a null comparison, such as `MyDateTime__c == null`. Use [ISBLANK](https://help.salesforce.com/s/articleView?id=platform.customize_functions_isblank.htm&release=264.0.0&type=5 "Determines if an expression has a value and returns TRUE if it does not. If it contains a value, this function returns FALSE.") instead. ## Use expression1=expression2 or expression1 == expression2, and replace each expression with merge fields, expressions, or other numeric values. ![Due Date Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Due Date Example `Due Date = CreatedDate + 5` returns true if the due date is equal to five days following a record’s created date. ![Commission Amount Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Commission Amount Example ``` IF(Probability =1, ROUND(Amount*0.02, 2), 0) ``` This formula calculates the 2% commission amount of an opportunity that has a probability of 100%. All other opportunities have a commission value of 0. Possible results: - An opportunity with a Probability of 90% has a commission of 0. - An opportunity with a Probability of 100% and an Amount of $100,000 has a commission of $2,000. # \> (Greater Than) Evaluates if a value is greater than the value that follows this symbol. ## Use value1 > value2 and replace each value with merge fields, expressions, or other numeric values. ![Net Worth Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Net Worth Example `IF(commission__c > 1000000, "High Net Worth", "General")` assigns the High Net Worth value to a commission greater than one million. Note, this is a text formula field that uses a commission custom field. # \>= (Greater Than or Equal) Evaluates if a value is greater than or equal to the value that follows this symbol. ## Use value1 >= value2 and replace each `value` with merge fields, expressions, or other numeric values. ![Commission Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Commission Example `IF(Commission__c >= 1000000, "YES", "NO")` assigns the YES value with a commission greater than or equal to one million. Note, this is a text formula field that uses a custom currency field called Commission. # || (OR) Evaluates if at least one of multiple values or expressions is true. Use this operator as an alternative to the logical function OR. ## Use `(logical1) || (logical2)` and replace any number of logical references with the values or expressions you want evaluated. ![Case Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Case Example `IF((ISPICKVAL(Priority, "High")) || (ISPICKVAL(Status , "New")), ROUND(NOW()-CreatedDate, 0), null)` This formula returns the number of days a case has been open if the Status is new or the Priority is high. If the case was opened today, this field displays a zero. ![Validation Rule Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Validation Rule Example ``` (Discount_Rate__c < 0) || (Discount_Rate__c > 0.40) ``` This validation rule formula displays this error message when the Discount Rate custom field value isn’t between 0% and 40%: "Discount Rate cannot exceed 40%." # `$Flow` Global Variables Flow Approval Processes Resource Some `$Flow` global variables provide information about the orchestration run associated with a parent approval submission. Some variables contain system-provided values. You can update the other variables throughout the flow approval process by storing output values in the variables. Because flow approval processes don't support Assignment elements, flow approval processes don't support any global variables that are assigned values with the Assignment element. ### Required Editions
View supported editions for Flow Approval Processes.
| Global Variable | Label | Description | | --- | --- | --- | | `$Flow.CurrentDate` | Running Flow Interview > CurrentDate | Date when the flow interview executes the element that references the global variable. | | `$Flow.CurrentDateTime` | Running Flow Interview > CurrentDateTime | Date and time when the flow interview executes the element that references the global variable. | | `$Flow.CurrentRecord` | Running Flow Interview > CurrentRecord | Not supported for Flow Approval Processes. | | `$Flow.CurrentStage` | Running Flow Interview > CurrentStage | Not supported for Flow Approval Processes. | | `$Flow.FaultMessage` | Running Flow Interview > FaultMessage | System fault message that can help flow administrators troubleshoot run-time issues. | | `$Flow.InterviewGuid` | Running Flow Interview > InterviewGuid | Unique identifier for the interview. | | `$Flow.InterviewStartTime` | Running Flow Interview > InterviewStartTime | Date and time when the flow interview started. For a flow launched by a Subflow element, `$Flow.InterviewStartTime` indicates when the initial parent flow started. | # `$Flow` Global Variables Flow Orchestration Resource A `$Flow` global variable provides information about the running orchestration. Some variables contain system-provided values. You can update the other variables throughout the orchestration by storing output values in the variables. ### Required Editions
View supported editions for Flow Orchestration.
Global Variable Label Description
$Flow.CurrentDate Running Flow Interview > CurrentDate Date when the flow interview executes the element that references the global variable.
$Flow.CurrentDateTime Running Flow Interview > CurrentDateTime Date and time when the flow interview executes the element that references the global variable.
$Flow.CurrentRecord Running Flow Interview > CurrentRecord ID of a related record. The value must be a single ID for a valid object. All custom objects and most standard objects are valid.
$Flow.CurrentStage Running Flow Interview > CurrentStage

The currently selected stage.

Not supported for Flow Orchestration.

$Flow.FaultMessage Running Flow Interview > FaultMessage System fault message that can help flow administrators troubleshoot runtime issues.
$Flow.InterviewGuid Running Flow Interview > InterviewGuid Unique identifier for the interview.
$Flow.InterviewStartTime Running Flow Interview > InterviewStartTime Date and time when the flow interview started.
# `$Flow` Global Variables Resource In a flow, a `$Flow` global variable provides information about the running flow interview. Some variables contain system-provided values. You can update the other variables throughout the flow by using Assignments or by storing output values in the variables. ### Required Editions
View supported editions.
This video explains what variables are and how flows use them to hold data. View this [video](https://play.vidyard.com/MppqcKZd36p1YYX8iUruXi.html) in a separate tab. This video explains variable types including common types, Boolean, Apex-defined, and collection variables. View this [video](https://play.vidyard.com/Arao1M9qodyVTgW8myyU2J?) in a separate tab.
Global Variable Supported Resource Types Description Value Set By
$Flow.ActiveStages Stage

A collection of stage resources that are relevant to the current path of the flow.

The stages that appear in the standard progress indicator at run time.

Stage resources set to Active by Default are in the $Flow.ActiveStages global variable when the flow interview starts.

System and Assignment
$Flow.CurrentDate Text, Date, and Date/Time Date when the flow interview runs the element that references the global variable. System
$Flow.CurrentRecord Text

ID of a related record. The value must be a single ID for a valid object. All custom objects and most standard objects are valid.

When a user pauses the flow interview or the interview runs a Wait element, the interview is associated with this record by creating a FlowRecordRelation record. If the ID isn’t valid, the interview fails to pause.

Assignment
$Flow.CurrentStage Stage

The stage the screen flow running user is in.

In the standard progress indicator, the stage associated with the current screen element at run time.

The stage that's highlighted in the standard progress indicator.

System and Assignment
$Flow.CurrentDateTime Text, Date, and Date/Time Date and time when the flow interview runs the element that references the global variable. System
$Flow.FaultMessage Text System fault message that can help flow administrators troubleshoot runtime issues. System
$Flow.InterviewGuid Text Unique identifier for the interview. System
$Flow.InterviewStartTime Text, Date, and Date/Time Date and time when the flow interview started. For a flow launched by a Subflow element, $Flow.InterviewStartTime indicates when the initial master flow started. System
![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example A flow is used internally by call center personnel. For each flow element that interacts with the Salesforce database, a fault connector leads to a screen. A Display Text screen component displays the system fault message and instructs the flow user to provide that message to the IT department. ``` Sorry, but you can't read or update records at this time. Please open a case with IT, and include the following error message: {!$Flow.FaultMessage} ``` ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example If a customer asks to be forgotten, make sure to delete all references to information that could personally identify the customer, including data in paused flow interviews. When an interview runs a Wait element or is paused by a user, all the interview data is serialized and saved to the database as a Paused Flow Interview record. When the interview is resumed, the Paused Flow Interview record is deleted. To identify which paused interviews include personal data for a contact, lead, or user, build a custom object to track the interview’s GUID and the affected contact, lead, or user. When an interview references personal data, such as a lead’s email or credit card number, create a record of the custom object using the lead’s ID and `{!$Flow.InterviewGuid}`. Before the final screen, delete all records of the custom object referencing the interview’s GUID. That way, the custom object tracks only interviews that are saved to the database. When a customer asks to be forgotten, create a report that lists all the custom object records where LeadId matches the customer’s record. Then for each custom object record, delete the flow interview that corresponds to the provided GUID. #### See Also - [Customize What Happens When a Flow Fails](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault.htm&release=264.0.0&type=5 "Learn how fault paths customize what happens when a flow fails. Choose how to notify admins, guide users, and take a follow-up action.") - [Flow Resources](https://help.salesforce.com/s/articleView?id=platform.flow_ref_resources.htm&release=264.0.0&type=5 "Each resource represents a value that you can reference throughout the flow.") # 15Five Connector Connect to an external 15Five account. Perform tasks like creating high fives, editing users, and retrieving check-ins. Use 15Five as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Bearer authentication. Bearer authentication sends a header named Authorization with a value of Bearer and a token with every request. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Token

Enter the bearer token to use to authenticate the requests. For information about how to create the bearer token, refer to the external system's documentation.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These 15Five actions are available in Flow Builder. - Create HighFive - Edit User - Get CheckIn - Get User Details - List Check Ins - List Groups - List High Fives - List Objectives - List One On Ones - List Review Cycles - List Users ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Abandoned B2C Cart Automation Event Run the automation event-triggered flow when an abandoned B2C cart event is received. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise and Unlimited Editions with Marketing Cloud Advanced Edition
Available in: All Editions supported by Data 360. See Data 360 edition availability.
## Specify Input Values | Field | Description | | --- | --- | | **Organization ID** | The ID of the B2C Commerce instance associated with the abandoned cart. | | **Site ID** | The name of the B2C Commerce site associated with the abandoned cart. | ## Store Output Values | Field | Description | | --- | --- | | **Organization ID** | The ID of the B2C Commerce instance associated with the abandoned cart. | | **Site ID** | The name of the B2C Commerce site associated with the abandoned cart. | | **Recipient Email** | The email address of the shopper associated with the abandoned cart. | | **Cart ID** | The ID of the abandoned cart. | #### See Also - [Build Automation Event-Triggered Flows](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_create_automation_event_triggered_flow.htm&release=264.0.0&type=5 "Configure triggers to process records when events occur in integrated applications.") # Abandoned Cart Automation Event Run the automation event-triggered flow when an abandoned cart event is received. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise and Unlimited Editions with Marketing Cloud Advanced Edition
Available in: All Editions supported by Data 360. See Data 360 edition availability.
## Specify Input Values | Field | Description | | --- | --- | | **Web Store ID** | The ID of the web store associated with the abandoned cart. | ## Store Output Values | Field | Description | | --- | --- | | **Recipient Email** | The email address of the shopper associated with the abandoned cart. | | **Cart URL** | The URL of the abandoned cart. | | **Web Store URL** | ​​The URL of the web store. | | **Web Store Name** | ​​The name of the web store. | #### See Also - [Build Automation Event-Triggered Flows](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_create_automation_event_triggered_flow.htm&release=264.0.0&type=5 "Configure triggers to process records when events occur in integrated applications.") # Ably Control API Connector (Beta) Connect to an external Ably Control API account. Perform tasks like managing apps or configuring queues. Use Ably Control API as a data target (action). ### Required Editions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This connector is a beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this beta service is at the Customer's sole discretion.
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Bearer authentication. Bearer authentication sends a header named Authorization with a value of Bearer and a token with every request. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Token

Enter the bearer token to use to authenticate the requests. For information about how to create the bearer token, refer to the external system's documentation.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Ably Control API actions are available in Flow Builder. - DELETE /apps/{app\_id}/namespaces/{namespace\_id} - DELETE /apps/{app\_id}/queues/{queue\_id} - DELETE /apps/{app\_id}/rules/{rule\_id} - DELETE /apps/{id} - GET /accounts/{account\_id}/apps - GET /accounts/{id}/stats - GET /apps/{app\_id}/keys - GET /apps/{app\_id}/namespaces - GET /apps/{app\_id}/queues - GET /apps/{id}/stats - GET /me - PATCH /apps/{app\_id}/keys/{key\_id} - PATCH /apps/{app\_id}/namespaces/{namespace\_id} - PATCH /apps/{id} - POST /accounts/{account\_id}/apps - POST /apps/{app\_id}/namespaces - POST /apps/{app\_id}/queues ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Ably Platform Connector (Beta) Connect to an external Ably Platform account. Perform tasks like publishing messages or managing push devices. Use Ably Platform as a data target (action). ### Required Editions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This connector is a beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this beta service is at the Customer's sole discretion.
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Basic authentication. Basic authentication enables the user to provide a username and password when logging in to an external system. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Username

Enter the username to use to authenticate the requests.

Password

Enter the password to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Ably Platform actions are available in Flow Builder. - Get Channels With Push Subscribers - Get Metadata Of Channel - Get Push Device Details - Get Push Subscriptions On Channels - Get Registered Push Devices - Get Stats - Get Time - Patch Push Device Details - Publish Messages To Channel - Put Push Device Details - Register Push Device - Update Push Device Details ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Abort a Running Backup in Backup & Recover for Salesforce Stop a running Salesforce backup to fix an error in production data, to modify default backup options, or if the backup process slows down other critical jobs. 1. When a backup (scheduled or on demand) is running on a service, the Abort Backup button appears. Click **Abort Backup**. A confirmation dialog box appears, prompting confirmation. 2. Select a reason to abort the backup: - Planned production changes - Configuration changes to backup options - Prioritization of other activities - Other If you choose Other, add a comment. The reason and comment appear in the Auditing log. To view the Auditing log, go to **Account Settings**, then **Auditing**. 3. Click **Abort**. - A confirmation window appears. All the menu tabs for this service show that the backup has been aborted. - The Dashboard tab shows an empty circle icon, indicating that the backup has been aborted and isn’t available. The service status shows a Warning. - In the Backup History tab, you can view a list of the backups performed recently. The aborted backup has a red label (“Aborted”). - Users of this account receive an email informing them that a backup has been manually aborted. If you aborted a backup, then later on that day you'll need to perform an on-demand backup. This is required in order to capture any changes made that might have been missed due to the aborted backup. # Abort a Running Dynamics Backup Stop a running backup in Dynamics to fix an error in production data, modify default backup options, or if the backup process slows down other critical jobs. 1. When a backup is running on a service (scheduled backup or on demand backup), the Abort Backup button appears top left in all menu tabs. Click the Abort Backup button. A confirmation dialog box will appear, prompting confirmation. 2. In the Reason drop down list, select a reason to abort the backup. Choosing a reason is mandatory. There are three common options in the Reason drop down list: - Planned production changes - Configuration changes to backup options - Prioritization of other activities - Other If you choose Other, you must add a comment in the Comment text box. This comment will appear in the Auditing log (any reason selected from the list will appear in the Auditing log). To view the Auditing log, navigate to Account Settings | Auditing tab. 3. Click Abort. - A confirmation dialogue appears at the bottom of the screen. All the menu tabs for this service show the backup has been aborted. - The Dashboard tab shows the backup has been aborted and isn’t available (empty circle icon), while the status of the service is Warning. - In the Backup History tab, you can view a list of the backups performed recently. The aborted backup will have a red label (“Aborted”). - An email will be sent to all the users of this account, informing them that a backup has been manually aborted. If you aborted a backup, then later on that day you will need to perform an on demand backup. This is required in order to capture any changes made that may have been missed due to the aborted backup. # Abort a Running ServiceNow Backup Stop a running backup in ServiceNow to fix an error in production data, modify default backup options, or if the backup process slows down other critical jobs. 1. When a backup is running on a service (scheduled backup or on demand backup), the Abort Backup button appears top left in all menu tabs. Click the Abort Backup button. A confirmation dialog box will appear, prompting confirmation. 2. In the Reason drop down list, select a reason to abort the backup. Choosing a reason is mandatory. There are three common options in the Reason drop down list: - Planned production changes - Configuration changes to backup options - Prioritization of other activities - Other If you choose Other, you must add a comment in the Comment text box. This comment will appear in the Auditing log (any reason selected from the list will appear in the Auditing log). To view the Auditing log, navigate to Account Settings | Auditing tab. 3. Click Abort. - A confirmation dialogue appears at the bottom of the screen. All the menu tabs for this service show the backup has been aborted. - The Dashboard tab shows the backup has been aborted and isn’t available (empty circle icon), while the status of the service is Warning. - In the Backup History tab, you can view a list of the backups performed recently. The aborted backup will have a red label (“Aborted”). - An email will be sent to all the users of this account, informing them that a backup has been manually aborted. If you aborted a backup, then later on that day you will need to perform an on demand backup. This is required in order to capture any changes made that may have been missed due to the aborted backup. # Aborting a Running Backup in Backup & Recover for Salesforce If you discover errors during a Salesforce backup or want to modify the default options before the first backup is completed, you can stop a running backup. The common use cases for aborting a running backup include the following: - An error in production data was discovered, and you don't want backup to proceed before this data error is fixed. - The running backup slows down the execution of other jobs running concurrently, such as seeding and anonymization jobs, whose execution is more critical. - When you create a new service, a backup automatically runs. In some cases, you want to modify the default backup options by optimizing the backup or adding exclusions before executing the first backup. Note that backing up files and attachments in the first backup takes longer than on subsequent backups. - You performed critical changes on your instance after the backup started to run, and you want to run a more updated backup without having to wait for the current backup to complete. An aborted backup changes the service status from Success (Green) to Warning (Yellow). After another backup completes, the status changes to Success (Green). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Only a Master Admin or a Business Unit Admin can abort backups. During the last stages of the backup, it cannot be aborted. - **[Abort a Running Backup in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_abort_backup.htm&release=264.0.0&type=5)** Stop a running Salesforce backup to fix an error in production data, to modify default backup options, or if the backup process slows down other critical jobs. # Aborting a Running Backup in Dynamics Overview Use the Abort Backup feature when you want to stop a running Dynamics backup. If you discover errors during a backup or want to modify default options before the first backup is completed, you can stop a running backup. The common use cases for aborting a running backup include the following: - An error in production data was discovered, and the user does not want backup to proceed before this data error is fixed. - The running backup may slow down the execution of other jobs running concurrently, such as seeding and anonymization jobs, whose execution is currently more critical to the user. - When creating a new service, a backup will automatically run. In some cases, users would like to modify the default backup options by adding optimization and/or exclusions before executing the first backup. Backing up files and attachments in the first backup takes longer than on subsequent backups. - The user performed critical changes on their instance after the backup has already started to run and wants to run a more updated backup without having to wait for the current backup to complete. - An aborted backup will change the service status from Success (Green) to Warning (Yellow) status. Once another backup completes, the status will change to Success (Green). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Only a Master Admin or a Business Unit Admin can abort backups. During the last stages of the backup, it cannot be aborted. # Aborting a Running Backup in ServiceNow Overview Use the Abort Backup feature when you want to stop a running ServiceNow backup. If you discover errors during a backup or want to modify default options before the first backup is completed, you can stop a running backup. The common use cases for aborting a running backup include the following: - An error in production data was discovered, and the user does not want backup to proceed before this data error is fixed. - The running backup may slow down the execution of other jobs running concurrently, such as seeding and anonymization jobs, whose execution is currently more critical to the user. - When creating a new service, a backup will automatically run. In some cases, users would like to modify the default backup options by adding optimization and/or exclusions before executing the first backup. Backing up files and attachments in the first backup takes longer than on subsequent backups. - The user performed critical changes on their instance after the backup has already started to run and wants to run a more updated backup without having to wait for the current backup to complete. - An aborted backup will change the service status from Success (Green) to Warning (Yellow) status. Once another backup completes, the status will change to Success (Green). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Only a Master Admin or a Business Unit Admin can abort backups. During the last stages of the backup, it cannot be aborted. # About Agentforce Operations Agentforce Operations is a workflow automation platform where you design, run, and track structured business processes. Teams complete tasks by using email, a web form, or the workspace. AI agents can handle specialized tasks automatically. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-agentforce_operations-264-0-0-production-enus/dce314e6-0a31-4a8b-98f7-3d2a3fd02ee2/images/icon_note.png) Note Agentforce Operations is the new name for the product previously known as Agentforce Supply Chain. As we work on updates, you can possibly see references to both Agentforce Operations and Agentforce Supply Chain. ## What Agentforce Operations Does With Agentforce Operations, you can model a business process as a blueprint, a reusable template made up of stages, tasks, and fields. When you run a blueprint, it creates a workflow: a live, tracked instance of that process with its own data, assignees, and timeline. You assign each task in a workflow to a person, a team, a role, or an AI agent. Assignees receive notifications when their task becomes active and can complete it directly from the notification email, a web form, or the workspace. Fields collect information from assignees and pass it forward to subsequent tasks automatically. Because Agentforce Operations is an external workspace separate from your Salesforce org, access to it is invite-only. Only users with a role that includes workspace invite access can add new users. For example, you can use Agentforce Operations to standardize employee onboarding. The blueprint defines the stages, such as offer, provisioning, and first-day setup, and the tasks within each stage, such as collecting signed documents or assigning equipment. Each new hire starts a separate workflow from that same blueprint, so every onboarding follows the same steps while tracking its own people, dates, and documents. ## Who Uses Agentforce Operations Workspace admins Configure the workspace, manage users and roles, connect data sources and integrations, and control access to blueprints and workflows. Blueprint builders Design and publish blueprints that define the process structure: stages, tasks, fields, assignees, start conditions, and AI agent configuration. Workflow runners Start workflows from published blueprints, monitor progress, and manage running workflows by reassigning tasks, tracking status, and resolving problems. Task assignees Complete assigned tasks by filling in fields, uploading documents, approving or rejecting work, and passing results to the next step. Assignees can complete tasks by email or web form without logging in to the workspace. ## Key Capabilities - Blueprints and workflows: Design a process one time as a blueprint, then run it as many times as needed. Each run is an independent workflow with its own data and timeline. - Stages and tasks: Structure work into phases with stages. Tasks within each stage activate based on configurable start conditions. - Fields and forms: Collect structured data from assignees by using fields. Field types include: text, number, date, document, signature, and others. Field values flow forward to subsequent tasks automatically. - AI agents: Assign tasks to AI agents for repeatable, rules-driven work such as document review, data lookup, calculations, and compliance checks. AI agents create and follow a plan with each workflow run, and return consistent outputs. - Email and web form completion: Users can complete tasks without logging in, reducing the number of external collaborators to onboard, such as vendors or partners. - Variants and linked workflows: Create blueprint variants to handle different scenarios, or link blueprints together to chain processes across teams. - Tracking and visibility: Monitor all running workflows from the Home page. Filter by status, assignee, due date, tags, and other fields. ## Learn More New to Agentforce Operations? For a guided walkthrough of the key concepts and how to set up your workspace for the first time, see [Get Started with Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_get_started.htm&release=264.0.0&type=5 "Agentforce Operations automates structured business processes by using blueprints, workflows, and AI agents. Learn the concepts and set up your workspace for the first time."). For an overview of how blueprints, workflows, stages, tasks, and fields relate to each other, see [How Blueprints, Workflows, and Tasks Connect in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_workflows_tasks.htm&release=264.0.0&type=5 "In Agentforce Operations, blueprints, workflows, stages, tasks, and fields each play a specific role and work together in a clear hierarchy to automate business processes. Understanding how they connect helps you plan your processes before you start building blueprints and running workflows."). To set up your workspace for the first time, see [Set Up Your Workspace in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_set_up_workspace.htm&release=264.0.0&type=5 "After you get access to your workspace, complete these setup steps to prepare Agentforce Operations for your team. Configure settings, add users, build a blueprint, and start your first workflow."). #### See Also - [Get Started with Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_get_started.htm&release=264.0.0&type=5 "Agentforce Operations automates structured business processes by using blueprints, workflows, and AI agents. Learn the concepts and set up your workspace for the first time.") # About Automation with Salesforce Flow Salesforce Flow tools like Flow Builder, Flow Orchestration, and MuleSoft for Flow help you quickly set up and change automation solutions to meet your business needs. These tools combine task and process automation with easy integration solutions, helping you bring together and action on data changes in any system all without writing code. ### Required Editions
View supported editions.
- **[Browser Requirements](https://help.salesforce.com/s/articleView?id=platform.automate_browsers.htm&release=264.0.0&type=5)** Our automation tools support these web browsers. - **[Process Automation Settings](https://help.salesforce.com/s/articleView?id=platform.automation_about_settings.htm&release=264.0.0&type=5)** Salesforce provides various settings for platform automation to help customize and streamline business processes. - **[Run-Time Changes by Release and API Version](https://help.salesforce.com/s/articleView?id=platform.automate_flow_versioned_updates.htm&release=264.0.0&type=5)** These versioned updates affect only flows that are configured to run on specific API versions. With versioned updates you can test and adopt run-time behavior changes for individual flows at your convenience. # About Claudeforce Claudeforce is the Salesforce and Anthropic strategic partnership and collaboration between the two companies. Salesforce in Claude (Beta) is a packaged plugin for Claude customers. Use it to connect to your org through a secure Salesforce MCP (Model Context Protocol) connection. See Salesforce in Claude in action: [Watch a demo](https://www.youtube.com/watch?v=Ym0RBY7F1Pk). ## Available Features - **Sales Cloud in Claude (Beta)**: The packaged plugin for sellers and revenue teams. It's available in Enterprise, Performance, Unlimited, and Developer Editions, and requires Claude Enterprise. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-headless-264-0-0-production-enus/c01c03d6-0482-441a-a0e0-bb779051aa27/images/icon_important.png) Important Companies that access Claude only through a third-party cloud provider, such as AWS Bedrock or Google Cloud Vertex AI, can't currently use Claudeforce. To access Claudeforce, companies need a direct Anthropic subscription: Claude Enterprise, Claude Team, or Claude Console. This restriction doesn't affect companies with existing third-party access. - Review documentation: [What Is Salesforce in Claude](https://help.salesforce.com/s/articleView?id=sales.what_is_salesforce_in_claude.htm&type=5&language=en_US) - Learn in Trailhead: [Sales Cloud in Claude: Quick Look](https://trailhead.salesforce.com/content/learn/modules/salesforce-in-claude-quick-look?trail_id=get-started-with-aiforce) - Request access: [Sales Cloud in Claude (Beta) in AgentExchange](https://appexchange.salesforce.com/appxListingDetail?listingId=plugin-sales-cloud-in-claude&tab=u) # About Displaying Dynamic Data Using Expressions Site.com uses expression language to display data dynamically. Expressions serve as placeholders for data that is replaced with information when the page loads. When working with data-bound page elements or custom widget properties, you can use expressions to customize how data is displayed on the page. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

In Site.com, expression syntax consists of an open curly brace and exclamation point, the field, custom property name, or namespace name, and a closing curly brace. For example, if you added a custom property called URL to a widget, you can use the syntax {!URL} to add the expression to custom code or content blocks. Similarly, to add an expression for the Billing City field, you can use the syntax {!BillingCity}. For related objects, the field name is prefixed by the name of the master object: {!Account.BillingCity}. If you're editing a [data element](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_element.htm&release=264.0.0&type=5 "You can use a data element to display the data retrieved by a page data connection or a data repeater. The data element binds to a field in the object and acts as a placeholder that's replaced with the field's data when the page loads.") in a data repeater or a [data table column](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table_column.htm&release=264.0.0&type=5 "A data table's columns bind to the fields of the object it's connected to. Each column cell acts as a placeholder that is replaced with the field's data when the page loads."), you can access the object's fields by name in a dropdown list without using expressions. However, if you want to customize how the field is displayed on the page, you can see and edit the expression when you click **Customize** in the dialog box. If you're working with [custom code](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_code.htm&release=264.0.0&type=5 "In addition to data elements and content blocks, you can also use custom code as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text.") or [content blocks](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_content_block.htm&release=264.0.0&type=5 "In addition to data elements and custom code, you can also use content blocks as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text.") in a data repeater, you can only access the object's fields using expressions. Expressions let you customize the output by: - Adding text around the expression. For example, lets say you're displaying the phone number of each of your business locations. You could enter the text Contact us at before the {!Phone} expression. When the data is displayed on the page, {!Phone} is replaced with the field's value for each record: Contact us at 100–200–3000. - Formatting the output using HTML tags. For example, you could wrap `H1` tags around the expression to alter how the output is displayed on the page: `

{!Phone}

`. - Creating a URL query string to pass variable information to a data repeater or data table on another page. The second page, in turn, uses the received variable to retrieve and display the relevant records. For example, you could create a hyperlink, such as `/product_details?productID={!id}`, where {!id} is replaced with the product ID for each record. When a particular product link is clicked, the product ID is passed to the Product Details page, which uses the ID to retrieve the record's information and display it on the page. #### See Also - [Dynamically Retrieve Data with Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") - [Dynamically Retrieve Data with Data Tables](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5 "Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table.") - [Using Data Functions](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_function.htm&release=264.0.0&type=5 "A data function lets you connect to a standard or custom Salesforce object, perform calculations on the returned results, and display the calculation on the page. For example, for a particular field in an object, you can use a data function to calculate the total value or the average amount of all returned records.") # About Editable Page Elements When you mark a page element as Editable on a page template, that page element becomes editable in any child pages or templates derived from the parent template. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

Consider these tips when creating editable page elements. - Editable page elements are highlighted with a blue border in child pages and templates. - If you make a page element within a panel editable, you can't also make the container panel editable. - Users can't alter the events, style, or properties of an editable page element in pages based on the template. - Users can't resize, reposition, or delete editable page elements in pages based on the template. However, if the element's [Auto Height property](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects_working_with.htm&release=264.0.0&type=5 "The Page Structure pane displays the hierarchy of all elements on the page and is a very useful way of selecting, moving, and reordering elements, particularly for more complicated page designs.") is enabled in the template, its height will adjust to fit the content of the template-based page. - Deleting an editable element from a page template removes it from all child pages and templates. - When you enable the Editable property of a page element, any pages or child templates based on the template also inherit the enabled status. In turn, the enabled status in the child template cascades to any of _its_ children, and so on. If you don't want its editability to cascade to any lower levels, disable the Editable property of a page element in a child template. ## Editable Page Elements for Contributors - Contributors can modify editable content blocks in site pages based on the template. They can also edit content blocks that you place in an editable panel in template-based site pages. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip To add a content block that only other site administrators or designers can edit, use [custom code](https://help.salesforce.com/s/articleView?id=platform.siteforce_code_custom.htm&release=264.0.0&type=5 "Custom code lets you customize your site using markup, such as HTML and JavaScript.") instead. - Contributors can add content blocks to editable panels in site pages based on the template. If you make widgets available to contributors, they can also add them to editable panels. - Site administrators and designers can edit any page element you make editable. ## Default Content in Editable Page Elements The content of all editable page elements on a child page or template is linked to the content of the editable elements on its parent page template. When you update the content of an editable page element on the parent template, the changes are pushed down to any child pages or page templates. However, if you modify the content of an editable page element at the child page or template level, you break the link between the elements, and any subsequent changes made to the page element on the parent template won't trickle down to its children. (To return control of the content to the parent template, select the editable page element on the page or in the Page Structure pane and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Revert to Parent Content**. When you do this, any custom content in the editable page element is lost.) Disabling the Editable property of a panel in a parent template overrides any changes made to that panel in child pages or templates. Changes to the panel at the child level disappear, and the panel reflects only the content from the parent template. However, the changes at the child level aren't lost. Re-enabling the Editable property of the panel in the parent template restores the custom content previously added to its children. Any changes made to the element at the parent level will no longer show up. #### See Also - [Create Editable Template Areas](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_master_editable.htm&release=264.0.0&type=5 "As the template creator, you specify which elements users can edit in pages based on the template.") - [Set Up the Contributor’s Studio View](https://help.salesforce.com/s/articleView?id=platform.siteforce_contrib_view.htm&release=264.0.0&type=5 "Control what your contributors can do in Site.com Studio.") - [Create Site.com Page Templates](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_master_create.htm&release=264.0.0&type=5 "A page template lets you define the layout and functionality of site pages in one location. By adding common page elements to the template and then basing site pages on it, you can achieve a consistent look and feel throughout your site. And because a template-based page inherits the template's elements, you can make site-wide changes from one location.") - [Edit and Work with Site.com Page Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects_working_with.htm&release=264.0.0&type=5 "The Page Structure pane displays the hierarchy of all elements on the page and is a very useful way of selecting, moving, and reordering elements, particularly for more complicated page designs.") # About Editing Language Content The default language is the language in which your site initially displays. By default, it's set to English (US), and it serves as the starting point when you add new languages. So for example, if you build your site and then add French as a site language, the French version initially contains English (US) content until you replace it with French-specific content. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

After you add a language to your site, the Site.com Studio language selector appears on the toolbar. It lets you switch between languages as you edit content on each page. For example, if you add French and Spanish to your site, the language selector displays French, Spanish, and English (US). ![Site.com Studio language selector](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_lang_selector.png) Content blocks display icons to let you know whether content for the selected language has been replaced. - A warning icon (![Warning triangle](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_yellowtriangle.png)) indicates that the text that has not yet been replaced. - A globe icon (![Blue language globe](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_langglobe.png)) indicates that the content has been replaced. In addition, several page elements have [language aware properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_languages_prop.htm&release=264.0.0&type=5 "Several properties in the Properties pane are language aware, meaning they can store different values for each language."), meaning they can store different values for each language. These properties are indicated in the Properties pane by a globe icon (![Blue language globe](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_langglobe.png)). You can add content for each site language one of two ways: - [Edit the page content](https://help.salesforce.com/s/articleView?id=platform.siteforce_languages_editing.htm&release=264.0.0&type=5 "The Site.com Studio language selector lets you switch between languages as you edit content on each page. Contributors, designers, and site administrators can each add language-specific content to a page using the language selector.") for each language directly using the Site.com Studio language selector. - [Export the content for translation](https://help.salesforce.com/s/articleView?id=platform.siteforce_languages_export.htm&release=264.0.0&type=5 "Export one or more site languages as an .xml file that you can send to your translation service.") and then [import the translated content](https://help.salesforce.com/s/articleView?id=platform.siteforce_languages_import.htm&release=264.0.0&type=5 "You can import a translated .xml file back into your site after your translation service has completed the translations.") back into the site. ## Language Display Order After you add language-specific content to your site, content on the page is displayed in the following order, depending on which language content is available: 1. Selected language 2. Fallback language 3. Default language For example, if you delete the French contents of a content block, and Spanish is the fallback language, the Spanish content is displayed rather than the default language content. In turn, if you delete the Spanish content, then the default language content is displayed. ## Language–Aware Page Elements The following page elements support translated content: - Content Block - Custom Code - Data Element - Form - Input Fields - Image - Language Selector #### See Also - [Language-Aware Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_languages_prop.htm&release=264.0.0&type=5 "Several properties in the Properties pane are language aware, meaning they can store different values for each language.") # About Field Sets A field set is a grouping of fields. For example, you could have a field set that contains fields describing a user's first name, middle name, last name, and business title. ### Required Editions
Available in: Salesforce Classic
Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
When a field set is added to a Visualforce page, developers can loop over its fields and render them. If the page is added to a managed package, administrators can add, remove, or reorder fields in a field set to modify the fields presented on the Visualforce page without modifying any code. The same Visualforce page can present different sets of information, depending on which fields a subscriber prefers to keep. Users with the Customize Application permission and delegated administrators can create or edit field sets for their organization or [edit any installed field set](https://help.salesforce.com/s/articleView?id=platform.fields_editing_field_sets.htm&release=264.0.0&type=5 "Salesforce has a drag-and-drop WYSIWYG tool for creating and editing field sets The enhanced field sets editor is enabled by default, and provides all of the functionality of the original editor, as well as additional functionality and an easier-to-use WYSIWYG interface."). Field sets are available on all standard objects that support custom fields, and any organization that supports creating Visualforce pages. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Only fields available in the API can be added to field sets. Fields added to a field set can be in one of two categories: - If a field is marked as Available for the Field Set, it exists in the field set, but the developer hasn’t presented it on the packaged Visualforce page. Administrators can display the field after the field set is deployed by moving it from the Available column to the In the Field Set column. - If a field is marked as In the Field Set, the developer has rendered the field on the packaged Visualforce page by default. Administrators can remove the field from the page after the field set is deployed by removing it from the In the Field Set column. - **[Create and Edit Field Sets](https://help.salesforce.com/s/articleView?id=platform.fields_editing_field_sets.htm&release=264.0.0&type=5)** Salesforce has a drag-and-drop WYSIWYG tool for creating and editing field sets The enhanced field sets editor is enabled by default, and provides all of the functionality of the original editor, as well as additional functionality and an easier-to-use WYSIWYG interface. - **[Define a Field as Required Using Field Sets](https://help.salesforce.com/s/articleView?id=platform.fields_required_field_sets.htm&release=264.0.0&type=5)** You can define a field as required when you create or edit field sets. You may want to define a field as required to ensure a user enters the necessary information on a field. #### See Also - [Create a Custom Field](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&release=264.0.0&type=5 "Capture your unique business data by storing it in custom fields. When you create a custom field, you configure where you want it to appear and optionally control security at the field level.") - [Developer's Guide: Visualforce Developer's Guide](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/) # About Flow Approval Processes Review Flow Approval Processes permissions, editions, limitations, considerations, and entitlements. - **[Supported Editions for Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_about_supported_editions.htm&release=264.0.0&type=5)** Review the supported products and editions for Flow Approval Processes. - **[Flow Approval Processes Limits and Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_considerations.htm&release=264.0.0&type=5)** Get familiar with tips, tricks, and potential pitfalls before you design, manage, and run flow approval processes. # About Flow Orchestration Review Flow Orchestration permissions, editions, limitations, considerations, and entitlements. - **[Supported Editions for Flow Orchestration](https://help.salesforce.com/s/articleView?id=platform.automate_orchestrator_about_supported_editions.htm&release=264.0.0&type=5)** Review the supported products and editions for Flow Orchestration. - **[Flow Orchestration Limits and Considerations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_considerations.htm&release=264.0.0&type=5)** When designing, managing, and running orchestrations, consider these issues. - **[Flow Orchestration Entitlements](https://help.salesforce.com/s/articleView?id=platform.orchestrator_considerations_entitlements.htm&release=264.0.0&type=5)** Flow Orchestration is included in certain editions with no usage-based limitations. An orchestration run is a running instance of an orchestration. An orchestration is an application built by your admin that uses stages, steps, and decisions to organize a complex business process. # About Flows and Flow Builder Using Flow Builder to automate routine tasks, like creating follow-up tasks, sending reminder emails, or updating records, makes work more efficient and productive so employees can focus on more strategic work. ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. Watch this video overview of the three most common flow types as well as the Flow Builder layout. View this [video](https://play.vidyard.com/PjNcmecuqcYKH2cJsfLEAy.html) in a separate tab. - **[Supported Editions for Flow Builder and Licenses for Integrated Features](https://help.salesforce.com/s/articleView?id=platform.flow_ref_supported_editions.htm&release=264.0.0&type=5)** Learn about the editions and user interfaces that support Flow Builder. Some Flow Builder features integrate with other Salesforce products that require additional licenses. - **[Flow Terminology](https://help.salesforce.com/s/articleView?id=platform.automate_flow_terms.htm&release=264.0.0&type=5)** This glossary provides definitions for commonly used terms in Flow Builder. - **[Flow Builder Tour](https://help.salesforce.com/s/articleView?id=platform.flow_builder.htm&release=264.0.0&type=5)** Get to know the Flow Builder user interface. - **[Flow Builder Keyboard Shortcuts](https://help.salesforce.com/s/articleView?id=platform.flow_builder_keyboard_shortcuts.htm&release=264.0.0&type=5)** Use these handy keyboard shortcuts for macOS and Windows to quickly navigate flows and edit elements on the canvas. # About High-Volume Community or Site Users High-volume community or site users in Experience Cloud are limited-access users intended for orgs that have thousands to millions of users. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
Unlike other users, high-volume community or site users don’t have roles, which eliminates performance issues associated with role hierarchy calculations. High-volume users include the External Apps, Customer Community, High Volume Customer Portal, and Authenticated Website license types. ## Characteristics High volume users: - Are contacts enabled to access an experience. - Are assigned to the External Apps, Customer Community, High Volume Customer Portal, or Authenticated Website license. - Only share the records they own with authenticated Salesforce users in Share Groups. - Only share the records they own in guest user or criteria-based sharing rules. ## Access to Records High-volume users can access the following types of records, based on specific conditions: - They can access their own account and contact records, based on [implicit sharing](https://help.salesforce.com/articleView?id=sharing_across_objects.htm&language=en_US). - They have Read access on the account they belong to. - They can access a record’s parent, and the org-wide sharing setting for that record is Controlled by Parent. - The org-wide sharing setting for the object is Public Read Only or Public Read/Write. ## Limitations - You can't manually share records owned by high-volume users. High-volume users themselves also can’t manually share records they own or have access to. - You can’t transfer cases from member-based users to high-volume users. - High-volume users can’t own accounts. - You can’t add case teams to cases owned by high-volume users. - You can’t include high-volume users in: - Personal groups or public groups. - Owner-based sharing rules. - Account teams, opportunity teams, or case teams. - Salesforce CRM Content libraries.These limitations also apply to records owned by high-volume users. - You can’t assign high-volume users to territories. #### See Also - [Use Share Groups to Share Records Owned by High-Volume Experience Cloud Site Users](https://help.salesforce.com/s/articleView?id=platform.networks_sharing_light_users.htm&release=264.0.0&type=5 "Share groups allow you to share records owned by high-volume Experience Cloud site users with authenticated internal and external users.") # About Next Best Actions Create and display offers and actions for your users that are tailored to meet your unique criteria. Develop a strategy that applies your business logic to refine those recommendations. Your strategy distills your recommendations into a few key suggestions, like a repair, a discount, or an add-on service. Show the final recommendations in your Lightning app or Experience Builder site. ### Required Editions
View supported editions for Next Best Action.
User Permissions Needed
To open, edit, or create a flow in Flow Builder: Manage Flow
- **[Supported Editions for Next Best Action](https://help.salesforce.com/s/articleView?id=platform.nba_ref_editions.htm&release=264.0.0&type=5)** Learn about the editions and user interfaces that support Next Best Action. - **[Get Started with Einstein Next Best Action](https://help.salesforce.com/s/articleView?id=platform.nba_implementation_checklist.htm&release=264.0.0&type=5)** Just getting started with Einstein Next Best Action? Follow these steps to complete each phase of the Next Best Action setup process, create personalized recommendations for your users, and put decisions into action. - **[Einstein Next Best Action Examples](https://help.salesforce.com/s/articleView?id=platform.nba_examples.htm&release=264.0.0&type=5)** These examples walk you through the process of creating Einstein Next Best Action components. - **[Einstein Next Best Actions Considerations](https://help.salesforce.com/s/articleView?id=platform.nba_considerations.htm&release=264.0.0&type=5)** Keep these considerations in mind when working with strategies and recommendations. - **[Einstein Next Best Action Entitlements](https://help.salesforce.com/s/articleView?id=platform.nba_perms_and_entitlements.htm&release=264.0.0&type=5)** Einstein Next Best Action has usage-based entitlements. All orgs receive a free monthly allowance of Next Best Action requests. If your usage exceeds your allowance of free monthly requests or any entitlements that you purchase, Salesforce contacts you to discuss additions to your contract. To track your usage, from Setup, navigate to **Company Information**. # About S-Controls Use s-controls to add your own functionality to your Salesforce organization. Whether you are integrating a hosted application of your own or are extending your current Salesforce user interface, use s-controls to store your code or refer to code elsewhere. Custom s-controls can contain any type of content that you can display in a browser, for example a Java applet, an Active-X control, an Excel file, or a custom HTML Web form. ### Required Editions
Available in: Salesforce Classic
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important Visualforce pages supersede s-controls. Organizations that haven't previously used s-controls can’t create them. Existing s-controls are unaffected and can still be edited. ## Considerations for S-Controls in Salesforce AppExchange Packages If you are developing Salesforce AppExchange packages with s-controls or are planning to install a AppExchange package with s-controls, you should be aware of the following limitations: - For packages you are developing (that is, not installed from AppExchange), you can only add s-controls to packages with the default Unrestricted API access. Once a package has an s-control, you cannot enable Restricted API access. - For packages you have installed, you can enable access restrictions even if the package contains s-controls. However, access restrictions provide only limited protection for s-controls. Salesforce recommends that you understand the JavaScript in an s-control before relying on access restriction for s-control security. - If an installed package has Restricted API access, upgrades will be successful only if the upgraded version does not contain any s-controls. If s-controls are present in the upgraded version, you must change the currently installed package to Unrestricted API access. #### See Also - [Defining Custom S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_scontrol.htm&release=264.0.0&type=5 "S-controls provide a flexible, open means of extending the Salesforce user interface, including the ability to create and display your own custom data forms.") - [Useful S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_useful_scontrols.htm&release=264.0.0&type=5 "Use these samples to get started using s-controls.") - [How Do Visualforce Pages Compare to S-Controls?](https://developer.salesforce.com/docs/atlas.en-us.pages.me../../pages/pages_intro_vs_scontrols.htm) # About Site.com Feature Licenses To access Site.com, each user in your organization must have a Site.com feature license. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

- The Site.com Publisher feature license allows the user to access Site.com Studio to create and style websites, control the layout and functionality of pages and page elements, and add and edit content. - The Site.com Contributor feature license allows the user to access Site.com Studio to edit site content only. Consider what your users need to do in a site and purchase feature licenses accordingly. See the [Site.com feature table](https://help.salesforce.com/s/articleView?id=platform.siteforce_features.htm&release=264.0.0&type=5) for a complete list of the capabilities that come with each feature license. After you purchase feature licenses, you can [set up Site.com users](https://help.salesforce.com/s/articleView?id=platform.siteforce_admin_setup.htm&release=264.0.0&type=5 "Before users can access Site.com, you must allocate a Site.com feature license to each user and assign a user role at the site level. The features available when editing a site in Site.com Studio vary depending on these settings."). You can view the number of assigned feature licenses on your organization's profile. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Organizations using Performance, Unlimited, or Enterprise Editions must purchase Site.com Publisher and Site.com Contributor feature licenses separately. Additionally, a Site.com Published Site license is required for each site that's published to the Internet. For information on purchasing Site.com licenses, contact Salesforce. Developer Edition organizations contain two Site.com Publisher feature licenses and one Site.com Contributor feature license. Developer Edition organizations can't publish sites. Communities users with the “Create and Set Up Communities” permission are assigned the role of site administrator in a community’s Site.com site. To let users who don’t have this permission edit the site, you must purchase and assign a Site.com Publisher or a Site.com Contributor feature license. Then you must assign a user role at the site level. - **[Set Up Site.com Users](https://help.salesforce.com/s/articleView?id=platform.siteforce_admin_setup.htm&release=264.0.0&type=5)** Before users can access Site.com, you must allocate a Site.com feature license to each user and assign a user role at the site level. The features available when editing a site in Site.com Studio vary depending on these settings. - **[About Site.com User Roles](https://help.salesforce.com/s/articleView?id=platform.siteforce_perm_roles_about.htm&release=264.0.0&type=5)** Each Site.com user must have a user role assigned at the site level, which controls what each user can do in a site. Users can have only one role per site, but their roles can vary between sites. For example, a person can be a site administrator on one site and a contributor on another. - **[Manage Site.com Users and Roles](https://help.salesforce.com/s/articleView?id=platform.siteforce_perm_roles_manage.htm&release=264.0.0&type=5)** After you create a site, you can add other users and assign roles to them. - **[About Site.com Features](https://help.salesforce.com/s/articleView?id=platform.siteforce_features.htm&release=264.0.0&type=5)** \>Site.com Studio features vary depending on feature license, user role, and permissions. #### See Also - [About Site.com User Roles](https://help.salesforce.com/s/articleView?id=platform.siteforce_perm_roles_about.htm&release=264.0.0&type=5 "Each Site.com user must have a user role assigned at the site level, which controls what each user can do in a site. Users can have only one role per site, but their roles can vary between sites. For example, a person can be a site administrator on one site and a contributor on another.") - [Manage Site.com Users and Roles](https://help.salesforce.com/s/articleView?id=platform.siteforce_perm_roles_manage.htm&release=264.0.0&type=5 "After you create a site, you can add other users and assign roles to them.") # About Site.com Features \>Site.com Studio features vary depending on feature license, user role, and permissions. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

The features available when editing a site in Site.com Studio vary depending on your [Site.com feature license](https://help.salesforce.com/s/articleView?id=platform.siteforce_perm_license_about.htm&release=264.0.0&type=5 "To access Site.com, each user in your organization must have a Site.com feature license.") and also your [user role](https://help.salesforce.com/s/articleView?id=platform.siteforce_perm_roles_about.htm&release=264.0.0&type=5 "Each Site.com user must have a user role assigned at the site level, which controls what each user can do in a site. Users can have only one role per site, but their roles can vary between sites. For example, a person can be a site administrator on one site and a contributor on another.") for that particular site. This table lists the required feature licenses, permissions, and roles for many of the Site.com Studio features. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - Communities users with the “Create and Set Up Communities” permission are assigned the role of site administrator in a community’s Site.com site. - You can't create, delete, or duplicate community sites in Site.com.
Site.com Studio Feature Requirements
Feature Feature License Site.com Studio User Role Permissions
Assign feature license to user profile     “Manage Internal Users”
Add users and roles at the site level Publisher Site administrator Additionally, any user with a Site.com feature license and the “Manage Users” permission.
Enable contributors to create pages, add content blocks and widgets, and edit content blocks and graphics Publisher Site administrator or designer  
Create websites Publisher Users who create a site are automatically added to that site as a site administrator.  
Delete websites Publisher Site administrator or designer  
Import websites Publisher Users who import a site are automatically added to the new site as a site administrator.  
Export websites Publisher Site administrator or designer  
Duplicate websites Publisher Site administrator or designer  

Manage domains

(Unavailable for Developer Edition)

Publisher Site administrator  
Add and edit IP restrictions Publisher Site administrator  

Publish changes to the live website

(Unavailable for Developer Edition)

Publisher Site administrator  
Create page templates Publisher Site administrator or designer  
Create website pages Publisher or Contributor

Site administrator or designer

Contributor only if enabled by the site administrator or designer in the page template's Properties pane.

 
Create and modify style sheets Publisher Site administrator or designer  
Modify layout and design Publisher Site administrator or designer  
Add page elements Publisher or Contributor

Site administrator or designer

Contributor can add content blocks and widgets only if enabled by the site administrator or designer.

 
Add data repeaters and other data-bound page elements Publisher Site administrator or designer  
Modify the Guest User profile to set public access permissions to Salesforce objects Publisher Site administrator or designer “Manage Profiles and Permission Sets” and “Customize Application”
Import assets, such as images and files Publisher or Contributor Any assigned role  
Edit content and images Publisher or Contributor

Site administrator or designer

Contributor only if enabled by the site administrator or designer in the page template's Properties pane.

 
Preview website pages Publisher or Contributor Any assigned role  
# About Site.com User Roles Each Site.com user must have a user role assigned at the site level, which controls what each user can do in a site. Users can have only one role per site, but their roles can vary between sites. For example, a person can be a site administrator on one site and a contributor on another. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

To manage user roles in a site, you must either be the site administrator for that site, or have a Site.com feature license and the “Manage Users” permission. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Users with the “Create and Set Up Experiences” permission are assigned the role of site administrator in a community’s Site.com site. However, they don't appear in the User Roles section on the Overview tab of Site.com Studio. Users can have one of three roles at the site level: - Site administrator—Site administrators are users who can create and manage all site content. They can create sites, templates, style sheets, and pages, and also set up domains, publish sites, and assign user roles. This role requires the Site.com Publisher feature license. - Designer—Designers have the same control over site content as site administrators, but they can't manage domains or publish sites. By default, they can't assign roles unless they have the “Manage Users” permission. This role requires the Site.com Publisher feature license. - Contributor—Contributors have the most restricted access to content and can typically edit page text and images. By default, they can't assign roles unless they have the “Manage Users” permission. This role requires the Site.com Contributor feature license. See the [Site.com feature table](https://help.salesforce.com/s/articleView?id=platform.siteforce_features.htm&release=264.0.0&type=5) for a detailed list of each user role's capabilities. #### See Also - [Manage Site.com Users and Roles](https://help.salesforce.com/s/articleView?id=platform.siteforce_perm_roles_manage.htm&release=264.0.0&type=5 "After you create a site, you can add other users and assign roles to them.") - [Set Up Site.com Users](https://help.salesforce.com/s/articleView?id=platform.siteforce_admin_setup.htm&release=264.0.0&type=5 "Before users can access Site.com, you must allocate a Site.com feature license to each user and assign a user role at the site level. The features available when editing a site in Site.com Studio vary depending on these settings.") - [Set Up the Contributor’s Studio View](https://help.salesforce.com/s/articleView?id=platform.siteforce_contrib_view.htm&release=264.0.0&type=5 "Control what your contributors can do in Site.com Studio.") - [About Site.com Feature Licenses](https://help.salesforce.com/s/articleView?id=platform.siteforce_perm_license_about.htm&release=264.0.0&type=5 "To access Site.com, each user in your organization must have a Site.com feature license.") # About Syndication Feeds Syndication feeds give users the ability to subscribe to changes within Salesforce Sites and receive updates in external news readers. Simply by defining a SOQL query and mapping, you can syndicate changes to public data to your end users. You can create one or more syndication feeds for your organization's public sites or any Visualforce page. The syndication feed displays the records specified by a SOQL query. Users can subscribe to the feed and view the feed when they visit the site or page. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Developer, Enterprise, Performance, and Unlimited Editions
User Permissions Needed
Create, edit, or delete a feed definition: Modify All Data
Subscribe to a feed No special user permission required
## Validating Feeds Security When a user subscribes to a feed, the information is run in a guest user context. You must ensure the guest user has access to all and only the records appropriate for a guest use before defining any queries. To validate feeds security: - Edit the public access setting for the site to make sure the guest user has the correct object permissions and field-level security settings. - Create sharing rules to control what records the guest user has access to. After adjusting public access and field-level security settings to ensure the objects you wish to include in a feed are available to the guest user, perform any of these feeds-related tasks. - To create a feed, click **New**. - To view the definition of an existing feed, click the feed name. - To edit an existing feed, click **Edit**. - To delete an existing feed, click **Delete**. - To test the validity of a feed, click **Run Test**. If any errors exist in the query definition or mapping, error messages are displayed. #### See Also - [View Syndication Feeds](https://help.salesforce.com/s/articleView?id=platform.feeds_viewing.htm&release=264.0.0&type=5 "View the syndication feed definition, including what records are returned, and which data from the records is displayed.") - [Test Syndication Feeds](https://help.salesforce.com/s/articleView?id=platform.feeds_bind_test.htm&release=264.0.0&type=5 "Before you enable a feed for customers, test the feed definition.") # About the Site Map and Page Hierarchy The Site Pages view on the Overview tab contains the pages and site map links of your website. The Site Map folder reflects the hierarchy or tree structure of your site by housing site pages and links that are included in the site map. When you create pages or site map links, they're automatically added to this folder. The Landing Pages folder houses standalone pages that are excluded from the site map, making it ideal for temporary pages, such as promotional or competition pages. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip If you can't see the Site Map folder in the Site Pages view on the Overview tab, click ![Site map](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_sitemap.png). When adding a navigation menu to your site, it's important to organize the hierarchy of your site pages and links accurately, because this structure is used to generate the menu. Pages and site map links are displayed in navigation menus in the order you arrange them. In this representation of the site hierarchy, you can more clearly see the tree structure. ![Page hierarchy, numbered 1-5](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_sitemap.png) - 1 is the Site Map folder, which contains four site pages. - 2 is a top-level page in the site hierarchy. - 3 is a top-level, parent page with two child pages. A child page is a page at a lower level in the site hierarchy than its parent page. - 4 are the two child pages. - 5 is the Landing Pages folder, which contains a temporary page that's not part of the site map or navigation menu. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip If a page has child pages, the ![Expand](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_arrow.png) icon appears beside it indicating that you can expand the branch. By default, when you create a menu, it's generated from the pages and site map links in the Site Map folder in the Site Pages view. However, you can also create a menu that's generated from the pages in the Landing Pages folder or from the child or sibling pages of a site page. You can hide a page in menus, breadcrumbs, and the site map by selecting the Hide Page checkbox found on the Properties pane for each page. This setting also prevents website visitors from accessing the page's direct URL. By default, all pages are visible. - **[Add Links to a Site Map](https://help.salesforce.com/s/articleView?id=platform.siteforce_sitemap_link_add.htm&release=264.0.0&type=5)** Pages aren't the only things you can assign to your site map. Add internal or external URLs to your site map to customize your navigation menus and breadcrumbs, and achieve greater flexibility and control. - **[Adding Breadcrumb Navigation to Pages](https://help.salesforce.com/s/articleView?id=platform.siteforce_breadcrumb_add.htm&release=264.0.0&type=5)** Add a Breadcrumb page element to your page to help users navigate through your site and show the page’s location in the site hierarchy. - **[Add a Navigation Menu](https://help.salesforce.com/s/articleView?id=platform.siteforce_menu_add.htm&release=264.0.0&type=5)** By default, when you create a menu, it's generated from the pages and site map links in the Site Map folder in the Site Pages view. However, you can also create a menu that's generated from the pages in the Landing Pages folder or from the child or sibling pages of a site page. - **[Style Navigation Menus](https://help.salesforce.com/s/articleView?id=platform.siteforce_menu_style.htm&release=264.0.0&type=5)** Navigation menus are styled using CSS themes that you can customize to match the design of your website. When you add a navigation menu to a page, it uses a default theme to control its appearance. Choose from other existing themes in the Theme Name dropdown list in the Properties pane. #### See Also - [Add a Navigation Menu](https://help.salesforce.com/s/articleView?id=platform.siteforce_menu_add.htm&release=264.0.0&type=5 "By default, when you create a menu, it's generated from the pages and site map links in the Site Map folder in the Site Pages view. However, you can also create a menu that's generated from the pages in the Landing Pages folder or from the child or sibling pages of a site page.") - [Create Site.com Pages](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_create.htm&release=264.0.0&type=5 "As a site administrator or designer, when you create a site page, you can choose to base it on a layout or page template.") # ABS Calculates the absolute value of a number. The absolute value of a number is the number without its positive or negative sign. ## Use ABS(number) and replace number with a merge field, expression, or other numeric value that has the sign you want removed. ![Revenue Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Revenue Example `ABS(ExpectedRevenue)` calculates the positive value of the Expected Revenue amount regardless of whether it’s positive or negative. # Abstract Company Enrichment Connector Connect to an external Abstract API account. Perform tasks like validating company details from a domain. Use Abstract Company Enrichment as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Abstract Company Enrichment actions are available in Flow Builder. - Enrich Company Data ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Abstract Email Validator Connector Connect to an external Abstract API account. Perform tasks like validating email addresses. Use Abstract Email Validator as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Abstract Email Validator actions are available in Flow Builder. - Validate Email Address ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Abstract Phone Validator Connector Connect to an external Abstract API account. Perform tasks like validating phone numbers. Use Abstract Phone Validator as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Abstract Phone Validator actions are available in Flow Builder. - Validate Phone Number ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Accelerate Integrations with Templates and AI Pre-Built Flows Use a MuleSoft for Flow: Integration template to configure connectors or use AI pre-built flows to build your flow logic. These tools eliminate starting from scratch, so you can accelerate integration and customize automation for your business. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
User Permissions Needed
To create, view, edit, and delete MuleSoft for Flow: Integration connections: Manage Integration Connections
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
To create and edit External System Change-Triggered flows in the Automation app, regardless of sharing settings:

Manage Flow

OR

Create or Edit Flows

AND

  • View Flows
  • View All Non-Admin Flows
To create and edit External System Change-Triggered flows owned by or shared with you with Read/Write access in the Automation app:

Create or Edit Flows

AND

View Flows

To use MuleSoft for Flow: Integration templates:

Create or Edit Flows

OR

View Flows

To use MuleSoft for Flow: Integration templates as a non-System Admin: App Framework Manage Template
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. To make this app available to anyone with the permission to use it, select the **Enable the Automation Lightning App** process automation setting. To view connection version information, activate at least one connection. ## Use Available MuleSoft for Flow: Integration Templates You can browse templates directly from the Automation app or view available templates in the **Triggered Automations** section. 1. Open the Automation app. 2. Choose how to access the flow templates. - Select the **Integrations** tab and select a [connector](https://help.salesforce.com/s/articleView?id=platform.automate_flow_ref_third_party_connectors.htm&release=264.0.0&type=5 "Use MuleSoft for Flow: Integration connectors in your flows for no-code connectivity to external systems. Each external system that connects to Flow Builder behaves in different ways depending on how the external system stores the information that you want to retrieve and manipulate. Review each connector's reference page to understand which triggers and actions are available.") from the **Get Started with Connectors** section. - Select the **Flows** tab, then click **New**, and then click **Triggered Automations**. 3. Review the available templates for that connector. You can now use a template to create a flow that uses a connector as a [trigger](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_trigger.htm&release=264.0.0&type=5) or as an [action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5). ## Use an AI Pre-Built Flow **Prerequisites** To use Agentforce in MuleSoft for Flow: Integration, complete these steps: - Turn on [generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_enable.htm&language=en_US) in Setup. - Verify that your org has [Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_provision.htm&language=en_US) provisioned and enabled. - Turn on Agentforce flow automation (Beta) in Process Automation Settings. **Considerations** This feature doesn't consume generative AI credits. For more information, see [Agentforce and Generative AI Usage and Billing](https://help.salesforce.com/s/articleView?id=ai.generative_ai_usage.htm&language=en_US). AI Pre-Built Flows use [Agentforce](https://www.salesforce.com/agentforce/guide/) to generate automations based on curated prompts. 1. Open the Automation app and select the **Integrations** tab. 2. Select a [connector](https://help.salesforce.com/s/articleView?id=platform.automate_flow_ref_third_party_connectors.htm&release=264.0.0&type=5 "Use MuleSoft for Flow: Integration connectors in your flows for no-code connectivity to external systems. Each external system that connects to Flow Builder behaves in different ways depending on how the external system stores the information that you want to retrieve and manipulate. Review each connector's reference page to understand which triggers and actions are available."). 3. In the **AI Pre-Built Flows** section, select a template. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip Review the flow name, description, and notes. To find a flow, search or filter the list. 4. In the **Configure Automation** wizard, for each required connector, [select an existing connection or click **New Connection**](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Create a connection to an external system in the Automation app."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note The system then passes this context to Agentforce, which dynamically generates the flow on the Flow Builder canvas. 5. Review the generated steps in Flow Builder. If errors or warnings appear in the left pane, correct them before proceeding. 6. [Test and validate the flow logic](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_testing.htm&release=264.0.0&type=5 "Test your flow before activation to catch errors, verify every path, and prevent data issues. Depending on the flow type, use Test Mode or the Flow Builder debugger to test different scenarios with sample data."). 7. Save and [activate](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_activate.htm&release=264.0.0&type=5 "You can activate or deactivate a flow from the Automation app Flows tab or the Flow Builder canvas.") the flow. # Access Agentforce Vibes Usage with Agentic Development (Developer Preview) To track and analyze Agentforce Vibes data, enable the Agentic Development dashboard. The dashboard aggregates Agentforce Vibes activity from the last 30 days and provides analytics about AI-powered development, developer productivity metrics, and AI model utilization. Admins can filter data and analytics by Org Type or by a specific model. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
Not available in: Government Cloud Plus. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center is supported in orgs in the EU that aren't part of EU OZ, per standard product terms and conditions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note Customer is responsible for confirming that its use of this feature meets applicable legal requirements, including privacy and security laws and regulations. ## Prerequisites Agentic Development analytics require Agentforce Vibes activity in the last 30 days. Developer activity appears in the dashboard only if you’ve already installed the Agentforce Vibes Extension, and activity can take up to 24 hours to appear after it records a session. ## Evaluate Agentic Development Insights The dashboard sorts insights into these sections. **AI-Powered Development and Productivity** See how Agentforce Vibes tools drive code generation and developer productivity through these metrics. | METRIC | Details | | --- | --- | | Accepted Lines of Code (LOC) | The number of AI-generated LOC approved, used, or accepted by developers. | | Acceptance Rate | The percentage of AI-generated LOC accepted by developers out of all AI-generated LOC. | | Est. Hours Saved | An estimate of development time saved per accepted LOC. This number is based on the industry-standard productivity benchmark of two minutes saved per accepted LOC. | | Active Developers | The total number of active developers over the last 30 days. | Below these metrics, you can find a chart that displays AI activity and output over time. The chart tracks the total number of generated LOC, the number of accepted LOC, and the total number of Agentforce Vibes requests over the last 30 days. This section also includes a chart that measures adoption velocity by comparing the number of active developers over four one-week periods. **Org Activity** The charts in this section summarize org-level data to help you identify the most active orgs. The Top Orgs by Requests chart displays the orgs with the most requests to Agentforce Vibes over the last 30 days. The Top Orgs by Accepted LOC chart identifies the five orgs with the highest number of accepted LOC over the same period. **AI Token and Model Usage** In this section, evaluate token consumption, model efficiency, and accepted LOC output. The top of the section displays the total number of tokens used, the average number of tokens spent per request to Agentforce Vibes, and the total number of tokens spent per accepted LOC, all over the last 30 days. Next to each of these three metrics, you can see how data from the last 30 days compares to data from the preceding 30-day period. Under those three metrics is a chart that displays the number of tokens used by different AI models. In the adjacent chart, you can also see the number of accepted LOC by your five most-used models. In the Model Usage Details section, you can access granular insights on token use and AI-powered code generation broken down by different models. **User Activity** Optionally, you can generate the User Activity section to see user-level insights on developer productivity, AI code generation, and token use. This feature is disabled by default, and only users with the Lifecycle Center Admin permission can enable it as follows. 1. In the Lifecycle Center Home page, find the Connect to Version Control section. Next to Features & Integrations, click **Manage**. 2. Click the toggle to enable Developer-Level Insights (Developer Preview). 3. Once enabled, users with the Lifecycle Center Developer-Level Insights permission can see User Activity in the Agentic Development dashboard. #### See Also - [Lifecycle Center Analytics](https://help.salesforce.com/s/articleView?id=platform.devops_center_analytics.htm&release=264.0.0&type=5 "Enable the Analytics tab in Lifecycle Center to track and analyze development and productivity metrics. The Analytics tab includes the Agentic Development dashboard, which aggregates Agentforce Vibes activity from the last 30 days and provides analytics about AI-powered code generation, developer productivity, and AI models utilization.") # Access Custom Metadata Records Programmatically Use SOQL to access your custom metadata types and to retrieve the API names of the records of those types. ### Required Editions
Available in: Salesforce Classic and Lightning Experience

Available in: Enterprise, Performance, Unlimited, and Developer Editions

You can create, edit, and delete custom metadata type records from installed packages in: Group and Professional Editions

User Permissions Needed
To create or edit custom metadata types: Author Apex
Apex code can create, read, and update (but not delete) custom metadata records, as long as the metadata is subscriber-controlled and visible from within the code's namespace. DML operations aren’t allowed on custom metadata in the Partner or Enterprise APIs. With unpackaged metadata, both developer-controlled and subscriber-controlled access behave the same: like subscriber-controlled access. For information about the Custom Metadata Type\_\_mdt sObject, see [Custom Metadata Type\_\_mdt](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_custommetadatatype__mdt.htm) in the Object Reference for Salesforce . Refer to [Trust, but Verify: Apex Metadata API and Security](https://developer.salesforce.com/blogs/engineering/2017/06/apex-metadata-api-security.html) to learn more about package access in developer-controlled and subscriber-controlled orgs. The following example declares the Apex variable custMeta of the custom metadata type `MyCustomMetadataType__mdt`, which is in your namespace. ```java MyCustomMetadataType__mdt custMeta; ``` Declare the custMeta variable of the custom metadata type `TheirCustomMetadataType__mdt`, which isn’t in your namespace but is in the `their_ns` namespace. ```java their_ns__TheirCustomMetadataType__mdt custMeta; ``` The following example is a simple query that returns standard and custom fields for all records of the `Threat_Tier_Mapping` custom metadata type and accesses some of their fields. ```java Threat_Tier_Mapping__mdt[] threatMappings = [SELECT MasterLabel, QualifiedApiName, Field_Mapping__c ,Minimum_Support_Level__c FROM Threat_Tier_Mapping__mdt]; for (Threat_Tier_Mapping__mdt threatMapping : threatMappings) { System.debug(threatMapping.MasterLabel + ‘: ‘ + threatMapping.Field_Mapping__c + ‘ from ‘ + threatMapping.Team_Building_to_SFA_Field_Mapping__c + ‘ to ‘ threatMapping.Minimum_Support_Level__c); } ``` To provide an entity that looks more like a `Schema.SObjectDescribeResult` than SOQL, make the Apex class `vacations.ThreatTierMappingDescribeResult` encapsulate the information queried from `vacations__ThreatTierMappingDescribeResult__mdt`. Then create the class `vacations.Vacations` with methods such as: ```java vacations.ThreatTierMappingDescribeResult describeThreatTierMappings(String qualifiedApiName) { Threat_Tier_Mapping__mdt threatMapping = [SELECT FROM Threat_Tier_Mapping__mdt WHERE QualifiedApiName = :qualifiedApiName]; return new ThreatTierMappingDescribeResult(); } ``` In the preceding example, `` refers to the fields you want to include in the `_describe_` and `` refers to the values of those fields. The next example uses a metadata relationship that references another custom metadata type, `Team_Building_to_SFA_Field_Mapping__mdt`, to do a simple right outer join. ```java ThreatTierMapping threatMapping = [SELECT MasterLabel, Team_Building_to_SFA_Field_Mapping__r.MasterLabel FROM Threat_Tier_Mapping__mdt WHERE QualifiedApiName=‘Easy_Vacations’]; System.debug(threatMapping.MasterLabel + ‘ is part of ‘ + Team_Building_to_SFA_Field_Mapping__r.MasterLabel); ``` The following example shows a left outer join starting from `EntityDefinition`. This query uses a relationship field called `Team_Building_Object__c` on `Team_Building_to_SFA_Field_Mapping__mdt`. The child relationship name of this relationship field is `Field_Mappings_From`. ```java for (EntityDefinition entity : allObjects) { System.debug(‘Processing mappings for: ‘ + entity.QualifiedApiName); for (Team_Building_to_SFA_Field_Mapping__mdt fieldMapping : entity.FieldMappingsFrom__r) { System.debug(‘ Field ‘ + fieldMapping.Team_Building_Field__c + ‘ has mapping ‘ + fieldMapping.QualifiedApiName); } } ``` #### See Also - [Custom Metadata Types](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_overview.htm&release=264.0.0&type=5 "You can create your own declarative developer frameworks for internal teams, partners, and customers. Rather than building apps from data, you can build apps that are defined and driven by their own types of metadata. Metadata is the information that describes the configuration of each customer’s organization.") # Access Custom Settings with Code You can access custom settings from Apex, SOAP API, and formulas. ### Required Editions
Available in: Salesforce Classic and Lightning Experience.

Available in: Group, Professional, Developer, Enterprise, Performance, Unlimited, and Database.com Editions.

Packages aren’t available in Database.com.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Formulas include: flows, workflow rules, approval processes, validation rules, formula fields, and Process Builder processes. Here are some sample code segments: Formula Fields Formula fields only work for hierarchy custom settings; they can’t be used for list custom settings. `{!$Setup.CustomSettingName__c.CustomFieldName__c}` Apex Apex can access both custom setting types. Samples for List Custom Settings When you add data to a custom setting, name each data set so that you can distinguish them. The following returns a map of custom settings data. The `getAll` method returns values for all custom fields associated with the list setting. ``` Map mcs = CustomSettingName__c.getAll(); ``` The following example uses the `getValues` method to return all the field values associated with the specified data set. This method can be used with list and hierarchy custom settings, using different parameters. ``` CustomSettingName__c mc = CustomSettingName__c.getValues(data_set_name); ``` Samples for Hierarchy Custom Settings The following example uses the `getOrgDefaults` method to return the data set values for the organization level: ``` CustomSettingName__c mc = CustomSettingName__c.getOrgDefaults(); ``` The following example uses the `getInstance` method to return the data set values for the specified profile. The `getInstance` method can also be used with a user ID. ``` CustomSettingName__c mc = CustomSettingName__c.getInstance(Profile_ID); ``` SOAP API Custom settings that have Privacy defined as Public have the same type of exposure to the API as custom objects. When a custom setting is contained in a managed package, and Privacy for a custom setting is Protected, the settings can only be accessed by the Apex code or formulas that are part of the managed package. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can also access custom settings data through a Standard Object Query Language (SOQL) query, but this method doesn't use the application cache. It’s similar to querying a custom object. #### See Also - [Grant Permissions on Custom Settings](https://help.salesforce.com/s/articleView?id=platform.cs_grant_permission.htm&release=264.0.0&type=5 "By default, access to custom settings is limited through the Restrict access to custom settings org-wide preference. Admins can grant API Read access through profiles and permission sets to users without the Customize Application permission.") # Access Data in Another Salesforce Org with the Cross-Org Adapter for Salesforce Connect Connect your users to data that's stored in another Salesforce org. - **[Cross-Org Adapter for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.xorg_adapter_about.htm&release=264.0.0&type=5)** Collaborate more effectively and improve processes by connecting the data across your Salesforce orgs. With the cross-org adapter, Salesforce Connect uses Lightning Platform REST API calls to access records in other Salesforce orgs. Nevertheless, setup is quick and easy with point-and-click tools. - **[Set Up Salesforce Connect to Access Data in Another Org with the Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_setup.htm&release=264.0.0&type=5)** Provide users with seamless access to data in your other Salesforce orgs so that they have a complete view of the business. Setting up the cross-org adapter for Salesforce Connect is quick and easy with point-and-click tools. - **[Considerations for Salesforce Connect—Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_considerations.htm&release=264.0.0&type=5)** Understand the special behaviors, limits, and recommendations for using the cross-org adapter for Salesforce Connect. # Access Data in Related Objects Overview Standard and custom objects have relationships that define how records in one object relate to records in another. For example, the Accounts object has a one-to-many relationship with the Contacts object—that is, each account can have one or more contacts associated with it. This relationship is also known as a parent-to-child or a master-detail relationship. ### Required Editions ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

Data repeaters, data tables, and data functions take advantage of these relationships to let you display data from related objects on the page. Access Data in Parent Objects: When you add a data repeater, data table, or data function to the page and connect it to a standard or custom object, you can automatically access the fields of any parent object it's related to. If you add [filter criteria](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_operators.htm&release=264.0.0&type=5 "When you add a data repeater, a data table, or a data function to a page, you don't have to limit the records it retrieves. However, if you're working with a Salesforce object that has thousands of records, you can limit the returned results using filter criteria.") to a data repeater, data table, or data function, the Field dropdown list in the Create Data Connection dialog box displays the object's fields, followed by the fields of all of its parent objects, which use the format parent\_object\_name.field\_name. This lets you filter results based on a field in the parent object. So for example, when retrieving records from the Contacts object, you could decide to return only contacts where the account name (Account.Account Name) is “ABC Labs.” Similarly, when you add data elements to a data repeater, or columns to a data table, you can bind them to fields in a parent object. So for example, if you add a data table that's connected to the Contact object, you can add a column that binds to its Full Name field and a column that binds to the Account object's Account.Account Name field to display the contact's name along with the name of the account it's associated with. Access Data in Child Objects: You can retrieve data from any child object of a parent object using a data repeater that contains another data repeater, data table, or data function. The outer or parent data repeater connects to an object, such as Accounts. In turn, the inner data repeater, data table, or data function automatically lets you connect to any child objects, such as Contacts. It’s also known as a nested data repeater. Let's say you want to display a list of accounts along with the names of the associated contacts, similar to this example. ![Nested repeater output](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_data_nested2.png) You can achieve this by creating a data repeater (1) that's connected to Accounts, and adding a data element (2) to it that binds to the Account Name field. Then add a nested data repeater (3) that's connected to Contacts, which is a child of Accounts. Finally, add a data element (4) to the nested data repeater that binds to the Contact object's Full Name field. ![Nested repeater, numbered 1-4](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_data_nested.png) #### See Also - [Displaying Data from Related Objects Using Nested Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_nested_add.htm&release=264.0.0&type=5 "You can retrieve data from any child object of a parent object using a data repeater that contains another data repeater, data table, or data function.") - [Dynamically Retrieve Data with Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") - [Dynamically Retrieve Data with Data Tables](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5 "Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table.") # Access External Data with a Custom Adapter for Salesforce Connect Connect your users to any data anywhere by developing your own custom adapter with the Apex Connector Framework. - **[Custom Adapter for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.apex_adapter_about.htm&release=264.0.0&type=5)** Connect to any data anywhere for a complete view of your business. Use the Apex Connector Framework to develop a custom adapter for Salesforce Connect. - **[Set Up Salesforce Connect to Access External Data with a Custom Adapter](https://help.salesforce.com/s/articleView?id=platform.apex_adapter_setup.htm&release=264.0.0&type=5)** Let users view, search, and modify any data anywhere from within their Salesforce org. - **[Considerations for Salesforce Connect—Custom Adapter](https://help.salesforce.com/s/articleView?id=platform.apex_adapter_considerations.htm&release=264.0.0&type=5)** Understand the special behaviors, limits, and recommendations for using a Salesforce Connect custom adapter built with the Apex Connector Framework. # Access External Data with OData Adapters for Salesforce Connect Connect your users to data that's exposed via the Open Data Protocol. - **[OData Adapters for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.odata_adapter_about.htm&release=264.0.0&type=5)** Connect to your back office for a complete view of your business. With the OData 2.0, 4.0, or 4.01 adapter, Salesforce Connect uses Open Data Protocol Version 2.0, Version 4.0, or Version 4.01 to access data that’s stored outside Salesforce. - **[Set Up Salesforce Connect to Access External Data with OData Adapters](https://help.salesforce.com/s/articleView?id=platform.platform_connect_setup.htm&release=264.0.0&type=5)** Let users view and search data that’s stored outside your Salesforce org, such as data in an enterprise resource planning (ERP) system. - **[Considerations for Salesforce Connect OData Adapters](https://help.salesforce.com/s/articleView?id=platform.odata_considerations.htm&release=264.0.0&type=5)** Understand the special behaviors, limits, and recommendations for using the OData 2.0, 4.0, and 4.01 adapters for Salesforce Connect. - **[Picklist Considerations for Salesforce Connect OData Adapters](https://help.salesforce.com/s/articleView?id=platform.odata_considerations_picklist.htm&release=264.0.0&type=5)** Special behaviors and limitations apply to picklist fields on external objects for OData 2.0, 4.0, and 4.01 adapters. - **[OData Reference for Salesforce Connect OData Adapters](https://help.salesforce.com/s/articleView?id=platform.odata_reference.htm&release=264.0.0&type=5)** Get to know the Salesforce implementation of the OData protocol for accessing external systems with Salesforce Connect. - **[Use External Change Data Capture to Track Data Changes on External Objects](https://help.salesforce.com/s/articleView?id=platform.external_object_change_tracking_intro.htm&release=264.0.0&type=5)** With External Change Data Capture, you can track changes to data that is stored outside your Salesforce org when using the OData 4.0 and 4.01 adapters. You can then build automation in response to the changes to increase productivity or provide a better customer experience. # Access External Data With Salesforce Connect Salesforce Connect lets your users view, search, and modify data that’s stored outside your Salesforce org. Instead of copying the data into standard or custom objects, use external objects to access the data in real time via web service callouts. - **[Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_about.htm&release=264.0.0&type=5)** Salesforce Connect provides seamless integration of data across system boundaries by letting your users view, search, and modify data that’s stored outside your Salesforce org. For example, perhaps you have data that’s stored on premises in an enterprise resource planning (ERP) system. Instead of copying the data into your org, you can use external objects to access the data in real time via web service callouts. - **[External Data Sources With Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_writable_external_objects.htm&release=264.0.0&type=5)** Salesforce Connect uses external data sources to access data that's stored outside your Salesforce org. You must configure an external data source and synchronize it to map its tables with external objects in Salesforce. - **[Salesforce Platform Features Supported by Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_considerations.htm&release=264.0.0&type=5)** Salesforce Connect provides seamless integration with the Salesforce Platform and enables users to view, search, and modify external object data. - **[Access Data in Another Salesforce Org with the Cross-Org Adapter for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_xorg.htm&release=264.0.0&type=5)** Connect your users to data that's stored in another Salesforce org. - **[Access External Data with OData Adapters for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_odata.htm&release=264.0.0&type=5)** Connect your users to data that's exposed via the Open Data Protocol. - **[Access External Data with a Custom Adapter for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_apex.htm&release=264.0.0&type=5)** Connect your users to any data anywhere by developing your own custom adapter with the Apex Connector Framework. - **[Access External Data with the Salesforce Connect Adapter for Amazon DynamoDB](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_dynamodb.htm&release=264.0.0&type=5)** Connect your users to data that's stored in Amazon DynamoDB. - **[Access External Data with the Salesforce Connect Adapter for SQL](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_athena.htm&release=264.0.0&type=5)** Connect your users to external data sources that expose their capabilities via REST APIs and offer query and DML operations using SQL. - **[Access External Data with the Salesforce Connect Adapter for GraphQL](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_graphql.htm&release=264.0.0&type=5)** Connect your users to external data sources that expose their capabilities via GraphQL. - **[Access External Data with the Salesforce Connect Adaptor for Salesforce Archive](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_archive.htm&release=264.0.0&type=5)** Connect your users to data that’s stored in a Salesforce Archive data store. - **[Access External Data with the Salesforce Connect Adapter for Privacy Center](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_privacy_center.htm&release=264.0.0&type=5)** Connect your users to data that’s stored in a Privacy Center retention store. # Access External Data with the Salesforce Connect Adapter for Amazon DynamoDB Connect your users to data that's stored in Amazon DynamoDB. - **[Salesforce Connect Adapter for Amazon DynamoDB](https://help.salesforce.com/s/articleView?id=platform.dynamodb_adapter_about.htm&release=264.0.0&type=5)** Connect to Amazon DynamoDB to access and integrate DynamoDB data into Salesforce applications. With this adapter, take advantage of the flexible data storage capabilities of Amazon DynamoDB that provides fast and predictable performance combined with customer 360-degree view captured in Salesforce. - **[Set Up Salesforce Connect to Access External Data in Amazon DynamoDB](https://help.salesforce.com/s/articleView?id=platform.dynamodb_setup.htm&release=264.0.0&type=5)** Provide users with access to data stored in DynamoDB data source in Salesforce so that they have a complete view of the business. - **[Manage Qualifiers for Salesforce Connect Adapter for Amazon DynamoDB](https://help.salesforce.com/s/articleView?id=platform.dynamodb_manage_qualifiers.htm&release=264.0.0&type=5)** Amazon DynamoDB uses unique design patterns to model data efficiently that support multiple table and single table designs. To make data stored in Amazon DynamoDB table accessible to external objects, use qualifiers to reinterpret external data. The qualifiers describe the item attributes and indicates whether an item belongs to the schema represented by the external object. For multiple-table schema designs, the table qualifier is optional. - **[Considerations for Salesforce Connect Adapters for Amazon DynamoDB](https://help.salesforce.com/s/articleView?id=platform.dynamodb_considerations.htm&release=264.0.0&type=5)** Understand the special behaviors, limits, and recommendations for using the Salesforce Connect adapter for Amazon DynamoDB. # Access External Data with the Salesforce Connect Adapter for GraphQL Connect your users to external data sources that expose their capabilities via GraphQL. To know the GraphQL schema specifications and naming conventions that must be adhered to for the Salesforce Connect adapter for GraphQL, see [Understand GraphQL Schema Requirements](https://help.salesforce.com/s/articleView?id=platform.graphql_requirements.htm&release=264.0.0&type=5 "The Salesforce Connect adapter for GraphQL requires that the GraphQL schema adhere to a specific format."). - **[Salesforce Connect Adapter for GraphQL](https://help.salesforce.com/s/articleView?id=platform.graphql_adapter_about.htm&release=264.0.0&type=5)** GraphQL is a standard query language that allows applications to flexibly access required data and provides a modern way to integrate applications. Unlike traditional REST APIs, GraphQL provides granularity in specifying fields and relationships and is more efficient. - **[Set Up Salesforce Connect to Access External Data Exposed via GraphQL](https://help.salesforce.com/s/articleView?id=platform.graphql_setup.htm&release=264.0.0&type=5)** Provide users access to external databases managed via GraphQL and integrate data in Salesforce so that they have a complete view of the business. - **[Manage Qualifiers and External IDs for Salesforce Connect Adapter for GraphQL](https://help.salesforce.com/s/articleView?id=platform.graphql_manage_qualifiers_extids.htm&release=264.0.0&type=5)** When you sync a database table to create a Salesforce external object, a table qualifier is automatically generated. The qualifier constructs an external ID for the external object based on the global id field in the GraphQL schema. You can also configure the external ID based on any of the ID field types in the GraphQL schema. - **[Considerations for Salesforce Connect Adapters for GraphQL](https://help.salesforce.com/s/articleView?id=platform.graphql_considerations.htm&release=264.0.0&type=5)** Understand the special behaviors, limits, and recommendations for using the Salesforce Connect adapter for Amazon GraphQL. # Access External Data with the Salesforce Connect Adapter for Privacy Center Connect your users to data that’s stored in a Privacy Center retention store. ### Required Editions
Available in: Developer, Enterprise, Performance, and Unlimited Editions. Requires the Privacy Center license.
Before you begin: - Make sure that your Privacy Center retention store contains data. If your retention store is empty or not yet provisioned for your org, errors can occur with the Salesforce Connect setup process. - External objects are used to represent the data in your Privacy Center retention store. The external object fields don’t appear in global searches. To set up Salesforce Connect with the Privacy Center adapter, complete these high-level steps. 1. [Set up your Privacy Center retention store as an external data source](https://help.salesforce.com/s/articleView?id=platform.privacy_center_external_data_define.htm&release=264.0.0&type=5 "Give users access to the data in your Privacy Center retention store."). 2. Activate the objects that you want to access in your data store. 1. From the Privacy Center app, click the **Data Stores** tab. 2. In the dropdown menu for your data store, click **Configure Objects**. 3. In the Activated column, select the objects that you want to access. 4. Click **Save Settings**. 3. Create external objects in Salesforce to represent the data in your data store. Complete this step using one of two methods. - [Validate and sync](https://help.salesforce.com/s/articleView?id=platform.ext_data_sync_database.htm&type=5&language=en_US) your external data source (recommended). This method automatically creates external objects and maps them to the data in your retention store. - [Define external objects manually](https://help.salesforce.com/s/articleView?id=platform.external_object_define.htm&type=5&language=en_US). Use this method only if you want to customize the object names and manually create the object fields. 4. View the retained data using any of these methods. - [View Records with Custom Tabs](https://help.salesforce.com/s/articleView?id=platform.privacy_center_view_custom_tabs.htm&release=264.0.0&type=5 "To view the external objects that you synced with your Privacy Center retention store, you can create custom object tabs."). - [View Records with Related Lists](https://help.salesforce.com/s/articleView?id=platform.privacy_center_view_related_lists.htm&release=264.0.0&type=5 "Use related lists to view the external objects that you synced with your Privacy Center retention store."). - [Query the external objects](https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql.htm) using Salesforce Object Query Language (SOQL). - [View Files and Attachments](https://help.salesforce.com/s/articleView?id=platform.privacy_center_view_retained_files_attachments.htm&release=264.0.0&type=5 "View files and attachments in your Privacy Center retention store by adding a component to the associated record page."). - **[Define an External Data Source for Salesforce Connect–Privacy Center](https://help.salesforce.com/s/articleView?id=platform.privacy_center_external_data_define.htm&release=264.0.0&type=5)** Give users access to the data in your Privacy Center retention store. - **[View Records with Custom Tabs](https://help.salesforce.com/s/articleView?id=platform.privacy_center_view_custom_tabs.htm&release=264.0.0&type=5)** To view the external objects that you synced with your Privacy Center retention store, you can create custom object tabs. - **[View Records with Related Lists](https://help.salesforce.com/s/articleView?id=platform.privacy_center_view_related_lists.htm&release=264.0.0&type=5)** Use related lists to view the external objects that you synced with your Privacy Center retention store. - **[View Files and Attachments](https://help.salesforce.com/s/articleView?id=platform.privacy_center_view_retained_files_attachments.htm&release=264.0.0&type=5)** View files and attachments in your Privacy Center retention store by adding a component to the associated record page. #### See Also - [_Knowledge Article_: Use a Two-Phase Query to Access High-Volume Privacy Center Retained Data](https://help.salesforce.com/s/articleView?id=005237174&type=1&language=en_US) # Access External Data with the Salesforce Connect Adapter for SQL Connect your users to external data sources that expose their capabilities via REST APIs and offer query and DML operations using SQL. - **[Salesforce Connect SQL Adapter for Amazon Athena](https://help.salesforce.com/s/articleView?id=platform.athena_adapter_about.htm&release=264.0.0&type=5)** Provide your users access to Amazon Athena’s capability to analyze data directly in Amazon Simple Storage Service (Amazon S3) and integrate AWS-hosted data in Salesforce applications. - **[Salesforce Connect SQL Adapter for Snowflake](https://help.salesforce.com/s/articleView?id=platform.snowflake_sql_adapter_about.htm&release=264.0.0&type=5)** Query structured data stored in Snowflake and combine it with the customer 360-degree view captured in Salesforce. - **[Considerations for Salesforce Connect Adapters for SQL](https://help.salesforce.com/s/articleView?id=platform.snowflake_considerations.htm&release=264.0.0&type=5)** Understand the special behaviors, limits, and recommendations for using the Salesforce Connect adapters for SQL. # Access External Data with the Salesforce Connect Adaptor for Salesforce Archive Connect your users to data that’s stored in a Salesforce Archive data store. ### Required Editions
Available in: Developer, Enterprise, Performance, and Unlimited Editions. Requires the Salesforce Archive license.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note This content relates to Salesforce Archive. Read about Archive in the [Own from Salesforce Knowledge Base](https://support.owndata.com/s/salesforce-subtopics). Before you begin: Make sure that your archive store contains data. If your archive store is empty or not yet provisioned for your org, errors can occur with the Salesforce Connect setup process. To set up Salesforce Connect with the Salesforce Archive adaptor, complete these high-level steps. 1. [Set up your Salesforce Archive data store as an external data source](https://help.salesforce.com/s/articleView?id=platform.archive_external_data_define.htm&release=264.0.0&type=5 "Give users access to the data in your Salesforce Archive data store."). 2. Activate the objects that you want to access in your data store. 1. From the Salesforce Archive app, click the **Data Stores** tab. 2. In the dropdown menu for your data store, click **Configure Objects**. 3. In the Activated column, select the objects that you want to access. 4. Click **Save Settings**. 3. Create external objects in Salesforce to represent the data in your data store. Complete this step using one of two methods. - [Validate and sync](https://help.salesforce.com/s/articleView?id=platform.ext_data_sync_database.htm&type=5&language=en_US) your external data source (recommended). This method automatically creates external objects and maps them to the data in your archive data store. - [Define external objects manually](https://help.salesforce.com/s/articleView?id=platform.external_object_define.htm&type=5&language=en_US). Use this method only if you want to customize the object names and manually create the object fields. 4. View the external objects. To view records on the external objects, you can: - [Create custom tabs](https://help.salesforce.com/s/articleView?id=platform.archive_view_custom_tabs.htm&release=264.0.0&type=5 "To view the external objects that you synced with your Salesforce Archive data store, you can create custom object tabs."). This method displays records directly within the Salesforce UI. - [Query the external objects](https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql.htm) using Salesforce Object Query Language (SOQL). - **[Define an External Data Source for Salesforce Connect–Salesforce Archive](https://help.salesforce.com/s/articleView?id=platform.archive_external_data_define.htm&release=264.0.0&type=5)** Give users access to the data in your Salesforce Archive data store. - **[Use Custom Tabs to View Data in a Salesforce Archive Data Store](https://help.salesforce.com/s/articleView?id=platform.archive_view_custom_tabs.htm&release=264.0.0&type=5)** To view the external objects that you synced with your Salesforce Archive data store, you can create custom object tabs. # Access Lifecycle Center Lifecycle Center is enabled by default in your Salesforce org, so you don't have to turn it on. You can open it directly from the App Launcher. The first time you open it, accept the DX Tools terms and conditions. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
Not available in: Government Cloud Plus. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating Zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center is supported in orgs in the EU that aren't part of EU OZ, per standard product terms and conditions.
User Permissions Needed
To access Lifecycle Center: Customize Application OR Enable DevOps Core User Permission
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note Use only one product at a time: either Lifecycle Center or DevOps Center (Managed Package). To use Lifecycle Center, we recommend that you disable DevOps Center (Managed Package). If you use DevOps Center (Managed Package), complete additional steps to associate your development environment with Lifecycle Center. See [Switch from DevOps Center (Managed Package) to Lifecycle Center](https://help.salesforce.com/s/articleView?id=platform.devops_center_managed_package_to_next_gen.htm&release=264.0.0&type=5 "If your team recently migrated from DevOps Center (Managed Package) to Lifecycle Center, remove your existing DX Inspector connection and reconnect to Lifecycle Center so that your commits go to the right project."). 1. From the App Launcher, find and select **Lifecycle Center (DevOps Center)**. 2. The first time you open Lifecycle Center, review and accept the DX Tools terms and conditions. This unified agreement also applies to other Salesforce DX tools including Agentforce Vibes IDE, Lifecycle Center, DX Inspector, and Scale Center. If you don't want Lifecycle Center available in your org, a Lifecycle Center Admin can disable it. From Setup, in the Quick Find box, enter Lifecycle Center, select **Lifecycle Center**, and then turn it off. # Access Lifecycle Center from a Developer Edition Org Sign up for a Developer Edition (DE) org and access Lifecycle Center from the App Launcher to evaluate it in a non-production environment. See [Access Lifecycle Center](https://help.salesforce.com/s/articleView?id=platform.devops_center_enable_for_users.htm&release=264.0.0&type=5 "Lifecycle Center is enabled by default in your Salesforce org, so you don't have to turn it on. You can open it directly from the App Launcher. The first time you open it, accept the DX Tools terms and conditions."). Next, create more DE orgs as pipeline environments, and decide whether to use a sandbox or scratch org as your development environment. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note Although you can use a DE org as your permanent Hub org, we don't recommend it. DE orgs have very low limits that can affect the long-term use of Lifecycle Center. #### See Also - [Access Lifecycle Center in a Scratch Org](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_install_scratch_org.htm&release=264.0.0&type=5 "Scratch orgs offer a temporary evaluation environment with a maximum duration of 30 days.") # Access Lifecycle Center in a Scratch Org Scratch orgs offer a temporary evaluation environment with a maximum duration of 30 days. 1. Install Salesforce CLI. See [_Salesforce CLI Setup Guide_: Install Salesforce CLI](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_install_cli.htm). 2. Enable Dev Hub in an org. If you don't already have a Dev Hub org with larger scratch org allocations, you can use a Developer Edition (DE) org, which provides a maximum of 3 active scratch orgs. See [_Salesforce DX Developer Guide_: Enable Dev Hub Features in Your Org](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_setup_enable_devhub.htm). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note If you already use scratch orgs and have Salesforce CLI installed, skip to the information about the scratch org definition file. 3. Access Lifecycle Center in the Dev Hub org. You can disable Lifecycle Center after your evaluation. 4. Create an empty Salesforce DX project if you don't have an existing source control repository. See [_Salesforce DX Developer Guide_: Create a Salesforce DX Project](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_develop_create_project.htm). 5. Update the scratch org definition file, `sfdx-project.json`, to enable Lifecycle Center. ``` { "orgName": "Acme", "edition": "Enterprise", "features": ["DevOpsCenter"], "settings": { "devHubSettings": { "enableALMDevopsCorePref": true } } } ``` If creating a scratch org based on an org shape, you still must include the Lifecycle Center feature and setting in the scratch org definition file for legal reasons as part of the Lifecycle Center terms and conditions. ``` { "orgName": "Acme", "sourceOrg": "00DB1230400Ifx5", "features": ["DevOpsCenter"], "settings": { "devHubSettings": { "enableALMDevopsCorePref": true } } } ``` 6. Log in to the Dev Hub org using Salesforce CLI. In this example, the Dev Hub org is given the alias `MyDevHub`. ``` sf org login web -a MyDevHub ``` 7. Create a scratch org using the updated definition file. In this example, the scratch org is created with the alias `devops-center-scratch`, with a duration of 30 days, using the Dev Hub org with the alias `MyDevHub`. ``` sf org create scratch -a devops-center-scratch -f config/project-scratch-def.json -v MyDevHub -d 30 ``` 8. Enable Lifecycle Center in the new scratch org, then complete your configuration. #### See Also - [_Salesforce DX Developer Guide_: Build Your Own Scratch Org Definition File](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_scratch_orgs_def_file.htm) - [_Salesforce CLI Reference Guide_: sf org create scratch](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_org_commands_unified.htm#cli_reference_org_create_scratch_unified) - [Access Lifecycle Center from a Developer Edition Org](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_install_de_org.htm&release=264.0.0&type=5 "Sign up for a Developer Edition (DE) org and access Lifecycle Center from the App Launcher to evaluate it in a non-production environment.") - [Set Up Lifecycle Center](https://help.salesforce.com/s/articleView?id=platform.next_gen_devops_center_setup.htm&release=264.0.0&type=5 "Configure Lifecycle Center (formerly next-generation DevOps Center) to manage your release management lifecycle. Review the prerequisites, access the feature, manage users, and set up your projects and pipelines.") # Access Lifecycle Center MCP Tools Set up Salesforce DX MCP Server for use with Agentforce Vibes IDE, integrated with Agentforce Vibes Extension as the MCP client. Use prompts in Agentforce, a part of Agentforce Vibes Extension, to do common DevOps tasks, like managing work items, and resolving merge conflicts. Although this example uses Agentforce Vibes IDE and Agentforce, you can configure other clients, such as Cursor or Claude Desktop. To use Visual Studio Code (VS Code) as the MCP client, see [Quick Start Using the VS Code With Copilot MCP Client](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_mcp_get_started.htm). Before you use the Lifecycle Center MCP tools, review the [Salesforce DX MCP server prerequisites](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_mcp_get_started.htm) and make sure that you have: - An org with Lifecycle Center installed and configured - A Lifecycle Center project connected to a version control system and a pipeline - An IDE, such as Agentforce Vibes IDE or Visual Studio Code (VS Code), that your Salesforce admin has accepted the Terms and Conditions for - A configured IDE project. To learn how, see [Create Projects](https://developer.salesforce.com/docs/platform/code-builder/guide/codebuilder-create-projects.html). - An IDE installed in the same Salesforce org where your Lifecycle Center is installed. Connect and authenticate your IDE to this org. - A cloned project repository open in your IDE’s workspace - An MCP client, such as the Agentforce Vibes Extension. For setup instructions, see [Set Up Agentforce Vibes Extension](https://developer.salesforce.com/docs/platform/einstein-for-devs/guide/einstein-setup.html). Salesforce DX MCP Server is preconfigured in Agentforce Vibes Extension. Open your IDE and turn on Salesforce DX MCP Server in Agentforce Vibes Extension. See [Enable Salesforce DX MCP Server](https://developer.salesforce.com/docs/platform/einstein-for-devs/guide/devagent-mcp.html#enable-salesforce-dx-mcp-server).  You interact with the server by entering natural language prompts in Agentforce. Agentforce Vibes is available from the Activity Bar and includes a chat window where you enter your prompts. For examples of prompts that you can use, see [Resolve Merge Conflicts with Lifecycle Center MCP Tools](https://help.salesforce.com/s/articleView?id=platform.devops_center_mcp_resolve_merge_conflicts.htm&release=264.0.0&type=5 "Detect, analyze, and resolve merge conflicts directly within your workflow. You can start this process using the Resolve with Agentforce option in the Lifecycle Center UI, which opens the Agentforce Vibes IDE with the Agentforce Vibes Extension and adds the conflict details to your prompt."). When you enter a prompt, Salesforce DX MCP Server determines the appropriate Lifecycle Center MCP tool to run. It then shows it to you along with other information. You can click **Continue** to run the tool and see the results of your request. #### See Also - [Install and Configure the Salesforce DX MCP Server (Beta)](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_mcp_server.htm) - [Agentforce Vibes IDE: Supported Editions](https://developer.salesforce.com/docs/platform/code-builder/guide/codebuilder-supported-editions.html) - [Salesforce Extensions for Visual Studio Code](https://developer.salesforce.com/docs/platform/sfvscode-extensions/guide/vscode-overview.html) # Access Policy Controls Policy controls is your central workspace for reviewing and managing the governance policies and rules active in your org. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To manage policies: Lifecycle Center Admin
To view policies: Lifecycle Center User
Make sure Lifecycle Center Governance is enabled. See [Enable Lifecycle Center Governance](https://help.salesforce.com/s/articleView?id=platform.devops_center_governance_enable.htm&release=264.0.0&type=5 "Enable Lifecycle Center Governance to unlock policy controls in your org and start enforcing policies across coding agents."). 1. In the left navigation, under **Governance**, click **Policies**. The Policy page opens, showing all policies organized by category with their current status. 2. Select the dropdown to activate or deactivate a policy. 3. Click the policy name to view policy rules and enforcements. You can now manage policies in Lifecycle Center. Agentforce Vibes coding agents receive these policies automatically. To view active policies in Agentforce Vibes, see [View active policies in Agentforce Vibes](https://developer.salesforce.com/docs/platform/agentforcevibes/guide/afv-ai-governance.html). # Access Rules When Packaging Custom Metadata Types and Records Understand the access rules when you develop a managed package that contains or reads custom metadata types and records. ### Required Editions
Available in: Salesforce Classic and Lightning Experience

Protected custom metadata types in managed packages are available in: Developer Edition and scratch orgs

Package uploads and installs are available in Group, Enterprise, Performance, Unlimited, and Developer Editions

Create, edit, and delete custom metadata type records from installed packages Group and Professional Editions

When you create a custom metadata type, the package type and the Visibility field determine whether the custom metadata type is public or private. You can only create protected custom metadata types in a developer or scratch org that are then deployed in a managed package. When a custom metadata type is package-level protected using 2GP, records are only accessible from code within that managed package. Also the subscriber, and other packages, even within the same namespace, can’t access the custom metadata type or its records. A 2GP can only be created through the Salesforce DX command-line interface (SFDX CLI). To enable package-level protection for a custom metadata type, set the Visibility field to PackageProtected declaratively, or using metadata API. When a custom metadata type is namespace protected, code that’s in the same namespace as the custom metadata types can read the records. Code that’s in a namespace that doesn’t contain either the type or the protected record can’t read the protected records. To set the accessibility of a package as namespace protected, set the Visibility field to Protected declaratively, or using metadata API. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_warning.png) Warning Protected custom metadata types behave like public custom metadata types when they’re outside of a managed package. Public custom metadata types are readable for all profiles, including the guest user. Don’t store secrets, personally identifying information, or any private data in these records. Use protected custom metadata types only in managed packages. Outside of a managed package, use named credentials or encrypted custom fields to store secrets like OAuth tokens, passwords, and other confidential material. When a type is public, you can’t convert it to protected. The subscriber can’t create records of a protected type. If you change a type from protected to public, its protected records remain protected, and all other records become public. If you use Setup to create a record on a protected type, **Protected Component** is selected by default. After a managed package is released, subsequent versions of the package can be changed to a less restrictive protection level. For example, a package protected custom metadata type can be re-released as namespace protected. However, you can’t change the protection level to be more restrictive after it has been released in a managed package.
Entity Accessibility
Package Creator Org
  • Admins in the org developing the package can create a custom metadata record in their own package, regardless of the location of the record’s corresponding type. If an admin adds the record to the package, the record is deployed to the subscriber org.
  • Package creator orgs can delete protected managed released records in the org in which they were created, even if the corresponding type was created in a different org. When subscribers upgrade, the records are deleted from the subscriber org.
Metadata API Callout Metadata API callouts behave as if they’re executed by the subscriber org code. As a result, someone can use a callout to view or change all records created by the subscriber org. However, the callout is used only to view or change the public records of installed managed packages. Configure a remote site setting to the subscriber’s Metadata API endpoint to use the Metadata API in the subscriber’s org.
Metadata in Apex Metadata in Apex callouts behave as if they’re executed by subscriber org code. As a result, someone can use a callout to view or change all records created by the subscriber org. The callout can be used to view or change the public and protected records of installed managed packages.
Record Creator
  • When you create a protected custom metadata record in your org, only your code, code from unmanaged packages, and code from the same namespace can access the record.
  • Record creators can create an unpackaged record using a Metadata API callout, even from managed code. Managed-installed code needs a remote site setting configured to execute all callouts. However, creators and subscribers can’t create a custom metadata record in an installed managed package using the Metadata API.
  • If a field of a custom metadata type is upgradeable, the record creator can change the record’s field value in the creator’s own org. Then, the record creator can upload a new version of the package, even if a different org created the type. If the record is in a managed package, these changes are propagated to the subscriber org when the org upgrades to a new version.
  • If a field is subscriber controlled, subscribers can also change the value in their own org. If the record is in a managed package, the new field value is propagated only to new package subscribers. Existing subscribers that upgrade to the latest version of the package don’t get the new field value.
Subscriber Org If a field is subscriber controlled, subscribers can also change the value in their own org. If the record is in a managed package, the new field value is propagated only to Subscriber Org new package subscribers. Existing subscribers that upgrade to the latest version of the package don’t get the new field value.
SQL Queries in Apex

You can use SOQL queries in your Apex code to view a custom metadata record only if at least one of the following conditions is true.

  • The record is public.
  • Your Apex code is in the same package as the custom metadata type.
  • Your Apex code is in the same package as the record.
#### See Also - [Package Custom Metadata Types and Records](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_package_install.htm&release=264.0.0&type=5 "You can package custom metadata types and records in unmanaged packages, managed packages, or managed package extensions. Your packages can then be installed in Professional, Developer, Enterprise, Performance, Unlimited, and Database.com Edition organizations.") - [_Metadata API Developer Guide:_ CustomObject](https://https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_intro.htm) - [_Second-Generation Managed Packaging Developer Guide:_ Namespaces](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_dev2gp_plan_namespaces.htm) # Access to Own from Salesforce Products Gain immediate access to Own from Salesforce products. ## Backup & Recover If you're a new customer, contact Salesforce using the form at [https://www.salesforce.com/company/contact-us/](https://www.salesforce.com/company/contact-us/). For the Product Interest, select Salesforce Platform. Someone from Salesforce will contact you to set up your account. After your account is set up, you'll receive a welcome email from Own that prompts you to set your password. If you don't see an email, look in your spam folder. If you find it there, add @owndata.com to your email allowlist. If you have a Data Platform account, go to the Login. ## Archive To install or upgrade to the version of Archive listed here, append the provided package link suffix to your Salesforce Org URL. Package Version: 24.42 ``` packaging/installPackage.apexp?p0=04tal000007E5F9 ``` Example: If your domain is `mydomainname` and the package ID is `04tal000007E5F9` your package URL is: ``` https://mydomainname.lightning.force.com/packaging/installPackage.apexp?p0=04tal000007E5F9 ``` If you have any questions or concerns about your Own from Salesforce Platform account, contact your Salesforce account admin. ## Secure Package Version 27.0 ``` packaging/installPackage.apexp?p0=04ta500000E4Vht ``` # Accessing Own through the Own API Own provides API access through all pricing plans with the purpose of letting you manipulate and export some of your jobs and data. See [Own API](https://developer.salesforce.com/docs/platform/own-api/references/own-api-rest) for guidelines to the API guide along with sample requests and responses for: - Service - Backup - Objects - Job - GDPR - Event - Sandbox Seeding Common use cases of API access include: - GDPR request relay from Salesforce: automating the General Data Protection Regulation process end to end from Salesforce to include snapshots as well. - Audit log monitoring: Integrate the events audit log to your central monitoring system for important or suspicious behavior. - Export backup to SQL: Automate backups to a 3rd party database for further processing (such as BI or BA). - Execute Sandbox Seeding jobs: Kickoff jobs directly from the API. ## Managing an API Token for your Account Use of API Tokens, based on OAuth 2.0 authentication protocol, as a means to access Own from Salesforce APIs. Your API token needs to be treated as securely as any other type of password. Make sure to store this token in a safe and secure location. ## Using API Token Update your API scripts with our new domain. Tokens will automatically expire and be deleted after 180 days (regardless if the token was in use or not). Once expired and deleted, the token will not be available to the user, and the user account will not have access to our APIs. Therefore, API tokens must be revoked and regenerated, before they expire. Only one API token can exist, for any user, at any one time. After generating a new API token, insert the new access key generated, into the script in the API. See the API documentation. API Tokens are cross-regional (one API Token for all regions). The user’s access is determined by his role and the Business Units he belongs to. If you need to disable the API Token option (to limit access by users), contact support. - **[Manage API Tokens](https://help.salesforce.com/s/articleView?id=platform.platform_o_manage_api_tokens.htm&release=264.0.0&type=5)** Use API Tokens, based on OAuth 2.0 authentication protocol, as a means to access Own from Salesforce APIs. Treat API tokens as securely as any other type of password. Make sure to store this token in a safe and secure location. - **[Securing Your API Token](https://help.salesforce.com/s/articleView?id=platform.platform_o_secure_api_token.htm&release=264.0.0&type=5)** An API token is a refresh token that is used to generate an authentication token in order to sign in to the Own Data Platform via API, in order to perform various operations within the Own account. # Account Relationships and Account Relationship Data Sharing Rules Account relationships and account relationship data sharing rules give you granular control over how account information is shared. They allow you to share object records related to an account, such as cases, opportunities, and contacts. The shared records don’t have to be owned by a user of that account, they just have to be associated with it. You can also determine the access level granted, such as read or write. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
Applies to: LWR, Aura, and Visualforce sites
Account relationship data sharing rules allow you to define the criteria that are used to share object records with an external account. The data sharing rule defines the relationship type, the information that is shared, and the record access given to the account that is gaining access. Once you’ve created your data sharing rule, you can use it to share data with an external account by creating an account relationship. The account relationship comprises the account that is sharing information, the account that is accessing those records, and the type of relationship they have. Go to **Digital Experiences** | **Settings** and select **Enable Account Relationships** under **Account Relationship Settings**. Learn more about account relationships in this video. - **[Configure Account Relationship Data Sharing Rules](https://help.salesforce.com/s/articleView?id=platform.networks_configure_account_relationship_data_sharing_rules.htm&release=264.0.0&type=5)** After account relationships are enabled, set up an account relationship data sharing rule. This rule defines the relationship type, the type of information shared, and the record access granted. - **[Create an Account Relationship](https://help.salesforce.com/s/articleView?id=platform.networks_configure_account_relationship.htm&release=264.0.0&type=5)** When you’ve created an account relationship data sharing rule, assign it to an account relationship to begin sharing. - **[View Shared Account Records in Your Experience Cloud Site](https://help.salesforce.com/s/articleView?id=platform.networks_view_account_relationship_data.htm&release=264.0.0&type=5)** Once an account relationship data sharing rule is in effect, the shared information filters into the object list view of the account gaining access (Account From). - **[Create Reports for Account Relationships](https://help.salesforce.com/s/articleView?id=platform.networks_account_relationship_report.htm&release=264.0.0&type=5)** Create a custom report using the Account Relationship object to track your account relationships. Once you’ve created the report, share your information in a dashboard. - **[Considerations When Using Account Relationships and Data Sharing Rules](https://help.salesforce.com/s/articleView?id=platform.networks_account_relationship_considerations.htm&release=264.0.0&type=5)** There are a few things to keep in mind when you use account relationships or Account Relationship Data Sharing rules. - **[Best Practices for Account Relationships](https://help.salesforce.com/s/articleView?id=platform.networks_account_relationships_best_practices.htm&release=264.0.0&type=5)** Looking for best practices and use cases to help you get the most out of your account relationships and account relationship sharing rules? You’ve come to the right place. # Acronis Cyber Protect Connector Connect to an external Acronis Cyber Protect account. Perform tasks like managing agent updates or creating tenants. Use Acronis Cyber Protect as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Bearer authentication. Bearer authentication sends a header named Authorization with a value of Bearer and a token with every request. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Token

Enter the bearer token to use to authenticate the requests. For information about how to create the bearer token, refer to the external system's documentation.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Acronis Cyber Protect actions are available in Flow Builder. - Create Tenant - Delete Agent Update Settings Collection - Fetch Agent Update Reference By Attributes - Fetch Agent Update Settings - Fetch Agents - Run Agent Update Now ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Action Button Screen Input Component Use the Action Button component so the running user can trigger a screen action with the click of a button on a screen. The screen action runs an active autolaunched flow, and the results of the autolaunched flow can be shown on the same screen as the button. Using this component means that you need fewer screens so users can complete screen flows more quickly. ### Required Editions
View supported editions.
For example, you can make it possible for users to select an account record in a Lookup component, click a button to retrieve the contact records associated with the account record, and then display the contact records in a Data Table component on the same screen. ![A screen flow at runtime shoing a Lookup component, and Action Button omponent, and a Data Table component](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/action_button_ga_runtime.png) ## Configure the Action Button Name
Attribute Description
API Name

The API name of the component.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Label If you select Use Label as the table title, the user-friendly text that appears above the component.
Disabled

If set to true, the user can’t modify the value. The default value is false.

This attribute accepts a resource with a Boolean value.

## Configure the Action
Attribute Description
Action The screen action that launches the autolaunched flow. This is the flow that runs when the user clicks the button rendered by the Action Button component. The autolaunched flow must be active.
Label The user-friendly name for the action associated with the component. This value can be different than the label of the flow that you select as the action.
API Name

The API name for the action associated with the component. This value can be different than the API name of the flow that you select as the action.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Set Input Values Specify the value of each input field required by the action associated with the component. For example, if you select an autolaunched flow that requires an Account ID as an input, provide the Account ID. Variables that are available for input in the autolaunched flow appear in this area.
View Output Values

View the outputs created by the action. To reference an output elsewhere in the flow, first reference the Results field, for example, actionButtonApiName. Results.output. Variables that are available for output in the autolaunched flow appear in this area. Output values include:

  • ErrorMessage—Description of an error that occurred while running the associated autolaunched flow.
  • IsSuccess—If true, indicates that the associated autolaunched flow ran without errors
  • Action.Results.Flow__InterviewGuid—Unique identifier of the flow interview
  • Action.Results.Flow__InterviewStatus—The status of the flow interview
  • InProgress—If true, indicates that the screen action is running.
## Set the Component Visibility Specify the logic that determines when the flow displays the component.
Option Description
When to Display Component

Configure when the component is displayed by using conditional logic.

You can set the components to:

Always
Always display the component.
When all conditions are met (AND)
Display the component when all of the conditions that you define are met. Define at least one condition.
When any condition is met (OR)
Display the component when at least one of the conditions that you define is met. Define at least one condition.
When custom conditional logic is met
Display the component when the condition logic that you define is met. Define at least one condition and specify condition logic.
## Specify the Behavior of Values on Revisited Screens Specify what this component does when a user enters a value, navigates to a previous screen, and then returns to the screen with this component.
Option Description
Use values from when the user last visited this screen The component retains the values that the user specified and doesn’t update the values to reflect changes made on previous screens.
Refresh inputs to incorporate changes elsewhere in the flow

The component updates the user-specified values to reflect changes made on previous screens.

If you pause and then resume the flow, the flow retains user-specified values only in Checkbox, Checkbox Group, Currency, Long Text Area, Multi-Select Picklist, Number, Password, Picklist, Radio Buttons, and Text components.

## Specify Another Component’s Behavior with the In Progress Output Attribute When a user clicks an action button, the In Progress attribute for the associated screen action is set to `true`. When the action completes, the In Progress attribute is set back to `false`. Use the In Progress attribute to specify another component’s behavior. For example, use it to disable a screen component while the action is running. Set the value of the Disabled field on the component to the In Progress attribute. When In Progress is `true` the Disabled field is also set to `true`. When the action completes and In Progress is set to `false`, the disabled field is also set to false. ## Considerations - If a user runs a flow with an Action Button component in a web browser, the outputs of the action associated with the component are available to the browser. Don’t share sensitive information as the output of an Action Button component. - Autolaunched flows that include Wait elements or subflows with Wait elements aren’t supported as Action Button actions because the flow won’t resume after a Wait element. - Action Buttons aren’t supported in Repeater components. - Launching a flow with an asynchronous path isn’t supported. - If a flow launched from the action button doesn't have fault paths, and an error occurs, a generic error message shows under the action button. To show a helpful error message to users instead, add fault paths to the launched flow. On each fault path, set an output variable to `{!$Flow.FaultMessage}`. Then, on the flow screen with the action button, add a Display Text component that's conditionally hidden and contains a helpful error message along with the fault message variable. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Even if a Display Text component content contains an error message, screen readers don’t announce the content as an error message. - If an input or output variable in the screen action’s autolaunched flow is a record variable, and you change a field name on the object, the new field name isn’t reflected when you refresh the inputs and outputs. - If an input or output variable in the screen action’s autolaunched flow is an Apex variable, and you change the structure of the Apex type, those changes aren't reflected when you refresh the inputs and outputs. #### See Also - [Data Safety When Running Screen and Autolaunched Flows in System Context](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_context_data_safety_system_context.htm&release=264.0.0&type=5 "Screen flows and autolaunched flows without triggers can expose more data than intended. This potential issue primarily affects Experience Cloud sites accessed by external users. Configure proper user permissions for field-level and record-level security instead of running flows in system context. When system context is necessary, use only the minimum fields and records required.") - [_Video_: Action Button in Salesforce Flow](https://www.youtube.com/watch?v=GS5GAFHpVGk) - [Get or Process Data Within a Screen Element with Screen Actions](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screen_flow_screen_actions.htm&release=264.0.0&type=5 "Screen actions make your screen elements dynamic by using an autolaunched flow to retrieve or process data. Screen actions reduce the need for you to add elements between screens and reduce the need for users to switch between screens to observe data updates. Because users click though fewer screens, they can finish a screen flow faster. Also, users benefit from screens that react to their interactions, increasing their engagement.") # Action Element Launch an action that's available in Salesforce by adding an Action element to your flow. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Flow Builder remembers your expand and collapse preferences for this element on the canvas. Your view is stored locally in your browser and persists between sessions on the same browser; this setting is specific to you and does not affect the view of other users. However, if you clear your browser's cookies and other site data, or switch to a different browser, your preferences reset to the default expanded view. Clearing cached images or files doesn't affect this setting. ## Usage [Add an Action element](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") to your flow. Then, in the Action field, search for and select the action you want to perform or filter by category or type of action. Flow Builder shows descriptions for action inputs and outputs. See [Provided Flow Core Actions](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_list.htm&release=264.0.0&type=5 "Perform an action outside of the flow. Choose from Salesforce-provided actions, like Submit for Approval or Send Email, or from your org’s quick actions and local actions. To add one of these actions to your flow, add an Action element. Then, in the Action field, search for the appropriate action."). If something goes wrong, go back to select a different action. ## Set Input Values for the Selected Action To set the input values for the referenced action, use values from earlier in the flow. Depending on the action and input type, you can reference resources, enter literals, use Formula Mode, use Transform Mode, or use an input configurator. Assign values for all required inputs. To assign values to optional inputs, select **Include** or **Include with Specified Value** for the toggle associated with the input. ## Store Output Values To use the referenced action's outputs, either use automatic output or assign manual variables. You can’t store output values using both automatic output and manually assigned variables. To use automatic output to reference the action's outputs later in the flow, select the desired output from the resource: Outputs from ElementName. To manually assign the referenced action's outputs to variables, expand **Advanced**, and assign variables to the needed outputs. To return the referenced action's outputs from a flow, manually assign variables defined with **Available for output** selected. #### See Also - [Flow Elements](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements.htm&release=264.0.0&type=5 "An element represents an action that the flow can run. Examples include reading or writing Salesforce data, displaying information and collecting data from flow users, runnning business logic, or manipulating data.") - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") - [Provided Flow Core Actions](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_list.htm&release=264.0.0&type=5 "Perform an action outside of the flow. Choose from Salesforce-provided actions, like Submit for Approval or Send Email, or from your org’s quick actions and local actions. To add one of these actions to your flow, add an Action element. Then, in the Action field, search for the appropriate action.") - [_Trailhead_: Data and Actions in Flows](https://trailhead.salesforce.com/content/learn/modules/data-and-actions-in-flows) # Action Layout Editor Just as object record pages have page layouts that can be customized, actions have action layouts that can be customized. When you create an action, Salesforce populates its layout with a default set of fields. You can add, remove, or reorder fields on the action layout to present only the essential items your users need when they use the action. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions
For example, a Post action needs just one large text area for user input. By contrast, an object-related Create action must include multiple fields; otherwise, Salesforce can’t create the record. ## Find the Action Layout Editor To view and edit the layouts for global actions, from Setup, in the Quick Find box, enter Actions, and then select **Global Actions**. Next to the action’s name, click **Layout**. To view and edit the layouts for object-specific actions, from the object management settings for the object whose action layout you want to see, go to Buttons, Links, and Actions. ## Fields in the Action Layout Editor The upper part of the action layout editor is the palette, and below the palette is the action layout. The palette contains fields from the action’s target object that you can add to the action layout, except for these unsupported field types. - Record type fields - Read-only field types such as roll-up summary, formula, and auto-number fields - Read-only system fields such as Created By or Last Modified By - When you create a custom action and the action type is Update a Record, you can't add the Owner field to the action layout for most objects. The exception is Case records. You can add the Case Owner field to your action layout when you create a custom action to update a Case record. The first time that you view the layout for an action you’ve created, certain fields are prepopulated. - Target object default fields - Standard required fields - Any custom universally required fields Default actions (available in organizations created after Winter ‘14) have [predefined sets of fields](https://help.salesforce.com/s/articleView?id=platform.default_actions_fields.htm&release=264.0.0&type=5 "Each default action includes a pre-defined set of fields, which lets you make actions available to your users without spending much time on setup."). ## Inactive Fields Fields that are already on the action layout still appear on the palette but are inactive. When you select an inactive field on the palette, Salesforce highlights the field on the action layout. ## Field Type Conversion If you convert a field’s type from one that is supported for actions to a type that isn’t supported, Salesforce removes the field from the action layout. If you convert the field back to a supported type without changing the action layout, Salesforce automatically adds the field back to the layout. If you edit the layout, and then convert the field back to a supported type, add the field back to the layout manually. ## Layouts Used for Log a Call Actions A Log a Call action takes the active task page layout except under these conditions. - If your organization has a custom Log a Call action for a specific object, the custom action takes the custom action layout defined for it. - If your organization has a custom Log a Call global action, the action takes the custom layout defined for it, unless you also have a custom Log a Call action for an object. A custom object-specific action overrides a custom global action. To show the simpler New Task form to Salesforce mobile app users, enable the form in Activity Settings and ensure that the layout used includes a subject field. ## Layout Auditing Salesforce tracks action layout customization in the setup audit trail history. - **[Action Layout Editor Considerations](https://help.salesforce.com/s/articleView?id=platform.action_layout_editor_considerations.htm&release=264.0.0&type=5)** When you create an action, Salesforce populates its layout with a default set of fields. You can add, remove, or reorder fields on the action layout to present only the essential items your users need when they use the action. #### See Also - [Quick Actions](https://help.salesforce.com/s/articleView?id=platform.actions_overview.htm&release=264.0.0&type=5 "Quick actions enable users to do more in Salesforce and in the Salesforce mobile app. With custom quick actions, you can make your users’ navigation and workflow as smooth as possible by giving them convenient access to information that’s most important. For example, you can let users create or update records and log calls directly in their Chatter feed or from their mobile device.") # Action Layout Editor Considerations When you create an action, Salesforce populates its layout with a default set of fields. You can add, remove, or reorder fields on the action layout to present only the essential items your users need when they use the action. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions
- There’s no hard limit to the number of fields you can add to an action layout. However, for optimum usability, we recommend a maximum of 8 fields. Adding more than 20 fields can severely impact user efficiency. To reduce the number of fields in your layout, you can [create predefined values](https://help.salesforce.com/s/articleView?id=platform.predefined_field_values.htm&release=264.0.0&type=5 "When you create actions, use predefined field values to set a value for a field. Predefined values can help ensure consistency and make it faster and easier for users to create records.") for the required fields, and then remove those fields from your layout. You can set predefined field values from the action detail page. - By default, the Call productivity action in the Salesforce mobile app action bar uses the global Log A Call action layout. If you create one Log a Call action on an object, users see that custom Log a Call action’s layout when they tap **Call** from the action bar for that object. If you create more than one Log a Call action for the same object, the Call action on that object doesn’t know which layout to use, so it uses the global Log a Call action layout. - Mobile smart actions are populated with all your org’s required fields on the relevant object, regardless of how many fields there are. For example, the New Case action in the mobile smart action bundle includes all required case fields. You can’t edit the fields on mobile smart actions. The fields that appear change only if you change which fields on an object are required. - You can remove a required field from the action layout, but make sure that the field has a predefined value. Otherwise, users can’t create records. - Rich text area fields are supported only when you add them to one-column layouts, or as fields that span both columns in two-column layouts. If you add a rich text area field to only one column in a two-column layout, it appears as a plain text area, because there’s not enough space to display the full rich text editor. - When you create a custom action and the action type is Update a Record, you can't add the Owner field to the action layout for most objects. The exception is Case records. You can add the Case Owner field to your action layout when you create a custom action to update a Case record. - When an Activities component is placed in a sidebar region on a Lightning page, global action fields always appear in a single column, even if the global action has a two-column layout. # Action Limits and Limitations Actions can work differently than you expect in certain situations and for different objects. Keep these limits and limitations in mind when working with actions. ### Required Editions
Available in: Essentials, Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions
- Quick actions aren’t available in Aura Experience Builder sites. - You can display up to 10 actions in Lightning view. - Custom images used for action icons must be less than 1 MB in size. - Custom actions can be defined for person accounts but with these exceptions. - Person account-specific fields, including Email and Mobile, aren’t available in action layouts when using object-specific custom actions to update accounts. - To set up object-specific custom quick actions that create person account records, define a custom lookup field for Account on the Account or Contact object. Global custom quick actions can be used without defining this field. - Actions that create business account records from a person account detail page must be global, not object-specific. - Actions associated with objects that aren’t supported in Lightning Experience don’t appear in the Global Actions menu. Also, the Global Actions menu doesn’t support standard Chatter actions. - Mobile smart actions don’t appear in the full Salesforce site, regardless of which page layouts you add them to. They appear only in the Salesforce mobile app. - The Chatter page in Lightning Experience supports only the standard Chatter actions Post, Poll, and Question, and if you have Groups, the Announcement action. - Quick actions don’t inherit the app’s branding on mobile. - The palette in the action layout editor doesn’t support: - Record type fields - Read-only field types such as roll-up summary, formula, and auto-number fields - Read-only system fields such as Created By or Last Modified By - When you create a custom action and the action type is Update a Record, you can't add the Owner field to the action layout for most objects. The exception is Case records. You can add the Case Owner field to your action layout when you create a custom action to update a Case record. - Actions on the user profile page come from the Quick Actions in the Salesforce Classic Publisher section of the global publisher layout. Only standard Chatter actions appear on the user profile page, regardless of which actions are assigned to the User Page Layout or the global publisher layout. - Actions on reports come from the Quick Actions in the Salesforce Classic Publisher section of the global publisher layout. Only standard Chatter actions appear on reports, regardless of which other actions are assigned to the global publisher layout. - Chatter groups with customers don’t support global create, log a call, or custom actions and display only standard Chatter actions, such as Post, File, Link, and Poll. - External objects support quick actions, except when the actions involve features or functionality that are incompatible with external objects. For example: - Formulas can’t reference fields on external objects, so you can’t reference an external object field to set a predefined field value for a quick action. - Log a Call actions create tasks, which aren’t available for external objects. - When you create an object-specific action, you can choose as a target object an event, a task, or any object that has a parent-child or lookup relationship to the host object. You can’t choose Quote as a target object from Opportunity. But to create quotes from an opportunity you can go to the opportunity’s Quotes related list and click **New**. - The Account Contact Relationship object supports custom actions, but with limitations. - Custom actions must be specific to the Account Contact Relationship object. Global actions aren’t supported. - You can create actions that update records or invoke Lightning components or Visualforce pages. But you can’t create actions that create records. - You can’t create actions that send emails or log calls because you can't associate activities to the Account Contact Relationship object. - You can’t override the default actions on the Account Contact Relationship object. - Only custom actions that are created on the Contact object can use the Account Contact Relationship object as a target object. - Chatter standard actions aren’t supported because the Account Contact Relationship object doesn’t have a Chatter feed. # Action Link Templates Create action link templates in Setup so that you can instantiate action link groups with common properties from Connect REST API or Apex. You can package templates and distribute them to other Salesforce orgs. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: all editions except Personal and Starter
An action link is a button on a feed element. Clicking an action link can take a user to a Web page, initiate a file download, or invoke an API call to Salesforce or to an external server. An action link includes a URL and an HTTP method, and can include a request body and header information, such as an OAuth token for authentication. Use action links to integrate Salesforce and third-party services into the feed so that users can drive productivity and accelerate innovation. In this example, **Approve** and **Reject** are action links that make API calls to the REST API of a fictional travel website to approve or reject an itinerary. When Pam created the itinerary on the travel website, the travel website made a Connect REST API request to post the feed item with the action links to Pam’s manager Kevin so that he can approve or reject the itinerary. ![Action link approve and reject example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/actionlinks_approve.png) ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important Action links are a developer feature. Although you create action link templates in Setup, you must use Apex or Connect REST API to generate action links from templates and add them to feed elements. - **[Design Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_design.htm&release=264.0.0&type=5)** Before you create a template, consider which values you want to set in the template and which values you want to set with binding variables when you instantiate action link groups from the template. - **[Create Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_create.htm&release=264.0.0&type=5)** Create action link templates in Setup so that you can instantiate action link groups with common properties from Connect REST API or Apex. You can package templates and distribute them to other Salesforce orgs. - **[Edit Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_edit.htm&release=264.0.0&type=5)** You can edit all fields on an unpublished action link group template and on its associated action link templates. - **[Delete Action Link Group Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_delete.htm&release=264.0.0&type=5)** When you delete an action link group template, you delete its associated action link templates and all action link groups that have been instantiated from the templates. Deleted action link groups disappear from any feed elements they've been associated with. - **[Package Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_package.htm&release=264.0.0&type=5)** Package action link templates to distribute them to other Salesforce organizations. #### See Also - [Connect REST API Developer Guide: Working with Action Links](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/features_action_links.htm) - [Apex Developer Guide: Working with Action Links](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/connectapi_features_action_links.htm) - [_Connect REST API Developer Guide_: Define Action Links in a Template and Post with a Feed Element](https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/quickreference_define_post_action_link_template.htm) - [_Apex Developer Guide_: Define an Action Link in a Template and Post with a Feed Element](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/connectapi_examples_define_post_action_link_template.htm) # Action Overrides in Aura Experience Builder Sites Personalize your site users’ experience in Aura Experience Builder sites by adding a custom Lightning component to replace standard forms when users click the New or Edit button. Use action overrides when your site and portal users require a more customized user experience than the Salesforce standard page provides. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
Applies to: Aura sites
User Permissions Needed
To override standard buttons: Customize Application
To override actions in an Aura Experience Builder site: 1. From Setup, in the Quick Find box, enter Digital Experiences, and then select **All Sites**. 2. Next to the site that you want to override, click **Workspaces**. 3. Click **Administration**. 4. In the Preferences section, under Experience Management, select **Override standard actions with the Lightning component**. The action that you choose in Lightning Experience is the same action that you use to override actions in Experience Builder sites. 5. Save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Action overrides aren’t available in Visualforce sites or Lightning Web Runtime (LWR) sites. # Action Overrides in Managed Packages In a managed package, overrides specified by the package developer are included as default overrides. The package subscriber can specify local overrides for each user experience to use instead of the package default overrides. Package default overrides impact the options and behaviors of local overrides. ### Required Editions
Available in: Salesforce Classic and Lightning Experience

Available in: Enterprise, Performance, Unlimited, and Developer Editions

Visualforce overrides also available in: Contact Manager, Group, and Professional Editions

Record types available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions

User Permissions Needed
To override standard buttons: Customize Application
Several rules determine local override behaviors in a managed package. - For each user experience—When a package subscriber specifies a local override, the local override takes precedence over the package default override. If no local override is specified for a user experience, the package default override for that user experience is used. - For Lightning Experience and the Salesforce mobile app—If no local override is specified and no package default override is specified, the local override inherits from Salesforce Classic. Either the Salesforce Classic local override (if it’s specified) is used, or the Salesforce Classic package default override (if no Salesforce Classic local override is specified) is used. - A package developer can remove or replace the default overrides when updating a managed package. The new default overrides are available for package subscribers when they install the updated package. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example The Override Properties panel for a managed package identifies the override defaults and the local override options for each user experience. The available local override options vary based on the override defaults. - **No override (use default)**—Uses either the override default Visualforce page or the Salesforce standard page if no Visualforce page is specified. - **Standard page**—Available for package subscribers only if the package default override for the given user experience is a Visualforce page or Lightning component. - **Lightning component**—The specified component takes precedence over the package default override for the given user experience. - **Use the package default override**—Available for package subscribers only if the package default override for the given user experience is a Lightning component. - **Use the Salesforce Classic override**—Available for package subscribers only if the package default override for the given user experience is the Salesforce standard page. Option inherits from the local Salesforce Classic override. ![Override panel for managed package](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/220_links_managed_package_override.png) # Action Types There are several categories of actions, such as standard Chatter actions, default actions, mobile smart actions, custom actions, and productivity actions. The types of actions that you see depend on the age and configuration of your org. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Quick actions available in: Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions

Custom canvas actions available in: Professional (with Canvas enabled), Enterprise, Performance, Unlimited, and Developer Editions

Which actions are available in the full Salesforce site depends on whether your org has Chatter, feed tracking, and actions in the publisher enabled. Actions in the Salesforce mobile app don’t rely on whether Chatter or actions in the publisher are enabled. For how Chatter enablement affects action visibility, see [Actions With and Without Chatter](https://help.salesforce.com/s/articleView?id=platform.actions_with_or_without_chatter.htm&release=264.0.0&type=5 "Use actions regardless of whether Chatter or actions in the publisher are enabled."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Beginning in Summer ’26, Chatter is turned off by default in all new orgs. For any features in these orgs that require access to Chatter functionality or the Chatter APIs, turn on Chatter by going to **Setup** | **Chatter Settings** and selecting **Enable**. For details, see [Chatter Is Turned Off by Default in New Orgs Beginning in Summer ’26](https://help.salesforce.com/s/articleView?id=experience.collab_chatter_default_off.htm&type=5&language=en_US). - **[Standard Chatter Actions](https://help.salesforce.com/s/articleView?id=platform.actions_chatter_actions.htm&release=264.0.0&type=5)** Standard Chatter actions are available only when Chatter is enabled. The standard Chatter actions are Post, Poll, Question, and Announcements (groups only). Salesforce Classic standard actions also include File, Link, and Thanks (WDC). Standard actions are supported in both the full Salesforce site and in the Salesforce mobile app. - **[Default Actions](https://help.salesforce.com/s/articleView?id=platform.default_actions_overview.htm&release=264.0.0&type=5)** Default actions are sets of predefined actions to get you and your users started using actions in your org. Add default actions to publisher layouts to make them available to your users in the full Salesforce site and the action bar in the Salesforce mobile app. - **[Mobile Smart Actions](https://help.salesforce.com/s/articleView?id=platform.smart_actions_overview.htm&release=264.0.0&type=5)** Mobile smart actions are a set of preconfigured quick actions. They’re available for account, case, contact, lead, and opportunity pages and on the global publisher layout in the Salesforce mobile app. You can use them to set up quick actions for mobile users with little effort. - **[Productivity Actions](https://help.salesforce.com/s/articleView?id=platform.actions_productivity_actions.htm&release=264.0.0&type=5)** Productivity actions are predefined and attached to a limited set of objects. Productivity actions include Send Email, Call, Map, View Website, and Read News. Except for the Call action, you can’t edit productivity actions. - **[Quick Actions](https://help.salesforce.com/s/articleView?id=platform.actions_overview.htm&release=264.0.0&type=5)** Quick actions enable users to do more in Salesforce and in the Salesforce mobile app. With custom quick actions, you can make your users’ navigation and workflow as smooth as possible by giving them convenient access to information that’s most important. For example, you can let users create or update records and log calls directly in their Chatter feed or from their mobile device. - **[Mass Quick Actions](https://help.salesforce.com/s/articleView?id=platform.mass_quick_actions.htm&release=264.0.0&type=5)** With mass quick actions, users can create or update up to 100 records from a list view or related list. Users can select one record in the list to update only that record, or multiple records to perform bulk updates. To help users understand the changes they’re making, the action window includes a Fields to update section when users update more than one record. - **[Actions in Lightning Experience](https://help.salesforce.com/s/articleView?id=platform.actions_in_lex.htm&release=264.0.0&type=5)** In Lightning Experience, actions appear in the Global Actions menu in the header, on related lists, and on list view items. Actions also appear on a record page, in one of several places depending on the action’s type. - **[Salesforce Mobile App Action Bar](https://help.salesforce.com/s/articleView?id=platform.actionbar_overview.htm&release=264.0.0&type=5)** The productivity actions, standard and custom record buttons, and quick actions appear in the action bar and the action menu. # Actions Best Practices Use these tips as you set up actions. ### Required Editions
Actions available in: both Salesforce Classic and Lightning Experience
Publisher available in: Salesforce Classic
Available in: Essentials, Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions
## Tips for Creating Actions - Action labels longer than approximately 12–14 characters are shortened when they’re displayed in the Chatter publisher. Keep names short and descriptive. - Give your actions task-oriented names that tell your users what they do. Use terms such as New, Create, Share, Update, or Import. - Use the Description field to create notes for yourself about each action. Notes are especially useful if you’re creating several similar actions for different record types, for example. The description appears in the list of buttons, links, and actions for object-specific actions, or in the list of global actions, as well as on the detail page for the action. Your notes aren’t visible to users. - When creating custom actions that are going to be displayed in the Chatter publisher, limit their height to 400 pixels so that they’re displayed correctly. ## Tips for Laying Out Actions - When customizing action layouts, consider what your users do with them. Minimalism is key. Include only the fields that are necessary for them and for whomever handles the cases, calls, or records that result from those actions. - To create a single-column layout, such as for display on mobile devices, add fields only in the left column. - Use predefined field values to set standard values for common fields. For example, when you configure an action that lets users create opportunities, set Prospecting as the predefined value for the Stage field. All new opportunities users create through that action are automatically assigned to the prospecting stage. You can remove the Stage field from the action’s layout, because the field is going to be assigned a value automatically. If you set predefined values for fields on object records created through an action, you don’t need to add those fields to the action layout. - To see how an action layout appears to different user profiles, use the **Preview As** button on the Action Layout Editor. ## Tips for Adding Actions to Publishers - Because adding too many actions can cause the page to load slowly, we recommend including no more than nine actions total in each publisher, including any standard actions. - In Salesforce Classic, if you include five or more actions in the actions section of a page layout, three are shown and the rest are added to the publisher’s **More** menu. If you include four or fewer actions, they’re all shown. - In the Salesforce mobile app, the first three actions show up in the action bar, and the full set of actions are accessed by tapping ![Action Menu icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/s1_actionbar_ellipsis_icon.png). #### See Also - [Quick Action Considerations](https://help.salesforce.com/s/articleView?id=platform.actions_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when working with quick actions.") - [Troubleshooting Actions](https://help.salesforce.com/s/articleView?id=platform.troubleshooting_publisher_actions.htm&release=264.0.0&type=5 "Use these tips to help you solve problems that arise with actions.") - [Set Up Actions with Chatter Enabled](https://help.salesforce.com/s/articleView?id=platform.setting_up_actions.htm&release=264.0.0&type=5 "Global and object-specific actions enhance the Chatter experience for your users in Salesforce Classic and in the Salesforce app.") - [Create Dynamic Actions in Lightning App Builder](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_create_dynamic_action.htm&language=en_US) # Actions in Lightning Experience In Lightning Experience, actions appear in the Global Actions menu in the header, on related lists, and on list view items. Actions also appear on a record page, in one of several places depending on the action’s type. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Quick actions available in: Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions

Custom canvas actions available in: Professional (with Canvas enabled), Enterprise, Performance, Unlimited, and Developer Editions

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Quick actions aren’t the only action type covered here. Standard and custom buttons are also considered actions. ## Actions in the Global Actions Menu The Global Actions menu displays a subset of global actions from the Salesforce Mobile and Lightning Experience Actions section of the global publisher layout. ![Global Actions menu in Lightning Experience](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_global_actions_menu_no_callout.png) The items in the menu appear in the order that they’re listed in the Salesforce Mobile and Lightning Experience Actions section of the global publisher layout. Actions associated with objects that aren’t supported in Lightning Experience don’t appear in the Global Actions menu. Also, the Global Actions menu doesn’t support standard Chatter actions. ## Actions on List Views and List View Items Custom list buttons, list view actions, and certain standard buttons are supported on all list views, except Recently Viewed. To have a custom list button appear on a list view, add the button to the object’s List View Button Layout. In the Kanban view, only the standard New action is supported. List view items support only specific standard actions, like Edit, Delete, or Change Owner. ![Actions on List Views](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_list_view_actions.png) For Tasks, table format list views and the Kanban view support only standard buttons. Tasks list view items in table view, and the task item detail pane in split view contain the complete list of available actions for tasks. ## Actions on the Home Page On the Home page, you can find actions on recommendations in the Assistant. For example, imagine that a sales rep receives an update that an opportunity doesn’t have any open activity. The rep can create a task or event directly from the recommendation. ![Actions in the Home Page Assistant](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_home_actions.png) The actions that appear depend on the type of recommendation. To appear in the Assistant, actions must be added to the Salesforce Mobile and Lightning Experience Actions section of the global publisher layout. Supported actions include: - New Task - New Event - Edit - Email After you complete an action, the related recommendation disappears from the Assistant. ## Actions on the Chatter Page The Chatter page, like the Chatter tab on record pages, contains only standard Chatter actions. By default, only the Post, Poll, and Question actions are supported, and if you have Groups, the Announcement action. You can add, remove, or reorder the actions on the Chatter page from the Salesforce Mobile and Lightning Experience Actions section of the global publisher layout. ![Actions on the Chatter Page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_actions_on_chatter_page.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Beginning in Summer ’26, Chatter is turned off by default in all new orgs. For any features in these orgs that require access to Chatter functionality or the Chatter APIs, turn on Chatter by going to **Setup** | **Chatter Settings** and selecting **Enable**. For details, see [Chatter Is Turned Off by Default in New Orgs Beginning in Summer ’26](https://help.salesforce.com/s/articleView?id=experience.collab_chatter_default_off.htm&type=5&language=en_US). ## Actions on Record Pages Here’s a sample contact page in Lightning Experience. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The opportunity and leads workspaces have different structures, but actions appear in the same way on those pages. ![Actions on Record Home](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_contact_record_home_for_actions.png) The page-level action menu in the record’s highlights panel (1) contains: - Productivity actions - Global and object-specific quick actions, except for those actions related to creating tasks, creating events, and logging calls - Standard buttons - Custom object-specific Lightning component and Lightning web component quick actions - Custom flow actions - Custom Visualforce quick actions - Custom Visualforce buttons - Canvas actions The actions that appear in the page-level action menu are listed in the order that they appear in the Salesforce Mobile and Lightning Experience Actions section of the page layout. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can enable dynamic actions in the highlights panel on an object’s record page using the Lightning App Builder. Dynamic actions are supported for custom objects on desktop and mobile and for standard objects on desktop. Add, remove, and reorder actions directly in the Lightning App Builder and control action visibility based on filters that you apply. When you enable dynamic actions in the Lightning App Builder, highlights panel actions for the record page no longer come from the object’s page layout. Custom Lightning page templates with dynamic actions aren't supported in Salesforce Mobile. The Activity tab (2) contains Create a Record quick actions that point to the Event and Task objects. It also contains Log A Call and Send Email actions. The Chatter tab (3) contains standard Chatter actions. By default, only the Post, Poll, and Question actions are supported, and if you have Groups, the Announcement action. Some objects support other standard Chatter actions predefined by Salesforce. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Actions on user profiles, cases, and work orders can appear in a different way than on other records. - Actions on the user profile page come from the Quick Actions in the Salesforce Classic Publisher section of the global publisher layout. Only standard Chatter actions appear on the user profile page, regardless of which actions are assigned to the User Page Layout or the global publisher layout. - When feed tracking is enabled for cases or work orders, the page-level action menu on those records contains only custom buttons and supported standard buttons. Quick actions appear on the Chatter tab. On Experience Builder sites, quick actions for work orders appear on the page-level action menu. ## Actions on Related Lists Related lists in Lightning Experience (4) show custom list buttons, supported quick actions, and supported standard buttons that are assigned to the related list. Not all related list standard buttons are supported in Lightning Experience. ## Actions on Reports Actions on reports come from the Quick Actions in the Salesforce Classic Publisher section of the global publisher layout. Only standard Chatter actions appear on reports, regardless of which other actions are assigned to the global publisher layout. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example Let’s say you have these actions on your Contact page layout in the Salesforce Mobile and Lightning Experience Actions section. ![Actions in the Page Layout Editor](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_actions_in_ple.png) You have quick actions (New Account, New Event, New Task), a productivity action (Call), standard buttons (Edit, Delete, Clone, Send an Email), and Chatter actions (Poll, Post). Here’s how those actions appear on a contact record page in Lightning Experience. - The actions in the page-level action menu are a combination of the quick actions, productivity actions, and standard buttons. These actions appear in the order that they’re listed on the page layout. Although they’re quick actions, New Event and New Task don’t show up here. ![Actions in the Page-Level Menu](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_actions_in_page_level_menu.png) - The Chatter actions from the front of the action list are on the Chatter tab. ![Actions on the Collaborate Tab](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_actions_on_collaborate_tab.png) - The Activities-related actions—Email, New Event, New Task—display on the Activity tab. ![Actions on the Activities Tab](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_actions_on_activities_tab.png) - **[How Actions Are Ordered in Lightning Experience](https://help.salesforce.com/s/articleView?id=platform.actions_in_lex_ordering.htm&release=264.0.0&type=5)** In Lightning Experience, the actions on record pages are derived from the list of actions in the Salesforce Mobile and Lightning Experience Actions section of the page layout for that object. The same section on global publisher layouts determines the global actions that appear in the Global Actions menu. #### See Also - [Quick Actions](https://help.salesforce.com/s/articleView?id=platform.actions_overview.htm&release=264.0.0&type=5 "Quick actions enable users to do more in Salesforce and in the Salesforce mobile app. With custom quick actions, you can make your users’ navigation and workflow as smooth as possible by giving them convenient access to information that’s most important. For example, you can let users create or update records and log calls directly in their Chatter feed or from their mobile device.") - [Quick Action Considerations](https://help.salesforce.com/s/articleView?id=platform.actions_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when working with quick actions.") - [Set Up Cases for Lightning Experience](https://help.salesforce.com/s/articleView?id=cases_set_up_lex.htm&language=en_US) - [Create Dynamic Actions in Lightning App Builder](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_create_dynamic_action.htm&language=en_US) # Actions in the Organization Sync Record Queue This feature is now retired. In previous releases, Organization Sync let you set up a secondary, synced Salesforce org. Users could access a subset of Salesforce data in that org when the primary org was unavailable. # Actions With and Without Chatter Use actions regardless of whether Chatter or actions in the publisher are enabled. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Quick actions available in: Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions

Custom canvas actions available in: Professional (with Canvas enabled), Enterprise, Performance, Unlimited, and Developer Editions

The actions that are available in the full Salesforce site (Salesforce Classic and Lightning Experience) or in the Salesforce mobile app depend on your org’s settings. To enable or disable Chatter for your organization, from Setup, enter Chatter Settings in the Quick Find box, then select **Chatter Settings**. If Chatter is enabled, the Enable Actions in the Publisher option controls whether the actions that you create display in the Chatter publisher. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Beginning in Summer ’26, Chatter is turned off by default in all new orgs. For any features in these orgs that require access to Chatter functionality or the Chatter APIs, turn on Chatter by going to **Setup** | **Chatter Settings** and selecting **Enable**. For details, see [Chatter Is Turned Off by Default in New Orgs Beginning in Summer ’26](https://help.salesforce.com/s/articleView?id=experience.collab_chatter_default_off.htm&type=5&language=en_US). |   | Chatter Off, Actions Off | Chatter On, Actions Off | Chatter On, Actions On | | --- | --- | --- | --- | | You can create global actions and customize global action lists | Yes | Yes | Yes | | You can create object-specific actions and customize object-specific action lists | Yes | Yes | Yes | | Actions appear on the Home page and Chatter home page in the full Salesforce site | No | Yes1 | Yes | | Actions appear in object feeds in the full Salesforce site | No | Yes1,2 | Yes2 | | The action bar is available in the Salesforce mobile app feed | No3 | Yes4 | Yes | | The action bar is available on the record view in the Salesforce mobile app | Yes5 | Yes6 | Yes6 | | The action bar is available on Lightning pages in the Salesforce mobile app | Yes5 | Yes | Yes | Footnotes: 1. If actions in the publisher aren’t enabled, only standard Chatter actions (Post, File, Link, Poll, and Thanks) appear in the Chatter publisher in the full Salesforce site. 2. The Chatter feed appears on an object’s detail page in the full Salesforce site only for objects that have feed tracking enabled. 3. When Chatter is disabled, the Feed item isn’t available in the Salesforce mobile app. 4. When Chatter is enabled but actions in the publisher aren’t, standard Chatter actions and nonstandard actions appear in the Salesforce mobile app action bar and in third-party apps that use action lists. Nonstandard actions include Create, Update, Log a Call, custom actions, and Mobile Smart Actions. 5. When Chatter and actions in the publisher are disabled, only nonstandard actions appear in the action bar in the Salesforce mobile app or in third-party apps that use action lists. Nonstandard actions include Create, Update, Log a Call, custom actions, and Mobile Smart Actions. 6. If feed tracking isn’t enabled on an object, only nonstandard actions appear in the Salesforce mobile app action bar and in third-party apps that use action lists. Nonstandard actions include Create, Update, Log a Call, custom actions, and Mobile Smart Actions. #### See Also - [Set Up Actions with Chatter Enabled](https://help.salesforce.com/s/articleView?id=platform.setting_up_actions.htm&release=264.0.0&type=5 "Global and object-specific actions enhance the Chatter experience for your users in Salesforce Classic and in the Salesforce app.") - [Set Up Actions Without Chatter Enabled](https://help.salesforce.com/s/articleView?id=platform.setting_up_actions_without_chatter.htm&release=264.0.0&type=5 "You can set up object-specific and global actions for the Salesforce mobile app or third-party apps, even if your org doesn’t have Chatter enabled.") - [Quick Actions](https://help.salesforce.com/s/articleView?id=platform.actions_overview.htm&release=264.0.0&type=5 "Quick actions enable users to do more in Salesforce and in the Salesforce mobile app. With custom quick actions, you can make your users’ navigation and workflow as smooth as possible by giving them convenient access to information that’s most important. For example, you can let users create or update records and log calls directly in their Chatter feed or from their mobile device.") # Activate a Classic Approval Process After you’ve created at least one step for the classic approval process, activate the process. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To activate classic approval processes: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. 1. Open the classic approval process. 2. Make sure that it’s configured correctly. 3. Click **Activate**. #### See Also - [Activate or Deactivate a Flow Approval Process](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_distribute_activate.htm&release=264.0.0&type=5 "You can have multiple versions of a flow approval process in Salesforce, but only one version of each flow approval process can be active at a time. You can activate or deactivate a flow approval process in Flow Builder or from the flow approval process’s detail page in Setup.") - [Prepare Your Org for Classic Approval Processes](https://help.salesforce.com/s/articleView?id=platform.approvals_prep_org.htm&release=264.0.0&type=5 "Make sure that your users can submit their records for approval using classic approval processes, and consider how you can make it easy for approvers to respond to approval requests.") - [Considerations for Managing Classic Approval Processes](https://help.salesforce.com/s/articleView?id=platform.approvals_considerations_manage.htm&release=264.0.0&type=5 "Keep these things in mind when maintaining existing classic approval processes—including activating and deleting them.") # Activate a Process Salesforce doesn't start using a new or revised process to evaluate records until you activate it. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To activate or deactivate processes:

Manage Flow

AND

View All Data

AND

Customize Application

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). After you activate a process, you can no longer edit it. However, you can click **Clone** to save the process as a new inactive process. You can't activate a process unless it has: - At least one defined criteria node - At least one defined immediate or scheduled action 1. From Setup, enter Builder in the Quick Find box, then select **Process Builder**. 2. Open the process version that you want to activate. 3. Click **Activate**. If you activate a version of a process that already has an active version, the previously active version is automatically deactivated. To see that version later, refer to the process's version history. After you've activated your process, consider creating or editing test records that will start the process to make sure it's working correctly. If you do, remember to delete those test records or return them to their previous values after you've confirmed that your process works as designed. If you later want Salesforce to stop using a process to evaluate records as they're created or edited, open the active process and click **Deactivate**. # Activate a Sandbox Custom Domain in Production After you test a custom domain that serves your Experience Cloud sites or Salesforce Sites in a sandbox, move any updates to your sites and the custom URLs for your domain to production. Then activate the custom domain in production. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, and Unlimited Editions.
Applies to: Salesforce Sites and LWR, Aura, and Visualforce sites
User Permissions Needed
To view a domain:

Manage Custom Domains

OR

View Setup and Configuration

To edit a domain: Manage Custom Domains
Before you activate your custom domain in production, [set up a custom domain for testing in sandbox](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_sandbox_custom_domains_setup.htm&release=264.0.0&type=5 "Test a new domain before you activate it in production, or test changes to your custom domain or to your sites. Create a custom domain in production that points to your sandbox. That domain serves the Experience Cloud sites or Salesforce Sites in your sandbox with the custom URLs in the sandbox."), and complete testing. Then move the Experience Cloud site and custom URLs that the sandbox custom domain serves to production. For example, move your Experience Cloud sites and the custom URLs associated with the domain via a change set. 1. If your domain serves content from a site in your sandbox, validate that the content that the domain serves exists in production. Check for the Experience Cloud site or Salesforce Site, the relevant site pages and content, and the custom URLs for the domain. 2. Validate that your DNS record points to your production org. See [Point Your Custom Domain to Your Salesforce Org](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_update_dns.htm&release=264.0.0&type=5 "Before you add a domain in Salesforce, point your domain to your Salesforce org in Domain Name Service (DNS). If your custom domain uses your HTTPS Certificate or the Salesforce content delivery network (CDN) partner, add a canonical domain name (CNAME) record for your fully qualified domain (FQDN) to DNS. The CNAME record references your Salesforce org ID and your FQDN. Then, if you plan to use the Salesforce CDN to serve your Experience Cloud site on your custom domain, add a second CNAME record that our CDN partner requires."). If your custom domain points to your sandbox or another production org in DNS, point the custom domain to your production org, and test in your sandbox again. 3. Update the custom domain in Salesforce. 1. From Setup in production, in the Quick Find box, enter Domains, and then select **Domains**. 2. For your existing custom domain, select **Edit**. 3. Update the value in the Associated Org field from your sandbox to **Production**, and save your changes. After you save your changes, Salesforce provisions the domain or gets it ready for use. When the provisioning process is complete, you receive an email and the domain status changes to Awaiting Activation. 4. To activate your domain, on the Domains Setup page, click **Activate** next to your custom domain. Your site can be unavailable for 5–10 minutes, so activate your custom domain when your site traffic is low. When your site is active, the status changes from Awaiting Activation to Completed and the Current Domain Configuration Option changes to reflect your selected domain configuration option. #### See Also - [Custom Domains](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt.htm&release=264.0.0&type=5 "Provide a branded experience for users who access your external-facing Salesforce content by serving your Digital Experiences or Salesforce Sites on a domain that you own, such as https://www.example.com.") - [Test Your Custom Domains in a Sandbox](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_sandbox_custom_domains.htm&release=264.0.0&type=5 "Develop and test your custom domains that serve content from your Experience Cloud sites and Salesforce Sites in a sandbox before you activate the domain in production.") - [Set Up and Configure Your Org for Experience Cloud Sites](https://help.salesforce.com/s/articleView?id=experience.networks_setup_maintain_communities.htm&type=5&language=en_US) # Activate Agent Actions In API Catalog, you can activate agent actions for APIs. If you activate invocable actions for an API that has annotations for agent actions, the associated agent actions also activate. ### Required Editions
Available in: Lightning Experience
Available in: Developer, Enterprise, Performance, and Unlimited Editions
User Permissions Needed
To access API Catalog:

Available to Salesforce admins by default.

For other users, View Setup

To activate agent actions: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Beginning in April 2026, agent topics are now called subagents. There are no changes to functionality. During this transition, you may see a mix of the new and previous terms in our documentation. API developers add annotations to API operations to define agent actions through their Integrated Development Environments (IDEs). Use features in Anypoint Code Builder for MuleSoft APIs and Salesforce Code Builder for Apex APIs to run API governance rules against the API. Applying rules makes sure that the API specs meet security, documentation, and other requirements and standards defined for autonomous API operations. API permissions and policies and user permission sets control the access and options users have when they design, administer, and use the APIs. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important If APIs have agent or subagent annotations, to be eligible to sync into API Catalog, the APIs have a tag of `sf-api-topic` and meet other sync criteria. 1. From Setup, in the Quick Find box, enter API Catalog, and then select **API Catalog**. 2. View the Agent Action column to see which APIs aren’t activated. 3. Select an API to activate actions for, and then select the API version. 4. View the available methods and their operations. 5. Click **Activate Actions**. 6. Select operations to activate as actions, and create connections for them if prompted to do so. The invocable actions and their associated agent actions are activated. See [Design and Implement Agents](https://help.salesforce.com/s/articleView?id=ai.copilot_intro.htm&language=en_US). #### See Also - [Create a Custom Agent Action](https://help.salesforce.com/s/articleView?id=ai.copilot_actions_custom_create_scratch.htm&language=en_US) - [_Agentforce Developer Guide_: Build Custom Agent Actions using Apex REST](https://developer.salesforce.com/docs/einstein/genai/guide/agent-apex.html) - [_MuleSoft Documentation_: Enabling an API Project for Topics and Agent Actions](https://docs.mulesoft.com/anypoint-code-builder/ai-enabling-api-project-topic-center) # Activate API Actions to Use in Salesforce You can activate actions to use in your automations, such as flows, agent actions, and Apex code. ### Required Editions
Available in: Lightning Experience
Available in: Developer, Enterprise, Performance, and Unlimited Editions
- **[Activate Invocable Actions for APIs](https://help.salesforce.com/s/articleView?id=platform.api_catalog_activate_invocable_actions.htm&release=264.0.0&type=5)** Activate invocable actions for APIs. You can then use activated actions in your automations, such as those in flows, agents, and Apex code. You can activate actions by using API Catalog for MuleSoft, Heroku, and Apex REST APIs. - **[Activate Agent Actions](https://help.salesforce.com/s/articleView?id=platform.api_catalog_activate_agent_topics_and_agent_actions.htm&release=264.0.0&type=5)** In API Catalog, you can activate agent actions for APIs. If you activate invocable actions for an API that has annotations for agent actions, the associated agent actions also activate. - **[Deactivate Actions](https://help.salesforce.com/s/articleView?id=platform.api_catalog_deactivate_actions.htm&release=264.0.0&type=5)** Deactivate actions for APIs if you no longer need the actions. # Activate Invocable Actions for APIs Activate invocable actions for APIs. You can then use activated actions in your automations, such as those in flows, agents, and Apex code. You can activate actions by using API Catalog for MuleSoft, Heroku, and Apex REST APIs. ### Required Editions
Available in: Lightning Experience
Available in: Developer, Enterprise, Performance, and Unlimited Editions
User Permissions Needed
To access API Catalog:

Available to Salesforce admins by default.

For other users, View Setup

To activate invocable actions: Customize Application
For some sources, such as Apex and AuraEnabled, you can activate invocable actions through code during deployment of the APIs. This sets the invocable action to activated status in the catalog. If you don't have a connection for a MuleSoft API, the activate actions process begins the create connection process. See [Create and Manage Connections for Your APIs](https://help.salesforce.com/s/articleView?id=platform.api_catalog_create_connections_for_apis.htm&release=264.0.0&type=5 "Create connections to authorize the use of actions you activate for MuleSoft APIs and HTTP callouts in Salesforce. You create connections for other external API sources from outside of API Catalog, and then you can view the connections from the catalog."). 1. From Setup, in the Quick Find box, enter API Catalog, and then select **API Catalog**. 2. Select the API that you want to activate actions for. For MuleSoft APIs, select the API version from **Version**. 3. View the available methods and their operations. 4. Click **Activate Actions**. 5. Select operations to activate as actions, and create connections for them if prompted to do so. Make sure to assign user permissions for the connections that you create. See [Create and Manage Connections for Your APIs](https://help.salesforce.com/s/articleView?id=platform.api_catalog_create_connections_for_apis.htm&release=264.0.0&type=5 "Create connections to authorize the use of actions you activate for MuleSoft APIs and HTTP callouts in Salesforce. You create connections for other external API sources from outside of API Catalog, and then you can view the connections from the catalog."). #### See Also - [_Heroku Documentation_: Heroku AppLink](https://devcenter.heroku.com/articles/heroku-applink) - [_Agentforce Developer Guide_: Build Custom Agent Actions using Apex REST](https://developer.salesforce.com/docs/einstein/genai/guide/agent-apex.html) - [_Agentforce Developer Guide_: Build Custom Agent Actions from Apex Controller Methods](https://developer.salesforce.com/docs/einstein/genai/guide/agent-auraenabled.html) - [System Limits](https://help.salesforce.com/s/articleView?id=platform.external_services_schema_def_limits.htm&language=en_US) # Activate Lightning App Pages To make your custom app page available to users, you must activate it. You can also rename the Lightning page tab, adjust its visibility, and set its position in the navigation list. The Lightning App Builder’s activation feature makes this process easy. ### Required Editions
Lightning App Builder available in: both Salesforce Classic and Lightning Experience
Lightning Home and utility bar pages available in: Lightning Experience
Lightning app and record pages available in: both the Salesforce mobile app and Lightning Experience
Email application pane pages available in: both Salesforce Classic and Lightning Experience

Available in: Group, Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
1. To open your app page, from Setup, enter Lightning App Builder in the Quick Find box, select **Lightning App Builder**, and then click **Edit** next to the page. 2. In the Lightning App Builder, click **Activation**. 3. Update the activation properties, if necessary. - Change the page’s custom tab label. By default, the label that you give the Lightning page is used as the label for its custom tab. - Change the custom tab’s icon. The icon that you select here is used as the icon for the page in the mobile app and in Lightning Experience. - Adjust the app page custom tab’s visibility. If you select **System Administrators only**, the tab is set to Default On for System Administrators. For all other users, it’s set to Default Off and doesn’t show up in the navigation of the apps it has been assigned to, but users can see the tab in the App Launcher in Lightning Experience and on the All Tabs page in Salesforce Classic. If you select **Active for all users**, the tab is set to Default On for all users. It appears in the visible tabs for its associated app, in the App Launcher in Lightning Experience, and on the All Tabs page in Salesforce Classic. 4. Add the page to one or more Lightning apps. Adding your app page to Lightning Experience makes it available to users viewing the app on the desktop and in the Salesforce mobile app. 5. Set the page’s position in the Salesforce “Mobile Only” app navigation. The first item that you put in the mobile navigation list becomes your users’ landing page. 6. Click **Activate**. Your Lightning page is now ready for your mobile and Lightning Experience users. To enable your users to personalize the app with their favorite tabs, create a Lightning App in the App Manager. They can then use the tabs in the Salesforce mobile app. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip You can give your app page a custom icon image by editing the style of the page’s custom tab in Setup. #### See Also - [Create Lightning Page Tabs](https://help.salesforce.com/s/articleView?id=platform.creating_flexipage_tabs.htm&release=264.0.0&type=5 "Before you can include a Lightning app page in the Salesforce mobile app or in a Lightning app, you must create a custom tab for it.") - [Tab Settings](https://help.salesforce.com/s/articleView?id=platform.permissions_tab_settings_ref.htm&type=5&language=en_US) # Activate Lightning Record or Home Pages Is your custom Lightning page ready for your users? Use the Activation function inside the Lightning App Builder to get the page out to them. You can make your custom page the default page for all users, assign it to specific Lightning apps, or assign it to record types and profiles. Assigning the page to a Lightning app, record type, or profile gives your users access to a page customized for the context they’re working in. ### Required Editions
Lightning App Builder available in: both Salesforce Classic and Lightning Experience
Lightning Home and utility bar pages available in: Lightning Experience
Lightning app and record pages available in: both the Salesforce mobile app and Lightning Experience
Email application pane pages available in: both Salesforce Classic and Lightning Experience

Available in: Group, Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
1. Create a record or Home page, or open an existing one in the Lightning App Builder. 2. If you opened a page that is ready for your users, click **Activation**. 3. If you created a page or opened a page that needs adjustment, make the necessary changes, click **Save**, and then click **Activate**. 4. Choose how you want to activate the page. - Make the page the org default. After you activate a Lightning record page as the org default, it's selected as the Lightning Experience override for the View action in the Override Properties panel. Lightning record pages set as the org default become the default record page only for the object that they're associated with. - Make the page the default page for specific Lightning apps. If you activate a Lightning record page for specific Lightning apps only, the page takes precedence over the Lightning Experience Override setting for the View action on the object in those apps. - Assign the page to a combination of Lightning apps, record types, and profiles. Record type assignment is available only for record pages. - Assign the page to a form factor, such as a desktop or phone. This option isn't available for Home pages. 5. On the activation screen, click the tab for the option you’ve chosen, and follow the steps to activate the page. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip You can also assign home pages from Setup. Enter Home in the Quick Find box, and then select **Home**. - Classic apps can be viewed in Lightning Experience, but you can’t display different home pages assigned for specific apps and profiles. Upgrade Classic apps to Lightning apps from the App Manager to make home page assignments. - If you no longer want a page to be an app or org default, redo the activation process for the page, and select the option to remove it as the default. - If you activate a page and then return to make changes, you don’t have to activate it again. Clicking **Save** after you make your edits pushes the changes to your users. #### See Also - [Create and Configure Lightning Record or Home Pages](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_customize_lex_pages.htm&release=264.0.0&type=5 "Use the Lightning App Builder to add, remove, or reorder components on a record or Home page to give users a customized view.") - [Lightning App Builder Considerations](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when working with Lightning pages and Lightning apps in the Lightning App Builder.") # Activate or Deactivate a Flow You can activate or deactivate a flow from the Automation app Flows tab or the Flow Builder canvas. ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
To activate an autolaunched flow that has a trigger: View All Data
When you activate a flow version, any previously activated version is deactivated. However, any running flow interview continues to the version that it started with. If you activate a flow in a sandbox and then move it to production, you can't click the **Activate** button until you save the flow as a new version. Because sandbox orgs and production orgs can have differences, including properties and IDs, always [debug](https://help.salesforce.com/s/articleView?id=platform.flow_test_debug.htm&release=264.0.0&type=5 "For flows that don't use Test Mode, use the Debug option to test or troubleshoot the flow. Review step-by-step details of how the flow runs and the path it takes.") the flow using rollback mode after moving it from a sandbox to production. #### See Also - [Distribute a Flow](https://help.salesforce.com/s/articleView?id=platform.flow_distribute.htm&release=264.0.0&type=5 "After you’ve designed and tested your flow, it’s time to put it to work! Flows can be run in several ways, depending on who the flow is designed for. Internal users, external users, or systems can run a flow, or a flow can be deployed for another organization.") - [Triggered Flows](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger.htm&release=264.0.0&type=5 "In the Start element of a triggered flow, you can specify what starts a flow. For example, the flow trigger can be a schedule or the new and changed records of a specified object. Without a trigger, you need to set up other things to launch the flow, such as custom buttons, processes, Apex classes, or even Einstein Bots.") - [Process Automation Settings](https://help.salesforce.com/s/articleView?id=platform.automation_about_settings.htm&release=264.0.0&type=5 "Salesforce provides various settings for platform automation to help customize and streamline business processes.") ## From the Automation App You can activate or deactivate a flow from the Automation App. If you don't see the app in the App Launcher, check that **Enable the Automation Lightning App** is selected in Process Automation Settings. 1. From the Automation app, select the **Flows** tab. 2. Click the label of the flow you want to activate or deactivate to open the flow's details page. 3. Click the **Related** tab to view the list of the flow's versions. 4. Select the flow version and click the pull-down menu to activate or deactivate. ## From the Flow Builder Canvas You can activate or deactivate a flow directly from the Flow Builder canvas. 1. Open the Flows list view. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. Note that the Automation app and Flows tab options don't require Setup access. 2. To open the flow version you want to activate or deactivate, click the flow label. 3. Activate or deactivate your flow. - To activate your flow, click **Activate** in the button bar. - To deactivate your flow, click **Deactivate** in the button bar. # Activate or Deactivate a Flow Approval Process You can have multiple versions of a flow approval process in Salesforce, but only one version of each flow approval process can be active at a time. You can activate or deactivate a flow approval process in Flow Builder or from the flow approval process’s detail page in Setup. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To activate or deactivate a flow approval process: Manage Flow
To activate a record-triggered flow approval process: View All Data
When you activate a flow approval process version, the previously activated version, if one exists, is deactivated. Any in-progress approval submission based on the flow approval process continues to run using the version that it started with. 1. To activate or deactivate a flow approval process in the details view, from Setup, in the Quick Find box, enter flows, and then select **Flows**. 1. In the quick menu of flow approval process in the Flow list view, click **View Details and Versions**. 2. Click **Activate** or **Deactivate** in the row of the flow approval process version that you want to affect. 2. To activate or deactivate a flow approval process in Flow Builder, open the flow approval process to affect, and then on the button bar, click **Activate** or **Deactivate**. # Activate or Deactivate an Orchestration You can have multiple versions of an orchestration in Salesforce, but only one version of each orchestration can be active at a time. You can activate or deactivate an orchestration in Flow Builder or from the orchestration’s detail page in Setup. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To activate or deactivate an orchestration: Manage Flow
To activate a record-triggered orchestration: View All Data
When you activate an orchestration version, the previously activated version, if one exists, is deactivated. Any running orchestration continues to run using the version that it started with. 1. In Flow Builder, open the orchestration version. 2. On the button bar, click **Activate** or **Deactivate**. # Activate Order Action In a B2B Commerce Checkout flow, activate a Salesforce standard draft order. ### Required Editions
Available in: Lightning Experience
View supported editions.
In Flow Builder, add an Action element to your flow. Select the **B2B Commerce** category, and search for **Activate Order**. To access this action from the API, use the name `activateOrderAction`. Set Input Values: Use values from earlier in the flow to set the inputs. | Input Parameter | Description | | --- | --- | | **cartId** | The ID of the cart that transitions into a checkout. | | **orderStatus** | A DynamicEnum with the OrderTypeEnum value. | Store Output Values: | Output Parameter | Description | | --- | --- | | **backgroundOperationId** | The ID of the background operation that processes the total price of all items in the cart. | Error Conditions:
Error Condition Description
Invalid CartId Input

The cart ID value isn’t accepted.

Error Code: UNKNOWN_EXCEPTION

HTTP Status Code: 500

User Can’t Invoke Action

The caller doesn’t have the appropriate permissions to call the action, including the MAD or B2B Commerce Integrator user perms.

Error Code: BAD_REQUEST

HTTP Status Code: 400

User Doesn’t Have Access to the Cart

The buyer doesn’t own the cart, doesn’t have read access to the cart, or the cart isn’t shared with the buyer.

Error Code: BAD_REQUEST

HTTP Status Code: 400

The Cart Isn’t in the Checkout State

The cart status isn’t in the Checkout state and can’t continue.

Error Code: INVALID_OPERATION

HTTP Status Code: 403

Integration Is Already in Progress

Only one integration can be processed at a time. This error indicates when an integration is already running.

Error Code: ALREADY_IN_PROCESS

HTTP Status Code: 400

Account Associated With the Cart Isn’t Valid or Accessible

The effective account listed isn’t valid.

Error Code: INSUFFICIENT_ACCESS_OR_READONLY

HTTP Status Code: 500

User Isn’t a Member of the Store

The user isn’t a member of the store.

Error Code: INSUFFICIENT_ACCESS_OR_READONLY

HTTP Status Code: 500

CartValidationOutput Object Has Errors

The CartValidationOutput object has errors that are related to the cart that need to be cleared before order activation.

Error Code: INVALID_INPUT

HTTP Status Code: 403

CheckoutSession Isn’t in the Activate State

Checkout Session state must be in the Activate state for the order activation to go forward.

Error Code: INVALID_INPUT

HTTP Status Code: 403

CheckoutSession Is in the Processing State

CheckoutSession can’t be in the Processing state. Processing indicates a separate integration is already running.

Error Code: INVALID_INPUT

HTTP Status Code: 403

Invalid Order Status Input

The Order status input that is passed to the API must be the ACTIVATE status code.

Error Code: UNKNOWN_EXCEPTION

HTTP Status Code: 500

OrderSummary Wasn’t Created

The OrderSummary wasn’t created due to an internal error.

Error Code: UNKNOWN_EXCEPTION

HTTP Status Code: 403

OrderSummary Already Exists

Another Apex trigger, Flow-based trigger, or other process has already created an OrderSummary for the order passed to the order activation.

Error Code: UNKNOWN_EXCEPTION

HTTP Status Code: 500

Usage: To use the B2B Commerce Activate Order action, these requirements apply. - The user has the appropriate permissions to invoke the action. - The effective account is valid. - The buyer account is a member of the store. - The buyer has edit access to the cart. - An order in `Draft` status is generated from the cartToOrder action, and the **orderId** is in CartCheckoutSession. - The cart status is `CartStatusEnum.CHECKOUT`. - `Session.IsProcessing` isn’t set to `False`. - `Session.NextState` is set to `activateOrder`. - `Session.State` can’t be empty. - **backgroundOperationId** can’t be `New` or `Running`. - The order being activated can’t already be associated to an OrderSummary record. When the Activate Order action runs, these API interactions occur. - The order item is activated, making it read-only. - The order summary is generated asynchronously. - The CheckoutSession is archived. - The cart is archived. #### See Also - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") # Activate Session-Based Permission Set Action Activate a session-based permission set for the running user. ### Required Editions
View supported editions.
In Flow Builder, add an Action element to your flow. In the Action field, enter Permission Set, and select **Activate Session-Based Permission Set**. ## Set Input Values Use values from earlier in the flow to identify the permission set to activate. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important You can run queries, but don’t modify Salesforce data in flows that also activate session-based permission sets.
Field Description
Permission Set Name

The developer name of the permission set.

This parameter accepts single-value resources of any type. That value is treated as text.

Permission Set Namespace

Optional. The permission set’s namespace.

This parameter accepts single-value resources of any type. That value is treated as text.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example A junior buyer in your org occasionally requires access to your Contracts object. Create a session-based permission set with access to the object. Then create a flow that uses the Activate Session-Based Permission Set core action. Configure the action to activate the permission set. The junior buyer runs the flow to access contracts during the current user session. The action activates the permission set for the junior buyer during the current session. #### See Also - [Deactivate Session-Based Permission Set Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_deactivate_sessionpermset.htm&release=264.0.0&type=5 "Deactivate a session-based permission set for the running user.") - [Create a Flow That Can Activate or Deactivate a Session-Based Permission Set](https://help.salesforce.com/s/articleView?id=platform.perm_sets_session_activate_flow.htm&language=en_US) - [Plan for Success with Flow Builder Best Practices](https://help.salesforce.com/s/articleView?id=platform.flow_prep_bestpractices.htm&release=264.0.0&type=5 "Before you build and distribute flows, plan your approach. To minimize errors and rework, follow these Flow Builder guidelines.") - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") # Activate Standard Salesforce MCP Servers in API Catalog Standard Salesforce MCP servers automatically appear in your catalog. Activate them to use with Agentforce and other supported MCP clients. ### Required Editions
User Permissions Needed
To access API Catalog:

Available to Salesforce admins by default.

For other users, View Setup

To activate standard Salesforce MCP servers: Customize Application
![A flowchart that shows steps for activating Salesforce standard MCP servers in API Catalog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/api_catalog_mcp_servers_salesforce_standard.png) 1. From Setup, in the Quick Find box, enter API Catalog, and then select **MCP Servers**. 2. Select an MCP server. 3. To activate an MCP server, click **Activate**. After you activate a server, you can optionally add it to Agentforce Registry. 4. To deactivate an MCP server, select an active server that isn’t in use, and then click **Deactivate**. Tools from this MCP server stop running until you reactivate it. #### See Also - [_Salesforce Hosted MCP Servers Guide_: MCP Servers and Tools Reference](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/servers-reference.html) # Activate the Partner Event Source in Amazon EventBridge Salesforce creates a partner event source in Amazon EventBridge in pending status after you create an event relay. Associate the event bus with the partner event source in EventBridge so that the event source is ready to receive events from Salesforce. ### Required Editions
User Permissions Needed
To create an event relay: Customize Application
1. Get the partner event source name from the event relay. In the Event Relays page, click the event relay. Copy the Partner Event Source Name field value. There can be a small delay before this field value is displayed after you create the event relay. Refresh the page until you get the partner event source name. ![The partner event source field](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ev-relay-pe-source-annotated.png) 2. Log in to the AWS console. Navigate to [https://aws.amazon.com](https://aws.amazon.com) and sign in using your AWS account credentials. 3. In the search box, enter Amazon EventBridge, and then from Services, select **Amazon EventBridge**. 4. In Amazon Eventbridge, under Integration, select **Partner event sources**. 5. In the search box, enter the name of your event source, the Partner Event Source Name field value that you copied earlier. 6. Select your event source, and click **Associate with event bus**. 7. Click **Associate**. The status of the event source changes to Active. ![Activate the event bus in Amazon EventBridge](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ev-relay-active-pending-prod.png) # Activate the Pipeline A pipeline is ready for your team to use after you activate it. Here’s some important information about pipeline activation: - You and your team can create work items after a pipeline is activated. - You can’t inactivate a pipeline after changes have been promoted through it. - You can edit only inactive pipelines. If you haven’t yet promoted changes, you can deactivate it, make the changes, and then reactivate it. - You can remove pipeline environments only if the pipeline is inactive. You can activate the pipeline if the status is `Ready to activate`. If there are validation errors with the pipeline, a `Not Ready` warning appears next to the Activate button with a link to see the errors to resolve. ![If you click on the Not Ready warning icon, you see the Validation Errors pop-up, where you can click See Errors to get more information.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/pipeline-activate-errors.png) The errors appear in context, so you know exactly what to address. ![Example of errors displayed if you click See Errors in the Validation Errors pop-up for pipeline activation.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/pipeline-stage-errors.png) # Activate the Shift Approval Process After setting up the approval process, always activate the approval process. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Approval Processes, and then click **Approval Processes**. 2. Open the approval process that you created for shifts. 3. Activate the process. # Activate Validation Rules How to activate and deactivate validation rules. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To view field validation rules: View Setup and Configuration
To define or change field validation rules: Customize Application
1. From the management settings for the relevant object, go to Validation Rules. 2. Click **Edit** next to the rule you want to activate. 3. To activate the rule, select **Active**, and save your changes. 4. To deactivate the rule, deselect **Active**, and save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The detail page of a custom activity field doesn’t list associated validation rules. #### See Also - [Define Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_defining_field_validation_rules.htm&release=264.0.0&type=5 "Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record. A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True” or “False”. Validation rules also include an error message to display to the user when the rule returns a value of “True” due to an invalid value.") - [Validation Rules Fields](https://help.salesforce.com/s/articleView?id=platform.fields_validation_rules_fields.htm&release=264.0.0&type=5 "A list of fields and description for validation rules.") - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") # Activate Your Backup & Recover Platform Prepare to manage and protect your Salesforce data when you activate the Backup & Recover platform during Seeding and Anonymize onboarding. Make sure to sign in or activate your Backup & Recover Platform before onboarding Seeding and Anonymize. This task applies to customers who do not already have a Backup & Recover Platform. You must activate your Backup & Recover Platform before starting the Seeding and Anonymize onboarding. If you have already activated your account, skip to step 4 in the following procedure and sign in to your account. 1. Navigate to the [Sign In](https://auth.owndata.com/) page. At the bottom of the dialog, click Need help signing in?. 2. Click Forgot password?. The Reset dialog displays. 3. From this dialog, initiate resetting your password and activating your account. 4. We recommend additional sign-in access control safeguards available via the Backup & Recover Platform for either: - [Single-sign-on](https://help.salesforce.com/s/articleView?id=platform.platform_o_single_sign_on.htm&release=264.0.0&type=5 "Own from Salesforce supports single sign on using SAML 2.0. Instead of relying on local authentication for password and security policies, you can set your own authentication using your managed Identity Provider.") (Salesforce recommends handling IP restrictions via the SSO provider) - Managing [IP restrictions](https://help.salesforce.com/s/articleView?id=platform.platform_o_config_ip_address_restrict.htm&release=264.0.0&type=5 "Master Admins can configure what IP addresses are allowed to access the Own Data Platform. Changes to Permitted IP settings affect all the regions in the account.") and [Multi Factor Authentication](https://help.salesforce.com/s/articleView?id=platform.platform_o_mfa.htm&release=264.0.0&type=5 "MFA works by adding an additional layer of security to your online account. It requires an additional sign-in credential or authentication step, beyond just your username and password to gain access. MFA allows you to protect access to your account using an app, including Okta Verify, or a FIDO2 Authenticator (for example, Google Authenticator, Salesforce Authenticator, Microsoft Authenticator).") (MFA) via the Own app 5. Once complete, [add a new backup service to your account](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_add_services.htm&release=264.0.0&type=5 "Safeguard your critical business information by adding a backup service to your account. Each service you add can back up Salesforce production data, production metadata, sandbox data, or sandbox metadata. Backups then run automatically, securing your data so it can be recovered."). If you have purchased the Seed-only plan, this setup creates a 15-day retention period on the backups, with no more than 15 backups. 6. Once your initial backup is completed and you have at least two environments backed up, for example, a sandbox and a production org, you can continue this onboarding experience with the next section [How Do I Create a Levels Seeding Template?](https://help.salesforce.com/s/articleView?id=platform.seeding_o_and_anonymize_create_levels_seeding_template.htm&release=264.0.0&type=5 "Levels templates for Salesforce provide a more streamlined approach to managing complicated hierarchy structures compared to Nodes templates. By reducing complexity and automating relationship creation, Levels templates offer simpler seeding without requiring full knowledge of the data source structure. Create and configure a Levels template by adding root objects and selecting up to four hierarchy levels."). # Activate Your Refreshed Sandbox If you didn’t select **Auto Activate** while refreshing your sandbox, you must activate your sandbox before you can use it. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Database.com Editions
User Permissions Needed
To view a sandbox: View Setup and Configuration
To create, refresh, activate, and delete a sandbox: Manage Dev Sandboxes (Developer or Developer Pro only) or Manage Sandboxes (all sandbox types)
1. From Setup, enter Sandboxes in the Quick Find box, then select **Sandboxes** A list of your sandboxes displays. Refreshed sandboxes that haven’t been activated yet show an **Activate** link next to their name. 2. Click **Activate** next to the sandbox you want to activate. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_warning.png) Warning Activating a replacement sandbox that was created using the Refresh link deletes the sandbox it is refreshing. The current configuration and data are erased, including application or data changes that you’ve made. Click the **Activate** link only if you don’t need the current contents of the sandbox. Your production org and its data aren’t affected. Salesforce deletes new sandboxes that aren’t activated within 30 days. Users who created or most recently refreshed any sandboxes for your org receive at least two email notifications before Salesforce schedules the sandbox for deletion. # Activate Your Workflow Rule Salesforce doesn’t trigger a workflow rule until you activate it. ### Required Editions
Available in: Lightning Experience and Salesforce Classic
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create or change workflow rules and actions: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Workflow Rules have ended as of December 31, 2025. This means that support won't be provided for any workflow rules and bugs in the Workflow Rules product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing workflow rules continue to run, and you can activate, deactivate, and edit them; however we recommend using Flow Builder. To migrate existing workflow rules, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). To activate a workflow rule, click **Activate** on the workflow rule detail page. Click **Deactivate** to prevent a rule from triggering or if you want to edit the time-dependent actions and time triggers that are associated with the rule. You can deactivate a workflow rule at any time. However, if you deactivate a rule that has pending actions, Salesforce completes those actions as long as the record that triggered the rule isn’t updated. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note - You can't delete a workflow rule that has pending actions in the workflow queue. Wait until pending actions are processed, or use the workflow queue to cancel the pending actions. - You can't add time-dependent workflow actions to active workflow rules. Deactivate the workflow rule first, add the time-dependent workflow action, and reactivate the rule. #### See Also - [Set the Criteria for Your Workflow Rule](https://help.salesforce.com/s/articleView?id=platform.workflow_rules_define.htm&release=264.0.0&type=5 "Get started with creating a workflow rule by selecting the object the rule relates to and configuring its criteria.") # ActiveCampaign Connector Connect to an external ActiveCampaign account. Perform tasks like managing marketing and sales automation. Use ActiveCampaign as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These ActiveCampaign actions are available in Flow Builder. - Add Contact to Automation - Create Contact - Create Account - Delete Contact - Delete Contact Automation - Delete Account - Get Contact Automation - Get Contact by ID - Get Contacts - List Contact Automations - List Accounts - Retrieve Account - Update Account ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Activities: Match Email to Records Actions The Activities: Match Email to Records flow provides several core actions for matching emails to relevant records in your Sales org. To add one of these actions to your flow, make sure that Sync Email as Salesforce Activity is enabled in Einstein Activity Capture. In Flow Builder, add an Action element. Then select **Activities: Match Email to Records**, and search for the appropriate action. ### Required Editions
Available in: Lightning Experience
Available with Einstein Activity Capture Standard in Sales in Starter, Professional, and Enterprise Editions
Available with Unlimited Edition and Einstein 1 Sales Edition
Available with Einstein for Sales, which is included in Einstein 1 Sales Edition, and available for an extra cost in Enterprise and Unlimited Editions.
Available with Sales Engagement in Sales, which is included in Performance and Unlimited Editions, and available for an extra cost in Professional and Enterprise Editions.
Available with Revenue Intelligence, which is available for an extra cost in Enterprise and Unlimited Editions.
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Activities: Match Email to Records core actions don’t support system-run flows or automated process users. Activities Match: Create Email Activity core actions run in the context of the user, who is also referred to as the context user. The flow has access to whatever the context user has access to. - **[Create Email Activity with Associations Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_activities_associate_records.htm&release=264.0.0&type=5)** This action creates activity and email message entity records from temporary email records and associates them with specified account, contact, lead, opportunity, and user records. To be used in the Activities: Match Email to Records flow. Requires that Sync Email as Salesforce Activity is enabled in Einstein Activity Capture. - **[Get Account and Opportunity from Email Addresses Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_activities_match_acct_oppty.htm&release=264.0.0&type=5)** This action gets an account record associated with a contact or unmatched email address and also gets an opportunity record related to a contact. To be used in the Activities: Match Email to Records flow. Requires that Sync Email as Salesforce Activity is enabled in Einstein Activity Capture. - **[Get Contacts and Leads from Email Addresses Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_activities_match_contacts_leads.htm&release=264.0.0&type=5)** This action matches email addresses to contact and lead records related to active user records. To be used in the Activities: Match Email to Records flow. Requires that Sync Email as Salesforce Activity is enabled in Einstein Activity Capture. - **[Get Users from Email Addresses Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_activities_match_users.htm&release=264.0.0&type=5)** This action gets user records with email addresses that match those addresses in the To, From, or CC address field of a sent email captured by Einstein Activity Capture. To be used in the Activities: Match Email to Records flow. Requires that Sync Email as Salesforce Activity is enabled in Einstein Activity Capture. # Activity History View a chronological timeline of key events in your org, such as commits, deployments, and reviews. Use the Activity History tab in DX Inspector to audit activity and troubleshoot errors. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
DX Inspector records key activity in your development environment. Use the Activity History tab as a centralized audit trail to see who performed an action, when it happened, and the outcome. ![Activity history tab that records key events in your development org.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/dx_inspector_activity_history.png) For failed events, the tab provides error messages and log details to help you identify and fix issues, such as commit or deployment failures. # ActivityInfo Connector (Beta) Connect to an external ActivityInfo account. Perform tasks like adding database users or retrieving databases. Use ActivityInfo as a data target (action). ### Required Editions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This connector is a beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this beta service is at the Customer's sole discretion.
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Bearer authentication. Bearer authentication sends a header named Authorization with a value of Bearer and a token with every request. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Token

Enter the bearer token to use to authenticate the requests. For information about how to create the bearer token, refer to the external system's documentation.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These ActivityInfo actions are available in Flow Builder. - Add Database User - Get Database User Grants - Get Database Users - Get Databases ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Add a Change Event in a New Channel Member To add a change event to the channel that you created, add a channel member. ### Required Editions
User Permissions Needed
To create a PlatformEventChannel: Customize Application
Prerequisites: - [Create a Channel for a Change Event](https://help.salesforce.com/s/articleView?id=platform.ev_relay_create_channel_cdc.htm&release=264.0.0&type=5 "Create a channel that holds a stream of change data capture events.") Change events are predefined by Salesforce so you don’t define them. To learn about Salesforce objects that support change events, see [Change Event Object Support](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_object_support.htm) in the Change Data Capture Developer Guide. 1. Send a POST request to this URI. ``` /services/data/v65.0/tooling/sobjects/PlatformEventChannelMember ``` 2. If you’re using Postman, expand **Event Platform** | **Custom Channels** | **Platform Event**, and click **Create channel member**. 3. Specify the channel in the `eventChannel` field and the event in the `selectedEntity` field. This example references a change event, `AccountChangeEvent`. Use this example request body. In Postman, click **Body**, and replace the body with this JSON body. ``` { "FullName": "Account_Channel_chn_AccountChangeEvent", "Metadata": { "eventChannel": "Account_Channel__chn", "selectedEntity": "AccountChangeEvent" } } ``` 4. Send the request. The response received looks similar to this response. ``` { "id": "0v8RM0000000GHCYA2", "success": true, "errors": [], "warnings": [], "infos": [] } ``` A channel (PlatformEventChannel) can have multiple channel members (PlatformEventChannelMember), which means that you can add multiple change events to a channel. This example adds only one change event, `AccountChangeEvent`. To add another event to the channel, create another PlatformEventChannelMember. #### See Also - [_Tooling API Developer Guide_: PlatformEventChannelMember](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_platformeventchannelmember.htm) - [_Metadata API Developer Guide_: PlatformEventChannelMember](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_platformeventchannelmember.htm) # Add a Comments Column to the Orchestration Run Log Add comments from flows called by orchestration steps to the Orchestration Run Log to customize log information. ### Required Editions
View supported editions for Flow Orchestration.
1. From the Orchestration Run List View, click ![the setup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png) and select **Edit Object**. 2. In the Orchestration Run setup page, click **Page Layouts**, and select **Orchestration Instance Layout**. 3. In the Related Lists section, click the ![The wrench icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/wrench.png) for Orchestration Run Log. 4. In the Related List Properties - Orchestration Run Log window, under Available Fields, select **Comments** and click ![The right arrow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/rightArrow.gif). The Comments field is added to the Selected Fields list. 5. To change the Comments field’s location in the Orchestration Run Log, use the up and down arrows. 6. Click **OK**, and then click **Save**. # Add a Custom Button to Run an Autolaunched Flow Approval Process After you create a button that runs an active, autolaunched flow approval process, add it to the Lightning Experience record page layout for the affected object. After it’s added to the record page layout, users can manually submit records for approval. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To customize detail page layouts in Lightning App Builder: Customize Application
To add a custom button to an object’s record page layout, you must have created a custom button. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note The Submit for Approval button supports only classic Approval Processes. You can find the Submit for Approval Button in Object Manager under the Button, Links, and Actions section. 1. Open the record page for the object that you want to add a custom button to. 2. From the Setup menu on the record page, select **Edit Page**. 3. Select the Highlights Panel at the top of the page layout. The Page > Highlights Panel opens. 4. In Page > Highlights Panel, under Actions, click **Add Action**. 5. For Actions, enter the label for the custom button you created. A list of all items that contain the text you typed is shown. 6. Under Custom Buttons, select the name of the custom button that you created and then click **Done**. The button label is added to the bottom of the list of actions for the highlights panel. 7. Optional. If you want to change the order that the custom button appears in the record page layout, drag the it to a higher location in the actions list. 8. Save your work and exit Lightning App Builder. The custom button now appears in the top panel of the record page. #### See Also - [Create a Button that Runs an Autolaunched Flow Approval Process](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_deploy_create_button_for_autolaunched_approval_orchestration.htm&release=264.0.0&type=5 "So that users can manually send a record for approval by using an autolaunched flow approval process, create a button for the records to be submitted for approval.") # Add a Custom HTTP Integration to a Blueprint in Agentforce Operations Add a custom HTTP automation task to a blueprint stage to automatically send or retrieve data when a workflow reaches that stage. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Role or Access Needed
To edit a blueprint in Agentforce Operations: Admin role, Creator role, or a user with Edit access for the blueprint
After you create a custom HTTP integration, you can add it to a blueprint as an automation task. The task runs automatically when the workflow reaches it. No user action required. The integration gets or sends data and passes the results forward to subsequent tasks. To create a custom HTTP integration first, see [Create a Custom HTTP Integration in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_integrations_custom_http_create.htm&release=264.0.0&type=5 "Create a Custom HTTP integration to connect Agentforce Operations to an external API. Use Custom HTTP integrations to send or retrieve data during workflow execution."). 1. [Create a blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_create_blueprint.htm&release=264.0.0&type=5 "Use AI to generate a blueprint by describing your process and optionally uploading supporting documents. You can also build a blueprint from scratch or import one from another workspace. Anyone with the Creator role can generate blueprints in Agentforce Operations.") or [edit an existing blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_edit.htm&release=264.0.0&type=5 "Open an existing blueprint for editing to add stages, tasks, automations, or other changes."). 2. In the blueprint, in the stage where you want to add the automation, click **\+ Automation**. 3. Point to **Custom HTTP** and select the name of the integration that you want to use. 4. Optionally, enter a different name for the task. The name of the custom HTTP integration is the default name. 5. Optionally, for Description, enter a description of what the automation does. 6. For Start, select when you want the automation task to run. 7. (Optionally, add any inputs required by the integration. 8. Click **Add**. The automation task is added to the stage. When a workflow reaches this stage, Agentforce Operations runs the integration automatically, and the extracted values are available to subsequent tasks as field values. #### See Also - [Create a Custom HTTP Integration in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_integrations_custom_http_create.htm&release=264.0.0&type=5 "Create a Custom HTTP integration to connect Agentforce Operations to an external API. Use Custom HTTP integrations to send or retrieve data during workflow execution.") - [Example Simple Custom HTTP Integration in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_integrations_custom_http_example.htm&release=264.0.0&type=5 "Walk through an end-to-end example of creating a custom HTTP integration that looks up city and state information for a US postal code, and then adding it to a blueprint as an automation task.") # Add a Custom Platform Event in a New Channel Member To add a platform event to the channel that you created, create a channel member. ### Required Editions
User Permissions Needed
To create a PlatformEventChannel: Customize Application
Prerequisites: - [Create a Channel for a Custom Platform Event](https://help.salesforce.com/s/articleView?id=platform.ev_relay_create_channel_pe.htm&release=264.0.0&type=5 "Create a channel that holds a stream of custom platform events.") - Define the Carbon\_Comparison\_\_e platform event in [(Optional) Define a Platform Event](https://help.salesforce.com/s/articleView?id=platform.ev_relay_define_pe.htm&release=264.0.0&type=5 "If you have a custom platform event defined in your Salesforce org that you want to use for the event relay, you can skip this step. You can also skip this step if you want to use the event relay with a change data capture event. Otherwise, follow the steps in this section to define an example platform event, Carbon_Comparison__e, which the event relay configuration steps use.") for this channel member. 1. Send a POST request to this URI. ``` /services/data/v65.0/tooling/sobjects/PlatformEventChannelMember ``` 2. If you’re using Postman, expand **Event Platform** | **Custom Channels** | **Platform Event**, and click **Create channel member**. 3. Specify the channel in the `eventChannel` field and the event in the `selectedEntity` field. This example references a custom platform event, `Carbon_Comparison__e`. Use this example request body. In Postman, click **Body**, and replace the body with this JSON body. ``` { "FullName": "Carbon_Comparison_Channel_chn_Carbon_Comparison_e", "Metadata": { "eventChannel": "Carbon_Comparison_Channel__chn", "selectedEntity": "Carbon_Comparison__e" } } ``` 4. Send the request. The response received looks similar to this response. ``` { "id": "0v8RM0000000G3iYAE", "success": true, "errors": [], "warnings": [], "infos": [] } ``` A channel (PlatformEventChannel) can have multiple channel members (PlatformEventChannelMember), which means that you can add multiple platform events to a channel. This example adds only one platform event, `Carbon_Comparison__e`. To add another event to the channel, create another PlatformEventChannelMember. #### See Also - [_Tooling API Developer Guide_: PlatformEventChannelMember](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_platformeventchannelmember.htm) - [_Metadata API Developer Guide_: PlatformEventChannelMember](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_platformeventchannelmember.htm) # Add a Custom URL To specify the site to load when users access your custom domain, add a custom URL. Optionally, you can define additional relationships between your domains and sites by mapping paths for your domain to your sites. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, and Unlimited Editions.
Applies to: Salesforce Sites and LWR, Aura, and Visualforce sites
User Permissions Needed
To view custom URLs:

Manage Custom Domains

OR

View Setup and Configuration

To add, edit, and delete custom URLs:

Manage Custom Domains

OR

View Setup and Configuration AND either Create and Set Up Experiences OR a Site.com Publisher license

Before you can add a custom URL, set up your custom domain in Salesforce. A custom URL consists of a domain, a custom path prefix, and a unique site path. For a domain to serve an Experience Cloud site or Salesforce Site, at least one custom URL is required. In the Custom URLs table, even though the domain name and path are in separate columns, the URLs consist of the combination of the two. 1. If the custom domain serves a LWR site, associate the domain with a Commerce LWR site or with an LWR site that's hosted on Experience Delivery. 2. From Setup, in the Quick Find box, enter Custom URLs, and then select **Custom URLs**. 3. Select **New Custom URL**. 4. Select a domain. 1. Enter the name of the domain, or leave the field blank to get a full list of your domains. 2. Click the lookup icon (![The lookup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lookup_icon.png)), and then select the name of the domain in the search results. 5. Select a site. 1. Enter the name of the site, or leave the field blank to get a full list of your sites. 2. Click ![The lookup icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lookup_icon.png), and then click the name of the site in the search results. Each domain can serve up to 200 sites, and each site can be associated with up to 500 domains. An Experience Cloud site counts as two sites, so if you use only Experience Cloud sites, each domain can serve 100 sites. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you’re using a custom domain that has enabled the Salesforce CDN, then the first site you associate it with has to be either a Commerce LWR site or a site hosted on Experience Delivery. 6. Enter a unique path. To specify the root path, such as https://www.example.com, enter a slash (/). The first character of the path must be a slash (/) to indicate the root. You can extend the path after the slash. For example, if you select the domain, www.example.com, and then enter /products as the path, the resulting custom URL that serves your selected site is https://www.example.com/products. You can use the same path for more than one domain, but you can use each path only one time within the same domain. Salesforce reserves some path names, such as `/home`, /flash, `/img`, /servlet, and /sfdc. If you enter a reserved path value, you see an error. In that case, use another relevant prefix to suit your business needs. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you host multiple sites on the same domain, review your site URLs for conflicts because it’s possible to configure the same URL for pages on two different sites. Let’s say that you host Site A and Site B on the same domain, www.example.com. Site A’s URL uses the custom URL path prefix /products. Site B serves pages from the root path and has a page with the page path /products. As a result, both Site A’s URL and Site B’s page URL are https://www.example.com/products. In this scenario, a site visitor can access the Site B page only through a navigation menu on Site B. If a site visitor navigates to https://example.com/products any other way, they’re directed to Site A. If you identify a potential conflict, either rename the site path or choose a different path for serving the content on your custom domain. 7. To set this custom URL as the preferred URL for authenticated pages and email, select **Site Primary Custom URL**. This option is available for the root path for Experience Clouds sites and Salesforce Sites, but not for legacy Site.com sites. Each site can have only one primary custom URL. If you enable this setting on more than one URL that serves the same site, the last custom URL saved with that setting is used for authenticated pages and email. For Experience Cloud sites and Salesforce Sites, if you don’t select a primary URL, the first HTTPS custom URL in the site, determined alphabetically, is used for authenticated pages and email. If no custom URL uses HTTPS, your system-managed site domain is used. The system-managed domain format for Experience Cloud sites is `MyDomainName.my.site.com` in orgs with enhanced domains and `ExperienceCloudSitesSubdomain.force.com` in orgs without enhanced domains. The system-managed domain format for Salesforce Sites is `MyDomainName.my.salesforce-sites.com` in orgs with enhanced domains and `SalesforceSitesSubdomain.force.com` in orgs without enhanced domains. 8. Save your changes. If your domain uses your HTTPS certificate on Salesforce servers, saving the first custom URL added to the domain starts the provisioning process for the domain. After the provisioning process is complete, the domain’s status on the Domains Setup page changes to Awaiting Activation, and you receive an email. To activate your domain, on the Domains Setup page, click **Activate** next to your custom domain name. If your custom domain uses another domain configuration option and the domain is active, the path is publicly available. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example In this example, we want to serve two Experience Cloud sites via our custom domain. The system-managed URL for the site named Storefront is `https://MyDomainName.my.site.com/store`, and the URL for the site named Jobs is `https://MyDomainName.my.site.com/joblisting`. We add the www.example.com domain in Salesforce, and then we add two custom URLs. To drive users to the Storefront site, we create a custom URL for the root path of the domain. - For domain, we select our active domain, **www.example.com**. - For site, we select **Storefront**. - For path, we enter /. When we save this custom URL, users who visit https://www.example.com see the content from `https://MyDomainName.my.site.com/store`, but the address bar in their browser shows https://www.example.com. So users can apply for positions within the company, we create a custom URL for the Jobs site. - For domain, we select our active domain, **www.example.com**. - For site, we select **Jobs**. - For path, we enter /apply. When we save this custom URL, users who visit https://www.example.com/apply see the content from `https://MyDomainName.my.site.com/joblistings`, but the address bar in their browser shows https://www.example.com/apply. #### See Also - [Custom Domains](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt.htm&release=264.0.0&type=5 "Provide a branded experience for users who access your external-facing Salesforce content by serving your Digital Experiences or Salesforce Sites on a domain that you own, such as https://www.example.com.") - [Custom Domain Build Example](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_build_example.htm&release=264.0.0&type=5 "Domains and sites can have a many-to-many relationship through custom URLs. See this relationship in action with an example where three custom domains serve one parent site with two different brands.") # Add a Document to a Folder from a Process Add a document to one or more folders. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). After you’ve created a Quip action and selected **Add Document to Folder**, fill in the relevant fields to add the action to your process. 1. Enter a name for this action. This text appears on the canvas and helps you differentiate this action from others in your process. The name truncates to fit on the canvas. 2. Enter the URL of the document you want to add. 3. Enter the URL of the folder where you want to add your document. Add your document to multiple folders by adding commas between each folder URL. 4. Save the action. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To replace the existing Process Builder processes and Workflow Rules with flows before Process Builder and Workflow Rules reach [end of support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US), see [Quip Actions in Flow Builder](https://help.salesforce.com/s/articleView?id=xcloud.quip_automation_flow.htm&type=5&language=en_US). # Add a Flow Link to a Record Page Add a custom link to a record page that starts an active screen flow or autolaunched flow. Use the flow's web address (URL) to set up the link. ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. ## Create the Flow Create an autolaunched flow or screen flow to launch from the link. Optionally, you can send the ID of the record where the link is clicked to the flow. To send the record ID to the flow, so the flow knows what record to work on, create a flow variable called recordId to hold the ID. 1. Open the Flows list view. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. Note that the Automation app and Flows tab options don't require Setup access. 2. Create an autolaunched flow or a screen flow. 1. From the Automation app, click **New**. Then select the **Autolaunched Flow (No Trigger)** tile or the **Screen Flow** tile. 2. From Setup, click **New Flow**. Then select the **Autolaunched Flow (No Trigger)** tile or the **Screen Flow** tile.. Flow Builder opens. 3. Optionally, add a text variable to store the record ID. 1. To open the Toolbox, click ![Toolbox icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_example_use_online_form_create_record/automate_flow_build_example_use_online_form_create_record_toolbox.png). 2. Click **New Resource**, and then select **Variable**. 3. For API Name, enter recordId. 4. For Description, enter Stores the ID of the record that the link is located on. This value is passed into the flow. 5. For Data Type, select **Text**. 6. Select **Available for input**. 7. Click **Done**. 4. Optionally, add more variables to store additional input values that are sent to the flow when it runs. Learn about adding input values, in addition to the record ID, to the URL in [Send Variable Values to a Flow Using the Flow's URL](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_variable.htm&release=264.0.0&type=5 "When you distribute a flow by using a URL, you can set variables values within that flow by using parameters in the URL."). 5. Add elements to your flow to perform the actions you want. For example, if the flow has the ID of the contact sent into the flow, you can use a Send Email action to email the contact by setting Record ID to the recordId variable. 6. Save the flow. 7. Test the flow by clicking **Debug** and using test data. 8. Click **Activate**. ## Get Your Flow's URL 1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 2. For the flow that you want to run, click ![Show actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_list_enhanced_dropdown_icon.png), and select **View Details and Versions**. 3. Copy the flow's URL. The format of the URL is /flow/My\_Flow. ## Create a Custom Link 1. From Setup, click **Object Manager**. 2. Click the object that you want to add a record page link to. For example, **Contact**. The object window opens. 3. Click **Buttons, Links, and Actions**. 4. Click **New Button or Link**. 5. Give the link a label and name. 6. For Display Type, select **Detail Page Link**. 7. Leave the default values for the remaining fields. 8. In the large text box, enter your flow's URL, and then add /lightning to the start of the URL. The full text looks like `/lightning/flow/My_Flow`. 9. If you want to pass the ID of the record that the button is located on, add the value of the recordId input variable in the URL. For example, if the button is located on account records, enter ?flow\_\_recordId={Account.Id}. So the full URL is `/lightning/flow/My_Flow?flow__recordId={Account.Id}`. 10. Save your work. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note We recommend using Lightning experience and adding /lightning to the beginning of your flow URL. However, if you don't add /lightning to the flow URL, it still works, you just don't get the new benefits of running in Lightning. To learn more, see [Choosing Between Lightning and Non-Lightning Flow URL Formats](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_lightning_vs_lightning_out.htm&release=264.0.0&type=5 "When you run a screen flow from a URL, you can choose between using Lightning or the non-Lightning URL format, which uses Lightning Out. We recommend using Lightning for a faster, more consistent experience. However, there are times when you need to use the non-Lightning format."). ![An open custom detail page record link configuration window showing the selections described previously](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/distribute_flow_record_page_link.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Optionally, you can customize what happens when the flow ends. To learn more, see [Customize Flow Finish Behavior](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_returl.htm&release=264.0.0&type=5 "By default, after a user finishes a screen flow, the screen flow redirects the user to the first screen. If you want to redirect users to another page within Salesforce when they click Finish, use the retURL parameter in the flow URL."). ## Add the Custom Link to the Page Layout 1. Click **Page Layouts**. 2. Click the page layout that you want to add the link to. 3. Click **Custom Links**. 4. Drag and drop your link from the custom links list to the Custom Links section. 5. Save your work. Now, users can go to a record, click the link you created, and start the screen or autolaunched flow. If you set up input variables, those values are sent to the flow when the user clicks the Next button on the screen flow or when the autolaunched flow starts. # Add a Flow to a Utility Bar Want your flow to be accessible from any page in your app? Add it to the utility bar in your Lightning app. The utility bar gives your users quick access to commonly used tools. ### Required Editions
Available in: Lightning Experience
View supported editions.
- From Setup, in the Quick Find box, enter App, then select **App Manager**. - Edit an existing Lightning App or click **New Lightning App**. You can also upgrade a custom Classic App to a Lightning app. - Under App Settings, click **Utility Items**. - Click **Add Utility Item**, then select **Flow**. - Configure the utility item properties and the component properties. - Flow - Layout ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip If a Section component has three or more columns, give the flow’s utility item enough space to display the flow’s columns. To do so, increase the value of the Panel Width property on the flow’s utility item. - Save your changes. To verify your changes, from the App Launcher find and open the app that you added the flow to. #### See Also - [Section Screen Output Component](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_section.htm&release=264.0.0&type=5 "Organize screen components and record fields to give your users a better experience.") # Add a Flow to the Actions & Recommendations Component Want to use your flow to guide users through complex business processes in Lightning console or standard navigation apps? Associate the flow with records by using a process to create a RecordAction object, or by creating an Actions & Recommendations deployment. Then add the Actions & Recommendations component to your Lightning pages using the Lightning App Builder. When users open a record with this component, they can launch flows and other actions from the list. The flows start in a subtab in a console app, or in a popup window in a standard navigation app. The Actions & Recommendations component is great for call scripts or chat interactions. #### See Also - [_Lightning Flow for Service Developer Guide_ (English only)](https://developer.salesforce.com/docs/atlas.en-us.salesforce_guided_engagement.meta/salesforce_guided_engagement/salesforce_guided_engagement.htm) # Add a Human Reviewer to an AI Agent Task in Agentforce Operations Assign both an AI agent and a human to the same task in Agentforce Operations so the agent does the work and the human reviews it before submission. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

When an AI agent is the only assignee on a task, it completes the task autonomously without human involvement. If you want a human to review the agent's work before it's submitted, assign both the AI agent and a human to the same task. The agent fills in the requested fields, then stops and waits. The human assignee receives a notification, reviews what the agent filled in, makes any corrections, and clicks **Complete** to submit. Use this approach when: - The task involves decisions that need human judgment before being finalized - The output affects downstream partners or external systems and errors are costly - You're testing a new AI agent configuration and want to validate the results before going fully autonomous 1. Open the task you want to configure. 2. In the **Assigned to** field, add the AI agent. 3. In the same **Assigned to** field, also add the human reviewer. Both assignees show on the task. The order doesn't affect behavior. The agent always runs first. 4. Configure the task description, shared fields, and requested fields as you normally would for an AI agent task. Learn more in [Assign a Task to an AI Agent in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_assign_task_to_ai_agent.htm&release=264.0.0&type=5 "Assign a task to an AI agent in Agentforce Operations and provide the inputs needed for reliable completion.") 5. Save the blueprint. #### See Also - [Assign a Task to an AI Agent in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_assign_task_to_ai_agent.htm&release=264.0.0&type=5 "Assign a task to an AI agent in Agentforce Operations and provide the inputs needed for reliable completion.") - [AI Agent Limits and Considerations in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agent_limits.htm&release=264.0.0&type=5 "Review AI agent limitations and considerations before assigning a task to an agent.") # Add a Limit Repetitions Element to a Next Best Action Flow You can add a Limit Repetitions element to your Recommendation Strategy flow to limit the number of times that the same recommendation or offer appears on the same record or for the same user during a time period. ### Required Editions
View supported editions for Next Best Action.
User Permissions Needed
To create or manage recommendations:

Modify All Data

OR

Manage Next Best Action Recommendations

- You must have a collection of recommendations that has a valid value in the ID or RecommendationKey fields. The RecommendationKey value must be a database ID or have the syntax DYNAMIC\_. - If you include an Assignment element, from Actions, choose **Output from limit**. Or you can skip this step and add the output from the Limit Repetitions element. 1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 2. Open or create a Recommendation Strategy. 3. After the collection of recommendations, add a Limit Repetitions element. 4. Enter a label and an API Name. 5. Add a description. 6. Search for and select the Recommendation Collection that you want to filter. 7. Select the responses that you want, and then enter the number of responses and days as whole numbers. Look Within This Many Days is based on days, not hours. If the number of days is set to 1 for an accepted response, and the user accepts the recommendation at any time on Monday, the recommendation doesn’t display again until the start of Wednesday. So a one-day time period could be as few as 25 hours in duration or as many as 48 hours. 8. If you didn’t include an Assignment element, you can search for and select the collection that includes the limit repetition output. 1. In Advanced, select **Manually assign variables**. 2. From the Store Output Variables field, search for and select the output variable. 9. Click **Done**. 10. Save your work. ![Limit Repetitions element modal showing a password reset example.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/next_best_action/nba_limit_repetitions.png) ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example - If you want one accepted response over 90 days, such as a password reset recommendation, and the user accepts one time over 90 days, they don’t see the message again for 90 days. But if the user rejects the recommendation, they see the message every time they reload the page until they accept it. - If you want two accepted or rejected responses over 1 day, and a user accepts or rejects the recommendation only one time every day, they still see the recommendation. - If you want two accepted or rejected responses over 1 day, and a user accepts or rejects the recommendation twice on day one, they don’t see the recommendation on day two. They see the recommendation again on day three. If you add an Assignment element after the Limit Repetitions element and change the label for accept or reject, you must update the limit repetitions output. #### See Also - [Create Recommendations](https://help.salesforce.com/s/articleView?id=platform.nba_recommendations_app.htm&release=264.0.0&type=5 "Create offers or actions to recommend to users using Einstein Next Best Action. Recommendations are standard Salesforce records, similar to accounts and contacts, that are processed by strategies and associated with flows. Strategies determine which recommendation records are surfaced using business rules, predictive models, and other data sources. The result of this process is context-specific recommendations that you present to your users.") - [Display Recommendations](https://help.salesforce.com/s/articleView?id=platform.nba_admin_using_strategies.htm&release=264.0.0&type=5 "After creating a strategy, choose a page to run your strategy and display your recommendations. You can use a Lightning record page, an app’s home page, an Experience Cloud site page, a Visualforce page, or an external site, depending on where you want recommendations to appear.") # Add a Linked Blueprint in Agentforce Operations Nest a child blueprint inside a parent blueprint to trigger a subprocess and pass data between workflows at run time. You can only link blueprints that are in the same workspace. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Role or Access Needed
To edit a blueprint in Agentforce Operations: Admin role, Creator role, or a user with Edit access for the blueprint
1. [Create a blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_create_blueprint.htm&release=264.0.0&type=5 "Use AI to generate a blueprint by describing your process and optionally uploading supporting documents. You can also build a blueprint from scratch or import one from another workspace. Anyone with the Creator role can generate blueprints in Agentforce Operations.") or [edit an existing blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_edit.htm&release=264.0.0&type=5 "Open an existing blueprint for editing to add stages, tasks, automations, or other changes."). 2. In the blueprint, click the **\+ Workflow** button. 3. Select the blueprint to use for the linked blueprint. You can select any existing blueprint or create one. To create one, scroll to the end of the blueprint list and click **\+ Create new blueprint**. If the child blueprint has input fields configured in its Intake section, those fields appear in the **Send info** section so you can map values from the parent to the child. 4. Select whether the linked blueprint starts when the stage starts, after a specific task ends, or on a specific date. 5. Send information from the parent to the child blueprint at run time by mapping parent fields to child input fields. To pass information from the parent to the child, the child blueprint must have input fields configured in its Intake section. These mapped fields become workflow-level fields in the child workflow. 1. In the **Send info** section, for each required input field in the child blueprint, select a matching field from the parent. Fields must be the same data type. For example, you can't pass a checkbox field value to a date field. If the field names match exactly, Agentforce Operations automatically maps them. If you don't see a field to pass, verify that a field of the same type exists in an upstream task in the parent blueprint or check the child blueprint's Intake section to confirm that the child blueprint has input fields. 6. Select any output fields that you want to receive back from the linked blueprint at run time. 1. In the **Receive info** section, click **Add fields**. 2. Select the fields that you want to send back to the parent blueprint. 3. Click **Apply**. At run time, when the child workflow running from the blueprint completes, Agentforce Operations returns the selected output fields to the parent workflow running from the blueprint. You can use these fields in downstream tasks and approvals. 7. Click **Add.** Agentforce Operations adds the child blueprint to the parent blueprint as a task in the stage. When you publish the parent blueprint, Agentforce Operations automatically publishes any linked child blueprints that aren't published. However, before the linked child blueprint can be published, it must have version notes. If the child blueprint doesn't have version notes, add version notes on the child blueprint before publishing the parent. # Add a Live App to a Template from a Process Keep your templates up to date with the latest Salesforce data. Add live Salesforce records and list views to your templates using Process Builder. ### Required Editions
Available in: Lightning Experience
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). After you create a Quip action and select **Create New Document** or **Edit Document**, fill in the relevant fields to add the action to your process. 1. From the Content Type dropdown, select **Quip Live App**. 2. To add a live Salesforce record, select **Salesforce Record**. 1. Enter the Salesforce Record ID. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To add a dynamic Salesforce record that updates based on the record that the document is embedded in, enter the value as a Reference. To add a specific record, enter the numbers that appear in the record URL as a String. 2. These steps are optional and used as placeholders if the record can’t be found. 3. **Optional:** Enter the Salesforce record name. 4. **Optional:** Enter the record type. 5. **Optional:** Enter the name of the Salesforce org. 3. To add a live Salesforce list view, select **Salesforce List**. 1. Enter the Salesforce List View ID. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To add a dynamic Salesforce list view that updates based on the record that the document is embedded in, enter the value as a Reference. To add a specific list view, enter the numbers that appear in the record URL as a String. 2. Enter the list view object type. 3. **Optional:** Enter the name of the Salesforce org. 4. Save the action. Take note of these considerations to using Process Builder to add a Salesforce live app to your templates. - You can’t select which record fields to display from Process Builder. - The owner of a live app added by Process Builder to a template is the first user to open the copied document. Only the live app owner can save changes to Salesforce. Other users can edit and comment on the live app, but these changes don’t sync to Salesforce. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To replace the existing Process Builder processes and Workflow Rules with flows before Process Builder and Workflow Rules reach [end of support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US), see [Quip Actions in Flow Builder](https://help.salesforce.com/s/articleView?id=xcloud.quip_automation_flow.htm&type=5&language=en_US). # Add a Mobile Action Group for Actionable Notifications You can now add actions to custom notifications. These notifications appear on a user’s screen, depending on their settings, and can be used for a variety of actions, such as approving requests, following up on deals that might be at risk, or closing a case. ### Required Editions
Available in: Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create and edit mobile action groups: Customize Application
To view Apex classes: View All Data
1. From Setup, in the Quick Find box, enter Notification Builder, and then select **Custom Notifications**. 2. Click on a custom notification. 3. Click on the **Mobile Action Groups** tab and create a new mobile action group, giving it a unique API name. 4. Click **New Action** to add up to three actions per mobile action group. For each action, add a name, API name, and select an action type. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - You can create a mobile action group only if mobile is selected as a supported channel. - You can have a total of two mobile action groups per custom notification, and each group can have a maximum of three actions. - When sending a notification, you must specify which mobile action group to use. The action group configured here defines the available actions, but it won't appear in the notification unless you provide it in the send request. ![Actionable notification on an Android device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/notifications_android.png) ![Actionable notification on an iOS device.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/notifications_ios.png) # Add a Navigation Menu By default, when you create a menu, it's generated from the pages and site map links in the Site Map folder in the Site Pages view. However, you can also create a menu that's generated from the pages in the Landing Pages folder or from the child or sibling pages of a site page. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

1. Arrange site pages and [site map links](https://help.salesforce.com/s/articleView?id=platform.siteforce_sitemap_link_add.htm&release=264.0.0&type=5 "Pages aren't the only things you can assign to your site map. Add internal or external URLs to your site map to customize your navigation menus and breadcrumbs, and achieve greater flexibility and control.") in the Site Map folder or the Landing Pages folder in the order you want them to appear in the menu by dragging them to the desired location. Drag a page or site map link onto another page or link to make it a child of that item. Drag pages or links into the Landing Pages folder to exclude them from the site map. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip If you can't see the Site Map folder in the Site Pages view on the Overview tab, click ![Site map](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_sitemap.png). 2. Open the page template or site page that you want to add the navigation menu to. 3. Drag a **Menu** from the Page Elements pane onto the page. 4. In the Properties pane, under Menu Source, select the pages that you want to use for the menu. By default, the Site Map folder is used to create the menu. Any site map link in the applicable hierarchy also shows up in your menu. - Select **Landing Pages** to create the menu from the pages in the Landing Pages folder. - Select **Child Pages** to create the menu from the current page's child pages. - Select **Sibling Pages** to create the menu from all of the pages that share the same parent as the current page. - Select a specific site page to create the menu from just its child pages. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you add a menu element to a page template, the menu doesn't display correctly in the template if you select Child Pages or Sibling Pages as the menu source, because page templates aren't part of the site map hierarchy. However, the menu appears as expected on site pages based on the page template. 5. To alter the appearance of the menu, you can select a different theme from the Theme Name drop-down list. For example, to create a drop-down menu, select **Horizontal Drop-down**. You can [modify the style of any theme](https://help.salesforce.com/s/articleView?id=platform.siteforce_menu_style.htm&release=264.0.0&type=5 "Navigation menus are styled using CSS themes that you can customize to match the design of your website. When you add a navigation menu to a page, it uses a default theme to control its appearance. Choose from other existing themes in the Theme Name dropdown list in the Properties pane.") to suit your needs. 6. To change the name of a page in the menu, open the associated page and update its Navigation Name field in the Properties pane. Navigation names can include spaces and special characters. Alternatively, to change the name of a site map link in your menu, hover over the link in the Site Pages view on the Overview tab, click **Edit**, and update the name. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip - When you add a new page or site map link, update a page's Navigation Name property, or rearrange pages or links, the menu updates automatically to reflect the changes. - To automatically include a menu on every site page, add the menu to a [page template](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_master_create.htm&release=264.0.0&type=5 "A page template lets you define the layout and functionality of site pages in one location. By adding common page elements to the template and then basing site pages on it, you can achieve a consistent look and feel throughout your site. And because a template-based page inherits the template's elements, you can make site-wide changes from one location.") and base the site pages on it. - You can hide a page in menus, breadcrumbs, and the site map by selecting the Hide Page checkbox found on the Properties pane for each page. This setting also prevents website visitors from accessing the page's direct URL. By default, all pages are visible. #### See Also - [Style Navigation Menus](https://help.salesforce.com/s/articleView?id=platform.siteforce_menu_style.htm&release=264.0.0&type=5 "Navigation menus are styled using CSS themes that you can customize to match the design of your website. When you add a navigation menu to a page, it uses a default theme to control its appearance. Choose from other existing themes in the Theme Name dropdown list in the Properties pane.") - [About the Site Map and Page Hierarchy](https://help.salesforce.com/s/articleView?id=platform.siteforce_menu_sitemap.htm&release=264.0.0&type=5 "The Site Pages view on the Overview tab contains the pages and site map links of your website. The Site Map folder reflects the hierarchy or tree structure of your site by housing site pages and links that are included in the site map. When you create pages or site map links, they're automatically added to this folder. The Landing Pages folder houses standalone pages that are excluded from the site map, making it ideal for temporary pages, such as promotional or competition pages.") - [Add Site.com Page Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects_add.htm&release=264.0.0&type=5 "Page elements are the building blocks of your site pages and page templates. Panel elements add structure to your pages. You can think of both pages and panels as “containers” for the page elements that you add to them.") # Add a Quality Gate to a Test Suite Attach a quality gate rule to a test suite to enforce pass criteria before work items can be promoted. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
Not Available in: Government Cloud Plus. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center is supported in orgs in the EU that aren't part of EU OZ, per standard product terms and conditions.
User Permissions Needed
To add a quality gate to a test suite: Lifecycle Center Testing Manager
Assign a quality gate to a test suite within a pipeline stage to begin enforcement. Once assigned, the gate evaluates every test run for that suite automatically. 1. From the pipeline view, select the **Tests** tab. 2. On the stage card, click **Add Gate** for the event. 3. In the Add Quality Gates window, select the quality gate you want to assign. 4. Click **Add**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note Once a quality gate is assigned to a test suite at a stage, it can be removed or deleted from that stage. #### See Also - [Create a Quality Gate Rule](https://help.salesforce.com/s/articleView?id=platform.devops_center_testing_create_quality_gate_rule.htm&release=264.0.0&type=5 "Define a quality gate rule that sets the pass threshold, severity limits, or essential test requirements for a test suite.") - [Remove a Quality Gate from a Test Suite](https://help.salesforce.com/s/articleView?id=platform.devops_center_testing_remove_quality_gate_from_test_suite.htm&release=264.0.0&type=5 "Detach a quality gate rule from a test suite to remove the enforcement criteria for that suite.") # Add a Release Environment Connect your production org as the release environment in Lifecycle Center. Every project requires one release environment and at least one development environment. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
Not available in: Government Cloud Plus. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center is supported in orgs in the EU that aren’t part of EU OZ, per standard product terms and conditions.
User Permissions Needed
To add a release environment: Lifecycle Center Admin
Before you begin, complete these tasks. - Make sure that team members who deploy to production are users in the production org. - Make sure that you have the production org login credentials ready. 1. Go to the Pipelines tab, and select your pipeline. 2. Locate the Production stage in your pipeline. 3. Click **Connect Environment**. ![Connect Environment option in the Production stage in the pipeline.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/next_gen_connect_release_environment.png) 4. In the **Add Environment** window, enter an environment name and environment type. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_tip.png) Tip For the release environment, select the environment type as **Production Org**. 5. Click **Connect**. 6. Log in to your production org, and authorize the connection. Your release environment appears on your pipeline. ![Connected production environment in pipeline.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/next_gen_connected_release_environment.png) Next, add at least one development environment so that your team can start making changes. See [Add Development Environments](https://help.salesforce.com/s/articleView?id=platform.devops_center_add_development_environments.htm&release=264.0.0&type=5 "Add source-tracked development environments for team members in Lifecycle Center. You can add a development environment manually from the pipeline, or automatically when your team members commit changes from DX Inspector."). #### See Also - [Add Development Environments](https://help.salesforce.com/s/articleView?id=platform.devops_center_add_development_environments.htm&release=264.0.0&type=5 "Add source-tracked development environments for team members in Lifecycle Center. You can add a development environment manually from the pipeline, or automatically when your team members commit changes from DX Inspector.") - [Lifecycle Center Environments](https://help.salesforce.com/s/articleView?id=platform.devops_center_environments_overview.htm&release=264.0.0&type=5 "Environments are the Salesforce orgs, such as sandboxes, scratch orgs, or production orgs, connected to your Lifecycle Center pipeline. Lifecycle Center uses different environment types for development, pipeline stages, and release.") # Add a Screen Flow to a Public Experience Cloud Site Create an Experience Cloud site that's available to everyone and add a flow component to a page in the site and select an active screen flow. You can link to the flow page from your company's website. Use this method to share flows with external users who don't have a Salesforce license, such as customers, partners, or other external users. Because users aren't logging into your site, you don't need to purchase Experience Cloud licenses. ### Required Editions
View supported editions.
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To send email from Salesforce, the Send Email action in Salesforce Flow requires domain-level and user-level email verification. Email delivery fails if either the user's email address or the email-sending domain is unverified. See [Requirements to Send Email from Salesforce](https://help.salesforce.com/s/articleView?id=xcloud.security_email_verification_requirements.htm&language=en_US&type=5). Adding a flow to an Experience Cloud site without having users login is great for flows where you’re just collecting information. For example, create a screen flow that collects a person's name and email and then create a lead record by using that collected information. Name your flow page Join Our Email List!. Adding a flow to an Experience Cloud site is similar to adding a flow to a Lightning page. Flows on Experience Cloud sites work well for: - Surveys - Registration forms - Lead capture forms ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note - The Flow component doesn't show the flow in design or preview mode. Publish and activate the site to test the flow. 1. Create a screen flow. Learn more in [Get a Basic Screen Flow Ready for Users](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_create_a_screen_flow.htm&release=264.0.0&type=5 "Create a basic screen flow and get it ready for your users to run. Add screen elements and screen components to gather information, set up what happens with that information, test that everything works, and roll it out to your users.") or in the [Screen Flow Trailhead Module](https://trailhead.salesforce.com/content/learn/modules/screen-flows). 1. In your screen flow, click the gear to open the flow properties. 2. Click **Show Advanced**. 3. For How to Run the Flow, select **System Context Without Sharing**. 4. If your flow is sending an email, in the Send Email action element, set the sender to a verified organization-wide email address. Learn more in [Set Up Organization-Wide Email Addresses](https://help.salesforce.com/s/articleView?id=sales.emailadmin_manage_orgwide_email_addresses.htm&type=5&language=en_US). 5. Save your flow as a new version. 6. Click **Activate.** 2. Set up access to your flow. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. 1. Click the actions menu dropdown for your flow and select **Edit Access**. 2. Select **Override default behavior and restrict access to enabled profiles or permission sets.**. 3. Click **Save**. 3. Enable Digital Experiences. If it's already enabled, skip to the next step. 1. From Setup, in the Quick Find box, enter Digital Experiences, and then click **Settings** under Digital Experiences. 2. Click **Enable Digital Experiences**. 3. Click **Save**. 4. Create an Experience Cloud site. 1. In the Digital Experiences All Sites page in Setup, click **New**. 2. Select the **Build Your Own (LWR)** template, and then click **Get Started**. 3. Enter a name and end of URL for your site and click **Create**. After a few minutes, your new site opens. 4. Click the **Builder** card. 5. Create a page to put the flow on. 1. Click **Home** to open the Pages menu. 2. Click **\+ New Page**. 3. Select **Standard Page**. 4. Click **\+ New Blank Page**. 5. Give the page a name and URL. For example, Join Our Email List and join-our-email-list. 6. Add the flow to the page. 1. Click the lightning icon to open the Components list. 2. Click and drag the **Flow** component on to the page. 3. In the Flow component settings, for Flow, select the active screen flow that you want to show on the page. 4. If the flow includes variables that are available for input, the variable fields appear in the property editor. Enter a value for each variable or leave the fields blank. 7. Add any other additional text or styling to the page. Learn more about building an Experience Cloud site in [Build and Customize Your Experience Cloud Site](https://help.salesforce.com/s/articleView?id=experience.exp_cloud_build.htm&type=5&language=en_US). Consider adding your logo to the page by using an Image component so users can tell it's a legitimate web page. 8. Give unauthenticated guest users access to your site and flow. 1. Click the gear to open Settings. 2. In the General section, for Public Access, select **Guest users can see and interact with the site without logging in**. 3. Under Guest User Profile, click the site profile. For example, click **Join Our Email List Profile**. The profile opens in Setup in a new browser tab. 4. Search for and select **Flow Access**. 5. Add your screen flow to the Enable Flows list and click **Save**. 9. Publish and activate your site. 1. Go back to your Experience Cloud site. 2. Click **Publish**, and then click **Publish** again to confirm. When the site is published, you receive an email. 3. After the site is published, in Setup, search for and select **All Sites**. 4. Click **Workspaces**next to your Experience Cloud site. 5. Click the **Administration** card. 6. In the Settings section, click **Activate**. 10. Give unauthenticated guest users access to public APIs. Because we selected a Lightning runtime (LWR) template, this step is required. 1. In the Administration workspace, in the Preferences section, select **Allow guest users to access public APIs** and then click **Save**. 11. Test your flow. 1. Go back to the Digital Experiences All Sites page in Setup. 2. Click **Builder** next to your Experience Cloud site. 3. Click the gear to open Settings. 4. Under Published Status, copy the URL. 5. Paste the URL into the address bar of a new incognito browser window. Use an incognito window to mimic the experience of a user who isn't logged into your org. 6. Back in Experience Builder, go to your page with the flow on it. 7. Click the gear near the pages menu to open the page Properties. 8. Copy the page URL and paste it after the base URL in the incognito window. 9. Press the enter key and see your flow on the web page. Now, you can use that full URL to link to the screen flow. # Add a Screen Flow to an Authenticated Experience Cloud Site To add a screen flow to a page on your authenticated Experience Cloud website, use an Experience Builder Flow component. Use this method if you have a customer portal or other website that requires users to log in to use. ### Required Editions
View supported editions.
Before you begin, complete the tasks in [Experience Cloud](https://help.salesforce.com/s/articleView?id=experience.networks_overview.htm&type=5&language=en_US) to set up your user licenses and Experience Cloud site. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To require that users log in to your Experience Cloud site, purchase Experience Cloud licenses. This solution includes multiple roles and permission sets, which are listed in the linked topics that provide the instructions to complete the steps in Flow Builder, Experience Cloud, and Setup. To refer to this topic, bookmark this page or keep it open in a separate browser tab. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note - Flows in Experience Cloud sites are supported through the Flow and Suggested Actions components. - Flow creators can overwrite error messages with their own content. 1. In Flow Builder, create and activate a screen flow. See [Build a Flow](https://help.salesforce.com/s/articleView?id=platform.flow_build.htm&release=264.0.0&type=5 "After you model the process that you want to automate, design and build the flow in Flow Builder.") and [Screen Flows](https://trailhead.salesforce.com/content/learn/modules/screen-flows) in Trailhead. 2. In Experience Builder, add the Flow component to the section of the page where you want the screen flow to appear. See [Flow (Experience Builder Component)](https://help.salesforce.com/s/articleView?id=experience.rss_flow_component.htm&type=5&language=en_US). 3. In the property editor, configure the Flow component. 1. From the Flow dropdown, select the active screen flow that you want to show on the page. 2. If the flow includes variables that are available for input, the variable fields appear in the property editor. You can enter a value for each variable or leave the fields blank. 4. For record detail pages, if you want to send information about the record to the flow, select to pass that information to the flow. - To send the record ID to the flow, make sure that you have a text variable named `recordId` in your flow that's available for input. Then, in the flow property editor, under `recordId`, select **Pass record ID into this variable**. - To send the entire record to the flow, make sure that you have a record variable named `recordId` in your flow that's available for input. Then, in the flow property editor, under `recordId,` select **Pass all field values from the record into this flow variable.**. Here's an example of sending a record to a flow: [Flow Example: Use an Online Form to Create a Record](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_example_use_online_form_create_record.htm&release=264.0.0&type=5 "Create a screen flow that collects information about a new opportunity and then automatically creates an opportunity record. For example, on customer calls, your reps scramble to capture notes about customer interest in new products. They often use sticky notes, which are hard to read or get lost. Create an online form embedded on the case record page so they can quickly capture and confirm basic information. When they submit the form, the screen flow creates a new opportunity on the Account record that’s related to the case.") 5. If you want unauthenticated web visitors to complete the screen flow, grant guest user profile permission to the flow and to the Experience Builder site. See [Allow Guest Users to Access Flows](https://help.salesforce.com/s/articleView?id=experience.rss_flow_guestuser.htm&type=5&language=en_US) and [Guest User Setup Checklist](https://help.salesforce.com/s/articleView?id=platform.networks_guest_checklist.htm&type=5&language=en_US). 6. If your screen flow includes a data element, give object-level and field-level permissions to the guest user profile in Setup. See [Edit Object Permissions in Profiles](https://help.salesforce.com/s/articleView?id=platform.perm_sets_object_perms_edit.htm&type=5&language=en_US) and [Set Field Permissions in Permission Sets and Profiles](https://help.salesforce.com/s/articleView?id=platform.users_profiles_fls.htm&type=5&language=en_US). 7. Save your work. 8. In Experience Builder, publish your site and test your flow on your site. See [Publish Your Experience Builder Site Customizations](https://help.salesforce.com/s/articleView?id=experience.community_designer_publish.htm&type=5&language=en_US). #### See Also - [Limit User Access to Run Flows](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_security.htm&release=264.0.0&type=5 "Limit which users can run flows based on their user record, profile, or permission set. To apply more granular security to an individual flow, override the default behavior, then grant access to that specific flow based on user profile or permission set.") - [Sharing Settings](https://help.salesforce.com/s/articleView?id=platform.managing_the_sharing_model.htm&language=en_US) - [_Trailhead_: Display a Flow on a Page Outside Your Salesforce Org](https://trailhead.salesforce.com/content/learn/modules/screen_flow_distribution/screen_flow_distribution_external) - [_Trailhead_: Grant Flow Permissions and Context](https://trailhead.salesforce.com/content/learn/modules/flow-implementation-2/grant-flow-permissions-and-context) - [Section Screen Output Component](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_section.htm&release=264.0.0&type=5 "Organize screen components and record fields to give your users a better experience.") - [Custom Login Flows](https://help.salesforce.com/s/articleView?id=xcloud.security_login_flow.htm&language=en_US) - [_Trailhead_: Create a Self-Registration Flow for an Experience Cloud Site](https://trailhead.salesforce.com/content/learn/modules/selfregistration-in-a-portal) # Add a Single User Depending on the size of your organization or your new hire onboarding process, you may choose to add users one at a time. The maximum number of users you can add is determined by your Salesforce edition. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Contact Manager, Essentials, Group, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To create users: Manage Internal Users
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note You create Experience Cloud partner and customer users from contacts. For more information, see [Create Experience Cloud Site Users](https://help.salesforce.com/s/articleView?id=platform.networks_create_external_users.htm&release=264.0.0&type=5 "Create site users to access Experience Cloud sites."). ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_tip.png) Tip Setup with Agentforce can help you manage users more efficiently. For more information, see [Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_overview.htm&language=en_US) and [User Management in Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_user_management.htm&language=en_US). 1. Read the guidelines for adding users. 2. From Setup, in the Quick Find box, enter Users , and then select **Users**. 3. Click **New User**. 4. Enter the user’s name and email address and a unique username in the form of a email address. By default, the username is the same as the email address. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_important.png) Important Your username must be unique across all Salesforce orgs, including trial and Sandbox orgs. The username must be in the format of an email address, for example, jane@salesforce.com. The email used in your username need not function or match the email address used for the account. You can have the same email address associated with your account across multiple orgs. For example, create unique usernames like jane@company.sandbox and jane@trialorg.company.com, for different accounts that are associated with the same email address. Keep in mind that Salesforce Customer Support can’t change usernames or deactivate users from an org. If you get a Duplicate Username error, check if the username is already in use in your production, trial, or Sandbox orgs. Deactivate or change the username for the user record, then create your account with your desired username in your production org. If you’re unable to change or deactivate a username, contact your Salesforce admin for help. If you’re unable to locate the org where the username is already in use, try a different username to create your account. 5. In Professional, Enterprise, Unlimited, Performance, and Developer Editions, select a Role. 6. Select a User License. Only licenses with remaining seats are displayed. The user license determines which profiles are available for the user. 7. Select a profile, which specifies the user’s minimum permissions and access settings. 8. If your organization has Approvals enabled, you can set the user’s approver settings, such as delegated approver, manager, and preference for receiving approval request emails. 9. Check Generate new password and notify user immediately to have the user’s login name and a temporary password emailed to the new user. For new Chatter Only users, an administrator must expose the tabs for accounts, contacts, dashboards, and reports. By default, these tabs are hidden for Chatter Only users. And, the admin must turn on Salesforce CRM Content, Ideas, and Answers if they want their Chatter Only users to have access to them. Professional Edition organizations must have Profiles enabled to perform these tasks. For more information, contact Salesforce Customer Support. #### See Also - [Guidelines for Adding Users](https://help.salesforce.com/s/articleView?id=platform.users_adding_guidelines.htm&release=264.0.0&type=5 "Understand important options for adding users. Learn what to communicate to users about passwords and logging in.") - [Add Multiple Users](https://help.salesforce.com/s/articleView?id=platform.users_adding_multiple.htm&release=264.0.0&type=5 "You can quickly add up to 10 users at a time to your organization. Your Salesforce edition determines the maximum number of users that you can add.") - [Edit Users](https://help.salesforce.com/s/articleView?id=platform.editing_users.htm&release=264.0.0&type=5 "To change a user's details—such as username, profile, role, or contact information—edit the user account.") - [User Fields](https://help.salesforce.com/s/articleView?id=platform.user_fields.htm&release=264.0.0&type=5 "The fields that comprise the Personal Information and other personal settings pages describe a user.") - [Licenses Overview](https://help.salesforce.com/s/articleView?id=platform.users_licenses_overview.htm&release=264.0.0&type=5 "To enable specific Salesforce functionality for your users, you must choose one user license for each user. To enable more functionality, you can assign permission set licenses and feature licenses to your users or purchase usage-based entitlements for your organization.") - [View a User’s Access Summary](https://help.salesforce.com/s/articleView?id=platform.users_access_summary.htm&release=264.0.0&type=5 "To make managing permissions and troubleshooting access easier, in the User Access Summary, you can see a consolidated view of a user’s key details and assigned permissions and tabs. You can also manage the user’s assigned permission sets, permission set groups, public groups, and queues.") # Add a Time-Dependent Action to Your Workflow Rule Time-dependent actions are executed at a specific time, such as 10 days before a record’s close date. When that specific time passes, the workflow rule reevaluates the record to make sure that it still meets the rule criteria. If the record does, the workflow rule executes those actions. ### Required Editions
Available in: Lightning Experience and Salesforce Classic
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create or change workflow rules and actions: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Workflow Rules have ended as of December 31, 2025. This means that support won't be provided for any workflow rules and bugs in the Workflow Rules product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing workflow rules continue to run, and you can activate, deactivate, and edit them; however we recommend using Flow Builder. To migrate existing workflow rules, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). Time-dependent actions and time triggers are complex features. As you work with time-dependent actions and time triggers, keep in mind their considerations. If you plan on configuring workflow rules that have time-dependent actions, specify a default workflow user. Salesforce associates the default workflow user with a workflow rule if the user who initiated the rule is no longer active. 1. Open a workflow rule. 2. In the Time-Dependent Workflow Actions section, click **Add Time Trigger**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can’t add a time trigger if: - The evaluation criteria is set to Evaluate the rule when a record is: created, and every time it's edited. - The rule is activated. - The rule is deactivated but has [pending actions](https://help.salesforce.com/s/articleView?id=platform.workflow_queue.htm&release=264.0.0&type=5 "When a workflow rule that has time-dependent actions is triggered, use the workflow queue to view pending actions and cancel them if necessary.") in the workflow queue. 3. Specify a number of days or hours before or after a date that’s relevant to the record, such as the date the record was created. If the workflow rule is still active and valid when this time occurs, the time trigger fires the workflow action. 4. Save your time trigger. 5. In the section for the time trigger you created, click **Add Workflow Action**. 6. Select one of the options to create an action or select an existing one. 7. Click **Done**. #### See Also - [Add Automated Actions to Your Workflow Rule](https://help.salesforce.com/s/articleView?id=platform.creating_workflow_rules_configure_actions.htm&release=264.0.0&type=5 "After you’ve set the criteria for your workflow rule, identify what to do when that criteria are met.") - [Considerations for Time-Dependent Actions and Time Triggers](https://help.salesforce.com/s/articleView?id=platform.workflow_time_action_considerations.htm&release=264.0.0&type=5 "When creating time-dependent actions and time triggers for workflow rules, consider these factors.") # Add a User Users with Admin roles can add users and manage users and their roles in the Account Settings Users tab. In the Users tab, a Master Admin can also: - Click the three dots menu, and select Disable User or Delete User. - Click the three dots menu, Disable MFA, or Reset MFA. - Click Export Users to CSV to download a CSV of users. - Click Replace master admin to change the master admin user. 1. Go to Users in Account Setting. 2. Click Add User and scroll to the bottom of the page. 3. Enter an email address for the user. 4. Select a role from the drop-down list. 5. Select a Business Unit. You can change the Business Units membership later in the Account Settings page, Business Units tab. 6. Click Add User. The unverified user appears in the list. An email is sent to the user to verify the user credentials. When you add a new user, they have 48 hours to verify their email address. If they don't verify, they will need to be removed, and added again as a new user. # Add a Utility Bar to Lightning Apps The utility bar is a specialized type of Lightning page that gives your users quick access to common productivity tools, like Notes and Recent Items. It appears as a fixed footer that users can access to open utilities in docked panels. Some utilities support pop-out, which lets them open in a new browser window. ### Required Editions
Available in: Lightning Experience
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To view apps: View Setup and Configuration
To manage apps: Modify All Data
Utilities harness the power of Lightning components. When you set up a utility bar, you select which Lightning components to use as utilities. Background utility items are added the same way as normal utility items, but don’t appear in the utility bar. The ![Icon representing hidden status](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/hideIcon.png) icon appears next to background utility items on the utility item list. If you have only background utility items in your utility bar, the utility bar doesn’t appear in your app. You need at least one non-background utility item in your utility bar for it to appear. You can add or edit a utility bar at any time. 1. From the Home tab in Setup, enter App in the Quick Find box, then select **App Manager**. 2. To edit or add a utility bar to an existing app, click **Edit** in the dropdown menu next to your app. To create a Lightning app with a utility bar, click **New Lightning App**. 3. Click the **Utility Items** tab and add the utilities you want. Specify component and utility properties, like the height and width of the utility panel, and what label and icon to display in the utility bar. Some utilities have properties that can’t be changed. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip A Lightning page region can contain up to 100 components. We recommend adding no more than 10 utilities, and that you keep the utility labels short and sweet. You want your users to quickly find the tools and processes they need most. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example Here’s a utility bar with the Recent Items and Notes utilities. ![Screen shot of a Lightning app with a utility bar.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lightning_app_utility_bar.png) When creating a utility bar for your app, keep these things in mind: - Utility bars created using the Lightning App Wizard or in the Lightning App Builder can be assigned to only one Lightning app. However, utility bars created using the API can be assigned to multiple Lightning apps. - The utility bar doesn’t support Visualforce pages or components. - The utility bar doesn’t fully support the Chatter Publisher and Feed components. - The History utility works in Lightning console apps only. - The default utility bar alignment matches the user’s language setting alignment. For example, English is read left to right. If you select Default and a user’s language is set to English, the utility bar appears at the bottom of the left side of the screen. If you select Mirrored, the utility bar appears at the bottom of the right side of the screen. #### See Also - [Customize Your Lightning Console App with Utilities](https://help.salesforce.com/s/articleView?id=service.console_lex_custom_utilities.htm&type=5&language=en_US) - [Create Lightning Apps](https://help.salesforce.com/s/articleView?id=platform.apps_lightning_create.htm&release=264.0.0&type=5 "As in Salesforce Classic, you can create apps in Lightning Experience, but with even more bells and whistles. You can brand and customize Lightning apps to help your users work more efficiently. For example, you can create a Lightning app for your finance department that includes all important items, including tabs, for users to complete common tasks. You can customize the navigation bar color, brand it with a logo, and make the app available in the App Launcher for the user profiles associated with the finance department.") - [_Lightning Web Components Dev Guide:_ Configure a Component for the Utility Bar](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.use_config_for_utility_bar) - [_Salesforce Console Developer Guide:_ Using Background Utility Items](https://developer.salesforce.com/docs/atlas.en-us.api_console.meta/api_console/sforce_api_console_js_lightning_background_utility_item.htm) - [_Salesforce Console Developer Guide:_ Using Pop-Out Utilities](https://developer.salesforce.com/docs/atlas.en-us.api_console.meta/api_console/sforce_api_console_lightning_utility_popout.htm) # Add a Widget to a Page Add a widget that enhances your page. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

Before you can add a widget to a page, you must make sure it's available for use. Either: - Select Available in Page Elements pane in the Properties pane when the widget is open. - Hover over the widget in the Widgets view on the Overview tab, select **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Edit Properties**, and select Available in Page Elements pane. When the page is open: 1. Drag the widget from the Widgets section of the Page Elements pane onto the page. When you add a widget to a page, it creates a copy or instance of the widget. You can't edit this widget instance. 2. If available, update the properties in the widget instance's Properties pane. #### See Also - [Widgets Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_overview.htm&release=264.0.0&type=5 "Widgets let you save time by building custom page elements that you and your team can reuse throughout the site.") - [Custom Properties for Page Templates or Widgets Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_properties_about.htm&release=264.0.0&type=5 "When you create a page template or a widget, you can add custom properties to it and specify the value and type of each property to achieve greater flexibility over how templates and widgets are reused.") - [Edit and Delete Widgets](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_manage.htm&release=264.0.0&type=5 "Access the site's widgets in the Widgets view under All Site Content (on the Overview tab).") - [Create Widgets](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_create.htm&release=264.0.0&type=5 "Widgets let you create custom, reusable page elements by combining existing Site.com page elements, custom code, and CSS.") # Add a Workday Backup Service Secure your Workday data by adding a backup service. A Workday backup service protects data against loss and corruption and helps you meet data protection compliance regulations. When accessing your account for the first time, you are prompted to add a backup service. 1. Select New Service... . 2. Select the Workday tile. 3. Enter the required information to allow Own to connect to Workday. 4. Select Report as a Service (RAAS) and provide the required information. 5. Click + Add and select the custom reports to be included with the new service. 6. Check each custom report for a prompt. For each prompt, provide the requested information. When finished, select Add Service to complete the process. The Backup dashboard is displayed and the new service creation process begins. Once completed, the new service is ready for use. # Add Actions to Global Publisher Layouts Actions you add to the global publisher layouts appear on pages such as the Home and Chatter pages. They also appear on the action bar and action menu on the Feed and People pages in the Salesforce mobile app. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions
User Permissions Needed
To create actions: Customize Application
To customize action layouts and page layouts: Customize Application
To view page layouts: View Setup
Arrange the actions so that the frequently used actions appear first in each list. You can add actions to two sections on a page layout:
Quick Actions in the Salesforce Classic Publisher

This section can contain actions only from the Quick Actions category in the palette.

Actions in this section appear in the Chatter publisher in Salesforce Classic.

Salesforce Mobile and Lightning Experience Actions

This section can contain actions only from the Mobile & Lightning Actions category in the palette.

On object page layouts, the Mobile & Lightning Actions category contains all available types of actions for the object, including quick actions, productivity actions, Lightning component actions, and standard and custom buttons.

Actions in this section appear in the action bar and action menu in the Salesforce mobile app and in various areas of Lightning Experience.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Changes to user layouts override the global publisher layout on user profile pages and the Chatter home page. Actions on the user profile page come from the Quick Actions in the Salesforce Classic Publisher section of the global publisher layout. Only standard Chatter actions appear on the user profile page, regardless of which actions are present in the User Page Layout or the global publisher layout. 1. From Setup, in the Quick Find box, enter Publisher Layouts, and then select **Publisher Layouts**. 2. To add or remove actions, drag them to and from the palette. 3. To reorder actions, select an action and drag it to a new position. 4. Click **Save** when you’re done, or click **Quick Save** to save your changes and continue working on the layout. If you navigate away without saving, you lose your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Before using the personal email setting When you click an email address to compose an email, which email editor do you want to use?, confirm that the Global Publisher Layout has the email action in the **Salesforce Mobile and Lightning Experience Action** section. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example Let’s add the New Account action to the publisher on the Home and Chatter pages in Salesforce Classic. The New Account action lets users create an account directly from the publisher. Drag the **New Account** action to the Quick Actions in the Salesforce Classic Publisher section and save your changes. ![Add action](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/chatter_admin_add_actions.png) Go to the Chatter tab in Salesforce Classic. Now the New Account action shows up in the publisher. ![Publisher action](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/chatter_admin_publisher_action.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The Chatter page in Lightning Experience supports only the standard Chatter actions Post, Poll, and Question, and if you have Groups, the Announcement action. #### See Also - [Actions in Lightning Experience](https://help.salesforce.com/s/articleView?id=platform.actions_in_lex.htm&release=264.0.0&type=5 "In Lightning Experience, actions appear in the Global Actions menu in the header, on related lists, and on list view items. Actions also appear on a record page, in one of several places depending on the action’s type.") - [Send Email Action Considerations for Cases](https://help.salesforce.com/s/articleView?id=case_interaction_send_email_quick_action_considerations.htm&language=en_US) - [Assign Global Publisher Layouts to User Profiles](https://help.salesforce.com/s/articleView?id=platform.assigning_global_publisher_layouts_to_profiles.htm&release=264.0.0&type=5 "After you finish creating a global publisher layout, you can assign it to different user profiles. For example, a Marketing User and a Standard User need different actions in the Chatter publisher or in the Salesforce mobile app. Create multiple global publisher layouts and assign them to different user profiles to customize the actions for each profile.") - [Email Application Publisher Layouts](https://help.salesforce.com/s/articleView?id=outlookcrm_side_panel_set_up_publisher.htm&language=en_US) # Add Actions to Your Process After you define a criteria node, define the actions that are executed when the criteria are met. Actions are executed in the order in which they appear in the Process Builder. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). An action group can consist of a combination of immediate and scheduled actions. Immediate actions are executed when evaluation criteria are met. Scheduled actions are executed at a specified time. For example, Salesforce can automatically send an email reminder to the account team if a high-value opportunity is still open 10 days before the specified close date. Before you begin, consider whether you want this action to be executed immediately or at a specific time. If you want to execute the action at a specific time, [identify when those actions should be executed](https://help.salesforce.com/s/articleView?id=platform.process_action_schedule.htm&release=264.0.0&type=5 "In record-change processes and event processes, you can schedule actions to execute at a specific time. An action group that supports scheduled actions can have multiple schedules. For example, you can schedule some actions to execute one day from now and others to execute three days from now."). 1. Click **Add Action**. 2. Select the type of action to create, and then fill out the fields to define the action. - **[Create a Record from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_create.htm&release=264.0.0&type=5)** Create a record by manually entering values or by using the values of related records. - **[Invoke a Process from Another Process](https://help.salesforce.com/s/articleView?id=platform.process_action_invoke_process.htm&release=264.0.0&type=5)** Invoke a process from another process. With invocable processes, you have the option of reuse so that you don’t spend your time on repetitive work. - **[Create a Chatter Post from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_post.htm&release=264.0.0&type=5)** Post to the feed of a user, a Chatter group, or the record that started the process. - **[Use a Quick Action from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_quick.htm&release=264.0.0&type=5)** Create a record, update a record, or log a call by using a quick action that you or another admin created for your organization. - **[Work with Quip from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_quip.htm&release=264.0.0&type=5)** Create documents, chat rooms, and folders when important events occur. Attach a document to a record so your users have information in context. Update your spreadsheets with the latest Salesforce data. Send a message to a chat room or document. Add new slides to a deck, copy documents, add members to a document or chat, and more. - **[Launch a Flow from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_flow.htm&release=264.0.0&type=5)** Start an autolaunched flow from your process to automate complex business processes. Create flows to perform logic and have events trigger the flows via processes without writing code. - **[Send an Email from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_email.htm&release=264.0.0&type=5)** Easily send an email from a process by using an email alert. Email alerts are configured outside of the Process Builder and contain the standard text, list of recipients, and template for an email. - **[Send a Custom Notification from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_customnotification.htm&release=264.0.0&type=5)** Send customized notifications when important events occur. Alert an account owner if a new support case is logged while trying to close a deal, or send a notification for a workflow built entirely with custom objects. Add recipients and content to your custom notification, then add it to your process. - **[Send a Survey Invitation from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_send_survey_invite.htm&release=264.0.0&type=5)** Send an email invitation containing the link to a particular survey question or to launch a survey. - **[Submit a Record for Approval from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_submit.htm&release=264.0.0&type=5)** Submit the record that started the process for approval. - **[Update Records from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_update.htm&release=264.0.0&type=5)** Update one or more records that are related to the record that started the process by manually entering values or by using the values from related records. - **[Call Apex Code from a Process](https://help.salesforce.com/s/articleView?id=platform.process_action_apex.htm&release=264.0.0&type=5)** Add customized functionality to your process by calling Apex from the process. # Add an Approval Step to a Classic Approval Process Approval steps define the chain of approval for a particular classic approval process. Each step determines which records can advance to that step, who to assign approval requests to, and whether to let each approver’s delegate respond to the requests. The first step specifies what to do if a record doesn’t advance to that step. Later steps specify what happens if an approver rejects the request. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create approval steps: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. You can add steps to a classic approval process only if it’s inactive. From the classic approval process, click **New Approval Step**, and follow the wizard. Steps are executed in the order specified. 1. **[Control Which Records Apply to an Approval Step in a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_step_entrycriteria.htm&release=264.0.0&type=5)** Control which records are part of the approval step by setting the step’s criteria. You can also specify what happens to records that don’t meet the step’s criteria. 2. **[Identify Assigned Approvers for an Approval Step in a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_step_approver.htm&release=264.0.0&type=5)** Specify who to send an approval request for this step to. 3. **[Specify Rejection Behavior for an Approval Step in a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_step_rejection.htm&release=264.0.0&type=5)** Configure what happens if an approver rejects a request. The final rejection actions for the classic approval process determine the first step’s rejection behavior. #### See Also - [Create a Step to Interact with Approvers](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_build_create_step_to_interact_with_reviewers.htm&release=264.0.0&type=5 "Create approval steps to assign flow approval processes to specific people, groups, or queues. Approval steps generate work items that assigned approvers can approve or reject with or without running the associated flow. Approvers can complete approval work items via email when you enable email approval response in Process Automation Settings.") - [Approval Steps](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_concepts_approval_step.htm&release=264.0.0&type=5 "Approval steps require user interaction and create approval actions that assigned approvers or delegates can complete asynchronously. Approvers can complete reviews without running the associated flow, so include only actions directly relevant to the approval work item. Use a background step after the approval step to update related records or send other notifications.") - [Set Up a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_getting_started.htm&release=264.0.0&type=5 "If classic Approval Processes is the right automation tool for your business process, follow these high-level steps to create one for your org.") - [Enable Email Approval Response for Classic Approval Processes](https://help.salesforce.com/s/articleView?id=platform.approvals_email.htm&release=264.0.0&type=5 "After you’ve reviewed the considerations and prepared the right template, flip the switch that lets users respond to approval requests directly from their email.") # Add an Approval Step to the Approval Process Add an approval step to determine the records that can advance to that step and the approver, and whether to let an approver’s delegate respond to the requests. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note You can add steps to an approval process only if it’s inactive. 1. From Setup, in the Quick Find box, enter Approval Processes, and then click **Approval Processes**. 2. Select the approval process to which you want to add the approval step. 3. Under Approval Steps, click **New Approval Step**. 4. Enter a name for the approval step, and then click **Next**. 5. Select the **All records should enter this step** radio button, and then click **Next**. 6. Select the **Automatically assign to queue** radio button, and then select a queue. 7. Save your changes. # Add an Approval Work Item List Object Page to an Experience Cloud Site Internal users can view and manage their assigned work from the Approvals app or the Approval Work Items list view. Add the Approval work item List object page to your Aura or LWR site so that credentialed site visitors can see and access their assigned approvals work items. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To create an Experience Cloud site:

Create and Set Up Experiences

AND

View Setup and Configuration

To customize an Experience Cloud site:
  • Be a member of the site

    AND

    Create and Set Up Experiences
  • OR
  • Be a member of the site AND an experience admin, publisher, or builder in that site
To publish an Experience Cloud site:
  • Be a member of the site

    AND

    Create and Set Up Experiences
  • OR
  • Be a member of the site AND an experience admin or publisher in that site
To run a flow in an Experience Builder site: Run Flows
1. In Experience Builder, select **Pages** | **New Page**. 2. Select **Object Pages**. 3. In the New Object Pages dialog box, enter approval work item in the Search box. 4. Select **Approval Work Item**, and click **Create**. 5. In the dialog box, click **Create**. 6. Select **Pages** | **Approval Work Item List**. 7. Preview and publish your site. # Add an Automated Action to Your Classic Approval Process If you didn’t create an automated action before configuring your classic approval process, you can create one directly from the classic approval process. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create approval actions: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. 1. Open the classic approval process that you want to add an action to. 2. From the appropriate related list, click **Add New**. For an approval step where the Approval Actions and Rejection Actions are hidden, click **Show Actions**. 3. Choose the type of action. The list of available actions differs depending on your settings and whether you’ve reached the limit for a type of action. 4. Configure the action. #### See Also - [Set Up a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_getting_started.htm&release=264.0.0&type=5 "If classic Approval Processes is the right automation tool for your business process, follow these high-level steps to create one for your org.") - [Considerations for Automated Actions](https://help.salesforce.com/s/articleView?id=platform.customize_automatedactions_considerations.htm&release=264.0.0&type=5 "Before you start working with automated actions, familiarize yourself with relevant limits and special behaviors.") - [Groups of Automated Actions in a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_automated_actions_groups.htm&release=264.0.0&type=5 "Each classic approval process is organized into groups of actions based on when the actions occur, such as initial submission. To add an automated action to your classic approval process, determine which group of actions to add it to.") # Add an Element to a Group Add a new element directly inside a group as you build your flow. ### Required Editions
View supported editions.
User Permissions Needed
To create and manage flow element groups : Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. 1. Open the Flows list view. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. Note that the Automation app and Flows tab options don't require Setup access. 2. Click an existing flow to open it, or create a flow by clicking **New** or **New Flow.** 3. If the target group is collapsed, expand it so that you can select a location inside it. 4. Inside the group, click ![Add element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/flow_plus_icon.png), and then select an [element](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements.htm&release=264.0.0&type=5 "An element represents an action that the flow can run. Examples include reading or writing Salesforce data, displaying information and collecting data from flow users, runnning business logic, or manipulating data."). The new element shows inside the group and connects to the elements before and after it on the path. 5. Configure the element in the properties panel. 6. Save your flow. #### See Also - [Add Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_add.htm&release=264.0.0&type=5 "Add elements to a flow in auto-layout mode to build your automation.") # Add an End Element to a Flow Approval Process Path All elements in a flow approval process are connected automatically, or they’re connected by Go To connectors that you add manually. To finish a path in your flow approval process, add an End element. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To open, edit, or create a flow approval process in Flow Builder:

Manage Flow

AND

Approval Designer

To add an End element, you must have at least 1 Decision element with 2 decision outcomes in your flow approval process. 1. After the last element in the path where you want to add the End element, click ![Add element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/orchestration/orchestrator_fbuilder_circleplus.png). 2. Select **End**. The path now ends execution when this element is reached. # Add an End Element to an Orchestration Path All elements in an orchestration are connected automatically or connected by Go To connectors that you add manually. To finish a path in your orchestration, add an End element. ### Required Editions
View supported editions for Flow Orchestration.
To add an End element, you must have at least one Decision element and two paths in your orchestration. 1. After the last element in the path where you want to add the End element, click ![Add element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/orchestration/orchestrator_fbuilder_circleplus.png). 2. Select **End**. The path now ends execution when this element is reached. # Add an Escalation to a Task in Agentforce Operations Add an escalation to a task to automatically notify additional people before or after the due date in Agentforce Operations. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Role or Access Needed
To edit a blueprint in Agentforce Operations: Admin role, Creator role, or a user with Edit access for the blueprint
1. [Create a blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_create_blueprint.htm&release=264.0.0&type=5 "Use AI to generate a blueprint by describing your process and optionally uploading supporting documents. You can also build a blueprint from scratch or import one from another workspace. Anyone with the Creator role can generate blueprints in Agentforce Operations.") or [edit an existing blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_edit.htm&release=264.0.0&type=5 "Open an existing blueprint for editing to add stages, tasks, automations, or other changes."). 2. In the blueprint, create a task by clicking **\+ Task** or open an existing task. 3. In the task configuration, after the **Assigned to** field, click **\+ Add escalation**. 4. Select the type of escalation. - To add a person as an additional assignee, select **Assign**. - To add a person as a CC, select **CC**. Assign adds an assignee without replacing the original assignee. 5. Select who to notify. You can select a person, team, role, or people field from an earlier task. 6. Select when to notify. 1. Select a number. 2. Select the unit of time. 3. Select whether to notify before the due date or after. 7. To add more escalations, click **\+ Add escalation**. You can configure up to five escalations per task. 8. Click **Save changes**. To understand what happens when an escalation triggers, see [What Happens When a Task Escalates in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_task_escalations_runtime.htm&release=264.0.0&type=5 "Understand what happens when a task escalation triggers in Agentforce Operations."). For limits and edge cases, see [Task Escalation Limits and Considerations in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_task_escalations_considerations.htm&release=264.0.0&type=5 "Review limits and considerations for task escalations in Agentforce Operations."). # Add an Existing Automated Action to Your Classic Approval Process If you’ve already created an automated action, you can add it to your classic approval process. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To select approval actions: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. 1. Open the classic approval process that you want to add an action to. 2. From the appropriate related list, click **Add Existing**. If that button is hidden, click **Show Actions**. 3. Choose the type of action. 4. Move the action from Available Actions to Selected Actions. 5. Save your changes. #### See Also - [Groups of Automated Actions in a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_automated_actions_groups.htm&release=264.0.0&type=5 "Each classic approval process is organized into groups of actions based on when the actions occur, such as initial submission. To add an automated action to your classic approval process, determine which group of actions to add it to.") - [Considerations for Automated Actions](https://help.salesforce.com/s/articleView?id=platform.customize_automatedactions_considerations.htm&release=264.0.0&type=5 "Before you start working with automated actions, familiarize yourself with relevant limits and special behaviors.") # Add an Immediate Action to Your Workflow Rule Immediate actions, like their name suggests, are executed as soon as the workflow rule finishes evaluating the record. ### Required Editions
Available in: Lightning Experience and Salesforce Classic
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create or change workflow rules and actions: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Workflow Rules have ended as of December 31, 2025. This means that support won't be provided for any workflow rules and bugs in the Workflow Rules product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing workflow rules continue to run, and you can activate, deactivate, and edit them; however we recommend using Flow Builder. To migrate existing workflow rules, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). For details on each action type, see [Automated Actions](https://help.salesforce.com/s/articleView?id=platform.customize_automatedactions.htm&release=264.0.0&type=5 "An automated action is a reusable component that performs some sort of action behind the scenes—like updating a field or sending an email. After you create an automated action, add it to a process, milestone, or other automated process."). 1. Open a workflow rule. 2. In the Immediate Workflow Actions section, click **Add Workflow Action**. 3. Select one of the options to create an action or select an existing one. #### See Also - [Add Automated Actions to Your Workflow Rule](https://help.salesforce.com/s/articleView?id=platform.creating_workflow_rules_configure_actions.htm&release=264.0.0&type=5 "After you’ve set the criteria for your workflow rule, identify what to do when that criteria are met.") # Add an Index to a Big Object The index defines the composite primary key for a custom big object and is used for querying and filtering the big object data. Each big object requires an index. To create an index, you must have at least one required custom field defined on the big object. See [Considerations When Creating an Index](https://help.salesforce.com/s/articleView?id=platform.custom_bo_considerations.htm&release=264.0.0&type=5 "Plan carefully when creating an index for your custom big object. The index is used for querying and filtering the big object data and must be designed properly.") for more details. 1. From the Index section of a big object detail page, click **New**. This button displays only if the big object has at least one required custom field. 2. Add a Label and Name for the index. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_warning.png) Warning When querying a big object record via SOQL and passing the results as arguments to the delete API, if any index field name has a leading or trailing white space, you can't delete the big object record. 3. For each custom field listed, set the Index Position and Index Direction. The order in which you define the fields determines the order that they’re listed in the index. Set the Index Position to **1** for the most frequently used filter parameter. ![Big Object Index Definition](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/setup_custom_bo_index.png) 4. Save the index. # Add Anchors to Pages in Design Mode An anchor is an invisible marker that identifies a particular location on a page. If you’re a designer or site administrator, you can add an anchor to the page and then create a hyperlink that jumps to that specific location, which can be useful if a page is particularly long. For example, if your page has several sections, you could add links to each section at the top of the page to aid navigation. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To edit only content in Site.com sites:

Site.com Contributor User

AND

Contributor role assigned at the site level

When the page is open in Design Mode: 1. Double-click the content block on the page. 2. Place your cursor at the beginning of the line where you want to link to and click ![Named anchor](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_anchor.png). 3. Enter a name for the anchor and click **Apply**. Ideally, use a name that helps identify the anchor’s location on the page—for example, top. 4. Now [create a hyperlink](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_hyperlink.htm&release=264.0.0&type=5 "When viewing a page in Design Mode, designers and site administrators can create hyperlinks to external Web pages or websites, pages and assets in the site, email messages, and anchors on the page.") that links to the anchor. #### See Also - [Attach Hyperlinks to Text and Images in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_hyperlink.htm&release=264.0.0&type=5 "When viewing a page in Design Mode, designers and site administrators can create hyperlinks to external Web pages or websites, pages and assets in the site, email messages, and anchors on the page.") - [Edit Content Blocks in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_edit.htm&release=264.0.0&type=5 "Designers and site administrators can edit content blocks on the page. Content blocks contain the text for site pages, and can also house images, videos, and hyperlinks.") - [Understand the Content Editing Toolbar](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_toolbar.htm&release=264.0.0&type=5 "Designers and site administrators can edit content blocks when in Design mode. Content blocks contain the site page's text, along with images, videos, and hyperlinks.") # Add and Customize Tabs on Lightning Pages Using the Lightning App Builder With the Lightning App Builder, you can create, update, delete, and change the order of tabs and tab sets on record, app, and Home pages in Lightning Experience. Configure the tabs that your users see, name them whatever you like, and add components to each tab. ### Required Editions
Lightning App Builder available in: both Salesforce Classic and Lightning Experience
Lightning Home and utility bar pages available in: Lightning Experience
Lightning app and record pages available in: both the Salesforce mobile app and Lightning Experience
Email application pane pages available in: both Salesforce Classic and Lightning Experience

Available in: Group, Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
1. Open a Home, app, or record page for Lightning Experience in one of these ways. - From the Setup menu, select **Edit Page**. ![Edit Page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_lab_edit_page.png) When you select **Edit Page** for the first time, Salesforce makes a copy of the standard page. This copy is what you edit in the Lightning App Builder. If a customized page exists and is active, selecting Edit Page opens that page to edit. - Open a page from the Lightning App Builder list page. From Setup, in the Quick Find box, enter App Builder, and then select **Lightning App Builder**. 2. Add a Tabs component to the page. A default set of tabs is added. 3. To add a tab, click **Add Tab** in the Tabs component properties. 4. Customize a tab by clicking it in the properties pane. You can select a different standard label, or click **Custom** and enter the tab name you want. ![Custom Tab Labels in Lightning App Builder](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lab_custom_tab_label.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Custom tab labels in the Tabs component—including those custom tab labels installed from packages—aren’t translated. For example, if you create a custom Goals tab in English, then view the page as a user whose language is set to French, the tab still displays as Goals. However, you can use the `{!$Label.customLabelName}` expression in a component label or attribute to represent a custom label that you create in Setup using the custom label feature. For more information, see [Build Localized Component Labels and Attribute Values on Lightning Pages with Custom Labels](https://help.salesforce.com/s/articleView?id=platform.lightning_page_components_use_expressions_for_labels.htm&release=264.0.0&type=5 "When you specify labels or attributes in the Lightning App Builder such as for components, field section headers, or custom tabs, you can use the {!$Label.customLabelName} expression to help define the label or attribute’s value."). 5. If needed, add a visibility rule to show or hide individual tabs. 1. Click a tab in the Tabs properties pane. For example, click **Related**. 2. Click **Add Filter** and specify filter criteria, then click **Done**. 3. Click **Done** again to save your changes. ![Set Conditional Visibility for a tab](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/conditional_visibility_tab.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If all components of an individual tab are hidden due to visibility rules, then Salesforce hides the tab, too. For example, if all components of the Related tab are hidden, then Salesforce hides the Related tab. If all individual tabs within a Tabs component are hidden due to visibility rules, then Salesforce hides the entire Tabs component on the record page. 6. To add your first component to a tab, select the tab on the canvas, and then drop the component directly below it. ![Adding a Component to a Tab](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lab_add_comp_to_tab.png) 7. Reorder tabs in the Tabs properties pane by dragging them into position. You can’t drag and drop individual tabs on the canvas. #### See Also - [Create and Configure Lightning Record or Home Pages](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_customize_lex_pages.htm&release=264.0.0&type=5 "Use the Lightning App Builder to add, remove, or reorder components on a record or Home page to give users a customized view.") - [Lightning App Builder Considerations](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when working with Lightning pages and Lightning apps in the Lightning App Builder.") - [Personalize the Navigation Bar in Lightning Experience](https://help.salesforce.com/s/articleView?id=xcloud.user_userdisplay_tabs_lex.htm&type=5&language=en_US) # Add and Edit Elements Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Adding and managing elements in a flow requires the Manage Flow permission. You don't need to be an admin to have Manage Flow. Ask your admin to add it to your profile or permission set. - **[Add and Edit Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout.htm&release=264.0.0&type=5)** Create automations and stay orgnaized using a streamlined canvas experience. - **[Add and Edit Elements in Free-Form](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_freeform.htm&release=264.0.0&type=5)** Create a flow with a drag-and-drop interface that allows you to place elements anywhere. # Add and Edit Elements in Auto-Layout Create automations and stay orgnaized using a streamlined canvas experience. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Adding and managing elements in a flow requires the Manage Flow permission. You don't need to be an admin to have Manage Flow. Ask your admin to add it to your profile or permission set. ## What Is Auto-Layout? Auto-layout mode is a streamlined experience for building flows that keeps your canvas neat and tidy. Unlike free-form building where you drag and drop elements anywhere on the canvas, auto-layout automatically arranges elements in a structured, linear path. This makes it easier to follow the flow logic and maintain a clean, organized canvas. Auto-layout is the default mode for Flow Builder. ![Flow Builder open in auto-layout mode.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/elements_auto_layout_overview.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note In auto-layout mode, your changes are automatically saved to your draft flow. To make your changes permanent, save your flow before you close its window in Flow Builder. Auto-layout provides these element management capabilities to help you build flows efficiently: - [Add Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_add.htm&release=264.0.0&type=5 "Add elements to a flow in auto-layout mode to build your automation.") - Insert new elements into your flow to build your automation logic - [Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_edit.htm&release=264.0.0&type=5 "Modify existing elements in a flow to update their configuration or behavior.") - Modify existing element configurations to refine your flow's behavior - [Copy Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_copy.htm&release=264.0.0&type=5 "Duplicate elements in your flow to reuse them in other parts of your automation.") - Duplicate elements to reuse configurations and save time - [Move Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_move.htm&release=264.0.0&type=5 "Relocate elements within your flow to reorganize the flow logic and improve readability.") - Relocate elements within your flow to reorganize the logic - [Delete Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_delete.htm&release=264.0.0&type=5 "Remove elements from your flow when they're no longer needed in your automation.") - Remove elements that are no longer needed in your flow - **[Add Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_add.htm&release=264.0.0&type=5)** Add elements to a flow in auto-layout mode to build your automation. - **[Edit Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_edit.htm&release=264.0.0&type=5)** Modify existing elements in a flow to update their configuration or behavior. - **[Copy Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_copy.htm&release=264.0.0&type=5)** Duplicate elements in your flow to reuse them in other parts of your automation. - **[Move Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_move.htm&release=264.0.0&type=5)** Relocate elements within your flow to reorganize the flow logic and improve readability. - **[Delete Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_delete.htm&release=264.0.0&type=5)** Remove elements from your flow when they're no longer needed in your automation. - **[Group Flow Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_group_elements.htm&release=264.0.0&type=5)** Organize related flow elements into named, collapsible sections to make complex flows easier to navigate and maintain. #### See Also - [Flow Elements](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements.htm&release=264.0.0&type=5 "An element represents an action that the flow can run. Examples include reading or writing Salesforce data, displaying information and collecting data from flow users, runnning business logic, or manipulating data.") # Add and Edit Elements in Free-Form Create a flow with a drag-and-drop interface that allows you to place elements anywhere. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Adding and managing elements in a flow requires the Manage Flow permission. You don't need to be an admin to have Manage Flow. Ask your admin to add it to your profile or permission set. To add an element in free-form, drag the [element](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements.htm&release=264.0.0&type=5 "An element represents an action that the flow can run. Examples include reading or writing Salesforce data, displaying information and collecting data from flow users, runnning business logic, or manipulating data.") that you want to use onto the canvas. Edit the generated label and description if needed. Flow Builder generates them based on the element's configuration, and the API name populates based on the label. After creating an element, [connect](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_route_add.htm&release=264.0.0&type=5 "Identify which elements the flow runs and in what order by connecting the elements on your canvas together. To change the run order, move elements and add or remove connectors.") the element to another element to determine the order in which they’re run. Don’t forget to connect the Start element to another element. If you want to change an element’s configuration after you created it, double-click the element, make your changes, then click **Done**. #### See Also - [Flow Elements](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements.htm&release=264.0.0&type=5 "An element represents an action that the flow can run. Examples include reading or writing Salesforce data, displaying information and collecting data from flow users, runnning business logic, or manipulating data.") - [Move and Connect Elements to Change a Flow Route](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_route_add.htm&release=264.0.0&type=5 "Identify which elements the flow runs and in what order by connecting the elements on your canvas together. To change the run order, move elements and add or remove connectors.") # Add and Update Multiple Users in Bulk in Agentforce Operations Upload a CSV file to invite users to the workspace, add roles to existing users, or update their names. A CSV file can include up to 10,000 rows, including the header row. You can add roles to users. You can't remove or create roles by uploading a CSV file. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Role or Access Needed
To manage user data in Agentforce Operations: Admin role or People Admin role
Agentforce Operations uses each person's email address to identify them in the CSV. New users have a **Create** action in the Review step, and existing workspace members have an **Update** action. The Review step also flags rows with issues as a problem or a warning. Address all problems before you submit the upload. Agentforce Operations skips the data that it can't process in rows with a warning. Include Email, Name, and Type columns in your CSV file. Enter Internal or External as the Type value for every row, including rows for existing workspace members. To assign roles to new users or add roles to workspace members, add a Roles column. Separate multiple roles with a semicolon (`;`). 1. In the navigation sidebar, click **Admin**. 2. On the **People** tab, click **\+ Add or update**. 3. Click **Invite multiple people**, and then click **Continue**. 4. Optionally, download the CSV template with instructions. 5. Click **Continue**. 6. Click to add or drag your CSV file and then click **Continue**. 7. Review the user list. The table shows a **Create** action for new users and an **Update** action for existing workspace members. Agentforce Operations highlights rows with a problem in red and rows with a warning in orange. 8. Optionally, to see all issues in one place, click **Download validation report**. 9. Optionally, address rows with problems. - To remove the row from the Review table, click ![Remove row icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-agentforce_operations-264-0-0-production-enus/dce314e6-0a31-4a8b-98f7-3d2a3fd02ee2/agentforce_operations/images/afsc_remove.png). - Fix the problem in the CSV file, click **Back**, remove the file, and upload the corrected file. 10. Optionally, address rows with warnings. - To remove the row from the Review table, click ![Remove row icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-agentforce_operations-264-0-0-production-enus/dce314e6-0a31-4a8b-98f7-3d2a3fd02ee2/agentforce_operations/images/afsc_remove.png). - Fix the issue in the CSV file, click **Back**, remove the file, and upload the corrected file. - Keep the row in the upload. When you submit the upload, Agentforce Operations skips the data it can’t process. 11. Click **Submit**. 12. Click **Finish**. The upload processes in the background. New users receive a Welcome to Agentforce Operations email with a link to log in to the workspace. You receive an email when the upload is complete. # Add Any Metadata Component Manually A key benefit of DevOps Center is that we track changes for you. However, for those times when you require flexibility to include more metadata than what was pulled automatically, you can select and commit additional metadata source files, not just the ones that DevOps Center determines have changed. Some use cases include: - Source tracking fails to identify that a file has changed. - Your development environment is shared, and another teammate has already committed a file that you want to also include in your work item commit. If the component hasn’t changed since the other teammate committed it, it doesn’t appear in your changes list automatically. - You want to commit files that were changed before source tracking was enabled in the development environment. If you manually add a component that’s already in the Changes list, the Operation type continues to reflect the original Operation type (CHANGE or ADD). 1. On the Work Item Changes tab, click **Add Components Manually**. 2. Select a component type from the list. 3. (Optional) Narrow the results by entering alphanumeric characters in the file name field, or selecting who last modified the component from the menu. 4. Select which components to add. ![Add Component dialog with two files selected to add manually.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/work-item-add-components.png) 5. Click **Add**. After it’s added, the component appears in the Changes list with an Operation type of MANUAL. # Add Assigned Service Resources as Recipients Retrieve the list of service resources assigned to a service appointment and add them as recipients to the email notification list. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
- **[Retrieve List of Assigned Service Resources](https://help.salesforce.com/s/articleView?id=platform.ls_get_assigned_service_resources_records.htm&release=264.0.0&type=5)** To retrieve the service resources assigned to a service appointment, configure a Get Records element. - **[Add Assigned Service Resources to the Appointment Notification Email List](https://help.salesforce.com/s/articleView?id=platform.ls_create_loop_to_assign_service_resources_userid.htm&release=264.0.0&type=5)** Collect the user IDs associated with the assigned service resource records and add them as recipients to the email notification list. # Add Assigned Service Resources to the Appointment Notification Email List Collect the user IDs associated with the assigned service resource records and add them as recipients to the email notification list. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To open, edit, or create a flow in Flow Builder: Manage Flow
To run a flow: Run Flows
1. In Flow Builder, from the Elements panel, drag **Loop** onto the canvas. 2. Enter a name, such as Loop Assigned Resources, and an API name, such as Loop\_Assigned\_Resources. 3. For Collection Variable, enter {!AssignedResourceRecords}, and then click **Done**. 4. Connect the Loop element with the Get Assigned Resources element. 5. In Flow Builder, from the Elements panel, drag **Assignment** onto the canvas. 6. Enter a name, such as Add Resource as Recipient, and an API name, such as Add\_Resource\_as\_Recipient. 7. Under Set Variable Values, click **\+ New Resource**, and configure the resource. 1. For Resource Type, select **Variable**. 2. Enter an API name, such as RecipientIds. 3. For Data Type, select **Text**. 4. Select **Allow multiple values (collection)**, and then click **Done**. 8. For Operator, select **Add**. 9. For Value, enter {!Loop\_Assigned\_Resources.ServiceResource.RelatedRecordId}, and then click **Done**. 10. Connect the Loop Assigned Resources Loop element with the Add Resource As Recipient Assignment element. 11. Connect the Add Resource As Recipient Assignment element to the Loop element. 12. For the loop connector, select **For each item in the collection**, and then click **Done**. Add the parent record associated with the service appointment to the email notification list. # Add Authenticated Site.com Pages to Community Tabs After you create a private Site.com page, you can add the page to a tab in your community. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage a community’s Site.com custom pages:

Create and Set Up Communities

OR

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

In this case, you need to create a web tab that points to your Site.com page. 1. In the Properties pane for your page, select Show Salesforce Header. Selecting this option ensures that you see tabs in your community. 2. Enter the tab name as it must appear on the tab in your community. The web tab you create must have the same name. 3. [Determine the correct URL for the page](https://help.salesforce.com/s/articleView?id=platform.siteforce_communities_url.htm&release=264.0.0&type=5 "Determine a Site.com page’s URL to let your users access it directly, make it the home page for your community, and more."). The URL must be in the following format https://MyDomainName.my.site.com/mycommunity/s/, where pagename matches the name of your page. 4. From Setup, enter Tabs in the Quick Find box, then select **Tabs**. 5. In Web Tabs, click **New** and enter the name of the tab as it appears in the Tab Name field in your page properties. 6. On the Step 3 screen, paste the URL you created in the Button or Link URL text box. 7. Return to the Create Community wizard and add the new tab to your community. To preview the private page in your community, you must publish your Site.com site. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can’t publish your site from the sandbox. #### See Also - [Experience Cloud](https://help.salesforce.com/s/articleView?id=experience.networks_overview.htm&type=5&language=en_US) - [Create Web Tabs](https://help.salesforce.com/s/articleView?id=platform.creating_web_tabs.htm&release=264.0.0&type=5 "Build web tabs so that your users can use your web applications or other websites from within the application.") # Add Automated Actions to a Classic Approval Process You can associate actions to approval steps, initial submission, final approval, final rejection, or recall. Classic approval processes support four automated actions. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs.
Action Type Description
Task Assigns a task to a user who you specify. You can specify the subject, status, priority, and due date of the task.
Email Alert Sends an email to a designated recipient using a specified email template.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new value.
Outbound Message

Sends a message to a designated endpoint. You can also specify a username and the data to include in the message.

Not supported for classic approval processes on junction objects.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example When expenses are approved, you want to print checks for payment. To do so, you add an outbound message, which sends the appropriate information to your Oracle accounting service, as a Final Approval action. - **[Groups of Automated Actions in a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_automated_actions_groups.htm&release=264.0.0&type=5)** Each classic approval process is organized into groups of actions based on when the actions occur, such as initial submission. To add an automated action to your classic approval process, determine which group of actions to add it to. - **[Add an Automated Action to Your Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_creating_approval_actions.htm&release=264.0.0&type=5)** If you didn’t create an automated action before configuring your classic approval process, you can create one directly from the classic approval process. - **[Add an Existing Automated Action to Your Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_selecting_approval_actions.htm&release=264.0.0&type=5)** If you’ve already created an automated action, you can add it to your classic approval process. #### See Also - [Set Up a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_getting_started.htm&release=264.0.0&type=5 "If classic Approval Processes is the right automation tool for your business process, follow these high-level steps to create one for your org.") - [Automated Actions](https://help.salesforce.com/s/articleView?id=platform.customize_automatedactions.htm&release=264.0.0&type=5 "An automated action is a reusable component that performs some sort of action behind the scenes—like updating a field or sending an email. After you create an automated action, add it to a process, milestone, or other automated process.") - [Considerations for Automated Actions](https://help.salesforce.com/s/articleView?id=platform.customize_automatedactions_considerations.htm&release=264.0.0&type=5 "Before you start working with automated actions, familiarize yourself with relevant limits and special behaviors.") # Add Automated Actions to Your Workflow Rule After you’ve set the criteria for your workflow rule, identify what to do when that criteria are met. ### Required Editions
Available in: Lightning Experience and Salesforce Classic
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create or change workflow rules and actions: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Workflow Rules have ended as of December 31, 2025. This means that support won't be provided for any workflow rules and bugs in the Workflow Rules product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing workflow rules continue to run, and you can activate, deactivate, and edit them; however we recommend using Flow Builder. To migrate existing workflow rules, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). - **[Add an Immediate Action to Your Workflow Rule](https://help.salesforce.com/s/articleView?id=platform.workflow_immediate_actions.htm&release=264.0.0&type=5)** Immediate actions, like their name suggests, are executed as soon as the workflow rule finishes evaluating the record. - **[Add a Time-Dependent Action to Your Workflow Rule](https://help.salesforce.com/s/articleView?id=platform.workflow_time_dependent.htm&release=264.0.0&type=5)** Time-dependent actions are executed at a specific time, such as 10 days before a record’s close date. When that specific time passes, the workflow rule reevaluates the record to make sure that it still meets the rule criteria. If the record does, the workflow rule executes those actions. #### See Also - [Identify Your Salesforce Org’s Default Workflow User](https://help.salesforce.com/s/articleView?id=platform.workflow_defaultuser.htm&release=264.0.0&type=5 "Select a Default Workflow User that you want Salesforce to display with a workflow rule when the user that triggered the rule isn’t active.") - [Set the Criteria for Your Workflow Rule](https://help.salesforce.com/s/articleView?id=platform.workflow_rules_define.htm&release=264.0.0&type=5 "Get started with creating a workflow rule by selecting the object the rule relates to and configuring its criteria.") # Add Cart Item Action In a B2B Commerce Checkout flow, add an item to a cart. ### Required Editions
Available in: Lightning Experience
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Cart actions aren’t available in flows for B2B stores built on an Aura template. To build a B2B Commerce Checkout flow for an Aura store, see [B2B Commerce Checkout Flow (Aura)](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-b2c-comm-setup-checkout-flow.html). In Flow Builder, add an Action element to your flow. Select the **Commerce** category, and search for **Add Cart Item**. To access this action from REST API, use the name `addCartItem`. ## Set Input Values Use values from earlier in the flow to set the inputs.
Input Parameter Description
Cart State or ID ID of the cart or state of the cart to add an item to. Valid state values are: active and current. A current cart is not closed or pending deletion.
effectiveAccountId (Optional) ID of the buyer account or guest buyer profile for which the request is made. If unspecified, the default value is determined from context.
Web Store ID The ID of the web store.
Cart Item Input

This input is an Apex-defined variable of class ConnectApi.CartItemInput, which includes these fields:

  • productId — ID of the product.
  • quantity — Quantity of the cart item. Use a value that can be converted to BigDecimal.
  • type — Type of the cart item. The only valid value is Product.
## Store Output Values Use output values later in the flow. The values are assigned when the item is created.
Output Parameter Description
Added Cart Item

This output is an Apex-defined variable of class ConnectApi.CartItem, which includes these fields:

  • itemizedAdjustment​Amount — Total itemized adjustment amount for the item, including promotions and excluding taxes.
  • listPrice — List price for the item.
  • salesPrice — Sales price for the item.
  • totalAdjustmentAmount — Adjustments made to the unit price for the item. This value is informational only and isn’t used in pricing calculations.
  • totalAmount — Total amount for the item.
  • totalListPrice — Total list price for the item.
  • totalPrice — Total price for the item including adjustments but excluding taxes.
  • totalTax — Total tax for the item.
  • unitAdjustedPrice — Unit price, including adjustments, for the item. This value is informational only and isn’t used in pricing calculations.
  • unitAdjustmentAmount — Total amount including discounts, but excluding shipping and tax, for product items in the cart.
## Error Conditions
Error Condition Description

The user doesn’t have access to the cart.

Error Message: You don't have access to this cart. If possible, contact the admin for this web store.

Error Code: INSUFFICIENT_ACCESS_OR_READONLY

HTTP Status Code: 400

# Add Chatter News or Group Feeds to Community Site.com Pages Use the Chatter News Feed to display a Chatter feed on your site pages, or display the feeds of a particular group using the Chatter Group Feed. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage a community’s Site.com custom pages:

Create and Set Up Communities

OR

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

1. Drag the **News Feed** or **Group Feed** from the Widgets section of the Page Elements pane onto the page. When you add a widget to a page, it creates a copy or instance of the widget. You can’t edit the content of a widget, but you can edit the properties. 2. If you’re adding a group feed, enter the Group ID in the Properties pane. The Group ID determines which group feed is displayed on your page. If you want to show the feeds for multiple groups, you can include more than one group feed on a page. 3. Preview the page to test the feed, or use Live Mode to see how the feed renders in different mobile devices. Consider the following limitations when using a news or group feed in your community Site.com sites: - Chatter news and group feeds only appear if a user is logged in to the community. They don't appear to guest users or in anonymous preview mode. - Chatter news and group feeds don’t render appropriately on pages less than 700 px wide. We recommend a minimum page width of 700 px to view full content. We also recommend using a white background. - Chatter news and group feeds only inherit some page branding elements. # Add Comments to the Orchestration Run Log Add custom comments to the Orchestration Run Log using variables in flows called by orchestration steps. ### Required Editions
View supported editions for Flow Orchestration.
1. In a flow called by an orchestration step, add a variable named Comments. 1. For Resource Type, select **Variable**. 2. For API name, enter Comments. 3. For Description, enter Stores custom text to be added to the Comments field in the Flow Orchestration Log. 4. Select **Available for output**. 5. For Data Type, select **Text**. 2. In an Assignment element in your flow, set the `Comments` variable to a string. # Add Components to Salesforce Scheduler Flow Screens Add components to flow screens to display additional information or to capture additional inputs. For example, add labels and logos for branding. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To modify flows: Manage Flow
Salesforce Scheduler doesn't automatically store information captured from input components. You must store user inputs in flow variables and then save these values in Salesforce records using one of these ways: - Use the Update Records flow element or the Create Records flow element. - Include the values in the JSON content that’s passed to the Save Appointment action. 1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 2. Open a flow. 3. Open the screen to which you want to add components. 4. Drag the necessary components to the canvas, and then configure components. 5. Save your changes. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_example.png) Example To add images and information to the Select Service Resources screen of the Inbound New Appointment flow: - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. - Open the Inbound New Appointment flow. - Open the Attendees screen. - Drag the Display Text component to the canvas. - Enter an API name for the component. - Add the necessary images and information. - Save your changes. # Add Conditional Formatting to Record Fields in Lightning App Builder Give fields on Dynamic Forms-enabled pages custom icons and colors that can appear, disappear, and change color based on the rules you create. ### Required Editions
Lightning App Builder available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Lightning pages and Dynamic Forms available in: Lightning Experience and the Salesforce mobile app

Available in: Group Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
Conditional formatting is made up of rulesets, which are collections of rules. Each rule is made up of sets of conditions. For example, if you have a picklist field on a record with five available values, you could create a ruleset that applies a star icon to the field. Then you can configure rules and conditions to apply a different color of the star icon for each of the five field values. 1. Open a Dynamic Forms-enabled object record page in one of these ways. - From the Setup menu on a record page, select **Edit Page**. ![Edit Page in the Setup menu](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_lab_edit_page.png) When you select **Edit Page** for the first time, Salesforce makes a copy of the standard page. You edit this copy in the Lightning App Builder. If a customized page exists and is active, selecting Edit Page opens that page to edit. - From the Object Manager in Setup, open an object, then select **Lightning Record Pages**. - Open a record page from the Lightning App Builder list page in Setup. To find it, in the Quick Find box, enter App Builder, and then select **Lightning App Builder**. 2. Click a record field on the Lightning App Builder canvas. 3. In the field's property pane, click in the Conditional Formatting field and either select an existing ruleset or, to create a new one, select **Create Ruleset**. If you apply an existing ruleset, you can stop here. If you're creating a ruleset, continue with the steps. 4. Give your ruleset a name, then click **Next**. 5. To create a rule, select the icon to show on the field, set its color, and configure the conditions for the icon to appear. You can add up to 10 conditions to a rule. If you don't specify any conditions, the rule always applies. Conditional formatting is designed to amplify the information on the field that is already there. For best results and to ensure that the configuration is accessible, make sure the icon, icon color, and field value convey the same information, such as a green happy face on a field with a value of `Positive`. 6. Click **Next**. 7. Review the ruleset and the rules it contains. 8. Optionally, edit existing rules or add new ones to the ruleset. 9. When the ruleset contains the rules you want, click **Save Ruleset**. 10. Save the page. To remove formatting from a field, click the **X** in the Conditional Formatting property to remove the ruleset assignment. ![Click the X to remove the ruleset](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lab_remove_ruleset.png) To see, edit, or delete rulesets that have been created for an object, use the Conditional Field Formatting node when viewing the object in Object Manager. #### See Also - [Conditional Field Formatting in Lightning App Builder](https://help.salesforce.com/s/articleView?id=platform.conditional_formatting_overview.htm&release=264.0.0&type=5 "Make a field stand out by adding special formatting based on rules and criteria you provide, so that end users can quickly identify the most relevant information on a record page. You can apply conditional formatting to almost any field on a Dynamic Forms-enabled page, including the fields in the Dynamic Highlights Panel component.") - [Considerations for Conditional Field Formatting in Lightning App Builder](https://help.salesforce.com/s/articleView?id=platform.conditional_formatting_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when configuring conditional formatting for fields on Dynamic Forms-enabled record pages in the Lightning App Builder.") # Add Configuration Security by Using Named Credentials If your organization requires heightened security when making configuration changes, enhance your Data Mask configuration security. Use a named credential with an Auth provider and a connected app to provide a secure connection to the Salesforce Metadata API. This feature is available in Data Mask version 4.2 and later. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask managed package (Legacy) add-on license.
User Permissions Needed
To view named credentials: View Setup and Configuration
To create, edit, or delete named credentials: Manage Named Credentials or Customize Applications
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note This content relates to the Data Mask managed package. Read about Accelerate and Anonymize in [Own from Salesforce](https://help.salesforce.com/s/articleView?id=platform.own_from_salesforce.htm&type=5&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note Carefully note certain items during these procedures as required later: Your org’s URL, the generated callback URL, the Consumer Key, and the Consumer Secret. Data Mask leverages the Metadata API to save configuration data. If your organization enabled the session setting Lock sessions to the IP address from which they originated, you can get an Invalid Session ID error. One solution is to disable the session setting, or use a named credential. 1. From Setup, enter External Client Apps in the Quick Find box, then select **Settings** in the External Client App section. 2. Turn on **Allow creation of connected apps**, if it's off. 3. Click **New Connected App**. 4. Complete the fields.
Field Description
Connected App Name Data Mask API
API Name

Data_Mask_API

Contact Email Your email, if you’re the Administrator
Enable OAuth Settings Select OAuth Settings.
Callback URL https://example.com (to be updated later)
Selected OAuth Scopes Full Access (full), Perform requests at any time (refresh_token, offline_access)
Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows Enable
Require Secret for Web Server Flow Enable
Require Secret for Refresh Token Flow Enable
   
5. Save your changes. 6. To view and record the Consumer Key and Consumer Secret for later use, go to Manage Consumer Details. 7. To create an Auth Provider, from Setup, search for Auth Providers in the search box, and then click **New**. 8. Complete the fields.
Field Description
Provider Type Salesforce
Name

Data Mask AP

URL Suffix Data_Mask_AP
Consumer Key Use the Consumer Key you noted from the Connected App.
Consumer Secret Use the Consumer Secret you noted from the Connected App.
Default Scopes Add full, refresh_token, offline_access. (Don’t use commas to separate.)
9. Save the Auth Provider, and copy the Callback URL to a clipboard. 10. Edit the Connected App to include the Callback URL provided from the Auth Provider that you saved. 11. To create a named credential, from Setup, select Named Credentials **Named Credentials**, click the dropdown arrow next to New, and then select **New Legacy**. 12. Complete the fields.
Field Description
Label Data Mask NC
Name

Data_Mask_NC

URL The specific login URL for your org (not test.salesforce.com or login.salesforce.com)
Identity Type Named Principal
Authentication Provider The name of the Auth Provider created earlier
Start Authentication Flow on Save Enable
Generate Authorization Header Enable
Allow Merge Fields in HTTP Body Enable
   
13. Save the named credential. It’s possible that you must log back into the org and approve the OAuth connection (Allow Access). 14. To update Data Mask Settings, from Setup, search for **Custom Settings**. 15. Locate Find and Manage Masking Configuration, and click **Manage**. 16. Under the Masking Configuration section, click **Edit**, and then enter the name of the named credential Data\_Mask\_NC in the Named Credential field (no spaces allowed). 17. Save the changes. Now, new or existing configurations are changed securely. # Add Connect Repository Button to VCS Layout If you upgraded from a previous version of DevOps Center, the Connect Repository button doesn’t always show up in the Source Control System (VCS) page layout. This button is required when initially setting up a source control system vendor, such as Bitbucket. 1. In Setup, find and select **Object Manager**. 2. Find and click **Source Control System** (sf\_devops\_Vcs\_\_c). 3. From Page Layouts, click **Vcs Layout**. 4. From the side panel, click **Mobile & Lightning Actions**, then locate the Connect Repository button tile. ![Page Layout with Mobile & Lightning Actions highlighted on left side panel, and Connect Repository button highlighted in right panel.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/connect_repo_btn_pre_drop.png) 5. Under Salesforce Mobile and Lightning Experience Actions, drop the Connect Repository button tile at the beginning of the list. ![Page Layout with Connect Repository button placed at beginning of the list under Salesforce Mobile and Lightning Experience section.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/connect_repo_btn_post_drop.png) If you don’t see a list or the red No Symbol icon appears when you attempt to drag the tile, click the **Override the Predefined Actions** link to make the section editable. The text link is “override the global publisher layout” when the page layout is editable. 6. Save your changes. # Add Content Blocks to Pages Content blocks contain the text of your website pages, and can also house images, videos, and hyperlinks. Designers and site administrators can add content blocks to pages when in Design Mode. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To add a content block when the page is open, either drag it from the Page Elements pane onto the page or [target a container page element](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects_add.htm&release=264.0.0&type=5 "Page elements are the building blocks of your site pages and page templates. Panel elements add structure to your pages. You can think of both pages and panels as “containers” for the page elements that you add to them."). To [edit a content block](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_edit.htm&release=264.0.0&type=5 "Designers and site administrators can edit content blocks on the page. Content blocks contain the text for site pages, and can also house images, videos, and hyperlinks."), double-click it. For greater control over the text, you can edit the HTML directly by selecting the content block and clicking **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Edit HTML**. If you make a content block in a page template editable, contributors can edit the content block in any page based on the template. To add a content block that only other site administrators or designers can edit, use [custom code](https://help.salesforce.com/s/articleView?id=platform.siteforce_code_custom.htm&release=264.0.0&type=5 "Custom code lets you customize your site using markup, such as HTML and JavaScript.") instead. - **[Understand the Content Editing Toolbar](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_toolbar.htm&release=264.0.0&type=5)** Designers and site administrators can edit content blocks when in Design mode. Content blocks contain the site page's text, along with images, videos, and hyperlinks. - **[Edit Content Blocks in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_edit.htm&release=264.0.0&type=5)** Designers and site administrators can edit content blocks on the page. Content blocks contain the text for site pages, and can also house images, videos, and hyperlinks. - **[Add Images to Content Blocks in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_image.htm&release=264.0.0&type=5)** Designers and site administrators can add images to content blocks when viewing a page in Design Mode. - **[Add Video to Content Blocks in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_video.htm&release=264.0.0&type=5)** Designers and site administrators can add YouTube®, Google®, Adobe® Flash®, Windows Media®, and Apple QuickTime® videos to content blocks when viewing a page in Design Mode. - **[Attach Hyperlinks to Text and Images in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_hyperlink.htm&release=264.0.0&type=5)** When viewing a page in Design Mode, designers and site administrators can create hyperlinks to external Web pages or websites, pages and assets in the site, email messages, and anchors on the page. - **[Add Anchors to Pages in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_anchor.htm&release=264.0.0&type=5)** An anchor is an invisible marker that identifies a particular location on a page. If you’re a designer or site administrator, you can add an anchor to the page and then create a hyperlink that jumps to that specific location, which can be useful if a page is particularly long. For example, if your page has several sections, you could add links to each section at the top of the page to aid navigation. #### See Also - [Add Images to Content Blocks in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_image.htm&release=264.0.0&type=5 "Designers and site administrators can add images to content blocks when viewing a page in Design Mode.") - [Attach Hyperlinks to Text and Images in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_hyperlink.htm&release=264.0.0&type=5 "When viewing a page in Design Mode, designers and site administrators can create hyperlinks to external Web pages or websites, pages and assets in the site, email messages, and anchors on the page.") # Add Custom Code to Pages Custom code lets you customize your site using markup, such as HTML and JavaScript. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip - Scripts can't execute while you're editing a page in Site.com Studio. To test your code, preview the page. - If you are building a Site.com site from an existing HTML site, avoid using the Custom Code page element to paste large chunks of HTML from the original site. Instead, use the available page elements, such as panels, content blocks, and data tables. Using these elements lets you make future updates and design changes much more easily. - Add markup to a specific location on a page using the Custom Code page element. JavaScript added using the Custom Code page element loads when that part of the page loads. - Add markup to the page `head`. JavaScript in the page `head` loads first. - Add JavaScript to the page `body`. JavaScript added to the page `body` is positioned at the end of the `body` tag and only loads when the DOM is ready. - Add a reference to a JavaScript file or library in the page `head` or `body`. Add Markup Directly to the Page 1. Drag a **Custom Code** page element from the Page Element pane onto the page. 2. Enter the code in the Edit Code dialog box. 3. Click **Save and Close** to add the code directly to the page. Add Markup to the Page `Head` 1. In the Scripts section of the Properties pane, click **Configure** in the Edit Head Markup section. 2. Enter the markup in the Edit HTML Code dialog box. 3. Click **Save and Close** to insert the markup into the page `head`. Add JavaScript to the Page `Body` 1. In the Scripts section of the Properties pane, click **Configure** in the Edit Body Scripts section. 2. Enter the code in the Edit JavaScript Code dialog box. Don't add ` ``` 2. Replace `https://YourSiteDomain/` with your Experience Cloud site URL. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_warning.png) Warning If you add SiteURL in the `script` tag, the flow doesn't work. 4. To load and activate the lightningOutGuest app on your webpage: 1. Add the standard Lightning Out JavaScript code: ```javascript ``` 2. Replace `lexcontainer` with the page location where you want to insert the lightning component, and then invoke the lightning component from another tag. Here's a sample code to invoke the lightning component: ```

Invoke the Lightning Component specified in the Script.

``` 3. Replace `https://YourSiteDomain/SiteURL` with the Experience Cloud site URL that contains the Inbound New Guest Appointment flow with the required object permissions. 5. To add the external site origin URL to CORS: 1. From Setup, in the Quick Find box, enter CORS, and then select **CORS**. 2. Click **New**. 3. In the Origin URL Pattern field, enter the external site origin URL. 4. Save your changes. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note When Scheduler flows are hosted on external websites, the resource cards show standard images instead of photographs of service resources. #### See Also - [Customize Standard Flow Templates](https://help.salesforce.com/s/articleView?id=platform.ls_customize_flows.htm&release=264.0.0&type=5 "The flows in Salesforce Scheduler are installed as standard flow templates. You can customize any of the flows to suit your business needs.") - [_Lightning Web Components Developer Guide_: Use Components Outside Salesforce with Lightning Out (Beta)](https://developer.salesforce.com/docs/platform/lwc/guide/lightning-out.html) - [_Enhance Salesforce with Code_: Open the Developer Console](https://help.salesforce.com/articleView?id=code_dev_console_opening.htm&language=en_US) # Add Input Fields to Forms or Pages Add additional input fields to an existing form. Each input field binds to a field in the object the form is connected to. Add input fields directly to a page, panel, data repeater, or data table to build your own custom features using ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

Add Input Fields to a Form: You can add additional input fields to an existing form. Each input field binds to a field in the object the form is connected to. The quickest option is to: 1. Select the form on the page. 2. Select **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Add Fields**. 3. In the Add Fields list, click the fields that you want to add. The Add Fields list displays the available fields in the object that the form is connected to. When you click a field, the correct field type is automatically added to the form, such as a checkbox or picklist field. Alternatively: 1. Select the form on the page. 2. Select **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Add Page Elements**. 3. In the Add Page Elements list, click the input field type that you want to add, such as **Checkbox**. 4. Choose a field in the Add a Field dialog box and click **Save**. If no fields of that type exist in the object, you can't add a field of that type to the form. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - You can't add fields to a form by clicking **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Edit Form**. - Formula, encrypted text, geolocation, and lookup field types aren't supported. - You can't configure the default field-level error messages that appear when users enter an incorrect value. Add Input Fields to a Page: You can add input fields directly to a page, panel, data repeater, or data table to build your own custom features using [custom code](https://help.salesforce.com/s/articleView?id=platform.siteforce_code_custom.htm&release=264.0.0&type=5 "Custom code lets you customize your site using markup, such as HTML and JavaScript."). For example, let's say some of your products are only available in certain locations, and you want to let customers view the products in their nearest city. You could add a picklist input field to the page that lists the various locations. Using custom code, you could then pass the user's selection to a [data table](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5 "Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table.") or [data repeater](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") via a [query string](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_examples.htm&release=264.0.0&type=5 "When working with data repeaters, data tables, and data functions, you can filter the data you retrieve in many ways. In this topic, we explore two options— fixed values and URL query strings—to illustrate some common filtering techniques.") to display a filtered product list. To add an input field to the page, drag it from the Page Elements pane onto the page. Alternatively, select the page or container page element in the Page Structure pane, select **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Add Page Elements**, and select the input field. #### See Also - [Input Field Types](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_form_field_types.htm&release=264.0.0&type=5 "When adding input fields to a form or page, the following field types are available. However, if the object connected to a form doesn't contain a particular field type, you can't add that input field type to the form.") - [Input Field Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_form_field_props.htm&release=264.0.0&type=5 "When adding or editing input fields on a form or page, use the options in the Field Properties section of the Properties pane to control how the selected input field functions.") - [Editing Input Fields in a Form](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_fields_edit.htm&release=264.0.0&type=5 "After you've added a form to the page, you can edit and reorder its fields.") - [Adding a Form to the Page](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_form.htm&release=264.0.0&type=5 "Use forms to collect data from your site visitors and submit the data to standard or custom Salesforce objects. Create web-to-lead forms, capture customer details, or gather feedback on your products or services.") # Add IP Restrictions in Site.com Control site visitors' access to the pages, page templates, folders, and assets in your site by setting the range of permitted IP addresses. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To add and edit IP restrictions in Site.com:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator role assigned at the site level

Set IP restrictions to manage access your Site.com content. 1. On the Overview tab, either: - Hover over the page, page template, folder, or asset in the All Site Content view and select **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Add IP Restrictions**. - Select **Site Configuration** | **IP Restrictions** and select **Add IP Restrictions**. 2. If not already selected, choose the item you want to restrict access to. 3. Enter the first and last IP addresses of the permitted IP range—for example, 112.122.0.1 to 112.122.0.123. To enter a single IP address, complete the Start Address field. Both IP addresses in a range must be either IPv4 or IPv6. In ranges, IPv4 addresses exist in the IPv4-mapped IPv6 address space ::ffff:0:0 to ::ffff:ffff:ffff, where ::ffff:0:0 is 0.0.0.0 and ::ffff:ffff:ffff is 255.255.255.255. A range can't include IP addresses inside of the IPv4-mapped IPv6 address space if it also includes IP addresses outside of the IPv4-mapped IPv6 address space. Ranges such as 255.255.255.255 to ::1:0:0:0 or :: to ::1:0:0:0 aren't allowed. 4. Select **Add IP Range** to add additional ranges. 5. To redirect users with an invalid IP address to an alternative page, such as a user-friendly error page, specify the page in Access Denied Page. If you set this in the IP Restrictions view, the page is the default for all IP restrictions unless you override it at the item level. You can redirect users to a page in your site or to an external site. Always use a prefix such as http:// when entering an external URL. If you don't set an access denied page, users see a blank page that displays a default “Access to this resource is denied” message. 6. Select **Save**. To test the IP restrictions of a page template or site page, select **Preview** when the page is open. When you're happy with your updates, [publish the site](https://help.salesforce.com/s/articleView?id=platform.siteforce_publish.htm&release=264.0.0&type=5 "When you publish a site in Site.com, you make its pages and assets live on the Internet so site visitors can access them.") to enable the restrictions. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - If an item inherits IP restrictions—for example, an asset in an IP-restricted folder—you can add additional restrictions to further narrow the range. Although the item doesn't display the inherited values anywhere, the inherited IP range values do apply to the child item and only site visitors with valid IP addresses can access it. - If you select a site page in the Access Denied Page dropdown list, users with an invalid IP address can view that page even if the entire site is restricted. - Caching is disabled for any item that has IP restrictions. Additionally, if you update the IP restrictions of an asset, folder, or page, the system updates its URL in case proxy servers already cached the item. #### See Also - [Site.comIP Restrictions Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_ip_overview.htm&release=264.0.0&type=5 "Every computer has a unique IP address that it uses to identify itself. Using IP restrictions, you can define a range of permitted IP addresses for the pages, folders, and assets in your site to control visitors' access.") - [Editing, Disabling, and Deleting IP Restrictions in Site.com](https://help.salesforce.com/s/articleView?id=platform.siteforce_ip_manage.htm&release=264.0.0&type=5 "After you create an IP restriction for a Site.com site, you can edit the address range, briefly disable the IP restriction (say, to allow temporary access to a page), or delete the restriction entirely.") # Add Lightning Components as Custom Tabs in a Lightning App Make your Lightning components available for Lightning Experience and Salesforce mobile app users by displaying them in a custom tab in a Lightning app. ### Required Editions
Available in: Lightning Experience

Available for use in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

Create Lightning components using the UI in Enterprise, Performance, Unlimited, Developer Editions, or a sandbox.

User Permissions Needed
To create Lightning Component Tabs: Customize Application
To configure an Aura component to be used as a custom tab, see the [Lightning Aura Components Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_using_lex_s1_config_tab.htm). To configure a Lightning web component to be used as a custom tab, see the [Lightning Web Components Developer Guide](https://developer.salesforce.com/docs/component-library/documentation/lwc/lwc.use_config_custom_tab). Follow these steps to include your component in Lightning Experience and make it available to users in your organization. 1. Create a custom tab for this component. 1. From Setup, enter Tabs in the Quick Find box, then select **Tabs**. 2. Click **New** in the Lightning Component Tabs related list. 3. Select the Lightning component that you want to make available to users. 4. Enter a label to display on the tab. 5. Select the tab style and click **Next**. 6. When prompted to add the tab to profiles, accept the default and click **Save**. 2. Add your Lightning components to the App Launcher. 1. From Setup, enter Apps in the Quick Find box, then select **App Manager** | **New Lightning App**. 2. Follow the steps in the wizard. On the Navigation Items page, select your Lightning tab from the Available Items list and move it to the Selected Items list. 3. Finish the steps in the wizard, and click **Save & Finish**. 3. To check your output, navigate to the App Launcher in Lightning Experience or the Salesforce mobile app. Click the custom app to see the components that you added. #### See Also - [Create Custom Apps for Salesforce Classic](https://help.salesforce.com/s/articleView?id=platform.apps_classic_create.htm&type=5&language=en_US) # Add Lightning Components to Secure Integrate security features and functionalities into Salesforce record pages by adding Lightning components. Improve the security posture of your Salesforce instance by using components that make security-related data easily accessible and manageable right from the record pages. 1. Navigate to the specific record page. 2. Click **Menu**. 3. Select **Edit Page**. 4. In the Custom - Managed section, on the bottom of the left column, drag "FieldHistoryExplorer" and "SecurityAccessExplorer" to the desired location. 5. Be sure to "Save" and "Activate" for all users before exiting the Lightning App Builder. The Lightning component is now visible on the record pages. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note There is a general session setting that can cause the "Access Management Security Access Explorer" Lightning component to malfunction. If issues are encountered, deselect **Enable clickjack protection for customer Visualforce pages with headers disabled**. # Add Links to a Site Map Pages aren't the only things you can assign to your site map. Add internal or external URLs to your site map to customize your navigation menus and breadcrumbs, and achieve greater flexibility and control. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

For example, let's say you have a top-level Products page that has a menu based on its child pages. You also want to include a page called Testimonials in the menu, but it's not a child page of the Products page. You can create a site map link that points to the Testimonials page and add the link under Products in the site map. Now when visitors view the Products page, they see a menu consisting of its child pages, along with a menu item that takes them directly to Testimonials. 1. On the Overview tab, click **New** | **Site Map Link**. 2. Enter a name for the link. 3. Enter a URL. URLs can be either relative or absolute, and are case-sensitive. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can't preview absolute site map links in Site.com Studio unless they include a prefix, such as http:// or https://. 4. Click **Create**. The link appears at the bottom of the site map. 5. Drag the link to the correct position in the site map. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Site map links are automatically included in navigation menus and breadcrumbs. However, you can't set a site map link as a custom root node in a breadcrumb. #### See Also - [Adding Breadcrumb Navigation to Pages](https://help.salesforce.com/s/articleView?id=platform.siteforce_breadcrumb_add.htm&release=264.0.0&type=5 "Add a Breadcrumb page element to your page to help users navigate through your site and show the page’s location in the site hierarchy.") - [Add a Navigation Menu](https://help.salesforce.com/s/articleView?id=platform.siteforce_menu_add.htm&release=264.0.0&type=5 "By default, when you create a menu, it's generated from the pages and site map links in the Site Map folder in the Site Pages view. However, you can also create a menu that's generated from the pages in the Landing Pages folder or from the child or sibling pages of a site page.") - [About the Site Map and Page Hierarchy](https://help.salesforce.com/s/articleView?id=platform.siteforce_menu_sitemap.htm&release=264.0.0&type=5 "The Site Pages view on the Overview tab contains the pages and site map links of your website. The Site Map folder reflects the hierarchy or tree structure of your site by housing site pages and links that are included in the site map. When you create pages or site map links, they're automatically added to this folder. The Landing Pages folder houses standalone pages that are excluded from the site map, making it ideal for temporary pages, such as promotional or competition pages.") # Add Members to a Document or Chat from a Process Add up to 50 members to a document or chat. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). After you’ve created a Quip action and selected **Add Members to Document** or **Add Members to Chat**, fill in the relevant fields to add the action to your process. 1. Enter a name for this action. This text appears on the canvas and helps you differentiate this action from others in your process. The name truncates to fit on the canvas. 2. Enter the URL of the document or chat where you want to add members. 3. Enter up to 50 email addresses. Emails must belong to Quip users in the same Quip site as the acting user. 4. Save the action. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To replace the existing Process Builder processes and Workflow Rules with flows before Process Builder and Workflow Rules reach [end of support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US), see [Quip Actions in Flow Builder](https://help.salesforce.com/s/articleView?id=xcloud.quip_automation_flow.htm&type=5&language=en_US). # Add Members to Document Quip Action Add members with different levels of access to a document. ### Required Editions
Available in: Lightning Experience
View supported editions for Quip.
In Flow Builder, add an Action element to your flow. In the Action field, enter Quip, and select **Add Members to Document**. ## Set Input Values Use values from earlier in the flow to set the inputs for the action.
Input Parameter Description
Document URL URL of the document that you want to add members to.
Add Comment-Access Members by Email Address

Optional. A list of user emails separated by commas that can view and comment on the document. Valid values are:

  • person1@quip.com, person2@quip.com, person3@quip.com
  • person1@quip.com
Add Edit-Access Member by Email Address

Optional. A list of user emails separated by commas that can view, comment on, and edit the document. Valid values are:

  • person1@quip.com, person2@quip.com, person3@quip.com
  • person1@quip.com
Add Full-Access Members by Email Address

Optional. A list of user emails separated by commas that can view, comment on, edit, and share the document. Valid values are:

  • person1@quip.com, person2@quip.com, person3@quip.com
  • person1@quip.com
Add View-Access Members by Email Address

Optional. A list of user emails separated by commas that can view the document. Valid values are:

  • person1@quip.com, person2@quip.com, person3@quip.com
  • person1@quip.com
## Store Output Values | Output Parameter | Description | | --- | --- | | **Document ID** | ID of the document | | **Document Link** | URL of the document | | **Document Title** | Title of the document | ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example A service manager wants to add Tier 3 service reps to a Case Swarm document to solve a customer case. The service manager also wants to keep sales reps with open opportunities related to the account up to date. You can create a flow that uses the Add Members to Document core action to add Tier 3 reps to the Case Swarm document and grant the service reps edit-access to the document. Then you can add the sales reps with open opportunities to the document with comment-access so that they can see what’s happening and ask questions. #### See Also - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") # Add Members to Quip Chat Action Add users to a chat room. ### Required Editions
Available in: Lightning Experience
View supported editions for Quip.
In Flow Builder, add an Action element to your flow. In the Action field, enter Quip, and select **Add Members to Quip Chat**. ## Set Input Values Use values from earlier in the flow to set the inputs for the action.
Input Parameter Description
Add Members by Email Address

A list of user emails separated by commas to add to the chat room. Valid values are:

  • person1@quip.com, person2@quip.com, person3@quip.com
  • person1@quip.com
Chat URL URL of the chat room that you want to add members to.
## Store Output Values | Output Parameter | Description | | --- | --- | | **Chat ID** | ID of the chat room | | **Chat Link** | URL of the chat room | | **Chat Title** | Title of the chat room | #### See Also - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") # Add Members to Your Experience Cloud Site Use profiles and permission sets to manage site membership during the setup process. Adding a profile or permission to a site’s membership gives access to the site to users with that profile or assigned the permission set. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create an Experience Cloud site: Create and Set Up Experiences AND View Setup and Configuration
To customize an Experience Cloud site:
  • Be a member of the site AND Create and Set Up Experiences

    OR

  • Be a member of the site AND View Setup and Configuration AND an experience admin, publisher, or builder in that site
To publish an Experience Cloud site:
  • Be a member of the site AND Create and Set Up Experiences

    OR

  • Be a member of the site AND an experience admin or publisher in that site
Add a profile or permission set to a site’s membership. Using profiles and permission sets, you can: - Grant or remove access for groups of users. After you add a profile or permission set, all users assigned to that profile or permission set become members of the site. - Enforce a membership policy. New users added to a profile or permission set that is already associated with a site automatically gain access. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note - If you add a permission to a permission set that is being used to grant membership to a site, the site members also get access to the permissions unrelated to site membership. Salesforce recommends checking if a permission set is used in any site’s membership list before adding new permissions to it. - You can’t use permission set groups to add membership to a site, only permission sets. - Individual users with HasOptedOutProcessing enabled can't be added as new site members. Permission sets allow added flexibility for adding members. You can grant site access to a subset of users from the same profile, without needing to clone the profile. You can add Standard, Chatter, and partner profiles to sites. Chatter customers, from private groups with customers, can't be added to sites even if they're assigned permission sets that are associated with sites. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note Profiles and permission sets associated with sites can’t be deleted from Salesforce. Remove the profiles or permission sets from the sites first. 1. Open Experience Workspaces. 2. Click **Administration** | **Members**. 3. To add members using profiles: 1. To filter profiles, select a profile type from the dropdown menu. To search for a specific profile, enter a search term and click **Find**. Search returns profiles for the selected filter. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note Search results include profiles that are already part of the site. 2. Select the user profiles you want to allow access to your site. To select multiple profiles, press CTRL. 3. Click **Add**. To remove a profile, select it and click **Remove**. If you remove a profile from a site, users with that profile lose access to the site, unless the users are assigned permission sets or other profiles that are still part of the site. Their posts and comments still appear. 4. To add members using permission sets: 1. To search for a specific permission set, enter a search term and click **Find**. 2. Select the permission sets you want to allow access to your site. To select multiple permission sets, press CTRL. 3. Click **Add**. If you remove a permission set from a site, users with that permission set lose access to the site, unless the users are associated with profiles or other permission sets that are still part of the site. Their posts and comments still appear even after they lose access. 5. Click **Save**. If the site is Active and [welcome emails are enabled](https://help.salesforce.com/s/articleView?id=experience.networks_customize_email.htm&type=5&language=en_US), users with the profiles or permission sets you added receive a welcome email. If the welcome email is sent is sent to an external user who hasn't logged in to a site yet, it includes a username and a change password link. When the site is Active, welcome emails are sent and the site is discoverable by members. When a site is in Preview status, only members with the login URL can view the site. If a site is Inactive, only users with the “Create and Set Up Sites“ permission can access it through the All Sites menu, regardless of membership. There are other options for granting access to your site: - Enable self-registration so that external users can register on their own - Enable authentication providers, such as Facebook, so that external users can log into the site without creating an account For more information about these additional options, see [Customize Login, Self-Registration, and Password Management for Your Experience Cloud Site](https://help.salesforce.com/s/articleView?id=experience.networks_customize_login.htm&type=5&language=en_US). With global search from your internal org, you can get uneven results when searching for a site User record. Here’s why and what you can do about it. Each site has a unique network ID. When you create a site user through **Contact record** | **Create External User**, the new User record is assigned to a site's network ID. Global search looks for records in the internal org, which has a different network ID than the site. A global search doesn't search inside sites. Since the User record is associated with a site network ID, global search doesn't return results for that record. The workaround is to create User records in the internal org, and then associate the records to a site. You can associate an internal User record to a site by linking the internal record to a Contact record. After you forge the link, you can find the User record through global search. The User record's network ID is now associated with the internal org. - **[Set Custom Site Roles](https://help.salesforce.com/s/articleView?id=platform.networks_custom_community_role.htm&release=264.0.0&type=5)** Experience Cloud site members are typically assigned the role of partner, customer, or employee. However, you can create custom roles for users that replace standard ones. You can also choose to display the member’s company name in place of a role. - **[Reset an External User’s Password for Experience Cloud Sites](https://help.salesforce.com/s/articleView?id=platform.networks_external_user_password.htm&release=264.0.0&type=5)** An external user's password can be reset either by the user or by the administrator of the org hosting the site. - **[Give External Experience Cloud Site Members Login Information](https://help.salesforce.com/s/articleView?id=platform.faq_communities_external_member_login_info.htm&release=264.0.0&type=5)** External users get their login credentials in welcome emails from an Experience Cloud site. - **[Update Experience Cloud Site Membership Using the API](https://help.salesforce.com/s/articleView?id=platform.faq_communities_membership_update_api.htm&release=264.0.0&type=5)** If you aren’t a member of an Experience Cloud site, you can’t access Experience Workspaces to update administration settings, including membership. As an alternative, you can use the API and Data Loader to add yourself and others to a site. - **[Membership Processing Best Practices](https://help.salesforce.com/s/articleView?id=platform.networks_membership_best_practices.htm&release=264.0.0&type=5)** Processing membership when many members are added in a single transaction can result in significant lockout times. Limiting the number of users per transaction can speed up processing time. Follow these best practices to minimize the impact of processing times on members. #### See Also - [Customize Salesforce Tabs + Visualforce Sites](https://help.salesforce.com/s/articleView?id=experience.networks_customize.htm&type=5&language=en_US) - [Enable the Global Header for Salesforce Tabs + Visualforce Sites](https://help.salesforce.com/s/articleView?id=experience.networks_enable_global_header.htm&type=5&language=en_US) # Add Members with Different Access Levels to a Document from a Process Automatically share a document with members with different permissions using Process Builder. ### Required Editions
Available in: Lightning Experience
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). After you create a Quip action and select **Add Members to Document** or **Add Members to Chat**, fill in the relevant fields to add the action to your process. 1. Enter a name for this action. This text appears on the canvas and helps you differentiate this action from others in your process. The name truncates to fit on the canvas. 2. Enter the URL of the document or chat where you want to add members. 3. Enter the email addresses of the members you want to add based on the access level you want to grant. You can enter up to 50 email addresses per access level. Emails must belong to Quip members in the same Quip site as the acting member. | Quip Access Level | Description | | --- | --- | | Full Access | Full-access members can view, comment on, edit, and share documents that they’re added to. | | Edit Access | Edit-access members can view, comment on, and edit documents that they’re added to. | | Comment Access | Comment-access members can view and comment on documents that they’re added to. | | View Access | View-access members can view documents that they’re added to. | 4. Save the action. ![add full-access, edit-access, comment-access, or view-access members by email address](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/process_builder/process_quip_granular_perms.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To replace the existing Process Builder processes and Workflow Rules with flows before Process Builder and Workflow Rules reach [end of support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US), see [Quip Actions in Flow Builder](https://help.salesforce.com/s/articleView?id=xcloud.quip_automation_flow.htm&type=5&language=en_US). # Add Metadata Manually The Change Management tab uses source tracking to automatically track metadata files in your org. However, when you require the flexibility to include additional metadata files that source tracking hasn’t pulled automatically, you can add metadata manually. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To add metadata manually: Customize Application
Consider adding metadata manually for these cases. - Source tracking doesn’t support the metadata file, so it isn’t listed on the Change Management tab. See [Metadata Coverage](https://developer.salesforce.com/docs/metadata-coverage) for the list of metadata types supported by source tracking. - Your development environment is shared, and another teammate has already committed a file that you also want to include in your work item commit. If the metadata hasn’t changed in your environment since your teammate’s commit, it doesn’t automatically appear in your changes list. - You want to commit files that were changed before source tracking was enabled in your environment. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can’t manually add metadata that’s already on the Change Management tab, and the original operation type (CHANGE or ADD) remains unchanged. 1. From the DX Inspector panel, open the **Change Management** tab. 2. Click + . 3. Select a metadata type from the dropdown. Search by file name or last modified by to narrow your search results. 4. Select the metadata files that you want to add. 5. Click **Add**. The file appears on the Change Management tab with the operation type MANUAL, ready for you to include in your next commit. #### See Also - [_Salesforce Help_: Manage and Release Changes Easily and Collaboratively with DevOps Center](https://help.salesforce.com/s/articleView?id=platform.next_generation_devops_center.htm&language=en_US) # Add Metadata Manually The Change Management tab uses source tracking to automatically track metadata files in your org. However, when you require flexibility to include additional metadata files that source tracking hasn’t pulled automatically, you can add metadata manually. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To add metadata manually: Customize Application in your development org
Consider adding metadata manually for these cases. - Source tracking doesn’t support the metadata file, so it isn’t listed on the Change Management tab. See [Metadata Coverage](https://developer.salesforce.com/docs/metadata-coverage) for the list of metadata types supported by source tracking. - Your development environment is shared, and another teammate has already committed a file that you also want to include in your work item commit. If the metadata hasn’t changed in your environment since your teammate’s commit, it doesn’t automatically appear in your changes list. - You want to commit files that were changed before source tracking was enabled in your environment. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note You can’t manually add metadata that’s already on the Change Management tab, and the original operation type (CHANGE or ADD) remains unchanged. 1. From the DX Inspector panel, open the **Change Management** tab. 2. Click + . ![Add metadata window where you can add metadata manually](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/next_gen_dx_add_metadata.png) 3. Select a metadata type from the dropdown. Search by file name or last modified by to narrow your search results. 4. Select the metadata files that you want to add. 5. Click **Add**. The file appears on the Change Management tab with the operation type MANUAL, ready for you to include in your next commit. # Add Missing Permissions Identified in the Permissions Report Make sure that your Salesforce backups are complete and available for recovery by giving the authenticated user access to all necessary fields. To fix missing permissions in Salesforce, first ensure that the authenticated user complies with the [Salesforce Authenticated User Permission Requirements for Backup & Recover](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_auth_user_perms.htm&release=264.0.0&type=5 "The Authenticated User connects your Backup & Recover application to a client's Salesforce org. Having a dedicated integration user enhances security, improves audit trails, and avoids API concurrency collisions."). 1. Make the field visible. - In Salesforce Lightning, go to Setup > Object Manager > Fields & Relationships. - In Salesforce Classic, - Go to Setup > Object. - Click Field Label, then click Set Field-Level Security.Or from the field itself, click Set Field-Level Security and check the Visible check box next to the profile of the authenticated user. 2. Enable the visibility of the field or check the Visible check box. For Restoring purposes make sure the access level on these fields is set to Visible to enable the users on the profile to (Read and Edit). Some fields you see may be part of a managed package, which may need to verify the authenticated user has a license for, or that the package is installed. With Workbench: An actionable remediation tool is also provided. The Permissions Report can be exported as a ZIP package to update the integration user's permission set. See [Fix Missing FLS Permissions for Backup](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_fix_perms.htm&release=264.0.0&type=5 "Ensure your Salesforce Backup service can access all necessary data by fixing missing field-level security (FLS) permissions. Identify inaccessible data for your backup service's authenticated user and then update the user's permission set with the missing field permissions."). Click Download Package to export the Permissions Report. This report only shows fields the integration user cannot access. It does not show what field permissions are missing. If you have any fields excluded in your backups, those fields will still exist in the downloaded Permissions Report package file. # Add Multiple Users You can quickly add up to 10 users at a time to your organization. Your Salesforce edition determines the maximum number of users that you can add. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To create users: Manage Internal Users
1. From Setup, enter Users in the Quick Find box, then select **Users**. 2. Click **Add Multiple Users**. 3. If multiple user license types are available in your organization, select the user license to associate with the users you plan to create. The user license determines the available profiles. 4. Specify the information for each user. 5. To email a login name and temporary password to each new user, select **Generate passwords and notify user via email**. 6. Click **Save**. 7. To specify more details for the users that you’ve created with this method, edit individual users as needed. #### See Also - [Add a Single User](https://help.salesforce.com/s/articleView?id=platform.adding_new_users.htm&release=264.0.0&type=5 "Depending on the size of your organization or your new hire onboarding process, you may choose to add users one at a time. The maximum number of users you can add is determined by your Salesforce edition.") - [Edit Users](https://help.salesforce.com/s/articleView?id=platform.editing_users.htm&release=264.0.0&type=5 "To change a user's details—such as username, profile, role, or contact information—edit the user account.") - [User Fields](https://help.salesforce.com/s/articleView?id=platform.user_fields.htm&release=264.0.0&type=5 "The fields that comprise the Personal Information and other personal settings pages describe a user.") - [Licenses Overview](https://help.salesforce.com/s/articleView?id=platform.users_licenses_overview.htm&release=264.0.0&type=5 "To enable specific Salesforce functionality for your users, you must choose one user license for each user. To enable more functionality, you can assign permission set licenses and feature licenses to your users or purchase usage-based entitlements for your organization.") # Add or Edit a Custom Metadata Type Declaratively You can declaratively create and update custom metadata types. ### Required Editions
Available in: Salesforce Classic and Lightning Experience

Available in: Enterprise, Performance, Unlimited, and Developer Editions

You can create, edit, and delete custom metadata type records from installed packages in: Group and Professional Editions

User Permissions Needed
To create or edit custom metadata types: Customize Application
Custom metadata types and records have names and labels. Type names must be unique within their namespace. Record names must be unique within their custom metadata type and namespace. 1. From Setup, in the Quick Find box, enter Custom Metadata Types and then select **Custom Metadata Types**. 2. On the All Custom Metadata Types page, click **New Custom Metadata Type**, or click the Label name to modify an existing custom metadata type. 3. Complete these fields.
Field Description
Label Refers to the type in a user interface page.
Plural Label The plural name of the type. If you create a tab for this type, Plural Label is used.
Starts with a vowel sound Indicates whether “an” precedes the label rather than “a” (only when applicable for your org’s default language).
Object Name A unique name to refer to the object when using the API. In managed packages, this name prevents naming conflicts with package installations. Use only alphanumeric characters and underscores. The name must begin with a letter and have no spaces. It can’t end with an underscore or contain two consecutive underscores.
Description An optional description of the object. A meaningful description helps you understand the differences between your custom objects when you view them in a list.
Visibility

Who can see the type.

  • (Public) Regardless of the type of package (managed or unmanaged), these have access:
    • Apex
    • Formulas
    • Flows
    • API for users with Customize Application permission or permissions granted through profiles or permission sets. The custom metadata type, fields, and unprotected records are visible in Setup.
  • (Protected) Only Apex code in the same namespace can see the type. The name of the type and the record are visible if they’re referenced in a formula.
  • (PackageProtected) When in a second-generation managed package, only Apex code in the same managed package can see the type. The name of the type and the record are visible if they’re referenced in a formula.
4. Click **Save**. 5. Under Custom Fields, click **New** to start adding fields to the custom metadata type. Specify the type of information that the field contains, such as a picklist or [metadata relationship](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_relationships.htm&release=264.0.0&type=5 "Create relationships between custom metadata types, entity definitions, field definitions, or entity particles. Use relationships rather than text fields to directly reference objects, simplify your Apex code, and enforce referential integrity, for example, when packaging custom metadata types."). For each field, choose a Field Manageability value to determine who can change the field later. - If FieldType is `MetadataRelationship` and the manageability of the entity definition field is subscriber-controlled, the Field Definition field must be subscriber-controlled. - If the manageability of the entity definition field is `upgradeable`, the Field Definition field must be either upgradeable or subscriber-controlled. ![The UI for creating custom metadata types](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/custom_metadata_add_custom_field_updated.png) Custom metadata types created before the Winter ’15 release don’t automatically get layouts. Before adding, updating, or viewing records of this custom metadata type using the UI, you must add a layout that contains all the fields that you want to make editable. In the All Custom Metadata Types page, click the custom metadata type. Then click **New** under Page Layouts. #### See Also - [Custom Metadata Types](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_overview.htm&release=264.0.0&type=5 "You can create your own declarative developer frameworks for internal teams, partners, and customers. Rather than building apps from data, you can build apps that are defined and driven by their own types of metadata. Metadata is the information that describes the configuration of each customer’s organization.") # Add or Edit Custom Metadata Records Declaratively You can add, modify, or delete a custom metadata record declaratively from Setup. ### Required Editions
Available in: Salesforce Classic and Lightning Experience

Available in: Enterprise, Performance, Unlimited, and Developer Editions

You can create, edit, and delete custom metadata type records from installed packages in: Group and Professional Editions

User Permissions Needed
To create or modify custom metadata records: Customize Application
1. Search Setup for **Custom Metadata Types**. 2. On the All Custom Metadata Types page, click **Manage Records** next to the custom metadata type for which you want to add or modify records. 3. On the list of custom metadata records, click **New**, or click **Edit** to modify an existing custom metadata record. 4. Fill out the fields. 5. The **Protected Component** checkbox determines whether the record is protected. When a custom metadata type is released in a managed package, access is limited in specific ways. - Code that’s in the same managed package as custom metadata records can read the records. - Code that’s in the same managed package as custom metadata types can read the records that belong to that type. - Code that’s in a managed package that doesn’t contain either the type or the protected record can’t read the protected records. - Code that the subscriber creates and code that’s in an unmanaged package can’t read the protected records. - The developer can modify protected records with a package upgrade or by using the Metadata Apex classes (if the Apex code is in the same namespace as either the records or their type). - The subscriber can’t read or modify protected records. The developer name of a protected record can’t be changed after release. - The subscriber can’t create records of a protected type. Records that are hidden by these access rules are also unavailable to REST, SOAP, SOQL, and Setup. 6. Click **Save**. #### See Also - [Custom Metadata Types](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_overview.htm&release=264.0.0&type=5 "You can create your own declarative developer frameworks for internal teams, partners, and customers. Rather than building apps from data, you can build apps that are defined and driven by their own types of metadata. Metadata is the information that describes the configuration of each customer’s organization.") # Add or Edit Picklist Values Add new values or rename existing values in a custom picklist from the fields area of an object. If the picklist uses a global picklist value set, you can change its values only by editing the global value set. Your changes affect all picklists that inherit their values from that global value set. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To change picklists: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can view changes to picklist values in Setup Audit Trail. To see the audit history: From Setup, in the Quick Find box, enter View Setup Audit Trail, and then select **View Setup Audit Trail**. To modify Campaign Member Status picklist values, see the list of considerations at the end of this topic. 1. For Lightning Experience: 1. From Setup, click the Object Manager tab. If you don’t see the Object Manager tab, in the Quick Find box, enter Objects, and then select **Objects**. 2. Click the object name. 3. Click **Fields & Relationships**. For Salesforce Classic: 1. From Setup, in the Quick Find box, enter the name of the object, and then select the object from the menu. 2. On the object page, select **Add a custom field in objectname**. 2. Click the name of the picklist field to update. 3. In the Values section, next to a value, click **Edit**. ![The section on the Object Manager page where you edit values for custom picklists](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/updating_picklists.png) 4. Change the value’s name, and optionally make the value the default for the master picklist. 5. Assign a color to use in charts by clicking ![button for the chart color picker](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/colorPicker16.gif) and then select how to assign colors to values. - **Assign fixed colors to all values** assigns a fixed color to each value from the standard set of chart colors. The Chart Colors column shows the assigned colors. For example, if you want Closed Lost values always to be red in charts grouped by Opportunity Stage, assign red to that picklist value. - **Assign colors to values dynamically** assigns colors when you generate a chart. For example, manually assign colors only to the picklist values that need a fixed color. The remaining values are dynamically assigned. Chart colors aren’t available for multi-select picklists, currency picklists, or Task Subject, Event Subject, Knowledge Validation Status, and Opportunity Competitor picklists. 6. Click **Save**. New or edited picklist values don’t sort automatically. Reorder the picklist values yourself. 7. To require a picklist, click **Edit** at the top of the detail page, and then select **Always require a value in this field in order to save a record**. 8. To change the picklist from unrestricted to restricted or vice versa, adjust the **Restrict picklist to the values defined in the value set** setting. 9. To open an easy-to-print list of your picklist values, click **Printable View**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Not seeing your new or modified picklist values on records? See [Troubleshoot Missing Picklist Values](https://help.salesforce.com/s/articleView?id=platform.troubleshoot_picklist_values.htm&release=264.0.0&type=5 "If you add a new picklist value but it doesn't appear when users view or edit records, there are several configuration issues to consider. Review the most common causes and solutions for this type of problem. This topic covers inactive values, record type or business process assignments, field dependencies, and field-level security."). Keep these considerations in mind when you add or edit picklist values. - If you use record types, see [Considerations for Creating and Updating Record Types and Picklists](https://help.salesforce.com/s/articleView?id=platform.customize_recordtype_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when working with record types and business process picklists."). - For the Campaign Member Status picklist, edit values directly from campaign records rather than in Setup. See [Campaign Member Statuses](https://help.salesforce.com/s/articleView?id=sales.campaigns_customize_member_status_parent.htm&language=en_US). - For Ideas, setting the default value of the Categories or Status picklists doesn’t affect the default value on the Ideas pages. - Renaming a picklist value removes it from any associated filter criteria. For example, if your report contains a filter where Lead Source equals Email or Web and you change the picklist value Web to Referral, your report filter changes to Lead Source equals Email. If the changed value was the only filter criterion, the filter remains but displays an error. - If dashboard widget grouping relies on a picklist field that includes a fixed color value, dashboard themes don’t apply to the widget. Picklist values with fixed colors retain their assigned colors, while values with dynamically assigned colors use the default color palette. - If your org uses the Translation Workbench and you change picklist values, let your translators know about the impact to translated values. #### See Also - [Picklist Limitations](https://help.salesforce.com/s/articleView?id=platform.picklist_limitations.htm&release=264.0.0&type=5 "The maximum number of characters that you can have in a picklist depends on the type of picklist. Each picklist value includes a line break and a return character that aren’t visible but that count in the character limit.") - [Dependent Picklists](https://help.salesforce.com/s/articleView?id=platform.fields_about_dependent_fields.htm&release=264.0.0&type=5 "Use a dependent picklist to help your users enter accurate and consistent data. A dependent picklist is a custom or multi-select picklist for which the valid values depend on the value of another field, called the controlling field. A controlling field can be any picklist (with at least one and fewer than 300 values) or checkbox field on the same record.") - [Define Default Field Values](https://help.salesforce.com/s/articleView?id=platform.fields_defining_default_values.htm&release=264.0.0&type=5 "Define a default value for a field. Use a formula to generate dynamic values or constants for static values.") - [Manage Inactive Picklist Values](https://help.salesforce.com/s/articleView?id=platform.fields_manage_inactive_picklist_values.htm&release=264.0.0&type=5 "Establish upper bound limits, deactivate, reactivate, or remove a value from a restricted or unrestricted picklist.") - [Replace a Picklist Value](https://help.salesforce.com/s/articleView?id=platform.customize_replace.htm&release=264.0.0&type=5 "As your business changes, replace picklist values with more relevant alternatives. Replacing a value globally replaces that field value on all existing records.") - [Deactivate, Reactivate, or Remove a Single Picklist Value](https://help.salesforce.com/s/articleView?id=platform.fields_deactivate_reactivate_values.htm&release=264.0.0&type=5 "Deactivate, reactivate, or remove a value from a restricted or unrestricted custom picklist. If it’s a global picklist value set, these actions simultaneously update all custom picklists that inherit its value set.") - [Delete, Deactivate, Replace, or Activate Multiple Picklist Values](https://help.salesforce.com/s/articleView?id=platform.fields_picklist_bulk_manage_picklist_values.htm&release=264.0.0&type=5 "Save time by managing all your picklist values at once.") - [Remove a Picklist Value](https://help.salesforce.com/s/articleView?id=platform.additional_options_for_updating_picklists.htm&release=264.0.0&type=5 "Remove or replace custom picklist values to update the records that have the picklist field.") - [Considerations for Creating and Updating Record Types and Picklists](https://help.salesforce.com/s/articleView?id=platform.customize_recordtype_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when working with record types and business process picklists.") - [Protect Picklist API Names for Formulas and Integrations](https://help.salesforce.com/s/articleView?id=platform.fields_picklist_protect.htm&release=264.0.0&type=5 "When you create a picklist value, an API Name that matches the Label is assigned. By default, the API Name can be changed at any time, but you can choose to protect the API Name.") # Add or Remove Permission Sets from a Permission Set Group With the User Access and Permissions Assistant, you can add a permission set to, or remove a permission set from, a permission set group. ### Required Editions
Available in: all editions except Starter
User Permissions Needed
To use the User Access and Permissions Assistant: API Enabled AND Assign Permission Sets AND Customize Application AND Manage Custom Permissions AND Manage Profiles and Permission Sets AND Manage Session Permission Set Activations AND View Roles and Role Hierarchy AND View Setup and Configuration
Permission Sets Needed
To access the User Access and Permissions Assistant: User Access & Permissions Assistant Access
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note This topic is about the User Access and Permissions Assistant app. For information on downloading this app from AppExchange and installing it, see [Install the User Access and Permissions Assistant](https://help.salesforce.com/s/articleView?id=platform.perm_install_uapa.htm&release=264.0.0&type=5 "To use the User Access and Permissions Assistant, enable the Tooling API. Then download the app from AppExchange, and assign the packaged permission set that comes with the app.") in Salesforce Help. 1. In the User Access and Permissions Assistant, select **Manage**. 2. From the picklist for the selected entry, select **View Permission Set Group**. 3. Select **Permission Sets**. 4. Select your action. 1. To assign a permission set, click **Assign Permission Sets**. 2. To unassign a permission set, click ![Remove icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/access/images/uapa-remove-icon.png), then confirm. 5. To assign permission sets, select each permission set to add to the list, then click **Assign**. # Add or Remove Required Custom Permissions A required custom permission is a custom permission that must be enabled when the parent custom permission is enabled. For example, you could have a custom permission “Approve Time-Off Requests” and specify that it requires the custom permission “Submit Time-Off Requests.” ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

In Group and Professional Edition organizations, you can’t create or edit custom permissions, but you can install them as part of a managed package.

User Permissions Needed
To add or remove required custom permissions: Manage Custom Permissions
1. From Setup, enter Custom Permissions in the Quick Find box, then select **Custom Permissions**. 2. Create or select an existing custom permission. 3. In the Required Custom Permissions related list, click **Edit**. 4. Select the custom permissions that you want to add from the Available Custom Permissions list. Then click **Add**, or select the custom permissions that you want to remove from the Required Custom Permissions list, and click **Remove**. 5. Click **Save**. #### See Also - [Custom Permissions](https://help.salesforce.com/s/articleView?id=platform.custom_perms_overview.htm&release=264.0.0&type=5 "Use custom permissions to give users access to custom processes or apps.") - [Create Custom Permissions](https://help.salesforce.com/s/articleView?id=platform.custom_perms_create.htm&release=264.0.0&type=5 "Create custom permissions to give users access to custom processes or apps.") # Add Orchestrator Work Item List Object Page to Experience Cloud Extend orchestration work access to external users through your Experience Cloud site. Credentialed visitors can view and manage their assigned work items just like internal users. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To create an Experience Cloud site: Create and Set Up Experiences AND View Setup and Configuration
To customize an Experience Cloud site:
  • Be a member of the site AND Create and Set Up Experiences
  • OR
  • Be a member of the site AND an experience admin, publisher, or builder in that site
To publish an Experience Cloud site:
  • Be a member of the site AND Create and Set Up Experiences
  • OR
  • Be a member of the site AND an experience admin or publisher in that site
To run a flow in an Experience Builder site: Run Flows
1. In Experience Builder, select **Pages** | **New Page**. 2. Select **Object Pages**. 3. In the New Object Pages dialog box, enter work item in the Search box. 4. Select **Orchestration Work Item**, and click **Create**. 5. In the dialog box, click **Create**. 6. Select **Pages** | **Orchestration Work Item List**. 7. Preview and publish your site. # Add Order Item Summary Action In Salesforce Order Management, add up to 100 order product summaries to an order summary. This action creates a change order record, an order product record, and an order product summary record. It also creates any supporting adjustment, tax, and summary records. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the Salesforce Order Management add-on. To purchase, contact your Salesforce account executive.
In Flow Builder, add an Action element to your flow. Select the **Order Management** category, and search for **Add Order Item Summary**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Don’t call this action via REST API. Use it only in flows. Set Input Values Create record variables to use in the input. Use values from earlier in the flow to set their values. The action generates records based on those values. Remember to include all required values for each object type. For example, the order item summary record variable needs to include an order delivery group summary ID. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note For this action’s input values, use record variables, not existing records or record IDs.
Input Parameter Description
Order Item Summary Input

This input is an Apex-defined variable of class runtime_commerce_oms.AddOrderItemSummaries.

For information on setting up the input data, see the Usage section of this topic.

The variable has one field: newItems. This field is a list of one or more Apex-defined variables of class runtime_commerce_oms.AddItem. Each of the variables includes these fields.

  • orderItemSummary — An order product summary record variable representing the order product to add.
  • reasonCode — Reason for the addition. The value is required to match one of the picklist values on the Reason field of the Order Product Summary Change object.
  • orderItemTaxLineItemSummaries — A list of zero or more order product tax line item summary record variables associated with the order product summary.
  • orderItemAdjustmentLineSummaries — A list of zero or more Apex-defined variables of class runtime_commerce_oms.AddItemAdjustment that has these fields.
    • orderItemAdjustmentLineSummary — An order product adjustment line summary record variable associated with the order product being added.
    • orderItemTaxLineItemSummaries — A list of zero or more order product tax line item summary record variables associated with the order product adjustment line summary.
Store Output Values
Output Parameter Description
Order Item Summary Output

This output is an Apex-defined variable of class ConnectApi.AddOrderItemSummaryOutputRepresentation. It includes these fields.

The sign of a value in the changeBalances field is the opposite of the corresponding value on a change order record. For example, a discount is a positive value in changeBalances and a negative value on a change order record.

  • changeBalances — An Apex-defined variable of class ConnectApi.ChangeItemOutputRepresentation that has these fields.
    • grandTotalAmount — Change to the total with tax.
    • totalAdjDeliveryAmtWithTax — Change to the adjusted delivery subtotal, including tax.
    • totalAdjDistAmountWithTax — Change to the total order adjustments, including tax.
    • totalAdjProductAmtWithTax — Change to the adjusted product subtotal, including tax.
    • totalAdjustedDeliveryAmount — Change to the adjusted delivery subtotal.
    • totalAdjustedDeliveryTaxAmount — Change to the adjusted delivery subtotal tax.
    • totalAdjustedProductAmount — Change to the adjusted product subtotal.
    • totalAdjustedProductTaxAmount — Change to the adjusted product subtotal tax.
    • totalAdjustmentDistributedAmount — Change to the total order adjustments.
    • totalAdjustmentDistributedTaxAmount — Change to the total order adjustments tax.
    • totalAmount — Change to the pretax total.
    • totalExcessFundsAmount — The amount of excess funds available on the order payment summaries related to the order summary. It’s equal to the captured amount that is owed as a refund but isn’t associated with an invoice or credit memo. Excess funds normally occur when order products are canceled before fulfillment but after payment has been captured. This situation isn’t common in the US, where funds are normally authorized but not captured until the fulfillment process begins. This value includes all excess funds related to the order summary, not only the funds related to the current action.
    • totalRefundableAmount — The total amount available to be refunded. It’s the sum of the excess funds and any outstanding change order grand total amounts that apply to post-fulfillment changes. This value includes all refundable amounts related to the order summary, not only the amount related to the current action.
    • totalRequiredFundsAmount — The total amount associated with the order products added in the current action.

      This amount isn’t necessarily the amount that needs to be captured. For example, in an even exchange flow, the order amount reduction from canceling the exchanged products offsets the required funds amount of the replacement products.

    • totalTaxAmount — Change to the total tax.
  • changeOrderId — ID of the change order generated by the action.
  • newItems — A list of one or more Apex-defined variables of class ConnectApi.AddItemOutputRepresentation, each of which represents an added order product, and has these fields.
    • id — ID of the order product summary.
    • name — Name of the order product summary.
    • orderItemAdjustmentLineSummaries — A list of zero or more Apex-defined variables of class ConnectApi.AddItemAdjustmentOutputRepresentation, each of which represents an order product adjustment line summary associated with the added order product summary, and has these fields.
      • id — ID of the order product adjustment line summary.
      • name — Name of the order product adjustment line summary.
      • orderItemTaxLineItemSummaries — A list of zero or more Apex-defined variables of class ConnectApi.AddItemTaxOutputRepresentation, each of which represents an order product tax line item summary associated with the order product adjustment line summary, and has these fields.
        • id — ID of the order product tax line item summary.
        • name — Name of the order product tax line item summary.
    • orderItemTaxLineItemSummaries — A list of zero or more Apex-defined variables of class ConnectApi.AddItemTaxOutputRepresentation, each of which represents an order product tax line item summary associated with the added order product summary, and has these fields.
      • id — ID of the order product tax line item summary.
      • name — Name of the order product tax line item summary.
  • orderSummaryId — ID of the order summary specified in the input.
To set up the Order Item Summary Input: - Use record variables to define the order product summaries, order product adjustment line summaries, and order product tax line item summaries. Sending an Id isn’t required. - Required fields for an order product summary: - ListPrice (Only if Order Summary Pricebook2Id is NULL or empty) - Name - OrderDeliveryGroupSummaryId - OrderSummaryId - PricebookEntryId (Only if Order Summary Pricebook2Id is set) - Product2Id - Quantity - TotalLineAmount - UnitPrice - TypeCode - Type - Required fields for an order product adjustment line summary: - Amount - Name - OrderSummaryId - Required fields for an order product tax line item summary: - Amount - Name - OrderSummaryId - TaxEffectiveDate - Type - Use an assignment element to set the **orderItemSummary** field on a runtime\_commerce\_oms.AddItem variable to the order product summary record variable. - For each adjustment to the product being added, use an assignment element to set the **orderItemAdjustmentLineSummary** field on a runtime\_commerce\_oms.AddItemAdjustment variable to the corresponding order product adjustment line summary record variable. Use assignment elements to add the order product tax line summary record variables associated with it to the **orderItemTaxLineItemSummaries** field on the same runtime\_commerce\_oms.AddItemAdjustment variable. - Use an assignment element to add the runtime\_commerce\_oms.AddItemAdjustment variables to the **orderItemAdjustmentLineSummaries** field on the runtime\_commerce\_oms.AddItem variable. - For each tax on the product being added, use an assignment element to add the corresponding order product tax line summary record variable to the **orderItemTaxLineItemSummaries** field on the runtime\_commerce\_oms.AddItem variable. - Use an assignment element to set the **reasonCode** field on the runtime\_commerce\_oms.AddItem variable to a valid reason. - Use an assignment element to add the runtime\_commerce\_oms.AddItem variable to the **newItems** field on a runtime\_commerce\_oms.AddOrderItemSummaries variable. - Repeat steps 1 through 6 for each order product that you want to include in the action, adding the inputs to the same runtime\_commerce\_oms.AddOrderItemSummaries variable. You can add up to five order products at a time. - Use the runtime\_commerce\_oms.AddOrderItemSummaries variable in the action input. # Add Page Elements to Pages as a Contributor As a contributor, you can add page elements to any editable areas of a page. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To edit only content in Site.com sites:

Site.com Contributor User field enabled on the user detail page

AND

Contributor role assigned at the site level

Page elements are the building blocks of site pages. Content blocks contain the text of your website pages and can house images and hyperlinks. Widgets are custom page elements that are created by your designer or site administrator. If you can't see widgets, they're not available to you. - To add a page element to an open page, drag the element from the Page Elements pane to an editable area. When you drag a page element to an editable page area, the area is highlighted with a blue border. If you can't see a blue border, the page doesn't have any editable areas. ![Editable area](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_contentblock_contrib.png) - To move a page element on the page, drag the page element to another editable area. ![Page Element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_contrib_move2.png) - To delete a page element, click ![Delete](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_contrib_del.png). After you add a content block to a page, double-click the content block to edit it. When you add a widget to the page, you need to specify properties for the widget in a dialog box, which automatically saves your changes. To dismiss the dialog box, click another area of the screen. For more information about the properties, contact your designer or site administrator. #### See Also - [Edit Content Blocks as a Contributor](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_livemode_edit.htm&release=264.0.0&type=5 "Content blocks contain the text of your website pages, and can also house images and hyperlinks. As a contributor, you can edit the text in editable content blocks using an inline editor. Because you're editing the text inline, you always know exactly how the finished page looks when it's live.") - [The Contributor's Page Editing View](https://help.salesforce.com/s/articleView?id=platform.siteforce_editor_page_edit.htm&release=264.0.0&type=5 "Use the Overview tab to import assets, preview the page, and update the appearance of the page.") - [Preview How Pages Appear on Mobile Devices](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_livemode.htm&release=264.0.0&type=5 "With live mode, site administrators, designers, and contributors can preview how pages and templates appear on devices such as mobile phones and tablets.") # Add Pagination to Data Repeaters and Data Tables Events let you add interactive and animated effects to the pages and page elements of your website. When using data repeaters and data tables, you can add pagination events so users can easily page through the displayed data. Pagination events are particularly useful when working with large amounts of data. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

For example, if you've added a data repeater that displays all the users in an organization, you can add pagination to help users navigate through the data. You can add three pagination events: - Previous Page - Next Page - Go To Page Create Previous and Next Pagination: You can create previous and next buttons so users can move through the data one page at a time. The process for creating both buttons is the same. 1. Create your data repeater or data table. 2. In the data repeater or data table, be sure to specify how many records to display per page in the Limits section. 3. Drag a button to the page. 4. In the Properties pane, change the Button Name to Previous Page or Next Page as appropriate. 5. In the Events pane, select the click event. 6. When the Actions box appears, click ![Add](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_add.png) and select the Previous Page or Next Page action. 7. In the Target Element, select the data repeater or data table. 8. Click **Save**. Create GoTo Pagination: Creating GoTo navigation is similar to creating the previous and next buttons, but you must add an input field so users can specify what page they what to go to. 1. Create your data repeater or data table. 2. In the data repeater or data table, be sure to specify how many records to display per page in the Limits section. 3. Drag a **Number** field onto the page. 4. In the Properties pane, change the field's Label Name to something that makes sense. For example, Enter Page Number. 5. Drag a **Button** onto the page. 6. In the Properties pane, change the Button Name to GoTo Page. 7. In the Events pane, select the click event. 8. When the Actions box appears, click ![Add](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_add.png) and select the Go To Page action. 9. In the Target Element, select the data repeater or data table. 10. For Input Field ID, select the field you created in step 3. 11. Click **Save**. #### See Also - [Dynamically Retrieve Data with Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") - [Dynamically Retrieve Data with Data Tables](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5 "Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table.") - [Create an Event](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_create.htm&release=264.0.0&type=5 "Use events to add interactive and animated effects to the pages and page elements of your website.") - [Available Events and Actions](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_available.htm&release=264.0.0&type=5 "Choose from several event triggers and actions when you create an event.") # Add Permission Sets to Permission Set Groups After you’ve created a permission set group, you can add permission sets to the group based on the needs of a particular user job role or persona. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Contact Manager, Group, Essentials, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To create a permission set: Manage Profiles and Permission Sets
To assign a permission set: Assign Permission Sets
To create a permission set group: Manage Profiles and Permission Sets
There are several ways to add permission sets to permission set groups. The most efficient method depends on how many updates you're making. You can add up to 100 permission sets to a permission set group. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_tip.png) Tip Instead of completing this task manually, get help from Setup with Agentforce. For example, ask the Setup agent, “Can you add the Full Account Access permission set to the Sales Manager permission set group?” For more information, see [User Access Management in Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_user_access.htm&language=en_US). #### See Also - [Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_overview.htm&release=264.0.0&type=5 "A permission set is a collection of settings and permissions that give users access to various tools and functions. Permission sets extend users’ functional access without changing their profiles and are the recommended way to manage your users’ permissions.") ## Add a Single Permission Set to Multiple Permission Set Groups If you're adding a permission set to several permission set groups, it's most efficient to make these updates from the permission set's summary page. 1. From Setup, in the Quick Find box, enter Permission Sets, and then select **Permission Sets**. 2. Select a permission set. 3. Click **View Summary**. 4. In the Related Permission Set Groups tab, click **Add**. Select permission set groups, and then click **Add**. ## Add Multiple Permission Sets to a Permission Set Group from the Summary Page If you're adding multiple permission sets to the same permission set group, you can make this update from the permission set group's summary page. 1. From Setup, in the Quick Find box, enter Permission Set Groups, and then select **Permission Set Groups**. 2. Select a permission set group. 3. Click **View Summary**. 4. In the Included Permission Sets tab, click **Add**. 5. Select permission sets, then click **Add**. After the update is complete, the permission set group status changes to Updated. ## Add Multiple Permission Sets to a Permission Set Group from the Detail Page If you're adding multiple permission sets to the same permission set group, you can also make this update from the permission set group's detail page. 1. From Setup, in the Quick Find box, enter Permission Set Groups, and then select **Permission Set Groups**. 2. Select a permission set group. 3. Click **Permission Sets in Group**. 4. On the Add Permission Sets detail page, select the permission sets that you want to add to the group, and click **Add**. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_tip.png) Tip For easier management, you can first create a list view to filter permission sets. Then select this list view when you add permission sets to the permission set group. 5. Click **Done**. After the update is complete, the permission set group status changes to Updated. # Add Process Criteria Define the criteria that must be true before the process can execute the associated actions. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). When the criteria are met, the process executes the associated action group. When criteria aren’t met, the process skips the action group and evaluates the criteria for the next action group. 1. Click **Add Criteria**. 2. Enter a name for this criteria node. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note The name appears on the canvas, so use a name that helps you differentiate it from other criteria nodes. Actions have their own names, so we recommend summarizing only the criteria with this name. For example, if the criteria checks whether a case is escalated, use Is Escalated?. 3. Select the type of criteria that you must define. This selection determines which fields appear later in the dialog box.
If you need... Select

The record to have certain field values.

For example, to execute the associated actions on opportunity records with an amount greater than $5,000, set the filter to:

[Opportunity].Amount greater than $5000.00
Conditions are met

To evaluate the record by using a formula.

For example, to execute the associated actions on accounts whose annual revenue is over $1,000,000 when the account is changed by someone other than the owner, use this formula.

AND (([Account].LastModifiedBy.Id <> [Account].Owner.Id) , ([Account].AnnualRevenue > 1000000) )
Formula evaluates to true

To simply execute the associated actions without evaluating the record.

The process executes all the actions that are associated with this criteria node and, unless you specify otherwise, doesn’t evaluate any remaining criteria nodes in the process. If you choose to stop your process after executing these actions, we recommend choosing this option for only the last criteria node in your process.

No criteria—execute the actions!
4. If you selected “Conditions are met”: 1. Define the filter conditions by identifying the field values that the process must evaluate.
Field

Select the field whose value you want to evaluate. You can also evaluate values for records that are related to the one that started the process. To do so, click a related record with Related record icon next to the ID field.

For example, if a contact record started the process, you can evaluate the value for the contact’s account’s Annual Revenue field. To access that field, click Account IdRelated record icon, select Annual Revenue, and then click Choose.

Operator The available operators depend on the field’s data type.
Type The available value types depend on the field’ data type.
Value Identify the value that you want to evaluate the field for. See Setting Values in the Process Builder for details.
2. For Conditions, identify which conditions must be true for the process to execute the associated actions. If you choose to use custom logic, enter up to 1000 characters by using: - Numbers to refer to each condition - AND, OR, or NOT to identify which combination of conditions must be true - Parentheses to group parts of the string together For example, if you enter 1 AND NOT (2 OR 3), the outcome evaluates to true if the first condition is true and the second or third outcome is false. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip Ambiguous logic can cause validation errors. To avoid ambiguity, use parentheses in your custom logic. For example: - 1 AND 2 OR 3 results in an error - 1 AND (2 AND 3) OR 4 doesn't result in an error 5. If you selected “Formula evaluates to true,” define the formula. 6. Optionally, to specify whether you want to execute the actions only if the record was created or edited to meet criteria, click **Advanced** at the bottom of the panel. For details, see [Avoid Unwanted Actions in Processes](https://help.salesforce.com/s/articleView?id=platform.process_advanced_previously_met.htm&release=264.0.0&type=5 "When you add criteria to your process, you can choose to execute actions when specified criteria change."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This setting is available only if the process starts when a record is created or edited and you selected “Filter conditions are met” or “Formula evaluates to true.” 7. Click **Save**. #### See Also - [Execute Actions for Multiple Criteria](https://help.salesforce.com/s/articleView?id=platform.process_next_criteria.htm&release=264.0.0&type=5 "Choose whether to stop or continue your process after specific criteria are met and associated actions execute.") # Add Prompt Instructions Element Provide data in the form of prompt instructions that are merged into a prompt template in Prompt Builder. This element is available only in template-triggered prompt flows. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the Einstein for Sales, Einstein for Service, or Einstein Platform add-on. To purchase, contact your Salesforce account executive.
Template-triggered prompt flows aren’t compatible with prompt templates created in Winter ’24.
Field Description
Prompt Instructions

The text and flow resources that the flow evaluates at run time. The text and resource values are stored in the $Output global variable.

In the flow, the first Add Prompt Instructions element adds text and flow resources to the $Output global variable. Each subsequent Add Prompt Instructions element appends text and flow resources to the $Output global variable.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example The first Add Prompt Instructions element adds the text Hello!. The next Add Prompt instructions element appends the {!contact} record variable resource. When the flow finishes, the $Output global variable contains the text, Hello! Mary, where Mary is the value that {!contact} references. The same text is merged into the associated prompt template in Prompt Builder. ## Handle Missing Data in Prompt Instructions Consider logic or actions that return no data in prompt instructions. Consider these options: - Incorporate an alternative or default value. - Add instructions that don’t use the data. - Clear the prompt instructions, so nothing is passed outside the flow. - Include prompt instructions that address the missing data. For example, your prompt instructions depend on accounts that meet filter criteria, but the flow finds no accounts. We recommend using logic to handle the missing data. The Decision element can check for data, and the Add Prompt Instructions element can send contextual instructions that no data is available. ## Get Record IDs When you insert a resource that references the Get Records element in the Add Prompt Instructions element, the $Output global variable stores only the record IDs. For example, the Get Records element retrieves a collection of accounts. Its flow resource {!Get\_Accounts} is inserted into the Add Prompt Instructions. The $Output global variable stores only the account IDs. #### See Also - [Template-Triggered Prompt Flows](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger_prompt_template_capability.htm&release=264.0.0&type=5 "Provide data to prompt templates in Prompt Builder with template-triggered prompt flows.") # Add Quip Document to Folder Action Add a document to a folder to organize and share your documents. ### Required Editions
Available in: Lightning Experience
View supported editions for Quip.
In Flow Builder, add an Action element to your flow. In the Action field, enter Quip, and select **Add Quip Document to Folder**. ## Set Input Values Use values from earlier in the flow to set the inputs for the action. | Input Parameter | Description | | --- | --- | | **Document URL** | URL of the document that you want to add to a folder. | | **Folder URL** | URL of the folder where you want to add the document. | ## Store Output Values | Output Parameter | Description | | --- | --- | | **Document ID** | ID of the added document | | **Document Link** | URL of the document added to the folder | | **Document Title** | Title of the added document | [Watch an Account Plan Automation Demo](https://salesforce.vidyard.com/watch/NzZb6RFrBmdD8yPpcPM5bH) (2 minutes) #### See Also - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") # Add Recall Actions to a Flow Approval Process To run steps when an in-progress flow approval process is recalled, add a Recall path. A recall path can contain a single stage with background steps. When the submission is recalled, the stage that was in-progress and all of its steps that haven’t been completed are canceled. Open approval work items are also canceled. The stage in the recall path then runs. When the stage in the recall path is completed, the approval submission is recalled. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To open, edit, or create a flow approval process in Flow Builder: Manage Flow
You can add a recall path to both autolaunched and record-triggered flow approval processes. If Add Recall Path (Optional) isn’t visible in the start element in your flow approval process, click the Start element on the canvas. 1. On the Start element, click **Add Recall Path (Optional)**. The Configure Start panel opens. 2. Click **Add Recall Path**. ![A start element in an autolaunched flow approval process with paths labeled Run Immediately and Recall Path.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/automated_approvals/flow_approval_processes_run_immedately_recall_path.png) The flow approval process now has two paths: Run Immediately and Recall Path. 3. In the Recall Path, click ![Add element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/orchestration/orchestrator_fbuilder_circleplus.png), and then select **Stage**. 4. Enter a label, API name, and description. 5. (Optional) Under Select When to Complete the Stage, select a condition. - To complete the stage when all its steps are completed, select **When all steps have been marked Completed, the stage is marked Completed**. - To specify up to 10 requirements to meet before the stage can be completed, select **When the specified requirements are met, the stage is marked Completed**. Then configure the requirements. - To use complex requirements to determine when the stage can be completed, select **When the specified evaluation flow returns True, the stage is marked Completed**. Then select an active evaluation flow. 6. In the stage element, click **\+ Add Step**, and select **Background Step**. 7. Enter a label, API name, and description. 8. (Optional) Under Select When to Start the Step, select a condition. - To automatically start the step when the stage starts, select **When the stage starts, the step starts**. - To start the step after another step is completed, select **When another step is marked Completed, the step starts**. Then enter the name of the step to be completed first. - To specify up to 10 requirements to meet before the step can start, select **When the specified requirements are met, the step starts**. Then configure the requirements. - To use complex requirements to determine when the step starts, select **When the specified evaluation flow returns True, the step starts**. Then select an active evaluation flow. 9. Under Select an Action to Run, select an active, autolaunched flow. 10. Under Select Who to Run the Action As, select an option. - (Default) To run the step as the automated process user, select **Automated Process User**. - To run the step as a specific user, select **A Selected User**. Then select the user to run the step as. - To run the step as a user that’s determined at run time, select **A User Specified by a Resource at Run Time**. Then select the flow approval process text resource that contains the username of the person to run the step as at run time. 11. Repeat steps 6 to 10 for each background step. 12. Save your work. # Add Records from User Input in Screens Using Repeaters Example This example uses a screen flow with the Repeater component to gather information from users at run time. You can collect data for multiple items in a group. The Repeater component has one or more child components. The values in these components can be prepopulated on the screen at run time. Users can update, delete, and add values for the group. The changes from the user interaction can be also be committed to Salesforce records. When the Repeater component uses a record collection data source, each item generates a repeater instance at run time. The displayed values depend on how you map them into the Repeater's child components. At run time, users can add up to 30 instances of the Repeater component to the screen. For example, assume you have information about a few insurance policy beneficiaries, but the list isn't complete. You want the user to add the remaining beneficiaries and include details such as the beneficiary's name, address, and email address. You then want to store those details in the Salesforce database. At run time, prepopulate the beneficiary information that you already have. Users can add details for beneficiaries not listed. The flow then creates Salesforce beneficiary records for the beneficiaries that the user has added. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This example uses the Create Records element to create beneficiary records for all beneficiaries the user adds on the screen. ## Create a Beneficiary Custom Object 1. In Setup, select **Object Manager**. 2. Click **Create** and then select **Custom Object**. 3. On the New Custom Object page, specify these details: 1. For the Label field, enter Beneficiary. The Object Name, Record Name, and Data Type fields populate automatically. 2. For the Plural Label field, enter Beneficiaries. 4. Click **Save**. 5. From the object management settings for beneficiary, go to Fields and Relationships. 6. Click **New**. 7. On the Choose the field type page, under Data Type, select **email**, and click **Next**. 8. On the Enter the details page, for Field Label, enter Email Address, and click **Next**. 9. On the Establish field-level security page, accept the defaults, and click **Next**. 10. On the Add to page layouts page, accept the defaults and click **Save & New**. 11. On the Choose the field type page, select **Text Area (Long)**, and click **Next**. 12. On the Enter the details page, for Field Label, enter Address, and click **Next**. 13. On the Establish field-level security page, accept the defaults, and click **Next**. 14. On the Add to page layouts page, accept the defaults, and click **Save**. ## Create a Custom Tab for the Beneficiary Object 1. From Setup, in the Quick Find box, enter Tabs and select it. 2. To create a custom tab for the Beneficiary object, under Custom Object Tabs, click **New**. 3. On the Enter the Details page, specify these details: 1. Under Object, select **Beneficiary**. 2. Under Tab Style, select **People**. 3. Click **Next**. 4. On the Add to Profiles page, accept the defaults, and click **Next**. 5. On the Add to Custom Apps page, accept the defaults, and click **Save**. 6. Refresh the webpage. ## Create Beneficiary Records 1. From the App Launcher, find and select **Beneficiaries**. 2. To create a beneficiary from the Beneficiaries related list, click **New**. 3. Add one or more beneficiaries. 4. For every beneficiary, enter details such as their name, address, and email address. ## Create a Screen Flow Create a screen flow to collect beneficiary information from your users. 1. Open the Flows list view. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. Note that the Automation app and Flows tab options don't require Setup access. 2. Create a screen flow. 1. From the Automation app, click **New** | **Screen** | **Screen Flow**. 2. From Setup, click **New Flow** | **Screen** | **Screen Flow** ## Add and Configure a Get Records Element 1. To add an element, click ![The plus sign icon to add an element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_builder_add_element_plus.png) and search for and select **Get Records**. 2. For the Get Records element, specify this information: 1. For the label field, enter Get Beneficiary Information. 2. Under Object, search for and select **Beneficiary**. 3. Under Condition Requirements, select **None-Get All Beneficiary Records**. 4. Under How Many Records to Store, select **All Records**. ## Add and Configure a Screen Element 1. To add a screen element, after the Get Records element, click ![The plus sign icon to add an element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_builder_add_element_plus.png) and select **Screen**. 2. In the screen properties editor, for the Label field, enter Add Beneficiaries. The API Name auto-populates. ## Add and Configure a Repeater Component The prepopulated items output in a Repeater support variables of only the record collection data type. For the Default Value or the Value field in the child components, use the variable that’s automatically created by the Get Records element. The fields from the selected record collection variable are available to child components in the Repeater. The unique identifier for items is API name of the field. That field contains a unique identifier for each item in the collection. The field is automatically set to the object’s ID field. In this example, we’ve used the Added Items output to collect information about newly added beneficiaries. You can expand this example and use All items, Prepopulated Items, and Removed Items. For more information, see [Flow Screen Display Component: Repeater](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_repeater.htm&language=en_US). 1. To add a Repeater component to the screen element, drag the Repeater component to the screen canvas. 2. To configure the Repeater properties, specify these details: 1. For API Name, enter BeneficiaryDetails. 2. For the Collection for Prepopulated Items field under Configure Data Source, select **Beneficiaries from Get\_Beneficiary\_Information** (1). 3. For the Let Users Add or remove Items checkbox group, under Configure Display Options, select **Users can add items** and **Users can remove prepopulated items** (2). ![Repeater component properties editor with a collection variable selected for collection for prepopulated items and all checkboxes under configure display options selected](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_repeater_prop.png) 3. Drag a text component on the repeater and specify these details: 1. For Label, enter Beneficiary Name. The API Name autopopulates. 2. For Default Value, under REPEATER PREPOPULATED ITEMS, select **Beneficiaries from Get\_Beneficiary\_Information** > **Name**. ![Prepopulated Items variable selected under Default Value for the name field's text component](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_beneficiary_name.png) 4. To reduce the width of the Text component, from the Style tab, change the Width to 6 of 12 (Half Width) 5. Drag the Email component on the repeater and specify these details: 1. For the APIName enter EmailAddress. 2. For the Label, enter Email Address. 3. For the Value field, under REPEATER PREPOPULATED ITEMS, select **Beneficiaries from Get\_Beneficiary\_Information** > **Email\_Address\_\_c** 6. To reduce the width of the Email component, from the Style tab, change the Width to 6 of 12 (Half Width). 7. Drag a long Text Area on the repeater and specify these details: 1. For Label, enter Beneficiary Address. 2. For Default Value, under REPEATER PREPOPULATED ITEMS, select **Beneficiaries from Get\_Beneficiary\_Information** > **Address\_\_c** 8. On the screen editor, click **Done**. ## Create a Single Value Record Variable to Store Added Items The single-value record variable `addedBeneficiaryDetails` stores the field values for a beneficiary. From the Toolbox, add a new resource and specify these details: 1. Under Resource Type, select **Variable**. 2. For API Name, enter addedBeneficiaryDetails. 3. Under Data Type, select **Record**. 4. Under Object, select **Beneficiary**. 5. Click **Done**. ## Create a Collection Variable to Store All Added Items The values from the `addedBeneficiaryDetails` variable are iteratively added to a record collection variable, `beneficiaryCollection`. The record collection variable is then used to create beneficiary records. From the Toolbox, add a new resource and specify these details: 1. Under Resource Type, select **Variable**. 2. For API Name, enter beneficiaryCollection. 3. Under Data Type, select **Record**. 4. Under Object, select **Beneficiary**. 5. Select **All multiple values (collection)** 6. Click **Done**. ## Add and Configure a Loop Element To process the output of the Repeater add a loop element. After the screen element, add a Loop element and specify these details: 1. For the Label, enter Loop through Added Items. The API Name autopopulates. 2. For the Collection Variable, under SCREEN, select **Add Beneficiaries** > **Beneficiary Details** > **Added Items** ![Screen resource Add Beneficiaries selected under Collection Variable](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_loop_collection_var.png) ![Added Items selected under Outputs for the Collection Variable](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_added_items.png) ## Add and Configure an Assignment Element to Collect Beneficiary Details For each added item, the assignment element assigns the fields from the single-value record variable to the record collection variable. 1. After For Each under the loop, click ![The plus sign icon to add an element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_builder_add_element_plus.png) to add an Assignment element. 2. For the Label, enter Add Beneficiary Details. The API Name autopopulates. 3. To set the values for the Beneficiary name, specify these values: 1. For Variable, under Record Variables, select **addedBeneficiaryDetails** > **Beneficiary Name** 2. For Operator, select **Equals**. 3. For Value, under Loop, select **Current Item from Loop Loop Through Added Items** > **Beneficiary Name** 4. To set the values for email Address, enter these values: 1. Click **Add Assignment**. 2. For Variable, under Record Variables, select **addedBeneficiaryDetails** > **Email address**. 3. For Operator, select **Equals**. 4. For Value, under Loop, select **Current Item from Loop Loop Through Added Items** > **Email Address**. 5. To set the values for Address, enter these values: 1. Click **Add Assignment**. 2. For Variable, under Record Variables, select **addedBeneficiaryDetails** > **Address** 3. For Operator, select **Equals**. 4. For Value, under Loop, select **Current Item from Loop Loop Through Added Items** > **Beneficiary Address** 6. To add the beneficiary details to a record collection variable that'll be used in the Create records element, enter these values: 1. Click **Add Assignment**. 2. For Variable, select **beneficiaryCollection**. 3. For Operator, select **Add**. 4. For Value, select **addedBeneficiaryDetails**. ## Add and Configure a Create Records element to Create Newly Added Beneficiaries 1. After the Loop element, add a Create Records element. 2. To configure the Create Records element, specify these values: 1. For Label, enter Add New Beneficiaries. The API Name autopopulates. 2. For How Many Records to Create, select **Multiple**. 3. Under Record Collection, select **beneficiaryCollection**. 3. Save the flow. 4. For the Flow Label, enter Add Beneficiary Information. The API name autopopulates. 5. Click **Save**. ![Complete flow to Add Beneficiaries during run time.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_flow.png) Run the flow and add one or more beneficiaries. Go back to the Beneficiary Record page and see the newly added beneficiaries under the All Beneficiaries related list. # Add Records to a Content List After you've created a content list and added fields to it, you're ready to add content items. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Content lists and categories are currently available through a pilot program. For information on enabling content lists and categories for your organization, contact Salesforce. 1. In the Content List view on the Overview tab, open the content list by double-clicking it, or by hovering over it and clicking **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Edit Records**. 2. To add a content item, click **Create a Record**. 3. Complete the fields. All required fields are marked with an asterisk (\*). 4. Click **Save**. Next, display the records on a page using a [data repeater](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") or [data table](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5 "Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note New articles or blog posts don't appear on the live site until the content list is [published](https://help.salesforce.com/s/articleView?id=platform.siteforce_publish.htm&release=264.0.0&type=5 "When you publish a site in Site.com, you make its pages and assets live on the Internet so site visitors can access them."). #### See Also - [Importing Records into Content Lists](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_xml_import.htm&release=264.0.0&type=5 "Import records from existing press releases, articles, or blogs into your site’s content lists. For example, if you have a blog that’s hosted elsewhere, you can export the blog’s posts and then import the contents to use in your site.") - [Editing, Deleting, and Duplicating Content List Records](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_manage_records.htm&release=264.0.0&type=5 "Each content item in a content list is stored as a record that you can edit, delete, and duplicate.") - [Content Lists and Categories Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_overview.htm&release=264.0.0&type=5 "Content lists let you create and store content items to use in your site, such as press releases, blog posts, and news articles. Categories let you create groups of terms to classify the items in your content lists.") # Add Salesforce DX Project File to Bitbucket Repository To support DevOps Center features, the Bitbucket repository must follow the Salesforce DX project structure and contain a Salesforce DX project file. For Bitbucket beta, we aren’t providing a [Salesforce DX project](https://developer.salesforce.com/docs/atlas.en-us.250.0.sfdx_dev.meta/sfdx_dev/sfdx_dev_workspace_setup.htm) repository template. If the repository you plan to use with DevOps Center doesn’t contain an sfdx-project.json file, you must add one. 1. In Bitbucket, navigate to your repository. 2. From the context menu, select **Add File**. 3. Enter **sfdx-project.json** for the filename. 4. Copy these contents, then click **Commit**. ``` { "packageDirectories": [ { "path": "force-app", "default": true, "versionName": "Winter '25", "versionNumber": "1.0.0.NEXT" } ], "namespace": "", "sourceApiVersion": "61.0" } ``` You can indicate a different directory for the `path`, which indicates where your source is located. If that directory doesn’t currently exist, you must create it. Accept for update the commit message, then click **Commit**. 5. (Optional) If the path indicated in the sfdx-project.json file doesn’t exist, create it. 1. Go back to the repository view. 2. From the context menu, select **Add File**. 3. For the filename, indicate **force-app/text.txt**. To create the directory, you must also create a file. Add a comment to the text file so you can commit it. 4. Click **Commit**, accept or update the commit comment, then click **Commit** again. Next: [add team members as collaborators](https://help.salesforce.com/s/articleView?id=platform.devops_center_add_team_members_bitbucket.htm&release=264.0.0&type=5 "In Bitbucket, add team members as repository collaborators. A collaborator is someone who has been granted write access to the project repository. Add everyone who creates customizations or code for your project to the project repository as a collaborator. That way, they have access to the repository through DevOps Center."). You can then go to DevOps Center to [connect the repository](https://help.salesforce.com/s/articleView?id=platform.devops_center_bitbucket_connect_repo.htm&release=264.0.0&type=5 "Each DevOps Center project has a corresponding project repository. By connecting the Bitbucket repo to DevOps Center, DevOps Center can interact with the repo to perform operations such as creating feature branches, creating change requests, and committing and merging changes to each pipeline branch (stage).") and then [create a DevOps Center Bitbucket project](https://help.salesforce.com/s/articleView?id=platform.devops_center_bitbucket_create_project.htm&release=264.0.0&type=5 "After you connect the Bitbucket repository in DevOps Center, create the DevOps Center project associated with this source code repository to help you and your team manage changes for a particular application or customization."). # Add Service Appointment’s Parent Record to the Appointment Notification Email List To add the parent record associated with the service appointment to the email notification list, create an Assignment element. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To open, edit, or create a flow in Flow Builder: Manage Flow
To run a flow: Run Flows
1. In the Flow Builder, from the Elements panel, drag **Assignment** onto the canvas. 2. Enter a name, such as Add Parent Record as Recipient, and an API name, such as Add\_Parent\_Record\_as\_Recipient. 3. For Variable, select **recipientIds**. 4. For Operator, select **Add**. 5. For Value, enter {!$Record.ParentRecordId}, and then click **Done**. 6. Connect the Loop element (Assigned Resources) with the Assignment element (Add Parent Record as Recipient). Identify the service appointment record to add appointment information in the email notification. # Add Service Resource Preferences to Accounts for Salesforce Scheduler To promote assignment of required service resources and prevent assignment of excluded service resources to service appointments, designate service resources as required or excluded on accounts. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To add service resource preferences:
  • Read on service resources
  • Edit on accounts
To use the Required and Excluded preference types, in the scheduling policy, enable the Include Only Required Service Resources and Ignore Excluded Service Resources settings respectively. Salesforce Scheduler uses resource preference types only when users select the By work type group, appointment type, or service territory option to schedule an appointment. When users select a work type group, appointment type, and service territory, Salesforce Scheduler uses the selected values to show available resources. If you’ve enabled the resource preference settings, Salesforce Scheduler uses the preference types to filter the list of resources that appear. If you enable only the Ignore Excluded Service Resources setting, Salesforce Scheduler filters the list of available resources and shows service resources whose preference type isn’t set to Excluded. If you enable only the Include Only Required Service Resources setting, Salesforce Scheduler filters the list of available resources and shows only resources whose preference is set to Required. If there aren’t any resources whose preference is set to Required, Salesforce Scheduler shows all the available resources. If you enable Include Only Required Service Resources and Ignore Excluded Service Resources, Salesforce Scheduler filters the list of resources and shows only resources whose preference is set to Required. If there aren’t any resources whose preference is set to Required, Salesforce Scheduler shows all the available resources whose preference type isn’t set to Excluded. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Users can schedule appointments with excluded resources by selecting the By name option or the By previously scheduled service appointments option in the Select Service Resources screen. To add service resource preferences: 1. On account, click **New** in the **Resource Preferences** related list. 2. Select a service resource. 3. Select a preference type. Salesforce Scheduler doesn't use the Preferred option. 4. Save your changes. #### See Also - [Scheduling Policy Rules in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_scheduling_policies.htm&release=264.0.0&type=5 "Understand the scheduling policy rules that are available in Salesforce Scheduler.") # Add Site.com Page Elements Page elements are the building blocks of your site pages and page templates. Panel elements add structure to your pages. You can think of both pages and panels as “containers” for the page elements that you add to them. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

If a site page or page template is based on another [page template](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_master.htm&release=264.0.0&type=5 "Before you begin building the pages of your website, take some time to plan the pages you need, and in particular, which pages have a similar layout. When you've decided on the layout, the quickest method is to use a page template to build the basic layout."), you can only add page elements to [editable panels](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_master_editable.htm&release=264.0.0&type=5 "As the template creator, you specify which elements users can edit in pages based on the template."), which are highlighted with a blue border on the page. Pages, panels, data repeaters, and forms are “container” page elements, so you can add other page elements to them when the page is open. - In the Page Elements pane (![Page Elements](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_pageitems.png)), either: - Drag the page element onto the page canvas or container page element. - Click the page element, select where to place it in the popup that appears, and click **Apply**. - In the Page Structure pane (![Page Structure](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_domtree.png)), hover over a container page element and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Add Page Elements**. Click the item you want to add or drag it onto the container page element. - Select a container page element on the page and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Add Page Elements**. Click the item you want to add or drag it into the container page element. When you drag a page element into an editable panel, the page element displays a permitted icon and a green border shows where you're placing the element. ![Permitted icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_drag_ok.png) If you try dragging a page element into a panel that isn't editable, the page element displays a not-permitted icon. ![Not permitted icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_drag_notok.png) #### See Also - [Edit and Work with Site.com Page Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects_working_with.htm&release=264.0.0&type=5 "The Page Structure pane displays the hierarchy of all elements on the page and is a very useful way of selecting, moving, and reordering elements, particularly for more complicated page designs.") - [Add Images Directly to the Page](https://help.salesforce.com/s/articleView?id=platform.siteforce_image.htm&release=264.0.0&type=5 "As a site administrator, you can add images directly to your site pages and page templates or you can add images to content blocks.") - [Add Content Blocks to Pages](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_add.htm&release=264.0.0&type=5 "Content blocks contain the text of your website pages, and can also house images, videos, and hyperlinks. Designers and site administrators can add content blocks to pages when in Design Mode.") - [Add Custom Code to Pages](https://help.salesforce.com/s/articleView?id=platform.siteforce_code_custom.htm&release=264.0.0&type=5 "Custom code lets you customize your site using markup, such as HTML and JavaScript.") - [Add a Navigation Menu](https://help.salesforce.com/s/articleView?id=platform.siteforce_menu_add.htm&release=264.0.0&type=5 "By default, when you create a menu, it's generated from the pages and site map links in the Site Map folder in the Site Pages view. However, you can also create a menu that's generated from the pages in the Landing Pages folder or from the child or sibling pages of a site page.") # Add Skill Requirements for Work Types in Salesforce Scheduler Define skill requirements for work types to ensure that an appointment is assigned to a service resource with the right skills. A service resource can be assigned to an appointment only if the resource has all the skills that are required for the work type associated with that appointment. Adding skill requirements to work types saves you time and keeps your business processes consistent. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. On a work type record page, on the Skill Requirements related list, click **New**. 2. In the Skill Required field, select a skill. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note You must [create a skill](https://help.salesforce.com/s/articleView?id=platform.ls_create_skills.htm&release=264.0.0&type=5 "To get started with skills for Salesforce Scheduler, create basic skills in your org. When you assign skills to service resources or mark them as required on work types, you can add details like skill level and duration.") before you can add it as a requirement to a work type. 3. Enter a skill level from 0 to 99.99 based on how your business measures skill level. 4. Click **Save**. The skill now appears in the Skill Requirements related list on the record page. #### See Also - [Create Skills in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_create_skills.htm&release=264.0.0&type=5 "To get started with skills for Salesforce Scheduler, create basic skills in your org. When you assign skills to service resources or mark them as required on work types, you can add details like skill level and duration.") - [Assign Skills to Service Resources in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_assign_skills.htm&release=264.0.0&type=5 "Assign skills to service resources to indicate their areas of expertise. Service resources are assigned appointments based on their skills.") # Add Tags to a Blueprint in Agentforce Operations Add tags to a draft blueprint to classify and organize any workflows that run from the blueprint in Agentforce Operations. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Role or Access Needed
To edit a blueprint in Agentforce Operations: Admin role, Creator role, or a user with Edit access for the blueprint
You can add tags only to draft blueprints. You can’t add or edit tags on a published blueprint. To update tags on a published blueprint, create a new version first. You can add multiple tags to a blueprint. Tags you add to a blueprint apply to all workflows that run from it. To add tags to a blueprint: 1. [Create a blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_create_blueprint.htm&release=264.0.0&type=5 "Use AI to generate a blueprint by describing your process and optionally uploading supporting documents. You can also build a blueprint from scratch or import one from another workspace. Anyone with the Creator role can generate blueprints in Agentforce Operations.") or [edit an existing blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_edit.htm&release=264.0.0&type=5 "Open an existing blueprint for editing to add stages, tasks, automations, or other changes."). 2. In the blueprint, click the **About** tab. 3. Click **Edit blueprint details**. 4. In the **Tags** field, select the tags you want to assign to the blueprint. 5. Click **Save changes**. Agentforce Operations applies the selected tags to the blueprint and all workflows that run from it. You can filter workflows by tags in the Home page workflow list view. Learn more about filtering by tags in [Filter Workflows by Tags in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_tags_filter_workflows.htm&release=264.0.0&type=5 "Filter the workflows list view on the Home page by tag to find workflows with specific classifications in Agentforce Operations."). # Add Team Members as Users in the DevOps Center Org Add any team members who aren’t already users in the DevOps Center org. For each team member, specify the appropriate license and profile based on their role. The listed licenses and profiles are the minimum required to use DevOps Center for the associated roles. Users can also have a more fully featured license or profile that provides them access beyond the minimum requirements for DevOps Center. However, be aware of what access you are delegating to your users in your org. Minimum Required Licenses and Profiles | Role | License | Profile | | --- | --- | --- | | Project Manager, Release Manager (anyone who manages and add environments to DevOps Center) | Salesforce | Standard User | | Team members | Salesforce Limited Access - Free | Limited Access User | ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/images/icon_tip.png) Tip This procedure generates an email inviting the new users into the org. But until you’re finished setting up DevOps Center, there’s not much for them to do in the org. We recommend that you let your team know that you’re setting up DevOps Center and to wait until they hear from you before logging in. 1. Log in to the DevOps Center org. 2. From Setup, enter Users in the Quick Find box, then select **Users**. 3. Click **New User** or **Add Multiple Users**. 4. Select the appropriate license type and profile based on the user’s role. 5. Select the **Generate passwords and notify user via email** checkbox. 6. Click **Save**. #### See Also - [_Salesforce Help_: View and Manage Users](https://help.salesforce.com/s/articleView?id=platform.admin_users.htm&type=5&language=en_US) - [_Salesforce Help_: Standard Profiles](https://help.salesforce.com/s/articleView?id=platform.standard_profiles.htm&type=5&language=en_US) - [_Salesforce Help_: User Licenses](https://help.salesforce.com/s/articleView?id=platform.users_understanding_license_types.htm&type=5&language=en_US) - [_Salesforce DX Developer Guide_: Free Limited Access License](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/dev_hub_license.htm) # Add Team Members as Users in the Lifecycle Center Hub Org Add any team members who need access to Lifecycle Center Hub org. For each team member, specify the appropriate license and profile based on their role. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
Not Available in: Government Cloud Plus. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center is supported in orgs in the EU that aren’t part of EU OZ, per standard product terms and conditions.
User Permissions Needed
To add team members to the Lifecycle Center Hub org:  Lifecycle Center Admin
Assign these minimum required licenses and profiles to team members based on their roles in Lifecycle Center. | Role | License | Profile | | --- | --- | --- | | Lifecycle Center Admin, Lifecycle Center Deployment Manager (anyone who manages and adds environments to Lifecycle Center) | Salesforce | Standard User | | Team Members | Salesforce | Standard User | 1. Log in to the Lifecycle Center Hub org. 2. From Setup, in the Quick Find box, enter Users, and then select **Users**. 3. Click **New User** or **Add Multiple Users**. 4. Select the appropriate license type and profile based on the user’s role. 5. Select **Generate passwords and notify user via email**. 6. Save your changes. The team members receive an invitation. We recommend asking them to wait for your confirmation before logging in. Their access to Lifecycle Center is limited until you complete the setup. # Add Team Members to the Bitbucket Repo As Collaborators In Bitbucket, add team members as repository collaborators. A collaborator is someone who has been granted write access to the project repository. Add everyone who creates customizations or code for your project to the project repository as a collaborator. That way, they have access to the repository through DevOps Center. 1. In the Bitbucket repository, click **Invite**. 2. Click **Add Users or Groups**. 3. Search for team members to invite, provide the appropriate privileges, and then click **Confirm**. Follow up with your team members to make sure they accept the invitation to avoid access problems when the team members begin using DevOps Center. # Add Team Members to the GitHub Repo As Collaborators In GitHub, add team members as repository collaborators. A collaborator is someone who has been granted write access to the project repository. Add everyone who creates customizations or code for your project to the project repository as a collaborator. That way, they have access to the repository through DevOps Center. To add a team member as a collaborator in the project repository: 1. Ask each of your team members to create a GitHub account (if they don’t have one already) and to send you their GitHub username. 2. Log in to GitHub and update the project repository settings for access to invite the team member as a collaborator. GitHub sends an email to each team member you invited, asking them to accept the invitation. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/images/icon_tip.png) Tip Follow up with your team members to make sure they accept the invitation from GitHub to avoid access problems when the team members begin using DevOps Center. # Add Test Suites to a Stage Assign test suites to a pipeline stage to automate quality checks when a Review Event or Pre-Promotion Event is triggered for that stage. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
Not Available in: Government Cloud Plus. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center is supported in orgs in the EU that aren't part of EU OZ, per standard product terms and conditions.
User Permissions Needed
To add test suites to a stage: Lifecycle Center Testing Manager
Test providers must be configured and synced. See [Configure a Test Provider](https://help.salesforce.com/s/articleView?id=platform.devops_center_testing_configure_test_provider.htm&release=264.0.0&type=5 "When you configure a test provider, Lifecycle Center Testing automatically syncs your tests and test suites into the Lifecycle Center pipeline stages.") and [Sync Test Providers](https://help.salesforce.com/s/articleView?id=platform.devops_center_testing_sync_test_providers.htm&release=264.0.0&type=5 "Syncing ensures your pipeline has the latest test data and configurations from your connected test providers. Run a sync whenever test suites are added, removed, or updated in your provider tool."). ![Add Test Suites window showing test suites with test provider and environment columns, with a test suite selected for assignment](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/devops_center_testing_add_test_suites_to_stage.png) 1. From the pipeline view, select the **Tests** tab. 2. On the stage card where you want to add test suites, click **Add**. 3. In the Add Test Suites window, select the checkbox for each test suite you want to assign. 4. Click **Add**. The selected test suites now appear on the stage card and will run automatically when the stage's Review Event or Pre-Promotion Event is triggered. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note Assign test suites from multiple providers to the same stage to build layered coverage — for example, Apex Unit Testing for code logic and Code Analyzer v5 for security scanning. #### See Also - [Unassign Test Suites from a Stage](https://help.salesforce.com/s/articleView?id=platform.devops_center_testing_remove_test_suites_from_stage.htm&release=264.0.0&type=5 "Unassign a test suite from a stage when it's no longer relevant or when you need to streamline testing for a faster deployment. Removing an assignment does not delete the test suite — it remains available to reassign at any time.") - [View Test Suite Group Execution](https://help.salesforce.com/s/articleView?id=platform.devops_center_testing_view_test_suite_group_execution.htm&release=264.0.0&type=5 "Monitor the live status and results of all test suites running as a group during a review or promotion event.") # Add the Automation Usage Component to the Orchestration Record Version Page The Automation app shows the flows that an orchestration version uses. If you customized the Default Orchestration Version Record page, add the Automation Usage component to your page and save it as your org default. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter automation, and then select **Automation**. The Automation app opens. 3. Select the **Orchestrations** tab, and then click the label for any orchestration. 4. Select the **Versions** tab, and then click the name of any orchestration version. 5. Click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png), and then select **Edit Page**. The Orchestration Version Record page opens in Lightning App Builder. 6. Optional. To add the Automation Usage component to a tab, add a tab to an existing Tabs component. 1. Select the Tabs component on the page layout. 2. In the Tabs panel, click **Add Tab**. 3. Under Tabs on the Tabs panel, click the last tab. 4. Click the tab label, enter Usage, and then select **Usage**. 5. Click **Done**. 7. Drag the Automation Usage component to the page layout. 1. To add the component to a tab in a Tabs component, select the tab you want to add the component to. In the Components list, drag the **Automation Usage** component to the area labeled **Add Component(s) Here**. 2. To add the component to the page, in the Components list, drag the **Automation Usage** component to the page. 8. Save your changes. 9. If the Activation: Orchestration Version Record Page window appears, configure the default page. 1. Select **Assign as Org Default**. 2. On the Assign form factor window, select the form factor that you want the org default page to be available for, and then click **Next**. 3. Review the assignment and click **Save**. 10. Click the back arrow to exit Lightning App Builder. # Add the Automation Usage Component to View Flow Approval Process Dependencies The Approvals app shows the flows that a flow approval process version uses and the flow versions that use a flow approval process. The Approvals app uses the default Orchestration Version and Orchestration pages to show this information. If you customized either page, add the Automation Usage component and save the updated page as your org default. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
The Approvals app and the Automation app share the Orchestration Record page and the Orchestration Version Record page. Changes you make to either page affect both apps. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter approvals, and then select **Approvals**. The Approvals app opens. 3. Select the **Manage All Flow Approval Processes** tile. The All Flow Approval Processes list view opens. 4. Select the page to edit. 1. To edit the page that shows the flow versions that use a flow approval process, select the label of a flow approval process. 2. To edit the page that shows the flows that a flow approval process version uses, select the label of a flow approval process. Next select the **Versions** tab, and then click the name of any flow approval process version. 5. Click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png), and then select **Edit Page**. 6. Optional. To add the Automation Usage component to a tab, add a tab to an existing Tabs component. 1. Select the Tabs component on the page layout. 2. In the Tabs panel, click **Add Tab**. 3. Under Tabs on the Tabs panel, click the last tab. 4. Click the tab label, enter Usage, and then select **Usage**. 5. Click **Done**. 7. Drag the Automation Usage component to the page layout. 1. To add the component to a tab in a Tabs component, select the tab you want to add the component to. In the Components list, drag the **Automation Usage** component to the area labeled **Add Component(s) Here**. 2. To add the component to the page, in the Components list, drag the **Automation Usage** component to the page. 8. Save your changes. 9. If the Activation: Orchestration Record Page or Activation: Orchestration Version Record Page window appears, configure the default page. 1. Select **Assign as Org Default**. 2. On the Assign form factor window, select the form factor that you want the org default page to be available for, and then click **Next**. 3. Review the assignment and click **Save**. 10. Click the back arrow to exit Lightning App Builder. # Add the Automation Usage Component to View Flow Dependencies The Automation app shows the automations that a flow version uses and the automation versions that use a flow. The Automation app uses the default Flow Version and Flow pages to show this information. If you customized either page, add the Automation Usage component and save the updated page as your org default. ### Required Editions
View supported editions.
User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
The Approvals app and the Automation app share the Orchestration Record page and the Orchestration Version Record page. Changes you make to either page affect both apps. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter automation, and then select **Automation**. The Automation app opens. 3. Select the page to edit. 1. To edit the page that shows the automation versions that use a flow, select the label of a flow. 2. To edit the page that shows the automations that a flow version uses, select the label of a flow. Next select the **Versions** tab, and then click the name of any flow version. 4. Click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png), and then select **Edit Page**. 5. Optional. To add the Automation Usage component to a tab, add a tab to an existing Tabs component. 1. Select the Tabs component on the page layout. 2. In the Tabs panel, click **Add Tab**. 3. Under Tabs on the Tabs panel, click the last tab. 4. Click the tab label, enter Usage, and then select **Usage**. 5. Click **Done**. 6. Drag the Automation Usage component to the page layout. 1. To add the component to a tab in a Tabs component, select the tab you want to add the component to. In the Components list, drag the **Automation Usage** component to the area labeled **Add Component(s) Here**. 2. To add the component to the page, in the Components list, drag the **Automation Usage** component to the page. 7. Save your changes. 8. If the Activation: Flow Record Page or Activation: Flow Version Record Page window appears, configure the default page. 1. Select **Assign as Org Default**. 2. On the Assign form factor window, select the form factor that you want the org default page to be available for, and then click **Next**. 3. Review the assignment and click **Save**. 9. Click the back arrow to exit Lightning App Builder. # Add the Inbound New Guest Appointment Flow to an Experience Cloud Site Add the Inbound New Guest Appointment flow to your Experience Cloud site so that your guest users can schedule appointments. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Ensure that you provide the required user and object permissions to your guest users. For more information, see [Grant Guest Users Required User and Object Permissions](https://help.salesforce.com/s/articleView?id=platform.ls_guest_user_permissions.htm&release=264.0.0&type=5 "To schedule appointments, guest users need certain user and object permissions. You can grant these permissions to guest users through the guest user profile for your Experience Cloud site.") and [Create Sharing Rules for Guest Users Who Schedule Appointments](https://help.salesforce.com/s/articleView?id=platform.ls_guest_sharing_criteria.htm&release=264.0.0&type=5 "Create criteria-based record-sharing rules to control which records are exposed to your guest users."). 1. In your site, in the profile menu, click Experience Builder. 2. In Experience Builder, select **Components**. 3. Enter Flow. 4. Drag the Flow component onto a public page on your site. 5. From the Flow list, select **Inbound New Guest Appointment**. 6. To save and then publish your changes, click **Publish**. # Add the Inbound New Guest Appointment Flow to Websites Using Redirect Redirect unauthenticated users from your company websites (external websites) to experience cloud sites to give access to the Inbound New Guest Appointment standard flow. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Ensure that you provide the required user and object permissions to your guest users. For more information, see [Grant Guest Users Required User and Object Permissions](https://help.salesforce.com/s/articleView?id=platform.ls_guest_user_permissions.htm&release=264.0.0&type=5 "To schedule appointments, guest users need certain user and object permissions. You can grant these permissions to guest users through the guest user profile for your Experience Cloud site.") and [Create Sharing Rules for Guest Users Who Schedule Appointments](https://help.salesforce.com/s/articleView?id=platform.ls_guest_sharing_criteria.htm&release=264.0.0&type=5 "Create criteria-based record-sharing rules to control which records are exposed to your guest users."). 1. Create an Experience Cloud site page with the Inbound New Guest Appointment flow. For more information, see [Add the Inbound New Guest Appointment Flow to an Experience Cloud Site](https://help.salesforce.com/s/articleView?id=platform.ls_publish_inbound_guest_flow.htm&release=264.0.0&type=5 "Add the Inbound New Guest Appointment flow to your Experience Cloud site so that your guest users can schedule appointments."). 2. Add the link of the Experience Cloud site page to your company website. # Add the Lobby Management QR Code Component to Record Pages You can add the QR code component to the service territory record page and to the waitlist record page. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To access the Lobby Management dashboard: Greeter Product Service License
1. From Setup, in the Quick Find box, enter User Interface, and then select **Lightning App Builder**. 2. Under Action, click **Edit** next to the Service Territory Page or Waitlist Record page. 3. In Lighting App Builder, under the Components section, drag the QR Code component onto the record page. 4. In the attributes panel on the right, for Target URL Field, select **Link** for a waitlist and **Self Check In URL** for a service territory. # Add the Local DX Project Files to the GitHub Repository In Salesforce Extensions for VS Code, add the files you retrieved from your org to the DevOps Center project’s GitHub repository. The GitHub repository has the same name as the DevOps Center project name. After you add the files to the source control repository, the process creates the main branch, which you’ll associate with your release environment. Other branches for pipeline stages are created when you build your pipeline in DevOps Center. Before you begin, [retrieve metadata from the production org to your local DX project](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_seed_repo_generate_manifest.htm&release=264.0.0&type=5 "In Salesforce Extensions for VS Code, use Salesforce CLI to generate the manifest that contains the metadata types you want to retrieve from the production org."). Use the same public GitHub account that you created for DevOps Center. If your project contains fewer than 100 files, you can upload them directly in GitHub, then commit and merge them into the main branch. This method is straight-forward for small repositories. See [GitHub Docs: Adding a file to a repository](https://docs.github.com/en/repositories/working-with-files/managing-files/adding-a-file-to-a-repository). If your project contains more than 100 files, use this method to populate the source control repository using the click-based Git functionality in VS Code. After you become comfortable using Git within VS Code, you can use this method for any number of files. 1. In VS Code, open the project, then click the Code Fork icon. ![Code Fork icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/vscode-click-code-fork.png) 2. Under Changes, see the metadata that you retrieved from your org. Each file is tagged as Untracked (U), which means that GitHub is now aware of it as a new file but it isn’t yet synched with the repository. ![Changes section shows untracked files that are available to commit.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/vscode-changes.png) 3. Click the **Changes** bar, then click **+** to stage all changes, which creates a snapshot of the files so you can commit them. ![Click the Changes bar, then click the plus sign to stage all changes.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/vscode-stage-all-changes.png) VS Code denotes staged files with an A. 4. Enter a commit message (1), then click **Commit** (2), which commits and pushes the files to the main branch. ![Commit message says "seeding repo with prod org metadata" then the Commit button is highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/vscode-commit-changes.png) 5. (Optional) If you modified the .gitignore or .forceignore files, click **Sync Changes** to push them to the main branch in the repository. 6. Go to GitHub to view your seeded project repository. In GitHub, find the repository, or click the Repository URL link from within DevOps Center. To see your files listed in the main branch, click the **Code** tab. ![In GitHub, the main branch is poulated with the org metadata. You can see the files under Code.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/github-seeded-repo.png) You have successfully added files from your production org to a source control repository and created the main branch. When you build your release pipeline within DevOps Center, you create the rest of your branches when you define each pipeline stage. Next: In DevOps Center, continue configuring your DevOps Center project. Then [add the release environment](https://help.salesforce.com/s/articleView?id=platform.devops_center_project_add_release_env.htm&release=264.0.0&type=5 "At a minimum, projects require a release environment (often your production org) and one developer environment. Be sure all team members are users in this environment if they require access to it to perform deployments to it from within DevOps Center.") (production org) and then build your release pipeline. # Add the My Appointments Micro Calendar Console to the Utility Bar Make viewing past and upcoming appointments easy for service resources and your users by adding the My Appointments micro calendar console to the Salesforce utility bar. The My Appointments micro calendar console isn’t supported on mobile web browsers. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To access My Appointments console: Video Call Users permission on the Salesforce Scheduler PSL license.
To view appointments in the My Appointments console: Read access on the Appointment Booking URL field of the Service Appointment object.
Here’s how Salesforce Scheduler shows appointments in the My Appointments micro calendar console: - The Upcoming tab shows all service appointments that are scheduled to start in the next 24 hours and that are in the In Progress, Scheduled, Dispatched, or None status categories. - The Past tab shows all service appointments that have ended on the current day and the appointments that have already started. It also shows the appointments that were scheduled to end in the past one hour. 1. From Setup, in the Quick Find box, enter App Manager, and then select **App Manager**. 2. For Salesforce Scheduler Setup, click Show Actions ![Show Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_flow_edit_access_dropdown.png), and then select **Edit**. 3. Click **Utility Items (Desktop Only)**, and then click **Add Utility Item**. 4. In the search field, enter My Appointment, and then select **My Appointments**. 5. Save your changes. The My Appointments micro calendar console is now available on the utility bar. - **[Appointment Details Shown in the My Appointments Micro Calendar Console](https://help.salesforce.com/s/articleView?id=platform.ls_appointment_details_in_my_appointments_micro_calendar_console.htm&release=264.0.0&type=5)** The My Appointments micro calendar console shows upcoming and past appointments. The console makes getting into an appointment easy by showing basic appointment details, such as account information, appointment topic, and appointment type. The console shows the service appointments in the time zone of the logged-in service resource. #### See Also - [Add a Utility Bar to Lightning Apps](https://help.salesforce.com/s/articleView?id=platform.apps_lightning_utilities.htm&type=5&language=en_US) - [Set Up Virtual Calls For Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_assign_video_call_user_perm_to_srvc_resources.htm&release=264.0.0&type=5 "Assign permission sets and connect and configure Amazon Chime for Virtual Calls.") # Add the Operating Hours Component to Record Pages Add the Operating Hours component to the service territory, service territory member, and work type record pages. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note The total number of time slots you can add by using the Operating Hours component is limited to 200. 1. From Setup, in the Quick Find box, enter App Builder, and then select **Lightning App Builder**. 2. Click **Edit** for one of the following pages: **Service Territory Lightning Record Page**, **Service Territory Member Lightning Record Page**, or **Work Type Lightning Record Page**. 3. Drag the **Scheduler - Operating Hours** component onto the page. 4. Save your changes. 5. Activate the page. 6. Repeat for the other Lightning pages listed in step 2 as needed. # Add the Release Environment for the Project At a minimum, projects require a release environment (often your production org) and one developer environment. Be sure all team members are users in this environment if they require access to it to perform deployments to it from within DevOps Center. 1. On the All Projects page, under Release Environment, click **Click to Create Pipeline**. 2. In the Pipeline Environments page, find the Production stage, then click **Connect Environment**. 3. Provide a unique name for the production environment and indicate the environment type. By default, DevOps Center populates this field with the project name + Production. Environment names must be unique across projects. ![Add Release Environment dialog.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/devops_center_setup/images/add-release-environment.png) 4. Click **Log In**. 5. Log in to the environment. 6. To allow this environment to connect to DevOps Center, click **Confirm**. DevOps Center uses an OAuth process to remember your credentials. The release environment URL is now listed on the Projects page. Now define the development environments for this project. # Add the Shift Capacity Component Add the Service Territory Capacity Summary component to view shift capacity information for a service resource or service territory. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To add the summary component to the page layout: Customize Application
To view the capacity summary: Read on service territories OR Read on service resources
1. From the App Launcher, navigate to the page where you want to add the summary component. 2. Click the gear icon, and select **Edit Page**. 3. Drag the Service Territory Capacity Summary component onto the page. 4. Save your changes. # Add the Translations Tab to an Object To associate translations with their objects, add the Translations tab. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. Click an object tab, and then select an instance of the object. For example, click the **Service Territories** tab, and then select a service territory. 2. Click the gear icon in the header, and then select **Edit Page**. 3. Select the section with the Related and Details tabs. 4. In the right pane, click **Add Tab**. 5. Click the new tab value, and then in the Tab Label dropdown, select **Translations**. 6. Click the **Translations** tab, and then add the Translations component. 7. Save your changes. 8. Click **Activation**, and then assign the profile for whom the Translations tab is visible. # Add the Video Call Utility Item to the Utility Bar Make joining a video call easy for service resources and your users by adding the video call component to the Salesforce utility bar. The Video Call utility item isn’t supported on mobile web browsers. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To access Video Call utility item: Video Call Users permission on Salesforce Scheduler PSL license.
1. From Setup, in the Quick Find box, enter App Manager, and then select **App Manager**. 2. For Salesforce Scheduler Setup, click Show Actions ![Show Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_flow_edit_access_dropdown.png), and then select **Edit**. 3. Click **Utility Items (Desktop Only)**, and then **Add Utility Item**. 4. In the search field, enter Video, and then select **Video Call**. 5. Save your changes. The Video Call utility item is now available on the utility bar. #### See Also - [Add a Utility Bar to Lightning Apps](https://help.salesforce.com/s/articleView?id=platform.apps_lightning_utilities.htm&type=5&language=en_US) # Add to Actionable List Element Add an individual to an actionable list. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise and Unlimited Editions with Marketing Cloud Growth or Advanced Edition
Available in: All editions supported by Data 360. See Data 360 edition availability
## Set Input Values Select the list from the element settings in Flow Builder. | Input Parameter | Description | | --- | --- | | **List** | Represents an actionable list in your Salesforce org. | ## Store Output Values
Output Parameter Description
Records Not Added to List

Provides a comma-separated list of IDs of individuals not added to the actionable list.

# Add Translated Languages and Translators Add languages for translation, assign translators for each language, and activate or deactivate a language’s translations. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To add or edit languages: Manage Translation
To assign translators: Manage Translation
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The Manage Translation permission is enabled by default in the System Administrator profile. Before adding a language for translation, you must select languages for your org and enable Translation Workbench. 1. From Setup, in the Quick Find box, enter Translation Language Settings, and then select **Translation Language Settings**. 2. To activate a new language, click **Add**. Or to change an existing supported language, click **Edit**. 3. If adding a language, choose a language. 4. To make the entered translations available to your users, select Active. Users can change their personal language anytime, regardless of whether it's active in the Translation Workbench. Selecting Active makes the translations available to the users in that language. We recommend that you don't make a language active until the translators have translated all values. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Inactive status controls only what users see: it doesn't affect exports or imports. Inactive languages are still included in exported translation files and remain available for translators to work on. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you installed a managed package that includes translations, those translated values appear to users regardless of whether the language is active on the Translation Language Settings Setup page. To override metadata translations delivered by a managed package for custom objects, see Override Translations in Second-Generation Managed Packages and Unlocked Packages. 5. To assign translators for this language, select them from the Available List, and click **Add**. If you don't see the member that you want to add, enter keywords in the search box, and click **Find**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important Ensure that all translators have the View Setup and Configuration permission so that they can begin translating. Users can only translate languages that they're assigned to. 6. Save your changes. #### See Also - [Select Languages for Your Org](https://help.salesforce.com/s/articleView?id=xcloud.admin_select_languages_for_your_org.htm&type=5&language=en_US) - [Enable or Disable Translation Workbench](https://help.salesforce.com/s/articleView?id=platform.customize_wbench.htm&release=264.0.0&type=5 "Translation Workbench allows you to specify languages for translation, assign translators, and manage your translations through the workbench or bulk translation.") - [Override Translations in Second-Generation Managed Packages and Unlocked Packages](https://help.salesforce.com/s/articleView?id=platform.entering_translated_terms_in_packages.htm&release=264.0.0&type=5 "You can override metadata translations for custom objects in namespaced unlocked packages and second-generation managed packages. For example, override the label on a custom field or workflow task.") # Add Translation Languages and Translators Add languages for translation, assign translators for each language, and activate or deactivate a language’s translations. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Before adding a language for translation, ensure that you select languages for your org and enable Translation Workbench. 1. From Setup, in the Quick Find box, enter Translation Language Settings, and then select **Translation Language Settings**. 2. To add a language, click **Add**. 3. From the Language dropdown, select a language. 4. To make the translations available to your users, select **Active**. Users can change their personal language anytime even if the language is active in the Translation Workbench. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note We recommend that you make a language active after the translators translate all values. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Inactive status controls only what users see: it doesn't affect exports or imports. Inactive languages are still included in exported translation files and remain available for translators to work on. 5. Under Identify Translators for this Language, select a user from the Available List box, and then click **Add** to move the user to the Selected List box. The selected user controls the language translation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_important.png) Important Assign translators the View Setup and Configuration permission to enable them to translate. Users can translate only assigned languages. 6. Save your changes. # Add Translations to Standard and Custom Fields Add translations to standard and custom fields of Work Type Group, Service Territory, and Service Resource objects. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Before adding data translations, ensure that you add the Translations tab to the object. 1. Click an object tab, and then select an instance of the object. For example, click the **Service Territories** tab, and then select a service territory. 2. Click the **Translations** tab, and then click **Add Translation**. 3. Select a language. 4. Enter the translated text for the name, description, and custom fields. 5. Save your changes. # Add Users to a Slack Channel Action Adds users to a channel in Slack. ### Required Editions
View supported editions.
In Flow Builder, add an Action element to your flow. In the New Action window, select **Slack**, and then select **Add Users to a Slack Channel**. ## Usage To use this action, first [connect Salesforce and Slack](https://slack.com/help/articles/30754346665747-Connect-Salesforce-and-Slack), and set the Add people to a channel [Workflow Builder step](https://slack.com/help/articles/16749280664595-Slack-administration--Manage-access-to-Workflow-Builder-connectors#set-specific-access) in Slack to Everyone. ## Set Slack Channel Details | Input Parameter | Description | | --- | --- | | Slack Channel ID | Channel identifier from a previous Flow step or copied from Slack. Find a channel ID in Slack using a [channel list export](https://slack.com/help/articles/360047512554-Use-channel-management-tools#export-a-list-of-channels), or get it directly from the channel by clicking the channel header and copying the channel ID at the bottom of the page. You can’t send messages to private channels or [Slack Connect channels](https://slack.com/help/articles/115004151203-Slack-Connect-guide--Work-with-external-organizations). | | Slack User IDs | Collection of Slack user IDs to add. Find Slack user IDs using the [Look Up a Slack User Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_slack_look_up_slack_user.htm&release=264.0.0&type=5 "Identifies a Salesforce user's Slack ID.") action or open a user profile and click Copy member ID. | ## Store Output Values | Input Parameter | Description | | --- | --- | | Added Users | List of users added to the Slack channel. | #### See Also - [_Slack Help Center_: Connect Salesforce and Slack](https://slack.com/help/articles/30754346665747-Connect-Salesforce-and-Slack) - [_Slack Help Center_: What is a channel?](https://slack.com/help/articles/360017938993-What-is-a-channel) # Add Users to Agentforce Operations Add new users to Agentforce Operations by assigning them tasks, adding them directly, or adding multiple users in bulk. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Role or Access Needed
To manage user data in Agentforce Operations: Admin role or People Admin role
Before you begin, review [User Roles and Access Levels in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_roles.htm&release=264.0.0&type=5 "Assign specific roles to users that define what they can do in Agentforce Operations. You can use the system roles, or create custom roles. Grant granular access levels to blueprints and workflows.") so you can assign the correct roles to new users. Agentforce Operations is an invite-only platform. You can add users in several ways depending on your needs. To add or update multiple users by using a CSV file, see [Add and Update Multiple Users in Bulk in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_bulk_create_update_multiple_users.htm&release=264.0.0&type=5 "Upload a CSV file to invite users to the workspace, add roles to existing users, or update their names. A CSV file can include up to 10,000 rows, including the header row. You can add roles to users. You can't remove or create roles by uploading a CSV file."). The new users receive a Welcome to Agentforce Operations email automatically. The users click the **Accept Invite** button and follow the log in process. For details on signing in, see [Logging In to Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_sign_in.htm&release=264.0.0&type=5 "Log in to Agentforce Operations by using your invite email, and learn when you need to log in and when you don't need to log in."). ## Add a User Through a Task The easiest way to invite a single user is to assign them a task. When you assign a task to a new email address, the user gets a task assignment email. Users also get an email inviting them to join Agentforce Operations so they can log in. 1. When creating or editing a task, for Assigned to, enter the new user's email address. The Invite person button shows. 2. Click **\+ Invite person**. The new user window opens. 3. Enter the user's information and then click **Invite**. The user receives a Welcome to Agentforce Operations email with a link to log in to the workspace. ## Add a User Directly Create a single user account by directly inviting them to the workspace. 1. In the navigation sidebar, click **Admin**. 2. Click the **People** tab. 3. Click **\+ Add or update**. 4. Click **Invite via direct entry**. 5. Click **Select**. 6. Enter the new user's name and email address. 7. For Type, select **Internal** or **External**. 8. Optionally, select a role or multiple roles for the user. 9. Optionally, select a language. 10. Click **Invite**. The user receives a Welcome to Agentforce Operations email with a link to log in to the workspace. ## Resend an Email Invite to a User Resend a workspace invite email so a user can log in. 1. Go to your workspace's login page. 2. Click **Resend email invite**. The user receives a Welcome to Agentforce Operations email with a link to log in to the workspace. # Add Validation Rules to Service Appointment Fields Add validation rules to ensure that user inputs meet your requirements. You can also use validation rules to override the default error messages. For example, you can add a validation rule that enables users to save an appointment only after they enter a subject. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To view field validation rules: View Setup and Configuration
To define or change field validation rules: Customize Application
When users save an appointment, Salesforce Scheduler checks if all the validation rules are met. If a rule isn’t met, Salesforce Scheduler shows the configured error message. This also applies when a service resource runs the **Start Appointment**, **End Appointment**, or **Accept Appointment** actions in the My Appointments console. 1. From the object management settings for service appointment, go to Validation Rules. 2. Click **New**. 3. Enter a rule name, error condition formula, and error message. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note To check your formula for errors, click **Check Syntax**. 4. Save your changes. # Add Values to a Collection Variable After you create a collection variable, populate it with values to reference throughout your flow. You can’t use a Get Records element to populate a collection variable, but there are some workarounds. ### Required Editions
View supported editions.
To use values from outside the flow, make sure that the collection variable is available for input. When the values come from outside the flow, the values can be set only when the flow interview starts.
To add values that are stored in a... Do this action... For more information
Screen component Add the field’s entered or stored value to a collection variable by using an Assignment element.
Variable Add the variable’s stored value to a collection variable by using an Assignment element.
Record variable Add one of the record variable’s stored field values to a collection variable by using an Assignment element.
Record collection variable Loop through the record collection variable. Within the loop, add one of the loop variable’s stored field values to a collection variable by using an Assignment element.
![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example You’re designing a flow that sends an email to all employees living in specific location. You create a record collection variable that collects all users who lives in San Francisco. Then you use the send email action that the flow sends an important update to those employees. For more information, see [Send an Email with an Attachment in an Autolaunched Flow Example](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_send_email_example_autolaunch_with_attachments.htm&release=264.0.0&type=5 "Use the Send Email action to send an email with an attachment to all employees living in a city. For example, you want to send an important update to all employees living in San Francisco and add attachments to your email.") # Add Video to Content Blocks in Design Mode Designers and site administrators can add YouTube®, Google®, Adobe® Flash®, Windows Media®, and Apple QuickTime® videos to content blocks when viewing a page in Design Mode. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To edit only content in Site.com sites:

Site.com Contributor User

AND

Contributor role assigned at the site level

When the page is open: 1. Double-click the content block on the page. 2. Position your cursor where you want to insert the video and click ![Add or edit media](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_video.png). 3. In the Video Properties dialog box, select the video type and either: - Enter the URL to the video in the Video URL text box—for example, http://www.youtube.com/watch?v=123abc. - Select a video from your website by clicking **From Website** and selecting the video in the list that appears. - Upload a video from your computer by opening the Upload tab, browsing to the image, and clicking **Upload**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can only select or upload Flash, Windows Media, and QuickTime videos. 4. To specify how the video is displayed on the page, you can set: - The width and height of the video - How much space surrounds the video (which is controlled by the `HSpace` and `VSpace` properties) - How it aligns with the text on the page You can also preview the video. 5. Click **Apply**. The video appears as an icon in the content block. 6. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can view all video types, other than Windows Media videos, when you [preview a page](https://help.salesforce.com/s/articleView?id=platform.siteforce_preview.htm&release=264.0.0&type=5 "Contributors, designers, and site administrators can preview site pages to see how they look when rendered in a browser window. It's always a good idea to make sure your changes are displayed correctly, as this preview is how the pages appear on the live site."). #### See Also - [Edit Content Blocks in Design Mode](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_edit.htm&release=264.0.0&type=5 "Designers and site administrators can edit content blocks on the page. Content blocks contain the text for site pages, and can also house images, videos, and hyperlinks.") - [Understand the Content Editing Toolbar](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_toolbar.htm&release=264.0.0&type=5 "Designers and site administrators can edit content blocks when in Design mode. Content blocks contain the site page's text, along with images, videos, and hyperlinks.") # Add Videos to a Custom Field Using the HTML Editor To embed a video, use the HTML editor to paste the element as an ``` However, you want users to specify which video to display when they add an instance of the widget to the page. In this case, you could create a section called YouTube, add a custom property labeled Video URL with videoURL as the expression name, and instead use the following code: ```html ``` Now, when users add the YouTube widget to the page, they can point to any video by updating the Video URL property in the YouTube section of the Properties pane, which automatically updates the value represented by the {!videoURL} expression. ![YouTube Video URL property](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_widget_property1.png) #### See Also - [Widgets Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_overview.htm&release=264.0.0&type=5 "Widgets let you save time by building custom page elements that you and your team can reuse throughout the site.") - [Add Custom Properties to Page Templates or Widgets](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_properties_add.htm&release=264.0.0&type=5 "When you create a page template or a widget, you can add custom properties to it and specify the value and type of each property.") - [Custom Property Types](https://help.salesforce.com/s/articleView?id=platform.siteforce_prop_type.htm&release=264.0.0&type=5 "Property types are available when designers or site administrators create site branding properties, site custom properties, widget branding properties, and widget custom properties.") - [About Displaying Dynamic Data Using Expressions](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_merge_fields.htm&release=264.0.0&type=5 "Site.com uses expression language to display data dynamically. Expressions serve as placeholders for data that is replaced with information when the page loads. When working with data-bound page elements or custom widget properties, you can use expressions to customize how data is displayed on the page.") # Custom Property Types Property types are available when designers or site administrators create site branding properties, site custom properties, widget branding properties, and widget custom properties. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

Property Type Description
Text Lets users enter a text value.
Checkbox Lets users set a true (selected) or false (deselected) value.
Color Lets users specify a color, either by selecting one from the color picker or by entering a hexadecimal value, such as #333333.
Image Lets users specify an image, either by browsing to a site image, uploading a new image, or entering the URL to an image.
HTML Lets users enter an HTML value.
Units Lets users enter a measurement, such as pixels, percentage, or em—for example, 5px.
Picklist

Lets users select a value from a list you define.

To add items to the picklist, create a comma-delimited list of options, where each option has a label and a value—for example, Label 1:Value 1, Label 2:Value 2. If you don't add a value for an option, the label is used as the value by default.

To define a default picklist selection, use the format label:value:default—for example, Small:S:default, Large:L.

Font Lets users select a font.
#### See Also - [Add Custom Properties to Page Templates or Widgets](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_properties_add.htm&release=264.0.0&type=5 "When you create a page template or a widget, you can add custom properties to it and specify the value and type of each property.") - [Create Custom Site Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_custom_prop_create.htm&release=264.0.0&type=5 "You can quickly create Custom Properties that can be reused by editors of your site.") - [Creating Branding Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_branding_create.htm&release=264.0.0&type=5 "With branding , you can quickly create style properties that can be reused by editors of your site.") # Custom S-Control Attributes Find out about custom S-Control attributes. ### Required Editions
Available in: Salesforce Classic
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
Attribute Name Description
Label The text that displays on page layouts for embedded s-controls.
S-Control Name The unique name for the s-control. This name can contain only underscores and alphanumeric characters, and must be unique in your org. It must begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
Type

Determines how you plan to use the s-control.

HTML
Select this option if you want to enter the content for your s-control in the Content area.
URL
Select this option if you want to enter the link or URL of an external website in the Content area.
Snippet
Snippets are s-controls that are designed to be included in other s-controls. Select this option if you want to enter the content for your s-control snippet in the Content area.
Description Text that describes the s-control. This only displays to administrators.
Content

Enter the content or source for your s-control. You can enter up to 1 million characters. The HTML code defines exactly how your users should view the custom s-control.

  • If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow, validation, assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.

    To create a basic formula that passes specific Salesforce data, select the Simple Formula tab, choose the field type in the Select Field Type drop-down list, and choose one of the fields listed in the Insert Field drop-down list. Build cross-object formulas to span to related objects and reference merge fields on those objects.

  • To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list.
  • To insert a function, double-click its name in the list, or select it and click Insert Selected Function. To filter the list of functions, choose a category from the Functions drop-down list. Select a function and click Help on this function to view a description and examples of formulas using that function.
  • To reference a file that you uploaded in the Filename field as part of the custom s-control, select Custom S-Control from the Select Field Type drop-down list, and choose Custom S-Control URL to get the merge field for it. For a Java applet, you can also use the {!Scontrol_JavaCodebase} merge field and the {!Scontrol_JavaArchive} merge field.
  • To insert activity merge fields, select Event or Task from Select Field Type.

Internet standards require special encoding for URLs. Salesforce encodes the text from any merge field you insert into a link. Encode extra text in your link manually. For example, to generate the following URL:

http://www.google.com/search?q={!user.name} Steve Mark 50%
http://www.google.com/search?q={!user.name}+Steve+Mark+50%25

Salesforce strips double quotes from URLs when the content source is a URL. If you must use double quotes, encode them manually. For example, to generate the URL http://www.google.com/search?q="salesforce+foundation", use this content: http://www.google.com/search?q=%22salesforce+foundation%22

Filename Upload a file to display when you add this custom s-control to a custom link. The file can contain a Java applet, Active-X control, or any other type of content. This option applies to HTML s-controls only.
Prebuild In Page This option keeps the s-control in memory, which may improve performance when the page is reloaded because the s-control does not have to be reloaded. This option applies to HTML s-controls only.
Encoding The default encoding setting is Unicode (UTF-8). Change it if you are passing information to a URL that requires data in a different format. This option is available when you select URL for the Type.
#### See Also - [About S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_about_scontrols.htm&release=264.0.0&type=5 "Use s-controls to add your own functionality to your Salesforce organization. Whether you are integrating a hosted application of your own or are extending your current Salesforce user interface, use s-controls to store your code or refer to code elsewhere. Custom s-controls can contain any type of content that you can display in a browser, for example a Java applet, an Active-X control, an Excel file, or a custom HTML Web form.") - [Useful S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_useful_scontrols.htm&release=264.0.0&type=5 "Use these samples to get started using s-controls.") - [Tips on Building S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_tips_on_building_scontrols.htm&release=264.0.0&type=5 "Use these tips when building s-controls.") # Custom Settings Limits and Considerations When working with custom settings, be aware of the following considerations and limits on the amount of cached data. - Custom settings are a type of custom object. Each custom setting counts against the total number of custom objects available for your organization. - The total amount of cached data allowed for your org is the lesser of these two values. - 20 MB - 2 MB multiplied by the number of full-featured user licenses in your org For example, if your org has three full licenses, you have 6 MB of custom setting storage. If your org has 20 full licenses, you have 20 MB of storage. Each certified managed package gets a separate limit in addition to your org limit. Each certified managed package gets the same limit as the org, based on the number of licenses up to 20 MB. For example, let’s say your org has two certified managed packages installed and you have three full licenses. Each certified managed package can have 6 MB of custom setting storage in addition to your org’s 6-MB custom setting storage limit. The org custom setting limits and certified managed package custom setting limits aren’t shared. - Custom settings that are added to an org via a certified managed package count against that package’s storage limit. - Custom settings that are added to an org directly or from a non-certified managed package count against the org’s storage limit.Using the previous example, if you have three full licenses, one non-certified managed package, and two certified managed packages, your custom settings storage limits are: 6 MB combined for the org and non-certified managed package, and 6 MB for each certified managed package. - You can add up to 300 fields per custom setting, unless your field limit for custom objects is lower than 300. If your custom objects field limit is lower than 300, your field limit for custom settings is equal to your custom objects field limit. - You can’t share a custom setting object or record. - No owner is assigned when a custom setting is created, so the owner can’t be changed. - Accessing an undeleted custom setting in a formula field results in an error if the user doesn’t have the “Customize Application” permission. To prevent this error, redeploy this custom setting to the organization. Alternatively, delete this custom setting, re-create it with the same name and data, and then delete and re-create all formula fields that use this setting. - If a cross-object formula references a currency field from a custom setting, this field value isn’t converted to the currency of the record containing the formula. An inaccurate formula result is possible if the custom setting field’s currency and the record's currency are different. - You can’t disable specific permissions with a muting permission set. To see how much custom settings data your organization is using, from Setup, enter Custom Settings in the Quick Find box, then select **Custom Settings**. For each custom setting, this page lists the size of one record, the number of records created, and the total size used for each custom setting. Record size is based on the maximum field size of each field type, not the actual storage that’s used in each field. When adding fields to a custom setting definition, use the appropriate type and specify a length that doesn’t exceed what’s needed for your data. This action helps you avoid reaching the cached data limit. For example, if you create a US social security number (SSN) field, select the Text data type and specify a length of 9. If you select a Text Area data type, the field would add 255 characters to the usage count for each record, regardless of the number of characters entered. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note A ![Managed - Installed](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/icoManagedInstalled.gif) icon indicates that the custom setting is in an installed managed package. You can’t edit or delete a protected custom setting installed from a managed package. # Custom Site Properties Overview With custom site properties, you can define and store frequently occurring content on your site. For example, you can store your address and phone number as a custom property so that it can be reused by anyone who is editing your site. You can apply stored properties to pages, headers and footers, and widgets quickly by using expression language syntax. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

To use custom properties in your website, you must: 1. Define the custom property. You complete this task from [Custom Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_custom_prop_create.htm&release=264.0.0&type=5 "You can quickly create Custom Properties that can be reused by editors of your site.") within Site Configuration. 2. Use [expression language](https://help.salesforce.com/s/articleView?id=platform.siteforce_custom_prop_setup.htm&release=264.0.0&type=5 "You can use custom properties in your website by using expression language syntax within a style sheet, code block, widget, or the HTML page editor.") syntax to replace the current definitions for these properties within your Cascading Style Sheets or custom code blocks. After you create a new property and specify its value and type, you can access the property in custom code or content blocks by using expressions. Expressions are placeholders for data that will be replaced with the custom property when the page loads. - **[Create Custom Site Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_custom_prop_create.htm&release=264.0.0&type=5)** You can quickly create Custom Properties that can be reused by editors of your site. - **[Setting Up Custom Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_custom_prop_setup.htm&release=264.0.0&type=5)** You can use custom properties in your website by using expression language syntax within a style sheet, code block, widget, or the HTML page editor. - **[Custom Properties for Page Templates or Widgets Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_properties_about.htm&release=264.0.0&type=5)** When you create a page template or a widget, you can add custom properties to it and specify the value and type of each property to achieve greater flexibility over how templates and widgets are reused. - **[Add Custom Properties to Page Templates or Widgets](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_properties_add.htm&release=264.0.0&type=5)** When you create a page template or a widget, you can add custom properties to it and specify the value and type of each property. - **[Custom Property Types](https://help.salesforce.com/s/articleView?id=platform.siteforce_prop_type.htm&release=264.0.0&type=5)** Property types are available when designers or site administrators create site branding properties, site custom properties, widget branding properties, and widget custom properties. #### See Also - [Create Custom Site Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_custom_prop_create.htm&release=264.0.0&type=5 "You can quickly create Custom Properties that can be reused by editors of your site.") - [Setting Up Custom Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_custom_prop_setup.htm&release=264.0.0&type=5 "You can use custom properties in your website by using expression language syntax within a style sheet, code block, widget, or the HTML page editor.") # Custom Slack Notifications Reach your users on Slack with important notifications. ### Required Editions
Available in: Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
- **[Create and Send Custom Slack Notifications](https://help.salesforce.com/s/articleView?id=platform.notif_builder_create_send_slack.htm&release=264.0.0&type=5)** Create custom notifications that appear on Slack when important events occur. Use a flow in Flow Builder or the invocable action API to send the notification. - **[Merge Fields in Slack Notifications](https://help.salesforce.com/s/articleView?id=platform.notif_builder_merge_fields.htm&release=264.0.0&type=5)** To show record-specific information in your Slack notification, include merge fields in the notification content. - **[Slack Apps Supported by Notification Builder](https://help.salesforce.com/s/articleView?id=platform.notif_builder_supported_slack_apps.htm&release=264.0.0&type=5)** Learn the Slack apps that can distribute your Slack notification to recipients. # Custom Success Messages for Quick Actions For Create a Record, Update a Record, and Log a Call action types, you can create a custom message that displays when the action executes successfully. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions
![Success Message for Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/actions_success_message.png) In the Salesforce mobile app and Lightning Experience, when a create, update, or Log a Call action is completed, a default success message displays, regardless of whether the action created a feed item. If you add a custom success message to one of these actions, your custom success message displays instead of the default message. In Salesforce Classic, custom success messages have slightly different behavior. If you select Create Feed Item for a Create a Record or Log a Call action, no success message displays in Salesforce Classic. The feed item itself is the confirmation that the action executed successfully. You can configure translations for custom success messages through the Translation Workbench. From Setup, enter Translate in the Quick Find box, and then select **Translate**. Choose **Action** for the Setup Component, and choose **Informational Message** for the Aspect. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you have **All Related Objects** selected under feed tracking for a particular object, when a quick action creates related objects, a feed item is always created, regardless of the status of Create Feed Item. #### See Also - [Create Object-Specific Quick Actions](https://help.salesforce.com/s/articleView?id=platform.creating_object_specific_actions.htm&release=264.0.0&type=5 "Object-specific actions let users create records with automatic relationships to other records, make updates to specific records, and interact with records in ways that you define.") - [Create Global Quick Actions](https://help.salesforce.com/s/articleView?id=platform.creating_global_actions.htm&release=264.0.0&type=5 "You can add global actions to any page that supports actions, like the Home page, the Chatter tab, object pages, and custom Lightning app pages. For example, add a Log a Call action to global layouts so users can record call details right from a Chatter thread.") # Custom Tab Considerations When working with custom tabs, keep these considerations in mind. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Custom Object Tabs and Web Tabs available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

Visualforce Tabs available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

Lightning Page Tabs available in: All Editions except Database.com

- The custom tabs limit is a fixed number based on edition and can’t be increased. For more information, contact Salesforce. - If you choose Default On or Default Off when setting custom object tab visibility, an option is added to the Create New dropdown list in the Salesforce Classic sidebar so that users with the Create permission can quickly create a record. For example, if the custom object displayed in the custom tab is named Expenses, an Expense option appears in this list. - A custom object that’s associated with a custom tab is searchable by default, even if users don’t add the tab for display. - A Web tab or custom link could display a blank page if the embedded site: - Has been set to deny the loading of its content in a frame. - Has been set to allow the loading of its content in a frame only if the same site is delivering the content. - Contains a mix of secure and unsecure content, and the user’s browser has been configured to block mixed active content. To resolve this issue, try these workarounds. - Set your custom link to either open in a new window or display in the existing window without the sidebar or header. - Move the URL from a Web tab into a custom link instead, and set the URL to either open in a new window or display in the existing window without the sidebar or header. - If the site you’re embedding has an HTTP prefix and mixed active content, try changing the prefix to HTTPS. If the embedded site has a valid security certificate and it hasn’t blocked itself from being displayed in frames, using HTTPS as the prefix allows the site to display. - In Salesforce Classic, Lightning page tabs don’t display on the All Tabs page when you click ![tab plus icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/tab_plus_icon.png). Lightning page tabs also don’t appear in the Available Tabs list when you customize the tabs for your apps. - In Salesforce Classic, the Default On and Default Off options for Lightning page tabs don’t work the same way as for other custom tabs. The Lightning page menu item appears for the selected profiles in Salesforce for Android and Salesforce for iOS whether you choose Default On or Default Off. Select the **Tab Hidden** option to hide the Lightning page for the selected profiles. - If the Home page tab isn't visible for a user in Salesforce Classic or Lightning Experience even after the user profile's tab setting is set to Default On, disable the **Enhanced Profile User Interface** option in the User Management Settings. If the issue persists, enable the **Overwrite users' personal tab customizations** in the tab settings for the user profile. # Custom Tabs Custom tabs let you display custom object data or other web content in Salesforce. When you add a custom tab to an app in Salesforce Classic, it appears as a tab. When you add a custom tab to an app in Lightning Experience, it appears as an item in the app’s navigation bar and in the App Launcher. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Custom Object Tabs and Web Tabs available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

Visualforce Tabs available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

Lightning Page Tabs available in: All Editions except Database.com

User Permissions Needed
To create and edit custom tabs: Customize Application
Custom tabs show custom object data or other web content embedded in the app. You can create any of these types of custom tabs. - Custom Object Tabs: Custom object tabs (available only at an app level and not on subtab apps) show the data of your custom object. Custom object tabs look and function just like standard tabs. - Web Tabs: Custom web tabs show any external web-based application or web page. You can design web tabs to include the sidebar or span the page without the sidebar. - Visualforce Tabs: Visualforce tabs show data from a Visualforce page. Visualforce tabs look and function just like standard tabs. - Lightning Component Tabs: Lightning component tabs make Lightning components available in the Salesforce mobile apps and in Lightning Experience. Lightning components aren’t supported in Salesforce Classic. - Lightning Page Tabs: Lightning page tabs let you add Lightning app pages to the Salesforce mobile app and Lightning Experience navigation bars. In Salesforce Classic, Lightning page tabs don’t appear on the All Tabs page when you click ![tab plus icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/tab_plus_icon.png). Lightning page tabs also don’t appear in the Available Tabs list when you customize the tabs for your apps. Subtab apps support only web tabs and Visualforce tabs. Delegated administrators who can manage specified custom objects can also create and customize tabs for those custom objects. In Lightning Experience, Lightning page tabs, Visualforce tabs, and Lightning component tabs have a fixed, friendly URL structure of /lightning/n/customTabDevName. #### See Also - [Create Custom Apps for Salesforce Classic](https://help.salesforce.com/s/articleView?id=platform.apps_classic_create.htm&release=264.0.0&type=5 "Create custom apps to give your Salesforce Classic users access to everything they need all in one place.") - [Subtab Apps in Salesforce Classic](https://help.salesforce.com/s/articleView?id=platform.apps_classic_subtab_overview.htm&release=264.0.0&type=5 "An app is a group of tabs that work as a unit to provide application functionality. Similarly, a subtab app is a collection of tabs that appears on the Chatter profile page. A subtab app can include both default and custom tabs.") # Customization and Data Changes Customizations and data changes in your production org aren’t reflected in your sandboxes. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Database.com Editions
User Permissions Needed
To view a sandbox: View Setup and Configuration
To create, refresh, activate, and delete a sandbox: Manage Dev Sandboxes (Developer or Developer Pro only) or Manage Sandboxes (all sandbox types)
- To incorporate the most recent customizations made to your org, create or refresh a sandbox. - You can only add, edit, or delete Apex using the Salesforce user interface in a Developer Edition or sandbox org. In a Salesforce production org, you can only change Apex by using the `compileAndTestAPI()` call. - If your sandbox is the same version as Salesforce AppExchange, you can: - Install and deploy apps from Salesforce AppExchange in your sandbox. - Publish apps from your sandbox to Salesforce AppExchange. Publishing managed packages from a Lightning Platform Sandbox is not advised, as refreshing or deleting the sandbox prevents any revisions to that managed package. The version of your sandboxes can differ from Salesforce AppExchange around the time of a Salesforce release. Check the logo in the upper left corner of your sandbox home page for version information. - If your org uses quote templates and you create a Developer Pro sandbox, you can’t open templates that contain Text/Image fields for editing within the sandbox. - If your production org uses an image in quote templates or service reports and you copy the org to your sandbox, the image path isn’t correct and the image appears as a broken link. To display the image, reinsert it from the correct location on your sandbox. - If your production org uses an image in a knowledge article and you copy the org to your sandbox, the image path isn’t correct and the image appears as a broken link. To display the image, reinsert it from the correct location on your sandbox, which is only possible for draft articles as archived or published articles can’t be edited. - Big Object records aren’t copied to a sandbox. The sandbox contains the Big Object definition, but none of the records associated with the Big Object. # Customize a Flow URL to Control Finish Behavior By default, after a user finishes a screen flow, the screen flow redirects the user to the first screen. If you want to redirect users to another page within Salesforce when they click **Finish**, use the retURL parameter in the flow URL. ### Required Editions
View supported editions.
## Format To redirect users in a screen flow to a specific page in Salesforce after they click **Finish**, use this format. ``` /lightning/flow/flowName?retURL=url ``` The url is a relative URL (the part of the URL that comes after https://MyDomainName.my.salesforce.com/ or https://MyDomainName.lightning.force.com/). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note We recommend using Lightning experience and adding /lightning to the beginning of your flow URL. However, if you don't add /lightning to the flow URL, it still works, but you don't get the new benefits of running in Lightning. To learn more, see [Choosing Between Lightning and Non-Lightning Flow URL Formats](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_lightning_vs_lightning_out.htm&release=264.0.0&type=5 "When you run a screen flow from a URL, you can choose between using Lightning or the non-Lightning URL format, which uses Lightning Out. We recommend using Lightning for a faster, more consistent experience. However, there are times when you need to use the non-Lightning format."). For example: 1. Create or identify the screen flow that you want to customize. 2. Determine the destination URL where you want the flow to redirect users to after they click **Finish** on the final screen. 3. Append `?retURL=url` to the flow URL, where url is the relative URL of the destination page. 4. If you're also passing input variables to the flow, add the retURL parameter after the variable parameters, separated by `&`. For example: `/lightning/flow/MyFlow?flow__varCaseId=500xx000000abc&retURL=lightning/page/home`. 5. Use the complete URL with the retURL parameter in your button, link, or component. ## URL Options Redirect flow users to these Salesforce URLs.
Redirect Destination Relative URL Example
Chatter _lighnting/page/chatter/ lightning/page/chatter/ui/ChatterPage
Home page lightning/page/home lightning/page/home
List view

Lighting Experience:

o/object_name/list?filterName=API_name

Pinned list view: lightning/o/object_name/list

Classic:

objectCode?fcf=listViewId

Lightning Experience: lightning/o/Case/list?filterName=MyCases

Classic: 006?fcf=00BD0000005lwec

Object home page, such as Accounts home objectCode/o 001/o
Specific record, such as a contact, report, dashboard, user, profile, or Chatter post recordId 0D5B000000SKZ7V
Visualforce page apex/pageName apex/myVisualforcePage
Web tab servlet/servlet.Integration?lid=webTabId servlet/servlet.Integration?lid=01rD0000000A88h
- Object codes are three-digit prefixes that identify standard and custom objects in Salesforce. Look at the object's record ID prefix in the URL or in the object's details. For example, Account objects use the prefix `001`, Case objects use `500`, and Opportunity objects use `006`. Alternatively, create a test record of the object type and examine the first three characters of the record ID. The object code matches those three characters. - For Salesforce Classic URLs, Salesforce redirects your users to the right page in whichever Salesforce experience they’ve enabled—Lightning Experience or Salesforce Classic. If the page doesn’t exist in Lightning Experience, Salesforce redirects the user to the page in Salesforce Classic. - For Lightning Experience URLs, Salesforce always redirects your users to the home page in Lightning Experience (`lightning/page/home`), even if the user has Salesforce Classic enabled. Users who don’t have permission to access Lightning Experience see an error message. - Web tabs in Lightning Experience can redirect only to Visualforce pages. - When you pass a record ID in the URL, for example, `flow__varCaseId=500xx000000abc`, the behavior depends on the flow variable type in your flow: - For a text variable, Salesforce passes the record ID as a text string. The flow receives the ID value, for example, `500xx000000abc`. - For a record variable, Salesforce attempts to pass the entire record object. However, passing a record ID in the URL doesn't automatically load the full record. The flow receives the ID, but use a Get Records element in your flow to retrieve the full record data based on that ID. - For a record variable that passes only an ID, the flow may fail if it expects record fields that aren't provided. Always use a Get Records element after receiving a record ID to populate the record variable with the necessary fields. ## Limitations - You can’t redirect flow users to a URL that’s external to your Salesforce org. - You can’t use a flow variable as the value for the retURL parameter. To use a flow variable to redirect a user, such as to a specific record, distribute the flow using Visualforce. - retURL can cause nested top and side navigation bars to render on the destination page. - If you don’t add `/lightning` to the beginning of the flow URL, retURL is case-sensitive. If you use retUrl, the URL doesn’t redirect the user. - Action Button screen components don’t support the retURL parameter. ## Examples Before you customize the button URL on the Case object, the button launches a flow. When users finish the flow, they're redirected back to the flow's first screen. ``` /lightning/flow/Case_Update_Flow ``` You then customize the button URL to redirect users to the Case list view after they finish the flow. ``` /lightning/flow/Case_Update_Flow?retURL=500/o ``` To customize the button: 1. In Setup, click **Object Manager**. 2. Click **Case**, and then click **Buttons, Links, and Actions**. 3. Find your custom button, and click **Edit**. 4. In the URL field, add ?retURL=500/o to the end of the flow URL. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note The `500` is the object code for Case. 5. Click **Save**. This flow URL redirects users to Accounts home, which exists in both Lightning Experience and Salesforce Classic. ``` /lightning/flow/myFlow?retURL=001/o ``` When Lightning Experience users finish the flow interview, Salesforce redirects them to `http://MyDomainName.lightning.force.com/lightning/o/Account/home`. When Salesforce Classic users finish the flow interview, Salesforce redirects them to `http://MyDomainName.my.salesforce.com/001/o`. Either way, Salesforce redirects users to Accounts home in their respective experience. This flow URL redirects users to a Visualforce page that exists only in Salesforce Classic. ``` /flow/myFlow?retURL=apex/myPage ``` When users finish the flow interview, Salesforce redirects them to `http://MyDomainName.my.salesforce.com/apex/myPage` in Salesforce Classic. When they navigate away from the Visualforce page, Salesforce reverts to their original experience. For instance, after viewing the Visualforce page, users go to the home page. For Lightning Experience users, Salesforce renders the Lightning Experience home page (http://MyDomainName.lightning.force.com/lightning). For Salesforce Classic users, Salesforce renders the Salesforce Classic home page (`http://MyDomainName.my.salesforce.com/home/home.jsp`). This flow URL sets the varUserFirst and varUserLast variables (both of type Text) to the running user’s FirstName and LastName field values. When the flow interview finishes, it redirects the user to the home page for the enabled Salesforce experience. ``` /lightning/flow/User_Info?flow__varUserFirst={!$User.FirstName} &flow__varUserLast={!$User.LastName}&retURL=home/home.jsp ``` #### See Also - [Distribute a Flow](https://help.salesforce.com/s/articleView?id=platform.flow_distribute.htm&release=264.0.0&type=5 "After you’ve designed and tested your flow, it’s time to put it to work! Flows can be run in several ways, depending on who the flow is designed for. Internal users, external users, or systems can run a flow, or a flow can be deployed for another organization.") - [Troubleshooting Flow URLs](https://help.salesforce.com/s/articleView?id=platform.flow_troubleshoot_url.htm&release=264.0.0&type=5 "If you’re distributing a flow and the custom button, custom link, or a direct flow URL isn’t working as expected, verify the referenced flow. In addition, verify its variables if you’re passing values into a flow from the URL.") - [Send Variable Values to a Flow Using the Flow's URL](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_variable.htm&release=264.0.0&type=5 "When you distribute a flow by using a URL, you can set variables values within that flow by using parameters in the URL.") # Customize a Visualforce Component to Control the Flow's Finish Behavior By default, users who click **Finish** start a new interview and see the first screen of the flow. After you embed a flow in a Visualforce page, configure the `finishLocation` attribute to route users to another page in Salesforce. ## Set `finishLocation` with the `URLFOR` Function ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note - You can’t redirect flow users to a URL that’s external to your Salesforce org. - Don’t call the `Auth.SessionManagement.finishLoginFlow` method and the `finishLocation` attribute in the same flow. `Auth.SessionManagement.finishLoginFlow` indicates the end of a Visualforce page login flow. If `finishLocation` is in the same flow, `` `finishLocation` `` runs when the flow starts, giving users full access to the session. To route users to a relative URL or a specific record or detail page, using its ID, use the `URLFOR` function. This example routes users to the Salesforce home page. ```markup ``` This example routes users to a detail page with an ID of 001D000000IpE9X. ```markup ``` For details about `URLFOR`, see Functions in the Visualforce Developer’s Guide. ## Set `finishLocation` with the `$Page` Variable To route users to another Visualforce page without using `URLFOR`, set `finishLocation` to the name of the destination page with the format `{!$Page.pageName}`. ` ` For details about `$Page`, see Global Variables in the Visualforce Developer’s Guide. ## Set `finishLocation` with a Controller You can set `finishLocation` in a few ways with a custom controller. This sample controller configures a flow's finish behavior in three different ways. ```markup public class myFlowController { public PageReference getPageA() { return new PageReference('/300'); } public String getPageB() { return '/300'; } public String getPageC() { return '/apex/my_finish_page'; } } ``` - `getPageA` instantiates a new page reference by passing a string to define the location. - `getPageB` returns a string that is treated like a PageReference. - `getPageC` returns a string that gets translated into a PageReference. Here’s a sample Visualforce page that references the controller and sets the flow finish behavior to the first option. ```markup

Congratulations!

This is your new page.
``` If you use a standard controller to display a record on the same page as the flow, users who click **Finish** start a new flow interview. They see the first screen of the flow, without the record, because the `id` query string parameter isn't preserved in the page URL. If needed, configure the `finishLocation` to route users back to the record. # Customize Actions with the Enhanced Page Layout Editor Use the page layout editor to customize which actions show up in Salesforce and in the Salesforce mobile app. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions
User Permissions Needed
To create actions: Customize Application
To customize action layouts and page layouts: Customize Application
To view page layouts: View Setup
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip To manage the actions for global pages, such as Home, Chatter Home, and Chatter groups, see [Global Publisher Layouts](https://help.salesforce.com/s/articleView?id=platform.working_with_global_publisher_layouts.htm&release=264.0.0&type=5 "Global publisher layouts determine the global actions that appear in the various Salesforce interfaces. In Salesforce Classic and Lightning Experience, these layouts customize the actions on global pages (like the Home page) and on the Chatter page. Lightning Experience also uses these layouts to populate the Global Actions menu. And in the Salesforce mobile app, these layouts drive the actions that appear in the action bar on the Feed and People pages. Global publisher layouts can include global actions only."). From the management settings for the object whose actions you want to manage, go to Page Layouts. You can add actions to two sections on a page layout:
Quick Actions in the Salesforce Classic PublisherThis section can contain actions only from the Quick Actions category in the palette. Actions in this section appear in the Chatter publisher in Salesforce Classic.
Salesforce Mobile and Lightning Experience ActionsThis section can contain actions only from the Mobile & Lightning Actions category in the palette. On object page layouts, the Mobile & Lightning Actions category contains all available types of actions for the object, including quick actions, productivity actions, Lightning component actions, and standard and custom buttons. Actions in this section appear in the action bar and action menu in the Salesforce mobile app and in various areas of Lightning Experience.
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip Hover over an action in the palette to see its label, API name, and action type. - To override the action defaults for an action section that you haven’t customized, either click the override text or hover over the section and click ![override global publisher layout](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/quickActions_wrench.png). If you haven’t customized the Quick Actions in the Salesforce Classic Publisher section of a page layout, the actions that appear in the publisher for that object default to the actions that are assigned to the global publisher layout. Upon overriding, the actions default to the standard actions—Post, File, Link, Poll, Question, and Thanks—regardless of what actions were assigned to the global publisher layout. If you haven’t customized the Salesforce Mobile and Lightning Experience Actions section of a page layout, the actions for that object default to a set of predefined actions. If you have customized actions in the Quick Actions in the Salesforce Classic Publisher section, and have saved the layout, the Salesforce Mobile and Lightning Experience Actions section inherits the actions from the Quick Actions in the Salesforce Classic Publisher section, plus any standard or custom buttons present on the layout, when you click to override. - To revert the actions in either section to the defaults for that section, hover over the section and click ![revert to global publisher layout](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/quickActions_revert.png). #### See Also - [Set Up Actions with Chatter Enabled](https://help.salesforce.com/s/articleView?id=platform.setting_up_actions.htm&release=264.0.0&type=5 "Global and object-specific actions enhance the Chatter experience for your users in Salesforce Classic and in the Salesforce app.") - [Actions in Lightning Experience](https://help.salesforce.com/s/articleView?id=platform.actions_in_lex.htm&release=264.0.0&type=5 "In Lightning Experience, actions appear in the Global Actions menu in the header, on related lists, and on list view items. Actions also appear on a record page, in one of several places depending on the action’s type.") - [Send Email Action Considerations for Cases](https://help.salesforce.com/s/articleView?id=case_interaction_send_email_quick_action_considerations.htm&language=en_US) - [Mobile Smart Actions](https://help.salesforce.com/s/articleView?id=platform.smart_actions_overview.htm&release=264.0.0&type=5 "Mobile smart actions are a set of preconfigured quick actions. They’re available for account, case, contact, lead, and opportunity pages and on the global publisher layout in the Salesforce mobile app. You can use them to set up quick actions for mobile users with little effort.") - [The Enhanced Page Layout Editor](https://help.salesforce.com/s/articleView?id=customize_layoutcustomize_pd.htm&language=en_US) - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=extend_click_find_objectmgmt_parent.htm&language=en_US) # Customize Appointment Booking in Salesforce Scheduler Customize the Salesforce Scheduler standard flow templates, flow screens, and flow screen components to provide a tailored appointment booking experience for your users, customers, and prospects. - **[Salesforce Scheduler Standard Flow Templates](https://help.salesforce.com/s/articleView?id=platform.ls_provided_flows.htm&release=264.0.0&type=5)** The Salesforce Scheduler standard flow templates walk users or customers through scheduling, modifying, and canceling appointments. - **[Customize Standard Flow Templates](https://help.salesforce.com/s/articleView?id=platform.ls_customize_flows.htm&release=264.0.0&type=5)** The flows in Salesforce Scheduler are installed as standard flow templates. You can customize any of the flows to suit your business needs. - **[Customize Flow Screens](https://help.salesforce.com/s/articleView?id=platform.ls_flow_screen_customizations.htm&release=264.0.0&type=5)** You can customize flow screens to meet your business needs. For example, you can change labels to use your company's terminology and change the preselected values. - **[Flow Screen Components and Actions Provided in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_flow_screen_comp_attributes.htm&release=264.0.0&type=5)** Salesforce Scheduler provides additional flow screen components and actions to create flows and modify flows. - **[Enable Automatic Resource Assignment and Anonymous Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_auto_assgnmnt_anonymous_schdlng.htm&release=264.0.0&type=5)** You can enable automatic service resource assignment to let users schedule appointments without selecting service resources. Customers or guest users don’t always know the names of service resources. And sometimes they don’t care about which resource they’re assigned. After you enable automatic resource assignment, service resources are automatically assigned based on the time slots users select. Also, you can hide the assigned resources’ names on the appointment summary page to protect their privacy. - **[Flow Screen Component Customization in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_manage_settings.htm&release=264.0.0&type=5)** Customize the information that appears on flow screens. For example, preselect options, autofill values, and filter records. - **[Lightning Web Components (LWC) for Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_lightning_web_components_for_salesforce_scheduler.htm&release=264.0.0&type=5)** With Spring '26, Salesforce Scheduler now supports all flow screen components as Lightning Web Components. This enables you to deploy any scheduling flow in Lightning Web Runtime (LWR) sites. Previously, some flow screen components used Aura components and were limited to Aura-based sites. # Customize Appointment Subtopics in Salesforce Scheduler Customize the appointment subtopics that users see below an appointment topic when creating appointments in Salesforce Scheduler. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Add picklist values to the Additional Information field on the Work Type Group object. 1. From Setup, open **Object Manager**. 2. Select **Work Type Group**. 3. Select **Fields & Relationships**, then **Additional Information**. 4. In the Additional Information Picklist Values section, click **New**. 5. Enter the values, such as Checking or Savings Account, Credit Card, and Personal Loan. Each value must be on its own line. 6. Save your changes. ![Image showing the picklist values in the Additional Information field](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_work_type_group_additional_info.png) When creating or editing a work type group, you can select one or more additional information values. Users see those values when they select the work type group during appointment scheduling. # Customize Blueprint Behavior in Agentforce Operations Customize how a blueprint behaves at run time. Configure naming conventions, reference IDs, variants, and other settings to standardize and control the workflows that run from a blueprint. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Blueprints support several settings that customize how workflows behave when they run: # Customize Content in the Guidance Center To add your own learning items in the Guidance Center, assign content with Learning Paths. Or, optionally hide Learning Home or Salesforce suggestions. ### Required Editions
Available in: Lightning Experience
Available in: Starter, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
Change Guidance Center Settings Modify All Data OR Customize Application
For information about assigning learning items with Learning Paths, see [Assign a Learning Item for Learning Paths](https://help.salesforce.com/s/articleView?id=platform.customhelp_lex_learningpanel_add.htm&release=264.0.0&type=5 "You can assign a Trailhead or enablement site (myTrailhead) module or a custom learning item such as a video, tutorial, or reference guide. You can assign a learning item to individuals, public groups, or all users. And you can associate a learning item with an app and a particular object and page within the app."). You can also turn off certain content in the Guidance Center. - [Turn Off Learning Paths](https://help.salesforce.com/s/articleView?id=platform.customhelp_lex_learning_disable.htm&release=264.0.0&type=5 "Optionally, you can turn off Learning Paths, which hides the Learning Home and prevents admins from assigning learning items to users. When Learning Paths is turned off, the Guidance Center icon remains available if Sales Programs or Guidance Sets are in use. If neither is in use, the icon is hidden.") - [Turn Off Suggested Content in the Guidance Center](https://help.salesforce.com/s/articleView?id=platform.customhelp_lex_suggestions_disable.htm&release=264.0.0&type=5 "Optionally, you can turn off Salesforce suggestions for content in the Guidance Center for end users. Suggested content still appears for admins. Turning off suggestions leaves the Guidance Center icon in place when Sales Programs, Guidance Sets, or Learning Paths are in use, so you can still assign specific learning items with Learning Paths.") - [Turn Off Salesblazer Content in the Guidance Center](https://help.salesforce.com/s/articleView?id=platform.guidance_center_salesblazer.htm&release=264.0.0&type=5 "Optionally, turn off Salesblazer content in the Guidance Center for end users. The Guidance Center icon remains available when Sales Programs, Guidance Sets, or Learning Paths are in use.") ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note To turn off guidance sets, submit a Salesforce Customer Support case. #### See Also - [Learning Paths](https://help.salesforce.com/s/articleView?id=platform.customhelp_lex_learning_intro.htm&release=264.0.0&type=5 "Create a personalized and always-available learning experience for your users. When you customize Learning Paths, you can choose whom to assign a learning item to—individuals, public groups, or all users. The Guidance Center icon in the global header opens a panel where users can see suggestions from Salesforce and your Learning Paths assignments. Associate the learning item with a particular app or page, and optionally apply a due date. Choose modules from Trailhead or an enablement site (myTrailhead), and add links to other training resources for the ultimate custom training experience. Admins can let other stakeholders, such as trainers or sales team managers, assign and manage learning items.") # Customize Default Appointment Types in Salesforce Scheduler Customize the default appointment types that are available when users create appointments in Salesforce Scheduler. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Salesforce Scheduler uses the values in the Default Appointment Type picklist—of the Work Type object—to show appointment types. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Lightning Design System provides utility icons that you can use on lightning pages. Salesforce Scheduler uses utility icons to show icons for appointment types. To add picklist values to the Default Appointment Type picklist: 1. From Setup, click **Object Manager**. 2. Select **Work Type**. 3. Select **Fields & Relationships**, and then select **Default Appointment Type**. 4. In the Default Appointment Type Picklist Values section, click **New**. 5. Enter the values, such as phone, at a branch, or video. Each value goes on its own line. For value in each line, a picklist value is created. By default, the API name of a picklist value is the same as the picklist value. Salesforce Scheduler verifies whether the API name of a picklist value matches the name of a utility icon that Lightning Design System provides. If the names match, Salesforce Scheduler uses the icon with the same name. If the names don't match, Salesforce Scheduler uses the default lightning icon. 6. To edit the icons for appointment types, edit the API names and then enter the names of utility icons that you want to use. 7. Save your changes. #### See Also - [_Lightning Design System_: Utility Icons](https://www.lightningdesignsystem.com/icons/#utility) # Customize Emails to Approvers By default, each time an orchestration run associated with an approval submission creates an approval work item, assigned approvers and their delegates receive a notification. To change the email notification sent to both approvers and their delegates, customize the associated approval step. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To open, edit, or create a flow approval process in Flow Builder: Manage Flow
To see the Manage All Flow Approval Processes tile: Approval Designer
To complete assigned approval work items: Run Flows
You must have a flow approval process with an approval step. To create an approval step that sends a custom email notification to approvers and their delegates, see [Create a Step to Interact with Approvers](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_build_create_step_to_interact_with_reviewers.htm&release=264.0.0&type=5 "Create approval steps to assign flow approval processes to specific people, groups, or queues. Approval steps generate work items that assigned approvers can approve or reject with or without running the associated flow. Approvers can complete approval work items via email when you enable email approval response in Process Automation Settings."). To send all email notifications to approvers and delegates, the Send Approval Work Item Assignment Emails to Approvers in Approval Settings must be selected. See [Manage Approval Email Notifications](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_manage_control_email_notifications.htm&release=264.0.0&type=5 "By default, a flow approval process sends email notifications to assigned approvers, their delegates, and approval submitters. Use approval email settings to manage emails sent to these groups."). You can customize the content of the initial approver notification email for each approval step, but you can't customize the sender. Flow approval processes send email notifications from the Automated Process User Email Address specified in Process Automation Settings. If you don't specify this setting, Salesforce looks for an organization-wide email address with a purpose of Default No-Reply Address. If that doesn't exist, Salesforce uses any verified organization-wide email address. If no organization-wide email address exists, Salesforce uses the email address of the user running the flow approval process. If the orchestration run associated with the flow approval process runs in system context without a user, Salesforce doesn't send the email. Use text template resources to generate a unique and personalized subject and body for the custom email. Each approval step can use a different set of text templates. 1. Open the flow approval process that you want to customize. 2. Optional. Create a text template resource that contains the text to use for the subject of the custom email. 3. Optional. Create a text template resource that contains the body to use for the custom email. 4. Edit the approval step. The Properties panel for the approval step opens. 5. Under Select the Approver, select **Customize notification email**. 1. For **Subject**, select the text template that contains the subject for the custom email. Or enter a string for your subject. 2. For **Body**, select the text template that contains the body for the custom email. 6. Save your work. # Customize Emails to Assignees By default, each time an orchestration run creates an orchestration work item, assignees receive a notification. To change the email notification sent when an orchestration work item is created, customize the associated approval step. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To open, edit, or create an orchestration in Flow Builder: Manage Flow
To complete assigned work and resume a paused orchestration Run Flows
You must have an orchestration that contains an interactive step. To create an interactive step that sends a custom email notification when an orchestration work item is created, see [Create a Step to Interact with Users](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_assign_interactive_step.htm&release=264.0.0&type=5 "To assign a step in an orchestration to a person, group, or queue, create an interactive step. An orchestration run creates a work item for each interactive step that it executes."). To send email notifications to assignees, the Stop Sending Orchestration Work Item Email Notifications in Process Automation Settings must be deselected. See [Disable All Email Notifications for Work Item Assignments](https://help.salesforce.com/s/articleView?id=platform.orchestrator_manage_disable_default_email_notifications.htm&release=264.0.0&type=5 "By default, an orchestration sends an email notification when an orchestration work item is assigned or reassigned to a user, group, or queue. Disable all work item notifications to stop sending emails to internal users and credentialed Experience Cloud site visitors."). You can customize the content of the initial notification email for each interactive step, but you can't customize the sender. Orchestrations send email notifications from the Automated Process User Email Address specified in Process Automation Settings. If you don't specify this setting, Salesforce looks for an organization-wide email address with a purpose of Default No-Reply Address. If that doesn't exist, Salesforce uses any verified organization-wide email address. If no organization-wide email address exists, Salesforce uses the email address of the user running the orchestration. If the orchestration is running in system context without a user, Salesforce doesn't send the email. Use text template resources to generate a unique and personalized subject and body for the custom email. Each interactive step can use a different set of text templates. 1. Open the orchestration that you want to customize. 2. Optional. Create a text template resource that contains the text to use for the subject of the custom email. 3. Optional. Create a text template resource that contains the body to use for the custom email. 4. Edit the interactive step. The Properties panel for the interactive step opens. 5. Under Select Someone to Complete the Action, select **Customize notification email**. 1. For **Subject**, select the text template that contains the subject for the custom email. Or enter a string for your subject. 2. For **Body**, select the text template that contains the body for the custom email. 6. Save your work. # Customize Fields Customize standard and custom fields to tailor your org to your own unique requirements. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: all editions

Standard Fields and Page Layouts are not available in Database.com

User Permissions Needed
To create or change custom fields: Customize Application
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip Setup with Agentforce can help you work with custom fields more efficiently. For more information, see [Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_overview.htm&language=en_US) and [Data Model Management in Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_data_model.htm&language=en_US). You can: - Modify some aspects of standard fields - Change or add values to standard and custom picklist fields - Define dependency rules between fields - Create custom fields to capture additional information - Create formula fields that automatically calculate values based on the contents of other fields - Define default values for custom fields - Define validation rules for your fields - Make a field required - Set fields to track changes, including the date, time, nature of the change, and who made the change - Create page layouts to control the display of fields - Set field-level security to control access to fields - Create or modify field sets - **[Customize Standard Fields](https://help.salesforce.com/s/articleView?id=platform.customize_stdfields.htm&release=264.0.0&type=5)** You can customize several aspects of standard fields, such as the values in picklists, the format for auto-number fields, tracking field history, lookup filters on relationship fields, and field-level help. - **[Modify Standard Auto-Number Fields in Salesforce Classic](https://help.salesforce.com/s/articleView?id=platform.modifying_standard_auto-number_fields.htm&release=264.0.0&type=5)** The unique identifiers for solution, case, and contract records are standard auto-number fields. Each record is assigned a unique number with a specified format upon creation. You can modify the format and numbering for these auto-number fields in Salesforce Classic. - **[Define Default Field Values](https://help.salesforce.com/s/articleView?id=platform.fields_defining_default_values.htm&release=264.0.0&type=5)** Define a default value for a field. Use a formula to generate dynamic values or constants for static values. - **[Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_about_field_validation.htm&release=264.0.0&type=5)** Improve the quality of your data using validation rules. Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record. - **[Examples of Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_field_validation_formulas.htm&release=264.0.0&type=5)** Review examples of validation rules for various types of apps that you can use and modify for your own purposes. Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record. - **[Require Field Input to Ensure Data Quality](https://help.salesforce.com/s/articleView?id=platform.fields_about_universally_required_fields.htm&release=264.0.0&type=5)** Improve the quality of data that users enter in Salesforce by creating universally required fields. - **[About Field Sets](https://help.salesforce.com/s/articleView?id=platform.fields_about_field_sets.htm&release=264.0.0&type=5)** A field set is a grouping of fields. For example, you could have a field set that contains fields describing a user's first name, middle name, last name, and business title. - **[Roll-Up Summary Field](https://help.salesforce.com/s/articleView?id=platform.fields_about_roll_up_summary_fields.htm&release=264.0.0&type=5)** A roll-up summary field calculates values from related records, such as those in a related list. You can create a roll-up summary field to display a value in a master record based on the values of fields in a detail record. The detail record must be related to the master through a master-detail relationship. For example, you want to display the sum of invoice amounts for all related invoice custom object records in an account’s Invoices related list. You can display this total in a custom account field called Total Invoice Amount. - **[Lookup Filters](https://help.salesforce.com/s/articleView?id=platform.fields_lookup_filters.htm&release=264.0.0&type=5)** Improve user productivity and data quality with lookup filters. Lookup filters are administrator settings that restrict the valid values and lookup dialog results for lookup, master-detail, and hierarchical relationship fields. - **[Fields: What’s Different or Not Available in the Salesforce Mobile App](https://help.salesforce.com/s/articleView?id=platform.customize_fields_mobile_app.htm&release=264.0.0&type=5)** Not every Lightning Experience feature is in the Salesforce mobile app. Find out what’s different. # Customize Flow Screens You can customize flow screens to meet your business needs. For example, you can change labels to use your company's terminology and change the preselected values. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
You can add components to flow screens and add flow screen components to flows. If you want to customize screens beyond the inbuilt customization options, you can also create your own flow screens. For more information, see [Provided Flow Screen Components](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp.htm&type=5&language=en_US) and [Considerations for Creating a Custom Review Service Appointment Screen](https://help.salesforce.com/s/articleView?id=platform.ls_considerations_for_creating_a_custom_review_service_appointment_screen.htm&release=264.0.0&type=5 "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."). You can also translate data for Work Type Group, Service Territory, and Service Resource objects. For more information, see [Manage Objects’ Data Translations](https://help.salesforce.com/s/articleView?id=platform.ls_manage_data_translations.htm&release=264.0.0&type=5 "You can manage data translation for Work Type Group, Service Territory, and Service Resource objects. Use data translation to build Scheduler’s appointment booking experience in multiple languages. For example, you can translate the work type group names and their description to Spanish for a customer who uses the website in Spanish to schedule appointments."). - **[Customize the Select Service Resources Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_select_service_resources_screen.htm&release=264.0.0&type=5)** Customize the Select Service Resources screen and the options that appear on the screen. - **[Customize the Select Work Type Group Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_select_work_type_group_screen.htm&release=264.0.0&type=5)** Customize the Select Work Type Group screen and the options that appear on the screen. - **[Customize the Select Appointment Type Screen and the Select Engagement Channel Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_select_appointment_type_screen.htm&release=264.0.0&type=5)** By default, Salesforce Scheduler shows the Select Appointment Type screen for users to select appointment mediums from. But if the engagement channels are enabled, then Salesforce Scheduler shows the Select Engagement Channel screen. Learn how to customize the screens and the options that appear on the screens. - **[Customize the Select Service Resource Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_select_service_resource_screen.htm&release=264.0.0&type=5)** Customize the Select Service Resource screen and the options that appear on the screen. - **[Customize the Service Resource Availability Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_service_resource_availability_screen.htm&release=264.0.0&type=5)** Customize the Service Resource Availability screen and the options that appear on the screen. - **[Customize the Select Service Territory Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_select_service_territory_screen.htm&release=264.0.0&type=5)** Customize the Select Service Territory screen and the options that appear on the screen. - **[Customize the Select Service Appointment Time Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_select_service_appointment_time_screen.htm&release=264.0.0&type=5)** Customize the Select Service Appointment Time screen and the options that appear on the screen. - **[Customize the Select Service Resource and Service Appointment Time Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_select_service_resource_and_appointment_time.htm&release=264.0.0&type=5)** Customize the Select Service Resource and Service Appointment Time screen and the options that appear on the screen. - **[Customize the Review Inbound or Outbound Service Appointment Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_review_inbound_or_outbound_service_appointment.htm&release=264.0.0&type=5)** Customize the Review Inbound or Outbound Service Appointment screen and the options that appear on the screen. - **[Customize the Review Service Appointment Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_review_service_appointment_screen.htm&release=264.0.0&type=5)** Customize the Review Service Appointment screen and the options that appear on the screen. - **[Customize the Select Appointment Invitee Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_select_appointment_invitee_screen.htm&release=264.0.0&type=5)** Customize the Select Appointment Invitee screen and the options that appear on the screen. - **[Customize the Appointment Booking Invitation Details Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_appointment_booking_invitation_details_screen.htm&release=264.0.0&type=5)** Customize the Appointment Booking Invitation Details screen and the options that appear on the screen. - **[Customize the Review URL for Appointment Booking Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_review_url_for_appointment_booking_screen.htm&release=264.0.0&type=5)** Customize the Review URL for Appointment Booking screen and the options that appear on the screen. - **[Customize the Collect Waitlist Details Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_collect_waitlist_details_screen.htm&release=264.0.0&type=5)** Learn how to customize the options that appear on the Collect Waitlist Details screen. - **[Customize the Select Work Types for Waitlist or Select Service Resources for Waitlist Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_select_work_types_or_select_service_resources_screen.htm&release=264.0.0&type=5)** Learn how to customize the options that appear on the Select Work Types or Select Service Resources screen. - **[Customize the Review Waitlist Screen](https://help.salesforce.com/s/articleView?id=platform.ls_customize_the_review_waitlist__screen.htm&release=264.0.0&type=5)** Learn how to customize the options that appear on the Review Waitlist screen. #### See Also - [Debug a Salesforce Scheduler Flow as Another User](https://help.salesforce.com/s/articleView?id=platform.ls_debug_a_flow_as_another_user.htm&release=264.0.0&type=5 "Test and debug a flow as another user without logging in as that user. You can troubleshoot a flow by seeing the flow’s debug log as a user sees it.") # Customize How a Blueprint Runs Based on Criteria with Variants in Agentforce Operations Use variants to adapt a published blueprint for different teams, regions, or scenarios while preserving the original blueprint. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

## How Variants Work With blueprint variants, you can create alternate versions of a blueprint that run different stages and tasks based on conditions you define. Use variants when you want the same process to follow different paths based on factors such as region, product type, or supplier tier. The standard blueprint is the default blueprint used when none of the variant conditions are true. Agentforce Operations evaluates variant conditions by using first-match logic based on each variant's original publish date, with the earliest published variant evaluated first. When Agentforce Operations selects a variant and the workflow starts, Agentforce Operations doesn't reevaluate the variant conditions when workflow field values change. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-agentforce_operations-264-0-0-production-enus/dce314e6-0a31-4a8b-98f7-3d2a3fd02ee2/images/icon_note.png) Note Configure variant conditions so that only one variant can match. If multiple variants have overlapping conditions, the system selects one variant, but the selection order isn't guaranteed. Overlapping conditions indicate a configuration error. At a minimum, every variant collects the same data as the standard blueprint, but you can configure the variant to collect more data than the standard. Each variant has its own version history and blueprint ID, separate from the standard blueprint. To update a variant, create a new version, make your updates, and publish the blueprint. To unlink a variant from the standard blueprint, remove the variant condition, and publish the variant. Learn more in [Turn on and Manage Blueprint Variants in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_variants_enable_create.htm&release=264.0.0&type=5 "Turn on variants for a blueprint to collect the same data but run different stages and tasks based on conditions you define in Agentforce Operations. Then create, update, and unlink variants as needed.") ## Variants in Linked Workflows When a standard blueprint with variants is used in a linked workflow task and the linked workflow task restarts, variant conditions are reevaluated based on the task's state: - If the linked workflow task hasn't started, Agentforce Operations evaluates variant conditions by using the latest field values. - If the linked workflow task is in progress, Agentforce Operations pauses the existing workflow and resumes it. Variant conditions aren’t reevaluated. - If the linked workflow task completes, Agentforce Operations evaluates variant conditions by using the latest field values and creates a new workflow. ## Variant Behavior If the Standard Blueprint Is Changed Non-data changes to the standard blueprint, such as reordering tasks or changing access, don't affect variants. However, some data changes to the standard blueprint can cause a variant to become non-compliant, which prevents you from using it to create new workflows. These changes to the standard blueprint can make the variant non-compliant: - Delete a required intake field. - Make a previously required intake field optional. - Add a new **Request information** field. - Make a previously optional **Request information** field required. - **[Turn on and Manage Blueprint Variants in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_variants_enable_create.htm&release=264.0.0&type=5)** Turn on variants for a blueprint to collect the same data but run different stages and tasks based on conditions you define in Agentforce Operations. Then create, update, and unlink variants as needed. - **[Start and Track a Workflow from a Blueprint with Variants](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_variants_start_track_workflows.htm&release=264.0.0&type=5)** Start a workflow from a standard blueprint with variants. Agentforce Operations automatically selects the matching variant based on the conditions that you defined. Use columns on the Home page to filter and track workflows that Agentforce Operations created from blueprint variants. # Customize Lightning Apps with the Lightning App Builder When you edit a Lightning app from the App Manager in Setup, you’re brought into the Lightning App Builder to manage the app’s settings. Update app branding, navigation, and other options, and manage the Lightning pages assigned to that app all in one place. ### Required Editions
Lightning App Builder is available in: both Salesforce Classic and Lightning Experience
Lightning apps are available in: Lightning Experience
Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To manage apps: Modify All Data
To create and save Lightning pages in the Lightning App Builder: Customize Application
To view apps: View Setup and Configuration
1. From the Home tab in Setup, enter App in the Quick Find box, then select **App Manager** 2. Click ![Action dropdown](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_icon_action_list_item_dropdown.png) on a Lightning app’s row, and select **Edit**. Here are some things you can do from the App Settings tab. - Change your app’s name, primary color, and logo. - Override the org theme with your app’s brand image and nav bar color. - Add a utility bar for common processes and tools, like Recent Items and Notes. - Manage which default items appear in the app’s navigation bar. - Manage user profile assignments. On the Navigation Items tab, you can control which objects and other items—like Visualforce pages or Lightning components—are included in your app. To create a custom object by importing data from a spreadsheet, click **Create** at the top of the Available Items section. 3. Click the **Pages** tab in the Lightning App Builder header to see all the active Lightning pages assigned to the app, create pages, and open existing pages, even ones not associated with the app. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip If you create pages for your app, when finished, don’t forget to click **Activation** to make them active for your users and assign them to the app. #### See Also - [Lightning Apps](https://help.salesforce.com/s/articleView?id=platform.apps_overview_lightning.htm&release=264.0.0&type=5 "With apps in Lightning Experience, members of your org can work more efficiently by easily switching between apps. Users can open apps you’ve created from the App Launcher. What’s most important to sales reps? Accounts, events, and organizations. How about sales managers? Reports and dashboards make the top of the list. Lightning apps take things to another level past Classic apps by letting you brand your apps with a custom color, logo, and utility bar.") - [Create Lightning Apps](https://help.salesforce.com/s/articleView?id=platform.apps_lightning_create.htm&release=264.0.0&type=5 "As in Salesforce Classic, you can create apps in Lightning Experience, but with even more bells and whistles. You can brand and customize Lightning apps to help your users work more efficiently. For example, you can create a Lightning app for your finance department that includes all important items, including tabs, for users to complete common tasks. You can customize the navigation bar color, brand it with a logo, and make the app available in the App Launcher for the user profiles associated with the finance department.") - [Get Help for Lightning App Builder](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_overview.htm&release=264.0.0&type=5 "The Lightning App Builder is a point-and-click tool that makes it easy to create custom pages for the Salesforce mobile app and Lightning Experience, giving your users what they need all in one place. The Lightning App Builder is also a one-stop shop for configuring Lightning apps.") # Customize Page Layouts with the Enhanced Page Layout Editor Tailor your page layouts to the needs of your users with the enhanced page layout editor. Add, remove, or reorder actions, buttons, fields, and sections on a record’s detail page. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create page layouts: Customize Application
1. From the management settings for the object that you want to edit, go to **Page Layouts**. 2. Click ![Action dropdown](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_icon_action_list_item_dropdown.png) on a layout’s row, and select **Edit**, or simply click the name of the layout. 3. Add items to the layout by clicking the element type in the palette and dragging an item in that category onto the layout. ![Account Source field being added to a layout](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ple_add_field.png) 4. Remove an item by dragging it from the layout back to the palette, or hover over it and click the remove icon (![Remove icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/remove.png)). 5. Make a field ready-only or required by double-clicking it in the page layout and selecting the appropriate checkbox. 6. Save the layout. #### See Also - [User Interface Elements for the Enhanced Page Layout Editor](https://help.salesforce.com/s/articleView?id=platform.customize_layoutcustomize_pd_elements.htm&release=264.0.0&type=5 "This list describes the enhanced page layout editor user interface elements and how you can use them in your page layout. To add elements, drag them from the palette to the layout. Valid drop locations show up in green. To remove elements, drag them off the layout and back to the palette.") - [Page Layout Tips](https://help.salesforce.com/s/articleView?id=platform.layouts_tips.htm&release=264.0.0&type=5 "Here are a few tips to keep your page layouts organized and easy to use.") # Customize Page Layouts with the Original Page Layout Editor Use the original page layout editor to customize page layouts in Salesforce, the Self-Service Portal, and the Salesforce Customer Portal. ### Required Editions
Available in: Salesforce Classic
Available in: All Editions
User Permissions Needed
To customize page layouts: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note We recommend using the enhanced page layout editor instead of the original page layout editor because it offers more features and an easier-to-use interface. 1. From the management settings for the object that you want to edit, go to **Page Layouts**. 2. If tags are enabled, specify whether personal and public tags should be included in the header section of the page layout. Users can tag a record only if personal or public tags are included here. - To add personal or public tags, select **Header Items** from the View dropdown list and then drag the Personal Tags or Public Tags items to the header section. You can’t change the order in which personal and public tags appear when both are in the header section at the same time. - To remove tags, drag the Personal Tags and Public Tags items from the header section to the area under the View dropdown list. 3. To customize buttons, double-click **Detail Page Buttons** in the Button section. 4. To arrange fields, custom s-controls, Visualforce pages, custom links, and related lists on the layout, select one or more items from the box on the right and drag them to the desired location. You can drag up to 20 s-controls, 20 Visualforce pages, 20 expanded lookups, and 100 related lists onto a page layout. There are no limits on custom links. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can add a Visualforce page to a page layout only if the standard controller on the Visualforce page is set to the object for which you’re creating the page layout. If you don’t have any Visualforce pages with a standard controller set to that object, the Visualforce Pages category doesn’t appear in the palette. 5. To set which fields are required and read only, select one or more fields and click **Edit Properties**. - You can change custom fields only if they aren’t universally required fields. - Fields marked as read only are always editable by administrators and users with the Edit Read Only Fields permission. - If you make a picklist field read only, all new records contain the default value for that picklist. - Auto-number fields are always read only. - If you make the opportunity Probability field read only, the Probability value still updates automatically when a user changes the Stage value of an opportunity. - In Professional, Enterprise, Unlimited, Performance, and Developer Editions, field-level security settings override the field properties you set here if the field-level security is more restrictive than the page layout setting. 6. To change the properties of an s-control or Visualforce page, double-click it and set the following attributes. - Width sets the horizontal size in pixels or a percent. - Height sets the vertical size in pixels. - Show scrollbars determines whether the iFrame in which the s-control displays contains scrollbars when necessary. - Show label determines whether the page layout includes the label of the custom s-control. Remove the label to display the custom s-control in a wider area. 7. To organize the page using sections, click **Edit** next to an existing page section, or click **Create New Section**. 8. To customize related lists on the page layout, double-click a related list in the Related List section. Some related lists aren’t customizable because they link to data rather than store it. You can move your cursor over any related list section to see if it’s customizable. Also, lookup fields aren’t available for display on their corresponding lookup related list. For example, the case lookup field on an account page layout isn’t available when editing the cases related list. 9. To apply the related lists in the page layout to all users, even if they’ve already customized their display, select **Overwrite users’ customized related lists**. 10. To review the page layout, click **Preview**. From the preview in Enterprise, Unlimited, Performance, and Developer Editions, select a profile to see how the pages look for users with different profiles. Most related lists’ columns preview without data. 11. Click **Save** to finish. Alternatively, click **Quick Save** to save and continue editing the page layout. In Professional, Enterprise, Unlimited, Performance, and Developer Editions: - To choose which related records display in the Console tab’s mini view, click **Mini Console View**. - To define the mini page layouts of the records that appear in the Console tab’s mini view, click **Mini Page Layout**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can’t define mini console views or mini page layouts for the Close Case Layout or the Log a Case Page and View Cases Page layouts on the Self-Service Portal. In Enterprise, Unlimited, Performance, and Developer Editions: - You can assign page layouts for different profile and record type combinations. - You can set field-level security to restrict field access further. #### See Also - [Considerations for Using the Original Page Layout Editor](https://help.salesforce.com/s/articleView?id=platform.customize_layoutcustomize_ple_notes.htm&release=264.0.0&type=5 "When working with the Original Page Layout Editor in Salesforce Classic, keep these considerations in mind.") - [Customize Related Lists](https://help.salesforce.com/s/articleView?id=platform.customizing_related_lists.htm&release=264.0.0&type=5 "You can customize related lists on record detail pages in Salesforce and the Salesforce Customer Portal. Configure elements such as the buttons and columns, the column order, and the record sort order.") - [Page Layouts](https://help.salesforce.com/s/articleView?id=platform.customize_layout.htm&release=264.0.0&type=5 "Page layouts control the layout and organization of buttons, fields, s-controls, Visualforce, custom links, and related lists on object record pages. They also help determine which fields are visible, read only, and required. Use page layouts to customize the content of record pages for your users.") # Customize Payment Link Expiry Set the number of minutes after which a payment link expires. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To customize payment link expiry: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note By default, in addition to the time limit that you set, there’s an additional buffer time of 10 minutes. 1. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 2. In Payment Time Limit, set a payment expiration time in minutes. This field sets the number of minutes after which the payment link expires. If a payment exceeds this time, the payment can succeed but the appointment can still be canceled. # Customize Related Lists You can customize related lists on record detail pages in Salesforce and the Salesforce Customer Portal. Configure elements such as the buttons and columns, the column order, and the record sort order. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To customize related lists: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note A related list shows records from a related object—for example, the Contacts related list on an account shows contacts. If the related object has quick actions on its own page layout, editing the related list requires permissions on that object. Confirm that you have the correct object permissions, either through your profile or a permission set. Otherwise, the **OK**, **Cancel**, and **Revert to Defaults** buttons aren’t available in the related list configuration window. 1. From the management settings for the object you want to edit, go to Page Layouts. 2. Click ![Action dropdown](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_icon_action_list_item_dropdown.png) on a layout’s row in the list view, and select **Edit**, or click the name of the layout. 3. To edit a related list, double-click its tab. If you’re using the enhanced page layout editor, you can also click the ![Wrench](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/wrench.png) icon. A related list configuration window appears. ![Related list configuration window](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ple_related_list_configure.png) In this window, you can’t: - Rename the related list. Instead, edit the related list label on the related object’s lookup or master-detail field. - Customize the History related list because it links to data stored elsewhere. - Customize certain standard related lists, such as Notes & Attachments, Contact Roles, and Account Team, because Salesforce locks these lists on every object where they appear. 4. Select the fields to include in the related list, define the order in which fields appear, and select the record sort order. The default sort order is by record ID. You can include up to 10 fields per related list. To show more than four fields in Lightning Experience, edit the related list component in the Lightning App Builder. Then select **Enhanced List** as the related list type. Only fields from the related object are available to add. If you don’t see an expected field in the list, confirm that it’s defined on the related object. 5. Apply your related list customizations to other page layouts, if appropriate. Only layouts that include this related list appear in the list. Layouts that include related lists with the same customizations that the current layout had when you opened it are selected by default. Salesforce's assessment of which layouts have the same customizations is based on the state of the current layout before editing it. This assessment can lead to previously deselected layouts becoming re-selected when an edited layout is reopened. To avoid unintended changes across multiple layouts, always verify the list of selected layouts. 6. To customize the standard buttons, custom buttons, and quick actions that appear on the related list, click **+** in the Buttons section header. ![Related list configuration window with Buttons section expanded](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ple_related_list_configure_buttons.png) Custom buttons and quick actions appear as options only when they’re defined on the related object. For example, to show a quick action on the Contacts related list of an account, define the quick action for contacts, not accounts. A custom button also needs a display type of **List Button**. 7. If necessary, select **Revert to Defaults** to undo any customizations and use the default Salesforce settings in the related list. 8. To store your customizations, select **OK**. 9. Save the page layout. This step saves your related list changes. If you add, move, or remove related lists from the layout, you can optionally apply these changes to all users. If a user customized their display, this step overwrites their changes. This action isn’t reversible. Keep these considerations in mind when customizing related lists. - In Lightning Experience, you set some options on the record page in the Lightning App Builder rather than on the page layout. Select the related list on the record page, and then customize the Related Lists, Related List–Single, or Dynamic Related List–Single components. Depending on the component, you can make changes such as specifying the related list type or reordering the list’s actions. You can also resize and sort columns, or show more than four fields. See [Standard Lightning Page Components](https://help.salesforce.com/s/articleView?id=platform.lightning_page_components.htm&release=264.0.0&type=5 "Standard components are Lightning components built by Salesforce. Several standard components are available when creating Lightning pages.") and [Create Dynamic Related Lists in Lightning App Builder](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_create_dynamic_related_list.htm&release=264.0.0&type=5 "With dynamic related lists, you can add flexibility and control to related lists on your record pages. Add, customize, and filter related lists in the Lightning App Builder instead of in the page layout editor. To help your users see the most relevant records, set up two or more dynamic related lists with different filters on the same object."). - To enable related list hover links for Salesforce Classic, use the User Interface settings in Setup. Record detail pages then include links for each related list at the top of the page. Users can hover over a link to view and manage the related list’s items in an interactive overlay. Or they can click the link to jump to the related list without scrolling. For Lightning Experience, add the Related List Quick Links component to a Lightning page for similar hover-to-preview functionality. - Related lists have constraints that affect what you can add and rearrange. See [Page Layout Limitations](https://help.salesforce.com/s/articleView?id=platform.layouts_limitations.htm&release=264.0.0&type=5 "Keep these limitations in mind when working with page layouts in the enhanced page layout editor.") for details. #### See Also - [Ways to Control User Access to Fields](https://help.salesforce.com/s/articleView?id=platform.customize_layoutoverview.htm&release=264.0.0&type=5 "Use field-level security to control user access to fields. Use page layouts to control the layout and organization of detail and edit pages in Salesforce, the Self-Service Portal, and the Salesforce Customer Portal.") - [_Knowledge Article_: Rename a Related List Label](https://help.salesforce.com/s/articleView?id=000392330&type=1&language=en_US) - [_Knowledge Article_: Unable to Edit a Related List](https://help.salesforce.com/articleView?id=000338435&type=1&mode=1&language=en_US) # Customize Screen Style and Layout in a Screen Flow Get the look that you want by changing the style of your entire screen or individual components. Organize your screen components into columns, and adjust component width and vertical alignment to control spacing and positioning. Style changes override the theme styling for your org or Experience Cloud site. If you enter an invalid value for a style property, the screen flow uses your theme’s style property instead. ### Required Editions
View supported editions.
User Permissions Needed
To edit a screen flow: Manage Flow
#### See Also - [Salesforce Lightning Design System: Grid](https://summer-20.lightningdesignsystem.com/utilities/grid/) - [Considerations for Screen Component Styling](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_applying_style_properties_to_screen_components.htm&language=en_US) - [Flow Screen Output Component: Section](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_section.htm&language=en_US) - [Get a Basic Screen Flow Ready for Users](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_create_a_screen_flow.htm&release=264.0.0&type=5 "Create a basic screen flow and get it ready for your users to run. Add screen elements and screen components to gather information, set up what happens with that information, test that everything works, and roll it out to your users.") ## Customize the Screen Style Change the border and colors of your screen. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If your flow runs from a Quick Action on a record page, you can’t override the screen style settings. Instead, your org or Experience Cloud site uses the default theme styling. 1. Open a screen flow, and click the screen element's header to open the Screen Properties panel. 2. Click the Style tab. 3. To change the screen style, go to the Set Container Style section and adjust properties as needed. 4. To change the label in the screen header, go to the Set Header Style section and adjust properties as needed. 5. To change the buttons in the screen footer, go to the Set Footer Style section and adjust properties as needed. ## Change a Component's Style You can change the colors, border, and other visual properties of some screen components. 1. Open a screen flow, and click a component on the screen canvas to open the properties panel for that component. 2. On the Style tab, go to the Set Styles section if present, and adjust the properties as needed. The available options depend on the type of component. The Text Color options affect only the text within the component, not the component label. 3. Save your changes. ## Organize Screen Components and Fields Arrange your screen layout by using sections. Each section can have up to 4 columns, and a screen can have up to 12 columns. You can adjust the column width and the vertical alignment of the components and add a header to each column. 1. Open a screen flow, and in the Components list, click **Section**. The section component's properties panel opens. 2. Adjust the column width and add an optional header. 3. Add screen components to the column. You can add up to four columns in a section. 4. Save your changes. ## Change a Component’s Width and Vertical Alignment A screen has a 12-column layout. The width specifies the number of horizontal columns that the component or field spans. The vertical alignment determines the position of the component or field relative to other elements on the screen. 1. Open a screen flow, and add a screen component. 1. In the Components list, click a component. The component properties panel opens. 2. On the Style tab, go to the Set Layout section. 3. To change a component’s width, from the Width dropdown list, select the number of columns it spans. The screen canvas is divided into 12 equal columns. The width of a component equals the number of columns that it spans. ![In the Style tab of the screen properties editor, the width of the number component is set to 3 of 12 columns.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_component_width.png) 4. To change a component’s vertical alignment, from the Vertical Alignment dropdown list, select an option. ![In the Style tab of the screen properties editor, the vertical alignment of the number component is set to Top.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_vertical_alignment.png) 5. Save your changes. # Customize Standard and Custom Buttons on Page Layouts When customizing page layouts, you can control which standard and custom buttons are displayed and the order in which the custom buttons appear. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To customize detail page buttons: Customize Application
1. From the management settings for the object whose page layout you want to customize, go to **Page Layouts**. 2. Click **Edit** next to the page layout you want to customize. 3. Add, remove, or reorder the buttons on the layout. This process is different depending on which editor you’re using. - In the enhanced page layout editor, select the **Buttons** category on the palette and drag one or more buttons from the palette to the buttons section on the page layout. To remove a button, drag it from the layout back to the palette. - In the original page layout editor, double-click the **Detail Page Buttons** item in the Button Section. 4. Save the page layout. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Standard and custom buttons are also considered actions. In Lightning Experience, buttons are displayed along with quick actions in different places on a record page depending on the button type. #### See Also - [Customize Page Layouts with the Enhanced Page Layout Editor](https://help.salesforce.com/s/articleView?id=platform.layouts_customize_ple.htm&release=264.0.0&type=5 "Tailor your page layouts to the needs of your users with the enhanced page layout editor. Add, remove, or reorder actions, buttons, fields, and sections on a record’s detail page.") - [Provide Actions, Buttons, and Links](https://help.salesforce.com/s/articleView?id=platform.working_with_buttons_links_actions.htm&release=264.0.0&type=5 "Buttons and links let users interact with Salesforce data and with external websites and services, such as search engines and online maps. Salesforce includes several standard buttons and links. You can also create custom ones. Actions let users do tasks, such as create records in the Chatter publisher and in the Salesforce app.") - [Override Standard Buttons and Tab Home Pages](https://help.salesforce.com/s/articleView?id=platform.links_customize_override.htm&release=264.0.0&type=5 "You can override the behavior of standard buttons—like New, View, or Edit—in Salesforce Classic, Lightning Experience, and mobile independently. You can also override the tab home page that displays when a user clicks a standard, custom, or external object tab.") - [Define Custom Buttons and Links](https://help.salesforce.com/s/articleView?id=platform.defining_custom_links.htm&release=264.0.0&type=5 "Define the action that occurs when a user clicks a custom button or link. Custom buttons and links can streamline actions within Salesforce or integrate Salesforce data with external URLs, applications, or systems.") # Customize Standard Fields You can customize several aspects of standard fields, such as the values in picklists, the format for auto-number fields, tracking field history, lookup filters on relationship fields, and field-level help. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions except for Database.com.
User Permissions Needed
To change standard fields: Customize Application
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip You can’t delete standard fields, but you can remove them from your page layouts. 1. Navigate to the fields page for your object. 2. Click the field label. 3. To add custom help text, click **Edit**. 4. On the field’s information page, you can—depending on your edition—set field-level security, view accessibility settings, and configure validation rules. You can also do more, depending on the field’s type. For example, if the field is a picklist, you can add, delete, and reorder its values, and set dependencies. You can’t increase the field length of a standard field. If you need a longer text area, consider creating a custom field. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note What does that **Indexed** checkbox mean on a field, and how did it get there? If a field is indexed, you can use sidebar search or advanced search to find values in the field. Having a field indexed can also speed up other operations on the field, such as reporting. See this blog post to find out more: [Know Thy Salesforce Field Indexes for Fast Reports, List Views, and SOQL](https://developer.salesforce.com/blogs/engineering/2015/06/know-thy-salesforce-field-indexes-fast-reports-list-views-soql.html). - **[Capturing Gender-Related Data with Standard Fields](https://help.salesforce.com/s/articleView?id=platform.inclusive_fields.htm&release=264.0.0&type=5)** Represent the diversity of your customer base by recording gender-related data in Salesforce. Use standard, optional fields with vetted value sets to help you personalize your data, build trust, and close data gaps in your system of record. #### See Also - [Create a Custom Field](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&release=264.0.0&type=5 "Capture your unique business data by storing it in custom fields. When you create a custom field, you configure where you want it to appear and optionally control security at the field level.") - [Add or Edit Picklist Values](https://help.salesforce.com/s/articleView?id=platform.updating_picklists.htm&release=264.0.0&type=5 "Add new values or rename existing values in a custom picklist from the fields area of an object. If the picklist uses a global picklist value set, you can change its values only by editing the global value set. Your changes affect all picklists that inherit their values from that global value set.") - [Rename Object, Tab, and Field Labels](https://help.salesforce.com/s/articleView?id=platform.customize_rename.htm&release=264.0.0&type=5 "You can change the name of almost any object, field, or tab in Salesforce. This simple adjustment lets you continue using the terminology your users already know and helps them transition to using Salesforce. However, Salesforce Help and most pages in Setup always display the original names for standard objects, fields, and tabs.") - [Field-Level Help](https://help.salesforce.com/s/articleView?id=platform.customhelp_getting_started_flh.htm&release=264.0.0&type=5 "Field-level help lets you provide help text detailing the purpose and function of any standard or custom field. Before defining field-level help, review these implementation tips and best practices.") - [Lookup Filters](https://help.salesforce.com/s/articleView?id=platform.fields_lookup_filters.htm&release=264.0.0&type=5 "Improve user productivity and data quality with lookup filters. Lookup filters are administrator settings that restrict the valid values and lookup dialog results for lookup, master-detail, and hierarchical relationship fields.") # Customize Standard Flow Templates The flows in Salesforce Scheduler are installed as standard flow templates. You can customize any of the flows to suit your business needs. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To open, edit, or create a flow in Flow Builder: Manage Flow
To run a flow: Run Flows
To customize a flow, create a flow based on a standard flow template. 1. From Setup, in the Quick Find box, enter Flows, select **Flows**, and then **New Flow**. 2. Select **Use a Template**, and click **Next**. 3. Select the template that you want to customize, and click **Create**. 4. Customize the flow according to your business requirements. For example, you can use these global flow variables for some quick customizations. - If you customize the flow to use the flow components in a different order or remove any of the steps in the standard flows, then these flow variables might not work as designed. - The flow variables listed in the table are available in all Salesforce Scheduler flows.
Flow Variable Description
allowAnonymousBooking Enable automatic service resource assignment to let your users schedule appointments without having to choose a service resource. To skip the resource selection page and automatically assign service resources, set allowAnonymousBooking to True and allowResourceBooking to False. To give users the option to choose between automatic resource assignment and manual resource selection, set both allowAnonymousBooking and allowResourceBooking to True.

For more information, see Enable Automatic Resource Assignment and Anonymous Scheduling.

allowResourceBooking Give users the option to manually select a service resource. To skip the resource selection page and automatically assign service resources, set allowAnonymousBooking to True and allowResourceBooking to False. To give users the option to choose between automatic resource assignment and manual resource selection, set both allowAnonymousBooking and allowResourceBooking to True.

For more information, see Enable Automatic Resource Assignment and Anonymous Scheduling.

showServiceResource Set to False to hide assigned service resources’ names on the appointment review page.

For more information, see Enable Anonymous Resource Scheduling.

distanceUnit Set to km or mi to show distances on the service territory selection page in kilometers or miles. If you don’t enter a value or enter any other value, distances are shown in miles.
SchedulingPolicyName Specify a scheduling policy’s developer name to invoke it from the flow.
WorkTypeGroupId Specify the ID of a work type group to preselect it on the Select Work Type Group page.
showTimeZonePicklist Set to True to show a list of time zones supported in Salesforce on the appointment time slot page. Users can select a time zone from the list. Set to False to hide the list. When the list is hidden, the time slots are shown in the user’s (appointment scheduler’s) time zone.
5. Click **Show Advanced** and then make sure that **Salesforce Scheduler Flow** is selected as the Type. 6. Save the flow. 7. Activate the flow. 1. In the list of flows, click the name of the new flow. 2. Under Flow Versions, next to the latest version of the flow, click **Activate**. Create a Schedule Appointment action and add it to the relevant object’s page layout. #### See Also - [Set Up a Custom Outbound Flow (Optional)](https://help.salesforce.com/s/articleView?id=platform.ls_create_custom_action.htm&release=264.0.0&type=5 "To give your users access to a customized version of the Outbound New Appointment flow or Outbound Modify Appointment standard flow template, create an action and add it to the relevant page layout.") # Customize the Appointment Booking Invitation Details Screen Customize the Appointment Booking Invitation Details screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Appointment Booking Invitation Details screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_the_appointment_booking_invitation_details_screen.png)
UI Element How to Customize the Element
The title (1) Change Labels in Flow Screens

The preselected values (2) for:

  • Appointment Booking Start Date
  • Appointment Booking End Date
  • Invitation URL Expiration Date
  • The Active checkbox
Flow Screen Component: Appointment Booking Invitation Details
The Appointment Booking Invitation Details screen
# Customize the Collect Waitlist Details Screen Learn how to customize the options that appear on the Collect Waitlist Details screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
- To customize the title (1), see [Change Labels in Flow Screens](https://help.salesforce.com/s/articleView?id=platform.ls_change_labels_in_flow_screens.htm&release=264.0.0&type=5 "To use your company's terminology, change the tab names and field names of Service Resource, Service Territory, Service Appointments, Work Type Group, and Work Type."). - To customize the Waitlist Name field label (2), see [Flow Screen Input Component: Text](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_text.htm&type=5&language=en_US). - To customize the Service Territory field label (3), see [Flow Screen Input Component: Lookup](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_lookup.htm&type=5&language=en_US). - To customize the Description field label (4), see [Flow Screen Input Component: Long Text Area](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_textarea.htm&type=5&language=en_US). - To customize the Collect Waitlist Details screen, see: - [Add Components to Salesforce Scheduler Flow Screens](https://help.salesforce.com/s/articleView?id=platform.ls_add_components_to_salesforce_scheduler_flow_screens.htm&release=264.0.0&type=5 "Add components to flow screens to display additional information or to capture additional inputs. For example, add labels and logos for branding.") - [Add Validation Rules to Service Appointment Fields](https://help.salesforce.com/s/articleView?id=platform.ls_add_validation_rules_to_service_appointment_fields.htm&release=264.0.0&type=5 "Add validation rules to ensure that user inputs meet your requirements. You can also use validation rules to override the default error messages. For example, you can add a validation rule that enables users to save an appointment only after they enter a subject.") - [Update Flows to Refresh Inputs](https://help.salesforce.com/s/articleView?id=platform.ls_refresh_inputs_on_flow_pages.htm&release=264.0.0&type=5 "Configure your Salesforce Scheduler flows to ensure that when users go back to a page and make changes during appointment scheduling, the changes are reflected on the subsequent pages. Otherwise, if a user doesn't select the right value on a previous page, they must cancel the scheduling process and start over.") ![The Collect Waitlist Details screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_collect_waitlist_details_screen.jpg) # Customize the Help Menu in Lightning Experience The question mark icon in the global header opens a menu of Salesforce resources. Supplement these links by adding a global section with links to your own content. There’s only one custom Help Menu section per org and it appears at the top of the Help Menu. ### Required Editions
Available in: Lightning Experience
Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create custom help: Customize Application OR Modify All Data
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note To create an improved and more robust learning experience for your users, check out [Guidance Center](https://help.salesforce.com/s/articleView?id=platform.admin_guidancecenter_setup.htm&release=264.0.0&type=5 "To add your own learning items in the Guidance Center, assign content with Learning Paths. Or, optionally hide Learning Home or Salesforce suggestions."). 1. From Setup in Lightning Experience, in the Quick Find box, enter Help Menu, and then select **Help Menu**. 2. Enter a title for the custom section. Salesforce recommends naming the section so that users understand that the resources are custom help for your org or company. For example, Acme Company Help. Labels aren’t translated and appear as you entered them. 3. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip List the most important resources first. Only the first two resources are shown in each section. Users can view all resources by clicking the section name or the arrow. Add labels and URLs for the resources. You can add up to 30 resources. Items are listed in the Help Menu in the order that they appear on the setup page. 4. Save your changes. 5. Turn on **Customize the Help Menu**. If you find that some sections of the Help Menu aren’t working for your users, simply hide them. Under Salesforce Help Content, turn off the links that you want to hide. As an admin with the Customize Application or Modify All Data user permission, you always see all resources, including a link to the release notes. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important If you install a package with custom Help Menu resources, they don't appear in your Help Menu Setup page or in the Help Menu user interface. To add resources per the package suggestions, use the [CustomHelpMenuItem](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_customhelpmenuitem.htm) and [CustomHelpMenuSection](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_customhelpmenusection.htm) SOAP API objects to view the information contained in the package. Then manually add any resources to the Help Menu Setup page. The Help Menu isn’t supported in the Salesforce mobile app. # Customize the Lobby Management Page Choose which fields you want to show for the service appointment and waitlist participant cards on the lobby management tab. You can also configure the button names and define the wait time durations. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Lightning App Builder, and then select **Lightning App Builder**. 2. Click **New**. 3. Select **App Page**, and then click **Next**. 4. Name the page, such as Custom Lobby Management, and then click **Next**. 5. From the Standard pages, select **One Region**, and then click **Done**. 6. From the Standard Components panel, drag Lobby Management onto the canvas. 7. In the right pane, choose how you want to customize the page.
Service Appointment Fields To change which service appointment fields are shown, click Select, and then move up to two fields from the Available column to Selected. The Available column shows both standard and custom fields for the service appointment object.
Waitlist Participant Fields To change which waitlist participant fields are shown, click Select, and then move up to 10 fields from the Available column to Selected. The Available column shows only the custom fields for the waitlist participant object.
Custom Ordering Field

Map a custom field on the waitlist participant object to replace the system-generated sequence number in the card header. When mapped, Lobby Management hides the standard 1., 2., 3. prefix and shows the field value instead.

For more information, see Customize the Sequence Number on Waitlist Participant Cards.

Check In Button Flow for Waitlists Select a flow to use to check in participants instead of the default check in flow.
Scheduled Service Appointment Card Custom Actions Select which custom flow actions are shown in the appointment card of the scheduled service appointments list.
Scheduled Service Appointment Card Default Actions Select which default actions to hide in the appointment card of the scheduled service appointments list.
Waitlist Participant Card Custom Actions Select which custom flow actions are shown in the waitlist participant card of the waitlist.
Waitlist Participant Card Default Actions Select which default actions are hidden in the waitlist participant card of the waitlist.
Hide the show topics with no participants checkbox By default, greeters see a checkbox they can toggle to hide topics with no participants. Turn on this option to hide that checkbox from greeters so they can’t toggle it.
Activate Waitlist Button Label Enter a label for the button to view the details of a waitlist and activate it.

Default: View and Activate

Check In Button Label Enter a label for the button to check in customers with scheduled appointments and drop-in customers.

Default: Check in

Wait Time Duration for No Show Enter the duration in minutes after which the service appointment card shows the Not yet arrived icon. The icon indicates that the scheduled appointment start time and wait time duration have passed, but the customer hasn’t arrived at the service territory.
Wait Time Duration to Reassign Service Resource Enter the duration in minutes after which the service appointment card shows the wait time in red. Red indicates that the customer has checked in and the scheduled appointment start time and wait time duration have passed, but the service resource hasn’t attended to the customer.
8. Save your changes, and then click **Activate**. 9. On the Activation: Custom Lobby Management page, click **Lightning Experience**, and then add the page to the Lightning Apps. 10. Save your changes. # Customize the Review Inbound or Outbound Service Appointment Screen Customize the Review Inbound or Outbound Service Appointment screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Review Inbound or Outbound Service Appointment screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_review_in_out_srvc_appt.png)
UI Element How to Customize the Element
The title (1) Change Labels in Flow Screens
The default values in fields, such as Subject and Description (2) Autofill Fields in the Appointment Review Screen
The values in fields, such as Work Type and Account (3) Flow Screen Component: Review Inbound or Outbound Service Appointment
The layout, the fields that appear, and the field labels (4)
The Review Inbound or Outbound Service Appointment screen
If you want to customize the Review Service Appointment screen beyond the inbuilt customization options, you can create your own screen. For more information, see [Considerations for Creating a Custom Review Service Appointment Screen](https://help.salesforce.com/s/articleView?id=platform.ls_considerations_for_creating_a_custom_review_service_appointment_screen.htm&release=264.0.0&type=5 "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."). # Customize the Review Service Appointment Screen Customize the Review Service Appointment screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Review Service Appointment screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_review_service_appointment_screen.png)
UI Element How to Customize the Element
The title (1) Change Labels in Flow Screens
The default values in fields, such as Subject and Description (2) Autofill Fields in the Appointment Review Screen
The values in fields, such as Work Type and Account (3) Flow Screen Component: Review Service Appointment
The layout, the fields that appear, and the field labels (4)
The Review Service Appointment screen
If you want to customize the Review Service Appointment screen beyond the inbuilt customization options, you can create your own screen. For more information, see [Considerations for Creating a Custom Review Service Appointment Screen](https://help.salesforce.com/s/articleView?id=platform.ls_considerations_for_creating_a_custom_review_service_appointment_screen.htm&release=264.0.0&type=5 "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."). # Customize the Review URL for Appointment Booking Screen Customize the Review URL for Appointment Booking screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Review URL for Appointment Booking screen.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_flowscreencomponents_review_url_for_appointment_booking.png)
UI Element How to Customize the Element
The title Change Labels in Flow Screens
The Review URL for Appointment Booking screen
# Customize the Review Waitlist Screen Learn how to customize the options that appear on the Review Waitlist screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
- To customize the title (1), see [Change Labels in Flow Screens](https://help.salesforce.com/s/articleView?id=platform.ls_change_labels_in_flow_screens.htm&release=264.0.0&type=5 "To use your company's terminology, change the tab names and field names of Service Resource, Service Territory, Service Appointments, Work Type Group, and Work Type."). - To customize the Review Waitlist screen, see: - [Flow Screen Output Component: Display Text](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_display_text.htm&type=5&language=en_US) - [Add Components to Salesforce Scheduler Flow Screens](https://help.salesforce.com/s/articleView?id=platform.ls_add_components_to_salesforce_scheduler_flow_screens.htm&release=264.0.0&type=5 "Add components to flow screens to display additional information or to capture additional inputs. For example, add labels and logos for branding.") - [Add Validation Rules to Service Appointment Fields](https://help.salesforce.com/s/articleView?id=platform.ls_add_validation_rules_to_service_appointment_fields.htm&release=264.0.0&type=5 "Add validation rules to ensure that user inputs meet your requirements. You can also use validation rules to override the default error messages. For example, you can add a validation rule that enables users to save an appointment only after they enter a subject.") - [Update Flows to Refresh Inputs](https://help.salesforce.com/s/articleView?id=platform.ls_refresh_inputs_on_flow_pages.htm&release=264.0.0&type=5 "Configure your Salesforce Scheduler flows to ensure that when users go back to a page and make changes during appointment scheduling, the changes are reflected on the subsequent pages. Otherwise, if a user doesn't select the right value on a previous page, they must cancel the scheduling process and start over.") ![The Review Waitlist screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_review_waitlist_screen.jpg) # Customize the Select Appointment Invitee Screen Customize the Select Appointment Invitee screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Select Appointment Invitee screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_the_select_appointment_invitee_screen.png)
UI Element How to Customize the Element
The title (1) Change Labels in Flow Screens
The preselected service resource (2) Flow Screen Component: Select Appointment Invitee
The Select Appointment Invitee screen
# Customize the Select Appointment Type Screen and the Select Engagement Channel Screen By default, Salesforce Scheduler shows the Select Appointment Type screen for users to select appointment mediums from. But if the engagement channels are enabled, then Salesforce Scheduler shows the Select Engagement Channel screen. Learn how to customize the screens and the options that appear on the screens. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
## Select Appointment Type ![The Select Appointment Type screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_select_appointment_type_screen.png)
UI Element How to Customize the Element
The title (1) Change Labels in Flow Screens
The list of appointment types that appear (2) Customize Default Appointment Types in Salesforce Scheduler
The preselected appointment type (3) Flow Screen Component: Select Appointment Type
The Select Appointment Type screen
## Select Engagement Channel ![The Select engagement channel screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_select_engagement_channel.png)
Number UI Element How to Customize the Element
1 The list of engagement channels that appear Create and Assign Engagement Channels
2 The icons for engagement channels Create Engagement Channel Types
3 The names of the engagement channels Create Engagement Channel Types
— The Select Engagement Channel screen
# Customize the Select Service Appointment Time Screen Customize the Select Service Appointment Time screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Select Service Appointment Time screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_select_service_appointment_time_screen.png) ![The Select Service Appointment Time screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_select_service_appointment_time_screen_2.png)
UI Element How to Customize the Element
The title and field labels (1) Change Labels in Flow Screens
The Manage resources option (for multi-resource scheduling) (2) Flow Screen Component: Select Service Appointment Time
The Skip Time Slot Selection option (3) Flow Screen Component: Select Service Appointment Time
The Time Zone picklist (4) Flow Screen Component: Select Service Appointment Time
The preselected start date (5) Flow Screen Component: Select Service Appointment Time
The preselected start time and end time (6) Flow Screen Component: Select Service Appointment Time
The Select Service Appointment Time screen
# Customize the Select Service Resource and Service Appointment Time Screen Customize the Select Service Resource and Service Appointment Time screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Select Service Resource and Service Appointment Time screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_select_service_resource_and_appointment_time.png)
UI Element How to Customize the Element
The preselected service resource (1) Flow Screen Component: Select Service Resource and Service Appointment Time
The maximum number of service resources that appear on the screen, the order in which service resources are sorted, and the time zone based on which the service resource's available slots appear (2) Flow Screen Component: Select Service Resource and Service Appointment Time
The fields and images that appear on service resource cards (3)
The availability of the Time Zone picklist (4) Flow Screen Component: Select Service Resource and Service Appointment Time
The preselected start date (5) Flow Screen Component: Select Service Resource and Service Appointment Time
The preselected start time and end time (6) Flow Screen Component: Select Service Resource and Service Appointment Time
The field label (7) Change Labels in Flow Screens
The Select Service Resource and Service Appointment Time screen
# Customize the Select Service Resource Screen Customize the Select Service Resource screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Select Service Resource screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_select_service_resource_screen.png)
UI Element How to Customize the Element
The title and field labels (1) Change Labels in Flow Screens
The order in which service resources are sorted (2) Flow Screen Component: Select Service Resource
The maximum number of service resources that appear on the screen (3) Flow Screen Component: Select Service Resource

The roles associated with service resources (4)

Note
Note You can show roles if necessary. Salesforce Scheduler doesn’t use these roles to determine availability.

Add values to the Roles picklist of the Service Territory Member entity. See Add or Edit Picklist Values. Then assign roles using the Role picklist on service territory member records.

The time zone based on which next available time slots are shown (5) Flow Screen Component: Select Service Resource
The Select Service Resource screen
# Customize the Select Service Resources Screen Customize the Select Service Resources screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Select Service Resources screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_select_service_resources_screen.png)
UI Element How to Customize the Element
The title and field labels (1) Change Labels in Flow Screens
The preselected option to select a service resource (2)
The preselected service resource (3) Flow Screen Component: Select Service Resources
The fields and images that appear on service resource cards (4)
The Select Service Resources screen
# Customize the Select Service Territory Screen Customize the Select Service Territory screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Select Service Territory screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_select_service_territory_screen.png)
UI Element How to Customize the Element
The title (1) Change Labels in Flow Screens
The list of service territories that appear (2)
The preselected distance and distance unit (3) Flow Screen Component: Select Service Territory
The location (4) Flow Screen Component: Select Service Territory
The Select Service Territory screen
# Customize the Select Work Type Group Screen Customize the Select Work Type Group screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Select Work Type Group screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_work_type_group_screen.png)
UI Element How to Customize the Element
The title and field labels (1) Change Labels in Flow Screens
The name and description of the work type group (2) Create Work Type Groups in Salesforce Scheduler
The list of appointment subtopics (3) Customize Appointment Subtopics in Salesforce Scheduler
The list of work type groups that appear (4)
The preselected work type group (5)
The Select Work Type Group screen
# Customize the Select Work Types for Waitlist or Select Service Resources for Waitlist Screen Learn how to customize the options that appear on the Select Work Types or Select Service Resources screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
- To customize the title (1), see [Change Labels in Flow Screens](https://help.salesforce.com/s/articleView?id=platform.ls_change_labels_in_flow_screens.htm&release=264.0.0&type=5 "To use your company's terminology, change the tab names and field names of Service Resource, Service Territory, Service Appointments, Work Type Group, and Work Type."). - To customize the header label, the header label help text, and the listbox labels (2), see [Flow Screen Component: Multi-Select Waitlist](https://help.salesforce.com/s/articleView?id=platform.ls_flowscreencmp_multi_select_waitlist.htm&release=264.0.0&type=5 "With this component, users can either select a list of work types or a list of service resources for a waitlist."). - To customize the Select Work Types or Select Service Resources screen, see: - [Flow Screen Component: Multi-Select Waitlist](https://help.salesforce.com/s/articleView?id=platform.ls_flowscreencmp_multi_select_waitlist.htm&release=264.0.0&type=5 "With this component, users can either select a list of work types or a list of service resources for a waitlist.") - [Add Components to Salesforce Scheduler Flow Screens](https://help.salesforce.com/s/articleView?id=platform.ls_add_components_to_salesforce_scheduler_flow_screens.htm&release=264.0.0&type=5 "Add components to flow screens to display additional information or to capture additional inputs. For example, add labels and logos for branding.") - [Add Validation Rules to Service Appointment Fields](https://help.salesforce.com/s/articleView?id=platform.ls_add_validation_rules_to_service_appointment_fields.htm&release=264.0.0&type=5 "Add validation rules to ensure that user inputs meet your requirements. You can also use validation rules to override the default error messages. For example, you can add a validation rule that enables users to save an appointment only after they enter a subject.") - [Update Flows to Refresh Inputs](https://help.salesforce.com/s/articleView?id=platform.ls_refresh_inputs_on_flow_pages.htm&release=264.0.0&type=5 "Configure your Salesforce Scheduler flows to ensure that when users go back to a page and make changes during appointment scheduling, the changes are reflected on the subsequent pages. Otherwise, if a user doesn't select the right value on a previous page, they must cancel the scheduling process and start over.") ![The Select Work Types for Waitlist screen](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_select_work_types_or_select_ST_screen.jpg) # Customize the Sequence Number on Waitlist Participant Cards Use a custom field on the waitlist participant object to replace the system-generated 1, 2, 3 prefix on waitlist participant cards. Lobby Management renders whatever value the mapped field contains, so your business logic decides what each card shows. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
By default, Lobby Management shows a system-generated index — 1., 2., 3. — in each waitlist participant card header. When you map a custom field on the waitlist participant object, Lobby Management replaces the index with the field’s value. ## Plan Your Custom Field Plan how Lobby Management reads your custom field: - Lobby Management displays whatever value your custom field contains. Implement backend logic, typically an Apex trigger on the waitlist participant record, to calculate the position you want shown and write it to the custom field. For information about writing triggers, see [Apex Triggers](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers.htm). - To create a custom field on the waitlist participant object, see [Add Custom Fields](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&type=5&language=en_US). Ensure that the field is of the type **Text** or **Number**. ## Reorder Participants By default, Lobby Management doesn't sort or position participants on the waitlist based on the mapping. Move a participant on the waitlist from a trigger or Apex class. Use the Waitlist Participants Connect API from your trigger or Apex class to move a participant to a specific position, the top, or the bottom of the waitlist. For more information, see [Waitlist Participants](https://developer.salesforce.com/docs/atlas.en-us.salesforce_scheduler_developer_guide.meta/salesforce_scheduler_developer_guide/connect_resources_scheduling_waitlist_participants.htm) # Customize the Service Resource Availability Screen Customize the Service Resource Availability screen and the options that appear on the screen. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![The Service Resource Availability screen with UI elements highlighted and numbered.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_customize_service_resource_availability_screen.png)
UI Element How to Customize the Element
The fields and images that appear on service resource cards (1)
The preselected service resource (2) Flow Screen Component: Service Resource Availability
The Service Resource Availability screen
# Customize What Happens When a Flow Fails Learn how fault paths customize what happens when a flow fails. Choose how to notify admins, guide users, and take a follow-up action. ### Required Editions
View supported editions.
## How Fault Paths Work Your flow fails when Salesforce can’t complete a database operation. A validation rule or a missing required value can prevent the operation from completing. Add fault paths to elements or actions that perform database operations. Examples include the Update Records element and the Submit for Approval core action. A fault path customizes what happens when an error occurs. A fault path is an alternate route that a flow follows when an element encounters an error. Use a fault path to decide what happens after an error. You can notify an admin or show a message to the person running the flow. You can also take a follow-up action. If an element has no fault path, or its fault path is empty, Salesforce uses the default error-handling behavior. That behavior varies by flow type and can affect whether Salesforce rolls back the transaction. For more information, see [Default Flow Error Handling](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault_default.htm&release=264.0.0&type=5 "Understand how flows behave when they fail to help you decide on error handling strategies. Learn what happens by default so you can determine if you need custom error handling for your specific use case."). ## Choose How to Respond to Flow Errors When you plan error handling for a flow, decide how Salesforce responds to the error and who needs information about it. - Learn the default behavior for the flow type and decide whether to add a fault path. - Choose who receives fault emails. See [Select Flow and Process Error Email Recipients](https://help.salesforce.com/s/articleView?id=platform.flow_troubleshoot_error_email.htm&release=264.0.0&type=5 "When a process or flow interview fails, a detailed email is sent to the admin who last modified the process or flow. However, sometimes the admin isn’t the best person to act on the details of what ran and what went wrong. In that case, you can send error emails to the Apex exception email recipients."). - Send diagnostic information from a fault path. See [Configure Every Fault Path to Send You an Email](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault_email.htm&release=264.0.0&type=5 "As a best practice, we recommend configuring the fault connectors in your flow so that you always receive an email when a flow fails. In the email, include the current values of all your flow’s resources. The resource values can give you insight into why the flow failed."). - Show a helpful message to people running screen flows. See [Customize the Error Message for Running Flow Users](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault_usermsg.htm&release=264.0.0&type=5 "Add a fault path to a screen flow to show a helpful message when an element fails."). - Take another follow-up action, such as asking for corrected information or creating a case. See [Other Examples of Error Handling in Flows](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault_examples.htm&release=264.0.0&type=5 "Examples of using fault connectors to handle flow errors include requesting corrections from the user and bypassing the error."). - **[Default Flow Error Handling](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault_default.htm&release=264.0.0&type=5)** Understand how flows behave when they fail to help you decide on error handling strategies. Learn what happens by default so you can determine if you need custom error handling for your specific use case. - **[Select Flow and Process Error Email Recipients](https://help.salesforce.com/s/articleView?id=platform.flow_troubleshoot_error_email.htm&release=264.0.0&type=5)** When a process or flow interview fails, a detailed email is sent to the admin who last modified the process or flow. However, sometimes the admin isn’t the best person to act on the details of what ran and what went wrong. In that case, you can send error emails to the Apex exception email recipients. - **[Configure Every Fault Path to Send You an Email](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault_email.htm&release=264.0.0&type=5)** As a best practice, we recommend configuring the fault connectors in your flow so that you always receive an email when a flow fails. In the email, include the current values of all your flow’s resources. The resource values can give you insight into why the flow failed. - **[Show a Custom Error Message in a Screen Flow](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault_usermsg.htm&release=264.0.0&type=5)** Add a fault path to a screen flow to show a helpful message when an element fails. - **[Other Examples of Error Handling in Flows](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault_examples.htm&release=264.0.0&type=5)** Examples of using fault connectors to handle flow errors include requesting corrections from the user and bypassing the error. #### See Also - [Flow Element Connectors](https://help.salesforce.com/s/articleView?id=platform.flow_ref_connectors.htm&release=264.0.0&type=5 "A connector determines the path that a flow takes at run time.") - [Flow Elements](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements.htm&release=264.0.0&type=5 "An element represents an action that the flow can run. Examples include reading or writing Salesforce data, displaying information and collecting data from flow users, runnning business logic, or manipulating data.") - [Move and Connect Elements to Change a Flow Route](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_route_add.htm&release=264.0.0&type=5 "Identify which elements the flow runs and in what order by connecting the elements on your canvas together. To change the run order, move elements and add or remove connectors.") # Customize Your Salesforce Org You can customize each of the standard tabs and types of records, including adding custom fields and setting page layouts. You can also customize search, tagging, and user interface options for your org. In addition, every Contact Manager, Group, Professional, Enterprise, Unlimited, and Performance Edition user can customize various personal display options. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
The available customization options vary according to which Salesforce Edition you have.
User Permissions Needed
To view setup options: View Setup and Configuration
To customize your org: Customize Application
Watch a Demo: [![Watch Video Demo](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/play_btn.png) Creating a Workflow Rule (Salesforce Classic)](https://salesforce.vidyard.com/watch/IqZIFLtEx9rY7AD8QLFE3Q) Quick demo of how to customize the way Salesforce looks for your organization. To tailor Salesforce for your org, you can customize the display of the various tabs and other items. Select a link to get started on any task. - **[Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5)** Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup. - **[Ways to Control User Access to Fields](https://help.salesforce.com/s/articleView?id=platform.customize_layoutoverview.htm&release=264.0.0&type=5)** Use field-level security to control user access to fields. Use page layouts to control the layout and organization of detail and edit pages in Salesforce, the Self-Service Portal, and the Salesforce Customer Portal. - **[Set Page Layouts and Field-Level Security](https://help.salesforce.com/s/articleView?id=platform.managing_page_layouts_and_field-level_security.htm&release=264.0.0&type=5)** Use field-level security as the means to restrict users’ access to fields; then use page layouts primarily to organize detail and edit pages within tabs. This reduces the number of page layouts for you to maintain. For example, if a field is required in the page layout and read-only in the field-level security settings, the field-level security overrides the page layout and the field is read-only for the user. - **[Page Layouts](https://help.salesforce.com/s/articleView?id=platform.customize_layout.htm&release=264.0.0&type=5)** Page layouts control the layout and organization of buttons, fields, s-controls, Visualforce, custom links, and related lists on object record pages. They also help determine which fields are visible, read only, and required. Use page layouts to customize the content of record pages for your users. - **[Compact Layouts](https://help.salesforce.com/s/articleView?id=platform.compact_layout_overview.htm&release=264.0.0&type=5)** A compact layout displays a record’s key fields at a glance in the Salesforce mobile app, Lightning Experience, and in the Outlook and Gmail integrations. - **[Custom Help Content](https://help.salesforce.com/s/articleView?id=platform.customhelp_about.htm&release=264.0.0&type=5)** Tailor help so that users understand how to work within your unique implementation of Salesforce. You can add learning in the flow of work in several ways. Add custom help for a page, app, object, or org level, or provide links to help in the Utility Bar, Path, or as a text box on the page. Show users custom resources in a Lightning Experience welcome mat when they first log in. Or, to reach users with important news, training, and on-boarding information, add micro-learning prompts and walkthroughs to your app. - **[Tailor Business Processes to Different Record Types Users](https://help.salesforce.com/s/articleView?id=platform.customize_recordtype.htm&release=264.0.0&type=5)** Record types let you offer different business processes, picklist values, and page layouts to different users. You can create record types to differentiate your regular sales deals from your professional services engagements, offering different picklist values for each. Or you can display different page layouts for your customer support cases versus your billing cases. - **[Manage Your Translations](https://help.salesforce.com/s/articleView?id=platform.workbench_overview.htm&release=264.0.0&type=5)** If your Salesforce org has multiple languages enabled, manage translations so that your global users can use Salesforce in their language. # Customize Your Workspace and Personal Settings in Agentforce Operations Configure workspace-wide settings and manage your personal preferences in Agentforce Operations. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Agentforce Operations offers two levels of settings: workspace settings that apply to everyone in the workspace, and personal settings that control your individual experience. Workspace settings include branding, business hours, and how task information appears Personal settings include notification preferences and out-of-office responses. ## Workspace Settings Workspace settings affect all users and control workspace-wide behavior. Only users with the Admin role can modify workspace settings. These settings include: - Branding: Customize your workspace name, logo, and colors to match your company's identity. - Business Hours: Define your organization's working days and hours. Tasks with due dates respect these settings when calculating deadlines. - Task Information Order: Control the order in which fields appear when users complete tasks. Learn more in [Configure Your Workspace Settings in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_settings_workspace.htm&release=264.0.0&type=5 "Configure workspace-wide settings in Agentforce Operations from the Admin settings page or from the workspace name."). ## Personal Settings Personal settings control your individual experience in Agentforce Operations. Each user can manage their own personal settings without affecting other users. Personal settings include notification preferences and out-of-office responses. Learn more in [Managing Your Personal Settings in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_settings_personal.htm&release=264.0.0&type=5 "Manage your personal preferences from your user account in Agentforce Operations. Personal settings affect only your experience."). To learn more, explore these links. - **[Configure Your Workspace Settings in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_settings_workspace.htm&release=264.0.0&type=5)** Configure workspace-wide settings in Agentforce Operations from the Admin settings page or from the workspace name. - **[Managing Your Personal Settings in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_settings_personal.htm&release=264.0.0&type=5)** Manage your personal preferences from your user account in Agentforce Operations. Personal settings affect only your experience. # Daily Allocations for Email Alerts The daily allocation for emails sent through email alerts is 1,000 per standard user license per org—except for free Developer Edition and trial orgs, where the daily workflow email allocation is 15. The overall org allocation is 2,000,000. This allocation applies to emails sent through email alerts in workflow rules, approval processes, flows, processes, or REST API. Single emails sent to external email addresses are also limited, and how those limits are enforced depends on when your org was created. ### Required Editions
Available in: Lightning Experience and Salesforce Classic
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Workflow Rules have ended as of December 31, 2025. This means that support won't be provided for any workflow rules and bugs in the Workflow Rules product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing workflow rules continue to run, and you can activate, deactivate, and edit them; however we recommend using Flow Builder. To migrate existing workflow rules, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). After your org has reached its daily workflow email allocation: - Any emails in the workflow queue not sent that day are discarded. Salesforce doesn't try to resend them later. - If a workflow rule with an action and an email alert is triggered, only the email action is blocked. - Final approval, final rejection, approval, rejection, and recall email actions are blocked. - An error message is added to the debug log. These items don't count against the workflow email allocation: - Approval notification emails - Task assignment notifications - Lead assignment rules notifications - Case assignment rules notifications - Case escalation rules notifications - Salesforce Sites usage alerts The allocation restriction is based on activity in the 24-hour period starting and ending at midnight GMT. Adding or removing a user license immediately adjusts the allocation's total. If you send an email alert to a group, every recipient in that group counts against your daily workflow email allocation. ## Single Email Limits Each licensed org can send single emails to a maximum of 5,000 external email addresses, or recipients, per day. A day is based on Greenwich Mean Time (GMT). Sending emails to internal email recipients doesn't count toward the org daily limit. - For orgs created before Spring ’19, the org daily limit is enforced only for emails sent via Apex and Salesforce APIs, except for REST API. - For orgs created in Spring ’19 and later, the org daily limit is also enforced for email alerts, simple email actions, Send Email actions in flows, and REST API. - Each user can send emails from the email composer to a maximum of 250 external email recipients per hour. In Developer Edition orgs and orgs evaluating Salesforce during a trial period, each user can send emails to a maximum of 50 recipients per day, and each single email can have up to 15 recipients. ## Allocation Alerts When workflow email alerts approach or exceed certain allocations, Salesforce sends a warning email to the default workflow user or—if the default workflow user isn't set—to an active Salesforce admin. | When... | Salesforce Sends... | Warning Email Includes... | | --- | --- | --- | | An email alert isn't sent because the number of recipients exceeds the allocation for a single email | A warning email for each unsent email alert | The unsent email alert’s content and recipients | | The org reaches 90% of the allocation of emails per day | One warning email | The allocation and the org's usage | | The org reaches 90% of the allocation of workflow emails per day | One warning email | The allocation and the org's usage | | An email alert isn't sent because the org reaches the allocation of emails per day | A warning email after every 100 attempted email alerts over the allocation | The allocation and the org's usage | | An email alert isn't sent because the org reaches the allocation of workflow emails per day | A warning email after every 100 attempted email alerts over the allocation | The allocation and the org's usage | | The org reaches the daily allocation for single emails sent to external email addresses | One warning email | The allocation and the org that exceeded the allocation | #### See Also - [_Salesforce Help:_ Standard User Licenses](https://help.salesforce.com/s/articleView?id=platform.users_license_types_available.htm&language=en_US) # Dashlane Connector Connect to an external Dashlane account. Perform tasks like retrieving team members' information, accessing password health data, and listing active user devices. Use Dashlane as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Bearer authentication. Bearer authentication sends a header named Authorization with a value of Bearer and a token with every request. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Token

Enter the bearer token to use to authenticate the requests. For information about how to create the bearer token, refer to the external system's documentation.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Dashlane actions are available in Flow Builder. - Get Members Information Of The Team - Get Password Health Information Of The Team - Get The Team Status - List Activated User Devices In Team ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Data Changes Tracker in Backup & Recover for Salesforce The Data Changes Tracker helps you monitor changes in high-activity Salesforce data. Investigate unexpected deletions quickly, and make sure that your automations and integrations aren't making erroneous bulk changes. The Data Changes Tracker helps you achieve near-zero Recovery Point Objectives (RPOs). ## When to Use the Data Changes Tracker Use the Data Changes Tracker when you want to: - Investigate unexpected or malicious record deletions: Quickly identify and review any deletions that seem out of place. - Check for bulk changes caused by misconfigured automations or integrations: Make sure that your automations and integrations are working as intended by tracking any large-scale changes. - Monitor data growth and activity trends over time: Gain insights into how your data is evolving and spot any unusual patterns. - **[Track Data Changes in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_track_data_changes.htm&release=264.0.0&type=5)** Start a Data Changes Tracker job to visualize Salesforce data changes captured in real time. See the number of record additions, changes, and deletions for all Salesforce objects or specific objects. Depending on the time range you specify, you can see how many changes occurred over minutes, hours, or days. # Data Classification Categories and Levels in Secure Secure policies include two classifications, Sensitivity Levels and Compliance Categories. Sensitivity levels indicate whether the sensitivity level is high-risk. Compliance Categorization can also be specified to better identify sensitive data. You can use the default sensitivity levels and compliance categories, and add custom entries. To configure data classification settings navigate to the Settings tab, and click on "Policies". ## Sensitivity Levels Sensitivity level labels and high-risk indicators should be based on the org's "Data Classification & Handling Policy" to ensure consistency. It is critical that sensitivity levels be marked high-risk or not, so the protection of sensitive data can be properly assessed. If an org doesn’t have a "Data Classification & Handling Policy", Secure provides defaults that can be used. To create the default sensitivity levels, click Create Default Levels: Three default levels can be used to implement security measures for protecting the data within an org. Each sensitivity level can be changed based on an org’s policy, including the name, description, icon, and whether it should be considered high-risk. - Confidential: Data should be classified as Confidential when the unauthorized disclosure, alteration, or destruction of that data would cause a significant risk to the org or its affiliates. Confidential data includes data protected by state or federal privacy regulations and data protected by confidentiality agreements. The highest level of security controls should be applied to confidential data. - Private: Data should be classified as Private when the unauthorized disclosure, alteration, or destruction of that data would cause a moderate risk to the org or its affiliates. Data that is not classified as Confidential or Public should be treated as Private. A moderate level of security controls should be applied to private data. - Public: Data should be classified as Public when the unauthorized disclosure, alteration, or destruction of that data could result in minor or no risk to the org and its affiliates. Public data includes press releases, product information, and marketing materials. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note To reorder the list, drag and drop each item to the desired location Use the New Level button to add custom levels to an org. This button adds a blank level to the list and requires manual entry for the name, description, icon, and risk level. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note If the New Level button is used, before adding defaults, the option to add defaults is no longer available. It is recommended that you add any default options before customization. ## Compliance Categories Compliance Categories can be used to add secondary tags to fields, highlighting the critical data being stored. A company’s “Data Classification & Handling” policy specifies that certain types of data, such as health records (HIPAA) or credit card information (PCI), be mapped to specific sensitivity levels. To create the default Compliance Categories built into Secure, click Create Default Categories. Eight categories can be used for implementing regulation compliance for protecting the data within an org. Each can be edited to better suit the needs of an org, including the name, description, and icon. - Personally Identifiable Information (PII): Any information about an individual that is maintained by your org, including information that can be used to distinguish or trace an individual's identity, such as a name, social security number, date, place of birth, mother's maiden name, or biometric records; and any other information that can be linked to an individual, such as medical, educational, financial, and employment information. - Health Insurance Portability and Accountability Act (HIPAA): HIPAA establishes national standards to protect an individuals’ medical records and other health information. It also applies to health plans, health care clearinghouses, and health care providers that conduct electronic transactions. - General Data Protection Regulation (GDPR): Personal data is any information that relates to an individual which can be directly or indirectly identified. Names, phone numbers, and email addresses are the most common forms of personal data. Location information, ethnicity, gender, biometric data, religious beliefs, web cookies, and political opinions may also be considered personal data. - Payment Card Industry Data Security Standard (PCI DSS) is a standard for companies that handle or process customer payment data, like credit card numbers. - Children's Online Privacy Protection Act (COPPA): Makes websites and services for children under thirteen years of age follow certain rules. These rules are especially important when they collect personal information on them. - California Consumer Privacy Act (CCPA): Gives California consumers rights and control over their personal information. This includes the right to know, the right to delete, and the right to stop your organization from selling your personal information. It also protects minors from being hurt by your organization. - Protected Health Information (PHI) is any information about your health, how you get health care, or how you pay for it. Your organization makes or collects this information and can link it to a specific person. - Sarbanes-Oxley Act (SOX): Annual audits for public companies doing business in the US to set financial reporting standards. These standards include protecting data, tracking attempts to breach, recording electronic records for auditing, and showing compliance. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note To reorder the list, drag and drop each item to the desired location Use the New Category button to add custom categories to the org. This button adds a blank category to the list and requires manual entry for the name, description, and icon. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note If the New Category button is used, before adding defaults, the option to add defaults is no longer available. It is recommended that you add any default options before customization. # Data Classification in Secure After you create Sensitivity Levels and Compliance Categories on the Settings tab, the fields within the org can be assigned a classification on the Data Classification tab. A progress bar along the top indicates your overall classification progress: - Gray: This portion of the progress bar represents the unclassified fields remaining within the org. - Colors: This portion is color-coded and is based on your Sensitivity Levels. Fields can be assigned to any of the classification settings. Select a field or group of fields, click the Pencil icon, choose the sensitivity level and classification(s), set a Data Owner and Field Usage if needed, and click Apply. To remove classifications from an individual or group of fields, select the field(s), click the Pencil icon, check the Remove Classification checkbox, and click Apply. Compliance Categories can be removed without affecting the assigned Sensitivity Level. Select "Remove Categories" from the Compliance Categorization drop-down menu instead of using the Remove Classification check-box. ## Quick Filters and Search Quick Filters and the ability to search for individual fields are available. These tools allow a user to narrow down the list to specific objects. The following filters are available for the Objects list: - Object Types - Managed Packages - Objects - Object API or Label Name Contains The following filters are available for the Fields list: - Sensitivity Levels - Compliance Categories - Field Type - Field Classified Since - Field Usage - Managed Package - Data Type - Data Owner - Field API or Label Name Contains - Fill Rate Object and Field filters can be saved as a Filter Set for later use. These Filter Sets can be migrated between orgs by using the Secure Policy Wizard in the Settings tab. ## Downloading Classification Assignments After classifying, a .csv file can be downloaded to review all the classification assignments within the org. Users can select a color from the Progress Bar to automatically filter to that specific Sensitivity Level. Users can also display or hide columns within the Fields list by clicking the Options Menu icon. Visibility can be toggled on for the following: - Object Name - Name - Developer Name - Data Type - Description - Help Text - Field Usage - Data Owner - Compliance Categorization - Fill Rates - Sensitivity ## Guided Classification A helpful guide is available on the Data Classification tab to walk new users through the process of classifying and categorizing org data. Click the Launch Guided Classification button to open the guide. When using the guide, review each section and perform any necessary steps before navigating to the next section by clicking the Next button. To hide the guide, click the Launch Guided Classification button again. ## The Fill Rate Calculator Tool The Fill Rates Calculator is a field usage estimation tool and can be helpful when performing remediation actions. It does this by calculating how many fields are in use against the total fields available, providing a percentage summary. On the Settings tab, under General, the number of records used for a fill rate calculation can be limited. For example, the default value of "10,000" will take the most recent 10,000 records created to analyze a percentage of records with values for each field. This can be adjusted in the Settings tab to 1,000, 10,000, 100,000 or All Records. Setting the calculation to "All Records" is not recommended for large orgs and may cause the process to fail. To run the Fill Rates Calculator, click the Fill Rates button, and then click Calculate Fill Rates. The calculator investigates every object and field on a specified number of recent records. Depending on the amount selected, this may take some time to complete. When a job is in process, the Fill Rate icon and Calculate Fill Rates button appear as in progress to prevent multiple jobs from being scheduled. After the job is complete, the Fill Rate results for each field are displayed in the Fill Rate Column. - **[Sync Secure Data Classification with Salesforce](https://help.salesforce.com/s/articleView?id=platform.sc_ext_sync_classification.htm&release=264.0.0&type=5)** Set up Secure to sync field-level meta data such as sensitivity, compliance and other data points to and from Salesforce. - **[Data Classification Categories and Levels in Secure](https://help.salesforce.com/s/articleView?id=platform.sc_ext_set_up_data_classification.htm&release=264.0.0&type=5)** Secure policies include two classifications, Sensitivity Levels and Compliance Categories. Sensitivity levels indicate whether the sensitivity level is high-risk. Compliance Categorization can also be specified to better identify sensitive data. You can use the default sensitivity levels and compliance categories, and add custom entries. - **[Migrate Data Classification Policies in Secure](https://help.salesforce.com/s/articleView?id=platform.sc_ext_migrate_data_classification.htm&release=264.0.0&type=5)** You can migrate Data Classification information between Salesforce orgs using the Own Secure Policy wizard. # Data Classification Metadata Fields Record the data owner, field usage, data sensitivity, and compliance categorization for any standard or custom object field. You can also access data classification metadata in the Salesforce API and Apex. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: All editions
User Permissions Needed
To edit data classification fields: Customize Application or Modify Data Classification
You can use the data classification metadata fields on most standard and custom objects. Before you begin, review these limitations. - Compliance categorizations don't appear on fields suffixed with \_\_pc when you query the Person Account object. While \_\_pc fields appear in Person Account queries, they reside on the Contact object. To see their compliance categorization, query the Contact object instead. The same limitation applies whether you're using Tooling API (FieldDefinition) or Metadata API (CustomField). Learn more about [Person Accounts](https://help.salesforce.com/s/articleView?id=sales.account_person.htm&language=en_US) and their relationship to Contacts. - If you're working in Object Manager, these metadata fields aren't available for the User object: Data Owner, Data Sensitivity Level, and Field Usage. To apply them to the User object, use the [CustomField Metadata API](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/customfield.htm) or the Data Classification Upload tool.
Field Description
Compliance Categorization

The compliance acts, definitions, or regulations that are related to the field’s data. Default values:

  • CCPA—California Consumer Privacy Act
  • COPPA—Children's Online Privacy Protection Act
  • GDPR—General Data Protection Regulation
  • HIPAA—Health Insurance Portability and Accountability Act
  • PCI—Payment Card Industry
  • PersonalInfo—Personal information. For use with the Enhanced Personal Information Management feature. Only available if Enhanced Personal Information Management and Digital Experiences are enabled.
  • PII—Personally Identifiable Information

The field corresponds to the ComplianceGroup field on the FieldDefinition Tooling API.

Data Owner

The person or group associated with this field. The data owner understands the importance of the field’s data to your company and might be responsible for determining the minimum data sensitivity level.

The field corresponds to the BusinessOwnerId field on the FieldDefinition Tooling API.

Data Sensitivity Level

The sensitivity of the data contained in this field. Default values:

  • Public—Available to the public to view but not alter.
  • Internal—Available to company employees and contractors. This data must not be shared publicly, but it can be shared with customers, partners, and others under a non-disclosure agreement (NDA).
  • Confidential—Available to an approved group of employees and contractors. This data isn’t restricted by law, regulation, or a company master service agreement (MSA). It can be shared with customers, partners, and others under an NDA.
  • Restricted—Available only to an approved group of employees and contractors. This data is likely restricted by law, regulation, an NDA, or a company MSA.
  • MissionCritical—Available only to a small group of approved employees and contractors. Third parties who are given access could be subject to heightened contractual requirements. This data is almost always restricted by law, regulation, an NDA, or a company MSA.

The field corresponds to the SecurityClassification field on the FieldDefinition Tooling API and the FieldSecurityClassification SOAP API.

Field Usage

Tracks whether the field is in use. Default values:

  • Active—In use and visible.
  • DeprecateCandidate—Planned for deprecation and no longer in use.
  • Hidden—Not visible and possibly planned for deprecation. Use with caution.

Changing the value of Field Usage doesn’t hide or expose the field.

The field corresponds to the BusinessStatus field on the FieldDefinition Tooling API.

You can customize the values for the Compliance Categorization, Data Sensitivity Level, and Field Usage fields. - To edit the Compliance Categorization values, select **Edit Compliance Categorization Picklist Values** on the Data Classification Settings Setup page or update the ComplianceGroup picklist using the [StandardValueSet](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_standardvalueset.htm) Metadata API type. - To edit the Data Sensitivity Level values, select **Edit Data Sensitivity Picklist Values** on the Data Classification Settings Setup page or update the SecurityClassification picklist using the [StandardValueSet](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_standardvalueset.htm) Metadata API type. - To edit the Field Usage values, update the FieldBusinessStatus picklist using the [StandardValueSet](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_standardvalueset.htm) Metadata API type. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can also access data classification metadata by querying your Salesforce data. For example, this sample query retrieves values for all data classification metadata fields in account and lead records. ``` SELECT Id, DeveloperName, Description, BusinessOwnerId, BusinessStatus, SecurityClassification FROM FieldDefinition WHERE EntityDefinitionId in ('Account','Lead') ``` # Data Commit and Deployment Maintain data integrity and keep dependencies intact by moving metadata and data together in a single work item. In Lifecycle Center, you can move configuration data between environments using the same commit and deploy flow that you use for metadata. ### Required Editions
Available in: Lightning Experience
Available in: Professional (API access required), Enterprise, Performance, Unlimited, and Developer editions
When you commit data, Lifecycle Center stores the records as .csv files in your source control repository. Files are stored in a folder, usually dataset/. Each object has its own file, named with the object’s API name. For example, dataset/Account.csv. Example repository structure: ``` / dataset/ Account.csv Contact.csv CustomObject__c.csv ``` Lifecycle Center combines and applies updates from multiple commits to the .csv files based on these user actions. | User Action | Lifecycle Center Action | | --- | --- | | Add a new record | Adds a row to the .csv file. | | Add new columns | Adds columns to the header. Existing rows get empty values in the new columns. | | Commit fewer columns than before | Updates only the specified columns. Other columns in the file remain unchanged. | | Update an existing record | Replaces the row. The latest commit overwrites all previous values in that row. | ## Data Commit and Deployment Considerations Review these requirements before you commit and deploy data: - Use a unique External ID field to match records and prevent duplicates in the target org. - Make sure that your External ID field contains only unique values. If the same ID appears twice in a file, the last processed row overwrites the first. - Don’t leave the External ID field blank. Every record in your commit must have a valid identifier. - Lifecycle Center supports up to 1,000 records per object type and 10,000 records total per commit. - Save the data as UTF-8 .csv with comma (,) as the delimiter. Use the standard CSV escaping for fields that contain quotes or commas. ## View Data Changes in DX Inspector and Lifecycle Center - Data to commit: In your development environment, open Change Management from DX Inspector. Then, go to the Data tab to see the data changes available for commit. ![Data tab in Change Management.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/next_gen_dx_data_tab.png) - Data to deploy: Open the work item record in Lifecycle Center, then click **Change List** to see the data changes included in that work item for deployment. ![Data changes in the work item change list.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/next_gen_devops_center_change_list.png) #### See Also - [Commit Changes to Source Repository](https://help.salesforce.com/s/articleView?id=platform.devops_center_commit_changes.htm&release=264.0.0&type=5 "Commit changes to your source repository directly from the Change Management tab. After you make the changes, decide which changes to include for the work item and commit them to the Lifecycle Center project’s source control repository.") - [Promote Work Items](https://help.salesforce.com/s/articleView?id=platform.devops_center_promote_work_items.htm&release=264.0.0&type=5 "Move your work items through a predefined sequence of pipeline stages, guiding them from development to production. ") # Data Filter Examples When working with data repeaters, data tables, and data functions, you can filter the data you retrieve in many ways. In this topic, we explore two options— fixed values and URL query strings—to illustrate some common filtering techniques. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

Example 1: Use a Fixed Value to Filter Results In our first example, we have a custom object called “News” that stores company news and events. Each news item has a Status picklist that can be set to either In Progress or Approved. We only want to display approved news items on our Company News page. In this case, we can use a fixed value to filter the data in the News object. In this scenario: 1. Add a data repeater to the page and configure it as follows: 1. Select the News custom object. 2. In the Filters section, set the criteria to Status Equals Fixed value. 3. Enter Approved in the Value text box. This configuration tells the data repeater to return only records where the Status field contains the value `Approved`. 2. To display the required fields, such as Title, Description, and Date, on the page, add data elements to the data repeater. Example 2: Use a URL Query String to Dynamically Filter and Display Results on Another Page In our second example, we have a custom object called “Products” that stores product information. However, some products are only available in certain locations, so we like to let customers view the products in their nearest city. In this case, we could create a Locations site page that contains links to each available city. We want each link to open the Products site page, but only display products based on the user's selection. We can do this using URL query strings, which let us pass variable content between HTML pages. The variable information in this case is the product location; the data repeater doesn’t know which products to return until the user makes a selection. In this scenario: 1. Add a data repeater to the Products page and configure it: 1. Select the Products custom object. 2. In the Filters section, set the criteria to City Equals URL query string. 3. In the Value text box, enter the variable name—in this case, location. 4. If query string is missing dropdown list, select **Don't apply this filter item**. This option is used when a customer wants to view all products without filtering. 5. Click **Save**. 2. Add data elements for the fields you want to display, such as Product Name, Description, and Price. 3. On the Locations page, add a data repeater and select the Products custom object. 4. Add a data element to the data repeater to represent the City field and configure it: 1. Select the City field as the field to display, because we want to use the name of the city as the hyperlink. 2. Select Text as the display format. 3. Select **Add a hyperlink** to display a URL on the page. 4. In the Link to dropdown list, select An item in your site. 5. Select Page as the type and select the Products page. (If you can't see the list of pages, place your cursor in the URL text box and press the DOWN key on your keyboard.) 6. Change the URL value to /product?location={!City}. In this case, {!City} is a placeholder for the value of a record's City field. When the page first loads, {!City} is replaced with the correct value, such as Dallas, which creates this URL for that record: ``` /product?location=Dallas ``` When clicked, the Products page opens with `Dallas` listed as the value of the location variable. 7. For the tooltip, select the City field and click **Customize**. 8. Change the value to Show me products available in {!City}. Again, the value of the City field replaces the {!City} placeholder for each record when the page loads. Now, when the Locations page loads, the data repeater displays the location of each product as a link. When a customer clicks a link, such as Dallas, the Locations page passes `location=Dallas` to the Products page. As the Products page loads, the data repeater uses this value to dynamically return only records where the City field contains the value `Dallas`. #### See Also - [Dynamically Retrieve Data with Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") - [Display Data or Content Using Data Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_element.htm&release=264.0.0&type=5 "You can use a data element to display the data retrieved by a page data connection or a data repeater. The data element binds to a field in the object and acts as a placeholder that's replaced with the field's data when the page loads.") - [Dynamically Retrieve Data with Data Tables](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5 "Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table.") - [Access Data in Related Objects Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_nested_overview.htm&release=264.0.0&type=5 "Standard and custom objects have relationships that define how records in one object relate to records in another. For example, the Accounts object has a one-to-many relationship with the Contacts object—that is, each account can have one or more contacts associated with it. This relationship is also known as a parent-to-child or a master-detail relationship.") # Data Filters When you add a data repeater, a data table, or a data function to a page, you don't have to limit the records it retrieves. However, if you're working with a Salesforce object that has thousands of records, you can limit the returned results using filter criteria. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

When you add filter criteria, you must specify: - The field to which the filter criteria apply - The operator - [The source of the filter value](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_operators.htm&release=264.0.0&type=5) - The filter value ## Filter Operators | Operator | Description | | --- | --- | | Equals | Returns an exact match. | | Not equal to | Returns records that don't have the value you specify. | | Less than | Returns records that are less than the value you specify. | | Greater than | Returns records that exceed the value you specify. | | Less than or equal to | Returns records that match or are less than the value you specify. | | Greater than or equal to | Returns records that match or exceed the value you specify. | | Starts with | Use when you know what your value starts with, but not the exact text. For example, “california” would return California Travel, but not Surf California. | | Ends with | Use when you know what your value ends with, but not the exact text. | | Contains | Returns records that include your search string but can also include other information. For example, “california” would return California Travel and Surf California. | | Includes | Use for field types that support multiple values to return records that contain one or more of the comma-separated values you specify. | | Includes all | Use for field types that support multiple values to return records that contain all of the comma-separated values you specify. | | Excludes | Use for field types that support multiple values to return records that don't contain one or more of the comma-separated values you specify. For example, for a Locations category field, “San Francisco, Vancouver” would exclude a record containing “San Francisco, Dallas” and a record containing “Vancouver, New York.” | | Excludes all | Use for field types that support multiple values to return records that don't contain all of the comma-separated values you specify. For example, for a Locations category field, “San Francisco, Vancouver” would exclude only records that contain _both_ terms. | ## Filter Value Sources
Source Description
Fixed value Use when you want to specify the value.
URL query string Use when you want to pass variable content via a URL to the item when the page loads.
Global property Use when you want to use a fixed value from the site, such as the current date or current time.
Request header Use when you want to use a value from the browser, such as the host header or browser version.
Parent repeater

Use when you want to create a query between unrelated objects, or between content lists or categories. Available only when a data repeater, data table, or data function is nested inside a parent repeater, but the parent repeater's object is unrelated to the nested item's object, and the selected data sources for both are unrelated.

Retrieving data from unrelated objects can adversely affect the performance of your site. We recommend retrieving data from related objects only.

#### See Also - [Dynamically Retrieve Data with Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") - [Dynamically Retrieve Data with Data Tables](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5 "Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table.") - [Using Data Functions](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_function.htm&release=264.0.0&type=5 "A data function lets you connect to a standard or custom Salesforce object, perform calculations on the returned results, and display the calculation on the page. For example, for a particular field in an object, you can use a data function to calculate the total value or the average amount of all returned records.") - [About Displaying Dynamic Data Using Expressions](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_merge_fields.htm&release=264.0.0&type=5 "Site.com uses expression language to display data dynamically. Expressions serve as placeholders for data that is replaced with information when the page loads. When working with data-bound page elements or custom widget properties, you can use expressions to customize how data is displayed on the page.") # Data Integration Rules for Salesforce Scheduler See how Salesforce Scheduler uses data integration rules to populate and update geolocation data. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
When you add an address to certain types of records, data integration rules use Google Maps API to calculate the address's geolocation data: latitude, longitude, and location accuracy. You can reference this data, which is visible only in the API, in custom Salesforce Scheduler apps. The geolocation data feature, known as geocoding, is enabled for these objects: - Service appointments. Uses the Geocodes for Service Appointment Address data integration rule. - Service territories. Uses the Geocodes for Service Territory Address data integration rule. - Resource absences. Uses the Geocodes for Resource Absence Address data integration rule. - Service territory members. Uses the Geocodes for Service Territory Member Address data integration rule. Data integration rules generate values for these fields:
Field Name Description
Latitude The latitude of the street address.
Longitude The longitude of the street address.
GeocodeAccuracy

The accuracy of the latitude and longitude. Supported values— listed in order from most to least accurate—are:

  • Address: The building
  • NearAddress: A point near the address
  • Block: Midway point of the block
  • Street: Midway point of the street
  • ExtendedZip: Center of the extended ZIP code area
  • Zip: Center of the ZIP code area
  • Neighborhood: Center of the neighborhood
  • City: Center of the city
  • County: Center of the county
  • State: Center of the state
  • Unknown: No match found for the address (for instance, the address is invalid)
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note As Google Maps is restricted in China, Salesforce features that depend on Google Maps don’t work in China. To minimize errors and customize access for users in China, see [Disable Google Maps-based Field Service features for China users](https://help.salesforce.com/s/articleView?id=000268458&type=1&language=en_US). ## Keep Geocoding Data Current Salesforce uses data integration rules to refresh fields when: - A record is created or updated. - A record type's data integration rule is activated. Data integration rules run asynchronously and take time to process. The processing time depends on the number of records that are being updated. To check the status of a record’s geocoding data, select **Check for New Data** from the record's Actions menu. The status shows: - The time when the record’s geocoding data was last refreshed. - The record’s geocoding status. When the geocoding data is up to date, the In Sync status appears. - An Update button that lets you manually refresh the data. ## Opt Out of Geocoding If you’re using another geocoding service, you can opt out of Salesforce geocoding by deactivating the data integration rule of that object. # Data Mask & Seed Home Tab The Data Mask & Seed Home page provides descriptions of the application’s features and the UI utilities for beginning your work with the Data Mask & Seed application. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask add-on license.
## Home Page The Data Mask & Seed Home page provides you, the Salesforce admin, with descriptions of the application’s features and the UI utilities for beginning your work with the Data Mask & Seed application. To access the Home tab, search for and select Data Mask & Seed in the App Launcher. The UI opens the Home tab displaying the Data Mask & Seed Home page. The Data Mask & Seed Home page includes: - Purpose and features section: Learn about the app’s purpose and key features. - Associated PII section: Review associated PII (personally identifiable information) contained in object records (see Sandbox PII section below). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note This section is not available in the Data Mask & Seed Home page of a production org. - Coming Next section: Learn about upcoming new features and capabilities. ## Sandbox PII When you are logged in to a sandbox (in contrast to a production org), the Home page provides the Associated PII section. This section presents three tiles. Each tile displays the number of records for each one of three different sandbox objects - Case Comments, Email Messages, and Chatter Comments. When the number of records is greater than zero (> 0) for any of these objects, the relevant tile’s Delete button is turned on. Click Delete to run a masking job that removes these records from their sandbox object. Running this specific masking job doesn’t require you to first create an applicable masking policy. Data Mask and Seed doesn't bypass automations when deleting records for each one of three different sandbox objects - Case Comments, Email Messages, and Chatter Comments. ## User Permissions To access and work with the Data Mask & Seed application, assign users the following Permission Set License and Permission Set. Make sure to assign the Permission Set License before assigning the Permission Set: - **_Data Mask And Seed User_** Permission Set License - **_Data Mask and Seed User_** Permission Set ## Related Topics From the Home page, you can access all other Data Mask & Seed tabs - Policies, Jobs, and Custom Libraries. You’ll work in each of these tabs when using Data Mask & Seed to accomplish the following application tasks: - Create and edit masking policies - see the [Policies Tab](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_policies_tab.htm&release=264.0.0&type=5 "Use the Policies tab to create, view, edit, and delete masking policies for your org.") - Create and edit custom libraries - see the [Custom Libraries Tab](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_custom_libraries_tab.htm&release=264.0.0&type=5 "Use the Custom Libraries tab to view, create, edit, activate, and delete custom libraries for masking policies.") - Run masking jobs on sandbox data, see [Run a Masking Job](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_run_masking_policy.htm&release=264.0.0&type=5 "After creating a policy in your sandbox that addresses your masking use case needs, you can then manually run a masking job using that policy to mask your sandbox’s object data.") - Check masking job status and review masking job results, see [Monitor Masking Jobs from the Jobs Tab](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_jobs_tab.htm&release=264.0.0&type=5 "Access the Data Mask & Seed Jobs tab to monitor running and completed masking jobs, view job details, and cancel jobs in progress. The Jobs tab is only available in sandboxes.") # Data Mask & Seed Policies Tab Use the Policies tab to create, view, edit, and delete masking policies for your org. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask add-on license.
## Policies Page Use the Policies tab to create, view, edit, and delete masking policies for your production org, your sandboxes or both. Having created a policy in your sandbox, you can then run a masking job using that policy to mask sandbox object data. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_important.png) Important Each time that you either create or refresh a sandbox, Data Mask & Seed automatically copies all policies from your production org into the newly created/refreshed sandbox. Your existing sandbox policies are overwritten by the production org policies that Data Mask & Seed copies. When you select the Policies tab, the UI opens the Policies page that displays the All Policies view. This view lists all existing masking policies associated with your sandbox or production org. When no masking policies are currently defined for the sandbox/production org, the page displays empty. For each listed policy, the UI presents the following columns of information, as available, from left to right: - Name - you can click the name to open the policy page. The displayed policy is in view-only mode. - Run on Refresh - this column displays in production org policies only. For details, see the Run on Refresh description in The Ribbon section below - Description - an optional description about the policy, provided by the user - Last Run Date - date of the most recently run masking job using the policy - Last Modified Date - date of the most recent policy modification - Last Modified By - username who most recently modified the policy - Schedule - scheduled frequency of masking jobs using the policy: Once, Daily, Weekly, Monthly, or Not Scheduled - The far right column of each listed policy presents a down-arrow. Clicking it displays the following menu of task options: - Run - opens the Run Masking Job dialog. Run a masking job using the policy named in the dialog - Edit - opens the policy page. The displayed policy is in edit mode and you can modify its content - Clone - creates a copy of the current policy and opens that copy in Edit mode. The cloned policy is named \[current policy name\] (1). Any subsequent clones are numbered sequentially: \[current policy name\] (2), \[current policy name\] (3), and so on. You can modify the cloned policy's content. - Delete - opens the Delete policy dialog. You can delete the policy mentioned in the dialog In the All Policies view, click on a policy name to open the policy page. In the page, click the Edit button to transition the policy into Edit mode and you can modify its content. In the Policies page, you also create new masking policies. See [Create a Masking Policy](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_creating_masking_policy.htm&release=264.0.0&type=5 "Here’s how to create an initial masking policy to begin addressing your masking use case needs."). Each policy specifies the objects that you want to mask and, more precisely, how you want to mask the field data contained in the object records of your sandbox. After creating a policy that addresses your masking use case needs, you can then run a masking job using that policy to mask your sandbox’s object data. ## Policy Page Layout The policy page is composed of several different functional areas that you use when defining and updating policies. ## The Ribbon Across the top of the policy page is the page’s ribbon that provides the following policy info and UI utilities: - Breadcrumbs: Displays your current UI location - Policies > Policy Name. Clicking on the Policies link returns you to the Policies page. - Policy Name: Name of the displayed policy - Locale: The locale selected for the policy, for example, Czech, Japanese, Spanish (Mexico), or English (United States). - Run on Refresh: Identifies whether or not the policy is designated to run in a masking job whenever a sandbox in the org is either created or refreshed. In your production org, you enable a policy’s Run on Refresh feature. At any given time, you can enable Run on Refresh in only one policy. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_important.png) Important If Run on Refresh is enabled for a policy in both the Data Mask managed package and the new Data Mask & Seed app, only the Data Mask & Seed policy runs on refreshed sandboxes. - Schedule: Identifies whether or not the policy is scheduled to run in masking jobs. If so, the field displays the schedule’s run frequency, start date, and start time. - Edit/Save: This button toggles between Edit and Save. Clicking Edit transitions the policy from view-only into Edit mode and you can modify its content. Clicking Save saves any applied policy updates and transitions the policy back into view-only mode. - Schedule: Only available when sandbox policy is in view-only mode. This button opens the Schedule Policy dialog. You can define a masking job schedule for the sandbox policy. Schedule how often the masking policy will run (once, daily, weekly, or monthly), its start date, and start time. In a production org, you can’t run masking jobs. Therefore, the Schedule button is disabled for use in production org policies. - Run Now: Only available when sandbox policy is in view-only mode. This button opens the Run Masking Job dialog displaying the Policy Name and Policy Description fields. Clicking Run starts a masking job using the policy to mask your sandbox. In a production org, you can’t run masking jobs. Therefore, the Run Now button is disabled for use in production org policies. - Down-arrow: This button opens a menu containing the following options: - Edit policy settings - only available when policy is in Edit mode. Select to open the Edit Policy dialog. You can update the Policy Name, Policy Description, and **Locale** fields. Updating the Locale changes the alphabet, language, and format that Data Mask & Seed uses when generating masked data for the policy's object fields. For a policy in a production org, you can also update (enable/disable) the Run on Refresh toggle. - Delete policy - select to open the Delete policy? dialog. You can delete the policy mentioned in the dialog ## Objects Panel Located on the left side of the policy page, the UI provides the Objects panel. The panel lists in alphabetical order all the objects currently included in the policy. Click the panel’s + Add button to select additional objects for inclusion in the policy. When there are many objects to display, you can scroll through the list of objects. Select an object in the panel to display that object’s detail in the UI’s central area. ## Central Area In the central area of the policy page, the UI displays all the fields of the object currently selected in the Objects panel and the masking-related details about each of those fields. Per field, these details are: - Fields column: Identifies each field by its unique API name and field type. For example, the field `AnnualRevenue` has the field type Currency or the field `BillingCity` has the field type Text. To view both a field's API name and its label, hover over the field name to display a tooltip. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_important.png) Important Data Mask & Seed can mask object fields that are encrypted with Shield Platform Encryption's Field Level Encryption (FLE). Note that masking processing modifies such object fields' actual value saved in the Salesforce database, which results in a new encrypted data value. - Categories column: Identifies the classification category of the info in that field. For example, HIPAA, GDPR, or None (info not classified). Data Mask & Seed evaluates this column's value to detect PII and automatically assign an appropriate masking option. - Sensitivity column: Identifies the sensitivity level assigned to the field. Data Mask & Seed highlights non-public sensitivity levels—**Internal**, **Confidential**, and **Restricted**. Data Mask & Seed evaluates this column's value to detect PII and automatically assign an appropriate masking option. - Mask Unique column: Relevant to object fields configured for masking (their Mask With value is not set to Skip). When checkbox is selected, instructs to always mask the field with a unique value for each object record - Mask With column: Specifies the masking method to be applied to the field, such as Clear, City, Random Characters, Pattern, Postal Code, Skip, custom library name **Proactive PII Detection** Data Mask & Seed proactively identifies object fields that likely contain personally identifiable information (PII) and automatically assigns each identified field an appropriate masking option. Data Mask & Seed evaluates the following to determine whether a field contains PII (only one of these two conditions is necessary to qualify the field as containing PII): - The field's **Categories** value has an assigned category, such as HIPAA or GDPR. - The field's **Sensitivity** level is set to a non-public value: **Internal**, **Confidential**, or **Restricted**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note You can always assign your own masking option to any policy object field, overriding the automatically assigned value. Search Tools Across the top of the central area, use any of the following search tools either by themselves or in combination: - Quick Find: Enter text. Searches the object for field names that match the provided text. The search is case-insensitive and matches partial field names. UI displays matching fields. - Display by Field Type: Select a field type from the drop-down menu. UI displays object fields matching the selected type. - Display by Mask Status: Select a mask status from the drop-down menu. UI displays object fields matching the selected mask status. Action Buttons At the top far right of the central area, the UI makes the following buttons available when the policy is in Edit mode. Button actions are relevant for the object currently displayed in the central area: - Remove Object: Clicking this button removes the object from the policy. - Add Filters: Clicking this button opens the Filter Records dialog. Use this dialog to define an object filter, which is composed of filter logic and one or more filter conditions. During a masking job, the filter is applied to the object in order to select only those object records that match the filter. After you add one condition to the filter, the button label changes from Add Filters to Edit Filters. Clicking this button opens the Filter Records dialog and you can edit the object’s filter. For details about adding/editing an object filter, refer to the article [Filter Object Records](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_filter_object_records.htm&release=264.0.0&type=5 "Add object filters in masking policies in order that masking job processing selects for masking only the specific object records that meet your use case criteria, such as accounts in a particular region or contacts created after a specific date."). - When the policy is in view-only mode and the object has a filter currently defined for it, the UI makes available the View Filters button in place of the Add/Edit Filter button. Clicking the View Filters button opens the Filter Records dialog in view-only mode. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_important.png) Important Remember to always select Save to save your policy updates. Unsaved changes are lost when you navigate away from the policy page. - **[Create a Masking Policy](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_creating_masking_policy.htm&release=264.0.0&type=5)** Here’s how to create an initial masking policy to begin addressing your masking use case needs. - **[Filter Object Records for Masking](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_filter_object_records.htm&release=264.0.0&type=5)** Add object filters in masking policies in order that masking job processing selects for masking only the specific object records that meet your use case criteria, such as accounts in a particular region or contacts created after a specific date. - **[Run a Masking Job](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_run_masking_policy.htm&release=264.0.0&type=5)** After creating a policy in your sandbox that addresses your masking use case needs, you can then manually run a masking job using that policy to mask your sandbox’s object data. - **[Scheduled Masking Policies](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_scheduled_masking_policies.htm&release=264.0.0&type=5)** After creating a policy in your sandbox that addresses your masking use case needs, you can then schedule masking jobs to be automatically run using that policy to mask your sandbox’s object data. # Data Mask & Seed Requirements and Limitations This topic provides the requirements and limitations that govern working with Data Mask & Seed. Before working with Data Mask & Seed, review these requirements and limitations. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask add-on license.
## Requirements and Limitations Before working with Data Mask & Seed, review the following requirements and limitations: - Permissions and access - Object masking constraints - Custom library limits - Masking job record and job concurrency caps ## Permissions and Access - To access and work with the Data Mask & Seed application, assign users the following Permission Set License and Permission Set. Make sure to assign the Permission Set License before assigning the Permission Set: - **_Data Mask And Seed User_** Permission Set License - **_Data Mask and Seed User_** Permission Set - To use the _Create with Einstein_ option to generate custom library info entries, you must have Einstein enabled for your user, which requires your org to have an Einstein license. If your org has this license, either a Salesforce admin or you can enable Einstein for your user. To enable Einstein for Data Mask & Seed: - Verify that your org has an Einstein license. - In the UI Setup menu, enter Data Mask in the Quick Find field. - Select the Data Mask & Seed settings page. - Enable Einstein for your user. ## Object Masking When you include the User object in a masking policy, Data Mask & Seed masks only the following types of users: - `PowerCustomerSuccess` - `CustomerSuccess` - `CspLitePortal` ## Custom Libraries When using Salesforce’s Einstein utility to generate info entries for custom libraries, each Einstein generation of info entries is limited to a maximum of 100 entries. ## Masking Job Processing Record Limits - When a masking job exceeds 20,000,000 records, Data Mask & Seed runs the job, however: - The app doesn't preserve existing data distributions in the sandbox. This means that the app doesn't analyze the distribution of field values within an object's records during a sandbox masking job. Therefore, masking doesn't preserve the original frequency and proportion of field values across the records of each object - The app doesn't apply consistent field masking across objects. This means that the app doesn't apply the same masking value to identical fields that are found across multiple objects in your masking policy - Per masking job, Data Mask & Seed supports masking a maximum of 350,000,000 records. At a job's outset, Data Mask & Seed first counts the candidate records to be masked to determine whether or not the job exceeds the maximum record limit. If the job exceeds this limit, Data Mask & Seed cancels the job, doesn't perform any masking and records an error message in the Masking Job Report. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note If your masking job exceeds the maximum record limit, reduce the job's total number of records by either removing objects from the masking policy, applying object record filters in the masking policy, or the combined use of both approaches. Concurrency Limit - Per sandbox, Data Mask & Seed supports running a maximum of 12 masking jobs during the current 24-hour rolling window. When a sandbox exceeds this limit, new jobs are cancelled and an error message is recorded in the Masking Job Report of each cancelled job. Bypassing Automations Limitations Data Mask and Seed doesn't bypass automations when deleting records in the following scenarios: - When deleting the Feed Items and History records of masked sandbox objects, during a masking job - When deleting records for each one of three different sandbox objects - Case Comments, Email Messages, and Chatter Comments, as initiated by the user from the Associated PII section of the Data Mask & Seed Home page Also, Data Mask & Seed doesn't bypass the Duplicate Detection automation. Therefore, duplicates may be created, unless the user manually disables the automation before the masking job (and should re-enable the automation, after the masking job completes). ## Related Topics After reviewing these Data Mask & Seed requirements and limitations, you can begin working with the app: - To create and edit masking policies, see [Create a Masking Policy](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_creating_masking_policy.htm&release=264.0.0&type=5 "Here’s how to create an initial masking policy to begin addressing your masking use case needs.") and the [Policies Tab](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_policies_tab.htm&release=264.0.0&type=5 "Use the Policies tab to create, view, edit, and delete masking policies for your org.") - To create and edit custom libraries, see [Custom Libraries Overview](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_custom_libraries_overview.htm&release=264.0.0&type=5 "Custom libraries are user-defined collections of values that you can use to mask text or email fields in a masking policy.") - Once you have created a masking policy that suits your masking needs, do any of the following: - Manually run a masking job using that policy, see [Run a Masking Job](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_run_masking_policy.htm&release=264.0.0&type=5 "After creating a policy in your sandbox that addresses your masking use case needs, you can then manually run a masking job using that policy to mask your sandbox’s object data.") - Schedule masking jobs to be automatically run using that policy, see [Schedule a Masking Policy](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_scheduled_masking_policies.htm&release=264.0.0&type=5 "After creating a policy in your sandbox that addresses your masking use case needs, you can then schedule masking jobs to be automatically run using that policy to mask your sandbox’s object data.") - While a masking job is in progress or after the job completes, you can view the job's current status or review the completed job's results, see the [Jobs Tab](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_jobs_tab.htm&release=264.0.0&type=5 "Access the Data Mask & Seed Jobs tab to monitor running and completed masking jobs, view job details, and cancel jobs in progress. The Jobs tab is only available in sandboxes.") # Data Mask Best Practices We recommend that you mask fields that typically contain personally identifiable information (PII) or other sensitive data. These fields are a good place to start. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask managed package (Legacy) add-on license.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note This content relates to the Data Mask managed package. Read about Accelerate and Anonymize in [Own from Salesforce](https://help.salesforce.com/s/articleView?id=platform.own_from_salesforce.htm&type=5&language=en_US). These Data Mask guidelines help you to implement features efficiently and securely while optimizing performance. ## Guidelines ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_example.png) Example - Create Data Mask configurations in production orgs. While Data Mask can’t run in your production org, install and configure it there so that your policies are easily manageable. When a sandbox is refreshed, Data Mask configurations are automatically pushed to the sandbox. - To improve performance and manageability during masking processes, divide large objects into smaller configurations. Dividing them up helps to prevent row locking and traversal issues on complex objects. For example, objects such as Contact, Account, Case, and Opportunity with more than 20 million records, more than 400 custom fields, or thousands of parent-child relationships. - Avoid executing resource-intensive actions such as large data loads or complex queries in sandboxes concurrently with Data Mask processes to prevent performance degradation. - By using data filters to target subsets of records or new data consumption, you avoid redundant masking operations. This use case is especially helpful if Data Mask runs into a the limitation issue and only a few records remain unmasked. - To ensure that all records are masked as planned, use the Dev Console to query them after running Data Mask. Querying records post-implementation validates the effectiveness of the masking process and ensures all targeted records are appropriately masked. - Only mask the fields or objects that you need. Selectively masking only the fields and objects that contain sensitive data necessary for testing minimizes unnecessary processing and potential performance impacts. - Only copy over data from production that you must test. Transfer and mask data from production environments selectively, focusing only on datasets essential for testing scenarios to streamline data masking efforts.
Example Configuration: Replacing Sensitive Customer PII on the Account and Contact Objects
Object Example Configuration
Account
  • Account Name - Replace with Library: Company Name
  • Account Phone - Replace with Random Value
  • Billing Street - Replace with Library: Street
  • Billing City - Replace with Library: City
  • First Name, when PersonAccounts is enabled, replace with Library: First Name
  • Last Name, when PersonAccounts is enabled, replace with Library: Last Name
Contact
  • First Name - Replace with Library: First Name
  • Last Name - Replace with Library: Last Name
  • Home Phone - Replace with Random Value
  • Birthdate - Replace with Random Value
  • Email -  Replace with Pattern: %5c@invalid.com
   
# Data Mask Considerations When running Data Mask in your sandbox, it’s important to understand how rules and records are handled. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask managed package (Legacy) add-on license.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note This content relates to the Data Mask managed package. Read about Accelerate and Anonymize in [Own from Salesforce](https://help.salesforce.com/s/articleView?id=platform.own_from_salesforce.htm&type=5&language=en_US). ## Data in Required Fields Is Missing All required fields must have data for Data Mask to finish running. A field that changes from optional to required can have data missing. The Data Mask is considered complete in this scenario, but it skips incomplete records. ## Bypassing Workflows, Triggers, and Validation Rules Data Mask bypasses custom workflow rules, triggers, and validation rules created in the org running data masking, including automations from installed managed packages. ## Masking Person Accounts Person Account data resides on two objects, Account and Contact. To mask Person Account record data, you must configure Data Mask to mask the relevant fields wherever that data resides, whether in the Account object, in the Contact object, or in both of these objects. Data Mask can’t bypass automations on the Contact object when Person Account objects are enabled. Therefore, to avoid the occurrence of save errors, you must manually disable automations. ## Masking the User Object Data Mask can’t edit SFDC Admin, Automated Process, or Integration User records. You see an error message during the mask. Use the Data Filter to exclude them from your policy. To prevent locking users out of the sandbox, use caution when masking the username field. ## Picklists Aren’t a Supported Field Type Picklist fields such as State and Country aren’t masked when enabling a picklist in the sandbox. You see an error message during the mask. # Data Model Overview Learn about the objects and relationships within the Salesforce Scheduler data model that represent appointments and employees who can be scheduled to attend appointments. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Not all object fields are shown in this data model diagram. Check out the [Object Reference](https://developer.salesforce.com/docs/atlas.en-us.salesforce_scheduler_developer_guide.meta/salesforce_scheduler_developer_guide/salesforce_scheduler_objects_overview.htm) for object fields and their descriptions. ![data model](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_data_model.png) View the [Salesforce Scheduler data model](https://developer.salesforce.com/docs/platform/data-models/guide/salesforce-scheduler.html) in the Salesforce Developer documentation. ## Salesforce Scheduler Objects With Salesforce Scheduler, you get access to a suite of standard Salesforce objects. Salesforce Scheduler shares these objects with Field Service. | Object Name | Description | Tab in Salesforce? | | --- | --- | --- | | Appointment Invitation | An invitation URL that’s created for customers who can use it to book appointments. |   | | Appointment Invitee | A service resource (employee or contractor) or an asset that's assigned to an appointment invitation. |   | | Appointment Topic Time Slot | A time period on a specified day of the week when an appointment topic within a service territory is available for appointment. |   | | Assigned Resource | An employee attendee (service resource) that is assigned to a service appointment. |   | | Engagement Channel Type | A channel through which a customer can be reached for communication. |   | | Engagement Channel Work Type | A work type associated with a particular engagement channel type. |   | | Holiday | A time period during which a service resource is unavailable for appointment booking. |   | | Operating Hours | Specific hours of a day during which appointments can be scheduled. You can define operating hours for service territories, service territory members, work types, and accounts. | ![Checkmark](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/resources-global/_corporate/images/checkmark.png) | | Operating Hours Holiday | A time period for which a service territory and service resources exclusive to the service territory are unavailable for appointment booking. |   | | Resource Absence | A vacation day or holiday when an employee attendee (service resource) is unavailable. |   | | Service Appointment | An appointment booked through Salesforce Scheduler. | ![Checkmark](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/resources-global/_corporate/images/checkmark.png) | | Service Resource | An employee from your organization, such as a loan officer, investment advisor, doctor, nurse practitioner, or retail store specialist, who attends appointments with clients. | ![Checkmark](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/resources-global/_corporate/images/checkmark.png) | | Shift | A shift for service resource scheduling. |   | | Shift Engagement Channel | An engagement channel type associated with a particular shift. |   | | Shift Work Topic | A work topic (work type or work type group) associated with a particular shift. |   | | Skill | A skill, expertise, or certification available in your organization. When the Match Skills scheduling policy rule is enforced, only employees with the right skills are assigned to appointments. |   | | Service Resource Skill | A skill assigned to a service resource. You can specify skill level and expiration. |   | | Skill Requirement | A skill that is required to attend appointments dealing with a particular topic. Skill requirements can be added to work types. |   | | Service Territory | Branch or office locations where your appointment attendees operate from or meet customers. | ![Checkmark](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/resources-global/_corporate/images/checkmark.png) | | Service Territory Member | A service resource who is assigned to a particular service territory. |   | | Service Territory Work Type | A work type associated with a particular service territory. |   | | Time Slot | A period in a day when an appointment can be scheduled. Operating hours consist of one or more time slots. |   | | Work Type | Appointment templates that link appointment topics (work type groups) with particular locations (service territories) and define key parameters such as appointment duration, preparation and wrap-up buffers, and availability timings. | ![Checkmark](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/resources-global/_corporate/images/checkmark.png) | | Work Type Group | A general appointment category or topic such as home loan or investment. | ![Checkmark](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/resources-global/_corporate/images/checkmark.png) | | Work Type Group Member | A work type that belongs to a particular work type group. |   | # Data Privacy in Backup & Recover for Dynamics Data privacy involves the practices and measures taken to protect personal data, which helps you comply with regulations and maintain customer trust. By implementing data privacy measures, you protect personally identifiable information (PII) and mitigate risks associated with data breaches. Own is committed to Data Privacy (formerly known as GDPR) compliance and assisting users with Right of Access, Right to Rectify, and Right to Forget data protection requests. As a data processor, seeks to make sure that administrators have the tools needed to facilitate Data Subject Requests within their backups and archives. Data Privacy capabilities are available for the Microsoft Dynamics 365 environment. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Only Admins and Master Admins can submit Data Privacy requests. To handle Data Privacy inquiries from a Data Subject, and to make sure the relevant records are being handled in your backups, use: - For Right to Rectify, and Right to Forget: Use the Data Privacy tab. - For Right of Access: Use Find in the main navigation. ## Data Privacy Subject Requests From the Data Privacy tab, both Right to Rectify and Right to Forget requests are handled. All requests can be canceled within 48 hours of submission. Data Privacy requests are handled at the table level. Hierarchies and related tables are not supported within the request, and require their own separate Data Privacy requests. For example, when submitting a Data Privacy request for a Person Account, separate Data Privacy requests must be submitted for both the Account and Contact tables. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note A maximum of 30,000 records per service, made through the Own Platform or by API, can be submitted in any 24-hour period. This limit also applies to the amount of records in a bulk request. ## Right of Access Own provides authorized cloud service administrators with a tool to locate and report which backups contain the data subject and their service region. With the Find capability, users can easily search their entire backup history of data and attachments. This capability allows users to accomplish the following: - Quickly find and retrieve records and files that were removed or archived. - Address any legal, compliance, and audit inquiries relating to the backed-up data. - Allows the admin to Forget or Rectify a record directly from the results page. ## Protect Personal Data in Dynamics with Privacy Requests Safeguard personal data in Microsoft Dynamics from unauthorized access to comply with regulations such as GDPR. Protecting personally identifiable information (PII) helps you maintain customer trust. Implement data privacy measures to efficiently handle data subject requests and mitigate risks associated with data breaches. ### Request to Forget a Single Record Own provides authorized administrators with a tool to locate the data subject’s Record ID and submit it for deletion. Forget Requests in Own only affect records stored in Own, not within the cloud service provider. A forget request must be made in the cloud service provider as well, otherwise the records will still be included in future backups. 1. On the Services page, select the relevant service. 2. In the Data Privacy tab click New Request and select Forget Record. 3. Enter: - The Table name. - The Record ID of the specific record you want to remove. ### Request to Forget Bulk Records A Forget request for a collection of records identified in a CSV file can be made using the Bulk Forget option. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Bulk Forget requests don't support CSV files encoded with UTF-8. Ensure you save your CSV file with a different encoding. 1. In the Data Privacy tab click New Request and select Bulk Forget. If the total requests (Forget and Rectify) for the twenty-four-hour period have been met or exceeded, the Forget Record, Rectify Record and Bulk Forget buttons are deactivated. 2. Confirm your CSV file format. 3. Select the CSV file you want to upload. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note The header columns names are case-sensitive. ### Request to Rectify a Record Own provide authorized administrators with a tool to locate the data subject’s Record ID and edit the Data Subject's table (both are needed to submit a request). 1. In the Data Privacy tab click New Request and select Rectify Record. 2. Enter: - Table - Record ID of the specific record you want rectified. - Field Name - New Value 3. Add a comment if required. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note On completion, the action is permanent and can't be undone. Use the Data Privacy tab to cancel the request. # Data Privacy in Backup & Recover for Salesforce Data privacy involves the practices and measures taken to protect personal data, which helps you comply with regulations and maintain customer trust. By implementing data privacy measures, you protect personally identifiable information (PII) and mitigate risks associated with data breaches. Own is committed to Data Privacy (formerly known as GDPR) compliance and assisting users with Right of Access, Right to Rectify, and Right to Forget data protection requests. As a data processor, seeks to make sure that administrators have the tools needed to facilitate Data Subject Requests within their backups and archives. Data Privacy capabilities are available for Salesforce Production and Sandbox environments. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Only Admins and Master Admins can submit Data Privacy requests. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Data Privacy requests are handled at the object level. Hierarchies and related objects are not supported within the request, and require their own separate Data Privacy requests. For example: If submitting a Data Privacy request for a Person Account, separate Data Privacy Requests must be submitted for both the Account and Contact objects. To handle Data Privacy inquiries from a Data Subject, and to make sure the relevant records are being handled in your backups, use: - For Right to Rectify, and Right to Forget: Use the Data Privacy tab. - For Right of Access: Use Find in the main navigation. ## Data Privacy Subject Requests From the Data Privacy tab, both Right to Rectify and Right to Forget requests are handled. All requests can be canceled within 48 hours of submission. Data Privacy requests are handled at the object level. Hierarchies and related objects are not supported within the request, and require their own separate Data Privacy requests. For example, when submitting a Data Privacy request for a Person Account, separate Data Privacy requests must be submitted for both the Account and Contact objects. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note A maximum of 30,000 records per service, made through the Own Platform or by API, can be submitted in any 24-hour period. This limit also applies to the amount of records in a bulk request. ## Right of Access Own provides authorized cloud service administrators with a tool to locate and report which backups contain the data subject and their service region. With the Find capability, users can easily search their entire backup history of data and attachments. This capability allows users to accomplish the following: - Quickly find and retrieve records and files that were removed or archived. - Address any legal, compliance, and audit inquiries relating to the backed-up data. - Allows the admin to Forget or Rectify a record directly from the results page. - **[Protect Personal Data with Privacy Requests](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_request_data_privacy.htm&release=264.0.0&type=5)** Safeguard personal data in Salesforce from unauthorized access to comply with regulations such as GDPR. Protecting personally identifiable information (PII) helps you maintain customer trust. Implement data privacy measures to efficiently handle data subject requests and mitigate risks associated with data breaches. # Data Privacy in Backup & Recover for ServiceNow Data privacy involves the practices and measures taken to protect personal data, which helps you comply with regulations and maintain customer trust. By implementing data privacy measures, you protect personally identifiable information (PII) and mitigate risks associated with data breaches. Own is committed to Data Privacy (formerly known as GDPR) compliance and assisting users with Right of Access, Right to Rectify, and Right to Forget data protection requests. As a data processor, seeks to make sure that administrators have the tools needed to facilitate Data Subject Requests within their backups and archives. Data Privacy capabilities are available for the ServiceNow environment. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Only Admins and Master Admins can submit Data Privacy requests. To handle Data Privacy inquiries from a Data Subject, and to make sure the relevant records are being handled in your backups, use: - For Right to Rectify, and Right to Forget: Use the Data Privacy tab. - For Right of Access: Use Find in the main navigation. ## Data Privacy Subject Requests From the Data Privacy tab, both Right to Rectify and Right to Forget requests are handled. All requests can be canceled within 48 hours of submission. Data Privacy requests are handled at the table level. Hierarchies and related tables are not supported within the request, and require their own separate Data Privacy requests. For example, when submitting a Data Privacy request for a Person Account, separate Data Privacy requests must be submitted for both the Account and Contact tables. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note A maximum of 30,000 records per service, made through the Own Platform or by API, can be submitted in any 24-hour period. This limit also applies to the amount of records in a bulk request. ## Right of Access Own provides authorized cloud service administrators with a tool to locate and report which backups contain the data subject and their service region. With the Find capability, users can easily search their entire backup history of data and attachments. This capability allows users to accomplish the following: - Quickly find and retrieve records and files that were removed or archived. - Address any legal, compliance, and audit inquiries relating to the backed-up data. - Allows the admin to Forget or Rectify a record directly from the results page. ## Protect Personal Data in ServiceNow with Privacy Requests Safeguard personal data in ServiceNow from unauthorized access to comply with regulations such as GDPR. Protecting personally identifiable information (PII) helps you maintain customer trust. Implement data privacy measures to efficiently handle data subject requests and mitigate risks associated with data breaches. ### Request to Forget a Single Record Own provides authorized administrators with a tool to locate the data subject’s Record ID and submit it for deletion. Forget Requests in Own only affect records stored in Own, not within the cloud service provider. A forget request must be made in the cloud service provider as well, otherwise the records will still be included in future backups. 1. On the Services page, select the relevant service. 2. In the Data Privacy tab click New Request and select Forget Record. 3. Enter: - The Table name. - The Record ID of the specific record you want to remove. ### Request to Forget Bulk Records A Forget request for a collection of records identified in a CSV file can be made using the Bulk Forget option. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Bulk Forget requests don't support CSV files encoded with UTF-8. Make sure you save your CSV file with a different encoding. 1. In the Data Privacy tab click New Request and select Bulk Forget. If the total requests (Forget and Rectify) for the twenty-four-hour period have been met or exceeded, the Forget Record, Rectify Record and Bulk Forget buttons are deactivated. 2. Confirm your CSV file format. 3. Select the CSV file you want to upload. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note The header columns names are case-sensitive. ### Request to Rectify a Record Own provide authorized administrators with a tool to locate the data subject’s Record ID and edit the Data Subject's table (both are needed to submit a request). 1. In the Data Privacy tab click New Request and select Rectify Record. 2. Enter: - Table - Record ID of the specific record you want rectified. - Field Name - New Value 3. Add a comment if required. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note On completion, the action is permanent and can't be undone. Use the Data Privacy tab to cancel the request. # Data Safety When Running Screen and Autolaunched Flows in System Context Screen flows and autolaunched flows without triggers can expose more data than intended. This potential issue primarily affects Experience Cloud sites accessed by external users. Configure proper user permissions for field-level and record-level security instead of running flows in system context. When system context is necessary, use only the minimum fields and records required. ### Required Editions
View supported editions.
To control what data your users can access, follow these guidelines and suggested workarounds. ## Restrict User Access to Data in Screen Flows Run screen flows in user context whenever possible, because it enforces permissions that restrict user access to data. When you run a screen flow in system context, especially system context without sharing, it doesn’t enforce permissions for users, increasing the chance of unintended data sharing. There are other, safer ways to grant access to users than running a flow in system context. Instead of setting the entire screen flow to run in system context, use the Subflow element to launch a flow that performs actions that require permissions beyond what the running user has. If your screen flow or autolaunched flow must never inherit elevated permissions from a system-context caller, select **User Context–Enforces User Permissions** in the flow version properties. This option guarantees that the flow always runs with the running user's access level regardless of what invokes it, without requiring you to restructure the flow. It's available for screen flows and autolaunched flows on API version 68.0 and later. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example You want to assign a permission set to a user as part of a screen flow that requires permissions the running user doesn’t have. Build an autolaunched flow with no trigger that runs in system context and assigns the permission set to the user. Then, build your screen flow running in user context and add a Subflow element to launch the autolaunched flow. ## Store Specific Fields in Get Records Elements When you override an autolaunched flow (no trigger) or screen flow to run in system context, and use a Get Records element to pass records into a screen component, action, or another flow, specify which fields to store by selecting **Choose fields and let Salesforce do the rest** instead of selecting **Automatically store all fields**. If you pass in the entire record variable or record collection from a Get Records element to a screen component, an action, or another flow, the flow doesn’t know which fields are needed, so it retrieves all the fields the user can access. When you select **Choose fields and let Salesforce do the rest** and specify fields, Salesforce stores only the fields you need, reducing the number of fields that are exposed to users. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example In a screen flow, you get records for a record collection used in a Data Table component. In the associated Get Records element, store only the fields that you want to show in the Data Table component or reference elsewhere on a screen. ## Protect Sensitive Data in Custom Metadata Types and Custom Settings Flows can read public custom metadata types and custom settings regardless of the running user’s permissions. In flows that run on API version 64.0 and later, a screen can show fields from custom metadata type records and custom setting records that a Get Records element retrieves. The screen shows these fields even when the running user doesn’t have access to them. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Don’t store sensitive information in public custom metadata types or custom settings that you retrieve in a screen flow. ## Specify Fields and Records in Flows on Experience Cloud Sites When you run in system context and use a Create Records, Update Records, or Delete Records element in a screen flow on an Experience Cloud site, limit the number of fields and records to only those that you intend the user to edit. - For Create Records elements, for How to set record field values, select **Manually** and specify each field to use when creating the record. - For Update Records elements, for How to Find Records and Set Their Values, select **Specify conditions to identify records, and set fields individually**. Use filter conditions to find the records to update and then specify the fields to update. - For Delete Records elements, for How to Find Records to Delete, select **Specify conditions** and use filter conditions to find the records to delete. If you use a record variable or record collection in a Create Records, Update Records, or Delete Records element, use a Transform element first to filter out fields that you don’t want edited. See [Transform Data in a Flow](https://help.salesforce.com/s/articleView?language=en_US&id=platform.flow_build_logic_transform.htm&type=5). Then, in a Create Records, Update Records, or Delete Records element, select the record variable or record collection that the Transform element generates. ## Considerations for Running Screen Actions Keep these considerations in mind when you use an Action Button component to trigger a screen action or when you want to trigger a screen action automatically based on changes to the input values. - Check the flow run context of an autolaunched flow that’s called by a screen action. The autolaunched flow can run in a different context than your screen flow, potentially exposing more data than you want. Consider keeping the autolaunched flow running in user context. If the autolaunched flow needs to run in system context, use the suggestions in the [Restrict User Access to Data in Screen Flows](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_context_data_safety_system_context.htm&release=264.0.0&type=5), [Store Specific Fields in Get Records Elements](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_context_data_safety_system_context.htm&release=264.0.0&type=5), and [Specify Fields and Records in Flows on Experience Cloud Sites](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_context_data_safety_system_context.htm&release=264.0.0&type=5) sections to modify the flow and keep your data safe. - Use an autolaunched flow called by a screen action only to find data or perform calculations. To create, update, or delete records, use a Create Records, Update Records, or Delete Records element in the screen flow or use a different flow that’s launched by a Subflow element. - Reference a screen action only in the screen element where the screen action is configured. To reference the screen action’s output somewhere else in the flow, run the screen action's autolaunched flow again in a Subflow element and reference the Subflow element’s outputs instead. ## Check Inputs and Outputs of Flows Launched by Subflow Elements Running in System Context Follow these guidelines when you configure a flow launched by a Subflow element that’s running in system context. - Make variables available for input and output only if you plan to use them in the flow that launches the referenced flow. Unused input and output variables can expose users to unnecessary data. - Avoid passing in inputs to a referenced flow that are easy to guess. For example, if you pass in the company email address of a record and the company email addresses follow the pattern firstname.lastname@company.com, it’s easy to guess another record’s email address and have access to that other record. - Make sure a referenced flow includes only output values that are directly used in the flow that launched it. For example, if you need only a collection of contact record birthdays, don’t also return all information about the contacts or the contact's accounts. #### See Also - [Flow Run Context](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_context.htm&release=264.0.0&type=5 "Flows run in user context or system context. For a flow running in user context, the running user’s profile and permission sets determine the object permissions and field-level access of the flow. For a flow that runs in system context, whether it runs with or without sharing determines its data access. Understanding context helps you control what your flows can read and update on behalf of your users.") - [_Salesforce Help_: Securely Share Your Experience Cloud Sites with Guest Users](https://help.salesforce.com/s/articleView?id=platform.networks_secure_community.htm&type=5&language=en_US) - [_Medium Blog for Salesforce Architects_: Building Secure Screen Flows For External User Access](https://medium.com/salesforce-architects/building-secure-screen-flows-for-external-user-access-0d925cecf564) # Data Sources in Agentforce Operations Data sources are tables of structured reference data, such as supplier lists, customer catalogs, or parts databases. Admins import data sources into Agentforce Operations so users can look up and validate that data in workflows and tasks. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

## Adding Data Sources Add data sources to your workspace by using a CSV file or a REST API connection. You can create, edit, and delete data sources from the Admin page. When configuring a data source, grant access to AI agents so they can reference that data during task execution. Learn more in [Manage Data Sources in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_data_sources_manage.htm&release=264.0.0&type=5 "Add and update external data sources in Agentforce Operations."). ## Using Data Sources in Workflows After you add a data source to your workspace, you can add it as a field in your blueprints. When a workflow runs, users see the data source as a searchable table where they can select rows to validate information or share data with other tasks. Learn more in [Use Data Sources in Blueprints and Workflows in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_data_sources_use.htm&release=264.0.0&type=5 "Add data source fields to tasks, and select rows from a data source when completing work in Agentforce Operations."). To learn more, explore these links. - **[Manage Data Sources in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_data_sources_manage.htm&release=264.0.0&type=5)** Add and update external data sources in Agentforce Operations. - **[Use Data Sources in Blueprints and Workflows in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_data_sources_use.htm&release=264.0.0&type=5)** Add data source fields to tasks, and select rows from a data source when completing work in Agentforce Operations. #### See Also - [Task Types in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_tasks_configuring.htm&release=264.0.0&type=5 "Choose the task type that matches the work you want to accomplish. Learn how to create standard tasks, approval tasks, and email notification tasks.") - [AI Agent Limits and Considerations in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agent_limits.htm&release=264.0.0&type=5 "Review AI agent limitations and considerations before assigning a task to an agent.") - [Assign a Task to an AI Agent in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_assign_task_to_ai_agent.htm&release=264.0.0&type=5 "Assign a task to an AI agent in Agentforce Operations and provide the inputs needed for reliable completion.") # Data Table Screen Input Component Display a collection of records in a table so that the user running the flow can select records. The flow stores the selected records as flow variables that the rest of the flow can act on. ### Required Editions
View supported editions.
## Configure the Data Table Name
Field Description
API Name

The API name of the component.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Label If you select Use Label as the table title, the title text that appears preceding the component.
Use Label as the table title Indicates whether to show the label value preceding the table when you run the flow.
## Configure the Data Table Source
Field Description
Source Collection

For API version 65 and later, a collection of records or a collection of Apex-defined data types to populate the table.

For API version 64 and earlier, a collection of records that are used to populate the table.

Show search bar Enables users to search and filter their record results.
## Configure the Data Table Rows
Field Description
Row Selection Mode

Indicates how many rows the user can select in the table. You can set the value to:

Multiple
The user can select any number of rows between the Minimum Row Selection and Maximum Row Selection values.
Single
The user can select up to one row.
View only
The user can’t select any rows.
Minimum Row Selection Specifies the minimum number of rows that the user selects.
Maximum Row Selection Specifies the maximum number of rows that the user can select.
Default Selection Collection that specifies which records to preselect in the table.
Unique Identifier

Required. The field used to identify each record. The field requires a unique value for each record, such as an ID or API name.

To ensure your data table component works properly, provide a unique identifier. If you select a field that can have duplicate values, it can cause incorrect and unpredictable selection behavior, such as selecting multiple unintended rows.

## Configure the Data Table Columns To add the first column to the table, configure these fields. To add subsequent columns, click **Add column**. Drag the columns to reorder them.
Field Description
Source Field

Field from the Source Collection object to show in the column.

Fields with the anyType data type such as the NewValue field of the AccountHistory object are unsupported.

Display Options

Available only when the Source Field is a lookup field.

  • Show record name: Optional. Specifies whether to show the name of the related record instead of its Salesforce ID at run time. The option is selected by default.
  • Link to record: Optional. Specifies whether to make the name of the related record a hyperlink that opens the related record in a new tab. When you select Show record name, Link to record is selected by default. To make a record a hyperlink, select Show record name and Link to record.

If you select Show record name and deselect Link to record, the related record name appears as plain text at run time. Deselecting both Show related record and Link to record shows the Salesforce ID at run time.

Custom column label Indicates whether to display the column label value you specify as the column header.
Label If you select Custom column label, enter the text to show as the column header. Screen readers also read this text.
Default Text Overflow Mode

Specifies how text that is longer than the width of the column appears. You can set the value to:

Wrap Text
The screen shows the text on multiple lines.
Clip Text
The screen truncates the text to fit.
Let Users Modify Data Table

Allows users to modify fields in the Data Table at run time.

Sort column values
At flow runtime, users can sort data by clicking the column header.
Edit column values
At flow run time, users can update these supported record and Apex field types.
  • Boolean
  • Number
  • Currency
  • Phone
  • Email
  • Percent
  • Text
  • Text Area
  • String
  • Integer
  • Long
  • Double
  • Decimal
  • Id

When editing a field, users click Confirm to apply changes or Cancel to revert to the last confirmed value. If multiple rows are selected, users can update all selected items.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If you use a field that has a namespace, add the namespace to the beginning of the source field. For example, if your field's namespace is Acme, enter Acme\_\_FieldName\_\_c. ## Set the Component Visibility Specify the logic that determines when the flow displays the component.
Option Description
When to Display Component

Configure when the component is displayed by using conditional logic.

You can set the components to:

Always
Always display the component.
When all conditions are met (AND)
Display the component when all of the conditions that you define are met. Define at least one condition.
When any condition is met (OR)
Display the component when at least one of the conditions that you define is met. Define at least one condition.
When custom conditional logic is met
Display the component when the condition logic that you define is met. Define at least one condition and specify condition logic.
## Store the Data Table Component’s Values in the Flow The flow stores values automatically. If you store values manually, store the attribute’s output value in a variable. To store values manually, select **Manually assign variables (advanced)**. You can store all attributes in flow variables, but we recommend storing these attributes. | Field | Description | | --- | --- | | **First Selected Row** | First record in the table selected by the flow user. If a user selects two records, this record is the first selected record from top to bottom. | | **Selected Rows** | The list of records that the user selects. The records appear in order of their position in the table from top to bottom. | ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip By default, screen components that run on Lightning runtime version 58 and prior have no memory. If a user enters a value, and then does one of the following, the value is lost. - Navigates to another screen and returns to the component’s screen. - Pauses the flow then resumes it. - Navigates to the next screen and triggers an input validation error. Setting the attribute enables a flow to remember the value. The flow stores the value automatically. If you store values manually, store the attribute’s output value in a variable. ## Validate Input Provide a formula that evaluates whether what the user entered is valid and the error message to display if invalid.
Option Description
Error Message Specify the error message that appears below the component if the user enters an invalid value.
Formula

Provide a formula expression that returns a Boolean value.

If the formula expression evaluates to true, the input is valid. If the formula expression evaluates to false, the error message appears below the component.

If the user leaves the field blank and the field isn’t required, the flow doesn’t perform the validation. If the user leaves the field blank and the field is required, the flow shows the default error message and not your custom error message.

## Specify the Behavior of Values on Revisited Screens Specify what this component does when a user enters a value, navigates to a previous screen, and then returns to the screen with this component.
Option Description
Use values from when the user last visited this screen The component retains the values that the user specified and doesn’t update the values to reflect changes made on previous screens.
Refresh inputs to incorporate changes elsewhere in the flow

The component updates the user-specified values to reflect changes made on previous screens.

If you pause and then resume the flow, the flow retains user-specified values only in Checkbox, Checkbox Group, Currency, Long Text Area, Multi-Select Picklist, Number, Password, Picklist, Radio Buttons, and Text components.

## Considerations - The Data Table flow screen component isn’t compatible with mobile devices. - If you use the Get Records flow element to retrieve the records to show in the Data Table, select **Choose fields and let Salesforce do the rest** for the best performance. - The maximum height of a Data Table is 400 pixels. - If you choose to wrap the text in a Data Table, make sure that the text doesn’t overflow when you test your flow. Wrapped text can overflow when a Data Table is compressed on a screen, for example, when it’s in one of multiple columns. - A Data Table can show up to 1,500 records. However, your search is performed on the entire dataset. - You can select up to 200 records in a Data Table. - If you apply a filter after loading your initial records, only the new results are shown. The initial records are no longer included in the display. - If a Data Table includes a formula field and records or updates to records that haven’t been committed to the database, the table doesn’t evaluate the formula properly. For records that don’t exist in the database, update the value of the formula field with an assignment using a static value or Formula resource. Doing so doesn’t affect any subsequent Create or Update operations in the flow. For existing records that have been updated, use an invocable action to reevaluate the formula, or use the IN operator to refresh the records and formula field values. - You can’t search the Time field. - The Subject field on Task and Event records isn't supported. - Dates and times are displayed in the International Components for Unicode (ICU) date and time formats. - In multi-currency orgs, the Data Table component doesn’t support records that are in a different currency from the user’s personal currency. - To display multilingual column header labels in the Data Table component, use the `$Label` global variable to specify custom labels. For more information about creating and translating custom labels, see [Custom Labels](https://help.salesforce.com/s/articleView?id=platform.cl_about.htm&type=5&language=en_US). - Data Table selections at runtime are subject to the client payload data limit described in [Lightning Aura Components Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/controllers_server_actions_call.htm). If you exceed this limit, the flow returns a generic error message. For example, if you include file data that exceeds the limit, the flow generates an error. We recommend avoiding fields like the VersionData field of ContentVersion records in your source collection. - If you have a flow open that has a Data Table component, and you update your user settings time zone on another page, refresh the flow page to show the updated date and time fields in the Data Table component. - When you set the row selection, be careful if you want to use the row selection of another Data Table component. Salesforce doesn’t support the use of row selections that have duplicate record variables without record IDs. - If you set the row-selection mode to single and make it required, or if you set the minimum and maximum row selection to 1, Salesforce uses a radio button at run time. Otherwise, we use checkboxes at run time. - If you package a flow that has a Data Table component, the fields used in the Data Table aren't automatically added to the package. If you use a field in the Data Table component, you must manually add it to the package. - Starting in API version 65.0, field name changes are automatically updated in Data Table components. For flows running in API versions before 65.0, if you rename a field in Object Manager that’s mapped to a column in a Data Table, Salesforce doesn’t update the column name. To see the new name in the Data Table, remove the column and then add it again. - Starting in API version 65.0, you can no longer delete a field referenced in a Data Table component. For flows running in an API version before 65.0, you can delete a custom field that a Data Table component uses. So, you must also remove the field from the Data Table component. - Starting in API Version 65.0, namespaces are automatically updated in Data Table components. For flows running in an API version before 65.0, if a Data Table component uses a custom object or custom field in an org without a namespace, and then later add a namespace to the org, you must also add that namespace to the associated column fields in the Data Table manually. - With column sorting, sorting doesn't impact the first selected row and the selected rows. - When you select **Show record name**, the sort and search options are unavailable. - Only when the user has access to the related record object, selecting **Show record name** shows the related record name at run time. #### See Also - [Use Multilingual Labels in Data Table Column Headers](https://help.salesforce.com/s/articleView?id=platform.flow_translate_use_multilingual_labels_in_data_table_column_headers.htm&release=264.0.0&type=5 "Add your translated column headers to the Data Table component using custom labels.") - [Data Safety When Running Screen and Autolaunched Flows in System Context](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_context_data_safety_system_context.htm&release=264.0.0&type=5 "Screen flows and autolaunched flows without triggers can expose more data than intended. This potential issue primarily affects Experience Cloud sites accessed by external users. Configure proper user permissions for field-level and record-level security instead of running flows in system context. When system context is necessary, use only the minimum fields and records required.") # Data Translation When data translation is enabled, the data stored in certain objects and fields are available for translation. You can also enable data translation for custom text and URL fields on objects. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, and Developer Editions
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Data translation requires API version 48.0 or later. - **[Enable Data Translation](https://help.salesforce.com/s/articleView?id=platform.data_translation_enable.htm&release=264.0.0&type=5)** Allow translation of data stored in certain objects and fields. - **[Enable Data Translation for Custom Fields](https://help.salesforce.com/s/articleView?id=platform.data_translation_enable_custom_fields.htm&release=264.0.0&type=5)** Allow translation of data stored in custom fields on certain objects and fields. You can enable data translation on custom fields with a type of Text, Text Area, Text Area (Long), Text Area (Rich), and URL. # Database.com User Licenses User licenses designed for users who need to administer Database.com and who need Database.com access to data stored in Database.com. ### Required Editions
Available in: Salesforce Classic
Available in: Database.com Edition
User License Description Default Number of Available Licenses
Database.com Admin Designed for users who need to administer Database.com, or make changes to Database.com schemas or other metadata using the point-and-click tools in the Database.com Console. Database.com Edition: 3
Database.com User Designed for users who need Database.com access to data stored in Database.com.

Database.com Edition: 3

Enterprise, Unlimited, and Database.com Edition: 0

Contact Database.com to obtain Database.com User Licenses

Database.com Light User Designed for users who need only Database.com access to data, need to belong to Database.com groups (but no other groups), and don't need to belong to roles or queues. Access to data is determined by organization-wide sharing defaults.

Database.com Edition: 0

Enterprise, Unlimited, and Database.com Edition: 0

Contact Database.com to obtain Database.com Light User Licenses

#### See Also - [User Licenses](https://help.salesforce.com/s/articleView?id=platform.users_understanding_license_types.htm&release=264.0.0&type=5 "Every user requires a user license to access Salesforce. Depending on your product, edition, and add-ons, there are various types of user licenses available. See how user licenses work to ensure you’re allocating them appropriately and effectively.") # Datadog Connector Connect to an external Datadog account. Perform tasks like managing user accounts or assigning roles. Use Datadog as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections To connect to a system, whether it’s a data source or a data target, you must create a connection with that system’s required credentials. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. The credentials are hidden after you create the connection. You can reuse connections.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

DD-APPLICATION-KEY

Enter the application key to authenticate the requests.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Datadog actions are available in Flow Builder. - Add A User To A Role - Create A User - Disable A User - List All Users - Remove A User From A Role - Update A User ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Dataverse Tables Included and Excluded in Dynamics Backups When planning backups for Dynamics, review the Dataverse tables you can include and exclude. ## Included Data - Standard & Custom Dataverse tables, with the following exclusions: - Tables unsupported by the API. See table below. - Virtual tables - System tables - All fields in a given table, with the exceptions of: - Calculated/Roll up fields - Formula fields - Address composite fields in Account and Contact - Logical fields. Their data source is located in another table. - Chatter Feeds & Attachments - Files (Attachments in annotations, Email attachments, and file/image fields) - Activities - Knowledge Base Articles ## Configurable Exclusions Own admins can configure the backup service to exclude non-business-critical tables to reduce overall backup time. By default, the following tables are excluded but can be re-included as needed: - audits - plugintracelogs - posts - postcomments - principalobjectaccesset (sharing info) ## Tables Unsupported by API
activitymonitorsmsdyn_propertytemplateassociation
aipluginmsdyn_relationshipinsightsunifiedconfig
aipluginexternalschemamsdyn_sequences
aipluginexternalschemapropertymsdyn_sequencetargets
aiplugininstancemsdyn_solutioncomponentsummaries
AppConfigInstancemsdyn_solutioncomponentsummary
AppConfigMastermsdyn_solutionhealthrulearguments
AppModuleMetadatamsdyn_teamschatsuggestion
AppModuleMetadataDependencymsdyn_uniquenumber
AppModuleMetadataOperationLogmsdyncrm_cdnconfigurations
archivecleanupinfosmsdyncrm_files
Attributemsdyncrm_setupdomains
attributeimageconfigsmsdynmkt_richfragments
attributepicklistvaluesmsdynmkt_textfragments
calendarrulemsgraphresourcetosubscription
CardTypeNavigationSetting
cascadegrantrevokeaccessrecordstrackersNotification
cascadegrantrevokeaccessversiontrackersOfficeGraphDocument
ChannelAccessProfileOfflineCommandDefinition
ChannelAccessProfileRuleopportunitysalesprocesses
ChannelAccessProfileRuleItemOptionSet
Chatsorganizationdatasyncstates
ChildIncidentCountorganizationdatasyncsubscriptionentity
Commitmentorganizationdatasyncsubscriptions
ComplexControlorganizationstatistic
copilotexamplequestionsorganizationui
CustomControlorginsightsmetric
CustomControlDefaultConfigorginsightsnotification
customcontroldefaultconfigspluginassemblies
customcontrolsplugintracelog
datalakeworkspacesplugintype
DataPerformanceplugintypestatistic
dataprocessingconfigurationsPostRegarding
desktopflowbinariesPostRole
emailhashprincipalentitybusinessunitmap
Entityprincipalentitymaps
EntityDataSourcePrivilegeObjectTypeCodes
entityimageconfigsprivilegesremovalsettings
entityindexesprocesssession
EntityKeyprocessstage
EntityRelationshipprocessstageparameter
ExpanderEventprocesstrigger
exportsolutionuploadsQueueItemCount
ExternalPartyQueueMemberCount
ExternalPartyItemrecurringappointmentmasters
featurecontrolsettingsRelationship
flowmachinenetworksRelationshipAttribute
flowsessionsReplicationBacklog
goalrollupqueriesRibbonMetadataToProcess
ImageDescriptorroleeditorlayouts
importRuntimeDependency
importdatasavedquery
importdataentitymappingsdkmessage
importfilesdkmessagefilter
importjobSdkMessagePair
importlogsdkmessageprocessingstep
importmapsdkmessageprocessingstepimage
indexattributessdkmessageprocessingstepsecureconfig
interactionforemailsSdkMessageRequest
invaliddependenciesSdkMessageRequestField
knowledgearticlecategoriesSdkMessageResponse
LanguageProvisioningStateSdkMessageResponseField
LookUpMappingsearchtelemetries
mailmergetemplatessharedlinksettings
ManagedPropertySimilarityRule
maskingrulesSocialActivity
mobileofflineprofileitemassociationssolutionhistories
mobileofflineprofileitemfiltersstagedentities
msdyn_bookingchangestagesolutionuploads
msdyn_casesuggestionsSubscription
msdyn_databaseversionSubscriptionClients
msdyn_entityrefreshhistoriesSubscriptionManuallyTrackedObject
msdyn_fieldservicesystemjobSubscriptionStatisticsOffline
msdyn_forecastinstanceSubscriptionStatisticsOutlook
msdyn_forecastrecurrenceSubscriptionSyncEntryOffline
msdyn_knowledgearticlesuggestionsSubscriptionSyncEntryOutlook
msdyn_macrosessionSubscriptionSyncInfo
msdyn_msteamssettingSubscriptionTrackingDeletedObject
msdyn_msteamssettingsv2supportusertables
msdyn_nonrelationaldsSystemApplicationMetadata
msdyn_nonrelationaldsSystemUserAuthorizationChangeTracker
msdyn_notesanalysisconfigSystemUserManagerMap
msdyn_notificationfieldSystemUserPrincipals
msdyn_notificationtemplatesystemusersyncmappingprofilescollection
msdyn_notificationtemplate_notificationfieldTeamSyncAttributeMappingProfiles
msdyn_odatav4dsTimeStampDateMapping
msdyn_omnichannelqueuesTraceAssociation
msdyn_opportunitymodelconfigtraceassociations
msdyn_pmcalendarversionstracelogs
msdyn_pmprocessextendedmetadataversionsTraceRegarding
msdyn_postconfigtransformationparametermapping
msdyn_postruleconfigtranslationprocess
msdyn_predictivemodelscoresUnresolvedAddress
msdyn_predictivescoresUserApplicationMetadata
msdyn_predictworkhourdurationsettinguserentityuisettingsset
msdyn_productivityactioninputparameteruserqueries
msdyn_productivityactionoutputparameteruserqueryvisualizations
msdyn_productivitymacroactiontemplatevirtualresourcegroupresource
msdyn_productivitymacroconnectorvirtualresourcegroupresources
msdyn_productivitymacrosolutionconfigurationWebResource
msdyn_productivityparameterdefinitionworkflowbinaries
msdyn_propertyworkflowlog
msdyn_propertyassetassociationWorkflowWaitSubscription
msdyn_propertylog 
# DATE Returns a date value from the year, month, and day values you enter. Salesforce displays an error on the detail page if the value of the DATE function in a formula field is an invalid date, such as February 29 in a non-leap year. ## Use `DATE(year,month,day)` and replace year with a four-digit year, month with a two-digit month, and day with a two-digit day. ![Formula Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Formula Example `DATE(2005, 01, 02)` creates a date field of January 2, 2005. # Date & Time Screen Input Component Let users enter date and time values from a flow screen, such as to request an appointment. ### Required Editions
View supported editions.
## Configure the Date & Time Component
Attribute Description
API Name

The API name of the component.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Default Value Pre-populated value for the component. If the associated screen isn’t run or the conditions for component visibility aren’t met, the stored value of the component is null.
Disabled

If set to true, the user can’t modify the value. The default value is false.

This attribute accepts a resource with a Boolean value.

Label The text that appears with the screen component that tells the running user how to use it.
Provide Help Give your users more context with this screen component. The text you enter is available in an info bubble next to the component.
Read Only

If set to true, the user can’t modify the value, but the user can copy it. The default value is false.

This attribute accepts a resource with a Boolean value.

Require Requires users to enter a value before they can move to the next screen.
## Set the Component Visibility Specify the logic that determines when the flow displays the component.
Option Description
When to Display Component

Configure when the component is displayed by using conditional logic.

You can set the components to:

Always
Always display the component.
When all conditions are met (AND)
Display the component when all of the conditions that you define are met. Define at least one condition.
When any condition is met (OR)
Display the component when at least one of the conditions that you define is met. Define at least one condition.
When custom conditional logic is met
Display the component when the condition logic that you define is met. Define at least one condition and specify condition logic.
## Validate Input Provide a formula that evaluates whether what the user entered is valid and the error message to display if invalid.
Option Description
Error Message Specify the error message that appears below the component if the user enters an invalid value.
Formula

Provide a formula expression that returns a Boolean value.

If the formula expression evaluates to true, the input is valid. If the formula expression evaluates to false, the error message appears below the component.

If the user leaves the field blank and the field is required, the flow shows the default error message and not your custom error message.

## Specify the Behavior of Values on Revisited Screens Specify what this component does when a user enters a value, navigates to a previous screen, and then returns to the screen with this component.
Option Description
Use values from when the user last visited this screen The component retains the values that the user specified and doesn’t update the values to reflect changes made on previous screens.
Refresh inputs to incorporate changes elsewhere in the flow

The component updates the user-specified values to reflect changes made on previous screens.

If you pause and then resume the flow, the flow retains user-specified values only in Checkbox, Checkbox Group, Currency, Long Text Area, Multi-Select Picklist, Number, Password, Picklist, Radio Buttons, and Text components.

#### See Also - [Standard Flow Screen Components](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp.htm&release=264.0.0&type=5 "Salesforce provides several standard screen components that extend the types of input fields available in screens.") # Date Screen Input Component Give the user running the flow a field to enter date values from a flow screen. ### Required Editions
View supported editions.
## Configure the Data Component
Attribute Description
API Name

The API name of the component.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Default Value Pre-populated value for the component. If the associated screen isn’t run or the conditions for component visibility aren’t met, the stored value of the component is null.
Disabled

If set to true, the user can’t modify the value. The default value is false.

This attribute accepts a resource with a Boolean value.

Label The text that appears with the screen component that tells the running user how to use it.
Provide Help Give your users more context with this screen component. The text you enter is available in an info bubble next to the component.
Read Only

If set to true, the user can’t modify the value, but the user can copy it. The default value is false.

This attribute accepts a resource with a Boolean value.

Require Requires users to enter a value before they can move to the next screen.
## Set the Component Visibility Specify the logic that determines when the flow displays the component.
Option Description
When to Display Component

Configure when the component is displayed by using conditional logic.

You can set the components to:

Always
Always display the component.
When all conditions are met (AND)
Display the component when all of the conditions that you define are met. Define at least one condition.
When any condition is met (OR)
Display the component when at least one of the conditions that you define is met. Define at least one condition.
When custom conditional logic is met
Display the component when the condition logic that you define is met. Define at least one condition and specify condition logic.
## Validate Input Provide a formula that evaluates whether what the user entered is valid and the error message to display if invalid.
Option Description
Error Message Specify the error message that appears below the component if the user enters an invalid value.
Formula

Provide a formula expression that returns a Boolean value.

If the formula expression evaluates to true, the input is valid. If the formula expression evaluates to false, the error message appears below the component.

If the user leaves the field blank and the field isn’t required, the flow doesn’t perform the validation. If the user leaves the field blank and the field is required, the flow shows the default error message and not your custom error message.

## Specify the Behavior of Values on Revisited Screens Specify what this component does when a user enters a value, navigates to a previous screen, and then returns to the screen with this component.
Option Description
Use values from when the user last visited this screen The component retains the values that the user specified and doesn’t update the values to reflect changes made on previous screens.
Refresh inputs to incorporate changes elsewhere in the flow

The component updates the user-specified values to reflect changes made on previous screens.

If you pause and then resume the flow, the flow retains user-specified values only in Checkbox, Checkbox Group, Currency, Long Text Area, Multi-Select Picklist, Number, Password, Picklist, Radio Buttons, and Text components.

#### See Also - [Standard Flow Screen Components](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp.htm&release=264.0.0&type=5 "Salesforce provides several standard screen components that extend the types of input fields available in screens.") # DATETIMEVALUE Returns a year, month, day, and GMT time value. ## Use `DATETIMEVALUE(expression)` and replace expression with a date/time or text value, merge field, or expression. ## Tips - DATETIMEVALUE is always calculated using GMT time zone and can’t be changed. - When entering a specific date, surround the date with quotes and use the following format: YYYY-MM-DD, that is, a four-digit year, two-digit month, and two-digit day. - If the expression doesn't match valid date ranges, such as the MM isn't between 01 and 12, the formula field displays #ERROR! ![Closed Date Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Closed Date Example `DATETIMEVALUE(ClosedDate)` displays a date field based on the value of the Date/Time Closed field. ![Date Value Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Date Value Example `DATETIMEVALUE("2005-11-15 17:00:00")` returns November 15, 2005 5:00 PM GMT as a date and time value. # DATEVALUE Returns a date value for a date/time or text expression. As of Winter ’20, the DATEVALUE() formula option provides more accurate daylight savings time values without workarounds. The option avoids an existing one-hour discrepancy when processing times between 11:00 PM and 1:00 AM. From Setup, in the Quick Find box, enter Company Information. Under Locale Settings, select **Improve DATEVALUE() accuracy for DST**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important If your org's custom formulas include workarounds that adjust date values between 11:00 PM and 1:00 AM, remove them before enabling this setting. If you don't remove the workarounds, your data could be inaccurate. Enabling the preference can also increase the compiled size of existing formulas with the DATEVALUE() function. ## Use `DATEVALUE(expression)` and replace expression with a date/time or text value, merge field, or expression. ## Tips - If the field referenced in the function isn't a valid text or date/time field, the formula field displays #ERROR! - When entering a date, surround the date with quotes and use this format: YYYY-MM-DD, that is, a four-digit year, two-digit month, and two-digit day. - If the expression doesn't match valid date ranges, such as the MM isn't between 01 and 12, the formula field displays #ERROR! - Dates and times are always calculated using the user’s time zone, except in list views, reports, and related lists. These items calculate dates and times using Coordinated Universal Time. ![Closed Date Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Closed Date Example `DATEVALUE(ClosedDate)` displays a date field based on the value of the Date/Time Closed field. ![Date Value Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Date Value Example `DATEVALUE("2005-11-15")` returns November 15, 2005 as a date value. # DAY Returns a day of the month in the form of a number from 1 through 31. ## Use `DAY(date)` and replace date with a date field or value such as TODAY(). ![Formula Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Formula Example `DAY(Code_Freeze__c)` returns the day in your custom code freeze date. Note this function doesn't work on date/time fields. # Deactivate Actions Deactivate actions for APIs if you no longer need the actions. ### Required Editions
Available in: Lightning Experience
Available in: Developer, Enterprise, Performance, and Unlimited Editions
User Permissions Needed
To access API Catalog:

Available to Salesforce admins by default.

For other users, View Setup

To deactivate actions: Customize Application
You can deactivate invocable actions by using API Catalog. 1. If there are agent actions associated with the invocable actions for Apex REST, Apex AuraEnabled, and Heroku APIs, remove the associated agent actions. See [Deactivate Agent Actions](https://help.salesforce.com/s/articleView?id=platform.api_catalog_deactivate_actions.htm&release=264.0.0&type=5). 2. From Setup, in the Quick Find box, enter API Catalog, and then select API Catalog. 3. Select the API or API version that you want to deactivate actions for. 4. Click **Activate Actions**. 5. Select the **Operations** tab. 6. Deselect the operations for actions that you want to deactivate. 7. Click **Update**. ## Deactivate Agent Actions To deactivate agent actions that you activated through MuleSoft API annotations, remove the API or API version from API Catalog. See [Remove APIs from API Catalog](https://help.salesforce.com/s/articleView?id=platform.api_catalog_remove_apis.htm&release=264.0.0&type=5 "You can remove entire APIs from API Catalog for all supported sources. You can also remove specific MuleSoft API versions. Keep your catalog current to use the latest APIs, including their associated actions."). To deactivate agent actions for Apex, AuraEnabled, and Heroku API actions that you activated through API annotations, remove the actions from agents. See [Agent Actions](https://help.salesforce.com/s/articleView?id=ai.copilot_actions.htm&type=5&language=en_US). # Deactivate Session-Based Permission Set Action Deactivate a session-based permission set for the running user. ### Required Editions
View supported editions.
In Flow Builder, add an Action element to your flow. In the Action field, enter Permission Set, and select **Deactivate Session-Based Permission Set**. ## Set Input Values Use values from earlier in the flow to identify the permission set to deactivate.
Field Description
Permission Set Name

The developer name of the permission set.

This parameter accepts single-value resources of any type. That value is treated as text.

Permission Set Namespace

The permission set’s namespace.

This parameter accepts single-value resources of any type. That value is treated as text.

#### See Also - [Activate Session-Based Permission Set Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_activate_sessionpermset.htm&release=264.0.0&type=5 "Activate a session-based permission set for the running user.") - [Create a Flow That Can Activate or Deactivate a Session-Based Permission Set](https://help.salesforce.com/s/articleView?id=platform.perm_sets_session_activate_flow.htm&language=en_US) - [Plan for Success with Flow Builder Best Practices](https://help.salesforce.com/s/articleView?id=platform.flow_prep_bestpractices.htm&release=264.0.0&type=5 "Before you build and distribute flows, plan your approach. To minimize errors and rework, follow these Flow Builder guidelines.") - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") # Deactivate Users To deactivate a user’s account so they can no longer log into Salesforce, complete these steps. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To deactivate users: Manage Internal Users
You can deactivate users, but you can’t delete them outright. Deleting a user can result in orphaned records and the loss of critical business information. Deactivating a user prevents access but preserves all historical activity and records. 1. From Setup, in the Quick Find box, enter Users, then select **Users**. 2. Click **Edit** next to a user’s name. 3. Deselect the Active checkbox, and then click **Save**. Watch a Demo: [![Watch Video Demo](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/resources-global/_corporate/images/play_btn.png) Removing Users’ Access to Salesforce (Salesforce Classic—English only)](https://salesforce.vidyard.com/watch/a2dlF9wVpM3oKcDh4XaD3A) Keep in mind that after deactivation: - The user remains in the list of users, but is shown as not active. - The user still appears as a member of public groups they’ve been a part of and any default accounts and sales teams. - Deactivating the user doesn’t affect the records they owned until ownership is transferred to others. - All the user’s overrides remain, but they’re frozen. - In Chatter, the user’s profile remains, but it shows they’re inactive. However, the user remains the owner of any Chatter group they owned until an admin reassigns ownership. You’re prevented from deactivating a user if the user is the: - default owner of leads - default or automated case owner - default lead creator or owner - default workflow user - recipient of a workflow email alert - a user selected in a custom hierarchy field - a customer portal administrator. In these cases you can prevent the user from accessing their accounts by freezing them. Freezing a user is done from the user’s User Record. Later, after updating ownership and other processes, you can deactivate the user’s account. Finally, if the deactivated user was an approver, you must remove the user from all approval processes, or reassign their approval responsibilities to other users. #### See Also - [Considerations for Deactivating Users](https://help.salesforce.com/s/articleView?id=platform.users_deactivate_considerations.htm&release=264.0.0&type=5 "Note these considerations when deactivating users.") - [Freeze or Unfreeze User Accounts](https://help.salesforce.com/s/articleView?id=platform.users_freeze.htm&release=264.0.0&type=5 "In some cases, you can’t immediately deactivate an account, such as when a user is selected in a custom hierarchy field. To prevent users from logging in to your organization while you perform the steps to deactivate them, you can freeze user accounts.") - [Mass Transfer Records](https://help.salesforce.com/s/articleView?id=platform.admin_transfer.htm&release=264.0.0&type=5 "Use the Mass Transfer tool to transfer multiple accounts, leads, service contracts, and custom objects from one user to another.") # Deactivate, Reactivate, or Remove a Single Picklist Value Deactivate, reactivate, or remove a value from a restricted or unrestricted custom picklist. If it’s a global picklist value set, these actions simultaneously update all custom picklists that inherit its value set. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To create or change custom fields: Customize Application
Only a Salesforce admin can modify the values of a restricted picklist. Users can’t add unapproved values, even through the API. 1. Go to the picklist you want to modify. - For a picklist on an object, go to the fields section of the object. - For a global picklist, from **Setup**, in the Quick Find box, enter picklist, then select **Picklist Value Sets**. 2. Go to the picklist’s detail page by clicking the picklist’s name. 3. In the Values section, modify the picklist value. These actions simultaneously update all custom picklists that inherit its value set. - To deactivate a value, which removes it from the picklist but keeps it on existing records, click **Deactivate** next to the value’s name. The value moves to the Inactive Values section. If you need the value again later, click **Activate** next to its name. - To remove a value from the picklist and all records that use it, click **Del** next to the value’s name, and select **Replace value on records with blank value**. Then save the changes. - To remove a value from a global picklist and any custom picklists that share its value set, click **Del** next to the value’s name, and then click **OK**. If any custom picklists use this global picklist value set, you’re prompted to replace the value with a blank value or an existing, active value. If no custom picklists use the value set, the value is deleted from the global picklist. Keep these considerations in mind when you deactivate, reactivate, or delete a picklist value. - The unrestricted picklist values for the `Task.Subject` and `Event.Subject` fields can’t be deactivated. The picklist values are deleted instead of deactivated. - If a global picklist value is used in historical trending, it’s deactivated but not deleted. - Deleting a value in a global picklist value set or on non-global, restricted picklists goes to the background jobs queue. When the job completes, your picklist is updated and you’re notified by email. - Changes to picklist values are logged in Setup Audit Trail. To view the audit history, from Setup, in the Quick Find box, enter View Setup Audit Trail, then select **View Setup Audit Trail**. - Using the option to replace a picklist value while deleting the current value doesn’t trigger workflow rules. # Debug a Flow Approval Process and Keep Data Changes Test and troubleshoot your flow approval process with database updates. Set a start point to skip earlier stages, an end point to stop before later stages, or both to isolate a middle segment. You can also set mock outputs for steps. A step that uses mock output doesn't run its referenced flow or make changes to the Salesforce database. You're the assigned user for all approval steps without defined mock output that meet their entry conditions. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To debug a flow approval process Manage Flow
Add the Orchestration Work Guide component to the record page layouts that are used by the records referenced by the flow approval process’s interactive steps. See [Make Assigned Approval Work Items Accessible on a Record Page](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_build_add_work_guide.htm&release=264.0.0&type=5 "Add the Orchestration Work Guide component to the record page layouts for record types referenced by approval steps. Configure the component so that assigned users can access and complete their approval work items.") or [Make Assigned Approval Work Items Accessible on an Experience Cloud Site](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_build_add_work_guide_external.htm&release=264.0.0&type=5 "Add the Orchestration Work Guide component to the related record page in your Aura and LWR sites for record types referenced by approval steps."). To test completing approval work items using email, make sure that approval work item assignment emails are sent to approvers and that approvers can complete approval work items via email. See [Manage Approval Email Notifications](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_manage_control_email_notifications.htm&release=264.0.0&type=5 "By default, a flow approval process sends email notifications to assigned approvers, their delegates, and approval submitters. Use approval email settings to manage emails sent to these groups.") and [Control Email Completion of Flow Approval Processes Approval Work Items](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_manage_control_email_responses_to_approval_work_items.htm&release=264.0.0&type=5 "By default, assigned approvers and their delegates receive email notifications when an approval work item is created or reassigned. When approvers and their delegates receive email notifications, you can make it possible for them to complete approval work items associated with Flow Approval Processes approval submissions by replying to their email notifications."). If the Don’t send approver notifications advanced setting is selected for the flow approval process you’re debugging, you can’t complete approval work items via email. See [Control Approver Emails for a Flow Approval Process](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_manage_control_approver_emails_for_specific_approval_orchestration.htm&release=264.0.0&type=5 "To stop sending email notifications to approvers and their delegates for approval submissions based on a specific flow approval process, use the advanced setting Don’t send approver notifications."). ## Open the Flow Approval Process from the Approvals App Open the Flow Approval Processes list view from the Approvals Lightning app. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter approvals, and then select **Approvals**. The Approvals app opens. 3. In the Approvals app, click **Manage All Flow Approval Processes**. The Flow Approval Processes list view opens. 4. Click the label of the flow approval process, and then click **View in Flow Builder**. The flow approval process opens in Flow Builder. ## Open the Flow Approval Process from Setup In Setup, flow approval processes are shown on the Flows list view. 1. Click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png), and then select **Setup**. 2. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 3. Click the label of the flow approval process. The flow approval process opens in Flow Builder. ## Manage Start Points and End Points Set a start point to skip earlier stages, an end point to stop before later stages, or both to isolate a middle segment. Set start points and end points only on Stage elements. To test a single stage, set it as both the start point and the end point. Steps in skipped stages don’t produce output values, even when they have configured test output, so configure test input for steps that rely on their output. Use multiple end points when testing decision paths. These settings don't persist when you save the flow approval process. Saving a flow approval process also saves mock input. Clicking **Reset Debug Settings** doesn't affect mock input. 1. (Optional) Set a start point and configure test input for the steps that rely on output from stages that didn’t run. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Select as Start Point**. The ![start point icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_stage_start_point.png) appears on the stage element. 4. Select a step that relies on output from a stage that didn’t run. 5. In the Step panel’s Configure Test Input tab, enter the necessary values for the step. When you enter a test value, its toggle is set to Included. 6. To configure test input for more steps that rely on output from stages that didn't run, repeat steps 1d and 1e. 2. (Optional) Remove a start point and ignore test input for steps. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Selected as Start Point**. 4. Select a step with configured test input. 5. In the Step panel's Configure Test Input tab, set the toggle to **Not Included** for the input values you want to ignore. 6. To ignore configured test input values for more steps, repeat steps 2d and 2e. 3. (Optional) Set an end point. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Select as End Point**. The ![end point icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_stage_end_point.png) appears on the stage element. 4. (Optional) Remove an end point. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Selected as End Point**. ## Configure the Triggering Record for a Record-Triggered Flow Approval Process To debug a record-triggered flow approval process, set the triggering record. This setting persists for the current Flow Builder session. Trigger a record-triggered orchestration in one of three ways: only when a record is created, only when a record is changed, or when a record is either created or updated. Flow Builder preserves the selected triggering record value and setup option when you switch between Edit mode and Debug mode. Refreshing your browser or closing Flow Builder clears these selections. 1. On the Button Bar, click **Debug**. The Debug panel opens with the Setup tab selected. 2. For a flow approval process that’s triggered when a record is either created or updated, select the type of trigger to debug for. - To debug a trigger on a new record, for Run the automation As If The Record Is, select **Created**. - To debug a trigger on a record change, for Run the automation As If The Record Is, select **Updated**. 3. In the text box, select the record to use for the debug run’s triggering record. 4. Deselect **Run automation in rollback mode**. 5. To manually clear debug settings, click **Reset Debug Settings**. ## Set Input Variables for an Autolaunched Flow Approval Process To debug an autolaunched flow approval process, set values for all of its input variables. The debug run fails if any input variable is missing or invalid. The values you specify persist for the current Flow Builder session. Flow Builder preserves the input variable values and setup option when you switch between Edit mode and Debug mode. Refreshing your browser or closing Flow Builder clears these debug settings. 1. On the Button Bar, click **Debug**. The Debug panel opens with the Setup tab selected. 2. On the Setup tab, enter values for each relevant input variable. 3. Deselect **Run automation in rollback mode**. 4. To manually clear debug settings, click **Reset Debug Settings**. ## Manage Mock Output for Steps Control the steps that the orchestration run associated with a flow approval process executes in debug mode. Set Define Test Output Values to Off to run a step’s referenced flow. Set mock output for any step that you don’t want to run while debugging. A step with Define Test Output Values set to On uses the defined mock output instead of running its referenced flow. Steps with defined mock output don’t make changes to the Salesforce database. Saving a flow approval process also saves mock output. Clicking **Reset Debug Settings** doesn't affect mock output. 1. In the Debug panel, click the **Stages** tab. 2. Turn off mock output for each step in the flow approval process that you want to run. 1. On the Stages tab of the Debug panel, for a step, click **Edit**. The Step properties panel opens to the Configure Test Output tab. 2. On the Configure Test Output tab of the Step properties panel, set Define Test Output Values to **Off**. 3. Define mock output for each step in the flow approval process that you don’t want to run. 1. On the Stages tab of the Debug panel, for a step, click **Edit**. The Step properties panel opens to the Configure Test Output tab. 2. On the Configure Test Output tab of the Step properties panel, set Define Test Output Values to **On**. 3. Enter values for the step’s output values. 4. Save the flow approval process. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If you’re debugging an activated flow approval process you can save the automation only as a new flow approval process. ## Start an Orchestration Run for the Flow Approval Process Debug a flow approval process and view its associated orchestration run results in the Details tab of the Debug pane. The orchestration run pauses for each asynchronous step with Manually Set Output Values set to Off. For background asynchronous steps, the orchestration run resumes after the background step is completed. For approval steps, the orchestration run resumes after you complete the associated approval work item. 1. On the Debug panel, click the **Setup** tab, and then click **Run**. The Details tab of the Debug panel shows cards for the orchestration run details. 2. Review the debug details. To see more information about a card, in the card, click **Details**. 3. For each approval step that pauses the orchestration run, complete the associated approval work item. - To complete the approval work item by running the approval step’s screen flow, open the record page of the record being approved, and then complete the screen flow in the Orchestration Work Guide. - To complete the approval work item from its email notification instead of running the approval step’s screen flow, reply to the email, enter APPROVED or REJECTED on the first line, and then send the reply. - To complete the approval work item from the Approval Work Items list view, click the quick menu for the approval work item, select **Review**, and then complete the default screen flow. The Review action runs the managed Approvals WorkFlow: Process Approval Submission screen flow, not the approval step’s screen flow. You can’t edit or customize this managed flow. The information in the Details tab of the Debug panel automatically updates. 4. To make and save changes to the flow approval process, click **Edit Flow**. The Debug pane closes. ## Complete Approval Work Items in Flow Builder Complete approval work items during a debug run without leaving Flow Builder. Open the work item from the approval step card in the Debug pane and complete it in the Work Guide tab. After you complete a work item, the debug run resumes. You can still complete approval work items from the Orchestration Work Guide on record pages. Completing approval work items via email or by using the Review option from the Approval Work Items quick menu is unchanged. 1. In the Debug pane, select the **Details** tab. 2. On the approval step card, click **Continue in Work Guide**. The approval work item opens in the Work Guide tab on the canvas in Flow Builder. 3. To complete approval work items for more approval steps, repeat step 2. # Debug a Flow Approval Process Without Changing Your Data Debug your flow approval process in Flow Builder to ensure that it runs as expected or to determine the cause of unexpected errors. Use rollback mode to debug your flow approval process without making changes to your Salesforce data. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To debug a flow approval process Manage Flow
## Open the Flow Approval Process from the Approvals App Open the Flow Approval Processes list view from the Approvals Lightning app. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter approvals, and then select **Approvals**. The Approvals app opens. 3. In the Approvals app, click **Manage All Flow Approval Processes**. The Flow Approval Processes list view opens. 4. Click the label of the flow approval process, and then click **View in Flow Builder**. The flow approval process opens in Flow Builder. ## Open the Flow Approval Process from Setup In Setup, flow approval processes are shown on the Flows list view. 1. Click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png), and then select **Setup**. 2. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 3. Click the label of the flow approval process. The flow approval process opens in Flow Builder. ## Manage Start Points and End Points Set a start point to skip earlier stages, an end point to stop before later stages, or both to isolate a middle segment. Set start points and end points only on Stage elements. To test a single stage, set it as both the start point and the end point. Steps in skipped stages don’t produce output values, even when they have configured test output, so configure test input for steps that rely on their output. Use multiple end points when testing decision paths. Start and end points aren’t saved when you save the flow approval process. Saving a flow approval process also saves mock input. Clicking **Reset Debug Settings** doesn't affect mock input. 1. (Optional) Set a start point and configure test input for the synchronous background steps that rely on output from stages that didn’t run. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Select as Start Point**. The ![start point icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_stage_start_point.png) appears on the stage element. 4. Select a synchronous background step that relies on output from a stage that didn’t run. 5. In the Step panel’s Configure Test Input tab, enter the necessary values for the step. When you enter a test value, its toggle is set to Included. 6. To configure test input for additional steps that rely on output from stages that didn't run, repeat steps 1d and 1e. 2. (Optional) Remove a start point and ignore test input for synchronous background steps. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Selected as Start Point**. 4. Select a synchronous background step with configured test input. 5. In the Step panel's Configure Test Input tab, set the toggle to **Not Included** for the input values you want to ignore. 6. To ignore configured test input values for additional synchronous background steps, repeat steps 2d and 2e. 3. (Optional) Set an end point. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Select as End Point**. The ![end point icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_stage_end_point.png) appears on the stage element. 4. (Optional) Remove an end point. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Selected as End Point**. ## Configure the Triggering Record for a Record-Triggered Flow Approval Process To debug a record-triggered flow approval process, set the triggering record. This setting persists for the current Flow Builder session. Trigger a record-triggered orchestration in one of three ways: only when a record is created, only when a record is changed, or when a record is either created or updated. Flow Builder preserves the selected triggering record value and setup option when you switch between Edit mode and Debug mode. Refreshing your browser or closing Flow Builder clears these selections. 1. On the Button Bar, click **Debug**. The Debug panel opens with the Setup tab selected. 2. For a flow approval process that’s triggered when a record is either created or updated, select the type of trigger to debug for. - To debug a trigger on a new record, for Run the automation As If The Record Is, select **Created**. - To debug a trigger on a record change, for Run the automation As If The Record Is, select **Updated**. 3. In the text box, select the record to use for the debug run’s triggering record. 4. Select **Run automation in rollback mode**. 5. To manually clear debug settings, click **Reset Debug Settings**. ## Set Input Variables for an Autolaunched Flow Approval Process To debug an autolaunched flow approval process, set values for all of its input variables. The debug run fails if any input variable is missing or invalid. The values you specify persist for the current Flow Builder session. Flow Builder preserves the input variable values and setup option when you switch between Edit mode and Debug mode. Refreshing your browser or closing Flow Builder clears these debug settings. 1. On the Button Bar, click **Debug**. The Debug panel opens with the Setup tab selected. 2. On the Setup tab, enter values for each relevant input variable. 3. Select **Run automation in rollback mode**. 4. To manually clear debug settings, click **Reset Debug Settings**. ## Set Mock Output for Steps Set mock output for all asynchronous steps. For synchronous steps, defining mock output is optional. A step configured to use mock output, doesn’t run its referenced flow. Orchestration runs for flow approval processes process a background step asynchronously when the step’s underlying flow contains 1 or more Action, Subflow, or Wait elements. Orchestration runs for flow approval processes process all interactive steps asynchronously. Saving a flow approval process also saves mock output. Clicking **Reset Debug Settings** doesn't affect mock output. 1. In the Debug panel, click the **Stages** tab. 2. Define mock output for each asynchronous step in the flow approval process. Optionally, define mock output for synchronous steps. 1. On the Stages tab of the Debug panel, click **Edit** for a step. The Step properties panel opens to the Configure Test Output tab. 2. On the Configure Test Output tab, set Define Test Output Values to **On**. 3. Enter values for the step’s output values. 3. Save the flow approval process. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If you’re debugging an activated flow approval process you can save the automation only as a new flow approval process. ## Start an Orchestration Run for the Flow Approval Process Debug the orchestration run based on the flow approval process and view its results in the Details tab of the Debug pane. 1. On the Debug panel, click the **Setup** tab, and then click **Run**. The Details tab of the Debug panel shows cards for the details of the orchestration run based on the flow approval process. 2. Review the debug details. To see more information about a card, in the card, click **Details**. 3. To make and save changes to the flow approval process, click **Edit Flow**. The Debug pane closes. # Debug a Salesforce Scheduler Flow as Another User Test and debug a flow as another user without logging in as that user. You can troubleshoot a flow by seeing the flow’s debug log as a user sees it. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. In Setup, in the Quick Find box, enter Process Automation Settings, and then select **Process Automation Settings**. 2. Select the **Let admins debug flows as other users** checkbox. 3. Save your changes. 4. In Flow Builder, click **Debug**, and then select the **Run flow as another user** checkbox. 5. Choose the user to simulate while running the flow. 6. The flow debug run starts with the simulated user. Review the debug details. #### See Also - [Troubleshoot Flow Errors](https://help.salesforce.com/s/articleView?id=platform.flow_troubleshoot_email.htm&type=5&language=en_US) # Debug a Screen Flow with the Debugger Example Debug a screen flow that uses information collected from the screen flow's registration form to create a contact for each policy beneficiary. ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. Before activating and distributing your screen flow, you debug the flow to troubleshoot any flow failure. 1. Create or open the [Registration forms](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_loop_through_user_input_in_the_repeater_screen_component.htm&release=264.0.0&type=5 "Add a Repeater component to a screen, and then add child components to represent a beneficiary on a policy. Loop over the output Repeater component to create a collection of Contact records. Then use the collection to create a Contact record for each beneficiary.") screen flow in Flow Builder. 2. Click **Debug**. 3. Set the debug options. If you want to run the flow as another user, ensure that **Let admins debug flows as other users** is enabled in **Process Automation Settings**.![Flow Debug window with debugging options and input variables](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_debug_screen_flow.png) 4. Click **Run**. The debug details for the run appear in a panel on the right. 5. Enter the values in the required fields. ![Debug Details panel showing the registration form screen created by the flow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_debug_screen_flow_forms.png) 6. Click **Next**. 7. Review the Debug Details to see the results. 8. (Optional) To restart the flow by using the same or different values for the input variables, click **Change Inputs or Run Again**. You can’t convert the debug run to a test in the screen flow. # Debug a Template-Triggered Prompt Flow Example Debug a prompt flow that integrates with a prompt template that generates a list of events. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the Einstein for Sales, Einstein for Service, or Einstein Platform add-on. To purchase, contact your Salesforce account executive.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
To create and manage prompt templates in Prompt Builder: Prompt Template Manager permission set
Template-triggered prompt flows aren’t compatible with prompt templates created in Winter ’24. Before creating your sales email prompt template, you debug the flow to troubleshoot any flow failure. 1. Create or open the [Get Marketing Events](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger_prompt_template_capability_sales_email_example.htm&release=264.0.0&type=5 "This example creates a flow that integrates with a sales email prompt template to automatically gather and present relevant events for your contacts.") prompt flow in Flow Builder. 2. Click **Debug**. 3. Set the debug options and input variables. If you want to run the flow as another user, ensure that **Let admins debug flows as other users** is enabled in **Process Automation Settings**. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_warning.png) Warning If you debug a flow without choosing to run the flow in rollback mode, the flow performs its actions, including any DML operations and Apex code execution. Remember, closing or restarting a running flow doesn’t roll back its previously executed actions, callouts, and changes committed to the database. 4. Enable **Run flow in rollback mode** under Debug Options. ![Debugging options and input variables](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_debug_prompt_flow_example.png) 5. Click **Run**. The debug details for the run appear in a panel on the right. 6. Review the Debug Details to see the results. ![Debug Details panel showing example content such as record queries and their results and how the interview started.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_debug_details_prompt_flow_example.png) 7. (Optional) To restart the flow by using the same or different values for the input variables, click **Debug Again**. You can’t convert the debug run to a test in the prompt flow. #### See Also - [Create a Sales Email Template-Triggered Prompt Flow Example](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger_prompt_template_capability_sales_email_example.htm&release=264.0.0&type=5 "This example creates a flow that integrates with a sales email prompt template to automatically gather and present relevant events for your contacts.") - [Flow Builder Debugger Considerations](https://help.salesforce.com/s/articleView?id=platform.flow_considerations_troubleshooting.htm&release=264.0.0&type=5 "Use these considerations when you debug a flow in Flow Builder.") - [_Trailhead_: Flow Troubleshooting](https://trailhead.salesforce.com/content/learn/modules/flow-troubleshooting) - [Process Automation Settings](https://help.salesforce.com/s/articleView?id=platform.automation_about_settings.htm&release=264.0.0&type=5 "Salesforce provides various settings for platform automation to help customize and streamline business processes.") # Debug an Orchestration Debug an orchestration in Flow Builder to better understand the path an orchestration takes in different scenarios and the values that variables have at points within the automation. Use rollback mode to debug without making changes to your data. Or debug while making changes to your data. ### Required Editions
View supported editions for Flow Orchestration.
## Milestones Orchestration milestones are a part of orchestration log, error, and debug details.
Orchestration Run Milestone Description
Start Run The orchestration run started or was manually resumed.
End Run The orchestration run was completed.
Suspend Run The orchestration run was manually suspended.
Cancel Run The orchestration run was manually canceled.
Resume Run The orchestration run was manually resumed.
Fail Run
  • The orchestration run encountered an error.
  • A stage within the orchestration run encountered an error.
  • A step within the orchestration run encountered an error.
Stage milestones are a part of orchestration debugging details.
Stage Milestone Description
Start Stage The stage started or was resumed when its parent orchestration run was resumed.
End Stage
  • The stage was completed.
  • The stage was in progress when its parent orchestration run was canceled.
Suspend Stage The stage was in progress when its parent orchestration run was manually suspended.
Discontinue Stage
  • The parent orchestration run encountered an error after the stage was completed.
  • The parent orchestration run encountered an error while the stage was in progress.
Fail Stage
  • The stage encountered an error.
  • A background step within the stage encountered an error.
  • An autolaunched flow called by a background step within the stage encountered an error.
Step milestones are a part of orchestration debugging details.
Step Milestone Description
Start Step The step started.
End Step The step was completed.
Discontinue Step
  • The step's stage was completed while the step was in progress.
  • The parent orchestration run encountered an error after the step was completed.
  • The parent orchestration run encountered an error while the step was in progress.
  • The step's stage encountered an error while the step was in progress.
Fail Step The step encountered an error.
Work item milestones are a part of orchestration debugging details.
Work Item Milestone Description
Start Work Item The work item was created and assigned.
End Work Item

The assigned user completed the work item.

When the work item reaches the End Work Item milestone, the Completed By field is set to the username of the user or credentialed Experience Cloud site visitor who completed the work. When the work item reaches this milestone, the Duration field is set to the duration of the step in seconds.

Reassign Work Item The work item was reassigned.
- **[Debug an Orchestration Without Changing Your Data](https://help.salesforce.com/s/articleView?id=platform.orchestrator_troubleshoot_debug_orchestration_rollback_mode.htm&release=264.0.0&type=5)** Debug your orchestration in Flow Builder to ensure that it runs as expected or to determine the cause of unexpected errors. Use rollback mode to debug your orchestration without making changes to your Salesforce data. - **[Debug an Orchestration and Keep Data Changes](https://help.salesforce.com/s/articleView?id=platform.orchestrator_troubleshoot_debug_orchestration_default_mode.htm&release=264.0.0&type=5)** Test and troubleshoot your orchestration with database updates. Set a start point to skip earlier stages, an end point to stop before later stages, or both to isolate a middle segment. You can also set mock outputs for steps. A step that uses mock output doesn't run its referenced flow or make changes to the Salesforce database. You’re the assigned user for all interactive steps that meet their entry conditions. # Debug an Orchestration and Keep Data Changes Test and troubleshoot your orchestration with database updates. Set a start point to skip earlier stages, an end point to stop before later stages, or both to isolate a middle segment. You can also set mock outputs for steps. A step that uses mock output doesn't run its referenced flow or make changes to the Salesforce database. You’re the assigned user for all interactive steps that meet their entry conditions. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To debug an orchestration Manage Flow
Add the Orchestration Work Guide component to the record page layouts that are used by the records referenced by the orchestration’s interactive steps. See [Make Assigned Work Items Accessible on a Record Page](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_add_work_guide.htm&release=264.0.0&type=5 "Add the Orchestration Work Guide component to the record page layouts for record types referenced by interactive steps. Configure the component so that assigned users can access and complete their work items.") or [Make Assigned Work Items Accessible on an Experience Cloud Site](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_add_work_guide_external.htm&release=264.0.0&type=5 "Add the Orchestration Work Guide component to object detail pages in your Aura and LWR Experience Cloud sites for record types related to interactive steps. Configure the component so that assigned credentialed site visitors can access and complete their work items."). ## Open the Orchestration from the Automation App Open an orchestration from the Orchestration page in the Automation Lightning app. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter automation, and then select **Automation**. The Automation app opens. 3. In the Automation app, select the **Orchestrations** tab. The Orchestrations list view opens. 4. Click the label of the orchestration, and then click **View in Flow Builder**. The orchestration opens in Flow Builder. ## Open the Orchestration from Setup In Setup, open an orchestration from the Flows list view. 1. Click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png), and then select **Setup**. 2. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 3. Click the label of the orchestration. The orchestration opens in Flow Builder. ## Manage Start Points and End Points Set a start point to skip earlier stages, an end point to stop before later stages, or both to isolate a middle segment. Set start points and end points only on Stage elements. To test a single stage, set it as both the start point and the end point. Steps in skipped stages don’t produce output values, even when they have configured test output, so configure test input for steps that rely on their output. Use multiple end points when testing decision paths. These settings don't persist when you save the orchestration. Saving an orchestration also saves mock input. Clicking **Reset Debug Settings** doesn't affect mock input. 1. (Optional) Set a start point and configure test input for the steps that rely on output from stages that didn’t run. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Select as Start Point**. A ![start point icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_stage_start_point.png) appears on the stage element. 4. Select a step that relies on output from a stage that didn’t run. 5. In the Step panel’s Configure Test Input tab, enter the necessary values for the step. When you enter a test value, its toggle is set to Included. 6. To configure test input for more steps that rely on output from stages that didn't run, repeat steps 1d and 1e. 2. (Optional) Remove a start point and ignore test input for steps. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Selected as Start Point**. 4. Select a step with configured test input. 5. In the Step panel's Configure Test Input tab, set the toggle to **Not Included** for the input values you want to ignore. 6. To ignore configured test input values for more steps, repeat steps 2d and 2e. 3. (Optional) Set an end point. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Select as End Point**. The ![end point icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_stage_end_point.png) appears on the stage element. 4. (Optional) Remove an end point. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Selected as End Point**. ## Configure the Triggering Record for a Record-Triggered Orchestration To debug a record-triggered orchestration, set the triggering record. This setting persists for the current Flow Builder session. Trigger a record-triggered orchestration in one of three ways: only when a record is created, only when a record is changed, or when a record is either created or updated. Flow Builder preserves the selected triggering record value and setup option when you switch between Edit mode and Debug mode. Refreshing your browser or closing Flow Builder clears these selections. 1. On the Button Bar, click **Debug**. The Debug panel opens with the Setup tab selected. 2. For an orchestration that’s triggered when a record is either created or updated, select the type of trigger to debug for. - To debug a trigger on a new record, for Run the automation As If The Record Is, select **Created**. - To debug a trigger on a record change, for Run the automation As If The Record Is, select **Updated**. 3. In the text box, select the record to use for the debug run’s triggering record. 4. Deselect **Run automation in rollback mode**. 5. To manually clear debug settings, click **Reset Debug Settings**. ## Set Input Variables for an Autolaunched Orchestration To debug an autolaunched orchestration, set values for all of its input variables. The debug run fails if any input variable is missing or invalid. The values you specify persist for the current Flow Builder session. Flow Builder preserves the input variable values and setup option when you switch between Edit mode and Debug mode. Refreshing your browser or closing Flow Builder clears these debug settings. 1. On the Button Bar, click **Debug**. The Debug panel opens with the Setup tab selected. 2. On the Setup tab, enter values for each relevant input variable. 3. Deselect **Run automation in rollback mode**. 4. To manually clear debug settings, click **Reset Debug Settings**. ## Manage Mock Output for Steps Control the steps that the orchestration run executes in debug mode. Set Define Test Output Values to Off to run a step’s referenced flow. Set mock output for any step that you don’t want to run while debugging. A step with Define Test Output Values set to On uses the defined mock output instead of running its referenced flow. Steps with defined mock output don’t make changes to the Salesforce database. Saving an orchestration also saves mock output. Clicking **Reset Debug Settings** doesn't affect mock output. 1. In the Debug panel, click the **Stages** tab. 2. Turn off mock output for each step in the orchestration that you want to run. 1. On the Stages tab of the Debug panel, for a step, click **Edit**. The Step properties panel opens to the Configure Test Output tab. 2. On the Configure Test Output tab of the Step properties panel, set Define Test Output Values to **Off**. 3. Define mock output for each step in the orchestration that you don’t want to run. 1. On the Stages tab of the Debug panel, for a step, click **Edit**. The Step properties panel opens to the Configure Test Output tab. 2. On the Configure Test Output tab of the Step properties panel, set Define Test Output Values to **On**. 3. Enter values for the step’s output values. 4. Save the orchestration. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If you’re debugging an activated orchestration you can save the automation only as a new orchestration. ## Start the Orchestration Run Debug the orchestration run and view its results in the Details tab of the Debug pane. The orchestration run pauses for each asynchronous step with Manually Set Output Values set to Off. For background asynchronous steps, the orchestration run resumes after the background step is completed. For interactive steps, the orchestration run resumes after you complete the associated orchestration work item. 1. On the Debug panel, click the **Setup** tab, and then click **Run**. The Details tab of the Debug panel shows cards for the orchestration run details. 2. Review the debug details. To see more information about a card, in the card, click **Details**. 3. For each interactive step that pauses the orchestration run, complete the associated orchestration work item. 1. Open the relevant record page. 2. In the Orchestration Work Guide, complete the work item. The information in the Details tab of the Debug panel automatically updates. 4. To make and save changes to the orchestration, click **Edit Flow**. The Debug pane closes. ## Complete Orchestration Work Items in Flow Builder Complete orchestration work items during a debug run without leaving Flow Builder. Open the work item from the interactive step card in the Debug pane and complete it in the Work Guide tab. After you complete a work item, the debug run resumes. You can still complete orchestration work items from the Orchestration Work Guide on record pages. 1. In the Debug pane, select the **Details** tab. 2. On the interactive step card, click **Continue in Work Guide**. The orchestration work item opens in the Work Guide tab on the canvas in Flow Builder. 3. To complete orchestration work items for more interactive steps, repeat step 2. # Debug an Orchestration Without Changing Your Data Debug your orchestration in Flow Builder to ensure that it runs as expected or to determine the cause of unexpected errors. Use rollback mode to debug your orchestration without making changes to your Salesforce data. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To debug an orchestration Manage Flow
## Open the Orchestration from the Automation App Open an orchestration from the Orchestration page in the Automation Lightning app. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter automation, and then select **Automation**. The Automation app opens. 3. In the Automation app, select the **Orchestrations** tab. The Orchestrations list view opens. 4. Click the label of the orchestration, and then click **View in Flow Builder**. The orchestration opens in Flow Builder. ## Open the Orchestration from Setup In Setup, open an orchestration from the Flows list view. 1. Click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png), and then select **Setup**. 2. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 3. Click the label of the orchestration. The orchestration opens in Flow Builder. ## Manage Start Points and End Points Set a start point to skip earlier stages, an end point to stop before later stages, or both to isolate a middle segment. Set start points and end points only on Stage elements. To test a single stage, set it as both the start point and the end point. Steps in skipped stages don’t produce output values, even when they have configured test output, so configure test input for steps that rely on their output. Use multiple end points when testing decision paths. Start and end points aren’t saved when you save the orchestration. Saving an orchestration also saves mock input. Clicking **Reset Debug Settings** doesn't affect mock input. 1. (Optional) Set a start point and configure test input for the synchronous background steps that rely on output from stages that didn’t run. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Select as Start Point**. The ![start point icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_stage_start_point.png) appears on the stage element. 4. Select a synchronous background step that relies on output from a stage that didn’t run. 5. In the Step panel’s Configure Test Input tab, enter the necessary values for the step. When you enter a test value, its toggle is set to Included. 6. To configure test input for additional steps that rely on output from stages that didn't run, repeat steps 1d and 1e. 2. (Optional) Remove a start point and ignore test input for synchronous background steps. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Selected as Start Point**. 4. Select a synchronous background step with configured test input. 5. In the Step panel's Configure Test Input tab, set the toggle to **Not Included** for the input values you want to ignore. 6. To ignore configured test input values for additional synchronous background steps, repeat steps 2d and 2e. 3. (Optional) Set an end point. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Select as End Point**. The ![end point icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_stage_end_point.png) appears on the stage element. 4. (Optional) Remove an end point. 1. Hover over a stage. 2. Click ![The actions icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png). 3. Select **Selected as End Point**. ## Configure the Triggering Record for a Record-Triggered Orchestration To debug a record-triggered orchestration, set the triggering record. This setting persists for the current Flow Builder session. Trigger a record-triggered orchestration in one of three ways: only when a record is created, only when a record is changed, or when a record is either created or updated. Flow Builder preserves the selected triggering record value and setup option when you switch between Edit mode and Debug mode. Refreshing your browser or closing Flow Builder clears these selections. 1. On the Button Bar, click **Debug**. The Debug panel opens with the Setup tab selected. 2. For an orchestration that’s triggered when a record is either created or updated, select the type of trigger to debug for. - To debug a trigger on a new record, for Run the automation As If The Record Is, select **Created**. - To debug a trigger on a record change, for Run the automation As If The Record Is, select **Updated**. 3. In the text box, select the record to use for the debug run’s triggering record. 4. Select **Run automation in rollback mode**. 5. To manually clear debug settings, click **Reset Debug Settings**. ## Set Input Variables for an Autolaunched Orchestration To debug an autolaunched orchestration, set values for all of its input variables. The debug run fails if any input variable is missing or invalid. The values you specify persist for the current Flow Builder session. Flow Builder preserves the input variable values and setup option when you switch between Edit mode and Debug mode. Refreshing your browser or closing Flow Builder clears these debug settings. 1. On the Button Bar, click **Debug**. The Debug panel opens with the Setup tab selected. 2. On the Setup tab, enter values for each relevant input variable. 3. Select **Run automation in rollback mode**. 4. To manually clear debug settings, click **Reset Debug Settings**. ## Set Mock Output for Steps Set mock output for all asynchronous steps. For synchronous steps, defining mock output is optional. A step configured to use mock output, doesn’t run its referenced flow. Orchestration runs process a background step asynchronously when the step’s underlying flow contains 1 or more Action, Subflow, or Wait elements. Orchestration runs process all interactive steps asynchronously. Saving a flow approval process also saves mock output. Clicking **Reset Debug Settings** doesn't affect mock output. 1. In the Debug panel, click the **Stages** tab. 2. Define mock output for each asynchronous step in the orchestration. Optionally, define mock output for synchronous steps. 1. On the Stages tab of the Debug panel, click **Edit** for a step. The Step properties panel opens to the Configure Test Output tab. 2. On the Configure Test Output tab, set Define Test Output Values to **On**. 3. Enter values for the step’s output values. 3. Save the orchestration. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If you’re debugging an activated orchestration you can save the automation only as a new orchestration. ## Start the Orchestration Run Debug the orchestration run and view its results in the Details tab of the Debug pane. 1. On the Debug panel, click the **Setup** tab, and then click **Run**. The Details tab of the Debug panel shows cards for the orchestration run details. 2. Review the debug details. To see more information about a card, in the card, click **Details**. 3. To make and save changes to the orchestration, click **Edit Flow**. The Debug pane closes. # Debug Log Details A debug log includes a header, execution units, code units, log lines, and other log data. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To view, retain, and delete debug logs: View All Data
After you generate a debug log, the type and amount of information listed depends on the [filter values](https://help.salesforce.com/s/articleView?id=platform.code_setting_debug_log_levels.htm&release=264.0.0&type=5 "To specify the level of information that gets included in debug logs, set up trace flags and debug levels. The debug levels assigned to your trace flags control the type and amount of information that is logged for different events. After logging has occurred, inspect debug events in your debug logs.") you set for the user. However, the format for a debug log is always the same. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note Session IDs are replaced with "SESSION\_ID\_REMOVED" in Apex debug logs The header contains execution units, code units, log lines, and additional log information. ## Execution Units An execution unit is equivalent to a transaction. It contains everything that occurred within the transaction. `EXECUTION_STARTED` and `EXECUTION_FINISHED` delimit an execution unit. ## Code Units A code unit is a discrete unit of work within a transaction. For example, a trigger is one unit of code, as is a `webservice` method or a validation rule. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note A class is not a discrete unit of code. `CODE_UNIT_STARTED` and `CODE_UNIT_FINISHED` delimit units of code. Units of work can embed other units of work. For example: ``` EXECUTION_STARTED CODE_UNIT_STARTED|[EXTERNAL]execute_anonymous_apex CODE_UNIT_STARTED|[EXTERNAL]MyTrigger on Account trigger event BeforeInsert for [new]|__sfdc_trigger/MyTrigger CODE_UNIT_FINISHED <-- The trigger ends CODE_UNIT_FINISHED <-- The executeAnonymous ends EXECUTION_FINISHED ``` Units of code include, but are not limited to, the following: - Triggers - Workflow invocations and time-based workflow - Validation rules - Approval processes - Apex lead convert - `@future` method invocations - Web service invocations - `executeAnonymous` calls - Visualforce property accesses on Apex controllers - Visualforce actions on Apex controllers - Execution of the batch Apex `start` and `finish` methods, and each execution of the `execute` method - Execution of the Apex `System.Schedule execute` method - Incoming email handling ## Log Lines Log lines are included inside units of code and indicate which code or rules are being executed. Log lines can also be messages written to the debug log. For example: ![Debug Log Line Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/debug_log_line_user_debug.png) Log lines are made up of a set of fields, delimited by a pipe (`|`). The format is: - timestamp: Consists of the time when the event occurred and a value between parentheses. The time is in the user’s time zone and in the format HH:mm:ss.SSS. The value in parentheses represents the time elapsed in nanoseconds since the start of the request. The elapsed time value is excluded from logs reviewed in the Developer Console when you use the Execution Log view. However, you can see the elapsed time when you use the Raw Log view. To open the Raw Log view, from the Developer Console’s Logs tab, right-click the name of a log and select **Open Raw Log**. - event identifier: Specifies the event that triggered the debug log entry (such as `SAVEPOINT_RESET` or `VALIDATION_RULE`). Also includes additional information logged with that event, such as the method name or the line and character number where the code was executed. If a line number can’t be located, `[EXTERNAL]` is logged instead. For example, `[EXTERNAL]` is logged for built-in Apex classes or code that’s in a managed package. For some events (`CODE_UNIT_STARTED`, `CODE_UNIT_FINISHED`, `VF_APEX_CALL_START`, `VF_APEX_CALL_END`, `CONSTRUCTOR_ENTRY`, and `CONSTRUCTOR_EXIT`), the end of the event identifier includes a pipe (`|`) followed by a typeRef for an Apex class or trigger. For a trigger, the typeRef begins with the SFDC trigger prefix `__sfdc_trigger/`. For example, `__sfdc_trigger/YourTriggerName` or `__sfdc_trigger/YourNamespace/YourTriggerName`. For a class, the typeRef uses the format `YourClass`, `YourClass$YourInnerClass,` or `YourNamespace/YourClass$YourInnerClass`. ## More Log Data In addition, the log contains the following information. - Cumulative resource usage is logged at the end of many code units. Among these code units are triggers, `executeAnonymous`, batch Apex message processing, `@future` methods, Apex test methods, Apex web service methods, and Apex lead convert. - Cumulative profiling information is logged once at the end of the transaction and contains information about DML invocations, expensive queries, and so on. “Expensive” queries use resources heavily. - The version of the API used during the transaction. - The [log category and level](https://help.salesforce.com/s/articleView?id=platform.code_setting_debug_log_levels.htm&release=264.0.0&type=5 "To specify the level of information that gets included in debug logs, set up trace flags and debug levels. The debug levels assigned to your trace flags control the type and amount of information that is logged for different events. After logging has occurred, inspect debug events in your debug logs.") used to generate the log. For example: ``` 66.0 APEX_CODE,DEBUG;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO;VISUALFORCE,INFO; WORKFLOW,INFO ``` In this example, the API version is 66.0, and the following debug log categories and levels have been set.
Apex CodeDEBUG
Apex ProfilingINFO
CalloutINFO
DatabaseINFO
SystemDEBUG
ValidationINFO
VisualforceINFO
WorkflowINFO
![Debug Log Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_example.png) Debug Log Example ``` 37.0 APEX_CODE,FINEST;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG; VALIDATION,INFO;VISUALFORCE,INFO;WORKFLOW,INFO Execute Anonymous: System.debug('Hello World!'); 16:06:58.18 (18043585)|USER_INFO|[EXTERNAL]|005D0000001bYPN|devuser@example.org| Pacific Standard Time|GMT-08:00 16:06:58.18 (18348659)|EXECUTION_STARTED 16:06:58.18 (18383790)|CODE_UNIT_STARTED|[EXTERNAL]|execute_anonymous_apex 16:06:58.18 (23822880)|HEAP_ALLOCATE|[72]|Bytes:3 16:06:58.18 (24271272)|HEAP_ALLOCATE|[77]|Bytes:152 16:06:58.18 (24691098)|HEAP_ALLOCATE|[342]|Bytes:408 16:06:58.18 (25306695)|HEAP_ALLOCATE|[355]|Bytes:408 16:06:58.18 (25787912)|HEAP_ALLOCATE|[467]|Bytes:48 16:06:58.18 (26415871)|HEAP_ALLOCATE|[139]|Bytes:6 16:06:58.18 (26979574)|HEAP_ALLOCATE|[EXTERNAL]|Bytes:1 16:06:58.18 (27384663)|STATEMENT_EXECUTE|[1] 16:06:58.18 (27414067)|STATEMENT_EXECUTE|[1] 16:06:58.18 (27458836)|HEAP_ALLOCATE|[1]|Bytes:12 16:06:58.18 (27612700)|HEAP_ALLOCATE|[50]|Bytes:5 16:06:58.18 (27768171)|HEAP_ALLOCATE|[56]|Bytes:5 16:06:58.18 (27877126)|HEAP_ALLOCATE|[64]|Bytes:7 16:06:58.18 (49244886)|USER_DEBUG|[1]|DEBUG|Hello World! 16:06:58.49 (49590539)|CUMULATIVE_LIMIT_USAGE 16:06:58.49 (49590539)|LIMIT_USAGE_FOR_NS|(default)| Number of SOQL queries: 0 out of 100 Number of query rows: 0 out of 50000 Number of SOSL queries: 0 out of 20 Number of DML statements: 0 out of 150 Number of DML rows: 0 out of 10000 Maximum CPU time: 0 out of 10000 Maximum heap size: 0 out of 6000000 Number of callouts: 0 out of 100 Number of Email Invocations: 0 out of 10 Number of future calls: 0 out of 50 Number of queueable jobs added to the queue: 0 out of 50 Number of Mobile Apex push calls: 0 out of 10 16:06:58.49 (49590539)|CUMULATIVE_LIMIT_USAGE_END 16:06:58.18 (52417923)|CODE_UNIT_FINISHED|execute_anonymous_apex 16:06:58.18 (54114689)|EXECUTION_FINISHED ``` #### See Also - [Debug Log Levels](https://help.salesforce.com/s/articleView?id=platform.code_setting_debug_log_levels.htm&release=264.0.0&type=5 "To specify the level of information that gets included in debug logs, set up trace flags and debug levels. The debug levels assigned to your trace flags control the type and amount of information that is logged for different events. After logging has occurred, inspect debug events in your debug logs.") - [Searching a Debug Log](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_search_debug_log.htm&release=264.0.0&type=5 "To search for text in a debug log, use the Command Line Window in the Developer Console.") # Debug Log Filtering for Apex Classes and Apex Triggers Debug log filtering provides a mechanism for fine-tuning the log verbosity at the trigger and class level. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions
To debug complex Apex logic, you can set Apex class and trigger trace flags, also known as debug log filters. For example, you can raise the log verbosity for a given class while turning off logging for other classes or triggers. These trace flags have the debug log type `CLASS_TRACING` and override the debug log levels of the `USER_DEBUG` and `DEVELOPER_LOG` trace flags. When you override the debug log levels for a class or trigger, these debug log levels also apply to the class methods that your class or trigger calls and the triggers that get executed as a result. All class methods and triggers in the execution path inherit the debug log settings from their caller, unless they have their own trace flags that override these settings. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important Apex class and trigger trace flags don’t generate logs on their own. Logging occurs only if either the `USER_DEBUG` or the `DEVELOPER_LOG` trace flag is active for the user running the code. For concrete instructions about how to configure debug log filters, see [Set Up Apex Class and Trigger Trace Flags](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_classes_setup.htm&release=264.0.0&type=5 "You can set up an Apex class or trigger trace flag in Salesforce Setup, in the Developer Console, or by creating Tooling API objects with Salesforce CLI commands. These trace flags have the CLASS_TRACING debug log type and override the debug log levels of the USER_DEBUG and DEVELOPER_LOG trace flags."). ## Example of Fine-Tuned Debug Logging Let’s explore how Apex class and trigger trace flags override the debug log levels of other trace flags. First, define these example classes and triggers: `Class1`, `Class2`, `Class3`, `UtilityClass`, `Trigger1`, and `Trigger2`. ```java public with sharing class Class1 { public static void class1Method() { System.debug('Class1.class1Method() was called'); Class3.class3Method(); } } ``` ```java public with sharing class Class2 { public static void class2Method() { // Code that invokes Trigger2 System.debug('Class2.class2Method() was called'); Contact newContact = new Contact(FirstName='FirstName', LastName='LastName'); insert newContact; } } ``` ```java public with sharing class Class3 { public static void class3Method() { System.debug('Class3.class3Method() was called'); UtilityClass.utilityMethod(); } } ``` ```java public with sharing class UtilityClass { public static void utilityMethod() { System.debug('UtilityClass.utilityMethod() was called'); } } ``` ```java trigger Trigger1 on Account (before insert) { System.debug('Trigger1 invoked'); Class1.class1Method(); Class2.class2Method(); } ``` ```java trigger Trigger2 on Contact (before insert) { System.debug('Trigger2 invoked'); } ``` Here’s a summary of how this code runs. - `Trigger1` fires before a new account is inserted. - `Trigger1` calls `Class1.class1Method()` and `Class2.class2Method()`. - The `Class1.class1Method()` calls `Class3.class3Method()`, which in turn calls the `UtilityClass.utilityMethod()` method. - The `Class2.class2Method()` inserts a new contact, which invokes `Trigger2` Now, let’s first examine a debug log for this code without any class or trigger trace flag overrides. To invoke `Trigger1`, in an Anonymous Apex code block, create and insert a new account. ```java Account newAccount = new Account(Name='Test Account 1234'); insert newAccount; ``` If you execute an Anonymous Apex code block in the Developer Console, the `DEVELOPER_LOG` trace flag is active, and the `SFDC_DevConsole` debug log level profile is applied by default. The `SFDC_DevConsole` debug log level profile has these debug log levels set. - Apex Code—Finest - Apex Profiling—Info - Callouts—Info - Data Access—Info - Database—Info - NBA—Info - System—Debug - Validation—Info - Visualforce—Finer - Wave—Info - Workflow—Info Here’s a snippet of the debug log in the Developer Console. The Debug Only filter is applied, so only [`USER_DEBUG`](https://help.salesforce.com/s/articleView?id=platform.code_setting_debug_log_levels.htm&type=5&language=en_US) events are shown. ``` 13:40:23.49 (477255762)|USER_DEBUG|[2]|DEBUG|Trigger1 invoked 13:40:23.49 (490847713)|USER_DEBUG|[3]|DEBUG|Class1.class1Method() was called 13:40:23.49 (501554543)|USER_DEBUG|[3]|DEBUG|Class3.class3Method() was called 13:40:23.49 (513291355)|USER_DEBUG|[3]|DEBUG|UtilityClass.utilityMethod() was called 13:40:23.49 (527535070)|USER_DEBUG|[4]|DEBUG|Class2.class2Method() was called 13:40:23.49 (570470421)|USER_DEBUG|[2]|DEBUG|Trigger2 invoked ``` Because the Apex Code debug log level is `FINEST`, all `System.debug()` statements invoked from Apex classes or triggers are written to the debug log. Now, to demonstrate class and trigger trace flag overrides, let’s change the debug log levels according to this scenario. - Suppose `Class1` is causing some issues that you want to examine closely. You create a `Class1` trace flag that raises the debug log levels of `Class1` to the finest granularity. - Because `Class1` calls `Class3`, `Class3` inherits the granular log filters of `Class1`. `Class3` calls `UtilityClass`, but suppose you’ve already tested `UtilityClass` and confirmed that it works properly. Therefore, you create a `UtilityClass` trace flag where all the log filters are turned off. - Similarly, `Class2` isn’t in the code path that causes a problem, so you create a `Class2` trace flag where logging is minimized to log only errors for the Apex Code category. Because `Class2` invokes `Trigger2`, `Trigger2` inherits the log level settings of `Class2`. This diagram illustrates the new debug log levels in this scenario. **Fine-tuning debug logging for classes and triggers** ![Debug log filters for classes and triggers](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/debug_log_class_filtering.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note In the diagram, `Trigger1` shows the [default log levels](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_precedence.htm&type=5&language=en_US) without any active trace flags. When working in the Developer Console, the `DEVELOPER_LOG` trace flag is active by default, so the debug logs in this example reflect the `SFDC_DevConsole` debug log level profile instead. Here’s how the Developer Console appears after you create debug log level profiles and assign them to class or trigger trace flags. ![The Change DebugLevel window in the Developer Console, where you can create and modify debug log level profiles.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/debug_log_class_change_debug_level.png) ![The Change Log Levels window in the Developer Console, where you can set debug trace flags.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/debug_log_class_filtering_change_log_levels.png) Now, execute the Anonymous Apex code block again. If you open the debug log and filter by Debug Only, you can see that the class and trigger trace flag overrides are applied. ``` 15:29:49.42 (65879589)|USER_DEBUG|[2]|DEBUG|Trigger1 invoked 15:29:49.42 (68318473)|USER_DEBUG|[3]|DEBUG|Class1.class1Method() was called 15:29:49.42 (69855182)|USER_DEBUG|[3]|DEBUG|Class3.class3Method() was called ``` `Trigger1` retains the default `SFDC_DevConsole` debug log level profile because it doesn’t have an active trigger trace flag override. Therefore, its `System.debug()` message still appears in the debug log. The debug log level of `Class1` and `Class3` for the Apex Code category is set to `FINEST`, so the `System.debug()` statements in the called methods of these classes are shown. The debug log level of `Class2` and `Trigger2` for the Apex Code category is set to `ERROR`, which means that only errors and exceptions are logged. If the `System.debug()` [`LoggingLevel` enum](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_enum_System_LoggingLevel.htm) is set to `ERROR`, then `System.debug()` messages in these classes are also logged. However, in this case, the `System.debug()` logging level remains at the default `DEBUG` level. Therefore, the `System.debug()` method in the called methods of these classes aren’t logged. Finally, the debug log level of `UtilityClass` for the Apex Code category is set to `NONE`, which means that no debug logs are generated when methods from this class are called. #### See Also - [Set Up Debug Logging](https://help.salesforce.com/s/articleView?id=xcloud.code_add_users_debug_log.htm&type=5&language=en_US) - [Set Up Apex Class and Trigger Trace Flags](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_classes_setup.htm&release=264.0.0&type=5 "You can set up an Apex class or trigger trace flag in Salesforce Setup, in the Developer Console, or by creating Tooling API objects with Salesforce CLI commands. These trace flags have the CLASS_TRACING debug log type and override the debug log levels of the USER_DEBUG and DEVELOPER_LOG trace flags.") - [Debug Log Levels](https://help.salesforce.com/s/articleView?id=platform.code_setting_debug_log_levels.htm&release=264.0.0&type=5 "To specify the level of information that gets included in debug logs, set up trace flags and debug levels. The debug levels assigned to your trace flags control the type and amount of information that is logged for different events. After logging has occurred, inspect debug events in your debug logs.") # Debug Log Levels To specify the level of information that gets included in debug logs, set up trace flags and debug levels. The debug levels assigned to your trace flags control the type and amount of information that is logged for different events. After logging has occurred, inspect debug events in your debug logs. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To use the Developer Console: API Enabled AND View All Data
To view, retain, and delete debug logs: View All Data
To execute anonymous Apex: Author Apex
To use code search and run SOQL or SOSL on the query tab: API Enabled
To save changes to Apex classes and triggers: Author Apex
To save changes to Visualforce pages and components:     Customize Application
To save changes to Lightning resources: Customize Application
## Debug Log Types A trace flag triggers an Apex debug log. The trace flag includes a log type, a debug level for each debug log category, a start time, and an end time. The log types are: - `DEVELOPER_LOG`—A trace flag to log your activities in the Developer Console. - `USER_DEBUG`—A trace flag to log an individual user’s activities. - `CLASS_TRACING`—A trace flag to override the logging levels of Apex classes and triggers. It cannot generate logs on its own. Logging occurs only if either the `USER_DEBUG` or the `DEVELOPER_LOG` trace flag is also active for the user running the code. ## Debug Log Categories Each debug level profile includes a debug log level for each of the following log categories. The amount of information logged for each category depends on the log level. | Log Category | Description | | --- | --- | | Database | Includes information about database activity, including every data manipulation language (DML) statement or inline SOQL or SOSL query. | | Workflow | Includes information for workflow rules, flows, and processes, such as the rule name and the actions taken. | | NBA | Includes information about Einstein Next Best Action activity, including strategy execution details from Strategy Builder. | | Validation | Includes information about validation rules, such as the name of the rule and whether the rule evaluated `true` or `false`. | | Callout | Includes the request-response XML that the server is sending and receiving from an external web service. Useful when debugging issues related to using Lightning Platform web service API calls or troubleshooting user access to external objects via Salesforce Connect. | | Apex Code | Includes information about the Apex code. Can include information such as log messages generated by DML statements, inline SOQL or SOSL queries, the start and completion of any triggers, and the start and completion of any test method. | | Apex Profiling | Includes cumulative profiling information, such as the limits for your namespace and the number of emails sent. | | Visualforce | Includes information about Visualforce events, including serialization and deserialization of the view state or the evaluation of a formula field in a Visualforce page. | | System | Includes information about calls to all system methods such as the `System.debug` method. | ## Debug Log Levels Each debug level profile includes one of the following log levels for each log category. The levels are listed from lowest to highest. Specific events are logged based on the combination of category and levels. Most events start being logged at the INFO level. The level is cumulative, that is, if you select FINE, the log also includes all events logged at the DEBUG, INFO, WARN, and ERROR levels. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note Not all levels are available for all categories. Only the levels that correspond to one or more events are available. - `NONE`—No logging. ```java system.logginglevel, none ``` - `ERROR`—Error and exception logging. ```java system.logginglevel, error ``` - `WARN`—Warning logging. ```java system.logginglevel, warn ``` - `INFO`—Informational logging. ```java system.logginglevel, info ``` - `DEBUG`—User-specified logging. ```java system.logginglevel, debug ``` - `FINE`—High level of logging. ```java system.logginglevel, fine ``` - `FINER`—Higher level of logging than `FINE`. ```java system.logginglevel, finer ``` - `FINEST`—Highest level of logging. ```java system.logginglevel, finest ``` ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important Before running a deployment, verify that the Apex Code log level isn’t set to FINEST. Otherwise, the deployment is likely to take longer than expected. If the Developer Console is open, the log levels in the Developer Console affect all logs, including logs created during a deployment. ## Debug Log Line Example Here’s is an example of what is written to the debug log. The debug log line represents an event. Here, the event is `USER_DEBUG`. The format is timestamp | event identifier. **Debug Log Line Example** ![Debug Log Line Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/debug_log_line_user_debug.png) - timestamp: Consists of the time when the event occurred and a value between parentheses. The time is in the user’s time zone and in the format HH:mm:ss.SSS. The value in parentheses represents the time elapsed in nanoseconds since the start of the request. The elapsed time value is excluded from logs reviewed in the Developer Console when you use the Execution Log view. However, you can see the elapsed time when you use the Raw Log view. To open the Raw Log view, from the Developer Console’s Logs tab, right-click the name of a log and select **Open Raw Log**. - event identifier: Specifies the event that triggered the debug log entry (such as `SAVEPOINT_RESET` or `VALIDATION_RULE`). Also includes additional information logged with that event, such as the method name or the line and character number where the code was executed. If a line number can’t be located, `[EXTERNAL]` is logged instead. For example, `[EXTERNAL]` is logged for built-in Apex classes or code that’s in a managed package. For some events (`CODE_UNIT_STARTED`, `CODE_UNIT_FINISHED`, `VF_APEX_CALL_START`, `VF_APEX_CALL_END`, `CONSTRUCTOR_ENTRY`, and `CONSTRUCTOR_EXIT`), the end of the event identifier includes a pipe (`|`) followed by a typeRef for an Apex class or trigger. For a trigger, the typeRef begins with the SFDC trigger prefix `__sfdc_trigger/`. For example, `__sfdc_trigger/YourTriggerName` or `__sfdc_trigger/YourNamespace/YourTriggerName`. For a class, the typeRef uses the format `YourClass`, `YourClass$YourInnerClass,` or `YourNamespace/YourClass$YourInnerClass`. In this example, the event identifier is made up of the following: - Event name: ``` USER_DEBUG ``` - Line number of the event in the code: ``` [2] ``` - Logging level the `System.Debug` method was set to: ``` DEBUG ``` - User-supplied string for the `System.Debug` method: ``` Hello world! ``` This code snippet triggers the following example of a log line. **Debug Log Line Code Snippet** ![Debug Log Line Code Snippet](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/debug_log_code_snippet.png) The following log line is recorded when the test reaches line 5 in the code. ``` 15:51:01.071 (55856000)|DML_BEGIN|[5]|Op:Insert|Type:Invoice_Statement__c|Rows:1 ``` In this example, the event identifier is made up of the following. - Event name: ``` DML_BEGIN ``` - Line number of the event in the code: ``` [5] ``` - DML operation type—`Insert`: ``` Op:Insert ``` - Object name: ``` Type:Invoice_Statement__c ``` - Number of rows passed into the DML operation: ``` Rows:1 ``` ## Log Event Types The combination of log category and log level that specify which events get logged. Each event can log additional information, such as the line and character number where the event started, fields associated with the event, and duration of the event. The following event types are logged. The table lists which fields or other information is logged with each event, and which combination of log level and category causes an event to be logged.
Event Name Fields or Information Logged with Event Category Logged Level Logged
BULK_HEAP_ALLOCATE Number of bytes allocated Apex Code FINEST
CALLOUT_REQUEST Line number and request headers Callout INFO and above

CALLOUT_REQUEST

(External object access via cross-org and OData adapters for Salesforce Connect)

External endpoint and method Callout INFO and above
CALLOUT_RESPONSE Line number and response body Callout INFO and above

CALLOUT_RESPONSE

(External object access via cross-org and OData adapters for Salesforce Connect)

Status and status code Callout INFO and above
CODE_UNIT_FINISHED

Line number, code unit name, such as MyTrigger on Account trigger event BeforeInsert for [new], and:

  • For Apex methods, the namespace (if applicable), class name, and method name; for example, YourNamespace.YourClass.yourMethod() or YourClass.yourMethod()
  • For Apex triggers, a typeRef; for example, __sfdc_trigger/YourNamespace.YourTrigger or __sfdc_trigger/YourTrigger
Apex Code ERROR and above
CODE_UNIT_STARTED

Line number, code unit name, such as MyTrigger on Account trigger event BeforeInsert for [new], and:

  • For Apex methods, the namespace (if applicable), class name, and method name; for example, YourNamespace.YourClass.yourMethod() or YourClass.yourMethod()
  • For Apex triggers, a typeRef; for example, __sfdc_trigger/YourTrigger
Apex Code ERROR and above
CONSTRUCTOR_ENTRY Line number, Apex class ID, the string <init>() with the types of parameters (if any) between the parentheses, and a typeRef; for example, YourClass or YourClass.YourInnerClass Apex Code FINE and above
CONSTRUCTOR_EXIT Line number, the string <init>() with the types of parameters (if any) between the parentheses, and a typeRef; for example, YourClass or YourClass.YourInnerClass Apex Code FINE and above
CUMULATIVE_LIMIT_USAGE None Apex Profiling INFO and above
CUMULATIVE_LIMIT_USAGE_END None Apex Profiling INFO and above
CUMULATIVE_PROFILING None Apex Profiling FINE and above
CUMULATIVE_PROFILING_BEGIN None Apex Profiling FINE and above
CUMULATIVE_PROFILING_END None Apex Profiling FINE and above
CURSOR_CREATE_BEGIN

Line number and SOQL query

This event occurs when you call Database.getCursor() or Database.getPaginationCursor().

DB INFO and above
CURSOR_CREATE_END

Line number, query ID, and number of rows in the result set

This event occurs when a cursor or pagination cursor is created.

DB INFO and above
CURSOR_FETCH

Line number, query ID, cursor offset position, and number of rows fetched

This event occurs when you call Cursor.fetch().

DB INFO and above
CURSOR_FETCH_PAGE

Line number, query ID, cursor offset position, and number of rows on the current page

This event occurs when you call PaginationCursor.fetchPage().

DB INFO and above
DML_BEGIN Line number, operation (such as Insert or Update), record name or type, and number of rows passed into DML operation DB INFO and above
DML_END Line number DB INFO and above
EMAIL_QUEUE Line number Apex Code INFO and above
ENTERING_MANAGED_PKG Package namespace Apex Code FINE and above
EVENT_SERVICE_PUB_BEGIN Event Type Workflow INFO and above
EVENT_SERVICE_PUB_DETAIL Subscription IDs, ID of the user who published the event, and event message data Workflow FINER and above
EVENT_SERVICE_PUB_END Event Type Workflow INFO and above
EVENT_SERVICE_SUB_BEGIN Event type and action (subscribe or unsubscribe) Workflow INFO and above
EVENT_SERVICE_SUB_DETAIL ID of the subscription, ID of the subscription instance, reference data (such as process API name), ID of the user who activated or deactivated the subscription, and event message data Workflow FINER and above
EVENT_SERVICE_SUB_END Event type and action (subscribe or unsubscribe) Workflow INFO and above
EXCEPTION_THROWN Line number, exception type, and message Apex Code INFO and above
EXECUTION_FINISHED None Apex Code ERROR and above
EXECUTION_STARTED None Apex Code ERROR and above
FATAL_ERROR Exception type, message, and stack trace Apex Code ERROR and above
FLOW_ACTIONCALL_DETAIL Interview ID, element name, action type, action enum or ID, whether the action call succeeded, and error message Workflow FINER and above
FLOW_ASSIGNMENT_DETAIL Interview ID, reference, operator, and value Workflow FINER and above
FLOW_BULK_ELEMENT_BEGIN Interview ID and element type Workflow FINE and above
FLOW_BULK_ELEMENT_DETAIL Interview ID, element type, element name, number of records Workflow FINER and above
FLOW_BULK_ELEMENT_END Interview ID, element type, element name, number of records, and execution time Workflow FINE and above
FLOW_BULK_ELEMENT_LIMIT_USAGE

Incremented usage toward a limit for this bulk element. Each event displays the usage for one of the following limits:

SOQL queries
SOQL query rows
SOSL queries
DML statements
DML rows
CPU time in ms
Heap size in bytes
Callouts
Email invocations
Future calls
Jobs in queue
Push notifications
Workflow FINER and above
FLOW_BULK_ELEMENT_NOT_SUPPORTED Operation, element name, and entity name that doesn’t support bulk operations Workflow INFO and above
FLOW_CREATE_INTERVIEW_BEGIN Organization ID, definition ID, and version ID Workflow INFO and above
FLOW_CREATE_INTERVIEW_END Interview ID and flow name Workflow INFO and above
FLOW_CREATE_INTERVIEW_ERROR Message, organization ID, definition ID, and version ID Workflow ERROR and above
FLOW_ELEMENT_BEGIN Interview ID, element type, and element name Workflow FINE and above
FLOW_ELEMENT_DEFERRED Element type and element name Workflow FINE and above
FLOW_ELEMENT_END Interview ID, element type, and element name Workflow FINE and above
FLOW_ELEMENT_ERROR Message, element type, and element name (flow runtime exception) Workflow ERROR and above
FLOW_ELEMENT_ERROR Message, element type, and element name (spark not found) Workflow ERROR and above
FLOW_ELEMENT_ERROR Message, element type, and element name (designer exception) Workflow ERROR and above
FLOW_ELEMENT_ERROR Message, element type, and element name (designer limit exceeded) Workflow ERROR and above
FLOW_ELEMENT_ERROR Message, element type, and element name (designer runtime exception) Workflow ERROR and above
FLOW_ELEMENT_FAULT Message, element type, and element name (fault path taken) Workflow WARNING and above
FLOW_ELEMENT_LIMIT_USAGE

Incremented usage toward a limit for this element. Each event displays the usage for one of these limits.

SOQL queries
SOQL query rows
SOSL queries
DML statements
DML rows
CPU time in ms
Heap size in bytes
Callouts
Email invocations
Future calls
Jobs in queue
Push notifications
Workflow FINER and above
FLOW_INTERVIEW_FINISHED_LIMIT_USAGE

Usage toward a limit when the interview finishes. Each event displays the usage for one of these limits.

SOQL queries
SOQL query rows
SOSL queries
DML statements
DML rows
CPU time in ms
Heap size in bytes
Callouts
Email invocations
Future calls
Jobs in queue
Push notifications
Workflow FINER and above
FLOW_INTERVIEW_PAUSED Interview ID, flow name, and why the user paused Workflow INFO and above
FLOW_INTERVIEW_RESUMED Interview ID and flow name Workflow INFO and above
FLOW_LOOP_DETAIL

Interview ID, index, and value

The index is the position in the collection variable for the item that the loop is operating on.

Workflow FINER and above
FLOW_RULE_DETAIL Interview ID, rule name, and result Workflow FINER and above
FLOW_START_INTERVIEW_BEGIN Interview ID and flow name Workflow INFO and above
FLOW_START_INTERVIEW_END Interview ID and flow name Workflow INFO and above
FLOW_START_INTERVIEWS_BEGIN Requests Workflow INFO and above
FLOW_START_INTERVIEWS_END Requests Workflow INFO and above
FLOW_START_INTERVIEWS_ERROR Message, interview ID, and flow name Workflow ERROR and above
FLOW_START_INTERVIEW_LIMIT_USAGE

Usage toward a limit at the interview’s start time. Each event displays the usage for one of the following limits:

SOQL queries
SOQL query rows
SOSL queries
DML statements
DML rows
CPU time in ms
Heap size in bytes
Callouts
Email invocations
Future calls
Jobs in queue
Push notifications
Workflow FINER and above
FLOW_START_SCHEDULED_RECORDS Message and number of records that the flow runs for Workflow INFO and above
FLOW_SUBFLOW_DETAIL Interview ID, name, definition ID, and version ID Workflow FINER and above
FLOW_VALUE_ASSIGNMENT Interview ID, key, and value Workflow FINER and above
FLOW_WAIT_EVENT_RESUMING_DETAIL Interview ID, element name, event name, and event type Workflow FINER and above
FLOW_WAIT_EVENT_WAITING_DETAIL Interview ID, element name, event name, event type, and whether conditions were met Workflow FINER and above
FLOW_WAIT_RESUMING_DETAIL Interview ID, element name, and persisted interview ID Workflow FINER and above
FLOW_WAIT_WAITING_DETAIL Interview ID, element name, number of events that the element is waiting for, and persisted interview ID Workflow FINER and above
HEAP_ALLOCATE Line number and number of bytes Apex Code FINER and above
HEAP_DEALLOCATE Line number and number of bytes deallocated Apex Code FINER and above
IDEAS_QUERY_EXECUTE Line number DB FINEST
LIMIT_USAGE_FOR_NS

Namespace and the following limits:

Number of SOQL queries

Number of query rows

Number of SOSL queries

Number of DML statements

Number of DML rows

Number of code statements

Maximum heap size

Number of callouts

Number of Email Invocations

Number of fields describes

Number of record type describes

Number of child relationships

 describes

Number of picklist describes

Number of future calls

Number of find similar calls

Number of System.runAs() 

invocations
Apex Profiling FINEST
METHOD_ENTRY Line number, the Lightning Platform ID of the class, and method signature (with namespace, if applicable) Apex Code FINE and above
METHOD_EXIT

Line number, the Lightning Platform ID of the class, and method signature (with namespace, if applicable)

For constructors, the following information is logged: line number and class name.

Apex Code FINE and above
NAMED_CREDENTIAL_REQUEST

Named Credential Id, Named Credential Name, Endpoint, Method, External Credential Type, Http Header Authorization, Request Size bytes, and Retry on 401.

If using an outbound network connection, these additional fields are also logged: Outbound Network Connection Id, Outbound Network Connection Name, Outbound Network Connection Status, Host Type, Host Region, and Private Connect Outbound Hourly Data Usage Percent.

Callout INFO and above
NAMED_CREDENTIAL_RESPONSE Truncated section of the response body that’s returned from the NamedCredential callout. Callout INFO and above
NAMED_CREDENTIAL_RESPONSE_DETAIL

Named Credential Id, Named Credential Name, Status Code, Response Size bytes, Overall Callout Time ms, and Connect Time ms.

If using an outbound network connection, these additional fields are also logged: Outbound Network Connection Id, Outbound Network Connection Name, and Private Connect Outbound Hourly Data Usage Percent.

Callout FINER and above
NBA_NODE_BEGIN Element name, element type NBA FINE and above
NBA_NODE_DETAIL Element name, element type, message NBA FINE and above
NBA_NODE_END Element name, element type, message NBA FINE and above
NBA_NODE_ERROR Element name, element type, error message NBA ERROR and above
NBA_OFFER_INVALID Name, ID, reason NBA FINE and above
NBA_STRATEGY_BEGIN Strategy name NBA FINE and above
NBA_STRATEGY_END Strategy name, count of outputs NBA FINE and above
NBA_STRATEGY_ERROR Strategy name, error message NBA ERROR and above
POP_TRACE_FLAGS Line number, the Lightning Platform ID of the class or trigger that has its log levels set and that is going into scope, the name of this class or trigger, and the log level settings that are in effect after leaving this scope System INFO and above
PUSH_NOTIFICATION_INVALID_APP

App namespace, app name

This event occurs when Apex code is trying to send a notification to an app that doesn't exist in the org, or isn’t push-enabled.

Apex Code ERROR
PUSH_NOTIFICATION_INVALID_CERTIFICATE

App namespace, app name

This event indicates that the certificate is invalid. For example, it’s expired.

Apex Code ERROR
PUSH_NOTIFICATION_INVALID_NOTIFICATION

App namespace, app name, service type (Apple or Android GCM), user ID, device, payload (substring), payload length.

This event occurs when a notification payload is too long.

Apex Code ERROR
PUSH_NOTIFICATION_NO_DEVICES

App namespace, app name

This event occurs when none of the users we’re trying to send notifications to have devices registered.

Apex Code DEBUG
PUSH_NOTIFICATION_NOT_ENABLED

This event occurs when push notifications aren’t enabled in your org.

Apex Code INFO
PUSH_NOTIFICATION_SENT

App namespace, app name, service type (Apple or Android GCM), user ID, device, payload (substring)

This event records that a notification was accepted for sending. We don’t guarantee delivery of the notification.

Apex Code DEBUG
PUSH_TRACE_FLAGS Line number, the Salesforce ID of the class or trigger that has its log levels set and that is going out of scope, the name of this class or trigger, and the log level settings that are in effect after entering this scope System INFO and above
QUERY_MORE_BEGIN Line number DB INFO and above
QUERY_MORE_END Line number DB INFO and above
QUERY_MORE_ITERATIONS Line number and the number of queryMore iterations DB INFO and above
SAVEPOINT_ROLLBACK Line number and Savepoint name DB INFO and above
SAVEPOINT_SET Line number and Savepoint name DB INFO and above
SLA_END Number of cases, load time, processing time, number of case milestones to insert, update, or delete, and new trigger Workflow INFO and above
SLA_EVAL_MILESTONE Milestone ID Workflow INFO and above
SLA_NULL_START_DATE None Workflow INFO and above
SLA_PROCESS_CASE Case ID Workflow INFO and above
SOQL_EXECUTE_BEGIN Line number, number of aggregations, and query source DB INFO and above
SOQL_EXECUTE_END Line number, number of rows, and duration in milliseconds DB INFO and above
SOQL_EXECUTE_EXPLAIN Query Plan details for the executed SOQL query. To get feedback on query performance, see Get Feedback on Query Performance. DB FINEST
SOSL_EXECUTE_BEGIN Line number and query source DB INFO and above
SOSL_EXECUTE_END Line number, number of rows, and duration in milliseconds DB INFO and above
STACK_FRAME_VARIABLE_LIST

Frame number and variable list of the form: Variable number | Value. For example:

var1:50

var2:'Hello World'
Apex Profiling FINE and above
STATEMENT_EXECUTE Line number Apex Code FINER and above
STATIC_VARIABLE_LIST

Variable list of the form: Variable number | Value. For example:

var1:50

var2:'Hello World'
Apex Profiling FINE and above
SYSTEM_CONSTRUCTOR_ENTRY Line number and the string <init>() with the types of parameters, if any, between the parentheses System FINE and above
SYSTEM_CONSTRUCTOR_EXIT Line number and the string <init>() with the types of parameters, if any, between the parentheses System FINE and above
SYSTEM_METHOD_ENTRY Line number and method signature System FINE and above
SYSTEM_METHOD_EXIT Line number and method signature System FINE and above
SYSTEM_MODE_ENTER Mode name System INFO and above
SYSTEM_MODE_EXIT Mode name System INFO and above
TESTING_LIMITS None Apex Profiling INFO and above
TOTAL_EMAIL_RECIPIENTS_QUEUED Number of emails sent Apex Profiling FINE and above
USER_DEBUG Line number, logging level, and user-supplied string Apex Code DEBUG and above by default. If the user sets the log level for the System.Debug method, the event is logged at that level instead.
USER_INFO Line number, user ID, username, user timezone, and user timezone in GMT Apex Code ERROR and above
VALIDATION_ERROR Error message Validation INFO and above
VALIDATION_FAIL None Validation INFO and above
VALIDATION_FORMULA Formula source and values Validation INFO and above
VALIDATION_PASS None Validation INFO and above
VALIDATION_RULE Rule name Validation INFO and above
VARIABLE_ASSIGNMENT Line number, variable name (including the variable’s namespace, if applicable), a string representation of the variable’s value, and the variable’s address Apex Code FINEST
VARIABLE_SCOPE_BEGIN Line number, variable name (including the variable’s namespace, if applicable), type, a value that indicates whether the variable can be referenced, and a value that indicates whether the variable is static Apex Code FINEST
VARIABLE_SCOPE_END None Apex Code FINEST
VF_APEX_CALL_START Element name, method name, return type, and the typeRef for the Visualforce controller (for example, YourApexClass) Apex Code INFO and above
VF_APEX_CALL_END Element name, method name, return type, and the typeRef for the Visualforce controller (for example, YourApexClass) Apex Code INFO and above
VF_DESERIALIZE_VIEWSTATE_BEGIN View state ID Visualforce INFO and above
VF_DESERIALIZE_VIEWSTATE_END None Visualforce INFO and above
VF_EVALUATE_FORMULA_BEGIN View state ID and formula Visualforce FINER and above
VF_EVALUATE_FORMULA_END None Visualforce FINER and above
VF_PAGE_MESSAGE Message text Apex Code INFO and above
VF_SERIALIZE_VIEWSTATE_BEGIN View state ID Visualforce INFO and above
VF_SERIALIZE_VIEWSTATE_END None Visualforce INFO and above
WF_ACTION Action description Workflow INFO and above
WF_ACTION_TASK Task subject, action ID, rule name, rule ID, owner, and due date Workflow INFO and above
WF_ACTIONS_END Summary of actions performed Workflow INFO and above
WF_APPROVAL Transition type, EntityName: NameField Id, and process node name Workflow INFO and above
WF_APPROVAL_REMOVE EntityName: NameField Id Workflow INFO and above
WF_APPROVAL_SUBMIT EntityName: NameField Id Workflow INFO and above
WF_APPROVAL_SUBMITTER Submitter ID, submitter full name, and error message Workflow INFO and above
WF_ASSIGN Owner and assignee template ID Workflow INFO and above
WF_CRITERIA_BEGIN EntityName: NameField Id, rule name, rule ID, and (if the rule respects trigger types) trigger type and recursive count Workflow INFO and above
WF_CRITERIA_END Boolean value indicating success (true or false) Workflow INFO and above
WF_EMAIL_ALERT Action ID, rule name, and rule ID Workflow INFO and above
WF_EMAIL_SENT Email template ID, recipients, and CC emails Workflow INFO and above
WF_ENQUEUE_ACTIONS Summary of actions enqueued Workflow INFO and above
WF_ESCALATION_ACTION Case ID and escalation date Workflow INFO and above
WF_ESCALATION_RULE None Workflow INFO and above
WF_EVAL_ENTRY_CRITERIA Process name, email template ID, and Boolean value indicating the result (true or false) Workflow INFO and above
WF_FIELD_UPDATE EntityName: NameField Id and the object or field name Workflow INFO and above
WF_FLOW_ACTION_BEGIN ID of flow trigger Workflow INFO and above
WF_FLOW_ACTION_DETAIL ID of flow trigger, object type, and ID of record whose creation or update caused the workflow rule to fire, name and ID of workflow rule, and the names and values of flow variables Workflow FINE and above
WF_FLOW_ACTION_END ID of flow trigger Workflow INFO and above
WF_FLOW_ACTION_ERROR ID of flow trigger, ID of flow definition, ID of flow version, and flow error message Workflow ERROR and above
WF_FLOW_ACTION_ERROR_DETAIL Detailed flow error message Workflow ERROR and above
WF_FORMULA Formula source and values Workflow INFO and above
WF_HARD_REJECT None Workflow INFO and above
WF_NEXT_APPROVER Owner, next owner type, and field Workflow INFO and above
WF_NO_PROCESS_FOUND None Workflow INFO and above
WF_OUTBOUND_MSG EntityName: NameField Id, action ID, rule name, and rule ID Workflow INFO and above
WF_PROCESS_FOUND Process definition ID and process label Workflow INFO and above
WF_PROCESS_NODE Process name Workflow INFO and above
WF_REASSIGN_RECORD EntityName: NameField Id and owner Workflow INFO and above
WF_RESPONSE_NOTIFY Notifier name, notifier email, notifier template ID, and reply-to email Workflow INFO and above
WF_RULE_ENTRY_ORDER Integer indicating order Workflow INFO and above
WF_RULE_EVAL_BEGIN Rule type Workflow INFO and above
WF_RULE_EVAL_END None Workflow INFO and above
WF_RULE_EVAL_VALUE Value Workflow INFO and above
WF_RULE_FILTER Filter criteria Workflow INFO and above
WF_RULE_INVOCATION EntityName: NameField Id Workflow INFO and above
WF_RULE_NOT_EVALUATED None Workflow INFO and above
WF_SOFT_REJECT Process name Workflow INFO and above
WF_SPOOL_ACTION_BEGIN Node type Workflow INFO and above
WF_TIME_TRIGGER EntityName: NameField Id, time action, time action container, and evaluation Datetime Workflow INFO and above
WF_TIME_TRIGGERS_BEGIN None Workflow INFO and above

XDS_DETAIL

(External object access via cross-org and OData adapters for Salesforce Connect)

For OData adapters, the POST body and the name and evaluated formula for custom HTTP headers Callout FINER and above

XDS_RESPONSE

(External object access via cross-org and OData adapters for Salesforce Connect)

External data source, external object, request details, number of returned records, and system usage Callout INFO and above

XDS_RESPONSE_DETAIL

(External object access via cross-org and OData adapters for Salesforce Connect)

Truncated response from the external system, including returned records Callout FINER and above

XDS_RESPONSE_ERROR

(External object access via cross-org and OData adapters for Salesforce Connect)

Error message Callout ERROR and above
#### See Also - [Debug Log Filtering for Apex Classes and Apex Triggers](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_classes.htm&release=264.0.0&type=5 "Debug log filtering provides a mechanism for fine-tuning the log verbosity at the trigger and class level.") - [Set Up Debug Logging](https://help.salesforce.com/s/articleView?id=xcloud.code_add_users_debug_log.htm&type=5&language=en_US) - [_Salesforce DX Developer Guide_: Generate and View Apex Debug Logs](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_develop_view_apex_debug_logs.htm) - [_Apex Developer Guide_: Debugging Apex](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_debugging.htm) # Debug Log Order of Precedence Which events are logged depends on various factors. These factors include your trace flags, the default logging levels, your API header, user-based system log enablement, and the log levels set by your entry points. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions
The order of precedence for debug log levels is: - (1) Trace flags override all other logging logic. The Developer Console sets a trace flag when it loads, and that trace flag remains in effect until it expires. You can set trace flags in the Developer Console or in Setup or by using the `TraceFlag` and `DebugLevel` Tooling API objects. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note Setting class and trigger trace flags doesn’t cause logs to be generated or saved. Class and trigger trace flags override other logging levels, including logging levels set by user trace flags, but they don’t cause logging to occur. If logging is enabled when classes or triggers execute, logs are generated at the time of execution. - (2) If you don’t have active trace flags, synchronous and asynchronous Apex tests execute with the default logging levels. Default logging levels are: | Test | Logging Level | | --- | --- | | DB | INFO | | APEX\_CODE | DEBUG | | APEX\_PROFILING | INFO | | WORKFLOW | INFO | | VALIDATION | INFO | | CALLOUT | INFO | | VISUALFORCE | INFO | | SYSTEM | DEBUG | - (3) If no relevant trace flags are active, and no tests are running, your API header sets your logging levels. API requests that are sent without debugging headers generate transient logs—logs that aren’t saved—unless another logging rule is in effect. - (4) If your entry point sets a log level, that log level is used. For example, Visualforce requests can include a debugging parameter that sets log levels. If none of these cases apply, logs aren’t generated or persisted. #### See Also - [Set Up Debug Logging](https://help.salesforce.com/s/articleView?id=xcloud.code_add_users_debug_log.htm&type=5&language=en_US) - [Logs Tab](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_browser_logs.htm&release=264.0.0&type=5 "Use the Logs tab in the Developer Console to access logs that include database events, Apex processing, workflow, callouts, and validation logic.") - [Debug Log Details](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_details.htm&release=264.0.0&type=5 "A debug log includes a header, execution units, code units, log lines, and other log data.") - [Debug Log Levels](https://help.salesforce.com/s/articleView?id=platform.code_setting_debug_log_levels.htm&release=264.0.0&type=5 "To specify the level of information that gets included in debug logs, set up trace flags and debug levels. The debug levels assigned to your trace flags control the type and amount of information that is logged for different events. After logging has occurred, inspect debug events in your debug logs.") - [_Lightning Platform Tooling API Developer’s Guide_](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_traceflag.htm) - [_SOAP API Developer Guide_: DebuggingHeader](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_header_debuggingheader.htm) # Debug Logs Use debug logs to track events that occur in your org. Debug logs are generated when you have active user-based trace flags, when you run Apex tests, and when executed code or API requests include debugging parameters or headers. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience

Available in: Performance, Unlimited, Developer, Enterprise, and Database.com Editions

The Salesforce user interface, Email Services, and Approvals are not available in Database.com.

User Permissions Needed
To view, retain, and delete debug logs: View All Data
A debug log can record database operations, system processes, and errors that occur when executing a transaction or running unit tests. Debug logs can contain information about: - Database changes - HTTP callouts - Apex errors - Resources used by Apex - Automated workflow processes, such as: - Workflow rules - Assignment rules - Approval processes - Validation rules ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note The debug log does not include information from actions triggered by time-based workflows. The system generates a debug log every time a transaction that is included in the defined filter criteria is executed. Transactions can be generated from the following: - Salesforce user interface - API - `executeanonymous` calls - Web services - Email services The [filter criteria](https://help.salesforce.com/s/articleView?id=platform.code_setting_debug_log_levels.htm&release=264.0.0&type=5 "To specify the level of information that gets included in debug logs, set up trace flags and debug levels. The debug levels assigned to your trace flags control the type and amount of information that is logged for different events. After logging has occurred, inspect debug events in your debug logs.") set for the user, the Developer Console, or the API header determine what is included in the debug log. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note Debug logs don’t include transactions that lead conversion triggers. For example, suppose that a converted lead triggers a workflow rule. The debug log doesn’t show that this workflow rule fired. The following are examples of when to use a debug log. - As a developer creating a custom application, you can use the debug log to validate the application’s behavior. For example, you can set the debug log filter to check for callouts. In the resulting debug log, you can view information about the success and duration of those callouts. - As an administrator for an org, you can use the debug log to troubleshoot when a user reports difficulty. Set a trace flag on the user, ask the user to step through the problematic transaction, and then use the debug log to view the system details. ## Debug Log Limits Debug logs have the following limits. - Each debug log must be 20 MB or smaller. Debug logs that are larger than 20 MB are reduced in size by removing older log lines, such as log lines for earlier `System.debug` statements. The log lines can be removed from any location, not just the start of the debug log. - System debug logs are retained for 24 hours. Monitoring debug logs are retained for seven days. - If you generate more than 1,000 MB of debug logs in a 15-minute window, your trace flags are disabled. We send an email to the users who last modified the trace flags, informing them that they can re-enable the trace flag in 15 minutes. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_warning.png) Warning If the debug log trace flag is enabled on a frequently accessed Apex class or for a user executing requests often, the request can result in failure, regardless of the time window and the size of the debug logs. - When your org accumulates more than 1,000 MB of debug logs, we prevent users in the org from adding or editing trace flags. To add or edit trace flags so that you can generate more logs after you reach the limit, delete some debug logs. ## Debug Log Truncation To provide the most pertinent information, debug logs are truncated, usually starting with older log entries. The newest log entries are always preserved. 200 KB of the debug log are deleted when the log reaches its maximum size of 20 MB. The following events are necessary for processing the debug log, so they’re not deleted during truncation. - `EXECUTION_STARTED` - `EXECUTION_FINISHED` - `CODE_UNIT_STARTED` - `CODE_UNIT_FINISHED` - `METHOD_ENTRY` - `METHOD_EXIT` - `CONSTRUCTOR_ENTRY` - `CONSTRUCTOR_EXIT` - `SOQL_EXECUTE_BEGIN` - `SOQL_EXECUTE_END` - `SOSL_EXECUTE_BEGIN` - `SOSL_EXECUTE_END` - `CALLOUT_REQUEST` - `CALLOUT_RESPONSE` - `FATAL_ERROR` Log entries for events that are necessary for processing the debug log aren’t truncated. However, other log information that appears between the start and end lines of these log entries is removed during log truncation. - **[Debug Log Details](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_details.htm&release=264.0.0&type=5)** A debug log includes a header, execution units, code units, log lines, and other log data. - **[Debug Log Order of Precedence](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_precedence.htm&release=264.0.0&type=5)** Which events are logged depends on various factors. These factors include your trace flags, the default logging levels, your API header, user-based system log enablement, and the log levels set by your entry points. - **[Debug Log Levels](https://help.salesforce.com/s/articleView?id=platform.code_setting_debug_log_levels.htm&release=264.0.0&type=5)** To specify the level of information that gets included in debug logs, set up trace flags and debug levels. The debug levels assigned to your trace flags control the type and amount of information that is logged for different events. After logging has occurred, inspect debug events in your debug logs. - **[Searching a Debug Log](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_search_debug_log.htm&release=264.0.0&type=5)** To search for text in a debug log, use the Command Line Window in the Developer Console. - **[Delete Debug Logs](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_delete.htm&release=264.0.0&type=5)** When your org accumulates too many debug logs, delete some or all of your system logs and monitoring logs. Use the Developer Console’s Query Editor to find and delete the logs using Tooling API. - **[Debug Log Filtering for Apex Classes and Apex Triggers](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_classes.htm&release=264.0.0&type=5)** Debug log filtering provides a mechanism for fine-tuning the log verbosity at the trigger and class level. - **[Set Up Apex Class and Trigger Trace Flags](https://help.salesforce.com/s/articleView?id=platform.code_debug_log_classes_setup.htm&release=264.0.0&type=5)** You can set up an Apex class or trigger trace flag in Salesforce Setup, in the Developer Console, or by creating Tooling API objects with Salesforce CLI commands. These trace flags have the CLASS\_TRACING debug log type and override the debug log levels of the USER\_DEBUG and DEVELOPER\_LOG trace flags. #### See Also - [Checkpoints Tab](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_checkpoints.htm&release=264.0.0&type=5 "The Checkpoints tab displays a list of saved checkpoints that preserve a snapshot of the state of objects in memory at the time the checkpoint was reached.") - [View State Tab](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_view_state.htm&release=264.0.0&type=5 "The View State tab in the Developer Console allows you to examine the view state for a Visualforce page request.") - [Logs Tab](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_browser_logs.htm&release=264.0.0&type=5 "Use the Logs tab in the Developer Console to access logs that include database events, Apex processing, workflow, callouts, and validation logic.") # Debug Your Code Use checkpoints, logs, and the View State tab to help debug the code you’ve written. - **[Set Checkpoints in Apex Code](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_checkpoints_setting.htm&release=264.0.0&type=5)** Use Developer Console checkpoints to debug your Apex classes and triggers. You can’t set checkpoints in Visualforce markup. - **[Overlaying Apex Code and SOQL Statements](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_checkpoints_overlaying_soql.htm&release=264.0.0&type=5)** Use the Developer Console to overlay diagnostics that run when Apex code executes at a checkpoint, without changing any code. - **[Checkpoint Inspector](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_view_checkpoints.htm&release=264.0.0&type=5)** Use checkpoints to investigate the objects in memory at a specific point of execution and see the other objects with references to them. - **[Log Inspector](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_view_system_log.htm&release=264.0.0&type=5)** The Log Inspector is a context-sensitive execution viewer in the Developer Console. It shows the source of an operation, what triggered the operation, and what occurred next. Use this tool to inspect debug logs that include database events, Apex processing, workflow, and validation logic. - **[Use Custom Perspectives in the Log Inspector](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_perspectives.htm&release=264.0.0&type=5)** A perspective is a predefined layout of panels in the Log Inspector. - **[Debug Logs](https://help.salesforce.com/s/articleView?id=platform.code_debug_log.htm&release=264.0.0&type=5)** Use debug logs to track events that occur in your org. Debug logs are generated when you have active user-based trace flags, when you run Apex tests, and when executed code or API requests include debugging parameters or headers. #### See Also - [Work With APIs](https://help.salesforce.com/s/articleView?id=platform.work_with_apis.htm&release=264.0.0&type=5 "Salesforce provides programmatic access to your org’s information using simple, powerful, and secure application programming interfaces.") - [Write Code](https://help.salesforce.com/s/articleView?id=platform.writing_code.htm&release=264.0.0&type=5 "Write code using the Apex programming language to add business logic or use the Visualforce markup language to create the user interface. Integrate your application using APIs and authenticate your external applications.") - [Test Your Changes](https://help.salesforce.com/s/articleView?id=platform.testing_your_code.htm&release=264.0.0&type=5 "Testing is key to the success of your application, particularly if you deploy your application to customers. If you validate that your application works as expected with no unexpected behavior, your customers are going to trust you more.") - [Secure Your Code](https://help.salesforce.com/s/articleView?id=platform.securing_your_code.htm&release=264.0.0&type=5 "This section contains information about implementing security in your code.") # Decide Between Before-Save and After-Save Record-Triggered Flows Record-triggered flows run when someone creates, updates, or deletes a record in Salesforce. Before-save flows run before Salesforce saves the record. After-save flows run after Salesforce saves the record. Use this guide to pick the right type for your automation. ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. ## When to Use a Before-Save Flow Use a before-save flow when you want to update or validate the record that triggered the flow before it's saved to the database. A before-save flow can only update and validate records. ## When to Use an After-Save Flow Use an after-save flow to do anything beyond what a before-save flow can do. After-save flows can update or validate the triggering record after it's saved to the database. In addition, after-save flows use the triggering record's ID to update or create related and unrelated records, send emails, and perform many other actions. ## Comparison: Before-Save Versus After-Save | Consideration | Before-Save | After-Save | | --- | --- | --- | | When it runs | Before Salesforce saves the record to the database. | After Salesforce saves the record and gives the record an ID. | | Triggering record ID availability | Not available. | Available. Use it to create related records, add to formulas, or to pass to external systems. | | Updating the triggering record | Yes. Best choice if that's all you're doing. | Yes, but updating the triggering record requires an extra save operation on the backend. | | Validating data and prevent saving | Yes. Show error messages and block the save before bad data is committed. | No. The record saves when the flow runs. | | Creating or updating related records | No. Only update triggering record. | Yes. Create and update any record. | | Sending email or calling external systems | No. Not supported. | Yes. Send email, outbound messages, and call external systems or APIs. | | Use post-save field values | No. Salesforce sets the values of system-populated fields, such as Last Modified Date or Created Date, after it saves the record to the database. | Yes. Record ID, Last Modified Date, Created Date, and other system fields are available. | | Available elements | Limited: Assignment, Decision, Get Records, and Loop only. | All: Create Records, Update Records, Send Email, subflows, and so on. | | Performance | Up to 10 times faster with no extra save. | Runs in the background after the save completes and can have extra save operations. | # Decide How to Build Your Pipeline After you define development environments and a release (production) org, you have a basic pipeline. However, it’s not recommended that you deploy directly to production. You can use our template to build the pipeline, you can add more stages to the pipeline template, or you can build your own. While you’re working on building the pipeline, your changes persist but don’t get saved to the project until you activate the pipeline. Complete the creation of the environments associated with each pipeline stage. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/images/icon_important.png) Important Although you can use the same source control repository across DevOps Center projects, be sure the branches for each project are unique. If you re-use branches across projects, you risk overwriting changes and introducing conflicts. 1. Access the Pipeline page. 1. From within the project, click **Pipeline**. 2. From the All Projects page, click **Click to Create Pipeline**. In the Pipeline page, you see the pre-defined pipeline template. 2. Before you begin, it’s important to understand how to properly specify the branch for each pipeline stage. We recommend that you don’t share branches across projects. 3. Complete your pipeline configuration using the preferred method. - Use the provided template to build your pipeline. - Build your own pipeline configuration. For best results: - Stage names can’t contain backslashes or double quotes. - Follow recommended practices when naming the branches associated with each pipeline stage. - If you’re using the same source control repository as another DevOps Center project, branches must be unique for each pipeline stage, except for the release branch (often called main). DevOps Center can’t track changes across projects so unique branches ensure that conflicts don’t get introduced and changes don’t get overwritten. #### See Also - [Build Your Pipeline Using the Template](https://help.salesforce.com/s/articleView?id=platform.devops_center_pipeline_build_template.htm&release=264.0.0&type=5 "When you specified the release target (production) environment, it automatically became the last pipeline stage. DevOps Center also associates it with the default branch in the source control repository, which is often called main by default. We don’t recommend that you edit the branch for this final pipeline stage.") - [Build Your Own Pipeline](https://help.salesforce.com/s/articleView?id=platform.devops_center_pipeline_build_own.htm&release=264.0.0&type=5 "Quickly build your own pipeline by modifying the existing template pipeline.") - [Best Practices When Naming Branches](https://help.salesforce.com/s/articleView?id=platform.devops_center_pipeline_about_branches.htm&release=264.0.0&type=5 "Each pipeline stage has an associated branch in the source control repository, which contains the changes associated with your team’s work items. When building your pipeline, you can specify either an existing branch in the repository, or allow DevOps Center to create one for you. If you allow DevOps Center to create it for you, indicate a unique alphanumeric string.") # Deciding When to Use Lightning App Builder or the Page Layout Editor The Lightning App Builder helps you customize Lightning Experience pages. The page layout editor helps you customize Salesforce Classic record page layouts and some aspects of Lightning pages, depending on the page's configuration. Each tool has its own unique capabilities. To help you decide when to use one tool instead of the other, review the uses each one supports. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Page layouts are available in: All Editions

Lightning App Builder is available in:

Group, Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

To determine which tool is better suited for you, consider whether you're working in Salesforce Classic or Lightning Experience. If the answer is Salesforce Classic, then the page layout editor is the right tool for you. Lightning App Builder can customize only Lightning record pages, not Classic record pages. If you’re in Lightning Experience, the next thing to consider is how the fields on the record page are being delivered. For example, let's say you’re on an object record page, and you want to reorder or change the fields that appear on the page. You go to Setup (![Setup gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/admin_setup_gear_icon.png)) and select **Edit Page**, and the record page opens in the Lightning App Builder. Take a close look at where the record fields are located on the page. - If the page uses the Record Detail component to show record fields, those fields come from the object’s page layout in one big block. The only way to adjust the presence or placement of the fields inside a Record Detail component is by using the [page layout editor](https://help.salesforce.com/s/articleView?id=platform.layouts_customize_ple.htm&release=264.0.0&type=5 "Tailor your page layouts to the needs of your users with the enhanced page layout editor. Add, remove, or reorder actions, buttons, fields, and sections on a record’s detail page."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you select the Record Detail component on the Lightning App Builder canvas, you see an option in the component properties to upgrade the page to use [Dynamic Forms](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_overview.htm&release=264.0.0&type=5 "The more fields that there are on your page layout, the more that the Record Detail component becomes a monolithic block of fields that you can’t customize. With Dynamic Forms, you can migrate the fields and sections from your page layout to individual components in Lightning App Builder. Then you can configure them the same way as the other components on the page - spreading them out across multiple columns and tabs, and dynamically showing and hiding them based on record data, user details, and device type, so that your users get only the fields and sections that they want.") instead. By upgrading to Dynamic Forms you can manage the record fields right inside the Lightning App Builder. - If the page uses Dynamic Forms, where the record fields are present as individual components on the canvas, then you can adjust them right in the Lightning App Builder without having to go to the page layout.
When You Want To... Page Layouts Lightning Record Pages
Get real-time page performance feedback — Lightning record pages
Support non-LWC-enabled objects Page layouts

Lightning record pages

Some dynamic features of Lightning record pages, such as Dynamic Forms, aren’t supported on non-LWC-enabled object record pages. For a list of LWC-enabled objects, see LWC Migration for Record Home Pages.

Set page visibility based on record type or user profile Page layouts Lightning record pages
Set page visibility based on app — Lightning record pages
Set page visibility based on form factor (desktop or phone) — Lightning record pages

Customize page structure using standard templates

Some dynamic features of Lightning record pages, such as Dynamic Forms, aren’t supported with custom page templates.

— Lightning record pages
Put page elements such as related lists, record fields, and highlights anywhere on a page — Lightning record pages
Add custom Lightning components (LWC and Aura) — Lightning record pages
Spread page elements across multiple tabs — Lightning record pages
Hide section headers and collapse the space between two sections Page layouts —
Show or hide individual fields and page elements based on criteria you set — Lightning record pages
Add blank spaces to align fields Page layouts Lightning record pages
Make fields required or read-only Page layouts Lightning record pages
Add cross-object fields — Lightning record pages
Add conditional formatting to record fields — Lightning record pages
Display fields in two columns in narrow regions Page layouts —

Indicate which fields can be inline-edited in object home list views

To support inline edit, a field must be present on at least one page layout, and that page layout must be assigned to the user's profile.

Page layouts —
Customize actions and fields in the Highlights Panel Page layouts Lightning record pages
Customize the buttons and actions that appear on the page Page layouts Lightning record pages
Add or remove related lists Page layouts Lightning record pages
Customize related list columns and buttons Page layouts

Lightning record pages

You can use the Dynamic Related Lists component in the Lightning App Builder to add, remove, and reorder related list columns, and to add related list buttons. Not all related lists are supported for use with Dynamic Related Lists, however. See Create Dynamic Related Lists in Lightning App Builder.

Add custom links Page layouts —
#### See Also - [Dynamic Highlights Panel](https://help.salesforce.com/s/articleView?id=platform.dynamic_highlights_panel.htm&release=264.0.0&type=5 "The Dynamic Highlights Panel component displays up to 12 key record fields, which are configured in Lightning App Builder. The Dynamic Highlights Panel is responsive. When you change the size of your browser window, your information stays visible and wraps instead of being truncated.") - [Align Fields Horizontally in Dynamic Form Field Sections](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_align_fields_horizonally.htm&release=264.0.0&type=5 "Control field alignment across columns by using the Align fields horizontally property on Dynamic Forms Field Section components. This property prevents fields in multicolumn Field Sections from collapsing upward when there’s a gap due to differences in field heights. Fields remain horizontally aligned with their neighbors in the same row.") # Decision Element Evaluate a set of conditions, and route users through the flow based on the outcomes of those conditions. This element performs the equivalent of an if-then statement. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Flow Builder remembers your expand and collapse preferences for this element on the canvas. Your view is stored locally in your browser and persists between sessions on the same browser; this setting is specific to you and does not affect the view of other users. However, if you clear your browser's cookies and other site data, or switch to a different browser, your preferences reset to the default expanded view. Clearing cached images or files doesn't affect this setting. | field | Description | | --- | --- | | **Label** | Identifies the name for this element on the canvas. | | **API Name** | The requirement for uniqueness applies only to elements within the current flow. Two elements can have the same API name, provided they're used in different flows.An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores. | | **Description** | A description of what the element does within the flow approval process. | ## Select Decision Logic Select the method that the Decision element uses to determine which outcome to run. | Method | Description | | --- | --- | | **Define Manually (Default)** | Define logic to evaluate explicitly defined data from your flow and determine which outcome runs. Outcomes for a Decision element with manually set conditions are evaluated in the order that they’re listed. Therefore, the order that you define your outcomes in can impact the outcome that the flow takes. | | **Define with AI (Advanced)** | Write instructions for AI to dynamically evaluate data from your automation and determine which outcome runs. Outcomes for a Decision element with AI conditions are evaluated simultaneously. Therefore, the order that you define your outcomes in has no impact on the outcome that the flow takes. | ## Describe the Decision This section is shown when you select Define with AI (Advanced). | Field | Description | | --- | --- | | **Decision Instructions** | A description of what decision the element is making. Include resources from the flow to improve AI accuracy. | ## Outcomes for Define Manually (Default) For each path that the flow can take, create an outcome. For each outcome, specify the conditions that must be met for the flow to take that path. To relabel the path that the flow takes if no outcome’s conditions are met, click **Default Outcome**. To see more outcome details, resize the panel.
Field Description
Outcome Label Identifies the connector for this outcome on the canvas. Click the connector to open and jump to this outcome's conditions in the panel. To rename the outcome without opening the panel, edit its label on the canvas.
Outcome API Name The requirement for uniqueness applies only to elements within the current flow. Two elements can have the same API name, provided they're used in different flows.An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.
Condition Requirements to Execute Outcome Determines whether the flow takes this outcome’s path. Sets logic and conditions for each outcome that determine if the flow follows its path.
When to Execute Outcome

Available on record-triggered flows. Determines whether this outcome’s path is taken, based on whether the triggering record is updated to meet the condition requirements. For example, the opportunity update that triggered the flow to run changed its stage to Closed Won from any value that isn’t Closed Won.

This option checks if the triggering record didn't previously meet the condition requirements and if the $Record variable now meets the condition requirements. If your flow changes any of the $Record variable’s fields before it runs the configured Decision element, the Decision checks if the $Record’s new field values now meet the condition requirements.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example Using a Decision element, determine whether to: - Give customers a return shipping address or instructions on how to resolve the problem when an item is determined to be faulty. - Offer a customer a loan based on the results of a credit scoring formula. - Inform sales leaders when an opportunity’s stage is changed to Closed Won. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip Configure your flow so that it does different things based on what a user selects for a Picklist screen component. To do so, add a decision after the screen to create the branches of the flow based on the choices available in the picklist. Then you can represent each choice in your decision and connect it to a branch of your flow. ## Outcomes for Define with AI (Advanced) For each path that the flow run can take, create an outcome. For each outcome, enter information that tells AI when to take the outcome. To relabel the path to take if AI determines that no conditions are met, click **Default Outcome**. To see more outcome details, resize the panel. | Field | Description | | --- | --- | | **Outcome Label** | Identifies the connector for this outcome on the canvas. Click the connector to open and jump to this outcome's conditions in the panel. To rename the outcome without opening the panel, edit its label on the canvas. | | **Outcome API Name** | The requirement for uniqueness applies only to elements within the current flow. Two elements can have the same API name, provided they're used in different flows.An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores. | | **Outcome Instructions** | An explanation that tells AI when to take the outcome. Include resources from the flow to improve AI accuracy. | ## Usage for Manual Conditions When a Decision element offers two possible outcomes, the default outcome is only followed if the conditions for the first outcome aren’t met. If a Decision element has more than two possible outcomes, the system evaluates them in the order they’re listed. For each outcome: - Its conditions are checked. - If the conditions are true, the path associated with that outcome is run. - If the conditions are false, the system moves on to evaluate the conditions of the next outcome in the list. If none of the defined outcome conditions are met, then the default outcome path runs. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note When you reference an outcome's value in a downstream element that value is set only if the outcome is evaluated and its conditions are met. Because outcomes are evaluated in order and evaluation stops at the first outcome whose conditions are met, outcomes that come after aren't evaluated and their values are null. The default outcome doesn't have a value because it isn't evaluated against conditions. It runs only when no other outcome's conditions are met. ## Usage for AI Conditions AI Decision isn't supported for Marketing Cloud flows or record-triggered flows. At run-time, the decision instructions are combined with all outcome instructions, and AI determines which outcome to take. Because AI evaluates all conditions simultaneously, the order that you define your outcomes in has no impact on the outcome that the flow takes. The sequential evaluation behavior described for manual conditions doesn't apply to AI Decision. #### See Also - [Flow Elements](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements.htm&release=264.0.0&type=5 "An element represents an action that the flow can run. Examples include reading or writing Salesforce data, displaying information and collecting data from flow users, runnning business logic, or manipulating data.") - [Define Conditions in a Decision or Wait Element](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_conditions.htm&release=264.0.0&type=5 "Control when a flow takes a specific decision outcome or waits for a specific resume event.") - [Flow Operators in Decision, Wait, and Collection Filter Elements](https://help.salesforce.com/s/articleView?id=platform.flow_ref_operators_condition.htm&release=264.0.0&type=5 "Use condition operators to verify the value of a selected resource. Use conditions in Decision, Wait, and Collection Filter elements.") - [Move and Connect Elements to Change a Flow Route](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_route_add.htm&release=264.0.0&type=5 "Identify which elements the flow runs and in what order by connecting the elements on your canvas together. To change the run order, move elements and add or remove connectors.") # Decision Flow Approval Processes Resource Evaluate a set of conditions, and then route users through the flow approval process based on the outcomes of those conditions. This element performs the equivalent of an if-then statement. ### Required Editions
View supported editions for Flow Approval Processes.
| field | Description | | --- | --- | | **Label** | Identifies the name for this element on the canvas. | | **API Name** | The requirement for uniqueness applies only to elements and resources within the current flow approval process. Two items can have the same API name, provided they're used in different flow approval processes.An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can't end with an underscore. It also can't have two consecutive underscores. | | **Description** | A description of what the element does within the flow approval process. | ## Select Decision Logic Select the method that the Decision element uses to determine which outcome to run. | Method | Description | | --- | --- | | **Define Manually (Default)** | Define logic to evaluate explicitly defined data from your flow approval process and determine which outcome runs. Outcomes for a Decision element with manually set conditions are evaluated in the order that they’re listed. Therefore, the order that you define your outcomes in can impact the outcome that the orchestration run associated with the parent approval submission takes. | | **Define with AI (Advanced)** | Write instructions for AI to dynamically evaluate data from your flow approval process and determine which outcome runs. Outcomes for a Decision element with AI conditions are evaluated simultaneously. Therefore, the order that you define your outcomes in has no impact on the outcome that the orchestration run associated with the parent approval submission takes. | ## Describe the Decision This section is shown when you select Define with AI (Advanced). | Field | Description | | --- | --- | | **Decision Instructions** | A description of what decision the element is making. Include resources from the flow approval process to improve AI accuracy. | ## Outcomes for Define Manually (Default) For each path that the flow approval process can take, create an outcome. For each outcome, specify the conditions that must be met for the orchestration run associated with a parent approval submission to take that path. To relabel the path to take if no outcome’s conditions are met, click **Default Outcome**. | Field | Description | | --- | --- | | **Outcome Label** | Identifies the connector for this outcome on the canvas. | | **Outcome API Name** | The requirement for uniqueness applies only to elements and resources within the current flow approval process. Two items can have the same API name, provided they're used in different flow approval processes.An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can't end with an underscore. It also can't have two consecutive underscores. | | **Condition Requirements to Execute Outcome** | Determines whether the flow approval process takes this outcome’s path. Sets logic and conditions for each outcome that determine if the flow approval process follows its path. | | **When to Execute Outcome** | Available on record-triggered flow approval processes. Determines whether this outcome’s path is taken based on whether the triggering record is updated to meet the condition requirements. | ## Outcomes for Define with AI (Advanced) For each path that the orchestration run associated with the parent approval submission can take, create an outcome. For each outcome, enter information that tells AI when to take the outcome. To relabel the path to take if AI determines that no conditions are met, click **Default Outcome**. | Field | Description | | --- | --- | | **Outcome Label** | Identifies the connector for this outcome on the canvas. | | **Outcome API Name** | The requirement for uniqueness applies only to elements and resources within the current flow approval process. Two items can have the same API name, provided they're used in different flow approval processes.An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores. | | **Outcome Instructions** | An explanation that tells AI when to take the outcome. Include resources from the flow approval process to improve AI accuracy. | ## Usage for Manual Conditions When a decision element offers two possible outcomes, the default outcome is only followed if the conditions for the first outcome aren’t met. If a decision element has more than two possible outcomes, the system evaluates them in the order they’re listed. For each outcome: - Its conditions are checked. - If the conditions are true, the path associated with that outcome is run. - If the conditions are false, the system moves on to evaluate the conditions of the next outcome in the list. If none of the defined outcome conditions are met, then the default outcome path runs. ## Usage for AI Conditions AI Decision isn't supported for record-triggered flow approval processes. At run-time, the decision instructions are combined with all outcome instructions, and AI determines which outcome to take. Because AI evaluates all conditions simultaneously, the order that you define your outcomes in has no impact on the outcome that the orchestration run associated with a parent approval process takes. # Decision Flow Orchestration Resource Evaluate a set of conditions, and then route users through the orchestration based on the outcomes of those conditions. This element performs the equivalent of an if-then statement. ### Required Editions
View supported editions for Flow Orchestration.
| field | Description | | --- | --- | | **Label** | Identifies the name for this element on the canvas. | | **API Name** | The requirement for uniqueness applies only to elements and resources within the current flow approval process. Two items can have the same API name, provided they're used in different flow approval processes.An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can't end with an underscore. It also can't have two consecutive underscores. | | **Description** | A description of what the element does within the orchestration. | ## Select Decision Logic Select the method that the Decision element uses to determine which outcome to run. | Method | Description | | --- | --- | | **Define Manually (Default)** | Define logic to evaluate explicitly defined data from your orchestration and determine which outcome runs. Outcomes for a Decision element with manually defined conditions are evaluated in the order that they’re listed. Therefore, the order that you define your outcomes in can impact the outcome that the orchestration run takes. | | **Define with AI (Advanced)** | Write instructions for AI to dynamically evaluate data from your orchestration and determine which outcome runs. Outcomes for a Decision element with AI conditions are evaluated simultaneously. Therefore, the order that you define your outcomes in has no impact on the outcome that the orchestration run takes. | ## Describe the Decision This section is shown when you select Define with AI (Advanced). | Field | Description | | --- | --- | | **Decision Instructions** | A description of what decision the element is making. Include resources from the orchestration to improve AI accuracy. | ## Outcomes for Define Manually (Default) For each path that the orchestration can take, create an outcome. For each outcome, specify the conditions that must be met for the orchestration run to take that path. To relabel the path to take if no outcome’s conditions are met, click **Default Outcome**. | Field | Description | | --- | --- | | **Outcome Label** | Identifies the connector for this outcome on the canvas. | | **Outcome API Name** | The requirement for uniqueness applies only to elements and resources within the current orchestration. Two items can have the same API name, provided they're used in different orchestrations.An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores. | | **Condition Requirements to Execute Outcome** | Determines whether the orchestration takes this outcome’s path. Sets logic and conditions for each outcome that determine if the orchestration follows its path. | | **When to Execute Outcome** | Available on record-triggered orchestrations. Determines whether this outcome’s path is taken based on whether the triggering record is updated to meet the condition requirements. For example, the opportunity update that triggered the orchestration to run changed its stage to Closed Won from any value that isn’t Closed Won. | ## Outcomes for Define with AI (Advanced) For each path that the orchestration run can take, create an outcome. For each outcome, enter information that tells AI when to take the outcome. To relabel the path to take if AI determines that no conditions are met, click **Default Outcome**. | Field | Description | | --- | --- | | **Outcome Label** | Identifies the connector for this outcome on the canvas. | | **Outcome API Name** | The requirement for uniqueness applies only to elements and resources within the current orchestration. Two items can have the same API name, provided they're used in different orchestrations.An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores. | | **Outcome Instructions** | An explanation that tells AI when to take the outcome. Include resources from the orchestration to improve AI accuracy. | ## Usage for Manual Conditions When a Decision element offers two possible outcomes, the default outcome is only followed if the conditions for the first outcome aren’t met. If a Decision element has more than two possible outcomes, the system evaluates them in the order they’re listed. For each outcome: - Its conditions are checked. - If the conditions are true, the path associated with that outcome is run. - If the conditions are false, the system moves on to evaluate the conditions of the next outcome in the list. If none of the defined outcome conditions are met, then the default outcome path runs. ## Usage for AI Conditions AI Decision isn't supported for record-triggered orchestrations. At run-time, the decision instructions are combined with all outcome instructions, and AI determines which outcome to take. Because AI evaluates all conditions simultaneously, the order that you define your outcomes in has no impact on the outcome that the orchestration run takes. # Default Action Fields Each default action includes a pre-defined set of fields, which lets you make actions available to your users without spending much time on setup. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, and Developer Editions
These fields are included on each default action and appear in the action layout in the order listed.
Action Fields
Log a Call
  • Subject (default value: Call)
  • Comment (description)
  • Name
  • Related To
New Case and New Child Case
  • Contact Name
  • Status
  • Subject
  • Description
New Contact
  • Name
  • Email
  • Phone
  • Account Name
  • Title
New Event
  • Subject
  • Start
  • End
  • All-Day Event
  • Name
  • Related To
  • Assigned To
  • Location
New Lead
  • Name
  • Email
  • Phone
  • Company
  • Title
New Note
  • Title
  • Public (checkbox)
  • Body
New Opportunity
  • Opportunity Name
  • Account
  • Close Date (default value: 30 days from today)
  • Stage
  • Amount
New Task
  • Subject
  • Due Date
  • Name
  • Related To
  • Assigned To
  • Status
You can change the fields that appear on each action layout using the action layout editor. #### See Also - [Default Actions](https://help.salesforce.com/s/articleView?id=platform.default_actions_overview.htm&release=264.0.0&type=5 "Default actions are sets of predefined actions to get you and your users started using actions in your org. Add default actions to publisher layouts to make them available to your users in the full Salesforce site and the action bar in the Salesforce mobile app.") - [Quick Actions](https://help.salesforce.com/s/articleView?id=platform.actions_overview.htm&release=264.0.0&type=5 "Quick actions enable users to do more in Salesforce and in the Salesforce mobile app. With custom quick actions, you can make your users’ navigation and workflow as smooth as possible by giving them convenient access to information that’s most important. For example, you can let users create or update records and log calls directly in their Chatter feed or from their mobile device.") # Default Actions Default actions are sets of predefined actions to get you and your users started using actions in your org. Add default actions to publisher layouts to make them available to your users in the full Salesforce site and the action bar in the Salesforce mobile app. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, and Developer Editions
Each default action has a predefined set of fields. Use the page layout editor or global publisher layout to remove actions or to change the order in which the actions appear. Default actions are supported on the account, case, contact, lead, and opportunity objects. This table lists the available default actions. Italicized actions are standard Chatter actions. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note In orgs created after Winter ’14, Salesforce adds default actions to the global publisher layout and to the account, case, contact, lead, and opportunity object page layouts. In orgs created before Winter ’14, default actions are available in the palette on the page layout editor, but they’re not automatically added to the page layouts.
Layout Page Default Actions
Global layout (also applies to custom objects)
  • Post
  • File
  • New Event
  • New Task
  • New Contact
  • Log a Call (logged calls are saved as completed tasks)
  • New Opportunity
  • New Case
  • New Lead
  • Thanks
  • Link
  • Poll
  • Question
Account
  • Post
  • File
  • New Event
  • New Task
  • New Contact
  • New Case
  • Log a Call (logged calls are saved as completed tasks)
  • New Note
  • New Opportunity
  • Thanks
  • Link
  • Poll
  • Question
Case
  • Post
  • File
  • New Child Case
  • Log a Call (logged calls are saved as completed tasks)
  • New Task
  • New Event
  • Thanks
  • Link
  • Poll
  • Question
Contact, Lead, and Opportunity
  • Post
  • File
  • New Task
  • Log a Call (logged calls are saved as completed tasks)
  • New Case
  • New Note
  • New Event
  • Thanks
  • Link
  • Poll
  • Question
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Using record types in your org can affect the availability of global default actions for your users. For more information, see [Quick Actions and Record Types](https://help.salesforce.com/s/articleView?id=platform.actions_and_record_types.htm&release=264.0.0&type=5 "Using record types in your organization can affect the availability of quick actions for your users."). - **[Default Action Fields](https://help.salesforce.com/s/articleView?id=platform.default_actions_fields.htm&release=264.0.0&type=5)** Each default action includes a pre-defined set of fields, which lets you make actions available to your users without spending much time on setup. #### See Also - [Quick Actions](https://help.salesforce.com/s/articleView?id=platform.actions_overview.htm&release=264.0.0&type=5 "Quick actions enable users to do more in Salesforce and in the Salesforce mobile app. With custom quick actions, you can make your users’ navigation and workflow as smooth as possible by giving them convenient access to information that’s most important. For example, you can let users create or update records and log calls directly in their Chatter feed or from their mobile device.") - [Create Dynamic Actions in Lightning App Builder](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_create_dynamic_action.htm&language=en_US) # Default Field Value Considerations Be aware of the behavior and rules when you assign default values to custom fields. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
Default field values automatically insert the value of a custom field when a new record is created. You can use a default value on a formula for some types of fields or exact values, such as Checked or Unchecked for checkbox fields. Review the following considerations before incorporating default field values in your organization. - If a default value is based on the value of a merge field, Salesforce uses the value of the merge field at the time the default value is executed. If the value of the merge field changes later, the default value is not updated. - Users can change or remove the default field value on a record. - Don’t assign default values to fields that are both required and unique, because uniqueness errors can result. - If you make an activity custom field universally required, you must also provide a default value. - If an activity custom field is unique, you cannot provide a default value. - Default field values are different from formula fields in the following ways: they are only executed once, at record creation; they are not read only; and the user can change the value but cannot restore the default field value. - Since the default value is inserted before users enter any values in the new record, you cannot use the fields on the current record to create a default field value. For example, you cannot create a default field value on a contact that uses the first initial and last name because those values are not available when you click **New** to create a contact record. However, you can use the record type because it is selected before the record edit page displays. - Record type default field values have precedence over an object’s default field values. - To apply a different default value for different record types, use the record type as a merge field in a CASE function within the default field value setup. - Fields that are not visible to the user due to field-level security are still available in the formula for a default field value. - Connect Offline and Salesforce for Outlook do not display default values. However, Salesforce inserts the default values when a user syncs unless the user entered a value. - Default field values are not available in the Self-Service portal. - Lead conversion, Web-to-Lead, and Web-to-Case do not execute default field values. - Visualforce pages don’t support default field values. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can define a formula for default values only where appropriate. For example, the default value options for a checkbox field are limited to the options available for those types of fields, such as Checked or Unchecked. For picklists, a valid formula result is either a constant or the API name of an entry in the Values list. The formula result has higher precedence than the default assigned in the Values list. If the formula doesn’t generate a valid result, the default assigned in the Values list is entered in the field. If a default isn’t assigned to the Values list, no value is entered in the picklist field. #### See Also - [Default Field Values](https://help.salesforce.com/s/articleView?id=platform.fields_about_default_field_values.htm&release=264.0.0&type=5 "Prepopulate field values with defaults to save your users time and improve consistency. Default field values make your users more productive by reducing the number of fields they must fill in manually.") - [Useful Default Field Value Formulas](https://help.salesforce.com/s/articleView?id=platform.fields_useful_default_field_values.htm&release=264.0.0&type=5 "How to apply default field values based on maximum discount rate, product language, or tax rate by city.") # Default Field Values Prepopulate field values with defaults to save your users time and improve consistency. Default field values make your users more productive by reducing the number of fields they must fill in manually. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
Default field values automatically insert the value of a custom field when a new record is created. You can use a default value on a formula for some types of fields or exact values, such as Checked or Unchecked for checkbox fields. After you have defined default values: - The user chooses to create a record. - The default field value is executed. - Salesforce displays the edit page with the default field value prepopulated. - The user enters the fields for the new record. - The user saves the new record. The user can change the field’s value but the initial default field value is only executed one time, during record creation. For example, you can set the default field value on a custom lead field to seven days after the creation date to signify when to contact the lead again. You can change this value later, but you can't automatically restore the value that was seven days after the creation date. Set up default field values for the following types of custom fields: - Checkbox - Currency - Date - Date/Time - Email - Number - Percent - Phone - Picklist - Text - Text Area - Time - URL For a description of these types, see [Custom Field Types](https://help.salesforce.com/s/articleView?id=platform.custom_field_types.htm&release=264.0.0&type=5 "Salesforce supports various field types, allowing you to select the right one for your data. You can also convert an existing field to a different data type if needed.. When you have data that doesn’t match any of the standard fields, your admin can create a custom field for that data. For example, create a Middle Name field for contacts to capture additional information."). #### See Also - [Useful Default Field Value Formulas](https://help.salesforce.com/s/articleView?id=platform.fields_useful_default_field_values.htm&release=264.0.0&type=5 "How to apply default field values based on maximum discount rate, product language, or tax rate by city.") - [Default Field Value Considerations](https://help.salesforce.com/s/articleView?id=platform.fields_default_field_value_considerations.htm&release=264.0.0&type=5 "Be aware of the behavior and rules when you assign default values to custom fields.") - [Define Default Field Values](https://help.salesforce.com/s/articleView?id=platform.fields_defining_default_values.htm&release=264.0.0&type=5 "Define a default value for a field. Use a formula to generate dynamic values or constants for static values.") - [Reference Custom Metadata Type Records in Default Values](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_default_fields.htm&type=5&language=en_US) # Default Flow Error Handling Understand how flows behave when they fail to help you decide on error handling strategies. Learn what happens by default so you can determine if you need custom error handling for your specific use case. ### Required Editions
View supported editions.
## How Flow Type Affects Error Handling The behavior of a fault path depends on the flow type and the elements in the path. Some elements perform Data Manipulation Language (DML) operations, which create, update, or delete Salesforce records. DML elements include Create Records, Update Records, and Delete Records. Some core actions and Apex actions can also perform DML operations. This table describes fault paths that contain a DML element. An empty fault path has the same behavior as a fault path with no elements. | Flow Type | No Fault Path or Empty Fault Path | Fault Path | | --- | --- | --- | | Record-triggered flow | Salesforce blocks the triggering change and rolls back the transaction. If a user changes a record on a record page, Salesforce shows an unhandled-fault message. If a validation rule causes the error, Salesforce shows that rule’s error message instead. | Salesforce doesn't block the triggering change. The flow runs the fault path, and Salesforce doesn’t roll back the transaction. Salesforce shows an error message only if the fault path includes an Error element. | | Screen flow | Salesforce shows an unhandled-fault message and rolls back the transaction. | The flow runs the fault path. If the path doesn’t include a Screen element, Salesforce shows a completion message. Salesforce rolls back the transaction only if the path includes a Roll Back Records element. | | Autolaunched flow | Salesforce shows an unhandled-fault message and rolls back the transaction. | The flow runs the fault path, shows a completion message, and doesn’t roll back the transaction. | ## What Happens Without a Fault Path When an element has no fault path or an empty fault path and it fails, Salesforce displays this error message and creates a failed interview. ``` An unhandled fault has occurred in this flow An unhandled fault has occurred while processing the flow. Please contact your system administrator for more information. ``` The running user can’t proceed with the flow or return to a previous part of the flow. The configured recipient receives a fault email. For information about choosing error email recipients, see [Select Flow and Process Error Email Recipients](https://help.salesforce.com/s/articleView?id=platform.flow_troubleshoot_error_email.htm&release=264.0.0&type=5 "When a process or flow interview fails, a detailed email is sent to the admin who last modified the process or flow. However, sometimes the admin isn’t the best person to act on the details of what ran and what went wrong. In that case, you can send error emails to the Apex exception email recipients."). The email details the element that failed, the error message from that element, and which elements ran during the failed interview. Here’s an example error message. ``` An error occurred at element Delete_1. DELETE --- There is nothing in Salesforce matching your delete criteria. ``` To view the debug details directly in Flow Builder, click **Flow Error: Click here to debug the error in Flow Builder** in the fault email. This link appears only for certain flow types. For screen flows, Salesforce publishes a Flow Execution Error Event platform event message. #### See Also - [Customize What Happens When a Flow Fails](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault.htm&release=264.0.0&type=5 "Learn how fault paths customize what happens when a flow fails. Choose how to notify admins, guide users, and take a follow-up action.") - [Troubleshooting Flow Run Time Errors](https://help.salesforce.com/s/articleView?id=platform.flow_troubleshoot_email.htm&release=264.0.0&type=5 "Learn how to troubleshoot and resolve flow errors and unexpected behavior in your flows that occur after activation. Interpret error emails, and use best practices to identify and resolve issues quickly.") - [Configure Every Fault Path to Send You an Email](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault_email.htm&release=264.0.0&type=5 "As a best practice, we recommend configuring the fault connectors in your flow so that you always receive an email when a flow fails. In the email, include the current values of all your flow’s resources. The resource values can give you insight into why the flow failed.") - [Send Alerts When a Screen Flow Fails](https://help.salesforce.com/s/articleView?id=platform.process_troubleshoot_error_event.htm&release=264.0.0&type=5 "To save time troubleshooting screen flows that fail, subscribe to the Flow Execution Error Event platform event. When a flow interview fails, Salesforce publishes a platform event message. In Process Builder, you can subscribe to the platform event and perform actions, such as posting to Chatter or sending custom notifications.") # Default Organization-Wide Access Levels Review the default organization-wide access levels for each object. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions.
In Salesforce orgs created before Spring ’20, when you first enable external organization-wide defaults, the default internal access and default external authenticated access are set to the original default access level. The only exceptions are User and newly created custom objects, which are set to Private by default. In orgs created after Spring ’20, the default external authenticated access level is set to Private for all objects, unless the default internal access level is Controlled by Parent. | Object | Default Internal Access | Default External authenticated Access (in orgs created before Spring ’20) | Default External authenticated Access (in orgs created after Spring ’20) | | --- | --- | --- | --- | | Account | Public Read/Write | Public Read/Write | Private | | Activity | Private | Private | Private | | Asset | Controlled by Parent | Controlled by Parent | Controlled by Parent | | Calendar | Hide Details and Add Events | Hide Details and Add Events | Hide Details and Add Events | | Campaign | Public Full Access | Public Full Access | Private | | Case | Public Read/Write/Transfer | Public Read/Write/Transfer | Private | | Contact | Controlled by Parent | Controlled by Parent | Controlled by Parent | | Contract | Public Read/Write | Public Read/Write | Private | | Custom Object | Public Read/Write | Public Read/Write (created before enabling external org-wide defaults) or Private (created after enabling external org-wide defaults) | Private | | Flow Interview | Private | Private | Private | | Lead | Public Read/Write/Transfer | Public Read/Write/Transfer | Private | | Opportunity | Public Read Only | Public Read Only | Private | | Price Book | Use | Use | Use | | Service Contract | Private | Private | Private | | User | Public Read Only | Private | Private | #### See Also - [Organization-Wide Sharing Defaults](https://help.salesforce.com/s/articleView?id=platform.security_sharing_owd_about.htm&release=264.0.0&type=5 "Define the default access that users have to records they don't own with organization-wide sharing settings. Organization-wide sharing settings can be set separately for custom objects and many standard objects. You can set different levels of access for internal and external users.") - [Set Your Internal Organization-Wide Sharing Defaults](https://help.salesforce.com/s/articleView?id=platform.admin_sharing.htm&release=264.0.0&type=5 "Internal organization-wide sharing defaults set the baseline access for your internal users for your records. You can set the defaults separately for different objects.") - [Set Your External Organization-Wide Sharing Defaults](https://help.salesforce.com/s/articleView?id=platform.security_owd_external_setting.htm&release=264.0.0&type=5 "External organization-wide defaults enable you to set a different default access level for external authenticated users.") # Default Selections for the Classic Approval Process Jump Start Wizard To make it easier for you to get started with a simple classic approval process, the jump start wizard automatically chooses some default options for you. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. After creating a classic approval process using the jump start wizard, you can modify these default options and add more steps from the approval process detail page. Exception: you can’t modify the Record Lock action on the Initial Submission Actions list. - To edit records awaiting approval in the classic approval process, users must have the “Modify All Records” permission for the given object or the Modify All Data permission. - The page layout for the approval request includes the record name (or number), owner, date created, and approval history. - The security settings require approvers to log in to Salesforce to view the approval page. - Only the owner of the record can submit the record for approval. - Records are locked when submitted for approval. - Records remain locked until approved or rejected. - Rejected records are unlocked. - Only admins can recall a record after it’s submitted. - There are no auto-approve or auto-reject actions. - No email notification is sent upon approval or rejection. - No field values are automatically updated during the approval process. - An approver can’t automatically delegate another user to approve the approval requests. - The **Allow submitters to recall approval requests** option isn’t selected. #### See Also - [Create a Classic Approval Process with the Jump Start Wizard](https://help.salesforce.com/s/articleView?id=platform.approvals_jump_start.htm&release=264.0.0&type=5 "For classic approval processes that use a single step, use the jump start wizard. This wizard chooses some default options for you.") - [Choose the Right Wizard to Create a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_choosing_a_wizard.htm&release=264.0.0&type=5 "Before you create a classic approval process, determine which wizard is best for your needs.") # Default Template for Email Approval Response used by Classic Approval Processes When you enable email approval response, Salesforce uses a default email template for classic approval processes—unless you specify a custom email template. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example Requesting User has requested your approval for the following item. To approve or reject this item, reply to this email with the word APPROVE, APPROVED, YES, REJECT, REJECTED, or NO in the first line of the email message, or click this link: Link to approval request page If replying via email you can also add comments on the second line. The comments are stored with the approval request in Salesforce CRM. Note: For Salesforce to process your response the word APPROVE, APPROVED, YES, REJECT, REJECTED, or NO must be in the first line of the reply email. Also, any comment must be in the second line. If your org has Approvals in Chatter enabled and the approver opted to receive notifications as Chatter posts, the default email template is appended with: ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example You can also approve, reject, and comment on this request from your Chatter feed: Link to approval post in Chatter ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If you use a custom email template for your classic approval process, make sure that it explains both response options: clicking the link and replying by email. If the user doesn’t respond correctly (for example, if the user misspells approve or types it on the wrong line), Salesforce doesn’t register the response. #### See Also - [Email Templates in Salesforce Classic](https://help.salesforce.com/s/articleView?id=sales.admin_emailtemplates.htm&language=en_US) - [Merge Fields for Classic Approval Processes](https://help.salesforce.com/s/articleView?id=platform.approvals_considerations_mergefields.htm&release=264.0.0&type=5 "Approval merge fields include {!ApprovalRequest.fieldName} and {!Approval_Requesting_User.fieldName}. They’re supported in certain email templates and return different values based on the status of the classic approval process instance.") - [Let Users Respond to Approval Requests from Classic Approval Processes by Email](https://help.salesforce.com/s/articleView?id=platform.approvals_email_parent.htm&release=264.0.0&type=5 "If the email notification includes all the information that an approver needs to make a decision, enable email approval response. That way, a user can simply reply to the email notification.") # Defaults and Default Values Learn about External Services' support for defaults. For OpenAPI 2.0, default values set on `properties` are used. For OpenAPI 3.0 schemas, the "outermost" default is used. Non-supported configurations are ignored. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
## Default Values For both OpenAPI 2.0 and 3.0 specifications, - The type of the default value must match the type of the property/parameter. For example, if the type is `integer` and the default value provided is `50.2`, the default value doesn’t translate to Apex. - For `integer` defaults to show up, a format must be specified, for example, `int32` or `int64`. The following sections describe Open API version-specific support for defaults. ## OpenAPI 2.0 Default Definitions For OpenAPI 2.0 schemas, External Services supports a subset of primitive data types for default values set on object properties. These primitive data types are limited to: - string - number - integer - boolean For OpenAPI 2.0 schemas, only the default values set on `properties` are used. For example, in the code snippet below, the default set for the `month` property is supported. In the Apex class, you see a comment in the birthday object with `// Default value: January` However, the default value that's set at the object level `"default": { "month": "December" }` is ignored. ``` "birthday": { "type": "object", "properties": { "month": { "type": "string", "default": "January" }, "day": { "type": "integer" }, "year": { "type": "integer" } }, "default": { "month": "December" } } ``` Default values set anywhere else other than on the property (such as `object/composed object`) are ignored. In the following example, the default value is 123 because that's what is set on the property. ``` "Fax": { "allOf": [ { "$ref": "#/components/schemas/Contact" }, { "type": "object", "properties": { "faxNumber": { "type": "integer", "default": 123 } } }, { "default": { "faxNumber": 456 } } ], "default": { "faxNumber": 789 } } ``` ## OpenAPI 3.0 Default Definitions For OpenAPI 3.0 schemas, the "outermost" `default` is used. For the same birthday object registered using an OAS3 schema, ``` "birthday": { "type": "object", "properties": { "month": { "type": "string", "default": "January" }, "day": { "type": "integer" }, "year": { "type": "integer" } }, "default": { "month": "December" } } ``` the comment in the Apex class is `// Default value: December` because the `default` set at the object level is the outermost one, and is therefore the one that's used. Defaults set at the composed object level for `anyOf` and `oneOf` object compositions aren’t supported. In the following example, the `"default": { "phoneNumber": "1 (000) 000 0000"` isn't used. ``` "Phone": { "oneOf": [ { "$ref": "#/components/schemas/Contact" }, { "type": "object", "properties": { "phoneNumber": { "type": "string" } } } ], "default": { "phoneNumber": "1 (000) 000 0000" } } ``` However, defaults set at the composed object level for `allOf` are supported. Again, in this scenario, the "outermost" default values override the others. In the following fax object example, if the only default set was `123`, then that’s what is shown in the Apex class. But if both `123` and `456` were set, `456` would override `123` and `456` would be shown in the apex class, and similarly if `123`, `456`, `789` were all set, `789` would be shown in the apex class. ``` "Fax": { "allOf": [ { "$ref": "#/components/schemas/Contact" }, { "type": "object", "properties": { "faxNumber": { "type": "integer", "default": 123 } } }, { "default": { "faxNumber": 456 } } ], "default": { "faxNumber": 789 } } ``` # Defer Group Membership Calculations If you’re making changes to groups or related features that affect many records, you can temporarily suspend automatic group membership calculations and resume them after you finish your updates. You must resume calculations and do a full sharing rule recalculation, or you can experience sharing inconsistencies in your records. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To defer (suspend and resume) sharing calculations:

Manage Users

AND

Manage Sharing Calculation Deferral

When you make changes to roles, territories, groups, or users, or change ownership of portal accounts, group membership is automatically recalculated to add or remove access as necessary. Changes can include adding or removing a user from a group or changing a role to allow access to different sets of reports. If you’re making large-scale changes that can cause performance issues or group membership calculation timeouts, you can temporarily defer group membership calculations before you make your changes. After you make your changes, you must resume group membership calculations and do a full sharing recalculation. Review [Considerations for Making Sharing Updates](https://help.salesforce.com/s/articleView?id=platform.security_sharing_update_considerations.htm&release=264.0.0&type=5 "Review these considerations before making sharing changes, such as updates to organization-wide defaults, sharing rules, account ownerships, or group memberships.") before deferring group membership calculations. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note If you defer group membership calculations, membership changes involving individual users are still reflected immediately. However, membership changes related to nested groups or due to role hierarchy changes aren’t reflected until after group membership calculations are resumed and you complete a full recalculation. Any change in record access resulting from membership changes also isn’t processed until calculation is resumed and you complete a full recalculation. [Group membership locking](https://developer.salesforce.com/docs/atlas.en-us.draes.meta/draes/draes_group_membership_locking.htm) can also still occur while sharing calculations are deferred. We recommend that you resume sharing calculations immediately after making your changes, and then start the full sharing rule recalculation as soon as possible during a period of low activity. By resuming sharing immediately, new updates are processed immediately, meaning there are fewer changes that must be recalculated. Completing the full sharing recalculation in a timely manner then ensures that record access behaves as expected without significant lag time. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note The defer sharing calculation feature isn't enabled by default. To enable it for your organization, contact Salesforce Customer Support. 1. From Setup, in the Quick Find box, enter Defer Sharing Calculations, and then select **Defer Sharing Calculations**. 2. In the Group Membership Calculations related list, click **Suspend**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note Suspending group membership calculations also suspends sharing rule calculations. 3. Make your changes to roles, territories, groups, users, or portal account ownership. 4. To enable group membership calculations again, click **Resume**. Group membership and sharing rule recalculation begin automatically. 5. To recalculate sharing rules, select **Yes** when asked if you want to automatically recalculate sharing rules. Or, in the Sharing Rule Calculations related list, click **Recalculate**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_important.png) Important After you resume group membership calculations, you must do a full sharing rule recalculation. Otherwise, changes that you made while calculations were suspended aren’t reflected in record access. #### See Also - [Defer Sharing Calculations](https://help.salesforce.com/s/articleView?id=platform.security_sharing_defer_sharing_calculations.htm&release=264.0.0&type=5 "Performing a large number of configuration changes can lead to very long sharing rule evaluations or timeouts. To avoid these issues, a Salesforce admin can suspend sharing calculations, specifically for sharing rules and group membership, then resume calculations during an organization's maintenance period.") - [_Designing Record Access for Enterprise Scale_: Group Membership Locking](https://developer.salesforce.com/docs/atlas.en-us.draes.meta/draes/draes_group_membership_locking.htm) # Defer Sharing Calculations Performing a large number of configuration changes can lead to very long sharing rule evaluations or timeouts. To avoid these issues, a Salesforce admin can suspend sharing calculations, specifically for sharing rules and group membership, then resume calculations during an organization's maintenance period. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note The defer sharing calculation feature isn't enabled by default. To enable it for your organization, contact Salesforce Customer Support. By default, sharing rules and group membership are recalculated after certain updates to related features, such as sharing settings, roles, territories, groups, and users.
Type of Sharing Calculation Occurs When You
Sharing Rule
  • Change an organization's default sharing model
  • Create, edit, or delete sharing rules
  • Create or transfer any records
  • Update public group members
  • Create or activate a user
  • Change users’ roles or update the role hierarchy
  • Add or remove users from territories
  • Reparent territories
  • Make changes to roles, territories, or public groups involved in sharing rules
Group Membership
  • Change or reparent roles
  • Add or remove users from territories
  • Update public group members
  • Update portal account ownership if the new owner has a different role
When you defer sharing rule or group membership calculations, most sharing evaluations are disabled. Access configuration changes don’t take effect until you resume sharing rule or group membership recalculations and recalculate sharing rules. You can defer sharing calculations if you make a large number of changes that trigger sharing recalculation, and want to suspend the automatic sharing calculations to a later time to prevent timeouts or performance issues. Keep in mind that sharing updates aren’t evaluated while sharing calculations are deferred. You must also remember to restart sharing calculations and complete a full recalculation to avoid record access inconsistencies. To ensure that your changes are successful and the impact to your users is minimal, review [Considerations for Making Sharing Updates](https://help.salesforce.com/s/articleView?id=platform.security_sharing_update_considerations.htm&release=264.0.0&type=5 "Review these considerations before making sharing changes, such as updates to organization-wide defaults, sharing rules, account ownerships, or group memberships.") before deferring group membership or sharing rule calculations. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note Deferring sharing calculations doesn’t defer the recalculation of some sharing changes in order to preserve data integrity. These calculations that can't be suspended can take significant time to process based on the org's settings and data volume. [Group membership locking](https://developer.salesforce.com/docs/atlas.en-us.draes.meta/draes/draes_group_membership_locking.htm) can also still occur while sharing calculations are deferred. - **[Defer Sharing Rule Calculations](https://help.salesforce.com/s/articleView?id=platform.security_sharing_rule_recalculation.htm&release=264.0.0&type=5)** If you’re making a large number of changes that affect sharing rules, including changes to sharing rules, roles, territories, or public groups, you can temporarily suspend automatic sharing rule calculations and resume them after you finish your updates. You must resume calculations and do a full sharing rule recalculation, or you can experience sharing inconsistencies in your records. - **[Defer Group Membership Calculations](https://help.salesforce.com/s/articleView?id=platform.security_sharing_group_membership_calculations.htm&release=264.0.0&type=5)** If you’re making changes to groups or related features that affect many records, you can temporarily suspend automatic group membership calculations and resume them after you finish your updates. You must resume calculations and do a full sharing rule recalculation, or you can experience sharing inconsistencies in your records. #### See Also - [Recalculate Sharing Rules Manually](https://help.salesforce.com/s/articleView?id=platform.security_sharing_recalculating.htm&release=264.0.0&type=5 "When you make changes to sharing settings, groups, roles, and territories, sharing rules are reevaluated to add or remove access as necessary. You can manually recalculate sharing rules if sharing rule updates have failed or aren’t working as expected.") - [_Designing Record Access for Enterprise Scale_](https://developer.salesforce.com/docs/atlas.en-us.draes.meta/draes/draes_preface.htm) # Defer Sharing Rule Calculations If you’re making a large number of changes that affect sharing rules, including changes to sharing rules, roles, territories, or public groups, you can temporarily suspend automatic sharing rule calculations and resume them after you finish your updates. You must resume calculations and do a full sharing rule recalculation, or you can experience sharing inconsistencies in your records. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions

See Sharing Rule Considerations for more information on availability.

User Permissions Needed
To defer (suspend and resume) and recalculate sharing rules:

Manage Users

AND

Manage Sharing Calculation Deferral

When you make any of these changes, sharing rules are automatically recalculated to add or remove access as necessary: - Change an organization's default sharing model - Create, edit, or delete sharing rules - Create or transfer any records - Update public group members - Create or activate a user - Change users’ roles or update the role hierarchy - Add or remove users from territories - Reparent territories - Make changes to roles, territories, or public groups involved in sharing rules If any of these changes affect large groups of users or related features, your updates can cause performance issues or sharing rule calculation timeouts. You can temporarily defer sharing rule calculations before you make your changes. After you finish your updates, you must resume sharing rule calculations and do a full sharing rule recalculation. Review [Considerations for Making Sharing Updates](https://help.salesforce.com/s/articleView?id=platform.security_sharing_update_considerations.htm&release=264.0.0&type=5 "Review these considerations before making sharing changes, such as updates to organization-wide defaults, sharing rules, account ownerships, or group memberships.") before deferring sharing rule calculations. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note If you defer sharing rule calculations, only updates that involve sharing rules, whether directly or indirectly, are deferred, while other sharing-related changes are still processed immediately. To give a few examples, if you create sharing rules or update roles that are referenced in sharing rules, the resulting recalculations are paused. However, if you create manual shares, update teams or queues, or update roles that aren’t referenced in any sharing rules, those changes are still evaluated immediately. These calculations that can't be suspended can take significant time to process based on the org's settings and data volume. [Group membership locking](https://developer.salesforce.com/docs/atlas.en-us.draes.meta/draes/draes_group_membership_locking.htm) can also still occur while sharing calculations are deferred. We recommend that you resume sharing calculations immediately after making your changes, and then start the full sharing rule recalculation as soon as possible during a period of low activity. By resuming sharing calculations immediately, new updates are processed immediately, meaning there are fewer changes that must be recalculated. Completing the full sharing recalculation in a timely manner then ensures that record access behaves as expected without significant lag time. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note The defer sharing calculation feature isn't enabled by default. To enable it for your organization, contact Salesforce Customer Support. 1. From Setup, in the Quick Find box, enter Defer Sharing Calculations, and then select **Defer Sharing Calculations**. 2. In the Sharing Rule Calculations related list, click **Suspend**. 3. Make changes to sharing rules, roles, territories, or public groups participating in sharing rules. 4. To enable sharing rule calculations again, click **Resume**. 5. To manually recalculate sharing rules, click **Recalculate**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_important.png) Important After you resume sharing rule calculations, you must click Recalculate to do a full sharing rule recalculation. Otherwise, changes that you made while calculations were suspended aren’t reflected in record access. When sharing is recalculated, Salesforce also runs all Apex sharing recalculations. #### See Also - [Defer Group Membership Calculations](https://help.salesforce.com/s/articleView?id=platform.security_sharing_group_membership_calculations.htm&release=264.0.0&type=5 "If you’re making changes to groups or related features that affect many records, you can temporarily suspend automatic group membership calculations and resume them after you finish your updates. You must resume calculations and do a full sharing rule recalculation, or you can experience sharing inconsistencies in your records.") # Define a Charset in the Schema To specify a `charset` for external callouts, populate the `Content-Type` header. A `charset` can be set if specifically defined in the schema. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
During an external callout, the `Content-Type` header is used to describe the media type (for example, application/json, text/plain, etc.) of a resource that can be consumed by the operation. `charset` is an optional parameter of `Content-Type` that specifies the character encoding of the media type. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note With the Spring ’23 release, `charset` in the `Content-Type` header is no longer populated by default when making external callouts. Previously, `Content-Type` included the `charset=UTF-8` parameter by default. As an example, we'll edit the BankService schema to set `charset` to `UTF-8`. As OpenAPI 2.0 and Open API 3.0 schema versions are implemented differently, we'll use both versions. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example Define `charset` in an OpenAPI 2.0 Schema ``` { "swagger":"2.0", "basePath":"/", "info":{ "version":"1.0", "title":"External Service for demo bank", "description":"### External Service for demo bank", "x-vcap-service-name":"DemoBankRestServices" }, "securityDefinitions":{ "basicAuth":{ "type":"basic" } }, "security":[ { "basicAuth":[ ] } ], "tags":[ { "name":"DemoBankRestServices" } ], "paths":{ "/accounts/{accountName}":{ "get":{ "operationId":"getAccount", "summary":"Retrieves an account", "description":"Retrieves the account with specific name", "consumes":[ "text/plain; charset=UTF-8" ], "produces":[ "application/json" ], "parameters":[ { "name":"accountName", "in":"path", "required":true, "type":"string", "description":"Name of the account" } ], "responses":{ "200":{ "description":"The response when system finds an account with given name", "schema":{ "$ref":"#/definitions/accountDetails" } }, "400":{ "description":"Error response if the account name parameter is less than minimum characters", "schema":{ "$ref":"#/definitions/errorModel" } }, "404":{ "description":"Error response if the account is not supported by service or account is not found", "schema":{ "$ref":"#/definitions/errorModel" } } } }, "delete":{ "operationId":"DeleteAccount", "summary":"Deletes an account", "description":"Deletes the account with specific name", "consumes":[ "text/plain; charset=UTF-8" ], "produces":[ "application/json" ], "parameters":[ { "name":"accountName", "in":"path", "required":true, "type":"string", "description":"Name of the account" } ], "responses":{ "204":{ "description":"The response when system finds an account with given name", "schema":{ "type":"string" } }, "400":{ "description":"Error response if the account name parameter is less than minimum characters", "schema":{ "$ref":"#/definitions/errorModel" } }, "404":{ "description":"Error response if the account is not supported by service or account is not found", "schema":{ "$ref":"#/definitions/errorModel" } } } }, "post":{ "operationId":"addAccount", "summary":"Add an account", "description":"Add an account to the database", "consumes":[ "text/plain; charset=UTF-8" ], "produces":[ "application/json" ], "parameters":[ { "name":"accountName", "in":"path", "required":true, "type":"string", "description":"Name of the account" }, { "name":"accountType", "in":"query", "required":true, "type":"string", "description":"The type of account" } ], "responses":{ "201":{ "description":"The response when the account does not already exist and we can create one", "schema":{ "$ref":"#/definitions/accountDetails" } }, "409":{ "description":"The response when the account already exists and we cannot create one", "schema":{ "$ref":"#/definitions/accountDetails" } }, "400":{ "description":"Error response if the account name parameter is less than minimum characters", "schema":{ "$ref":"#/definitions/errorModel" } }, "404":{ "description":"Error response if the account is not supported by service or account is not found", "schema":{ "$ref":"#/definitions/errorModel" } } } }, "put":{ "operationId":"updateAccount", "summary":"Updates an account", "description":"Updates the account with specified name", "consumes":[ "text/plain; charset=UTF-8" ], "produces":[ "application/json" ], "parameters":[ { "name":"accountName", "in":"path", "required":true, "type":"string", "description":"Name of the account" }, { "name":"accountType", "in":"query", "required":true, "type":"string", "description":"The type of account" } ], "responses":{ "200":{ "description":"The response when system finds an account with given name", "schema":{ "$ref":"#/definitions/accountDetails" } }, "400":{ "description":"Error response if the account name parameter is less than minimum characters", "schema":{ "$ref":"#/definitions/errorModel" } }, "404":{ "description":"Error response if the account is not supported by service or account is not found", "schema":{ "$ref":"#/definitions/errorModel" } } } } } }, "definitions":{ "accountDetails":{ "required":[ "id", "name", "type", "availableBal" ], "properties":{ "id":{ "type":"string", "description":"id" }, "name":{ "type":"string", "description":"name" }, "type":{ "type":"string", "description":"type" }, "availableBal":{ "type":"string", "description":"availableBal" } } }, "errorModel":{ "required":[ "errorCode", "errorMessage" ], "properties":{ "errorCode":{ "type":"string", "description":"A service-specific error code." }, "errorMessage":{ "type":"string", "description":"A service-specific error code." } } } } } ``` ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example Define `charset` in an OpenAPI 3.0 Schema ``` { "openapi": "3.0.1", "info": { "title": "External Service for demo bank", "description": "### External Service for demo bank", "version": "1.0", "x-vcap-service-name": "DemoBankRestServices" }, "servers": [ { "url": "/" } ], "security": [ { "basicAuth": [] } ], "tags": [ { "name": "DemoBankRestServices" } ], "paths": { "/accounts/{accountName}": { "get": { "summary": "Retrieves an account", "description": "Retrieves the account with specific name", "operationId": "getAccount", "parameters": [ { "name": "accountName", "in": "path", "description": "Name of the account", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The response when system finds an account with given name", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/accountDetails" } } } }, "400": { "description": "Error response if the account name parameter is less than minimum characters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/errorModel" } } } }, "404": { "description": "Error response if the account is not supported by service or account is not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/errorModel" } } } } } }, "put": { "summary": "Updates an account", "description": "Updates the account with specified name", "operationId": "updateAccount", "parameters": [ { "name": "accountName", "in": "path", "description": "Name of the account", "required": true, "schema": { "type": "string" } }, { "name": "accountType", "in": "query", "description": "The type of account", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded; charset=UTF-8": { "schema": { "type": "string" } } } }, "responses": { "200": { "description": "The response when system finds an account with given name", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/accountDetails" } } } }, "400": { "description": "Error response if the account name parameter is less than minimum characters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/errorModel" } } } }, "404": { "description": "Error response if the account is not supported by service or account is not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/errorModel" } } } } } }, "post": { "summary": "Add an account", "description": "Add an account to the database", "operationId": "addAccount", "parameters": [ { "name": "accountName", "in": "path", "description": "Name of the account", "required": true, "schema": { "type": "string" } }, { "name": "accountType", "in": "query", "description": "The type of account", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/x-www-form-urlencoded; charset=UTF-8": { "schema": { "type": "string" } } } }, "responses": { "201": { "description": "The response when the account does not already exist and we can create one", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/accountDetails" } } } }, "400": { "description": "Error response if the account name parameter is less than minimum characters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/errorModel" } } } }, "404": { "description": "Error response if the account is not supported by service or account is not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/errorModel" } } } }, "409": { "description": "The response when the account already exists and we cannot create one", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/accountDetails" } } } } } }, "delete": { "summary": "Deletes an account", "description": "Deletes the account with specific name", "operationId": "DeleteAccount", "parameters": [ { "name": "accountName", "in": "path", "description": "Name of the account", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "The response when system finds an account with given name", "content": { "application/json": { "schema": { "type": "string" } } } }, "400": { "description": "Error response if the account name parameter is less than minimum characters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/errorModel" } } } }, "404": { "description": "Error response if the account is not supported by service or account is not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/errorModel" } } } } } } } }, "components": { "schemas": { "accountDetails": { "required": [ "availableBal", "id", "name", "type" ], "type": "object", "properties": { "id": { "type": "string", "description": "id" }, "name": { "type": "string", "description": "name" }, "type": { "type": "string", "description": "type" }, "availableBal": { "type": "string", "description": "availableBal" } } }, "errorModel": { "required": [ "errorCode", "errorMessage" ], "type": "object", "properties": { "errorCode": { "type": "string", "description": "A service-specific error code." }, "errorMessage": { "type": "string", "description": "A service-specific error code." } } } }, "securitySchemes": { "basicAuth": { "type": "http", "scheme": "basic" } } } } ``` # Define a Dependent Picklist Specify a dependent picklist and its values for your org. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: All Editions

Standard Objects aren’t available in Database.com

User Permissions Needed
To define dependent picklists: Customize Application
If your org uses record types, make sure that your controlling and dependent picklist values are available in the appropriate record types before you define a dependent picklist. 1. From the management settings for the object you want to add a field to, go to Fields. Custom task and event fields are accessible from the object management settings for Activities. 2. Click **Field Dependencies**. 3. Click **New**. 4. Choose a controlling field and dependent field. Some picklist and checkbox fields aren’t available as controlling fields. 5. Click **Continue**. 6. Use the [field dependency matrix](https://help.salesforce.com/s/articleView?id=platform.fields_using_the_field_dependency_matrix.htm&release=264.0.0&type=5 "The field dependency matrix lets you specify the dependent picklist values that are available when a user selects each controlling field value. The top row of the matrix contains the controlling field values, while the columns list the dependent field values. Use this matrix to include or exclude values. Included values are available in the dependent picklist when a value in the controlling field is selected. Excluded fields aren’t available in the dependent picklist for the selected controlling field value.") to specify the dependent picklist values that are available when a user selects each controlling field value. 7. Optionally, click **Preview** to test your selections. If your org uses record types, choose a record type to test how it affects your controlling and dependent picklist values. The record type controls what values are available in the controlling field. The record type and the controlling field together determine what values are available in the dependent picklist. For example, a dependent value is only available if it’s available in the selected record type and the selected controlling value. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The Filter by Record Type option doesn’t appear in the Preview window for activity custom fields. 8. Click **Save**. # Define a Field as Required Using Field Sets You can define a field as required when you create or edit field sets. You may want to define a field as required to ensure a user enters the necessary information on a field. ### Required Editions
Available in: Salesforce Classic
Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, and delete field sets: Customize Application or be a delegated administrator
The required field is only available in the In the Field Set container. If you define a field as required in the In the Field Set container, and remove the field from the In the Field Set, the required attribute is removed. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you remove fields that were made required by an installed managed package from the In the Field Set container, the required attribute isn’t removed from those fields. To define a field as required in a field set, see [Creating and Editing Field Sets.](https://help.salesforce.com/s/articleView?id=platform.fields_editing_field_sets.htm&release=264.0.0&type=5 "Salesforce has a drag-and-drop WYSIWYG tool for creating and editing field sets The enhanced field sets editor is enabled by default, and provides all of the functionality of the original editor, as well as additional functionality and an easier-to-use WYSIWYG interface.") #### See Also - [About Field Sets](https://help.salesforce.com/s/articleView?id=platform.fields_about_field_sets.htm&release=264.0.0&type=5 "A field set is a grouping of fields. For example, you could have a field set that contains fields describing a user's first name, middle name, last name, and business title.") # Define a Flow Trigger After you create an autolaunched flow, create a flow trigger to launch that flow as part of a workflow rule. ### Required Editions
Available in: Salesforce Classic
View supported editions.
User Permissions Needed
To view workflow rules and actions: View Setup and Configuration
To create or change workflow rules and actions: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Starting in Winter ’23, you can’t create new workflow rules. You can still activate, deactivate, and edit any existing workflow rules. To migrate existing workflow rules, use the [Migrate to Flow tool](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions."). For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). 1. From Setup, enter Flow Triggers in the Quick Find box, then select **Flow Triggers**. 2. Click **New Flow Trigger**. 3. Select the same object as the workflow rule, and then click **Next**. 4. Configure the flow trigger. | Field | Description | | --- | --- | | Name | Name of the flow trigger. | | Unique Name | Enter a unique name to refer to this component in the API. The **Unique Name** field can contain only underscores and alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. | | Protected Component | Reserved for future use. | | Flow | Unique name of the autolaunched flow that this workflow action launches. | | Set Flow Variables | Whether to pass values into the flow’s variables. | 5. If you select Set Flow Variables, specify their names and values. Click **Set Another Value** to set up. 6. To put the flow trigger in test mode, select Administrators run the latest flow version. When selected and an admin triggers the workflow rule, the flow trigger launches the latest version of the flow. For all other users, the flow trigger always launches the active version of the flow. The same values are passed into the flow variables whether the flow trigger launches the active or latest flow version. 7. Click **Save**. Don’t forget to [associate the flow trigger to a workflow rule](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_system_wf_associate.htm&release=264.0.0&type=5 "Add the flow trigger as an immediate action on your workflow rule."). # Define a Flow Trigger for Workflow (Pilot) Create a flow trigger so that you can launch a flow from workflow rules. With flow triggers, you can automate complex business processes—create flows to perform logic, and have events trigger the flows via workflow rules—without writing code. For example, your flow looks up and assigns the relevant entitlement for a case. Create a flow trigger to launch the flow whenever a case is created, so that all new cases are automatically set with a default entitlement. ### Required Editions
Available in: Salesforce Classic
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To view workflow rules and actions: View Setup and Configuration
To create or change workflow rules and actions: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note The pilot program for flow trigger workflow actions is closed. If you've already enabled the pilot in your org, you can continue to create and edit flow trigger workflow actions. If you didn't enable the pilot in your org, use Flow Builder to create a record-triggered flow, or use Process Builder to launch a flow from a process. To get started using flow triggers, from Setup, enter Flow Triggers in the Quick Find box, then select **Flow Triggers**. Before you begin: - Create and activate the autolaunched flow that you want this workflow action to launch. - Create the workflow rule that you plan to add this workflow action to. - Understand the special behavior and limitations of flow triggers. See [Flow Trigger Considerations (Pilot)](https://help.salesforce.com/s/articleView?id=platform.workflow_flow_action_considerations.htm&release=264.0.0&type=5 "Flow trigger workflow actions have special behaviors and limitations."). Complete these steps to create a flow trigger. 1. From Setup, enter Flow Triggers in the Quick Find box, then select **Flow Triggers**. 2. Click **New Flow Trigger**. 3. Select the same object as the workflow rule, and then click **Next**. 4. Configure the flow trigger. | Field | Description | | --- | --- | | Name | Name of the flow trigger. | | Unique Name | Enter a unique name to refer to this component in the API. The **Unique Name** field can contain only underscores and alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. | | Protected Component | Reserved for future use. | | Flow | Unique name of the autolaunched flow that this workflow action launches. | | Set Flow Variables | Whether to pass values into the flow’s variables. | 5. If you select Set Flow Variables, specify their names and values. Click **Set Another Value** to set up to
Field Description
Name

Select the name of the flow variable.

Only variables that allow input access can be selected.

Value

For a flow variable, you can:

  • Enter a literal value.
  • Click Lookup, select a field, and click Insert.

For a record variable, you can:

  • Click Lookup, select a record, and click Insert.

    To help you distinguish between records and fields, all record options are marked with an asterisk (*) and appear at the top of each list.

  • To use the current values of the record that was created or edited to cause the workflow rule to fire, enter {!this}.
  • To use the most recent previous values of the record that was edited to cause the workflow rule to fire, enter {!old}.

    In other words, {!old} identifies the same record as {!this} but uses the record’s values from immediately before it was edited to cause the workflow rule to fire.

  • If the record was newly created, {!old} is null.
  • Unlike {!this}, {!old} can’t be selected by clicking Lookup. Manually enter {!old} in the Value column.
6. To put the flow trigger in test mode, select Administrators run the latest flow version. When selected and an admin triggers the workflow rule, the flow trigger launches the latest version of the flow. For all other users, the flow trigger always launches the active version of the flow. The same values are passed into the flow variables whether the flow trigger launches the active or latest flow version. 7. Click **Save**. Don’t forget to [associate the flow trigger to a workflow rule](https://help.salesforce.com/s/articleView?id=platform.workflow_select_action.htm&release=264.0.0&type=5 "Associate actions that have already been created in your organization with a workflow rule and approval processes."). #### See Also - [Flow Trigger Considerations (Pilot)](https://help.salesforce.com/s/articleView?id=platform.workflow_flow_action_considerations.htm&release=264.0.0&type=5 "Flow trigger workflow actions have special behaviors and limitations.") # Define a Legacy Named Credential for Salesforce Connect Adapter for Amazon DynamoDB Create a legacy named credential that specifies the URL of a callout endpoint as Amazon DynamoDB endpoint and provides the required authentication parameters. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To view named credentials: View Setup and Configuration
To create, edit, or delete named credentials: Customize Applications
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important In Winter ’23, Salesforce introduced an improved named credential that is extensible, customizable, and more secure. We strongly recommend that you use this preferred credential instead of legacy named credentials, which are no longer updated or enhanced. For information on extensible, customizable named credentials, see [Named Credentials Schema](https://help.salesforce.com/s/articleView?id=xcloud.nc_parts_of_nc.htm&type=5&language=en_US). 1. From Setup, enter Named Credentials in the Quick Find box, then select **Named Credentials**. 2. To create a new legacy named credential, click **New Legacy** from the dropdown menu. 3. Complete the fields.
Field Description
Label A user-friendly name for the named credential that’s displayed in the Salesforce user interface.
Name A unique identifier that’s used to refer to this named credential from callout definition while creating an external data source for Amazon DynamoDB.
URL

The URL of the Amazon DynamoDB endpoint.

Sample format for the URL would be https://dynamodb.REGION.amazonaws.com

For example, if the AWS region is us-east-1, the URL would be https://dynamodb.us-east-1.amazonaws.com

Identity Type Select Named Principal to designate one user account on the Amazon DynamoDB external system for all your Salesforce org users.
Authentication Protocol

Select AWS Signature Version 4 and complete the following fields.

  1. AWS Access Key ID: First part of the access key used to sign programmatic requests to AWS.
  2. AWS Secret Access Key : Second part of the access key used to sign programmatic requests to AWS.
  3. AWS Region : The AWS region name for the named credential’s endpoint. For example, us-east-1.
  4. AWS Service: dynamodb, which is the AWS utility to access.
#### See Also - [_Amazon DynamoDB Developer Guide_: Getting an AWS Access Key](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SettingUp.DynamoWebService.html#) - [Named Credentials](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&type=5&language=en_US) - [Salesforce Connect Adapter for Amazon DynamoDB](https://help.salesforce.com/s/articleView?id=platform.dynamodb_adapter_about.htm&release=264.0.0&type=5 "Connect to Amazon DynamoDB to access and integrate DynamoDB data into Salesforce applications. With this adapter, take advantage of the flexible data storage capabilities of Amazon DynamoDB that provides fast and predictable performance combined with customer 360-degree view captured in Salesforce.") # Define a Legacy Named Credential for Salesforce Connect SQL Adapter for Amazon Athena Create a legacy named credential that specifies the URL of a callout endpoint as an Amazon Athena endpoint and provides the required authentication parameters. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: all editions
User Permissions Needed
To view named credentials: View Setup and Configuration
To create, edit, or delete named credentials: Customize Applications
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important In Winter ’23, Salesforce introduced an improved named credential that is extensible, customizable, and more secure. We strongly recommend that you use this preferred credential instead of legacy named credentials, which are no longer updated or enhanced. For information on extensible, customizable named credentials, see [Named Credentials Schema](https://help.salesforce.com/s/articleView?id=xcloud.nc_parts_of_nc.htm&type=5&language=en_US). 1. From Setup, in the Quick Find box, enter Named Credentials, and then select **Named Credentials**. 2. To create a legacy named credential, click **New Legacy** from the dropdown menu. 3. Complete the fields.
Field Description
Label A user-friendly name for the named credential that’s displayed in the Salesforce user interface.
Name A unique identifier that’s used to refer to this named credential from callout definition while creating an external data source for Amazon Athena.
URL

The URL of the Amazon Athena endpoint.

The sample format of the URL is https://athena.REGION.amazonaws.com.

For example, if the AWS region is us-west-2, the URL is https://athena.us-west-2.amazonaws.com.

Identity Type To designate one user account on the Amazon Athena external system for all your Salesforce org users, select Named Principal.
Authentication Protocol

Select AWS Signature Version 4, and then complete these fields.

  1. AWS Access Key ID: The first part of the access key used to sign programmatic requests to AWS.
  2. AWS Secret Access Key: The second part of the access key used to sign programmatic requests to AWS.
  3. AWS Region: The AWS region name for the named credential’s endpoint. For example, us-west-2.
  4. AWS Service: The AWS utility to access. For example, athena.
4. Save your changes. #### See Also - [AWS Account and Access Keys](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html) - [Named Credentials](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&type=5&language=en_US) - [Salesforce Connect SQL Adapter for Amazon Athena](https://help.salesforce.com/s/articleView?id=platform.athena_adapter_about.htm&release=264.0.0&type=5 "Provide your users access to Amazon Athena’s capability to analyze data directly in Amazon Simple Storage Service (Amazon S3) and integrate AWS-hosted data in Salesforce applications.") # Define a Named Credential for Salesforce Connect Adapter for Amazon DynamoDB Create a named credential that specifies the endpoint URL for Amazon DynamoDB and an external credential to provide the required authentication parameters. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To view named credentials: View Setup and Configuration
To create, edit, or delete named credentials: Customize Applications
1. From Setup, enter Named Credentials in the Quick Find box, then select **Named Credentials**. 2. Click **External Credentials**. 3. To create a new external credential, click **New** . To edit an existing external credential, click its link in the list of external credentials and then click **Edit**. 4. Complete the fields. | Field | Description | | --- | --- | | Label | A user-friendly name for the named credential that’s displayed in the Salesforce user interface. | | Name | A unique identifier that’s used to refer to this external credential from callout definitions while creating an external data source for Amazon DynamoDB. | | Authentication Protocol | Select **AWS Signature Version 4**. | | Service | The name of an AWS service, such as _dynamodb_. | | Region | The AWS region for the named credential’s endpoint. For example, us-west-2. | | AWS Account ID | Optional. The 12-digit number that uniquely identifies your AWS account. | | Use STS for Temporary Access | Select the checkbox to provide limited access and specify STS access key, access secret, external ID, and duration. For details, see [Create and Edit an External Credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_awssig4_ext_cred.htm&type=5&language=en_US). | 5. Click **Save**. You’re taken to the Named Credentials screen. 6. To further edit the new external credential, click **External Credential**. 7. Select the external credential you created. 8. Scroll to Permission Set Mappings. 9. Click **New** to create a permission set mapping for this external credential. 10. Complete the following fields. When you use STS for temporary access, the Access Key and Secret fields are disabled and display the temporary credentials, if any.
Field Description
Permission Set

Select an available permission set. This enables different groups of Salesforce users to mirror access permissions of IAM roles.

Make sure you define the required access to the User External Credentials object (use permission sets or profiles to configure object access). Only users with access to the User External Credentials object can make callouts to the external source. For details, see Named Credentials and External Credentials.

Sequence Number Assign a sequence number. A sequence number specifies the order of principals to apply when a user participates in more than one principal. For example, a user could be part of multiple permission sets that are applicable for a credential provider. Priority is from lower to higher numbers.
IAM Role ARN

The Amazon Resource Name (ARN) of the role that the credential assumes.

To get the ARN for an IAM role:

  1. In the navigation pane of the IAM console, choose Roles.
  2. In the list of roles, choose the role you want to map to the permission set.
  3. In the Summary section, copy the ARN value.

For details, see AWS Identity and Access Management User Guide: Tutorials.

11. Create a named credential that uses the authentication configuration you defined in the external credential. From Setup, enter Named Credentials in the Quick Find box, select **Named Credentials**, and then click **Named Credentials**. 12. To create a new named credential, click **New** and complete the fields. - Fill out the Label, Name, and URL fields. Sample format for the URL would be `https://dynamodb._REGION_.amazonaws.com` For example, if the AWS region is us-west-2, the URL would be `https://dynamodb.us-west-2.amazonaws.com` For details, see [Create and Edit a Named Credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_named_credential.htm&type=5&language=en_US). - For the External Credential field, select the external credential you created that uses the AWS Signature Version 4 authentication protocol. - Select Generate Authorization Header. Use the named credential that captures the authentication configuration in external credentials to authenticate Salesforce users against Amazon DynamoDB, provide limited access to AWS resources, and periodically refresh access tokens. #### See Also - [_Amazon DynamoDB Developer Guide_: Getting an AWS Access Key](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SettingUp.DynamoWebService.html#) - [Named Credentials](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&type=5&language=en_US) - [Salesforce Connect Adapter for Amazon DynamoDB](https://help.salesforce.com/s/articleView?id=platform.dynamodb_adapter_about.htm&release=264.0.0&type=5 "Connect to Amazon DynamoDB to access and integrate DynamoDB data into Salesforce applications. With this adapter, take advantage of the flexible data storage capabilities of Amazon DynamoDB that provides fast and predictable performance combined with customer 360-degree view captured in Salesforce.") # Define a Named Credential for Salesforce Connect Adapter for GraphQL Create a named credential that specifies the endpoint URL of a GraphQL API and an external credential to provide the required authentication parameters. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To view named credentials: View Setup and Configuration
To create, edit, or delete named credentials: Customize Applications
To create an external credential that uses AWS Signature Version 4 authentication protocol, see [Create and Edit an AWS Signature v4 External Credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_awssig4_ext_cred.htm&type=5&language=en_US). To create a named credential and link it to the external credential, see [Create and Edit a Named Credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_named_credential.htm&type=5&language=en_US). If you’re creating a named credential for GraphQL API URL hosted by AppSync, URL format would be `https://.appsync-api.REGION.amazonaws.com/graphql` For example, if the AWS region is us-west-2, the URL would be `https://.appsync-api.us-west-2.amazonaws.com/graphql` To get the GraphQL API URL hosted by AppSync, go to AWS AppSync Console > APIs and select the GraphQL API to use. Under Settings > API Details, copy the API URL. #### See Also - [Named Credentials](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&type=5&language=en_US) - [Salesforce Connect Adapter for GraphQL](https://help.salesforce.com/s/articleView?id=platform.graphql_adapter_about.htm&release=264.0.0&type=5 "GraphQL is a standard query language that allows applications to flexibly access required data and provides a modern way to integrate applications. Unlike traditional REST APIs, GraphQL provides granularity in specifying fields and relationships and is more efficient.") # Define a Named Credential for Salesforce Connect SQL Adapter for Amazon Athena Create a named credential that specifies the endpoint URL for Amazon Athena and an external credential to provide the required authentication parameters. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: all editions
User Permissions Needed
To view named credentials: View Setup and Configuration
To create, edit, or delete named credentials: Manage Named Credentials or Customize Applications
1. From Setup, in the Quick Find box, enter Named Credentials, and then select **Named Credentials**. 2. Click **External Credentials**. 3. To create a new external credential, click **New** . To edit an existing external credential, click its link in the list of external credentials and then click **Edit**. 4. Complete the fields. | Field | Description | | --- | --- | | Label | A user-friendly name for the named credential that’s displayed in the Salesforce user interface. | | Name | A unique identifier that’s used to refer to this external credential from callout definitions while creating an external data source for Amazon Athena. | | Authentication Protocol | Select **AWS Signature Version 4**. | | Service | The name of an AWS service, such as athena. | | Region | The AWS region for the named credential’s endpoint. For example, us-west-2. | | AWS Account ID | Optional. The 12-digit number that uniquely identifies your AWS account. | | Use STS for Temporary Access | Select the checkbox to provide limited access and specify STS access key, access secret, external ID, and duration. For details, see [Create and Edit an AWS Signature v4 External Credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_awssig4_ext_cred.htm&type=5&language=en_US). | 5. Save your changes. You’re taken to the Named Credentials screen. 6. To further edit the new external credential, click **External Credential**. 7. Select the external credential you created. 8. Scroll to Permission Set Mappings. 9. To create a permission set mapping for this external credential, click **New**. 10. Complete these fields. When you use STS for temporary access, the Access Key and Secret fields are disabled and display the temporary credentials, if any.
Field Description
Permission Set

Select an available permission set. When you do, different groups of Salesforce users can mirror access permissions of IAM roles.

Make sure that you define the required access to the User External Credentials object (use permission sets or profiles to configure object access). Only users with access to the User External Credentials object can make callouts to the external source. For details, see Named Credentials and External Credentials.

Sequence Number Assign a sequence number. A sequence number specifies the order of principals to apply when a user participates in more than one principal. For example, a user can be part of multiple permission sets that are applicable for a credential provider. Priority is from lower to higher numbers.
IAM Role ARN

The Amazon Resource Name (ARN) of the role that the credential assumes.

To get the ARN for an IAM role:

  1. In the navigation pane of the IAM console, choose Roles.
  2. In the list of roles, choose the role that you want to map to the permission set.
  3. In the Summary section, copy the ARN value.

For details, see AWS Identity and Access Management User Guide: Tutorials.

11. Create a named credential that uses the authentication configuration you defined in the external credential. From Setup, in the Quick Find box, enter Named Credentials, select **Named Credentials**, and then click **Named Credentials**. 12. To create a new named credential, click **New** and complete the fields. 1. Fill out the Label, Name, and URL fields. The sample format for the URL is `https://athena._REGION_.amazonaws.com`. For example, if the AWS region is us-west-2, the URL is `https://athena.us-west-2.amazonaws.com`. For details, see [Create and Edit a Named Credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_named_credential.htm&type=5&language=en_US). 2. For the External Credential field, select the external credential you created that uses the AWS Signature Version 4 authentication protocol. 3. Select Generate Authorization Header. Use the named credential that captures the authentication configuration in external credentials to authenticate Salesforce users against Amazon Athena, provide limited access to AWS resources, and periodically refresh access tokens. #### See Also - [Named Credentials](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&type=5&language=en_US) # Define a Named Credential for Salesforce Connect SQL Adapter for Snowflake Create a named credential that specifies the endpoint URL for Snowflake and an external credential to provide the required authentication parameters. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: all editions
User Permissions Needed
To view named credentials: View Setup and Configuration
To create, edit, or delete named credentials: Manage Named Credentials or Customize Applications
When you use the Salesforce Connect adapter for SQL to integrate with Snowflake, Salesforce acts as a client (consumer) of Snowflake’s services. Enabling connectivity between services requires additional configuration in both Salesforce and Snowflake. To integrate Salesforce and Snowflake, perform this series of tasks. 1. In Salesforce, configure an authentication provider, and copy its redirect URI for the OAuth flow. 2. In Snowflake, configure an integration that references the redirect URI from Salesforce. 3. In Salesforce, update the authentication provider that you created with parameters from the Snowflake integration. 4. If your Snowflake account is configured so that AWS PrivateLink bypasses the public internet, set up an outbound connection in Salesforce to send traffic from Salesforce to your AWS Virtual Private Cloud (VPC). 5. In Salesforce, create an external credential that uses the authentication provider that you configured. 6. In Salesforce, create a named credential that uses the external credential that you configured. ## Configure an Authentication Provider in Salesforce To get started, create an authentication provider using OpenID Connect in Salesforce. Give the authentication provider a name like Snowflake, and enter placeholder values in other required fields. You update these fields after you create the integration in Snowflake. For more information, see [Configure an Authentication Provider Using OpenID Connect](https://help.salesforce.com/s/articleView?id=xcloud.sso_provider_openid_connect.htm&type=5&language=en_US). After you create the authentication provider, on the Auth. Provider Detail page, copy the callback URL that Salesforce generated. When you create the integration in Snowflake, the callback URL is the redirect URI that redirects the Salesforce admin back to Salesforce after they authenticate in Snowflake. ## Configure an Integration in Snowflake Next, create an integration in Snowflake to enable access to Snowflake’s SQL API. We recommend using Snowflake OAuth for custom clients. Name the integration Salesforce, and use the callback URL that you copied from Salesforce as the value for the OAUTH\_REDIRECT\_URI. For more information, see [Configure Snowflake OAuth for Custom Clients](https://docs.snowflake.com/en/user-guide/oauth-custom). After you create the integration, use this Snowflake query to see the Salesforce integration’s parameters. ```html DESCRIBE INTEGRATION SALESFORCE; ``` In the query results, retrieve and save these values to add to the authentication provider that you created in Salesforce. - `OAUTH_CLIENT_ID` - `OAUTH_AUTHORIZATION_ENDPOINT` - `OAUTH_TOKEN_ENDPOINT` Next, retrieve the client secret. Use this query and save the `OAUTH_CLIENT_SECRET` that Snowflake returns. ```html SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS( 'SALESFORCE' ); ``` Before you create external and named credentials in Salesforce, we also recommend creating a user with no administrator privileges in your Snowflake account. Assign the Snowflake user a role that isn’t ACCOUNTADMIN or SYSTEMADMIN, and grant the user access to the appropriate warehouse, database, schema, and tables. For more information, see [Configuring Access Control](https://docs.snowflake.com/en/user-guide/security-access-control-configure) in the Snowflake documentation. ## Update the Authentication Provider in Salesforce Next, in Salesforce, update the authentication provider that you created with the values from the Snowflake integration. | Salesforce Authentication Provider Field | Snowflake Integration Value | | --- | --- | | Consumer Key | `OAUTH_CLIENT_ID` | | Consumer Secret | `OAUTH_CLIENT_SECRET` | | Authorize Endpoint URL | `OAUTH_AUTHORIZATION_ENDPOINT` | | Token Endpoint URL | `OAUTH_TOKEN_ENDPOINT` | ## Establish an Outbound Connection with AWS in Salesforce If your Snowflake account is configured so that AWS PrivateLink bypasses the public internet, you must set up a Private Connect outbound connection in Salesforce to send traffic from Salesforce to your AWS VPC. If your Snowflake account doesn’t use AWS PrivateLink, skip this task. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Private Connect is available for purchase as an add-on license. See [Secure Cross-Cloud Integrations with Private Connect](https://help.salesforce.com/s/articleView?id=xcloud.private_connect_overview.htm&type=5&language=en_US). Before you create the outbound connection in Salesforce, work with your Snowflake admin or Snowflake Support to allow Salesforce to connect privately. See [AWS PrivateLink and Snowflake](https://docs.snowflake.com/en/user-guide/admin-security-privatelink) and [Allowing Hostnames](https://docs.snowflake.com/en/user-guide/hostname-allowlist) in the Snowflake documentation. You must also work with your Snowflake admin to allowlist the Salesforce AWS account for Snowflake. In Snowflake, identify your account’s AWS region. Then, from Salesforce Setup, in the Quick Find box, enter Private, and then click Private Connect. Open the AWS Regions list and find the row for the AWS region that your Snowflake account is in. In the IAM Role column, identify the AWS account number and share it with your Snowflake admin so that they can add the account to the list of allowed hostnames. ![Screen showing a list of AWS regions with an example of AWS account number, highlighted](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/integrate_connectors_snowflakevpc_aws_account.png) After your Salesforce account is allowlisted, return to Snowflake and run this query. ``` SELECT SYSTEM$GET_PRIVATELINK_CONFIG(); ``` In the query results, retrieve and save the values of `PRIVATELINK-VPCE-ID` and `PRIVATELINK-ACCOUNT-URL` to add to the outbound connection and named credential in Salesforce. We also recommend saving the `PRIVATELINK-ACCOUNT-NAME` to help you troubleshoot issues with the Snowflake team. In Salesforce, create the outbound connection. 1. From Setup, in the Quick Find box, enter Private, and then click **Private Connect**. 2. Click **Create Outbound Connection**, select **AWS PrivateLink**, and then click **Next**. 3. Complete the fields. | Field | Description | | --- | --- | | Connection Name | Enter a name that references the external system, such as `SnowflakeOutboundConnection`. | | VPC Endpoint Service Name | Enter the `PRIVATELINK-VPCE-ID` value that you copied from the Snowflake account. For example, `com.amazonaws.vpce.us-west-2.vpce-svc-025d08f3df604a276`. | | Region | Select the AWS region in which your VPC is hosted. For example, for the VPC endpoint `com.amazonaws.vpce.us-west-2.vpce-svc-025d08f3df604a276`, the AWS region is `us-west-2`. | 4. Select **Yes, I would like to provision my connection now**. 5. Save the connection. ## Create an External Credential for the Snowflake Integration Now you’re ready to create an external credential in Salesforce. We recommend using the OAuth 2.0 Browser Flow with the authentication provider that you created for the Snowflake account. 1. From Setup, in the Quick Find box, enter Named Credentials, and then select **Named Credentials**. 2. Click **External Credentials**. 3. To create an external credential, click **New**. 4. Complete the fields. | Field | Description | | --- | --- | | Label | A user-friendly name for the external credential that’s displayed in the Salesforce user interface, such as in list views. | | Name | A unique identifier that’s used to refer to this external credential from callout definitions while creating an external data source for Snowflake. | | Authentication Protocol | Select **OAuth 2.0**. | | Authentication Flow Type | Select **Browser Flow**. | | Scope | To allow offline access, enter `refresh_token`. | | Authentication Provider | Select the authentication provider that you created to access Snowflake. | 5. Save the external credential. You’re taken to the Named Credentials screen. ## Create the External Credential Principal Next, create the principal, authenticate to the external system, and grant access to Salesforce users. 1. On the Named Credentials screen, scroll to the Principals section. 2. To create a principal, click **New**. 3. Enter the information for the principal.
Field Description
Parameter Name Enter a name that references the external system, such as SnowflakeIntegrationUser.
Sequence Number Assign a sequence number. A sequence number specifies the order of principals to apply when a user participates in more than one principal. For example, a user can be part of multiple permission sets that are applicable for a credential provider. Priority is from lower to higher numbers.
Identity Type

Select Named Principal.

With the Named Principal identity type, your organization uses only one login account to access the Snowflake external system.

Scope

Optional. The Scope field accepts static values and formulas. To tie a group of authenticated users to a role in the Snowflake system, enter session:role:<snowflake role>.

For example, if at run time the user has Sales or Service in their department name, set a static scope of session:role:CUSTOMER_SERVICE.

Or enter a formula to request access dynamically. This example uses the session:role scope to request credential-level access based on each user’s department.

{!"session:role:" + $User.Department}
4. Save the principal. 5. To authenticate the principal, click its **Actions** menu, and then select **Authenticate**. You’re taken to Snowflake. Enter your login credentials, and then return to the Setup page in Salesforce to finish creating the external and named credentials. 6. In Salesforce, create or update a permission set to grant principal access so that users can make authenticated callouts to Snowflake. See [Enable External Credential Principals](https://help.salesforce.com/s/articleView?id=xcloud.nc_enable_ext_cred_principal.htm&type=5&language=en_US). ## Create a Named Credential for the Snowflake Integration Finally, create a named credential that uses the authentication configuration that you defined in the external credential. 1. From Setup, in the Quick Find box, enter Named Credentials, and then click **Named Credentials**. 2. To create a named credential, click **New**. 3. Complete the fields.
Field Description
Label A user-friendly name for the named credential that’s shown in the Salesforce user interface, such as in list views.
Name A unique identifier that’s used to refer to this named credential from a callout definition while creating an external data source for Snowflake.
URL

Enter a region-based URL with the format https://your snowflake org.snowflakecomputing.com/api/v2/statements/.

For example, if the Snowflake org is qab39024.us-east-1, the URL is https://qab39024.us-east-1.snowflakecomputing.com/api/v2/statements/.

To retrieve your Snowflake org, use this command.

SELECT CURRENT_ACCOUNT();

If your URL doesn’t include a region, you must include the Snowflake account as a custom HTTP header. See more information in the description of the Allow Formulas in HTTP Header field.

If your Snowflake account uses AWS PrivateLink to bypass the public internet, enter the PRIVATELINK-ACCOUNT-URL value that you copied from the Snowflake account appended with /api/v2/statements/. For example, https://qab39024.us-east-1.privatelink.snowflakecomputing.com/api/v2/statements/.

External Credential Select the Snowflake external credential you created that uses the OAuth 2.0 authentication protocol with the Browser Flow.
Generate Authorization Header Select this checkbox so that Salesforce generates an authorization header and applies it to each callout that references the named credential.
Allow Formulas in HTTP Header

Optional. Select this checkbox if the named credential’s URL doesn’t include a region. Then, after you save the named credential, add the Snowflake account as a custom HTTP header. Enter Snowflake-Account as the custom header’s name, and then enter the Snowflake account locator, for example xy12345, as the custom header’s value.

For more information about how to create a custom header, see Custom Headers for Credentials. For more information about how to find the Snowflake account locator, see Account Identifiers in the Snowflake documentation.

Outbound Network Connection Optional. If your Snowflake account uses AWS PrivateLink to bypass the public internet, select the Private Connect outbound connection that you created to access Snowflake. All callouts from Salesforce that use this named credential are routed through the private connection.
4. Save your changes. Use the named credential that captures the authentication configuration in external credentials to: - Authenticate Salesforce users against Snowflake. - Provide limited access to Snowflake resources. - Periodically refresh access tokens. #### See Also - [Named Credentials and External Credentials](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) # Define an Appointment Assignment Policy Define an appointment assignment policy and specify the parameters that are used to calculate the utilization score for service resources. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Assignment Policies, and then select **Assignment Policies**. 2. Click **New**. 3. Enter a name for the policy. 4. From the Policy Type list, select **Load Balancing**. 5. Select a utilization count type. Total Appointment Duration Calculates a service resource’s utilization score based on the total duration of scheduled appointments for that resource. Number of Appointments Calculates a service resource’s utilization score based on the total number of scheduled appointments for that resource. 6. Select a utilization calculation frequency. Parameter-Based Calculates the utilization score for the number of days that are displayed on the time slot screen. For APIs, the utilization score is calculated for the duration specified in the `getAppointmentCandidates` or `available-territory-slots` API. Monthly Calculates service resources’ utilization scores for the entire month during which the appointment is schedule. (This date isn’t the date of appointment.) For an anonymous appointment, the utilization scores are calculated for the entire month that the selected appointment time slot falls in. For example, if you’re scheduling an appointment on July 8, all appointments in the month of July are considered for calculating the utilization score. For an anonymous appointment, if you select an appointment time slot on August 10, all appointments in the month of August are considered. Weekly Calculates service resources’ utilization scores for the entire week during which the appointment is scheduled. (This date isn’t the date of appointment.) For an anonymous appointment, the utilization scores are calculated for the entire week that the selected appointment time slot falls in. For example, if you’re scheduling an appointment on July 8, all appointments in that week are considered for calculating the utilization score. For an anonymous appointment, if you select an appointment time slot on August 10, all appointments in that week are considered. 7. Save your changes. # Define an External Credential and a Named Credential First, create an external credential to specify an authentication protocol and permission set or profile to use when authenticating to an external system. Second, in order for External Services to authenticate, create a named credential and specify it as the callout endpoint. ### Required Editions ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important In Winter ’23, Salesforce introduced an improved named credential that is extensible, customizable, and more secure. We strongly recommend that you use this preferred credential instead of legacy named credentials, which are no longer updated or enhanced. For information on extensible, customizable named credentials, see [Named Credentials Schema](https://help.salesforce.com/s/articleView?id=xcloud.nc_parts_of_nc.htm&type=5&language=en_US).
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To view named credentials: View Setup and Configuration
To create, edit, or delete named credentials: Customize Applications
Make sure that you have the OpenAPI endpoint information for the service that you’re registering. You use the endpoint information to set up a named credential. A named credential is the method External Services uses for authentication. A named credential specifies the URL of a callout endpoint (the service you want to access) and its authentication parameters. For example, `https://my_endpoint.example.com`. If you use OpenAPI 2.0, your endpoint is relative to the base URL. So, if your named credential URL is `https://my_endpoint.example.com` and the basePath is `/basepath`, they combine as the final endpoint of `https://my_endpoint.example.com/basepath`. If you use OpenAPI 3.0, the named credential URL is composed of the spec’s server URL’s root path. The server’s URL relative path is combined with the named credential’s endpoint. If your named credential URL is `https://my_endpoint.example.com` and the server URL is `https://my_endpoint.example.com/relative/path`, then the server URL’s relative path `relative/path` is combined with the named credentials endpoint `https://my_endpoint.example.com`. You can reuse the same named credentials for external services with the same domain. For OpenAPI 3.0 schemas, the server URL must be a literal, parseable value. The server URL must be a relative path beginning with a "/" or a fully-qualified URL with a recognized scheme (HTTP or HTTPS), and have no illegal characters. Server variables aren't supported. See [OpenAPI 2.0 and 3.0 Support](https://help.salesforce.com/s/articleView?id=platform.external_services_intro_openapi_2_3_support.htm&type=5&language=en_US). External Services supports all named credential authoring schemes. OpenAPI security schemes are ignored. 1. [Create and Edit an External Credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_external_credential.htm&type=5&language=en_US). An external credential represents the details of how Salesforce authenticates to an external system via an authentication protocol. It also links to a user’s permission set. Before creating a named credential, create one or more external credentials for it to link to. 2. [Create and Edit a Named Credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_named_credential.htm&type=5&language=en_US). A named credential specifies the URL of a callout endpoint and its required authentication parameters in one definition. A named credential can be specified as an endpoint to simplify the setup of authenticated callouts. Named credentials connect to external credentials. 3. Set up a named credential for the BankService examples in this document. If you’re creating a named credential to follow the BankService examples, use "legacy" Named Credentials. For these examples, there's no need to set up an external credential. When creating the named credential, select **New Legacy** from the dropdown menu next to the New button instead of clicking **New**. Create the **Name** and enter the **URL**. Don't change any of the other default settings. For more information, see [Define a Legacy Named Credential](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_define.htm&type=5&language=en_US). For additional information and configuration details such as per-user authorization, custom headers, and user external credentials, see [Named Credentials and External Credentials](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US). # Define an External Data Source for Salesforce Connect Cross-Org Adapter Set up a connection from your subscriber org to another Salesforce org so your users can access its data through external objects. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience (not for high-data-volume external objects)

Available in: Developer Edition

Available for an extra cost in: Enterprise, Performance, and Unlimited Editions

User Permissions Needed
To create and edit external data sources: Customize Application
1. From Setup, enter External Data Sources in the Quick Find box, then select **External Data Sources**. 2. Click **New External Data Source**, or click **Edit** to modify an existing external data source. 3. Complete the fields.
Field Description
Exernal Data Source

A user-friendly name for the external data source. The label appears in the Salesforce user interface, such as in list views.

If you set Identity Type to Per User, this label appears when your users view or edit their authentication settings for external systems.

Name

A unique identifier that’s used to refer to this external data source definition through the API.

The name can contain only underscores and alphanumeric characters. It must be unique, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.

Type Select Salesforce Connect: Cross-Org.
Connect to Determines which URL is used to connect to the provider org.
URL If you selected Connect to Custom URL, enter the login URL for the provider org.
API Version Select an API version that the provider org supports. The API version determines which of the provider org’s objects, fields, and types you can access from the subscriber org.
Connection Timeout (seconds) Number of seconds to wait for a response from the provider org before timing out. By default, the value is set to the maximum of 120 seconds.
Writable External Objects The Lightning Platform and users in this org can create, update, and delete records for external objects associated with the external data source. The external object data is stored outside the org. By default, external objects are read only.
Enable Search

Determines whether global searches in the subscriber org also search the external objects’ data, which is stored in the provider org.

When selected, you can control which external objects are searchable by selecting or deselecting Allow Search on each external object.

Only text, text area, and long text area fields on external objects can be searched. If an external object has no searchable fields, searches on that object return no records.

4. Select the authentication method, which specifies how the subscriber org authenticates with the target org. We recommend that you use named credentials for robust and secure authentication. - If you select **Named Credential**, then select the named credential to use in the **Named Credential** field. - If you select **Legacy**, then select the **Identity Type**. The identity type determines whether the subscriber org uses one set or multiple sets of credentials to access the provider org. See [Identity Type for External Data Sources](https://help.salesforce.com/s/articleView?id=platform.platform_connect_identity_type.htm&release=264.0.0&type=5 "On the external data source configured for Salesforce Connect, the Identity Type field specifies whether your organization uses one set or multiple sets of credentials to access the external system. Each set of credentials corresponds to a login account on the external system."). 5. If you selected **Legacy**, select the authentication protocol. - If you select **Password Authentication**, enter the username and password to access the external system. - If you select **OAuth 2.0**, complete these fields.
Field Description
Authentication Provider Select a Salesforce authentication provider. See Configure a Salesforce Authentication Provider. On a production org, an external data source can’t use an authentication provider that directs authorization or token requests to a sandbox org. Similarly, on a sandbox org, an external data source can’t use an authentication provider that directs authorization or token requests to a production org.
Scope

Specifies the scope of permissions to request for the access token. Your authentication provider determines the allowed values. See Use the Scope Parameter.

Keep these considerations in mind when you set a scope.

  • The value that you enter replaces the Default Scopes value that’s defined in the specified authentication provider.
  • Whether scopes are defined can affect whether each OAuth flow prompts the user with a consent page.
  • We recommend that you request a refresh token or offline access. Otherwise, when the token expires, you lose access to the external system.
Start Authentication Flow on Save

To authenticate to the external system and obtain an OAuth token, select this checkbox. This authentication process is called an OAuth flow.

When you click Save, the external system prompts you to log in. After successful login, the external system grants you an OAuth token for accessing its data from this org.

Redo the OAuth flow when you need a new token—for example, if the token expires—or if you edit the Scope or Authentication Provider fields. When the token expires, the external system returns a 401 HTTP error status.

6. Click **Save**. 7. Click **Validate and Sync**, and confirm that the connection is successful. - If you receive an error message, refer to these resources: “Status Codes and Error Responses” in the REST API Developer Guide, and the “API Fault Element,” “ExceptionCode,” “Error,” and “StatusCode” sections of “Core Data Types Used in API Calls” in the SOAP API Developer Guide. - Starting in Winter ’26 (API version 65.0), the SOAP API login() method is disabled by default in new orgs. If you encounter an INVALID\_OPERATION error while using password authentication, use API version 64.0 or earlier and manually enable the SOAP API login() in Setup to resolve it. See [login()](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_login.htm). 8. Optionally, select tables and click **Sync** to do the following for each selected table. - Automatically create a Salesforce external object. - Automatically create a custom field for each table column that’s compatible with a Salesforce metadata field type. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Review these considerations before syncing. - [Sync an External Data Source for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source, it creates or overwrites Salesforce external objects that map to the external system’s schema. Syncing doesn’t copy any data into your Salesforce org or write data from your org to the external system.") - [Sync Considerations for Salesforce Connect—Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source of type Salesforce Connect: Cross-Org, some special behaviors and limitations apply.") You can instead choose to manually create the external objects and custom fields that map to the external data. Doing so lets you customize the external object names, decide which table columns to create custom fields for, and customize the custom field names. However, this approach takes longer and requires manual maintenance. #### See Also - [Set Up Salesforce Connect to Access Data in Another Org with the Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_setup.htm&release=264.0.0&type=5 "Provide users with seamless access to data in your other Salesforce orgs so that they have a complete view of the business. Setting up the cross-org adapter for Salesforce Connect is quick and easy with point-and-click tools.") - [Store Authentication Settings for External Systems](https://help.salesforce.com/s/articleView?id=platform.external_authentication.htm&release=264.0.0&type=5 "You or your administrator can set up and manage your authentication settings for external systems. With valid authentication settings, you can access external systems from within your Salesforce org.") - [API Names for External Objects and Custom Fields in Salesforce Connect—Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_api_names.htm&release=264.0.0&type=5 "If external objects and custom fields are created in the subscriber org via syncing, their API names are derived from the corresponding API names in the provider org.") - [Subscriber and Provider Orgs in Salesforce Connect—Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_subscriber_provider.htm&release=264.0.0&type=5 "The provider org stores the data that the subscriber org accesses.") - [_REST API Developer Guide_: List Available REST API Versions](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_versions.htm) # Define an External Data Source for Salesforce Connect OData 4.01 Adapter Connect your Salesforce org to data that’s stored in an external system, such as SAP® NetWeaver Gateway, Microsoft Dynamics® NAV, or IBM WebSphere®. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience (not for high-data-volume external objects)

Available in: Developer Edition

Available for an extra cost in: Enterprise, Performance, and Unlimited Editions

User Permissions Needed
To create and edit external data sources: Customize Application
1. From Setup, enter External Data Sources in the Quick Find box, then select **External Data Sources**. 2. Click **New External Data Source**, or click **Edit** to modify an existing external data source. 3. Complete the fields.
Field Description
External Data Source A user-friendly name for the external data source. The label is displayed in the Salesforce user interface, such as in list views.
Name

A unique identifier that’s used to refer to this external data source definition through the API.

The name can contain only underscores and alphanumeric characters. It must be unique, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.

Type Select Salesforce Connect: OData 4.01.
Named Credential Enter the named credential URL defined for the data source exposed via OData 4.01. To know how to create an external credential and named credential, see Named Credentials.
Connection Timeout (Seconds) Number of seconds to wait for a response from the external system before timing out. By default, the value is set to the maximum of 120 seconds.
Writable External Objects Lets the Lightning Platform and users in this org create, update, and delete records for external objects associated with the external data source. The external object data is stored outside the org. By default, external objects are read only.
Server Driven Pagination Select this option to have the external system control the paging behavior. See Client-Driven and Server-Driven Paging for Salesforce Connect OData Adapters.
Enable Search

Determines whether SOSL and Salesforce global searches also query the external objects that are associated with this external data source.

When selected, you can control which external objects are searchable by selecting or deselecting Allow Search on each external object.

Only text, text area, and long text area fields on external objects can be searched. If an external object has no searchable fields, searches on that object return no records.

Select this option to allow the external data source’s associated external objects to appear in Salesforce for iOS and Salesforce mobile web when used on iOS devices.

Use Free-Text Search Expressions

Available for the OData 4.0 and 4.01 adapters for Salesforce Connect. Select this option to use the $search system query option instead of $filter in search requests that are sent to the external system. Make sure that the OData producer is set up to support the $search system query option.

This field has no effect when Enable Search is deselected.

See OData 4.0 and 4.01 Query Options.

Eligible for External Change Data Capture Select to track changes to external data. See Use External Change Data Capture to Track Data Changes on External Objects.
Batch DML Select this option to be able to send multiple DML requests to the external data source in JSON batch format. See batch requests.
Metadata Control Information Select Full or Minimal as per your client application and device requirements.
Display Server Errors Select to specify whether to display error messages from an external system in the user interface.
4. Click **Save**. 5. Click **Validate and Sync**, select the tables, and click **Sync**. Before you sync, make sure that you understand the considerations described in [Sync an External Data Source for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source, it creates or overwrites Salesforce external objects that map to the external system’s schema. Syncing doesn’t copy any data into your Salesforce org or write data from your org to the external system.") and [Sync Considerations for Salesforce Connect OData Adapters](https://help.salesforce.com/s/articleView?id=platform.odata_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source of type OData 2.0, 4.0, or 4.01, some special behaviors and limitations apply.") ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note To leverage [Named Credentials](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&type=5&language=en_US) and [Private Connect](https://help.salesforce.com/s/articleView?id=xcloud.private_connect_overview.htm&type=5&language=en_US) with OData 4.0 data sources, use the OData 4.01 adapter for Salesforce Connect. # Define an External Data Source for Salesforce Connect–Privacy Center Give users access to the data in your Privacy Center retention store. ### Required Editions
Available in: Developer, Enterprise, Performance, and Unlimited Editions. Requires the Privacy Center license.
User Permissions Needed
To create and edit external data sources: Customize Application
To define your Privacy Center retention store as an external data source: 1. From Setup, in the Quick Find box, enter External Data Sources, and then select **External Data Sources**. 2. Click **New External Data Source**, or click **Edit** to modify an existing external data source. 3. Complete the fields. Note that the Data Store Type field is located in the Parameters section of the page.
FIELD DESCRIPTION
External Data Source A user-friendly name for the external data source. The label is displayed in the Salesforce user interface, such as in list views.
Name

A unique identifier that’s used to refer to this external data source definition through the API.

The name can contain only underscores and alphanumeric characters. It must be unique, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.

Type Select Privacy Center or Archive Data Store.
Data Store Type Select Privacy Center Retention Store.
4. Click **Save**. Once your retention store is defined as an external data source, you’re ready to continue with the [Salesforce Connect setup process](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_privacy_center.htm&release=264.0.0&type=5 "Connect your users to data that’s stored in a Privacy Center retention store."). #### See Also - [Access External Data with the Salesforce Connect Adapter for Privacy Center](https://help.salesforce.com/s/articleView?id=platform.salesforce_connect_privacy_center.htm&release=264.0.0&type=5 "Connect your users to data that’s stored in a Privacy Center retention store.") # Define an External Data Source for Salesforce Connect–Salesforce Archive Give users access to the data in your Salesforce Archive data store. ### Required Editions
Available in: Developer, Enterprise, Performance, and Unlimited Editions. Requires the Salesforce Archive license.
User Permissions Needed
To create and edit external data sources: Customize Application
To define your Salesforce Archive data store as an external data source: 1. From Setup, in the Quick Find box, enter External Data Sources, and then select **External Data Sources**. 2. Click **New External Data Source**, or click **Edit** to modify an existing external data source. 3. Complete the fields.
FIELD DESCRIPTION
External Data Source A user-friendly name for the external data source. The label is displayed in the Salesforce user interface, such as in list views.
Name

A unique identifier that’s used to refer to this external data source definition through the API. This field auto-populates after you enter an External Data Source value.

The name can contain only underscores and alphanumeric characters. It must be unique, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.

Type Select Privacy Center or Archive Data Store.
Data Store Type Select Salesforce Archive Store.
4. Click **Save**. # Define an External Data Source for Salesforce Connect—Custom Adapter Connect your Salesforce org to any data anywhere via a Salesforce Connect custom adapter that you create with the Apex Connector Framework. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: Developer Edition

Available for an extra cost in: Enterprise, Performance, and Unlimited Editions

User Permissions Needed
To create and edit external data sources: Customize Application
Before you begin, develop the custom adapter for Salesforce Connect. If the custom adapter uses Apex callouts, also define remote sites for the callout endpoints. See [Set Up Salesforce Connect to Access External Data with a Custom Adapter](https://help.salesforce.com/s/articleView?id=platform.apex_adapter_setup.htm&release=264.0.0&type=5 "Let users view, search, and modify any data anywhere from within their Salesforce org."). 1. From Setup, enter External Data Sources in the Quick Find box, then select **External Data Sources**. 2. Click **New External Data Source**, or click **Edit** to modify an existing external data source. 3. Complete the fields.
Field Description
Label

A user-friendly name for the external data source. The label is displayed in the Salesforce user interface, such as in list views.

If you set Identity Type to Per User, this label appears when your users view or edit their authentication settings for external systems.

Name

A unique identifier that’s used to refer to this external data source definition through the API.

The name can contain only underscores and alphanumeric characters. It must be unique, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.

Type

Select Salesforce Connect: Custom—<your DataSource.Provider class name>.

If you change and save a DataSource.Connection class, resave the corresponding DataSource.Provider class. Otherwise, when you define the external data source, the custom adapter doesn’t appear as an option for the Type field.

URL

URL of the external system.

Available only when the DataSource.Provider class declares the REQUIRE_ENDPOINT capability. If the class also declares the REQUIRE_HTTPS capability, the URL must begin with https://.

If the endpoint is defined in a named credential, enter the named credential URL. A named credential URL contains the scheme callout:, the name of the named credential, and an optional path. For example: callout:My_Named_Credential/some_path.

You can append a query string to a named credential URL. Use a question mark (?) as the separator between the named credential URL and the query string. For example: callout:My_Named_Credential/some_path?format=json.

Writable External Objects The Lightning Platform and users in this org can create, update, and delete records for external objects associated with the external data source. The external object data is stored outside the org. By default, external objects are read only.
High Data Volume Salesforce enforces rate limits for retrieving and viewing data from external systems. If your org hits rate limits when accessing external objects, consider selecting the High Data Volume option on the associated external data sources. Doing so bypasses most rate limits, but some special behaviors and limitations apply. See High Data Volume Considerations for Salesforce Connect—Custom Adapters.
Certificate

If you specify a certificate, your Salesforce org supplies it when establishing each two-way SSL connection with the external system. The certificate is used for digital signatures, which verify that requests are coming from your Salesforce org.

Available only when the DataSource.Provider class declares the CERTIFICATE authentication capability.

Identity Type

Determines whether you're using one set or multiple sets of credentials to access the external system. See Identity Type for External Data Sources.

Available only when the DataSource.Provider class declares the BASIC or OAUTH authentication capability.

4. Select the authentication protocol. - If you select **Password Authentication**, enter the username and password for accessing the external system. Password authentication is available only when the `DataSource.Provider` class declares the `BASIC` authentication capability. - If you select **OAuth 2.0**, complete the following fields. OAuth 2.0 is available only when the `DataSource.Provider` class declares the `OAUTH` authentication capability.
Field Description
Authentication Provider Choose the provider. See Authentication Providers.
Scope

Specifies the scope of permissions to request for the access token. Your authentication provider determines the allowed values. See Use the Scope Parameter.

Keep these considerations in mind when you set a scope.

  • The value that you enter replaces the Default Scopes value that’s defined in the specified authentication provider.
  • Whether scopes are defined can affect whether each OAuth flow prompts the user with a consent screen.
  • We recommend that you request a refresh token or offline access. Otherwise, when the token expires, you lose access to the external system.
Start Authentication Flow on Save

To authenticate to the external system and obtain an OAuth token, select this checkbox. This authentication process is called an OAuth flow.

When you click Save, the external system prompts you to log in. After successful login, the external system grants you an OAuth token for accessing its data from this org.

Redo the OAuth flow when you need a new token—for example, if the token expires—or if you edit the Scope or Authentication Provider fields. When the token expires, the external system returns a 401 HTTP error status.

5. Click **Save**. 6. Click **Validate and Sync**, and confirm that the connection is successful. This step also invokes the `sync()` method on the `DataSource.Connection` class to obtain the list of tables that you can sync to create external objects and their fields. 7. Optionally, select tables and click **Sync** to do the following for each selected table. - Automatically create a Salesforce external object. - Automatically create a custom field for each table column that’s compatible with a Salesforce metadata field type. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Before you sync, make sure that you understand the considerations that are described in these topics. - [Sync an External Data Source for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source, it creates or overwrites Salesforce external objects that map to the external system’s schema. Syncing doesn’t copy any data into your Salesforce org or write data from your org to the external system.") - [Sync Considerations for Salesforce Connect—Custom Adapter](https://help.salesforce.com/s/articleView?id=platform.apex_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source of type Salesforce Connect: Custom, some special behaviors and limitations apply.") You can instead choose to manually create the external objects and custom fields that map to the external data. Doing so lets you customize the external object names, decide which table columns to create custom fields for, and customize the custom field names. However, this approach takes longer and requires manual maintenance. #### See Also - [Set Up Salesforce Connect to Access External Data with a Custom Adapter](https://help.salesforce.com/s/articleView?id=platform.apex_adapter_setup.htm&release=264.0.0&type=5 "Let users view, search, and modify any data anywhere from within their Salesforce org.") - [Store Authentication Settings for External Systems](https://help.salesforce.com/s/articleView?id=platform.external_authentication.htm&release=264.0.0&type=5 "You or your administrator can set up and manage your authentication settings for external systems. With valid authentication settings, you can access external systems from within your Salesforce org.") - [Named Credentials](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&type=5&language=en_US) # Define an External Data Source for Salesforce Connect—OData 2.0 or 4.0 Adapter Connect your Salesforce org to data that’s stored in an external system, such as SAP® NetWeaver Gateway, Microsoft Dynamics® NAV, or IBM WebSphere®. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience (not for high-data-volume external objects)

Available in: Developer Edition

Available for an extra cost in: Enterprise, Performance, and Unlimited Editions

User Permissions Needed
To create and edit external data sources: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - The external data must be exposed by a service that uses Open Data Protocol (OData) Version 2.0 or 4.0. Such a service is called an OData producer. - The URL for reaching the OData producer must be accessible by Salesforce application servers through the Internet. You can access by adding Salesforce server IP addresses on your corporate network firewall to the allow list or by setting up a reverse-proxy XML Gateway. - The extent to which you can customize data visibility depends on the external system. To determine the optimal settings for integration with Salesforce, consult the external system’s documentation. 1. From Setup, enter External Data Sources in the Quick Find box, then select **External Data Sources**. 2. Click **New External Data Source**, or click **Edit** to modify an existing external data source. 3. Complete the fields.
Field Description
External Data Source

A user-friendly name for the external data source. The label is displayed in the Salesforce user interface, such as in list views.

If you set Identity Type to Per User, this label appears when your users view or edit their authentication settings for external systems.

Name

A unique identifier that’s used to refer to this external data source definition through the API.

The name can contain only underscores and alphanumeric characters. It must be unique, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.

Type Select Salesforce Connect: OData 2.0 or Salesforce Connect: OData 4.0.
URL

The OData service root URL. Make sure that you escape all special characters.

Each service endpoint requires its own external data source definition, but you can have multiple entities under one service root URL. For more information about the service root URL and other URL conventions, go to www.odata.org.

Examples:

  • http://services.example.org/Warehouse.svc
  • https://services.example.org/Payroll.svc

If the endpoint is defined in a named credential, enter the named credential URL. A named credential URL contains the scheme callout:, the name of the named credential, and an optional path. For example: callout:My_Named_Credential/some_path.

You can append a query string to a named credential URL. Use a question mark (?) as the separator between the named credential URL and the query string. For example: callout:My_Named_Credential/some_path?format=json.

If you enter a named credential URL, skip the Authentication section for the external data source. To access the external system, Salesforce Connect uses the authentication settings that are defined in the named credential.

Connection Timeout

Number of seconds to wait for a response from the external system before timing out. By default, the value is set to the maximum of 120 seconds.

Depending on the availability of and the connection to the external system, it can take a long time to retrieve external data. Use this field to limit how long to wait for external data to load into your org.

Writable External Objects The Lightning Platform and users in this org can create, update, and delete records for external objects associated with the external data source. The external object data is stored outside the org. By default, external objects are read only.
High Data Volume

Salesforce enforces rate limits for retrieving and viewing data from external systems. If your org hits rate limits when accessing external objects, consider selecting the High Data Volume option on the associated external data sources. Doing so bypasses most rate limits, but some special behaviors and limitations apply. See High Data Volume Considerations for Salesforce Connect—OData 2.0 and 4.0 Adapters.

High-data-volume external data sources are still limited to 20,000 OData queries per hour for Enterprise, Performance, and Unlimited Editions. If you require higher limits, create a support case. See callout limits in General Limits for Salesforce Connect OData Adapters.

Server Driven Pagination It's common for Salesforce Connect queries of external data to have a large result set that's broken into smaller batches or pages. To have the external system control the paging behavior, select this option. See Client-Driven and Server-Driven Paging for Salesforce Connect OData Adapters.
Request Row Counts

Includes one of the following system query options in each OData query so that the response includes the total row count of the result set.

  • $inlinecount=allpages for the OData 2.0 adapter
  • $count=true for the OData 4.0 adapter

Some external systems don’t support these system query options. If you receive errors or notice long load times when you try to access their data, deselect Request Row Counts on the external data source. If you do so, however, the external data source and its associated external objects can’t support the following functionality, which requires the total row count.

  • SOQL COUNT() aggregate function
  • Batch Apex with Database.QueryLocator
Compress Requests When selected, Salesforce sends compressed HTTP requests to the external system. Make sure that the external system is set up to receive gzip-compressed data. Salesforce automatically accepts gzip-compressed responses.
Enable Search

Determines whether SOSL and Salesforce global searches also query the external objects that are associated with this external data source.

When selected, you can control which external objects are searchable by selecting or deselecting Allow Search on each external object.

Only text, text area, and long text area fields on external objects can be searched. If an external object has no searchable fields, searches on that object return no records.

To allow the external data source’s associated external objects to appear in Salesforce for iOS and Salesforce mobile web when used on iOS devices, select this option.

Custom Query Option for Salesforce Search

Available only for the OData 2.0 adapter for Salesforce Connect. If the OData producer has implemented and exposed a free-text-search custom query option, enter the name of that query string parameter.

Learn more about OData custom query options and other URI conventions at www.odata.org.

This field has no effect when Enable Search is deselected or when the OData producer isn’t set up to correctly handle the custom query option.

See OData 2.0 Query Options.

Use Free-Text Search Expressions

Available for the OData 4.0 and 4.01 adapters for Salesforce Connect. To use the $search system query option instead of $filter in search requests that are sent to the external system, select this option. Make sure that the OData producer is set up to support the $search system query option.

This field has no effect when Enable Search is deselected.

See OData 4.0 and 4.01 Query Options.

Format

The format that the OData producer uses to represent resources, such as collections of data.

Make sure that the OData producer is set up to support the selected format. Learn more about representation formats and operations at www.odata.org.

If your external data source uses the OData 4.0 adapter and JSON format, make sure that the OData producer accepts headers that contain the odata.metadata=full format parameter. Other variations, including odata.metadata=minimal, aren’t supported for the OData 4.0 adapter.

Special Compatibility Select Socrata only if the URL specifies a Socrata open data endpoint. See Socrata™ Considerations for Salesforce Connect—OData 2.0 and 4.0 Adapters.
Display Server Errors Specify whether to display error messages from an external system in the user interface.
Eligible for External Change Data Capture Select to track changes to external data. See Use External Change Data Capture to Track Data Changes on External Objects.
CSRF Protection

If the external system requires Cross-Site Request Forgery (CSRF) protection in requests to create, edit or delete its data, select this option. If you do so, your org obtains an anti-CSRF token and cookie from the external system and includes them in each create, edit, and delete request. See CSRF Considerations for Salesforce Connect—OData 2.0 and 4.0 Adapters.

Available only when Writable External Objects is selected.

Anti-CSRF Token Name

HTTP header field that contains the anti-CSRF token. The external system determines the field name. Default: X-CSRF-Token

Available only when CSRF Protection is selected.

Certificate If you specify a certificate, your Salesforce org supplies it when establishing each two-way SSL connection with the external system. The certificate is used for digital signatures, which verify that requests are coming from your Salesforce org.
Identity Type

Determines whether you're using one set or multiple sets of credentials to access the external system. See Identity Type for External Data Sources.

Select Anonymous only if the external system doesn’t require authentication.

4. Select the authentication protocol. - If you select **Password Authentication**, enter the username and password for accessing the external system. - If you select **OAuth 2.0**, complete these fields.
Field Description
Authentication Provider Choose the provider. See Authentication Providers.
Scope

Specifies the scope of permissions to request for the access token. Your authentication provider determines the allowed values. See Use the Scope Parameter.

Keep these considerations in mind when you set a scope.

  • The value that you enter replaces the Default Scopes value that’s defined in the specified authentication provider.
  • Whether scopes are defined can affect whether each OAuth flow prompts the user with a consent screen.
  • We recommend that you request a refresh token or offline access. Otherwise, when the token expires, you lose access to the external system.
Start Authentication Flow on Save

To authenticate to the external system and obtain an OAuth token, select this checkbox. This authentication process is called an OAuth flow.

When you click Save, the external system prompts you to log in. After successful login, the external system grants you an OAuth token for accessing its data from this org.

Redo the OAuth flow when you need a new token—for example, if the token expires—or if you edit the Scope or Authentication Provider fields. When the token expires, the external system returns a 401 HTTP error status.

5. Click **Save**. 6. Click **Validate and Sync**, and confirm that the connection is successful. 7. Optionally, select tables and click **Sync** to do the following for each selected table. - Automatically create a Salesforce external object. - Automatically create a custom field for each table column that’s compatible with a Salesforce metadata field type. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Before you sync, make sure that you understand the considerations that are described in these topics. - [Sync an External Data Source for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source, it creates or overwrites Salesforce external objects that map to the external system’s schema. Syncing doesn’t copy any data into your Salesforce org or write data from your org to the external system.") - [Sync Considerations for Salesforce Connect OData Adapters](https://help.salesforce.com/s/articleView?id=platform.odata_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source of type OData 2.0, 4.0, or 4.01, some special behaviors and limitations apply.") You can instead choose to manually create the external objects and custom fields that map to the external data. Doing so lets you customize the external object names, decide which table columns to create custom fields for, and customize the custom field names. However, this approach takes longer and requires manual maintenance. Optionally, you can associate custom HTTP headers to the external data source to retrieve or request additional data. #### See Also - [Set Up Salesforce Connect to Access External Data with OData Adapters](https://help.salesforce.com/s/articleView?id=platform.platform_connect_setup.htm&release=264.0.0&type=5 "Let users view and search data that’s stored outside your Salesforce org, such as data in an enterprise resource planning (ERP) system.") - [Store Authentication Settings for External Systems](https://help.salesforce.com/s/articleView?id=platform.external_authentication.htm&release=264.0.0&type=5 "You or your administrator can set up and manage your authentication settings for external systems. With valid authentication settings, you can access external systems from within your Salesforce org.") - [OData Query String Options](https://help.salesforce.com/s/articleView?id=platform.odata_query_string_options.htm&release=264.0.0&type=5 "The OData adapters for Salesforce Connect use a subset of the OData 2.0 and 4.0 and 4.01 system functions and filter expression constructs to query external systems.") - [OData Type Mapping](https://help.salesforce.com/s/articleView?id=platform.odata_type_mapping.htm&release=264.0.0&type=5 "Salesforce Connect maps OData types to Salesforce metadata field types when syncing metadata and converting values between Salesforce and external systems.") - [Named Credentials](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&type=5&language=en_US) # Define and Execute Anonymize Jobs After your anonymize templates are created and configured with the ‌objects and fields, you can proceed to execute anonymize jobs. The Anonymize application enables you to select the service data to be anonymized. The service data to be anonymized can be retrieved either from the live service or from service backups. 1. In the Templates tab of the Anonymize tab, scroll through the page and find the anonymize template that you want to use for the anonymize job. 2. In the anonymize template tile, click the three dots and select Anonymize. The \[template name\] window opens. You can also open the \[template name\] window by selecting the anonymize template that you want to use the Templates tab in the Anonymize tab. When the selected anonymize template is displayed in the My Templates page, click Anonymize in the upper right corner of the page. The \[template name\] window opens. 3. From the Anonymize Service field's drop-down list, select the service you want to anonymize. 4. In the Fetch Service Data From field, define the source from which to retrieve the service data. Live is the field's default entry. Retrieve realtime data that exists in the live source of the service that you selected to anonymize. 5. When the selected Anonymize Service has backups from the past 6 months, the Fetch Service Data From field provides these options: - Live: Always the first, listed option. - Recent backups: The Recent Backups section lists all backups from the past 6 months that exist for the selected Anonymize Service. You can select any one of these backups from which to retrieve the service data. Backups are listed in descending chronological order (newest to oldest) by their processing start date/time. If a label is defined for a backup (a best practice), it displays alongside the backup's start date/time. Backups must contain all the object(s) and field(s) defined in the anonymize template. For very large sandboxes, to reduce API calls, and/or to reduce data retrieval time, it is recommended to select a recent backup from which to retrieve the service data to be anonymized, rather than retrieving realtime data from the live source. The recent backups option isn't available for block storage, where customer backups that are stored on hard drives. 6. In the Automations section, you can select Salesforce automations that you want to disable. Anonymize processing may take longer when disabling all Validation Rules, Workflows, Triggers and Processes. 7. In the pane listing the automation groups, click the arrow of an automation group to open that group and display its list of automations. You can open multiple groups to display their automations. Use either the search field or the Show field dropdown to filter to find the automations you want to disable. The number of automations that are selected to disable is displayed. The number of unavailable automations also displays. You can't select automations that can't be externally disabled and that can only be manually disabled in the sandbox. 8. Click Anonymize. If you selected a recent backup to be the source of the service data to retrieve/anonymize and that backup is missing objects that are defined in the anonymize template, the anonymize job doesn't start. The UI shows an error message that says why the backup you chose can’t be used for the anonymize job. The message lists all the objects that are missing from the backup you chose. If you select either Live or a valid, recent backup, the anonymize processing starts. The Activities tab opens and lists an entry for the anonymize job being processed. During processing, the anonymize job entry in the Activities tab displays the current object, and the number of records for that object. Also, you can view the total number of retrieved records to be anonymized. When an anonymize job’s processing finishes, these reports about the job are available: - Anonymization Report: This report provides detailed information about the anonymization job - both the records anonymized and any failures. You can download a CSV file of the log. - ‌ Automations Report: This report is only prepared if you selected, in the \[template name\] window, to disable Salesforce automations during the anonymize job. The report provides details about disabled, and reenabled Salesforce automations. ## Abort an Anonymize Job that’s Being Processed You can abort an anonymize job that is being processed. You can also abort an anonymize job during the update of the destination service \[the synchronizing processing step\], however, doing so is not recommended because the Anonymize application won't know what data, if any, was successfully updated before aborting the job. 1. To abort an anonymize job, n the Activities tab, on the right side of the progress bar of an anonymize job entry, click the (enabled) X to abort that anonymize job being processed. 2. To abort an anonymize job during the update of the destination service \[the synchronizing processing step\]: 1. Access the Salesforce Setup interface of the destination . 2. Open the Setup Home tab. 3. In the Quick Find field, search for the term Bulk Data Load Jobs. 4. In the In Progress table, look for Bulk Data Load jobs that meet the criteria: The job was submitted by the authenticated user. The job's operation (update) matches with the object mentioned beneath the progress bar of the anonymize job entry in the Activities tab. In the Action column, click **Abort** for any Bulk Data Load jobs meeting the criteria. ## Understanding Anonymize Job Summaries in the Activities Tab The Activities tab lists an information entry for each anonymize job. The entries summarize either an anonymize job that is currently being processed or a completed anonymize job. ### Job Summary Information ![Activities tab with anonymize jobs](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/anonymize_o_activities_tab.png)
# Label Description
(1) ID ID of the anonymize job, and the date and time the job processing started.
(2) Anonymized Service

1st line: The name of the service whose data either is being or was anonymized by the job.

2nd line: The source of the service data, meaning the data was retrieved from either Live or a specific Backup: <date>, <time>.

(3) Template Name Name of the anonymization template that was used for the job
(4) Status
  • Progress bar - a progress bar displays while an anonymize job is currently processing. The progress bar annotates both the percent of processing completed and the current processing step. The job's processing steps are subsequently listed in the Anonymization Report.
  • SuccessCompleted Successfully - all records were successfully anonymized.
  • AbortedAborted - anonymize processing aborted.
  • Completed with errorsCompleted with Errors - the anonymize job completed, but processing failed to insert (or delete when using the Clean and insert seeding method) some of the records.
  • FailedFailed - the anonymization failed due to error(s).
(5) Duration Amount of time to process the job to conclusion.
(6) Success Number of records successfully anonymized in the service selected to be anonymized.
(7) Errors Number of records that failed to be anonymized in the service selected to be anonymized.
(8) Actions

Click Anonymization report to view ‌the Anonymization report.

Click Automation Report to view ‌the Automations report.

# Define and Manage Platform Events Use platform events to connect business processes in Salesforce and external sources through the exchange of real-time event data. Platform events are secure and scalable. Define fields to customize your platform event data. ### Required Editions
Available in both Salesforce Classic and Lightning Experience
Available in: Performance, Unlimited, Enterprise, and Developer Editions
User Permissions Needed
To create and edit platform event definitions: Customize Application
By using platform events, publishers can send custom event data through Apex, a process, a flow, Pub/Sub API, or other APIs. Subscribers can receive custom event messages from Salesforce or an external system using Apex, Pub/Sub API clients, processes, or flows. Based on the event message data, subscribers can process custom business logic, such as sending an email or logging a case. For example, a software system monitoring a printer can make an API call to publish an event when the ink is low. The custom printer event can contain custom fields for the printer model, serial number, and ink level. The event is processed in Salesforce by an Apex trigger that places an order for a new cartridge. Platform events simplify the process of communicating changes and responding to them without writing complex logic. Publishers and subscribers communicate with each other through events. Multiple subscribers can listen to the same event and carry out different actions. Define Your Platform Event To define a platform event in Salesforce Classic or Lightning Experience: 1. From Setup, enter Platform Events in the Quick Find box, then select **Platform Events**. 2. On the Platform Events page, click **New Platform Event**. 3. Complete the standard fields, and optionally add a description. 4. For Publish Behavior, choose when the event message is published in a transaction. - **Publish After Commit** to have the event message published only after a transaction commits successfully. Select this option if subscribers rely on data that the publishing transaction commits. For example, a process publishes an event message and creates a task record. A second process that is subscribed to the event is fired and expects to find the task record. Another reason for choosing this behavior is when you don't want the event message to be published if the transaction fails. - **Publish Immediately** to have the event message published when the publish call executes. Select this option if you want the event message to be published regardless of whether the transaction succeeds. Also choose this option if the publisher and subscribers are independent, and subscribers don't rely on data committed by the publisher. For example, the immediate publishing behavior is suitable for an event used for logging purposes. With this option, a subscriber can receive the event message before data is committed by the publisher transaction. 5. Click **Save**. 6. To add a field, in the Custom Fields & Relationships related list, click **New**. 7. To set up the field properties, follow the custom field wizard. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - If you change the publish behavior, expect up to a 5-minute delay for the change to take effect. - In Lightning Experience, platform events aren’t shown in the Object Manager’s list of standard and custom objects and aren’t available in Schema Builder. A platform event is a special Salesforce entity, similar in many ways to an sObject. An event message is an instance of a platform event, similar to how a record is an instance of a custom object. Unlike custom objects, you can’t update or delete event records. You also can’t view event records in the Salesforce user interface, and platform events don’t have page layouts. When you delete a platform event definition, it’s permanently deleted. Standard Fields Platform events include standard fields. These fields appear on the New Platform Event page. | Field | Description | | --- | --- | | Label | Name used to refer to your platform event in a user interface page. | | Plural Label | Plural name of the platform event. | | Starts with a vowel sound | If it’s appropriate for your org’s default language, indicate whether the label is preceded by “an” instead of “a.” | | Object Name | Unique name used to refer to the platform event when using the API. In managed packages, this name prevents naming conflicts with package installations. Use only alphanumeric characters and underscores. The name must begin with a letter and have no spaces. It can't end with an underscore or have two consecutive underscores. | | Description | Optional description of the object. A meaningful description helps you remember the differences between your events when you view them in a list. | | Deployment Status | Indicates whether the platform event is visible to other users. | Custom Fields In addition to the standard fields, you can add custom fields to your custom event. Platform event custom fields support only these field types. - Checkbox - Date - Date/Time - Number - Text - Text Area (Long) The maximum number of fields that you can add to a platform event is the same as for a custom object. See [Salesforce Features and Edition Allocations](https://help.salesforce.com/articleView?id=overview_limits_general.htm&language=en_US). ReplayId System Field: Each event message is assigned an opaque ID contained in the `ReplayId` field. The `ReplayId` field value, which is populated by the system when the event is delivered to subscribers, refers to the position of the event in the event stream. Replay ID values aren't guaranteed to be contiguous for consecutive events. A subscriber can store a replay ID value and use it on resubscription to retrieve events that are within the retention window. For example, a subscriber can retrieve missed events after a connection failure. Subscribers must not compute new replay IDs based on a stored replay ID to refer to other events in the stream. EventUuid System Field A universally unique identifier (UUID) that identifies a platform event message. In Pub/Sub API clients, the event id field contains the event UUID value and isn't versioned. In other subscriber clients, the EventUuid field is available in API version 52.0 and later. The API version corresponds to the version that an Apex trigger is saved with, or the version specified in a CometD subscriber endpoint. API Name Suffix for Custom Platform Events When you create a platform event, the system appends the `__e` suffix to create the API name of the event. For example, if you create an event with the object name `Low Ink`, the API name is `Low_Ink__e`. The API name is used whenever you refer to the event programmatically, for example, in Apex. API names of standard platform events, such as AssetTokenEvent, don’t include a suffix. Event Subscribers The Subscriptions related list shows all triggers, processes, and platform event–triggered flows that are subscribed to a platform event. Pub/Sub API subscribers, CometD subscribers, such as your own CometD client or the `empApi` Lightning component, aren't listed in this page. The list shows the replay ID of the event that the system last processed (Last Processed Id field) and the event last published (Last Published Id field). Knowing which replay ID was last processed is useful when there’s a gap in the events published and processed. For example, if a trigger contains complex logic that causes a delay in processing large batches of incoming events. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note For high-volume platform events, the Last Published Id value isn't available and is always shown as Not Available. Also, the Subscriptions list shows the state of each subscriber, which can be one of the following. - `Running`—The subscriber is actively listening to events. If you modify the subscriber, the subscription continues to process events. - `Error`— The subscriber was disconnected and stopped receiving published events. A trigger reaches this state when it exceeds the number of maximum retries with the `EventBus.RetryableException`. Trigger assertion failures and unhandled exceptions don’t cause the error state. We recommend limiting the retries to fewer than nine times to avoid reaching this state. When you fix and save the trigger, or for a managed package trigger, if you redeploy the package, the trigger resumes automatically from the tip, starting from new events. Also, you can resume a trigger subscription in the subscription detail page that you access from the platform event page. - `Suspended`—The subscriber is disconnected and can’t receive events because a Salesforce admin suspended it or due to an internal error. You can resume a trigger subscription in the subscription detail page that you access from the platform event page. To resume a process, deactivate it and then reactivate it. If you modify the subscriber, the subscription resumes automatically from the tip, starting from new events. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Only one “Process” subscriber appears in the Subscriptions related list for all paused flow interviews that are subscribed to the platform event. Processes and platform event–triggered flows are listed individually. Also, information about event subscribers is exposed in the EventBusSubscriber object. You can query this object to obtain details about subscribers. Suspend or Resume an Apex Trigger Subscription: Resume a suspended trigger subscription where it left off, starting from the earliest available event message that is stored in the event bus. If you want to bypass event messages that are causing errors or are no longer needed, you can resume a subscription from the tip, starting from new event messages. To manage a trigger subscription: 1. In the Subscriptions related list, click **Manage** next to the Apex trigger. 2. In the subscription detail page, choose the appropriate action. - To suspend a running subscription, click **Suspend**. - To resume a suspended subscription, starting from the earliest event message that is available in the event bus, click **Resume**. - To resume a suspended subscription, starting from new event messages, click **Resume from Tip**. You can’t manage subscriptions for flows and processes through the Subscriptions related list. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - After you modify a subscriber, the subscription resumes automatically. For more information, see the [Event Subscribers](https://help.salesforce.com/s/articleView?id=platform.platform_events.htm&release=264.0.0&type=5) section. - If you click **Resume** for a trigger that is in the error state, the trigger skips the events that were retried with `EventBus.RetryableException`. The subscription starts with the unprocessed events sent after the error state and that are within the retention window. Platform Event Considerations - Field-Level Security—All platform event fields are read only by default, and you can’t restrict access to a particular field. Field-level security permissions don’t apply and the event message contains all fields. - Enforcement of Field Attributes—Platform event records are validated to ensure that the attributes of their custom fields are enforced. Field attributes include the Required and Default attributes, the precision of number fields, and the maximum length of text fields. - Permanent Deletion of Event Definitions—When you delete an event definition, it’s permanently removed and can’t be restored. Before you delete the event definition, delete the associated triggers. Published events that use the definition are also deleted. - Renaming Event Objects—Before you rename an event, delete the associated triggers. If the event name is modified after clients have subscribed to this event, the subscribed clients must resubscribe to the updated topic. To resubscribe to the new event, add your trigger for the renamed event object. - No Associated Tab—Platform events don’t have an associated tab because you can’t view event records in the Salesforce user interface. - No SOQL Support—You can’t query event messages using SOQL. - No Record Page Support in Lightning App Builder—When creating a record page in Lightning App Builder, platform events that you defined show up in the list of objects for the page. However, you can’t create a Lightning record page for platform events because event records aren’t available in the user interface. - Platform Events in Package Uninstall—When uninstalling a package with the option **Save a copy of this package's data for 48 hours after uninstall** enabled, platform events aren’t exported. - Event Volume in Package Installations and Upgrades—Installing a managed or unmanaged package that contains a standard-volume platform event causes the event type to be saved as high volume in the subscriber org. Upgrading a managed package doesn't change t he event volume in the subscriber org. - No Support in Professional and Group Editions—Platform events aren’t supported in Professional and Group Edition orgs. Installation of a package that contains platform event objects fails in those orgs. #### See Also - [Platform Events Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_intro.htm) - [Platform Event Allocations](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_event_limits.htm) # Define Apex Classes Salesforce stores Apex classes as metadata. ### Required Editions
Available in: Salesforce Classic (not available in all orgs)
Available in: Performance, Unlimited, Developer, Enterprise, and Database.com Editions
User Permissions Needed
To define, edit, delete, set security, and set version settings for Apex classes: Author Apex
To run Apex tests: View Setup and Configuration
You can add, edit, or delete Apex using the Salesforce user interface only in a Developer Edition organization, a Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce production organization, you can change Apex only by using the Metadata API `deploy` call, the Salesforce Extensions for Visual Studio Code, or the Ant Migration Tool. The Salesforce Extensions for Visual Studio Code and Ant Migration Tool are free resources provided by Salesforce to support its users and partners, but are not considered part of our Services for purposes of the Salesforce Main Services Agreement. 1. From Setup, enter Apex Classes in the Quick Find box, then select **Apex Classes**. 2. Click **New**. 3. Click **Version Settings** to specify the version of Apex and the API used with this class. If your organization has installed managed packages from the AppExchange, you can also specify which version of each managed package to use with this class. Use the default values for all versions. This associates the class with the most recent version of Apex and the API, as well as each managed package. You can specify an older version of a managed package if you want to access components or functionality that differs from the most recent package version. You can specify an older version of Apex and the API to maintain specific behavior. 4. In the class editor, enter the Apex code for the class. A single class can be up to 1 million characters in length, not including comments, test methods, or classes defined using `@isTest`. 5. Click **Save** to save your changes and return to the class detail screen, or click **Quick Save** to save your changes and continue editing your class. Your Apex class must compile correctly before you can save your class. Once saved, classes can be invoked through class methods or variables by other Apex code, such as a trigger. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note To aid backwards-compatibility, classes are stored with the version settings for a specified version of Apex and the API. If the Apex class references components, such as a custom object, in installed managed packages, the version settings for each managed package referenced by the class is saved too. Additionally, classes are stored with an `isValid` flag that is set to `true` as long as dependent metadata has not changed since the class was last compiled. If any changes are made to object names or fields that are used in the class, including superficial changes such as edits to an object or field description, or if changes are made to a class that calls this class, the `isValid` flag is set to `false`. When a trigger or Web service call invokes the class, the code is recompiled and the user is notified if there are any errors. If there are no errors, the `isValid` flag is reset to `true`. #### See Also - [Manage Apex Classes](https://help.salesforce.com/s/articleView?id=platform.code_manage_packages.htm&release=264.0.0&type=5 "An Apex class is a template or blueprint from which Apex objects are created. Classes consist of other classes, user-defined methods, variables, exception types, and static initialization code.") - [View Apex Classes](https://help.salesforce.com/s/articleView?id=platform.code_view_class.htm&release=264.0.0&type=5 "After you have created a class, you can view the code contained in the class, as well as the API against which the class was saved, and whether the class is valid or active.") - [Manage Version Settings for Apex](https://help.salesforce.com/s/articleView?id=platform.code_version_settings_apex.htm&release=264.0.0&type=5 "To aid backwards-compatibility, Apex classes and triggers are stored with version settings for the Salesforce API and any referenced managed packages.") # Define Apex Triggers Apex code can be invoked by using triggers. Apex triggers can be configured to perform custom actions before or after changes to Salesforce records, such as insertions, updates, or deletions. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience

Available in: Performance, Unlimited, Developer, Enterprise, and Database.com Editions

Standard Objects, Campaigns, Cases, and Emails are not available in Database.com.

User Permissions Needed
To define Apex triggers: Author Apex
Apex triggers are stored as metadata in the application under the object with which they are associated. You can add, edit, or delete Apex using the Salesforce user interface only in a Developer Edition organization, a Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce production organization, you can change Apex only by using the Metadata API `deploy` call, the Salesforce Extensions for Visual Studio Code, or the Ant Migration Tool. The Salesforce Extensions for Visual Studio Code and Ant Migration Tool are free resources provided by Salesforce to support its users and partners, but are not considered part of our Services for purposes of the Salesforce Main Services Agreement. 1. From the object management settings for the object whose triggers you want to access, go to Triggers. For the Attachment, ContentDocument, and Note standard objects, you can’t create a trigger in the Salesforce user interface. For these objects, create a trigger using development tools, such as the Developer Console or the Salesforce extensions for Visual Studio Code. Alternatively, you can also use the Metadata API. 2. In the Triggers list, click **New**. 3. To specify the version of Apex and the API used with this trigger, click Version Settings. If your organization has installed managed packages from the AppExchange, you can also specify which version of each managed package to use with this trigger. Associate the trigger with the most recent version of Apex and the API and each managed package by using the default values for all versions. You can specify an older version of a managed package if you want to access components or functionality that differs from the most recent package version. 4. Click Apex Trigger and select the Is Active checkbox if you want to compile and enable the trigger. Leave this checkbox deselected if you only want to store the code in your organization's metadata. This checkbox is selected by default. 5. In the Body text box, enter the Apex for the trigger. A single trigger can be up to 1 million characters in length. To define a trigger, use the following syntax: ```java trigger TriggerName on ObjectName (trigger_events) { code_block } ``` where trigger\_events can be a comma-separated list of one or more of the following events: - `before insert` - `before update` - `before delete` - `after insert` - `after update` - `after delete` - `after undelete` ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note - A trigger invoked by an `insert`, `delete`, or `update` of a recurring event or recurring task results in a runtime error when the trigger is called in bulk from the Lightning Platform​ API. - Suppose that you use an after-insert or after-update trigger to change ownership of leads, contacts, or opportunities. If you use the API to change record ownership, or if a Lightning Experience user changes a record’s owner, no email notification is sent. To send email notifications to a record’s new owner, set the `triggerUserEmail` property in DMLOptions to `true`. 6. Click **Save** Triggers are stored with an `isValid` flag that is set to `true` as long as dependent metadata has not changed since the trigger was last compiled. If any changes are made to object names or fields that are used in the trigger, including superficial changes such as edits to an object or field description, the `isValid` flag is set to `false` until the Apex compiler reprocesses the code. Recompiling occurs when the trigger is next executed, or when a user resaves the trigger in metadata. If a lookup field references a record that has been deleted, Salesforce clears the value of the lookup field by default. Alternatively, you can choose to prevent records from being deleted if they’re in a lookup relationship. All classes and triggers must compile successfully, and every trigger must have some test coverage. You must have at least 75% of your Apex covered by unit tests before you can deploy your code to production environments. See [Apex Unit Tests](https://help.salesforce.com/articleView?id=code_run_tests.htm&type=5&language=en_US). #### See Also - [Manage Apex Triggers](https://help.salesforce.com/s/articleView?id=platform.code_manage_triggers.htm&release=264.0.0&type=5 "A trigger is Apex code that executes before or after specific data manipulation language (DML) events occur, such as before object records are inserted into the database, or after records have been deleted.") - [View Apex Trigger Details](https://help.salesforce.com/s/articleView?id=platform.code_view_trigger.htm&release=264.0.0&type=5 "Apex triggers are stored as metadata in the application under the object with which they are associated.") - [_Apex Developer Guide_](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers.htm) - [Manage Version Settings for Apex](https://help.salesforce.com/s/articleView?id=platform.code_version_settings_apex.htm&release=264.0.0&type=5 "To aid backwards-compatibility, Apex classes and triggers are stored with version settings for the Salesforce API and any referenced managed packages.") - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&type=5&language=en_US) # Define Conditions in a Decision Element Control when a flow takes a specific decision outcome. ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. Before you begin, add a Decision element to your flow. 1. Select the type of decision logic to use for the Decision element. - To determine which outcome runs based on traditional logic expressions and explicitly defined data from your flow, select **Define Manually (Default)** - To dynamically determine which outcome runs based on AI evaluating data from your flow, select **Define with AI (Advanced)**. 2. If you selected Define Manually (Default), define the conditions and outcomes for the element. Outcomes for a Decision element with manual conditions are evaluated in the order that they’re listed. Therefore, the order that you define your outcomes in can impact the outcome that the flow takes. 1. Define the condition requirements to use for the outcome.
Option Behavior for Decision Outcomes
All Conditions Are Met If one of the conditions is false, the flow evaluates the next outcome’s conditions.
Any Condition Is Met If one of the conditions is true, the flow immediately takes this outcome’s path.
Custom Condition Logic Is Met

If you select this option, provide the condition logic by entering up to 1,000 characters. Use:

  • Numbers to refer to each condition
  • AND, OR, or NOT to identify which combination of conditions must be true
  • Parentheses to group parts of the string together

If you enter AND, it’s the same as if you selected All Conditions Are Met. If you enter OR, it’s the same as if you selected Any Condition Is Met. If you enter any other logic, make sure that you include a number for each condition.

For example, for 1 AND NOT(2 OR 3), the flow evaluates whether the first condition is true and neither the second nor third condition is true.

2. Define the logic conditions for the outcome.
Column Header Description
Resource The flow resource to evaluate the value of.
Operator The available operators depend on the data type selected for Resource. See Flow Operators in Decision, Wait, and Collection Filter Elements.
Value

Resource and Value in the same row must have compatible data types.

Options:

  • Select an existing flow resource, such as a variable or screen component.
  • Create a resource.
  • Enter a literal value or merge field.

When you add or subtract a number from a date value, the date adjusts in days, not hours.

3. If you selected Define with AI (Advanced), define the instructions and outcomes for the element. 1. For Decision Instructions, enter text that describes what decision the element makes. Include resources from the flow to improve AI accuracy. 2. Enter an outcome label and an outcome API name. The outcome API name must be unique within the flow. 3. For Outcome Instructions, enter text that tells AI when to take the outcome. Include resources from the flow to improve AI accuracy. Outcomes for a Decision element with AI conditions are evaluated simultaneously. Therefore, the order that you define your outcomes in has no impact on the outcome that the flow run takes. # Define Conditions in a Decision or Wait Element Control when a flow takes a specific decision outcome or waits for a specific resume event. - **[Define Conditions in a Decision Element](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_conditions_decision_element.htm&release=264.0.0&type=5)** Control when a flow takes a specific decision outcome. - **[Define Conditions in a Wait Element](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_conditions_wait_element.htm&release=264.0.0&type=5)** Control when a flow waits for a specific resume event. #### See Also - [Wait for Conditions Element](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_wait_for_conditions.htm&release=264.0.0&type=5 "Resume a flow interview after specific conditions are met. Each wait configuration that you define in a flow has optional wait conditions. At run time, these conditions determine whether the flow waits for the associated resume event.") - [Wait for Amount of Time Element](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_wait_for_amount_of_time.htm&release=264.0.0&type=5 "Resume a flow interview after a specific amount of time.") - [Wait Until Date Element](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_wait_until_date.htm&release=264.0.0&type=5 "Resume a flow at a specific date and time.") - [Decision Element](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_decision.htm&release=264.0.0&type=5 "Evaluate a set of conditions, and route users through the flow based on the outcomes of those conditions. This element performs the equivalent of an if-then statement.") # Define Conditions in a Wait Element Control when a flow waits for a specific resume event. ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. Before you begin, add the Wait element to your flow.. 1. Identify the logic between the conditions.
Option Behavior
Always Wait—No Conditions
All Conditions Are Met If one of the conditions is false, the flow doesn’t wait for the associated resume event.
Any Condition Is Met If one of the conditions is true, the flow waits for the associated resume event.
Custom Condition Logic Is Met

When you select this option, provide the condition logic by entering up to 1000 characters. Use:

  • Numbers to refer to each condition
  • AND, OR, or NOT to identify which combination of conditions must be true
  • Parentheses to group parts of the string together

If you enter AND, it’s the same as if you selected All Conditions Are Met. If you enter OR, it’s the same as if you selected Any Condition Is Met. If you enter any other logic, make sure that you include a number for each condition.

For example, for 1 AND NOT(2 OR 3), the flow evaluates whether the first condition is true, and the second or third condition is false.

2. Define conditions. At run time, the conditions are evaluated in the order you specify.
Column Header Description
Resource Flow resource to evaluate the value of.
Operator The available operators depend on the data type selected for Resource.
Value

Resource and Value in the same row must have compatible data types.

Options:

  • Select an existing flow resource, such as a variable or screen component.
  • Create a resource.
  • Manually enter a literal value or merge field.

When you add or subtract a number from a date value, the date adjusts in days, not hours.

# Define Custom Buttons and Links Define the action that occurs when a user clicks a custom button or link. Custom buttons and links can streamline actions within Salesforce or integrate Salesforce data with external URLs, applications, or systems. ### Required Editions
Available in: Salesforce Classic

Custom buttons and links are available in: All Editions

Visualforce pages and s-controls are available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

User Permissions Needed
To create or change custom buttons or links: Customize Application
[![Play](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/play_btn.png) Watch a Demo (English only)](https://salesforce.vidyard.com/watch/ddtSO_rtC8Ew8-yIWz3ZLw) If you want the button or link to launch a custom page or other code, consider a Visualforce page. 1. From the management settings for the object that you want to edit, go to Buttons, Links, and Actions. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Custom buttons aren’t available on the User object or custom home pages. Custom buttons and links are available for activities under the individual object management settings for tasks and events. To override a standard button that applies to both tasks and events, go to the object management settings for activities. 2. Click **New Button or Link**. Or, to add a predefined custom link, click **Default Custom Links**. 3. For **Display Type**, select **Detail Page Link**, **Detail Page Button**, or **List Button**. If you select **List Button**, and your list button requires users to select individual records in a list, then select **Display Checkboxes (for Multi-Record Selection)**. When you select this option, a checkbox appears next to each list item to let users select records, and the list button action is applied to those records. Don’t select **Display Checkboxes (for Multi-Record Selection)** if your list button doesn’t require users to select individual records in the list. For example, your list button links to a URL that doesn’t support POST operations, such as a URL that links to a Lightning component. In Lightning Experience, when you select **Display Checkboxes (for Multi-Record Selection)**, the related list type must be set to **Enhanced List**. You can set the related list type from the Related List–Single component or Related Lists component on a record page in the Lightning App Builder. 4. Enter the [button or link attributes](https://help.salesforce.com/s/articleView?id=platform.defining_custom_links_fields.htm&release=264.0.0&type=5 "This table describes the fields that are available when you create a custom button or link."). Here’s an example of the attributes for a button that performs a web search for an account’s name. ![Button and link creation page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ui_nav_new_button.png) 5. To validate all Salesforce merge fields and functions, click **Check Syntax**. 6. Click **Save** when you’re finished, or click **Quick Save** to save and continue editing. If you set the content source to URL, saving validates the URL you defined. 7. To open a button or link using settings other than the user’s default browser settings, click **Window Open Properties** on the button or link’s detail page. 8. To view all references to the new button or link, click **Where is this used?** on its detail page. Custom links for users are automatically added to the Custom Links section of the user detail page. You can add page buttons only to the Button section of a page layout. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note A link URL can be up to 2,048 bytes. When data is substituted for the tokens in the URL, the link can exceed 3,000 bytes. Some browsers enforce limits on the maximum URL length. Before you can use your custom buttons and links, add them to an object’s page layout. You can then see and use the button or link on a record detail page. ![Account record detail page with a custom button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ui_nav_new_button_result.png) - **[Custom Button and Link Fields](https://help.salesforce.com/s/articleView?id=platform.defining_custom_links_fields.htm&release=264.0.0&type=5)** This table describes the fields that are available when you create a custom button or link. - **[Construct Effective Custom URL Buttons and Links](https://help.salesforce.com/s/articleView?id=platform.custom_links_constructing.htm&release=264.0.0&type=5)** Use these methods to construct effective custom URL buttons and links. - **[Edit Window Open Properties](https://help.salesforce.com/s/articleView?id=platform.editing_window_open_properties.htm&release=264.0.0&type=5)** Custom buttons and links can open in different types of windows. If you configure a custom button or link to open in a window, set the window properties. If you leave the window properties blank, the custom button or link uses the default settings of the user’s browser. - **[Merge Fields for Custom Buttons and Links](https://help.salesforce.com/s/articleView?id=platform.links_merge_fields.htm&release=264.0.0&type=5)** A merge field is a field that incorporates values from an object record. You can put merge fields in an email template, mail merge template, custom link, or formula. - **[Add Default Custom Links](https://help.salesforce.com/s/articleView?id=platform.adding_default_custom_links.htm&release=264.0.0&type=5)** Update predefined custom links for account, contact, lead, campaign, and solution detail pages. - **[Custom Link Best Practices](https://help.salesforce.com/s/articleView?id=platform.custom_links_best_practices.htm&release=264.0.0&type=5)** Custom buttons and links can streamline actions within Salesforce, or integrate Salesforce data with external URLs, applications, or systems. Use these tips to get the most out of your custom links. #### See Also - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") - [Custom Button and Link Considerations](https://help.salesforce.com/s/articleView?id=platform.links_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when working with custom buttons and links.") - [Custom Button and Link Limitations](https://help.salesforce.com/s/articleView?id=platform.custom_button_link_limitations.htm&release=264.0.0&type=5 "Keep these limitations in mind when working with custom buttons and links.") - [Custom Button and Link Samples](https://help.salesforce.com/s/articleView?id=platform.links_useful_custom_buttons.htm&release=264.0.0&type=5 "Use samples of custom Salesforce buttons and links to determine whether they can work for you.") # Define Custom HTTP Headers for OData Connectors Define and activate custom HTTP headers to pass more request information to the external data source for processing. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience (not for high-data-volume external objects)

Available in: Developer Edition

Available for an extra cost in: Enterprise, Performance, and Unlimited Editions

User Permissions Needed
To create and edit external data sources: Customize Application
Custom HTTP headers provide context information from Salesforce such as region, org details, or the role of the person viewing the external object. For each OData external data source, define up 10 HTTP headers to request or data. For example, to see who’s making a callout to the external data source, use a formula that resolves to the name of the user. When naming the custom HTTP header, don’t override the following existing standard header names. - Content-Type - Accept - maxVersionHeader - versionHeader - X-HTTP-METHOD - Content-Length - X-CSRF-Token (when CSRF-enabled) - Prefer (when a trigger on the external object is enabled) - Cookie 1. From Setup, enter External Data Sources in the Quick Find box, then select **External Data Sources**. 2. Click the name of an OData 2.0 or 4.0 data source. 3. In the External Custom HTTP Headers related list, click **New** to create a custom HTTP header or **Edit** to change an existing one. 4. Complete the fields. | Field | Description | | --- | --- | | Header Field Name | Enter a name that contains at least one alphanumeric character or underscore. It can also include: ! # $ % & ' \* + - . ^ \_ \` | ~ | | Header Field Value | Create a formula for the Header Field Value using the formula editor. The values in the formula must evaluate to a string. If the formula resolves to null and an empty string, the header isn’t sent. | | Active | To start using the header field right away, select the **Active** checkbox. | | Description | A text description of the header field’s purpose. | | Parent | The name of the entity that the custom HTTP header is related to. Using a named credential as the parent entity for the custom HTTP header isn’t supported. | 5. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can’t add or delete Custom HTTP headers that are included in a managed package. However, you can edit custom HTTP headers that are part of a managed package. The Header Name and Description fields are developer editable. The Active and Header Field Value fields are both subscriber and developer editable. # Define Custom Settings Create custom sets of data. ### Required Editions
Available in: Salesforce Classic and Lightning Experience.

Available in: Group, Professional, Developer, Enterprise, Performance, Unlimited, and Database.com Editions.

Packages aren’t available in Database.com.

User Permissions Needed
To manage, create, edit, and delete custom settings: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note We strongly suggest using custom metadata types instead of custom settings. Unlike list custom settings, you can migrate the records of custom metadata types using second-generation packages or Metadata API tools. To create a custom setting: 1. From Setup, enter Custom Settings in the Quick Find box, then select **Custom Settings**. 2. Click **New**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note A ![Managed - Installed](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/icoManagedInstalled.gif) icon indicates that the custom setting is in an installed managed package. You can’t edit or delete a protected custom setting installed from a managed package. 3. Give the custom setting a label. Enter the label displayed in the application. 4. Define the object name. Enter the name to be used when the custom setting is referenced by formula fields, validation rules, Apex, or SOAP API. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Salesforce recommends using ASCII for the Object Name. The name can't exceed 38 ASCII characters. If you use double byte, there are additional limits on the number of characters allowed. 5. Define the setting type. Select a type of List or Hierarchy. After you save a custom setting, you can’t change this value. - List—Defines application-level data, such as country codes or state abbreviations, and provides a reusable set of static data that can be accessed across your organization. If you use a particular set of data frequently within your application, putting that data in a list custom setting streamlines access to it. Data in list settings does not vary by profile or user, but it is available organization-wide. Examples of list data include two-letter state abbreviations, international dialing prefixes, and catalog numbers for products. Because the data is cached, access is low-cost and efficient—you don't have to use SOQL queries that count against your governor limits. - Hierarchy—Uses a built-in hierarchical logic that lets you personalize settings for specific profiles or users. The hierarchy logic checks the organization, profile, and user settings for the current user and returns the most specific, or lowest, value. In the hierarchy, settings for an organization are overridden by profile settings, which, in turn, are overridden by user settings. 6. Define the visibility setting. (Available in developer and scratch orgs) After you save a custom setting, you can’t change this value. - Protected—If the custom setting is contained in a managed package, subscribing organizations can't see the custom setting—it doesn't display as part of the package list. In addition, subscribing organizations can't access the custom setting using Apex or the API. Custom settings can only be accessed by the Apex code that is part of the managed package. If the custom setting is contained in an unmanaged package, they behave like public custom settings. - Public—Regardless of the type of package (managed or unmanaged), the following have access: Apex, formulas, flows, and API for users with Customize Application permission or permissions granted through profiles or permission sets. 7. Enter an optional description of the custom setting. A meaningful description helps you remember the differences between your custom settings when you view them in a list. 8. Click **Save**. After you create a custom setting, add fields to the custom setting. - **[Add Custom Settings Fields](https://help.salesforce.com/s/articleView?id=platform.cs_add_fields.htm&release=264.0.0&type=5)** After you define custom settings, add fields to them. The custom fields contain the data used by the custom setting. - **[Create Custom Settings Records](https://help.salesforce.com/s/articleView?id=platform.cs_add_data.htm&release=264.0.0&type=5)** After you define your custom settings and add fields, you can populate the fields with data. - **[Manage Custom Settings Data](https://help.salesforce.com/s/articleView?id=platform.cs_manage_data.htm&release=264.0.0&type=5)** After creating custom setting and adding fields, you can add records, then use the values in these records in your Apex code and validation rules. # Define Default Field Values Define a default value for a field. Use a formula to generate dynamic values or constants for static values. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To view default field values: View Setup and Configuration
To define or change default field values: Customize Application
1. Create a custom field. See [Create Custom Fields](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&release=264.0.0&type=5 "Capture your unique business data by storing it in custom fields. When you create a custom field, you configure where you want it to appear and optionally control security at the field level."). You can also define a default value for an existing custom field. See [Edit Custom Fields](https://help.salesforce.com/s/articleView?id=platform.editing_fields.htm&release=264.0.0&type=5 "You can modify the field attributes of a custom field. The attributes vary according to the field data type."). 2. Choose the type of field and click **Next**. For a list of the types available for default values, see [Default Field Values](https://help.salesforce.com/s/articleView?id=platform.fields_about_default_field_values.htm&release=264.0.0&type=5 "Prepopulate field values with defaults to save your users time and improve consistency. Default field values make your users more productive by reducing the number of fields they must fill in manually."). 3. Enter the attributes for the field. 4. Enter a default value or [define a formula](https://help.salesforce.com/s/articleView?id=platform.customize_formulas.htm&release=264.0.0&type=5 "Your custom formula fields require special attributes.") to calculate the default value. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can define a formula for default values only where appropriate. For example, the default value options for a checkbox field are limited to the options available for those types of fields, such as Checked or Unchecked. For picklists, a valid formula result is either a constant or the API name of an entry in the Values list. The formula result has higher precedence than the default assigned in the Values list. If the formula doesn’t generate a valid result, the default assigned in the Values list is entered in the field. If a default isn’t assigned to the Values list, no value is entered in the picklist field. 5. Click **Next**. 6. Set the field-level security to determine whether the field is visible for specific profiles, and click **Next**. 7. Choose the page layouts that display the field. The field is added as the last field in the first two-column section on the page layout. For user custom fields, the field is added to the bottom of the user detail page. 8. Click **Save** to finish or **Save & New** to create more custom fields. You must specify a [default value](https://help.salesforce.com/s/articleView?id=platform.custom_field_attributes.htm&release=264.0.0&type=5 "A custom field has different attributes depending on its field type.") for required campaign member custom fields. To avoid uniqueness errors, don’t assign default values to fields that are both required and unique. - **[Default Field Values](https://help.salesforce.com/s/articleView?id=platform.fields_about_default_field_values.htm&release=264.0.0&type=5)** Prepopulate field values with defaults to save your users time and improve consistency. Default field values make your users more productive by reducing the number of fields they must fill in manually. - **[Useful Default Field Value Formulas](https://help.salesforce.com/s/articleView?id=platform.fields_useful_default_field_values.htm&release=264.0.0&type=5)** How to apply default field values based on maximum discount rate, product language, or tax rate by city. - **[Default Field Value Considerations](https://help.salesforce.com/s/articleView?id=platform.fields_default_field_value_considerations.htm&release=264.0.0&type=5)** Be aware of the behavior and rules when you assign default values to custom fields. # Define Delegate Administrators Enable delegated administrators to manage users in specified roles and all subordinate roles. You can assign specified profiles to those users, and log in as users who have granted login access to administrators. A delegated administration group is a group of users who have the same admin privileges. These groups are not related to public groups used for sharing. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To manage delegated administration: Customize Application
To be a delegated administrator: View Setup and Configuration
You cannot delegate administrative duties related to your org to partner portal or Customer Portal users. However, you can delegate some portal administrative duties to portal users. Before you begin, ensure that roles are assigned to the delegated group so that the delegated administrator can manage group permissions. 1. From Setup, enter Delegated Administration in the Quick Find box, then select **Delegated Administration** and click **New** 2. Select or create a delegated group. 3. To allow group users to log in as users in the role hierarchy that they administer, select **Enable Group for Login Access**. Depending on your org settings, individual users first grant login access to allow their administrators to log in as them. 4. Click **Save**. 5. For each related list, click **Add** to define your delegated group details. #### See Also - [Delegate Administrative Duties](https://help.salesforce.com/s/articleView?id=platform.admin_delegate.htm&release=264.0.0&type=5 "Use delegated administration to assign limited admin privileges to users in your org who aren’t administrators. For example, let’s say you want the Customer Support team manager to manage users in the Support Manager role and all subordinate roles. Create a delegated admin for this purpose so that you can focus on other administration tasks.") - [Delegate Site Administration to an External User](https://help.salesforce.com/s/articleView?id=platform.networks_DPUA.htm&release=264.0.0&type=5 "Delegate the administration of your site to an external user to increase your site’s capacity for growth and reduce bottlenecks. External administrators can add, update, and disable members, and they can reset passwords and manage user permissions.") # Define Email Service Addresses Add an inbound email address for an email service. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: Enterprise, Performance, Unlimited, and Developer Editions

Use of email services in installed AppExchange packages also available in: Essentials, Group, and Professional Editions

User Permissions Needed
To configure Apex email services and email service addresses: Customize Application
To create Apex classes: Author Apex
1. From Setup, enter Email Services in the Quick Find box, then select **Email Services**. 2. Choose the email service for which you want to define an address. 3. Click **New Email Address**, or click **Edit** to change the configuration for an existing email service address. To delete an email service address, click **View** and **Delete**. 4. In the Email Address field, enter the local-part of the email service address. Salesforce generates a unique domain-part for each email service address to ensure that no two email service addresses are identical. The generated domain-part appears to the right of the Email Address field. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_tip.png) Tip For the local-part of a Salesforce email address, all alphanumeric characters are valid, plus the following special characters: !#$%&'\*/=?^\_+-\`{|}~. For the domain-part of a Salesforce email address, only alphanumeric characters are valid, as well as hyphen (-). The dot character (.) is also valid in both the local-part and domain-part as long as it is not the first or last character. Salesforce email addresses are case-insensitive. 5. Select the Active checkbox if you want the email service address to be activated when you click Save. 6. Choose the Context User. The email service assumes the permissions of the context user when processing the messages this address receives. For example, if the email service is configured to modify contact records upon receiving updated contact information, the email service only modifies a record if the context user has permission to edit the record. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important Choose a context user that has permission to execute the Apex class that the email service is configured to use. 7. Optionally, configure this email service address to only accept messages from certain senders by listing their email addresses and domains in the Accept Email From text box. Separate multiple entries with commas. For example: george@mycompany.com, yahoo.com, gmail.com. If the Accept Email From text box has a value and the email service receives a message from an unlisted email address or domain, the email service performs the action specified in the Unauthorized Sender Action failure response setting. Leave this field blank if you want the email service to receive email from any email address. If both the email service and email service address are configured to only accept messages from certain senders, the email service only processes messages from senders that are listed in the Accept Email From text boxes on both the email service and the email service address. 8. Click **Save** to save your changes, or **Save and New** to define another inbound email address for this email service. #### See Also - [What Are Email Services?](https://help.salesforce.com/s/articleView?id=platform.code_email_services_overview.htm&release=264.0.0&type=5 "Email services are automated processes that use Apex classes to process inbound email.") - [Define Email Services](https://help.salesforce.com/s/articleView?id=platform.code_email_services_editing.htm&release=264.0.0&type=5 "Set up an email service to handle incoming email, and configure the service to process messages according to your users' needs.") - [The InboundEmail Object](https://help.salesforce.com/s/articleView?id=platform.code_inbound_email.htm&release=264.0.0&type=5 "For every email the Apex email service domain receives, Salesforce creates a separate InboundEmail object that contains the contents and attachments of that email. You can use Apex classes that implement the Messaging.InboundEmailHandler interface to handle an inbound email message. Using the handleInboundEmail method in that class, you can access an InboundEmail object to retrieve the contents, headers, and attachments of inbound email messages, as well as perform many functions.") - [Email Services](https://help.salesforce.com/s/articleView?id=platform.code_email_services.htm&release=264.0.0&type=5 "You can use email services to process the contents, headers, and attachments of inbound email. For example, you can create an email service that automatically creates contact records based on contact information in messages.") # Define Email Services Set up an email service to handle incoming email, and configure the service to process messages according to your users' needs. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience

Available in: Enterprise, Performance, Unlimited, and Developer Editions

Use of email services in installed AppExchange packages also available in: Essentials, Group, and Professional Editions

User Permissions Needed
To configure Apex email services and email service addresses: Customize Application
To create Apex classes: Author Apex
1. From Setup, enter Email Services in the Quick Find box, then select **Email Services**. 2. Click **New Email Service**, or click **Edit** to change an existing email service. 3. Specify the name of the email service. 4. Choose the Apex class you want this email service to use to process messages. The Apex class you choose must implement the `Messaging.InboundEmailHandler` interface. For example: ```java global class myHandler implements Messaging.InboundEmailHandler { global Messaging.InboundEmailResult handleInboundEmail(Messaging.InboundEmail email, Messaging.InboundEnvelope envelope) { Messaging.InboundEmailResult result = new Messaging.InboundEmailresult(); return result; } } ``` For information on the InboundEmail object, see [Using the InboundEmail Object](https://help.salesforce.com/s/articleView?id=platform.code_inbound_email.htm&release=264.0.0&type=5 "For every email the Apex email service domain receives, Salesforce creates a separate InboundEmail object that contains the contents and attachments of that email. You can use Apex classes that implement the Messaging.InboundEmailHandler interface to handle an inbound email message. Using the handleInboundEmail method in that class, you can access an InboundEmail object to retrieve the contents, headers, and attachments of inbound email messages, as well as perform many functions."). 5. Choose the types of attachments you want the email service to accept. The options are:
None The email service accepts the message but discards any attachment.
Text Attachments Only

The email service only accepts the following types of attachments:

  • Attachments with a Multipurpose Internet Mail Extension (MIME) type of text.
  • Attachments with a MIME type of application/octet-stream and a file name that ends with either a .vcf or .vcs extension. These attachments are saved as text/x-vcard and text/calendar MIME types, respectively.

Messages with attachments other than these types are accepted, but the attachments are discarded.

Binary Attachments Only

The email service only accepts binary attachments, such as image, audio, application, and video files. Binary attachments have a limit of 5 MB per attachment.

Messages with attachments that aren’t binary are accepted, but the attachments are discarded.

All The email service accepts any type of attachment.
An email service can only process attachments if you configure the email service to accept attachments and use an Apex class that processes the types of attachments the email service accepts. Email services can’t accept inline attachments, such as graphics inserted in email messages. 6. Optionally, select the **Advanced Email Security Settings** checkbox to configure the email service to verify the legitimacy of the sending server before processing a message. The email service uses the following authentication protocols to verify the sender's legitimacy:If Advanced Security permission is disabled in your org, Advanced Email Settings aren't available. - DKIM - DMARC - SPF If the sending server passes at least one of these protocols and doesn’t fail any, the email service accepts the email. If the server fails a protocol or doesn’t support any of the protocols, the email service performs the action specified in the Unauthenticated Sender Action failure response setting. Two exceptions apply. - If DMARC passes and SPF fails, the email service accepts the email. - If DKIM fails and any other protocol passes, the email service accepts the email. If Advanced Security permission is disabled in your org, Advanced Email Settings aren't available. Before selecting the **Authenticate Senders** checkbox, ensure that the senders that you expect to use the email service support at least one of the authentication protocols listed. For information on these authentication protocols, see the following websites: - [https://dkim.org/](https://dkim.org/) - [https://dmarc.org/](https://dmarc.org/) - [www.open-spf.org](http://www.open-spf.org/) 7. Email services reject email messages and notify the sender if the email exceeds approximately 25 MB (combined body text, body HTML, and attachments). This size varies depending on language and character set. 8. You can convert text attachments to binary attachments. 9. Optionally, configure this email service only to accept messages from certain senders by listing their email addresses and domains in the **Accept Email From** text box. Separate multiple entries with commas. For example: george@mycompany.com, yahoo.com, gmail.com. If the **Accept Email From** text box has a value and the email service receives a message from an unlisted email address or domain, the email service performs the action specified in the Unauthorized Sender Action failure response setting. Leave this field blank if you want the email service to receive email from any email address. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note You can also authorize email addresses and domains at the email service address-level. See [Defining Email Service Addresses](https://help.salesforce.com/s/articleView?id=platform.code_email_service_address.htm&release=264.0.0&type=5 "Add an inbound email address for an email service."). If both the email service and email service address are configured to accept messages only from certain senders, the email service processes messages only from senders that are listed in the **Accept Email From** text boxes on both the email service and the email service address. 10. Select the **Active** checkbox if you want the email service to be activated when you click **Save**. 11. Configure the failure response settings, which determine how the email service responds if an attempt to access this email service fails for the following reasons:The failure response options are:
Over Email Rate Limit ActionDetermines what the email service does with messages if the total number of messages processed by all email services combined has reached the daily limit for your organization. Salesforce calculates the limit by multiplying the number of user licenses by 1,000; maximum 1,000,000. For example, if you have 10 licenses, your org can process up to 10,000 email messages a day.
Deactivated Email Address ActionDetermines what the email service does with messages received at an email address that is inactive.
Deactivated Email Service ActionDetermines what the email service does with messages it receives when the email service itself is inactive.
Unauthenticated Sender ActionDetermines what the email service does with messages that fail or don’t support any of the authentication protocols if the Authenticate Senders checkbox is selected.
Unauthorized Sender ActionDetermines what the email service does with messages received from senders who aren’t listed in the Accept From Email text box on either the email service or email service address.
The failure response options are:
Bounce MessageThe email service returns the message to the sender or to the Automated Case User for On-Demand Email-to-Case, with a notification that explains why the message was rejected.
Discard MessageThe email service deletes the message without notifying the sender.
Requeue Message (Over Email Rate Limit Action Only)The email service queues the message for processing in the next 24 hours. If the message isn’t processed within 24 hours, the email service returns the message to the sender with a notification that explains why the message was rejected.
12. To send error email messages to a specified address instead of the sender's email address, select **Enable Error Routing** and specify the destination email address in **Route Error Emails to This Email Address**. This action prevents the sender being notified when email services can’t process an incoming email. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note The Enable Error Routing feature only applies to the following five failure scenarios, and only when "Bounce Message" is selected as the response action: - Over Email Rate Limit Action - Deactivated Email Address Action - Deactivated Email Service Action - Unauthenticated Sender Action - Unauthorized Sender Action If "Discard Message" or "Requeue Message" is selected for any of these failure responses, error routing does not occur. 13. Click **Save** to save your changes, or **Save and New Email Address** to create email addresses for this email service, as described in [Defining Email Service Addresses](https://help.salesforce.com/s/articleView?id=platform.code_email_service_address.htm&release=264.0.0&type=5 "Add an inbound email address for an email service."). #### See Also - [What Are Email Services?](https://help.salesforce.com/s/articleView?id=platform.code_email_services_overview.htm&release=264.0.0&type=5 "Email services are automated processes that use Apex classes to process inbound email.") - [Define Email Service Addresses](https://help.salesforce.com/s/articleView?id=platform.code_email_service_address.htm&release=264.0.0&type=5 "Add an inbound email address for an email service.") - [The InboundEmail Object](https://help.salesforce.com/s/articleView?id=platform.code_inbound_email.htm&release=264.0.0&type=5 "For every email the Apex email service domain receives, Salesforce creates a separate InboundEmail object that contains the contents and attachments of that email. You can use Apex classes that implement the Messaging.InboundEmailHandler interface to handle an inbound email message. Using the handleInboundEmail method in that class, you can access an InboundEmail object to retrieve the contents, headers, and attachments of inbound email messages, as well as perform many functions.") - [Email Services](https://help.salesforce.com/s/articleView?id=platform.code_email_services.htm&release=264.0.0&type=5 "You can use email services to process the contents, headers, and attachments of inbound email. For example, you can create an email service that automatically creates contact records based on contact information in messages.") # Define External Data Sources Create external data sources to connect to content and data that is stored outside your Salesforce org. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Salesforce Connect is available in: Developer Edition and for an extra cost in: Enterprise, Performance, and Unlimited Editions

Files Connect for cloud-based external data sources is available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions

Federated Search is available in: Enterprise, Professional, Unlimited, and Developer Editions

User Permissions Needed
To create and edit an external data source: Customize Application
1. From Setup, in the Quick Find box, enter External Data Sources, and then select **External Data Sources**. 2. Click **New External Data Source**. To modify an existing external data source, click **Edit**. 3. Complete the steps for your type of external data source. - [Files Connect: Google Drive](https://help.salesforce.com/HTViewHelpDoc?id=admin_files_connect_google_xds.htm&language=en_US) - [Files Connect: SharePoint 2010 or 2013](https://help.salesforce.com/HTViewHelpDoc?id=admin_files_connect_sp_xds.htm&language=en_US) - [Files Connect: SharePoint Online or OneDrive for Business](https://help.salesforce.com/HTViewHelpDoc?id=admin_files_connect_sp_online_xds.htm&language=en_US) - [Files Connect: Box](https://help.salesforce.com/articleView?id=admin_files_connect_box_xds.htm&language=en_US) - [Simple URL: Data from Another Web Domain](https://help.salesforce.com/HTViewHelpDoc?id=admin_files_simple_url_xds.htm&language=en_US) - [Salesforce Connect: OData 2.0](https://help.salesforce.com/s/articleView?id=platform.platform_connect_add_external_data_source.htm&release=264.0.0&type=5 "Connect your Salesforce org to data that’s stored in an external system, such as SAP® NetWeaver Gateway, Microsoft Dynamics® NAV, or IBM WebSphere®.") - [Salesforce Connect: OData 4.0](https://help.salesforce.com/s/articleView?id=platform.platform_connect_add_external_data_source.htm&release=264.0.0&type=5 "Connect your Salesforce org to data that’s stored in an external system, such as SAP® NetWeaver Gateway, Microsoft Dynamics® NAV, or IBM WebSphere®.") - [Salesforce Connect: Cross-Org](https://help.salesforce.com/s/articleView?id=platform.xorg_add_external_data_source.htm&release=264.0.0&type=5 "Set up a connection from your subscriber org to another Salesforce org so your users can access its data through external objects.") - [Salesforce Connect: Custom](https://help.salesforce.com/s/articleView?id=platform.apex_add_external_data_source.htm&release=264.0.0&type=5 "Connect your Salesforce org to any data anywhere via a Salesforce Connect custom adapter that you create with the Apex Connector Framework.") - [Salesforce Connect adapter for Amazon DynamoDB](https://help.salesforce.com/s/articleView?id=platform.dynamodb_add_external_data_source.htm&release=264.0.0&type=5 "Connect your Salesforce org to data that’s stored in Amazon DynamoDB.") - [Salesforce Connect SQL adapter for Amazon Athena](https://help.salesforce.com/s/articleView?id=platform.athena_add_external_data_source.htm&release=264.0.0&type=5 "Connect your Salesforce org to access Amazon Athena’s interactive query capabilities.") - [Salesforce Connect SQL adapter for Snowflake](https://help.salesforce.com/s/articleView?id=platform.snowflake_add_external_data_source.htm&release=264.0.0&type=5 "Connect your Salesforce org to access Snowflake’s interactive query capabilities.") - [Federated Search](https://help.salesforce.com/s/articleView?id=ai.search_define_federated_search.htm&type=5&language=en_US) #### See Also - [The Files Connect Setup Process](https://help.salesforce.com/s/articleView?id=experience.admin_files_connect_overview.htm&type=5&language=en_US) - [Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_about.htm&release=264.0.0&type=5 "Salesforce Connect provides seamless integration of data across system boundaries by letting your users view, search, and modify data that’s stored outside your Salesforce org. For example, perhaps you have data that’s stored on premises in an enterprise resource planning (ERP) system. Instead of copying the data into your org, you can use external objects to access the data in real time via web service callouts.") # Define External Objects Tables in external systems map to external objects in Salesforce, combining all your data and content for users in your org. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Salesforce Connect is available in: Developer Edition and for an extra cost in: Enterprise, Performance, and Unlimited Editions

Files Connect for cloud-based external data sources is available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions

Federated Search is available in: Enterprise, Professional, Unlimited, and Developer Editions

User Permissions Needed
To create or edit external objects: Customize Application
External objects are similar to custom objects, except that they map to data that’s stored outside your Salesforce org. Each external object relies on an external data source definition to connect with the external system’s data. Each external object definition maps to a data table on the external system. Each of the external object’s fields maps to a table column on the external system. External objects enable your users and the Lightning Platform to search and interact with the external data. - Each org can have up to 200 external objects. External objects don’t count toward the amount for custom objects. - If the external system allows it, we recommend that you [sync](https://help.salesforce.com/s/articleView?id=platform.ext_data_sync_database.htm&release=264.0.0&type=5 "After you configure an external data source, synchronize it to map its tables with external objects in your Salesforce org. The content and data of external objects appear in federated search, together with your Salesforce content and data.") the external data source to automatically create related external objects. You can instead choose to manually define external objects to customize the external object names and manually create the custom fields. To create or modify an external object: 1. From Setup, enter External Objects in the Quick Find box, then select **External Objects**. 2. Click **New External Object**, or click **Edit** to modify an existing external object. 3. Enter the following:
Field Description
Label

A user-friendly name for the external object. The label is displayed in the Salesforce user interface, such as in list views.

We recommend that you make object labels unique across all standard, custom, and external objects in the org.

Plural Label The plural name of the external object. If you create a tab for this object, this name is used for the tab.
Starts with vowel sound If it’s appropriate for your org’s default language, select to precede your label with “an” instead of “a” for any automated messages.
Object Name

A unique identifier used to refer to this external object definition when using the API. Object names must be unique across all standard, custom, and external objects in the org.

The Object Name field can contain only underscores and alphanumeric characters. It must be unique, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.

Description An optional description of the external object. A meaningful description helps you distinguish among your external objects when you view them in a list.
Context-Sensitive Help Setting

Defines what appears when users click Help for this Page from the external object record home (overview) and detail pages, as well as list views and related lists.

We recommend that you select Open a window using a Visualforce page to display custom help that you create for your users.

If you instead keep the default value, your users only see Salesforce Help, which doesn’t provide any information about your external data.

This setting doesn’t affect the Help & Training link at the top of each page, which always opens Salesforce Help.

Content Name

Select the Visualforce page that best describes the data that’s provided by this external object.

This field is available only when you select Open a window using a Visualforce page.

External Data Source The external data source definition that contains the connection details you want to use for this external object.
Table Name

Table in the external system that the external object maps to.

For SharePoint, the table name must match the related scope name.

Display URL Reference Field

Available only for Salesforce Connect. The external object’s Display URL standard field values are automatically generated from the external system. For example, with the OData 2.0 adapter for Salesforce Connect, the value is based on the link href that’s defined on the OData producer.

You can override the default values with the values of a custom field on the same external object. Select the field name, and make sure that the custom field’s values are valid URLs.

Allow Reports Available only for Salesforce Connect.
Deployment Status Indicates whether the external object is visible to other users.
Launch New Custom Tab Wizard after saving this external object If selected, the custom tab wizard starts after you save the external object.
Allow Search

If search is also enabled on the external data source, selecting this option lets users find the external object’s records via SOSL and Salesforce global searches.

By default, search is disabled for new external objects. However, you can validate and sync an external data source to automatically create external objects. Syncing always enables search on the external object when search is enabled on the external data source, and vice versa.

However, syncing always overwrites the external object’s search status to match the search status of the external data source.

4. Click **Save**. 5. On the external object detail page, view and modify the external object’s custom fields and relationships, page layouts, field sets, search layouts, and buttons and links. - To create field mappings or add fields to an external object, click **New** on the Custom Fields & Relationships related list. - To assign different page layouts by user profile, click **Page Layout Assignments**. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip After you configure an external data source, run the validator tool on each external object to test and troubleshoot its connections. The tool tests for ID uniqueness and the ability to sort and filter results. #### See Also - [Set Up Salesforce Connect to Access External Data with OData Adapters](https://help.salesforce.com/s/articleView?id=platform.platform_connect_setup.htm&release=264.0.0&type=5 "Let users view and search data that’s stored outside your Salesforce org, such as data in an enterprise resource planning (ERP) system.") - [Set Up Salesforce Connect to Access Data in Another Org with the Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_setup.htm&release=264.0.0&type=5 "Provide users with seamless access to data in your other Salesforce orgs so that they have a complete view of the business. Setting up the cross-org adapter for Salesforce Connect is quick and easy with point-and-click tools.") - [Set Up Salesforce Connect to Access External Data with a Custom Adapter](https://help.salesforce.com/s/articleView?id=platform.apex_adapter_setup.htm&release=264.0.0&type=5 "Let users view, search, and modify any data anywhere from within their Salesforce org.") - [Deployment Status for Custom Objects and External Objects](https://help.salesforce.com/s/articleView?id=platform.deploying_custom_objects.htm&release=264.0.0&type=5 "Use the Deployment Status setting in the object definition to control when users can see and use the object and its associated custom tab, related lists, and reports.") # Define Field-Level Help Define custom help text for your organization’s fields to provide users with a helpful description. Help text can be defined for standard and custom fields on all detail and edit pages where the field displays. Users can view the field-level help text by hovering over the Info icon next to the field. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions except Database.com
User Permissions Needed
To define or change field-level help: Customize Application
1. From the management settings for the field’s object, go to Fields. 2. Click **Edit** next to the field. 3. In the Help Text field, enter the text you want displayed. The text displays when a user hovers the mouse over the Info icon that appears next to the field on a detail or edit page. You can enter up to 510 characters. 4. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If the object you’re modifying is exposed in an Experience Cloud site, field-level help is visible to site members, including unlicensed users, partners, and customers. Make sure the information you provide in field-level help accounts for all audiences and doesn’t contain business-sensitive information. #### See Also - [Custom Help Content](https://help.salesforce.com/s/articleView?id=platform.customhelp_about.htm&release=264.0.0&type=5 "Tailor help so that users understand how to work within your unique implementation of Salesforce. You can add learning in the flow of work in several ways. Add custom help for a page, app, object, or org level, or provide links to help in the Utility Bar, Path, or as a text box on the page. Show users custom resources in a Lightning Experience welcome mat when they first log in. Or, to reach users with important news, training, and on-boarding information, add micro-learning prompts and walkthroughs to your app.") - [Field-Level Help](https://help.salesforce.com/s/articleView?id=platform.customhelp_getting_started_flh.htm&release=264.0.0&type=5 "Field-level help lets you provide help text detailing the purpose and function of any standard or custom field. Before defining field-level help, review these implementation tips and best practices.") - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") # Define Fields for an Object-Based Lightning Type After you create an object-based custom Lightning type, define its schema by specifying fields. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions.
1. Open your object-based custom Lightning type. 2. Select the **Schema** tab. 3. Update the prepopulated field row with your field details. - **Field Name**. Enter a name for the field, for example, First Name. - **Data Type**. Select a data type, for example, String. - **Description**. Optionally, enter a description to help users understand what the field represents. - **Required**. Optionally, select this checkbox to make the field required. 4. To add more fields, click **Add Row** and enter the details for the new field. 5. Save your work. # Define Lookup Filters Create and define lookup filters. Lookup filter criteria can compare fields of different types as long as they are compatible. Value-based filters are supported in Lightning Experience and Salesforce Classic. ### Required Editions ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions except for Database.com.
User Permissions Needed
To define lookup filters: Customize Application
1. From the management settings for the field’s object, go to Fields. 2. Click **Edit** next to the name of the lookup or master-detail relationship field to which you want to apply the filter. 3. In the Lookup Filter Options section, click **Show Filter Settings**. 4. Specify the filter criteria a record must meet to be a valid value. To specify criteria, click **Insert Suggested Criteria** and choose from a list of suggested criteria, or manually enter your own criteria. - In the first column, click the lookup icon or start typing in the text box and select a field. - In the second column, select an operator. - In the third column, select Value if Salesforce should compare the field in the first column with a static value, or select Field if Salesforce should compare the field in the first column with the value of another field. - In the fourth column, enter the value or select the field that Salesforce should compare with the field in the first column. - Click **Add Filter Logic** to add Boolean conditions. - Select a suggested field from the Field text box. You can only select fields on the current record, the lookup object, or the user record. You can also choose related fields that are one relationship away from the lookup object. Salesforce assists you by listing the available fields and relationships when you click the lookup icon or click inside the text box. 5. Specify whether the filter is required or optional. For fields with optional lookup filters (Salesforce Classic only), values that match the lookup filter criteria appear in the lookup dialog. To remove the filter and view all search results for the lookup field, users can select **Show all results** in the lookup dialog. Also, optional lookup filters let users save values that don't match the lookup filter criteria without Salesforce displaying any error message. In Lightning Experience, all filters are required, even if admins specify them as optional in Setup. There’s no **Show all results** view. For required lookup filters, specify whether you want Salesforce to display the standard error message or a custom message when a user enters an invalid value. 6. Optionally, enter text to display in the lookup search dialog. Consider text that guides users in their searches and explains the business rule that the lookup filter implements. 7. Leave Enable this filter selected. 8. Save your changes. #### See Also - [Considerations for Lookup Filters](https://help.salesforce.com/s/articleView?id=platform.fields_lookup_filters_notes.htm&release=264.0.0&type=5 "Follow these guidelines when creating lookup filters.") - [Dependent Lookups](https://help.salesforce.com/s/articleView?id=platform.fields_lookup_filters_dependent_lookups.htm&release=264.0.0&type=5 "A dependent lookup is a relationship field with a lookup filter that references fields on the source object. For example, you can configure the case Contact field to only show contacts associated with the account selected in the case Account Name field.") - [Lookup Filter Examples](https://help.salesforce.com/s/articleView?id=platform.fields_lookup_filters_examples.htm&release=264.0.0&type=5 "Various examples for record types, record status, roles, and complex configurations in lookup filters.") - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") # Define Masking Policy Schedules Create, edit, or delete masking policy schedules to control automated data masking. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask add-on license.
User Permissions Needed
To create, edit, or delete masking policy schedules:
  • Data Mask And Seed User Permission Set License
  • Data Mask And Seed User Permission Set
1. Open a policy in view-only mode and in the displayed policy page, select **Schedule**. 2. In the Schedule Policy dialog: - To define a new schedule, set Run Frequency, Date, and Time, and select **Schedule**. - To modify an existing schedule, change Run Frequency, Date, or Time, and select **Schedule**. - To delete an existing schedule, change Run Frequency to be Not Scheduled, and select **Schedule**. 3. The policy page redisplays. In the page’s ribbon, the Schedule field displays either the policy’s new/modified masking job schedule or displays Not Scheduled, if you deleted the policy’s schedule. Schedule Policy Field Details The following is important detail about the Schedule Policy fields: - Policy Name field (view-only). - Policy Description field (view-only). The field is empty when description hasn’t been provided. - Run Frequency: Choose how often Data Mask & Seed runs the masking job. - Run One Time - for one-time sandbox refreshes or testing - Repeat Daily - for daily sandbox refreshes, such as, 02:00 AM every night - Repeat Weekly - for weekly sandbox maintenance, such as, every Monday at midnight - Repeat Monthly - for monthly sandbox updates, such as, first Monday of each month - Not Scheduled - If a masking job schedule is currently defined for the policy and you want to delete that schedule, meaning you want to unschedule the policy, choose the Not Scheduled option. Not Scheduled is the default selection for the Run Frequency dropdown. - Date: The schedule’s start date. The default selection is today’s date. - For weekly schedules (Run Frequency = Repeat Weekly), the job runs each week on the same day of the week. For example, If you select the 9th which is a Tuesday, the job runs every week on Tuesday. - For monthly schedules (Run Frequency = Repeat Monthly), the job runs each month on the same day of the month. For example, If you select the 28th, the job runs every month on the 28th. - Time: The schedule’s start time. The default selection is the nearest quarter hour, such as, 2:00 PM, 2:15 PM, 2:30 PM or 2:45 PM. When you select a repeating run frequency, Data Mask & Seed always re-runs the masking job at the same start time. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_important.png) Important Scheduled times use your Salesforce user's time zone. To verify or change your time zone, in Setup, go to My Personal Information > Language & Time Zone. # Define New Custom Libraries Create new custom libraries to add values to use to mask text or email fields in a masking policy. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask add-on license.
User Permissions Needed
To create a custom library:
  • Data Mask And Seed User Permission Set License
  • Data Mask And Seed User Permission Set
1. In the Custom Libraries page, select the **New** button. 2. In the New Custom Library dialog, enter the library name, optionally enter a library description, and select a content type. 3. Click **Save** to create the new custom library. The new library is created empty of values and is automatically activated for use. The UI opens the new custom library page in Edit mode. 4. You can continue your work using either one of the following procedures: - [Manually add info entries to a custom library](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_add_to_custom_library.htm&release=264.0.0&type=5 "Use this procedure when you want to individually add a relatively small number of typical or standard values to a custom library. For example, for QA of sandbox masking you only need a library containing 15 female first names.") - [Use Einstein to generate info entries and add them to a custom library](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_add_to_custom_library_with_einstein.htm&release=264.0.0&type=5 "Use this procedure when you want to generate and add to a custom library a large number of values of a specific or unique type. For example, for your QA of sandbox masking you need to generate a custom library containing 100 cities having a population of over 5 million.") # Define Object-Level Help in Salesforce Classic Object-level help overrides the **Help for this Page** links for a custom object or external object with your own help content contained in a Visualforce page. To make object-level help available to all your users, create a Visualforce page that contains your help content. Then edit the custom or external object definition to reference the page. Object-level help becomes available to all your users instantly. ### Required Editions
Available in: Salesforce Classic

Custom objects are available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

Salesforce Connect external objects are available in Developer Edition and, for an extra cost, in Enterprise, Performance, and Unlimited Editions.

User Permissions Needed
To define or change object-level help: Customize Application
1. Create a Visualforce page that contains your help content. 2. Edit the [custom object definition](https://help.salesforce.com/s/articleView?id=platform.dev_objectcreate_task_parent.htm&release=264.0.0&type=5 "Track and store data that’s unique to your organization. Follow different steps, depending on which Salesforce experience you’re using.") or [external object definition](https://help.salesforce.com/s/articleView?id=platform.external_object_define.htm&release=264.0.0&type=5 "Tables in external systems map to external objects in Salesforce, combining all your data and content for users in your org.") that uses the custom help when users click the **Help for this Page** link. 3. For Context-Sensitive Help Setting, select **Open a window using a Visualforce page**. 4. Select the Visualforce page that contains your help content. 5. Save you work. #### See Also - [Object-Level Help in Salesforce Classic](https://help.salesforce.com/s/articleView?id=platform.customhelp_getting_started_olh.htm&release=264.0.0&type=5 "Help your users by providing object-level help for all custom objects and external objects. This way, when your users click the Help for this Page link on your custom object, they’ll find useful information that’s relevant to your custom object. When you add custom help to a custom or external object, the Help for this Page link on those object pages displays your custom help instead of generic help. Your users can access the custom help content from the object home (overview), detail, and edit pages, list views, and related lists.") - [Custom Help Content](https://help.salesforce.com/s/articleView?id=platform.customhelp_about.htm&release=264.0.0&type=5 "Tailor help so that users understand how to work within your unique implementation of Salesforce. You can add learning in the flow of work in several ways. Add custom help for a page, app, object, or org level, or provide links to help in the Utility Bar, Path, or as a text box on the page. Show users custom resources in a Lightning Experience welcome mat when they first log in. Or, to reach users with important news, training, and on-boarding information, add micro-learning prompts and walkthroughs to your app.") # Define or Delete Object Record Filters Create or delete object records filters with an anonymization template in Edit mode. Anonymization processing logically evaluates filters in order of their appearance in the Filters dialog (from \[top AND across\] then successively OR’d to \[bottom AND across\]). Make sure that the anonymization template is in Edit mode by verifying that the enabled Save button has replaced the Edit button. If not, click Edit. 1. With an anonymization template in Edit mode, select or hover over an object from the Anonymized objects panel. 2. Click the object's three dots to open the menu. 3. From the displayed context menu, click Filter. The Filters dialog opens. 4. In the Filter records by fields area of the dialog, add or define conditional, filter statements:![Define the filter](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/anonymization_o_filters.png) The Filter records by fields area provides the following buttons for defining or deleting filters: 1. Click + Add filter or click Add OR to define an initial filter statement 2. Select + (1) to define each additional filter statement to an existing filter statement thereby creating a compound filter statement 3. Click Add OR (2) to define a multiple complex filter 4. Select a filter statement’s Bin (3) button to delete that specific statement 5. Click the X in the OR X (4) button of a filter (appears immediately above the filter) to delete the entire filter 6. Click the Clear All (5) button to delete all the filters that are defined for filtering the fields of the object’s records 5. Click Save to save the updates of the current Filters dialog session, or click Cancel to cancel (NOT save) the updates of the current Filters dialog session # Define Org-Level Help in Salesforce Classic If you rename standard tabs, objects, fields, and other related user interface labels, you can also replace the built-in Salesforce Help with documentation that’s customized specifically for your users. To replace the built-in help, simply provide a URL to your custom help. This feature is available for Salesforce Classic only. ### Required Editions
Available in: Salesforce Classic
Available in: All Editions except Database.com
Users can view this URL whenever they click on any context-sensitive help link on an end-user page or within their personal settings. After you replace the help, the Help & Training link at the very top of every page and all Setup pages will continue to display the Salesforce Help. 1. From Setup, enter Help Settings in the Quick Find box, then select **Help Settings**. 2. Enter the complete URL for your help file that you would like to replace the Salesforce Help. 3. Click **Save**. - When you replace the Salesforce Help with your own help file, the Help & Training link still displays Salesforce Help. However, other than within Setup, the Help for this Page links on all pages are no longer context-sensitive. That is, your help file will open at the same place regardless of which page the user is viewing when they click the link. - You can make your help context-sensitive by taking advantage of the context-specific parameters that are passed with each help link. For example, the help link from the Opportunities tab home page is constructed as follows (without any line breaks): `http://your_help_file.com?loc=help&body=%2Fhelp%2Fdoc%2Fen%2Fhelp2.jsp&target=opp_overview.htm§ion=Opportunities` The values of the `target` and `section` parameters are unique for every page within the application. You can parse these parameters to display context-sensitive help content for your users. # Define Requirements for Stages and Steps in a Flow Approval Process Use requirements to resume an orchestration run when a record changes. Define up to 10 requirements to determine when a step is ready to start or when to mark a stage or an approval step as completed. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To open, edit, or create a flow approval process in Flow Builder:

Manage Flow

AND

Approval Designer

Before you begin, add a Stage element to your flow approval process or a Step resource to a stage. 1. In the Properties panel, select the condition that you can use to create up to 10 requirements to start a step or complete a stage or approval step. | To Use Requirements to | Select | | --- | --- | | Start a step | **When the specified requirements are met, the step starts** | | Complete a step | **When the specified requirements are met, the step is marked Completed** | | Complete a stage | **When the specified requirements are met, the stage is marked Completed** | 2. Set up the logic for the requirements.
Option Behavior for Requirements
All Requirements Are Met If one of the requirements is false, then the requirements aren’t met.
Any Requirement Is Met If one of the requirements is true, then the requirements are met.
Custom Requirement Logic Is Met

When you select this option, provide the requirement logic by entering up to 1000 characters. Use:

  • Numbers to refer to each requirement
  • AND, OR, or NOT to identify which combination of requirements must be true
  • Parentheses to group parts of the string together

If you enter AND, it’s the same as if you selected All Requirements Are Met. If you enter OR, it’s the same as if you selected Any Requirement Is Met. If you enter any other logic, make sure that you include a number for each requirement.

For example, for 1 AND NOT(2 OR 3), the flow evaluates whether the first requirement is true and neither the second nor third condition is true.

3. Define up to 10 requirements. A change to a record referenced in a requirement can trigger the orchestration run to evaluate the status of the current stage and the outstanding steps within it. Some requirement resources don't trigger condition evaluations. For information on requirement resources that don’t trigger condition evaluations, see Events for Record-Change-Triggered Flow Approval Processes in [Considerations for Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_considerations_orchestrations.htm&release=264.0.0&type=5 "Consider entry and exit condition requirements, events triggered by record changes, input values, and email notifications when you design and use flow approval processes.").
Column Header Description
Resource

Options:

  • Select a flow approval process resource.
    • Select a variable.
    • Select a record variable field.
    • Select automatic output from a step.
  • Select a Stage element's status.
  • Select a Step resource's status.
  • For record-triggered flow approval processes, select the $Record global variable.
  • Select a global variable.
Operator The available operators depend on the data type selected for Resource and work the same as operators used for Decision elements. See Flow Approval Processes Operators in Decision Elements.
Value

Resource and Value in the same row must have compatible data types.

Options:

  • Select a flow approval process resource, such as a variable or automatic output from a step.
  • Select a global constant
  • Select a global variable.
  • Enter a literal value.

When you add or subtract a number from a date value, the date adjusts in days, not hours.

# Define Requirements for Stages and Steps in an Orchestration Use requirements to resume an orchestration when a record changes. Define up to 10 requirements to determine when a step is ready to start or when to mark an interactive step or stage complete. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To open, edit, or create an orchestration in Flow Builder: Manage Flow
Before you begin, add a Stage element to your orchestration or a Step resource to a stage. 1. In the Properties panel, select the condition that allows you to create up to 10 requirements to start a step or complete a stage or interactive step. | To Use Requirements to | Select | | --- | --- | | Start a step | **When the specified requirements are met, the step starts** | | Complete a step | **When the specified requirements are met, the step is marked Completed** | | Complete a stage | **When the specified requirements are met, the stage is marked Completed** | 2. Set up the logic for the requirements.
Option Behavior for Requirements
All Requirements Are Met If one of the requirements is false, then the requirements aren’t met.
Any Requirement Is Met If one of the requirements is true, then the requirements are met.
Custom Requirement Logic Is Met

When you select this option, provide the requirement logic by entering up to 1000 characters. Use:

  • Numbers to refer to each requirement
  • AND, OR, or NOT to identify which combination of requirements must be true
  • Parentheses to group parts of the string together

If you enter AND, it’s the same as if you selected All Requirements Are Met. If you enter OR, it’s the same as if you selected Any Requirement Is Met. If you enter any other logic, make sure that you include a number for each requirement.

For example, for 1 AND NOT(2 OR 3), the flow evaluates whether the first requirement is true and neither the second nor third condition is true.

3. Define up to 10 requirements. A change to a record referenced in a requirement can trigger the orchestration to evaluate the status of the current stage and the outstanding steps within it. Some requirement resources don't trigger condition evaluations.
Column Header Description
Resource

Options:

  • Select an orchestration resource
    • Select a variable
    • Select a record variable field
    • Select automatic output from a step.
  • Select a Stage element's status
  • Select a Step resource's status.
  • For record-triggered orchestrations, select the $Record global variable.
  • Select a global variable.
Operator The available operators depend on the data type selected for Resource and work the same as operators used for Decision elements. See Flow Orchestration Operators in Decision Elements.
Value

Resource and Value in the same row must have compatible data types.

Options:

  • Select an orchestration resource, such as a variable or automatic output from a step.
  • Select a global constant
  • Select a global variable.
  • Enter a literal value.

When you add or subtract a number from a date value, the date adjusts in days, not hours.

#### See Also - [Considerations for Orchestrations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_considerations_orchestrations.htm&release=264.0.0&type=5 "Keep these considerations in mind when designing and using orchestrations.") - [_Object Reference for the Salesforce Platform_ : StandardObjectNameChangeEvent](https://developer.salesforce.com/docs/atlas.en-us.244.0.object_reference.meta/object_reference/sforce_api_associated_objects_change_event.htm) # Define Rules for Finding Appropriate Service Resources in Salesforce Scheduler Use a scheduling policy to enforce rules to help your users find the best service resources for an appointment. The scheduling policy ensures that an appointment meets the criteria that the policy rules define. For example, it considers service resources’ skills and service territory membership when searching for service resources. You can modify the Salesforce Scheduler Default Appointment Scheduling Policy or create custom scheduling policies and associate them with flows or use them in API calls. - **[Scheduling Policy Rules in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_scheduling_policies.htm&release=264.0.0&type=5)** Understand the scheduling policy rules that are available in Salesforce Scheduler. - **[Select Scheduling Policy Rules to Enforce](https://help.salesforce.com/s/articleView?id=platform.ls_scheduling_policies_in_flows.htm&release=264.0.0&type=5)** If you don’t create and use a custom scheduling policy in your flows or API calls, the Default Appointment Scheduling Policy is used. You can edit the Default Appointment Scheduling Policy and select the rules that you want to enforce during appointment scheduling. - **[Create and Use Custom Scheduling Policies in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_custom_scheduling_policies.htm&release=264.0.0&type=5)** You can use one or more custom scheduling policies in Salesforce Scheduler flows or API calls. For example, you can create two scheduling policies with different appointment start time intervals. Then, customize your flow to invoke one or the other scheduling policy depending on the work type that users select when scheduling an appointment. - **[Add Service Resource Preferences to Accounts for Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_add_service_resource_preferences_to_accounts.htm&release=264.0.0&type=5)** To promote assignment of required service resources and prevent assignment of excluded service resources to service appointments, designate service resources as required or excluded on accounts. # Define Shift Rules in Scheduling Policy To use shifts instead of the service territory member’s operating hours when determining available time slots, enable shift-specific rules in the scheduling policy. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Scheduling Policies, and then select **Scheduling Policies**. 2. Click **Edit** next to the scheduling policy you created. If you don’t create and use a custom scheduling policy in your flows or API calls, use the Default Appointment Scheduling Policy. 3. To use shifts instead of using the service territory member’s operating hours, select **Use service territory member’s shift**. If you select this option, then the operating hours aren’t considered regardless of whether the operating hours for the service territory member are defined. 4. To show the time slots based on the intersection of the service territory’s operating hours and shifts, select **Use service territory’s operating hours with shifts**. You can only select the Use service territory’s operating hours with shifts option after you’ve selected the Use service territory member’s shift option. 5. Save your changes. #### See Also - [Scheduling Policy Rules in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_scheduling_policies.htm&release=264.0.0&type=5 "Understand the scheduling policy rules that are available in Salesforce Scheduler.") # Define Static Resources You can use static resources to upload content that you can reference in a Visualforce page, including archives (such as .zip and .jar files), images, style sheets, JavaScript, and other files. You can use static resources only within your org, so you can’t host content here for other apps or websites. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create static resources: Customize Application
1. From Setup, in the Quick Find box, enter Static Resources, and then select **Static Resources**. 2. To create a static resource, click **New**. 3. Enter a name that identifies the resource in Visualforce markup. This name can contain only underscores and alphanumeric characters, and must be unique in your org. It must begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note If you reference a static resource in Visualforce markup and then change the name of the resource, the Visualforce markup is updated to reflect that change. 4. If needed, specify a description for the static resource. 5. To upload a static resource, click **Browse** and then select a local file. A single static resource can be up to 5 MB, and an org can have up to 250 MB of static resources, total. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_warning.png) Warning If you use WinZip to compress static resource files, you must install the most recent version. Older versions of WinZip can cause a loss of data. 6. Set the cache control for user sessions, including API and Experience Cloud user sessions. If set to private, the static resource is accessible to all authenticated users. The static resource is stored on the Salesforce server in a user’s individual cache for the duration of the session. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note If a Salesforce Site has guest user profile restrictions based on IP range or login hours, the cache control for static resources is set to private. A Salesforce Site with guest user profile restrictions caches static resources only within the browser. If a previously unrestricted Salesforce Site becomes restricted, it can take up to 45 days for the static resources to expire from the Salesforce cache and any intermediate caches. If set to public, the static resource is accessible to all internet traffic, including unauthenticated users, after it’s cached. The resource is stored on the Salesforce server in a shared cache, which results in faster load times. For technical information about cache control, see the W3C specifications for [HTTP Semantics](https://www.rfc-editor.org/rfc/rfc9110.html). 7. Save your changes. #### See Also - [View and Edit Static Resources](https://help.salesforce.com/s/articleView?id=platform.pages_static_resources_edit.htm&release=264.0.0&type=5 "Edit, delete, and clone static resources.") - [Static Resources](https://help.salesforce.com/s/articleView?id=platform.pages_static_resources.htm&release=264.0.0&type=5 "Static resources allow you to upload content that you can reference in a Visualforce page, including archives (such as .zip and .jar files), images, style sheets, JavaScript, and other files. Static resources can be used only within your Salesforce org, so you can’t host content here for other apps or websites.") - [_Object Reference for the Salesforce Platform_: StaticResource](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_staticresource.htm) # Define Syndication Feeds Syndication feeds give users the ability to subscribe to changes within Salesforce Sites and receive updates in external news readers. Simply by defining a SOQL query and mapping, you can syndicate changes to public data to your end users. You can create one or more syndication feeds for your organization's public sites or any Visualforce page. The syndication feed displays the records specified by a SOQL query. Users can subscribe to the feed and view the feed when they visit the site or page. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Developer, Enterprise, Performance, and Unlimited Editions
User Permissions Needed
Create, edit, or delete a feed definition: Modify All Data
Subscribe to a feed No special user permission required
Define a syndication feed, including what records are returned, and which data from the records is displayed: - Name—A descriptive name for this feed, which distinguishes it from other feeds you may create. Use only letters, numbers, or the underscore character “\_”. Do not use more than one underscore character in a row. - Description—Describe the feed. For example, “Account first name, last name, and region for the last ten accounts created or edited.” - Query—The SOQL query that defines which records are returned to the syndication feed. To ensure fast performance, some limitations on the SOQL query are imposed. - If the SOQL query does not specify a limit, then no more than 20 records are returned. - Query limits can't exceed 200 results. If you make a query with a limit beyond this number, only the first 200 records are returned. - If the SOQL query does not have an ORDER BY value specified, records are ordered by the LastModifiedDate value if there is one, or by SystemModstamp value if not. - `COUNT` is not supported. - Aggregate queries are not supported. For example, this query cannot be used in a syndication feeds SOQL query: ```sql SELECT Name, (SELECT CreatedBy.Name FROM Notes) FROM Account ``` - You can use bind variables, a variable whose value is supplied in the URL. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The guest user must have appropriate sharing and field-level security access or you cannot save your query, because the Lightning platform verifies access and sharing before saving. - Mapping—Because syndication feeds use the ATOM web publishing protocol, you must provide a mapping value that matches objects and fields on the returned records with ATOM constructs. Note that all values must be string literals. You can also use bind variables, a variable whose value is supplied in the URL. For more information, see [ATOM-Object Mapping](https://help.salesforce.com/s/articleView?id=platform.feeds_creating.htm&release=264.0.0&type=5) - Max Cache Age Seconds—Because many users may access a feed at the same time, Salesforce caches the feed data, for 3600 seconds by default. You can modify this to a minimum of 300 seconds, or for as long as you wish. Query results that are older than the time specified here are dropped, and a new query is run on the next request for that information, that is, the next time a user opens a page containing a feed that they have subscribed to. - Active—Select this checkbox to make the feed available for subscription. Once a feed is active, users have the option of subscribing to it. ## ATOM-Object Mapping You must specify a mapping in the syndication feed definition. The mapping relates ATOM constructs such as entry title to the corresponding value in a record, for example, “Account Name.” A full set of mappings represents a news feed, and the query represents the content of each news item in a feed. For example, Lead records created today or Contacts with updated Account information. A feed element is the envelope for each part of a news item, and an entry element is the contents of the envelope. Mapping also allows you to apply short labels to various fields for display purposes. The following table lists each ATOM and object element and explains what values should be provided:
Feed Element Entry Element Description
fa   Required only if ea (entry author) is not specified. Feed author. For example, fa:"Acme Feed Author Admin Mary" shows the feed author as Admin Mary.
fid   Optional (because default value is supplied). Id of the feed. By default, this value is the public site URL. If you specify a value, it must be a valid internationalized resource identifier (IRI). An IRI is a URL generalized to allow the use of Unicode.
fl   Optional (because default value is supplied). Feed link. For example, fl:"https://www.salesforce.com". News readers usually interpret this element by linking the feed title to this URL.
fst   Optional. Feed subtitle. For example, &map=ft:"Newest Opportunities",fst:"Western Division" shows the feed title Newest Opportunities and subtitle Western Division.
ft   Required. Feed title. For example, ft:"Newest Opportunities".
  ea Required only if fa (feed author) is not specified. Entry author. For example, ea:"Account created by: " + Account.CreatedBy .
  ec

Required. Entry content. For example,ec:"description for " Name "<br>" Description shows the value of the Name field with additional text. The output of a feed for this example resembles the following:

description for Ajax Industries Description
  ect Optional. Entry content of type text, html, or xhtml. For example, ect: html for HTML content. Default is text.
  el Optional. Entry link. Must be a valid URI. This value is usually a link to another representation of the content for the entry. For example, the link could be to a record in the Salesforce user interface. News readers usually interpret this element by linking the entry title to this URL For example, el:"Account.URl".
  es

Optional. Entry summary. An optional summary of the entry content. For example, et: Account.Name, es: Account.Name + "’s account number, website, and description", ec: Account.AccountNumber + " " + Account.Website + “ “ + Account.Description

If not specified, news readers display the content defined using the ec element.

  est Optional. Entry summary of type text, html, or xhtml. For example, est: html for HTML content. Default is text. Do not specify a value unless es has been specified.
  et Required. Entry title, a field name. For example, et:Name.
  eu

Optional. By default, the required ATOM element <updated> value is automatically provided by the LastModifedDate of the main entity being queried; usually the object in the main FROM clause of the SOQL query. This value indicates the last time an entry or feed was modified. If you wish to change this default behavior, you can specify a different object or field's LastModifedDate be used. For example:

  • Query: SELECT Id, Name, MyDate__c FROM AccountMapping Parameter: eu: MyDate__c
  • Query: SELECT Id, Lastname, Account.LastMOdifiedDate FROM ContactMapping Parameter: eu: Account.LastModifiedDate
The following example shows a valid mapping values for a syndication feed: ``` ft: "Harry Potter", et: Name, ec: "description for " Name "
" Description, el: "/" Id, ect: html ``` Feeds are displayed in the guest user context of the public site where they are displayed. Therefore, if you have used custom labels to manage internationalization, and specified labels in your mapping, users see those labels displayed in the language of the guest user. You can only use string literals in feed mapping. You cannot use, for example, date literals such as `TODAY` or `LAST_WEEK`. After you have defined a feed, you should test it, and then make the feed active by selecting the Active checkbox as described above. For more information about testing, see [Testing Syndication Feeds](https://help.salesforce.com/s/articleView?id=platform.feeds_bind_test.htm&release=264.0.0&type=5 "Before you enable a feed for customers, test the feed definition."). ## Using Bind Variables for Queries and Mapping You can use bind variables in the `WHERE` clause of the SOQL query. Bind variables must be in the following form: ``` {!var_name} ``` The following query uses a bind variable named `accountID`. ```sql SELECT Name, Description FROM Account WHERE Id = {!accountID} ``` Note that this is not the literal name of the field, but an arbitrary name. At run time, the value for `accountID` is passed to the query from the URL. This feed is accessed from the following URL and passes in the account ID as part of the query string parameter: ``` site_URL/services/xml/My'Account'Feed?accountId=0013000000BmP4x ``` You can also use bind variables for mapping values. The following implementation details apply to the use of bind variables for queries: - You cannot use more than 20 bind variables in a feed definition, queries and mapping combined. - The bind variable name cannot be more than 100 characters. - You can use a bind variable only on the right side of a filter operation to represent part of a string. Because it represents part of a string, it must be in quotes. For example, the following is a valid query: ```sql SELECT Id, Name FROM Account WHERE Name = '{!myBindVariable}' ``` The following queries are not valid, because the bind variable is not in a valid position, and is not functioning as the variable for a literal string: ```sql SELECT Id, Name FROM Account WHERE {!myFieldName} = 'Joe' SELECT Id, {!myFieldName} FROM Account WHERE IsDeleted = false ``` - You cannot use a bind variable to represent a field name. This means a bind variable cannot be use on the left side of a filter operation. - You cannot use a bind variable to change the meaning or structure of a query for security reasons. Any special characters you specify in the bind replacement value are interpreted as literal characters when the query is evaluated. ## Custom Labels and Feeds For feeds that need to be localized into different languages, you can use custom labels to define the string in multiple languages. Then in the mapping definition, you simply refer to the custom label. When a request comes in, the custom label inspects the guest user language and returns the translated text, which is used in the mapping. Custom labels can be specified in a field with the following syntax: ``` map_element_name: "{!$LABEL.custom_label_name}" ``` To specify a custom label in a feed, build the label via Custom Labels in Setup. For easy identification, you can name the custom label after the mapping element that takes its value, for example `feedTitle` for the `ft` element. Then specify the custom label in the feed mapping. For example, assume that you create a feed containing information on all the houses your company is trying to sell. For English users, the title of the feed should be “The Houses,” but for Spanish users, the title of the feed should be “Las Casas.” You would create a custom label, for example, `feedTitle`. In English, its value is “The Houses,” and the Spanish value is “Las Casas.” Then, in the feed mapping definition, specify the following for the feed title `fc:`: ``` ft: "{!$LABEL.feedTitle}" ``` ## Visualforce and Feeds To add a feed to a Visualforce page, use the Visualforce standard HTML features. For example, assuming the Visualforce page is located in the base directory of the site, it can contain a tag like the following: ```html My feed ``` The text `My feed` links to the feed. If you want to link the feed from an image, include an inline image tag similar to the following: ```html ``` You must upload your own image. To add the icon to the address bar, add the link tag to the `` tag of the Visualforce page: ```markup ``` - **[About Syndication Feeds](https://help.salesforce.com/s/articleView?id=platform.feeds_overview.htm&release=264.0.0&type=5)** Syndication feeds give users the ability to subscribe to changes within Salesforce Sites and receive updates in external news readers. Simply by defining a SOQL query and mapping, you can syndicate changes to public data to your end users. You can create one or more syndication feeds for your organization's public sites or any Visualforce page. The syndication feed displays the records specified by a SOQL query. Users can subscribe to the feed and view the feed when they visit the site or page. - **[View Syndication Feeds](https://help.salesforce.com/s/articleView?id=platform.feeds_viewing.htm&release=264.0.0&type=5)** View the syndication feed definition, including what records are returned, and which data from the records is displayed. - **[Test Syndication Feeds](https://help.salesforce.com/s/articleView?id=platform.feeds_bind_test.htm&release=264.0.0&type=5)** Before you enable a feed for customers, test the feed definition. # Define the Process Properties The process properties uniquely identify your process. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). 1. From Setup, in the Quick Find box, enter Builder, and select **Process Builder**. 2. Click **New**, or click the process name and then click Edit Properties. 3. Define the process properties by completing the fields.
Field Description
Process Name

The name for your process, up to 255 characters.

This name appears in the process management page, so name your process to differentiate it from other processes. To see the page in Setup, enter Builder in the Quick Find box, then select Process Builder.

API Name

The name that the API and managed packages use, up to 79 characters.

This name must be unique across all processes and flows. The name must begin with a letter and use only alphanumeric characters and underscores. It can't include spaces, end with an underscore, or have two consecutive underscores.

After it's saved, you can’t change the process’s API name.

Description

Optional. A description for your process.

The description also appears in the process management page. It’s intended to help you differentiate between processes, such as to explain what a process does.

The process starts when

Identifies when the process begins. You can set your process to start when:

  • A record changes
  • A platform event message is received
  • It’s invoked by another process

This field is available only when creating a process.

Template

Specifies whether the process is a template. When a template is installed from a managed package, the subscriber can view and clone the process and customize the clones. Non-template processes that are installed from managed packages can only be activated and deactivated.

Suppose that your company needs a process that differs slightly for each country where you do business. You can create or install a template for the base process and then clone it to create each country-specific process. Even if you don’t use managed packages, you can use this field to clearly identify the base process.

This field is available only when editing a process.

API Version for Running the Process

Determines which versioned run-time behavior improvements the process adopts.

Changing this field requires the Manage Flow permission. Before you select a new API version, review all run-time improvements that were delivered between the currently selected API version and the new API version. You can find all flow and process run-time improvements for an API version in the Salesforce Release Notes.

By default, when you create a process, it runs in the latest API version. If you clone an existing process as a new process or process version, the existing process’s run-time API version is used in the new process or process version.

The run-time API version doesn’t change as future Salesforce releases roll out. You decide when, if ever, to change the API version for running each process. This field lets you test and upgrade your processes one by one, and at your own pace. You can even opt to never adopt versioned updates for one or all your processes.

4. Click **Save**. # Define the Run Order of Record-Triggered Flows for an Object Specify a trigger order value to determine the run order of before-save or after-save flows for the same object. ### Required Editions
View supported editions.
Declaratively configure a flow to run before or after another flow. Order your flows to help ensure consistent results without creating overly complex flows, letting you divide automation by teams or logical owners. When you save a before- or after-save record-triggered flow, specify a trigger order value from 1 to 2,000. If a flow is already saved, specify a trigger order value in the flow’s version properties. #### See Also - [Manage Record-Triggered Flows](https://help.salesforce.com/s/articleView?id=platform.flow_trigger_explorer.htm&release=264.0.0&type=5 "See, manage, reorder, and filter your record-triggered flows with Flow Trigger Explorer. Flow Trigger Explorer shows all the flows that are associated with a specified object and that run when a record is created, updated, or deleted. You can navigate between a flow in Flow Builder and other flows that run under the same circumstances.") - [_Apex Developer Guide_: Triggers and Order of Execution](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers_order_of_execution.htm) ## Guidelines for Defining the Run Order of Record-Triggered Flows for an Object Learn guidelines for configuring a record-triggered flow to run before or after another record-triggered flow. - You can define a trigger order value only for before-save or after-save flows on an object. Trigger order affects only the specified object's flows with the same trigger type. - Trigger order values always respect order of execution rules. For example, you can make an after-save flow run before other after-save flows, but you can’t make an after-save flow run before a before-save flow or an Apex trigger, even if the trigger order value is lower. - Flows with the same trigger (before- or after-save) on the same object with trigger order values from 1 to 1,000 run in ascending order (1, 2, 3, and so on). Multiple flows with the same trigger order value run in alphabetical order based on the flows’ API names. - Flows without trigger order values run next and in the order of their activation dates. Flows created in Winter ’22 and earlier run in this order, unless you define a trigger order value for them. - Flows with trigger order values from 1,001 to 2,000 run next and in ascending order. Multiple flows with the same trigger order value run in alphabetical order based on the flows’ API names. - When you order a large number of flows, a best practice is to evenly distribute the trigger order values, for example, 10, 20, 30, or 100, 200, 300. Then later, you can easily slot another flow in between, for example, between 10 and 20. This practice can help you avoid changing the trigger order values for pre-existing flows. - Activating, deactivating, or changing the order for one flow can cause the order for other flows to automatically update. Ordering record-triggered flows has no direct effect on any associated scheduled or asynchronous paths. # Define Time Slots for Concurrent Scheduling Define time slots for concurrent appointments and specify the maximum number of appointments that can be made in a time slot. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. On the Operating Hours tab, select the operating hours record you want to configure concurrent scheduling for. 2. On the record page, click **Edit**. 3. To add a time slot for concurrent appointments, under Set Concurrent Service Appointment Windows, click **Add Row**. 4. Select a day, start time, end time, maximum number of appointments, and appointment topic for the time slot. Add more rows as required. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Concurrent time slots are applicable only to service territory members; they aren’t applicable to service territories or work types. As a result, when viewing a service territory or work type record, you don’t see the concurrent time slots in their operating hours. And during appointment scheduling, only the concurrent time slots in the service territory member’s operating hours are available for selection. Any concurrent time slots in the work type’s or service territory’s operating hours aren’t available. 5. Save your changes. #### See Also - [Set Up Operating Hours in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_set_up_oh.htm&release=264.0.0&type=5 "Operating hours represent the time slots during which appointments can be scheduled. For example, if a bank allows mortgage appointments at a branch only Monday through Wednesday, from 8 AM to 2 PM, create operating hours for the mortgage work type that reflect this requirement.") # Define Validation Rules Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record. A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True” or “False”. Validation rules also include an error message to display to the user when the rule returns a value of “True” due to an invalid value. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To view field validation rules: View Setup and Configuration
To define or change field validation rules: Customize Application
Before creating validation rules, review the [Validation Rule Considerations](https://help.salesforce.com/s/articleView?id=platform.fields_validation_considerations.htm&release=264.0.0&type=5 "Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record. A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True” or “False”. Validation rules also include an error message to display to the user when the rule returns a value of “True” due to an invalid value. Review these considerations before implementing validation rules in your organization."). 1. From the management settings for the relevant object, go to Validation Rules. 2. In the Validation Rules related list, click **New**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The detail page of a custom activity field does not list associated validation rules. To edit the validation rule for a custom activity field, select the validation rule from Setup by entering Activities in the Quick Find box, then selecting **Activities** and choose **Task Validation Rules** or **Event Validation Rules**. 3. Enter the [properties of your validation rule](https://help.salesforce.com/s/articleView?id=platform.fields_validation_rules_fields.htm&release=264.0.0&type=5 "A list of fields and description for validation rules."). 4. To check your formula for errors, click **Check Syntax**. #### See Also - [Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_about_field_validation.htm&release=264.0.0&type=5 "Improve the quality of your data using validation rules. Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record.") - [Clone Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_cloning_field_validation_rules.htm&release=264.0.0&type=5 "Create new validation rules quickly by using existing rules as your starting point.") - [Tips for Writing Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_validation_rules_tips.htm&release=264.0.0&type=5 "Keep these tips in mind when writing validation rules.") - [Examples of Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_field_validation_formulas.htm&release=264.0.0&type=5 "Review examples of validation rules for various types of apps that you can use and modify for your own purposes. Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record.") # Define What Data to Extract from Your Documents Document Processing Configurations define the structure and rules for extracting data from your documents. By creating these configurations, you define what information to look for and how to organize the extracted data. This step is essential before you can process documents in your flows or set up review workflows. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the MuleSoft for Flow: IDP add-on. Professional Edition requires the API access add-on. To purchase, contact your Salesforce account executive.
Document processing features require Einstein generative AI turned on in Setup, and Data 360 provisioned and enabled for your org.
MuleSoft for Flow: IDP features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
User Permissions Needed
To create, read, edit, and delete document processing configurations: Manage Document Processing Configurations
Before you define what data to extract from your documents, ensure you have: - Sample documents of the type you want to process (PDFs, images, or scanned documents) - A list of the specific data fields you want to extract from your documents - Knowledge of the data types for each field (Text, Number, Currency, or Date) - Understanding of the document structure and layout you want to process Create Document Processing Configurations in the Automation App to define the instructions and output structure for each type of document to process. You can upload documents and test the extraction process while creating the Document Processing Configuration. If you plan to use the Only when needed option in Human Review Settings, a review is created only when one or more extracted fields or table rows fall below the confidence threshold. Use the confidence scores in the test results to judge which fields are likely to need review. See [Flow Core Action: Extract Data from Document](https://help.salesforce.com/s/articleView?id=platform.automate_flow_ref_elements_actions_extract_data_from_document.htm&release=264.0.0&type=5 "Extract structured data from documents using AI-powered analysis, with optional human review before the flow continues."). 1. In the Automation app, select the **Document Processing**tab. 2. Click **New Document Processing Configuration**. 3. Click **Upload Files** and select an example document to use as a basis for creating a Document Processing configuration. Click **Done** when the upload finishes. 4. Click **Using Auto-Extraction** to automatically add fields and tables based on the uploaded document. This is the recommended approach as it scans the sample document and automatically identifies and extract all found fields. 5. **Optional:** If needed, manually add additional fields and tables to the configuration. 1. In the Outputs panel, click **Fields** and click **Add Field**. 2. Provide Name, Field Type (string, number, boolean), and optionally Prompt Instructions with additional details for Einstein to consider during the extraction process. 3. Click **Add**. 4. Continue adding fields as necessary. 5. To add tables, in the Outputs panel, select the **Tables** tab. 6. Click **Add Table**. 7. Provide Name, optionally Prompt Instructions, and click **Add**. 8. Click the table name and select the **Columns** tab. 9. Click **Add Column**. 10. Provide Name, Field Type, optionally Prompt Instructions, and click **Add**. You can add fields and tables manually after auto-extraction or choose to create the configuration entirely manually by clicking **Create Manually** instead of **Using Auto-Extraction**. 6. Click **Test** to analyze your uploaded document and see the extracted table data. The test results show extracted values for each field and table, along with confidence scores indicating the accuracy of the extraction. Reviewers see the same confidence percentage for each field in the Document Review window when a flow requires human review. 7. After you finish creating the configuration, provide a name for your Document Processing Configuration and click **Save**. Your Document Processing Configuration is now saved and ready to use. The configuration defines all the fields and data types to extract from your documents. You can verify the configuration is complete by checking that: - All required fields are defined with appropriate data types - The test analysis shows accurate extraction results - Confidence scores are acceptable for your use case ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example Here's an example of field configurations for processing invoices: | Field Name | API Name | Field Type | Prompt Instruction | | --- | --- | --- | --- | | Company Name | CompanyName | Text | Extract the vendor or company name from the invoice header | | Order Number | OrderNumber | Text | Find the invoice or order number, usually near the top of the document | | Purchaser Name | PurchaserName | Text | Extract the customer or purchaser name from the billing section | | Total | TotalAmount | Currency | Find the total amount due, usually at the bottom of the invoice | | Tax | TaxAmount | Currency | Extract the tax amount if listed separately | This example shows how to structure field definitions for common invoice data. The prompt instructions help Einstein understand where to look for each piece of information in the document. After you define what data to extract from your documents, add the Extract Data from Document action to your flow and set up routing to human review with Human Review Settings. See [Set Up Document Extraction and Routing to Human Review](https://help.salesforce.com/s/articleView?id=platform.automate_flow_task_setup_document_extraction_routing.htm&release=264.0.0&type=5 "Add the Extract Data from Document action to your flow, configure the document and configuration inputs, store the output, and route the extracted data to human review."). # Define Your Business Use Case Identify which Salesforce production orgs or sandboxes to use as data sources or destinations for seeding jobs. Determine the most suitable seeding templates, whether pre-defined templates (starter, CPQ, FSL, nCino) or custom Levels or Nodes templates. And determine which sandboxes need anonymization along with the object field types to be anonymized. Seed relevant data from production orgs or sandboxes into Developer, Developer Pro, Partial, and Full sandboxes, and even into production orgs. - Plan for Success: It’s important to consider and identify what data needs to be seeded and what data needs to be anonymized. Reuse seeding and anonymize templates, update existing templates, as needed, to suit current product development needs, anonymize sensitive data, continuously update data, and manage seeding job size. - Define Seeding Needs: Identify the types of objects and their records that are needed for sandbox development. Determine how often and at what scale these objects/records will be used for testing. Check if the objects contain fields that hold sensitive/PII data, for example, credit card numbers, phone numbers, or email addresses. Make note of these object fields to later create and configure an anonymization template to apply on that data and ensure it is protected. - Common Use Cases: Identify a comprehensive set of use cases for the data, both typical, custom and special cases. - [Seeding Attachment, Document, and ContentDocument Objects](https://help.salesforce.com/s/articleView?id=platform.seeding_o_seed_file_objects.htm&release=264.0.0&type=5 "Seed dummy content in Salesforce to prevent users from seeing actual data and comply with PII protection requirements. When using Nodes templates to seed the ContentDocument object, you can choose to seed dummy content or real content. The Attachment, Document, and ContentDocument objects represent uploaded files."): Replace original files with dummy files of the same type during seeding, safeguarding PII by preventing access to actual data. For ContentDocument objects, you have the option to seed original files. - Seed using pre-defined Nodes templates - starter templates for common objects, or templates that specifically seed either [CPQ objects](https://help.salesforce.com/s/articleView?id=platform.seeding_o_predefined_nodes_template_cpq.htm&release=264.0.0&type=5 "The template table provides you with a description and details about the predefined Nodes Template tailored for seeding use in a Salesforce-CPQ data environment."), [FSL objects](https://help.salesforce.com/s/articleView?id=platform.seeding_o_predefined_nodes_template_fsl.htm&release=264.0.0&type=5 "See a description and details about the predefined Nodes Template tailored for seeding use in a Salesforce-FSL data environment."), or [nCino objects](https://help.salesforce.com/s/articleView?id=platform.seeding_o_predefined_nodes_template_ncino.htm&release=264.0.0&type=5 "The table provides a description and details about each of the predefined Nodes Templates that are tailored for seeding use in a Salesforce-nCino data environment."). - Seed data to Full Copy sandboxes, on a recurring basis, for the most live and up to date production data by scheduling daily and/or weekly seeding jobs. - Seed the most relevant production data to developer environments for your team to test specific use cases with precision and efficiency. - Anonymize email addresses to avoid accidental emails being sent to contacts while testing using sandbox data. - Perform either standalone anonymization jobs or anonymize as part of a seeding job. # Defining Custom S-Controls S-controls provide a flexible, open means of extending the Salesforce user interface, including the ability to create and display your own custom data forms. ### Required Editions
Available in: Salesforce Classic
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, and delete custom s-controls: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important Visualforce pages supersede s-controls. Organizations that haven't previously used s-controls can’t create them. Existing s-controls are unaffected and can still be edited. An s-control can contain any type of content that you can display or run in a browser, for example, a Java applet, an ActiveX control, an Excel file, or a custom HTML Web form. The custom s-control library is a place where you can store and upload content for use in many areas within Salesforce such as, custom links, Web tabs, custom buttons, and dashboards. 1. From Setup, enter S-Controls in the Quick Find box, then select **S-Controls**. 2. To create a new custom s-control, click **New Custom S-Control**. 3. To change an existing custom s-control, click **Edit**. 4. Enter s-control attributes. 5. To validate all Salesforce merge fields and functions, click **Check Syntax**. 6. Click **Save** when you finish or click **Quick Save** to save and continue editing. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note If you have a namespace prefix and your s-control references merge fields without their namespace prefix, Salesforce automatically prepends them with your namespace prefix. 7. Create a custom button or link to display the custom s-control to your users. Alternatively, create a Web tab using the custom s-control, add the s-control to a page layout, or add the s-control to a dashboard. You can also use an s-control as online help content for a custom object. - **[About S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_about_scontrols.htm&release=264.0.0&type=5)** Use s-controls to add your own functionality to your Salesforce organization. Whether you are integrating a hosted application of your own or are extending your current Salesforce user interface, use s-controls to store your code or refer to code elsewhere. Custom s-controls can contain any type of content that you can display in a browser, for example a Java applet, an Active-X control, an Excel file, or a custom HTML Web form. - **[View and Edit S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_editing_scontrols.htm&release=264.0.0&type=5)** View and make changes to the details of a custom s-control. - **[Custom S-Control Attributes](https://help.salesforce.com/s/articleView?id=platform.dev_scontrol_fields.htm&release=264.0.0&type=5)** Find out about custom S-Control attributes. - **[Delete Custom S-Controls](https://help.salesforce.com/s/articleView?id=platform.deleting_custom_s-controls.htm&release=264.0.0&type=5)** S-controls provide a flexible, open means of extending the Salesforce user interface, including the ability to create and display your own custom data forms. - **[Tips on Building S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_tips_on_building_scontrols.htm&release=264.0.0&type=5)** Use these tips when building s-controls. - **[Useful S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_useful_scontrols.htm&release=264.0.0&type=5)** Use these samples to get started using s-controls. - **[Merge Fields for S-Controls](https://help.salesforce.com/s/articleView?id=platform.integrate_merge_fields_sControls.htm&release=264.0.0&type=5)** A merge field is a field you can put in an email template, mail merge template, custom link, or formula to incorporate values from a record. - **[How Do Visualforce Pages Compare to S-Controls?](https://help.salesforce.com/s/articleView?id=platform.pages_intro_vs_scontrols.htm&release=264.0.0&type=5)** Visualforce pages are considered the next-generation of s-controls and should be used instead of s-controls whenever possible, both for their increased performance and the ease with which they can be written. #### See Also - [About S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_about_scontrols.htm&release=264.0.0&type=5 "Use s-controls to add your own functionality to your Salesforce organization. Whether you are integrating a hosted application of your own or are extending your current Salesforce user interface, use s-controls to store your code or refer to code elsewhere. Custom s-controls can contain any type of content that you can display in a browser, for example a Java applet, an Active-X control, an Excel file, or a custom HTML Web form.") - [View and Edit S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_editing_scontrols.htm&release=264.0.0&type=5 "View and make changes to the details of a custom s-control.") - [Useful S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_useful_scontrols.htm&release=264.0.0&type=5 "Use these samples to get started using s-controls.") # Defining Screen Component Options With Choice Resources Define options for users to select from in screen flow components like picklists, radio buttons, and checkbox groups. Create choices to control the options users see and the values stored when they make selections. ### Required Editions
View supported editions.
When you add a selection component to a screen, you populate its options using choice resources. Choice resources give you flexibility in how you present options and what data gets stored when users make selections. You can also enhance choices with visual elements like icons to help users identify and select options faster. Learn more in [Help Users Select Faster by Using Visual Cues in Choices](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_help_users_select_faster_by_using_visual_cues_in_choices.htm&release=264.0.0&type=5 "Associate familiar icons with choices to help users make selections faster. Choice resources with icons display as dropdown lists in Choice Lookup components and as tiles in Visual Picker components at run time. Icon-based choice resources are supported in all screen-based flows except Field Service Mobile and Discovery Framework Data Capture.") - **[Choosing Which Choice Resource to Use in Screen Components](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_using_choice_resources_with_flow_screen_components.htm&release=264.0.0&type=5)** Choice resources display selectable options in flow screens. Choice resources can appear as radio buttons, checkboxes, or picklist fields. There are several options for choice resources that you can use, depending on your business need. We recommend using a choice resource only when you can’t use a record choice set or a picklist choice set. # Defining Visualforce Custom Components Visualforce components are small, reusable pieces of functionality—think widgets, panels, user interface elements, that kind of thing—that you use in Visualforce page markup. You can use standard Visualforce components, and create your own custom components. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create custom components: Customize Application
1. In Salesforce from Setup, enter Components in the Quick Find box, then select **Visualforce Components**. 2. Click **New**. 3. In the Label text box, enter the text that should be used to identify the custom component in Setup tools. 4. In the Name text box, enter the text that should identify this custom component in Visualforce markup. This name can contain only underscores and alphanumeric characters, and must be unique in your org. It must begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. 5. In the Description text box, enter a text description of the custom component. This description appears in the component reference with other standard component descriptions as soon as you click **Save**. 6. In the Body text box, enter Visualforce markup for the custom component definition. A single component can hold up to 1 MB of text, or approximately 1,000,000 characters. 7. Click **Version Settings** to specify the version of Visualforce and the API used with this component. You can also specify versions for any managed packages installed in your organization. 8. Click **Save** to save your changes and view the custom component’s detail screen, or click **Quick Save** to save your changes and continue editing your component. Your Visualforce markup must be valid before you can save your component. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note You can also create a custom component in Visualforce development mode by adding a reference to a custom component that doesn’t yet exist to Visualforce page markup. After saving the markup, a quick fix link appears that allows you to create a new component definition (including any specified attributes) based on the name that you provided for the component. For example, if you haven’t yet defined a custom component named `myNewComponent` and insert `` into existing page markup, after clicking **Save** a quick fix allows you to define a new custom component named `myNewComponent` with the following default definition: `

Congratulations

This is your new Component: mynewcomponent
` You can modify this definition from Setup by entering Components in the Quick Find box, then selecting **Visualforce Components**, and then clicking **Edit** next to the myNewComponent custom component. #### See Also - [Visualforce Components](https://help.salesforce.com/s/articleView?id=platform.pages_custom_components.htm&release=264.0.0&type=5 "Visualforce components are small, reusable pieces of functionality—think widgets, panels, user interface elements, that kind of thing—that you use in Visualforce page markup. You can use standard Visualforce components, and create your own custom components.") # Delegate Account Management to an External User Give external users the power to manage account members and account brand information. Administrators, internal users, and partner users with the Delegated External User Administrator permission can create and edit a member, reset a member’s password, and activate or deactivate a member. They can also upload brand logos and save company information for co-branded email templates to partner users, and create marketing campaigns, deal notifications, and websites. ### Required Editions
Available in: Enterprise, Performance, Unlimited, and Developer Editions
Admin Permissions Needed
To manage external users: Manage External Users
To create, edit, and delete profiles: Manage Profiles and Permission Sets
To administer other members of the same site, as an external user: Delegated External User Administrator
To allow external users with Delegated External User Administrator permission to access member and brand information, add the **Account Brand** and **Members** related lists to the Accounts detail page. Select the icon of the account that you’re managing, and select **Account Management**. ![Account Management dropdown from profile menu](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/access/images/account_management_dropdown.png) - **[Allow External Users to Manage Partner Members](https://help.salesforce.com/s/articleView?id=platform.networks_partner_members.htm&release=264.0.0&type=5)** In addition to administrators and internal users, partner users with the Delegated External User Administrator permission can activate, deactivate, create, and edit members. They can also reset member passwords. - **[Allow External Users to Manage Partner Brands](https://help.salesforce.com/s/articleView?id=platform.networks_partner_branding.htm&release=264.0.0&type=5)** In addition to administrators and internal users, partner users with the Delegated External User Administrator permission can update and access partner brand information. They can also create co-branded emails, marketing campaigns, websites, and apps for channel sales from information uploaded to the Branding tab. # Delegate Administrative Duties Use delegated administration to assign limited admin privileges to users in your org who aren’t administrators. For example, let’s say you want the Customer Support team manager to manage users in the Support Manager role and all subordinate roles. Create a delegated admin for this purpose so that you can focus on other administration tasks. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To manage delegated administration: Customize Application
To be a delegated administrator: View Setup and Configuration
Delegated administrators can: - Create and edit users in specified roles and all subordinate roles. User editing tasks include resetting passwords, setting quotas, creating default opportunity teams, and creating personal groups for those users. - Unlock users. - Assign users to specified profiles. - Assign or remove permission sets for users in their delegated groups. - Assign or remove permission set groups for users in their delegated groups. - Create public groups and manage membership in specified public groups. - Log in as a user who has granted login access to the administrator. - Manage custom objects and customize nearly every aspect of a custom object. However, a delegated admin can’t create or modify relationships on the object or set org-wide sharing defaults. - Administer users across all delegated groups to which the delegated admin is assigned. For example, Sam Smith is specified as a delegated administrator in two delegated groups, Group A and Group B. Sam can assign a permission set or public group from Group A to users in Group B. - Create, edit, and delete field sets in Salesforce Classic even if the delegated admin isn’t assigned the Customize Application permission. - Create, edit, and delete records in a custom metadata type. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note When delegating administration, keep the following in mind. Delegated administrators: - Can’t assign profiles or permission sets with the Modify All Data permission - Don’t see the None Specified option when selecting a role for new users - Need access to custom objects to access the merge fields on those objects from formulas - Can’t modify permission sets - Must be assigned the Manage Roles permission to change the role of portal account owners - Can’t activate or deactivate users that have the Modify All Data permission assigned. - Retain all privileges from their assigned user permissions, as permissions are additive and being a delegated administrator doesn’t restrict access granted elsewhere. For example, if a delegated administrator is granted the Manage Users or Customize Application permissions, that user can perform actions outside the scope that they’re allowed as a delegated administrator. To delegate administration of particular objects, use object permissions, such as “View All Records” and “Modify All Records,” instead. #### See Also - [Define Delegate Administrators](https://help.salesforce.com/s/articleView?id=platform.delegating_user_administration.htm&release=264.0.0&type=5 "Enable delegated administrators to manage users in specified roles and all subordinate roles. You can assign specified profiles to those users, and log in as users who have granted login access to administrators. A delegated administration group is a group of users who have the same admin privileges. These groups are not related to public groups used for sharing.") # Delegate Site Administration to an External User Delegate the administration of your site to an external user to increase your site’s capacity for growth and reduce bottlenecks. External administrators can add, update, and disable members, and they can reset passwords and manage user permissions. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
Applies to: LWR, Aura, and Visualforce sites
Permissions Needed
To manage external users: Manage External Users
To create, edit, and delete profiles: Manage Profiles and Permission Sets
Keep these considerations in mind when delegating an external user as a site administrator. - You can grant delegated external user administration to users with Partner Community, Customer Community Plus, Gold Partner, Enterprise Administration, or Customer Portal Manager licenses. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note These permissions are automatically enabled when a user is granted the “Delegated External User Administration” permission. They aren’t automatically disabled if the “Delegated External User Administration” permission is disabled. - The “[Portal Super User”](https://help.salesforce.com/s/articleView?id=platform.networks_customer_super_user_access.htm&release=264.0.0&type=5 "Enable super user access so that users with Partner Community or Customer Community Plus licenses in your sites can access more records and data.") permission for users with profiles using Customer Community Plus licenses - The “View Roles and Role Hierarchy” permission for all users - Custom fields aren’t visible to a delegated external user administrator when they view user detail records in Salesforce Classic or Lightning Experience. - To access the account that they’re managing, users with the “Delegated External User Administrator” permission require Read access or greater. - Delegated admins with Customer Community Plus licenses can remove the Role field from the Users compact layout to edit members. 1. From Setup, in the Quick Find box, enter Profiles, and then select **Profiles**. 2. Select a profile with a supported license and clone it, or click a custom profile. 3. Click **Edit**. 4. Select **Delegated External User Administrator**. 5. Click **Save**. 6. In the Delegated External User profiles related list, click **Edit**. 7. Select the profiles that you want the delegated external user administrator to manage. 8. In the Delegated External User Permission Sets, click **Edit**. 9. Select the permissions that you want the delegated external user administrator to manage. 10. Save your work. External administrators can enable or disable a user or reset passwords from the Experience Cloud site that they belong to by clicking **Manage External User** | **View Partner User** on the contact’s record. To ensure that the delegated external user administrator is set up for success, check that: - Accounts and contacts are available on your delegated administrators site. The Account and Contact tabs are set to Default On. Optionally, field-level security and page layouts only display the account and contact fields you specify. - Account layout pages for the delegated external member profile include the Active field on the Community Members related list. - Delegated external user administrators have “Create” and “Edit” permissions on contacts so that they can create and update contacts related to their account. - Delegated external user administrators can assign all the permissions in the permission sets that you want them to manage. - If delegated external administrators require access to personally identifiable information, such as usernames and aliases, select the **View Concealed Field Data** permission on the delegated external user administrator profile. - These buttons are added to the **Salesforce Mobile and Lightning Experience Actions** section on the Contact page layout. - **Disable Partner User** - **Disable Customer User** - **Enable Partner User** - **Enable Customer User** - **View Partner User** - **View Customer User** - **[Give External Users Access to Manage Other Accounts](https://help.salesforce.com/s/articleView?id=platform.networks_external_managed_accounts.htm&release=264.0.0&type=5)** Authorize external users to manage permission sets for other users, reset passwords, activate, deactivate, or add members to other accounts. With the Account Switcher component, external users can easily access the other accounts. - **[Delegate Account Management to an External User](https://help.salesforce.com/s/articleView?id=platform.networks_account_management_overview.htm&release=264.0.0&type=5)** Give external users the power to manage account members and account brand information. Administrators, internal users, and partner users with the Delegated External User Administrator permission can create and edit a member, reset a member’s password, and activate or deactivate a member. They can also upload brand logos and save company information for co-branded email templates to partner users, and create marketing campaigns, deal notifications, and websites. #### See Also - [Create Experience Cloud Site Users](https://help.salesforce.com/s/articleView?id=platform.networks_create_external_users.htm&release=264.0.0&type=5 "Create site users to access Experience Cloud sites.") - [Grant Portal Super User Access to Partner and Customer Users](https://help.salesforce.com/s/articleView?id=platform.networks_customer_super_user_access.htm&release=264.0.0&type=5 "Enable super user access so that users with Partner Community or Customer Community Plus licenses in your sites can access more records and data.") - [Manage Personal User Information Visibility for External Users](https://help.salesforce.com/s/articleView?id=platform.users_manage_personal_info_visibility.htm&release=264.0.0&type=5 "Protect your external users' data by concealing personal information fields from other external users. To meet your business's security needs, modify which user fields are classified as personal information and hidden from view on Experience Cloud sites.") - [Deactivate Users](https://help.salesforce.com/s/articleView?id=platform.how_to_deactivate_users.htm&release=264.0.0&type=5 "To deactivate a user’s account so they can no longer log into Salesforce, complete these steps.") - [Add Salesforce CRM Data to LWR or Aura Sites](https://help.salesforce.com/s/articleView?id=experience.exp_cloud_build_crm_data.htm&type=5&language=en_US) - [Add Tabs to Your Salesforce Tabs + Visualforce Site](https://help.salesforce.com/s/articleView?id=experience.networks_customize_tabs.htm&type=5&language=en_US) # Delete a Big Object When you delete a custom big object, Salesforce doesn’t add it to the Recycle Bin. Instead, deleted big objects appear in the Deleted Objects list for 15 days. During this time, the big object and its data are soft deleted, meaning you can restore or permanently erase (flag for hard delete) the big object and its data. After 15 days, the big object and its data are automatically flagged for hard delete. Salesforce runs a background job to completely remove big objects that have been flagged for hard-delete from your org. The job doesn’t run immediately, but you can’t access these large objects because they no longer appear in the Deleted Objects list. Soft-deleted big objects and their data always count against your org’s limits. Big objects that are flagged for hard delete, but the background job hasn’t yet removed, also count. After the background job removes these big objects, they no longer count against your org’s limit. 1. From Setup, enter Big Objects in the Quick Find box, then select **Big Objects**. 2. Click **Del** next to the object that you want to delete. 3. When prompted, select the **Yes, I want to delete the Big Object** checkbox to confirm and click **Delete**. The big object is soft deleted and remains in the Deleted Objects list for 15 days. 4. To permanently erase (flag for hard-delete) the big object, click **Deleted Big Object**. 5. Click **Erase** next to the big object you want to permanently erase. 6. When prompted, select the **Yes, I want to permanently delete the Big Object** checkbox to confirm and click **Delete**. The big object is flagged for hard-delete and can no longer be restored. # Delete a Blueprint in Agentforce Operations Delete a draft or published blueprint from your workspace in Agentforce Operations. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

User Permissions Needed
To delete a blueprint in Agentforce Operations: Admin role or Publisher role
When you delete a published blueprint, Agentforce Operations deletes the current version and all previous versions. Admins or the publisher of the current version can delete a published blueprint. Admins or any editor of the blueprint can delete a draft blueprint. Deleting a draft blueprint deletes only the draft. It doesn't affect the associated published blueprint or its previous versions. If a blueprint is deleted, you can’t restore it. 1. In the navigation sidebar, click **Blueprints**. 2. Locate the blueprint that you want to delete. 3. Open the blueprint. 1. For a draft blueprint, click **Edit.** 2. For a published blueprint, click **Open**. 4. Click the **About** tab. 5. Click **Delete blueprint**. 6. Type the name of the blueprint. 7. Click **Confirm**. Agentforce Operations deletes the blueprint. # Delete a Custom Field Custom fields can be deleted as long as they meet certain requirements. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To delete custom fields:

Customize Application

AND

View All Data

Before you delete a custom field, find out whether it's referenced by any other field, and if so, which fields. You can’t delete a custom field that’s referenced by another field. For example, you can’t delete a custom field that’s referenced by a field update or Apex. 1. From the management settings for the field’s object, go to Fields. 2. Click **Del** next to the name of the field. 3. When prompted, select the Yes, I want to delete the custom field checkbox to confirm, and click **Delete**. Keep these considerations in mind when you delete a custom field. - Deleted custom fields and their data are stored until your org permanently deletes them or 15 days has elapsed, whichever happens first. Until that time, you can restore the field and its data. For information on restoring deleted custom fields and relationships, see [Manage Deleted Custom Fields](https://help.salesforce.com/s/articleView?id=platform.fields_managing_deleted_fields.htm&release=264.0.0&type=5 "Deleted custom fields and their data are stored until your org permanently deletes them or 15 days have elapsed, whichever happens first. Until that time, you can restore the field and its data."). - When you delete a custom field, all of the field history data is deleted and changes are no longer tracked. - You can’t delete a field if that field is being updated by a background job, such as an update to a roll-up summary field. Wait until the background job finishes, and then try again. - A background process periodically runs that cleans up metadata associated with deleted custom fields. This process affects the Last Modified Date and Last Modified By fields on page layouts, record types, and custom objects. #### See Also - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") # Delete a Domain To stop serving a site via your custom domain, such as https://www.example.com, first delete the custom URLs for that domain. Then delete the domain in Salesforce. Or to point the domain to a different site, set up new custom URLs. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, and Unlimited Editions.
Applies to: Salesforce Sites and LWR, Aura, and Visualforce sites
User Permissions Needed
To view custom URLs:

Manage Custom Domains

OR

View Setup and Configuration

To add, edit, and delete custom URLs:

Manage Custom Domains

OR

View Setup and Configuration AND either Create and Set Up Experiences OR a Site.com Publisher license

To view a domain:

Manage Custom Domains

OR

View Setup and Configuration

To edit or delete a domain: Manage Custom Domains
To delete a custom domain configured with the Salesforce CDN, first ensure the following: - DNS entries are pointing to the correct organization. - The domain is using a temporary non-HTTPS domain. - The domain is activated. 1. If you use a legacy site.com site, deactivate the site in Salesforce. If you use Experience Cloud sites or Salesforce Sites, skip this step. 2. Delete the custom URLs for your domain. 1. From Setup, in the Quick Find box, enter Custom URLs, and then select **Custom URLs**. 2. For each custom URL associated with your domain, click **Del** next to the URL name, and then click **OK**. For Experience Cloud sites and Salesforce Sites, the URL is deleted immediately, and users who visit that URL no longer have access to the site. With legacy Site.com sites, the URL remains active until you republish or delete the site. 3. To use the Salesforce-hosted domain for your site, or if you set up custom URLs for a different domain to serve your site, activate your site again. 1. For Experience Cloud sites, see [Activate Your Site](https://help.salesforce.com/s/articleView?id=experience.networks_publish.htm&type=5&language=en_US). 2. For Salesforce Sites, from Setup, in the Quick Find box, enter Sites, select **Sites**, and then click **Deactivate**. 3. For legacy Site.com sites, see[Publish and Manage Live Sites](https://help.salesforce.com/s/articleView?id=platform.siteforce_publish_map.htm&type=5&language=en_US) . 4. Optionally, delete your domain. 1. From Setup, in the Quick Find box, enter Domains, and then select **Domains**. 2. Next to the domain name, click **Del**, and then click **OK**. For Experience Cloud sites and Salesforce Sites, the domain is deleted immediately, and users who visit that URL no longer have access to any site connected to that domain. For legacy Site.com sites unrelated to Experience Cloud sites, the domain remains active until you republish or delete the site. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note When you delete a domain with an unpublished legacy Site.com site attached, it also deletes any custom URLs associated with that site. 5. Work with your DNS provider to update the DNS record for your domain. Remove pointers from the domain to Salesforce. For information about the initial configuration, see [Point Your Custom Domain to Your Salesforce Org](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_update_dns.htm&release=264.0.0&type=5 "Before you add a domain in Salesforce, point your domain to your Salesforce org in Domain Name Service (DNS). If your custom domain uses your HTTPS Certificate or the Salesforce content delivery network (CDN) partner, add a canonical domain name (CNAME) record for your fully qualified domain (FQDN) to DNS. The CNAME record references your Salesforce org ID and your FQDN. Then, if you plan to use the Salesforce CDN to serve your Experience Cloud site on your custom domain, add a second CNAME record that our CDN partner requires."). 6. Optionally, review and revert other configuration related to your domain’s configuration option. 1. If your domain used your HTTPS certificate on Salesforce servers, remove the certificate from Salesforce. On the Certificate and Key Management Setup page, next to your certificate, click **Del**. This option is available only when no domain, identity provider, single sign-on (SSO) setting, or connected app uses the certificate. 2. If your domain used the Salesforce CDN, see [Prerequisites for the Salesforce CDN](https://help.salesforce.com/s/articleView?id=platform.community_builder_cdn_prerequisites.htm&release=264.0.0&type=5 "Before you set up a custom domain that uses the Salesforce content delivery network (CDN), complete these steps."). 3. If a third-party service or CDN served your domain, see [Prerequisites for a Custom Domain That Uses a Third-Party Service or CDN](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_enable_https.htm&release=264.0.0&type=5 "If a non-Salesforce service or content delivery network (CDN) serves your domain, complete these steps before you add your domain in Salesforce. To confirm your domain ownership, update your domain’s Domain Name Service (DNS) configuration. Then work with the third-party provider to ensure access to the required HTTP protocols, configure caching and request handling, and review reverse proxy restrictions. If you’re using a third-party CDN, update the header in your CDN to track IP addresses."). #### See Also - [Custom Domains](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt.htm&release=264.0.0&type=5 "Provide a branded experience for users who access your external-facing Salesforce content by serving your Digital Experiences or Salesforce Sites on a domain that you own, such as https://www.example.com.") - [Custom Domain Management](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_dom_detail.htm&release=264.0.0&type=5 "Keep your custom domain up to date with your business needs. Learn how to manage your domain during org migrations and certificate changes. Edit your domain’s configuration option, move to a different domain name, or enable HSTS preloading. And when you no longer need a custom domain, delete the domain and its custom URLs in Salesforce.") # Delete a Dynamics Sandbox Service Free up resources and storage space after a sandbox service is outdated or refreshed. Deleting a sandbox service permanently removes all data associated with it. Sandbox Data and Metadata services can both be deleted. 1. Select the sandbox service you want to delete. 2. Select the Options tab and then select the General tab. 3. In the General tab click the three dots and select Pause or Archive Service. If it isn't enabled (if it’s grayed out), contact your business unit’s Admin or Master Admin (as required) to enable the self-served archiving function. 4. Click Delete This Service and its Backups. 5. A popup confirmation dialog appears, prompting you to confirm that you wish to remove (delete) the sandbox service. 6. Click Remove to delete the sandbox service. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_warning.png) Warning Once you remove (delete) a sandbox service, all the data for this service will be permanently deleted! After the service has been deleted, a confirmation message appears at the bottom of the screen. # Delete a Flow Interview If you paused a flow interview and don’t plan to resume it, delete it. By removing unnecessary flow interviews, you make sure that your pending list includes only flow interviews that you still plan to act on. ### Required Editions
View supported editions.
User Permissions Needed
To delete a flow interview:

Run Flows

OR

The Flow User field is selected on the user's detail page

1. Find the paused flow interviews. Your administrator’s configuration determines where to find them. 1. To find paused flow interviews in Salesforce Classic, from the Home tab, go to the Paused Flow Interviews related list. 2. To find paused flow interviews in the Salesforce mobile app, from the menu icon, find and select **Paused Flows**. 3. To find paused flow interviews in the Automation app, from the App Launcher, find and select **Automation**, and then go to the Monitor tab. If you paused a flow interview and can’t find the place where you’re supposed to resume flow interviews from, contact your admin. 2. Delete the flow interview that’s no longer necessary. #### See Also - [Flow Interviews](https://help.salesforce.com/s/articleView?id=platform.flow_interviews.htm&release=264.0.0&type=5 "A flow interview is a running instance of a flow. A flow is an application built by your administrator that asks you for inputs and does something in Salesforce based on those inputs.") - [Resume a Flow Interview](https://help.salesforce.com/s/articleView?id=platform.flow_interviews_resume.htm&release=264.0.0&type=5 "If you paused a flow interview, resume it after you have all the necessary information. If you pause a flow interview and the associated flow is updated before you resume, the resumed flow interview doesn’t use the updated flow. Instead, it uses the version of the flow that was active when you paused.") # Delete a Group Remove a group from your flow, either deleting its elements along with it or keeping them on the path. ### Required Editions
View supported editions.
User Permissions Needed
To create and manage flow element groups : Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. 1. Open the Flows list view. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. Note that the Automation app and Flows tab options don't require Setup access. 2. Click an existing flow to open it, or create a flow by clicking **New** or **New Flow.** 3. On the group card of the group you want to delete, click ![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png), and then select **Delete Group**. 4. Select what to delete. - To delete the group and all elements inside it, select **Everything (Container + Elements)**. The group and its elements are removed from the flow, and the surrounding elements reconnect on the path. - To delete only the group and keep the elements inside it, select **Container Only** or **Ungroup**. The group is removed, but its elements stay on the path. 5. Click **Delete Group** to confirm, or **Cancel** to keep the group. 6. Save your flow. #### See Also - [Delete Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_delete.htm&release=264.0.0&type=5 "Remove elements from your flow when they're no longer needed in your automation.") # Delete a Process Version If you no longer require a process version that you’ve defined, delete it. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To delete processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). To delete an active process, you must first deactivate it. You can’t delete process versions with an Active status. If another process references your invocable process, you can’t delete the invocable process. If a process has any scheduled actions, it can’t be deleted until those pending actions have been executed or [deleted](https://help.salesforce.com/s/articleView?id=platform.process_delete_instance.htm&release=264.0.0&type=5 "If you no longer want to execute a process's scheduled actions, you can delete them from the list of paused flow interviews in Setup."). 1. In Setup, enter Builder in the Quick Find box, then select **Process Builder**. 2. Next to the appropriate process, click ![Right caret icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/process_builder/pb_expand_versions.png) to view all versions. 3. For the version that you want to delete, click **Delete**. If your process has only one version and you delete that version, the entire process is deleted. 4. Click **OK**. # Delete a Salesforce Sandbox Service in Backup & Recover for Salesforce Free up resources and storage space after a sandbox service is outdated or refreshed. Deleting a sandbox service permanently removes all backup data associated with it. You can delete sandbox data and metadata services. 1. On the Services page, select the sandbox service that you want to delete. 2. Under the **Options** tab, select the **General** tab. 3. Click **Delete Service**. 4. Click **Remove** to delete the sandbox service. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_warning.png) Warning After you delete a sandbox service, all the data for this service is permanently deleted. After the service is deleted, you get a confirmation message. #### See Also - [Archive a Salesforce Service](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_archive_services.htm&release=264.0.0&type=5 "Preserve backup data after you migrate, decommission, or duplicate a Salesforce production or sandbox backup service instance. Archiving the service stops it from backing up new data. Access archived data for future restoration or data seeding.") - [Pause a Salesforce Service](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_pause_services.htm&release=264.0.0&type=5 "Limit access to your data during proof of concept or testing periods. By pausing instead of archiving, you can specify when to resume backups and avoid losing backup coverage.") # Delete a ServiceNow Sandbox Service Free up resources and storage space after a sandbox service is outdated or refreshed. Deleting a sandbox service permanently removes all data associated with it. Sandbox Data and Metadata services can both be deleted. 1. Select the sandbox service you want to delete. 2. Select the Options tab and then select the General tab. 3. In the General tab click the three dots and select Pause or Archive Service. If it isn't enabled (if it’s grayed out), contact your business unit’s Admin or Master Admin (as required) to enable the self-served archiving function. 4. Click Delete This Service and its Backups. 5. A popup confirmation dialog appears, prompting you to confirm that you wish to remove (delete) the sandbox service. 6. Click Remove to delete the sandbox service. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_warning.png) Warning Once you remove (delete) a sandbox service, all the data for this service will be permanently deleted! After the service has been deleted, a confirmation message appears at the bottom of the screen. # Delete a Site.com Site You can delete any site that isn't published. If the site is published, you must first unpublish it before you can delete it. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

See [Taking a Site Offline](https://help.salesforce.com/s/articleView?id=platform.siteforce_publish_offline.htm&release=264.0.0&type=5 "Unpublish and delete a Site.com site."). 1. On the Site.com tab in the Site.com app, select the site and click **![menu arrow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_arrowdrop.png)** | **Delete**. 2. Click **OK**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can't create, delete, or duplicate community sites in Site.com. #### See Also - [Export a Site.com Site](https://help.salesforce.com/s/articleView?id=platform.siteforce_website_export.htm&release=264.0.0&type=5 "You can export your site from Site.com to your hard drive. The site is exported in a packaged format with a .site extension, which you can import into another Salesforce organization. The maximum site size you can import is 2 GB.") # Delete Action Link Group Templates When you delete an action link group template, you delete its associated action link templates and all action link groups that have been instantiated from the templates. Deleted action link groups disappear from any feed elements they've been associated with. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: all editions except Personal and Starter
User Permissions Needed
To delete action link group templates: Customize Application
To delete action link templates: Customize Application
1. From Setup, enter Action Link Templates in the Quick Find box, then select **Action Link Templates**. 2. To delete an action link group template, click **Del** next to its name. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important When you delete an action link group template, you delete its associated action link templates and all action link groups that have been instantiated from the template. The action link group is deleted from any feed elements it has been associated with, which means that action links disappear from those posts in the feed. 3. To delete an action link template: 1. Click the name of its master action link group template. 2. Click the Action Link Template ID to open the detail page for the action link template. 3. Click **Delete**. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important You can’t delete an action link template that’s associated with a published action link group template. #### See Also - [Design Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_design.htm&release=264.0.0&type=5 "Before you create a template, consider which values you want to set in the template and which values you want to set with binding variables when you instantiate action link groups from the template.") - [Create Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_create.htm&release=264.0.0&type=5 "Create action link templates in Setup so that you can instantiate action link groups with common properties from Connect REST API or Apex. You can package templates and distribute them to other Salesforce orgs.") - [Edit Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_edit.htm&release=264.0.0&type=5 "You can edit all fields on an unpublished action link group template and on its associated action link templates.") - [Package Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_package.htm&release=264.0.0&type=5 "Package action link templates to distribute them to other Salesforce organizations.") - [_Apex Developer Guide_: Working with Action Links](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/connectapi_features_action_links.htm) - [_Apex Developer Guide_: Define an Action Link in a Template and Post with a Feed Element](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/connectapi_examples_define_post_action_link_template.htm) # Delete an Element from a Group Delete an element that a group no longer needs, without deleting the rest of your flow. ### Required Editions
View supported editions.
User Permissions Needed
To create and manage flow element groups : Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. 1. Open the Flows list view. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. Note that the Automation app and Flows tab options don't require Setup access. 2. Click an existing flow to open it, or create a flow by clicking **New** or **New Flow.** 3. If the target group is collapsed, expand it so that you can see the elements inside it. 4. On the element card for the element you want to delete, click ![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png), and then select **Delete Element**. The element disappears from the group, and the surrounding elements reconnect on the path. 5. Save your flow. #### See Also - [Delete Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_delete.htm&release=264.0.0&type=5 "Remove elements from your flow when they're no longer needed in your automation.") # Delete an External Service Delete an external service permanatently. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
To delete an external service, click the arrow in the service’s Actions column, and select **Delete**. # Delete an HTTP Callout Action To delete an HTTP Callout action, you delete the external service registration record. If an external service registration and HTTP Callout action are referenced in any flows, you can’t delete them. ### Required Editions
Available in: Lightning Experience
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
To create an external credential, a named credential, and an HTTP callout action: Customize Applications
1. From Setup, in the Quick Find box, enter External Services, and select **External Services**. 2. Locate the external service that you created with HTTP Callout in Flow Builder. 3. Click the arrow in the service’s Actions column, and select **Delete**. 4. Click **OK**. #### See Also - [_Salesforce Help_: Edit an External Service](https://help.salesforce.com/s/articleView?id=platform.external_services_manage_edit.htm&language=en_US) # Delete an Outbound Change Set You can locate outbound via the Quick Find box. 1. From Setup, enter Outbound Change Sets in the Quick Find box, then select **Outbound Change Sets**. 2. Click the name of the change set you want to delete. 3. Click **Delete**. #### See Also - [Create an Outbound Change Set](https://help.salesforce.com/s/articleView?id=platform.t_changesets_outbound.htm&release=264.0.0&type=5 "An outbound change set is a change you send from the Salesforce org you are logged into to another org.") # Delete Approval Submission Records Delete approval submission records to fulfill GDPR and other data deletion requests. Deleting a parent record also deletes its related terminal-state approval submissions. Salesforce cancels related in-progress approval submissions so that you can delete them later. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To delete an approval submission:

Approval Admin

OR

Modify All Data

You can't delete an in-progress approval submission directly. To make an in-progress approval submission eligible for deletion, cancel it or delete its parent record. Deleting a record with associated approval submissions automatically deletes all related terminal-state approval submission records. Salesforce cancels related in-progress approval submissions and their child records at 3:00 AM in the time zone of your org's instance. After the associated approval submission records are in a canceled state, you can manually delete them. 1. Open the Approval Submissions list view. - From the Approvals app, click **Manage My Approval Submissions**, and then select the All Approval Submissions list view. - From App Launcher, search for and select **Approval Submissions**. Select the All Approval Submissions list view. 2. Delete the approval submission record. You can’t delete an in-progress approval submission. - From the dropdown for the relevant approval submission, select **Delete**. - Click the approval submission name, and then from the approval submission record, click **Delete**. The approval submission record and its child records are deleted. #### See Also - [Approval Submissions and Orchestration Runs](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_approval_submission.htm&release=264.0.0&type=5 "Salesforce creates an approval submission when a record is submitted for approval by using a flow approval process. Each approval submission has an associated orchestration run.") - [Cancel an In-Progress Approval Submission](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_cancel_inprogress_approval_submission.htm&release=264.0.0&type=5 "Cancel an approval submission from the Approval Submissions list view. You can cancel only in-progress approval submissions.") # Delete Cart Action In a B2B Commerce Checkout flow, delete a cart. ### Required Editions
Available in: Lightning Experience
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Cart actions aren’t available in flows for B2B stores built on an Aura template. To build a B2B Commerce Checkout flow for an Aura store, see [B2B Commerce Checkout Flow (Aura)](https://developer.salesforce.com/docs/commerce/salesforce-commerce/guide/b2b-b2c-comm-setup-checkout-flow.html). In Flow Builder, add an Action element to your flow. Select the **Commerce** category, and search for **Delete Cart**. To access this action from REST API, use the name `deleteCart`. ## Set Input Values Use values from earlier in the flow to set the inputs. | Input Parameter | Description | | --- | --- | | **Cart State or ID** | ID of the cart or state of the cart to delete. Valid state values are: active and current. A current cart is neither closed nor pending deletion. | | **effectiveAccountId** | (Optional) ID of the buyer account or guest buyer profile for which the request is made. If unspecified, the default value is determined from context. | | **Web Store ID** | ID of the web store associated with the cart. | ## Store Output Values Output values aren’t available for this action. ## Error Conditions
Error Condition Description

The user doesn’t have access to the cart.

Error Message: You don't have access to this cart. If possible, contact the admin for this web store.

Error Code: INSUFFICIENT_ACCESS_OR_READONLY

HTTP Status Code: 400

# Delete Custom Fields with Schema Builder Avoid custom field clutter by using Schema Builder to delete custom fields that you no longer need. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To delete custom fields in Schema Builder: Customize Application
Schema Builder displays a list of side effects when you try to delete a custom field. Be sure you’re ready to accept these side effects before finalizing the deletion. 1. Right-click on the custom field. 2. Select **Delete Field...**. A dialog box displays that explains the side effects of deleting a custom field. Read this information carefully. 3. If you accept the conditions, select **Yes, I want to delete the custom field.** 4. Click **Delete**. # Delete Custom Objects When you delete a custom object, Salesforce doesn’t add it to the Recycle Bin. Instead, deleted objects appear in the Deleted Objects list for 15 days. During this time, the object and its data are soft deleted, meaning you can restore or permanently erase (hard delete) the object and its data. After 15 days, the object and its data are automatically hard deleted. ### Required Editions ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.
Available in: Salesforce Classic
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To delete custom objects:

Customize Application

AND

View All Data

Soft-deleted custom objects and their data count against your org’s limits but hard-deleted items don’t. To delete a custom object: 1. From the object management settings for custom objects, click **Del** next to the object that you want to delete. 2. When prompted, select **Yes, I want to delete the custom object** to confirm, and click **Delete**. You can’t delete a custom object if it: - Is on the master side of a master-detail relationship - Contains custom fields that are used in a roll-up summary field on another object - Is referenced in Apex, a Visualforce page, or a reporting snapshot - Is referenced by a duplicate rule or a matching rule - Contains more than 100,000 records. If the object that you want to delete has more than 100,000 records, delete an appropriate number of records first, and then delete the object. When you delete a custom object, Salesforce: - Displays an Insufficient Privileges message if someone clicks a bookmark to a deleted custom object record’s URL - Removes the object from AppExchange packages - Changes the master-detail relationship to a lookup relationship if the deleted object is on the detail side of a master-detail relationship - Removes or erases: - The object’s custom tab - List views and workflow rules for the object - Mobile configuration settings including datasets, mobile views, and excluded fields - Standard report types associated with the object, and reports based on standard report types if the deleted object is on the detail side of a master-detail relationship - Hides, inactivates, or disables: - The custom object definition and related definitions - The object’s records and related records, including any records in the Recycle Bin - Custom report types where the deleted object is the main object - Custom reports where the deleted object is the main object - Custom formula fields on the object - Custom validation rules and approval processes on the object To restore removed, hidden, inactive, or disabled items, you can undelete the custom object. See [Manage Deleted Custom Objects](https://help.salesforce.com/s/articleView?id=platform.dev_managing_deleted_custom_objects.htm&release=264.0.0&type=5 "Deleted custom objects appear in the Deleted Objects list for 15 days. During this time, you can choose to permanently delete the object and its data, or you can undelete them. If you undelete a custom object, some manual cleanup can be required to restore list views and other customizations that use the object.") for information about restoring deleted custom objects. #### See Also - [Manage Deleted Custom Objects](https://help.salesforce.com/s/articleView?id=platform.dev_managing_deleted_custom_objects.htm&release=264.0.0&type=5 "Deleted custom objects appear in the Deleted Objects list for 15 days. During this time, you can choose to permanently delete the object and its data, or you can undelete them. If you undelete a custom object, some manual cleanup can be required to restore list views and other customizations that use the object.") - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") - [Delete a Big Object](https://help.salesforce.com/s/articleView?id=platform.custom_bo_delete.htm&release=264.0.0&type=5 "When you delete a custom big object, Salesforce doesn’t add it to the Recycle Bin. Instead, deleted big objects appear in the Deleted Objects list for 15 days. During this time, the big object and its data are soft deleted, meaning you can restore or permanently erase (flag for hard delete) the big object and its data. After 15 days, the big object and its data are automatically flagged for hard delete.") # Delete Custom Objects with Schema Builder You can delete the custom objects that you no longer need by using Schema Builder. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To delete custom objects in Schema Builder: Customize Application
Schema Builder displays a list of side effects when you try to delete a custom object. Be sure you’re ready to accept these side effects before finalizing the deletion. 1. Click ![object in new window](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/actions_menu.png) on the custom object’s icon. 2. Select **Delete Object...**. A dialog box displays that explains the side effects of deleting an object. Read this information carefully. 3. If you accept the conditions, select **Yes, I want to delete the custom object.** 4. Click **Delete**. # Delete Custom S-Controls S-controls provide a flexible, open means of extending the Salesforce user interface, including the ability to create and display your own custom data forms. ### Required Editions
Available in: Salesforce Classic
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, and delete custom s-controls: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important Visualforce pages supersede s-controls. Organizations that haven't previously used s-controls can’t create them. Existing s-controls are unaffected and can still be edited. To delete a custom s-control: 1. First, ensure that the s-control isn’t used by other components: from Setup, enter S-Controls in the Quick Find box, then select **S-Controls**, select the s-control, and then click **Where is this used?**. 2. Click **S-Controls** again. 3. Click **Del** next to the custom s-control you want to delete. 4. Click **OK** to confirm. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note You cannot delete a custom s-control that is used elsewhere in Salesforce. Deleted s-controls do not go into the Recycle Bin. # Delete Debug Logs When your org accumulates too many debug logs, delete some or all of your system logs and monitoring logs. Use the Developer Console’s Query Editor to find and delete the logs using Tooling API. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To view, retain, and delete debug logs: View All Data
1. Open Developer Console. 2. At the bottom of the console, select the **Query Editor** tab. 3. Select **Use Tooling API**. 4. Enter this SOQL query: ```sql SELECT Id, StartTime, LogUserId, LogLength, Location FROM ApexLog ``` 5. Click **Execute**. 6. Select the logs you want to delete. To sort by a column, click its header. To select individual logs, press Ctrl (Windows or Linux) or Command (macOS). To select a block of logs, press Shift. `LogLength` shows the size of the log in bytes. For system logs, `Location` is `SystemLog`. System logs are generated as part of system log monitoring, such as while you use Developer Console, and are visible only to you. For monitoring logs, `Location` is `Monitoring`. Monitoring logs are generated when your org has active `CLASS_TRACING` or `USER_DEBUG` trace flags. These logs are visible to all your org’s admins. - Each debug log must be 20 MB or smaller. Debug logs that are larger than 20 MB are reduced in size by removing older log lines, such as log lines for earlier `System.debug` statements. The log lines can be removed from any location, not just the start of the debug log. - System debug logs are retained for 24 hours. Monitoring debug logs are retained for seven days. - If you generate more than 1,000 MB of debug logs in a 15-minute window, your trace flags are disabled. We send an email to the users who last modified the trace flags, informing them that they can re-enable the trace flag in 15 minutes. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_warning.png) Warning If the debug log trace flag is enabled on a frequently accessed Apex class or for a user executing requests often, the request can result in failure, regardless of the time window and the size of the debug logs. - When your org accumulates more than 1,000 MB of debug logs, we prevent users in the org from adding or editing trace flags. To add or edit trace flags so that you can generate more logs after you reach the limit, delete some debug logs. 7. Click **Delete Row**. 8. To confirm the log deletion, click **Yes**. # Delete DevOps Center Authentication Providers Delete the auth providers only if you don’t plan to reinstall DevOps Center. After you’re done with your evaluation, you can delete the DevOps Center auth providers as the last step to remove all installation artifacts from your org. But proceed with caution. You can’t manually recreate them if you change your mind. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/images/icon_important.png) Important If you plan to reinstall DevOps Center, don't delete the DevOps Center auth providers and skip this task. We created the auth providers when you enabled the DevOps Center preference in Setup. However, if you delete the auth providers, you can recreate them by re-enabling the DevOps Center preference. If it's still enabled, just disable then re-enable it. 1. From Setup, find and select **Auth. Providers**. 2. Delete the DevOps center authentication providers. - DevOps Center Bitbucket - DevOps Center GitHub - DevOps Center Prod - DevOps Center Test #### See Also - [Enable and Install DevOps Center in the Org](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_install.htm&release=264.0.0&type=5 "Enable DevOps Center to provide the permissions needed to install the DevOps Center package in the org. You can install DevOps Center in the org that is the final release org in your pipeline, or in another org that is unrelated to the orgs in the pipeline.") - [Disable DevOps Center Preference](https://help.salesforce.com/s/articleView?id=platform.devops_center_uninstall_disable_pref.htm&release=264.0.0&type=5 "When DevOps Center was installed, a Salesforce admin first enabled DevOps Center. To ensure that DevOps Center can’t be installed or used, you can disable the DevOps Center preference.") # Delete DevOps Center External Client App Delete the DevOps Center external client app so that the app doesn’t appear on App Launcher. 1. From Setup, enter External Client Apps Manager in the Quick Find box, then select **External Client Apps Manager**. 2. To open the app manager for the external client app, select the app’s name. 3. From the actions dropdown list, select **Delete**, and then confirm that you want to delete the app. # Delete DevOps Center Named Credentials Remove any named credentials associated with DevOps Center, which manage authentication to your development and pipeline environments. 1. From Setup, enter Named Credentials in the Quick Find box, then select **Named Credentials**. 2. Delete any named credentials associated with DevOps Center environments. Look for the format `__`. # Delete Elements in Auto-Layout Remove elements from your flow when they're no longer needed in your automation. ### Required Editions
View supported editions.
User Permissions Needed
To add and manage flow elements : Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. In auto-layout, your changes are automatically saved to your draft flow. To make your changes permanent, save your flow before you close its window in Flow Builder. Deleting elements removes them from your flow when they're no longer needed. Decision and Wait elements require special consideration when deleting because they can have multiple outcome paths that can contain other elements that you want to keep. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If you want to delete multiple elements, select and delete them one at a time. 1. Delete a Decision or Wait element. 1. Click ![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png) on the element card, and then select **Delete Element**. 2. To keep the elements from a Decision outcome or Wait configuration path on the canvas after deletion, in the delete element panel dropdown, select the path that holds the elements to keep. 3. To delete the Decision or Wait element and all of its paths, in the delete element panel dropdown, select **None, delete all paths**. 2. Delete another type of element. 1. Click ![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png) on the element card to open the actions menu, and then select **Delete Element**. # Delete or Deactivate Lookup Filters Deleting a lookup filter permanently removes it. You can’t recover deleted lookup filters. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions except for Database.com.
User Permissions Needed
To define lookup filters: Customize Application
1. From the managements settings for the relationship field’s object, go to Fields. 2. Scroll to the Custom Fields & Relationships related list. 3. Click the name of the field containing the lookup filter. 4. Click **Edit**. 5. To deactivate the lookup filter, deselect **Enable this filter**, then save your changes. Deactivating a lookup filter preserves the lookup filter configuration but: - Prevents it from applying to the relationship field - Prevents it from impacting the cross-object references limit - Removes it as a dependency for fields referenced in the lookup filter criteria 6. To delete the lookup filter, click **Clear Filter Criteria**, then save your changes. #### See Also - [Dependent Lookups](https://help.salesforce.com/s/articleView?id=platform.fields_lookup_filters_dependent_lookups.htm&release=264.0.0&type=5 "A dependent lookup is a relationship field with a lookup filter that references fields on the source object. For example, you can configure the case Contact field to only show contacts associated with the account selected in the case Account Name field.") - [Considerations for Lookup Filters](https://help.salesforce.com/s/articleView?id=platform.fields_lookup_filters_notes.htm&release=264.0.0&type=5 "Follow these guidelines when creating lookup filters.") - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") # Delete Personal Tags for Deactivated Users Your org can have up to 5,000,000 personal and public tags applied to records across all users. If your org is approaching this limit, delete personal tags for deactivated users. ### Required Editions
Available in: Salesforce Classic
Personal Tag Cleanup available in: All Editions
User Permissions Needed
To delete personal tags for deactivated users: Customize Application
1. From Setup, enter Personal Tag Cleanup in the Quick Find box, then select **Personal Tag Cleanup**. 2. Select one or more deactivated users and click **Delete**. You can’t restore personal tags after you delete them. #### See Also - [Topics and Tags Settings](https://help.salesforce.com/s/articleView?id=platform.customize_tags.htm&release=264.0.0&type=5 "Topics on objects allow users to add topics to records so they can organize them by common themes. With Chatter enabled, users can also see related posts and comments. Enabling topics for an object disables public tags on records of that object type. Personal tags aren’t affected.") # Delete Picklist Dependencies If you no longer want the values of a dependent picklist to depend on a controlling field, delete its dependency. Deleting the dependency removes the logic that defines how the values of the picklist depend on the controlling field, but doesn't delete the fields or affect their data. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To delete picklist dependencies: Customize Application
1. From the management settings for the picklist’s object, go to Fields. 2. Click **Field Dependencies**. 3. Click **Del** next to the field dependency relationship you want to delete. 4. Click **OK** to confirm. #### See Also - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") # Delete Records Element Identify Salesforce or Marketing Object records to delete by using the IDs stored in a record variable or record collection variable, or by specifying conditions. ### Required Editions
View supported editions.
This video explains how to use data elements to create, update, and delete records using a flow. View this [video](https://play.vidyard.com/SiwVdqZ79irAgg2WUJiPob) in a separate tab. How you choose to identify the records to delete determines what to enter in the rest of the Delete Records element. - Use a record variable or record collection variable. If you store the IDs of the records to delete in a record variable or record collection variable, choose to use the IDs from a record variable or record collection variable. Then select the variable to use. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For the variable that you select, make sure that each record’s ID value is set. The flow identifies which records to delete based on the ID value. When you use a record collection variable to delete multiple records at once, you reduce the number of DML requests in your flow. That means you’re more likely to stay within your org’s limits. For more information, see [Flow Bulkification in Transactions](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_bulkification.htm&release=264.0.0&type=5 "When a flow runs for multiple records at the same time, Salesforce creates one flow interview per record. Bulkification groups similar operations when interviews for the same flow reach the same element, helping the transaction use fewer queries and statements."). - Specify conditions. To use conditions to identify the records to delete, choose the object, and add at least one condition to filter down the list of records. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example When a customer accepts a quote, delete the remaining quotes from the opportunity. ## Considerations for Defining Filter Criteria - When you define multiple filters, the filter logic usually defaults to AND. However, if multiple filters have the same field selected and use the equals operator, the filters are combined with OR. For example, your filters check whether a case’s Type equals Problem (1), Type equals Feature Request (2), and Escalated equals true (3). At run time, the filters are combined to `(1 OR 2) AND 3`. - The available filter operators depend on the data type of the selected fields. For details, see [Flow Operators in Data Elements and Record Choice Sets](https://help.salesforce.com/s/articleView?id=platform.flow_ref_operators_filter.htm&release=264.0.0&type=5 "Filter conditions narrow the scope of records that the flow operates on. For example, use filter conditions to update only the contacts that are associated with the Acme Wireless account. When you add an Update Records element, use filter conditions to narrow the scope to just the contacts whose parent account is Acme Wireless. The In and Not In operators are available only in Create Records, Get Records, and Update Records elements."). ## Usage ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_warning.png) Warning - Be careful when testing flows that contain delete elements. Even if the flow is inactive, it triggers the delete operation. - To prevent deleting records by mistake, be as specific in your filter criteria as possible. - Records are deleted from your org the moment the flow runs the delete element. - Deleted records are sent to the Recycle Bin and remain there for 15 days before they’re permanently deleted. - Flows can delete records that are pending approval. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note At run time, the record isn’t deleted until the interview’s transaction is completed. Transactions are complete when the interview either finishes or runs a Screen, Local Action, or Wait element. #### See Also - [Flow Operators in Data Elements and Record Choice Sets](https://help.salesforce.com/s/articleView?id=platform.flow_ref_operators_filter.htm&release=264.0.0&type=5 "Filter conditions narrow the scope of records that the flow operates on. For example, use filter conditions to update only the contacts that are associated with the Acme Wireless account. When you add an Update Records element, use filter conditions to narrow the scope to just the contacts whose parent account is Acme Wireless. The In and Not In operators are available only in Create Records, Get Records, and Update Records elements.") - [Customize What Happens When a Flow Fails](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault.htm&release=264.0.0&type=5 "Learn how fault paths customize what happens when a flow fails. Choose how to notify admins, guide users, and take a follow-up action.") - [Move and Connect Elements to Change a Flow Route](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_route_add.htm&release=264.0.0&type=5 "Identify which elements the flow runs and in what order by connecting the elements on your canvas together. To change the run order, move elements and add or remove connectors.") - [Flow Elements](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements.htm&release=264.0.0&type=5 "An element represents an action that the flow can run. Examples include reading or writing Salesforce data, displaying information and collecting data from flow users, runnning business logic, or manipulating data.") # Delete Tables from an Anonymization Template for ServiceNow Remove tables from anonymization templates in ServiceNow to refine your data anonymization strategy. When you delete a table, it's removed from the template, and its data won't be anonymized. In the Anonymized tables panel, hover your cursor over the right side of a table entry. The three-dots button appears. 1. In the My Templates page, make sure that the anonymization template is in Edit mode by verifying that the enabled Save button has replaced the Edit button. If not, click Edit. 2. In the Anonymized tables panel, hover your cursor over the right side of a table entry. The three-dots button appears. 3. Click the three dots. A menu displays listing the available action Delete. 4. Click Delete. The table entry is removed from the Anonymized tables panel, which results in its removal from the anonymization template. 5. Alternate delete method: In the Anonymized tables panel, click +Add. The tables drop-down menu opens. In the menu, clear existing table entry selections, which results in their removal from the anonymization template. 6. Do any of the following: 1. Click Save. Your object table deletions are saved in the anonymization template. 2. Click Revert Changes. Your object table deletions are not saved; anonymization template content reverts back to what existed before your deletions. The template editing session ends, the anonymization template transitions to view-only mode, and the Edit button displays re-enabled. When an anonymization template is in view-only mode, you can always click Edit to return the anonymization template to Edit mode and modify its content. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note While an anonymization template is in Edit mode, it is not available to use for anonymizing data. # Delete Unexecuted Scheduled Actions If you no longer want to execute a process's scheduled actions, you can delete them from the list of paused flow interviews in Setup. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To delete unexecuted scheduled actions: Manage Flow
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). 1. From Setup, enter Flow in the Quick Find box, then select **Paused Flow Interviews**. If Paused Flow Interviews isn’t available as its own page, select **Flows** and scroll down to the list of paused interviews. 2. In the Flow API Name or Flow Name column, find the process whose scheduled actions you want to delete. 3. For each unexecuted group of scheduled actions that you want to delete, click **Del**, or click ![Show actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_list_enhanced_dropdown_icon.png) and select **Delete**. #### See Also - [Monitor Your Processes’ Pending Scheduled Actions](https://help.salesforce.com/s/articleView?id=platform.process_monitor_instance.htm&release=264.0.0&type=5 "You can check which of your processes are waiting to execute scheduled actions.") # Delete Users While you can’t completely delete a user, you can deactivate a user’s account so they can’t log in to Salesforce. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To deactivate users: Manage Internal Users
Salesforce lets you deactivate users, but not delete them outright. A user can own accounts, leads, and groups, and can be on multiple teams. Removing a user from Salesforce affects many processes in the org. After departure from the org, you obviously don’t want the user to retain access to their account. However, merely deleting a user can result in orphaned records and the loss of critical business information. For these reasons, deactivating rather than deleting the user is the appropriate action to take. Deactivation removes the user’s login access, but it preserves all historical activity and records, making it easy to transfer ownership to other users. For situations where changing ownership to other uses must be done before deactivation, freezing the user prevents login to the org and access to the user’s accounts. - **[Deactivate Users](https://help.salesforce.com/s/articleView?id=platform.how_to_deactivate_users.htm&release=264.0.0&type=5)** To deactivate a user’s account so they can no longer log into Salesforce, complete these steps. - **[Considerations for Deactivating Users](https://help.salesforce.com/s/articleView?id=platform.users_deactivate_considerations.htm&release=264.0.0&type=5)** Note these considerations when deactivating users. - **[Mass Transfer Records](https://help.salesforce.com/s/articleView?id=platform.admin_transfer.htm&release=264.0.0&type=5)** Use the Mass Transfer tool to transfer multiple accounts, leads, service contracts, and custom objects from one user to another. # Delete Values from a Custom Library Use this procedure when you want to delete values from a custom library that are no longer necessary for or relevant to your development or QA work. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask add-on license.
User Permissions Needed
To delete custom library values:
  • Data Mask And Seed User Permission Set License
  • Data Mask And Seed User Permission Set
1. Make sure that the relevant custom library page is in Edit mode. 2. In the Manage Library area of the displayed custom librarypage, hover your cursor over each info entry that you want to delete and click the **x**. 3. Click the **Save Library Settings** button to save the updated custom library content. The custom librarypage re-displays in view-only mode. You can also bulk delete all values with the **Delete All** link in the Manage Library area of the custom library page. # Delete, Deactivate, Replace, or Activate Multiple Picklist Values Save time by managing all your picklist values at once. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: all editions
User Permissions Needed
To create or change custom fields: Customize Application
Follow these steps to manage multiple picklist values. 1. Navigate to the custom field definition page for the picklist field. 2. In the Values and Inactive Values sections, there’s a checkbox next to each picklist value. Select multiple values, and use one of the new buttons: **Delete Selected**, **Deactivate Selected**, **Replace Selected**, or **Activate Selected**. This feature is available only for custom picklists with predefined values. #### See Also - [Replace a Picklist Value](https://help.salesforce.com/s/articleView?id=platform.customize_replace.htm&language=en_US) - [Remove a Picklist Value](https://help.salesforce.com/s/articleView?id=platform.additional_options_for_updating_picklists.htm&language=en_US) # Deleting Languages When you delete a language, the translated content is not actually deleted—it's just no longer available to your or your team. As soon as you add the language back to the site, you can access the translated content again. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To add and manage language options:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

1. Click **Site Configuration** | **Languages** of the Overview tab. 2. Click **![Delete](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_langdelete.png)** beside the language you want to delete. #### See Also - [Adding Languages](https://help.salesforce.com/s/articleView?id=platform.siteforce_languages_add.htm&release=264.0.0&type=5 "Add the languages you want your site to support.") # Delighted Connector (Beta) Connect to an external Delighted account. Perform tasks like creating people or retrieving people. Use Delighted as a data target (action). ### Required Editions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This connector is a beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this beta service is at the Customer's sole discretion.
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Basic authentication. Basic authentication enables the user to provide a username and password when logging in to an external system. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Username

Enter the username to use to authenticate the requests.

Password

Enter the password to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Delighted actions are available in Flow Builder. - Create Person - Get People ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Dependent Lookups A dependent lookup is a relationship field with a lookup filter that references fields on the source object. For example, you can configure the case Contact field to only show contacts associated with the account selected in the case Account Name field. ### Required Editions ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions except for Database.com.
User Permissions Needed
To manage dependent lookups: Customize Application
When a user changes the value of a referenced field on the source object, Salesforce immediately verifies that the value in the dependent lookup still meets the lookup filter criteria. If the value doesn't meet the criteria, an error message is displayed and users can't save the record until the value is valid. If the referenced field on the source object is a lookup, master-detail, or hierarchy field, users can't change its value by typing. Instead, users must click the lookup icon and select a value in the lookup search dialog. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip Dependent lookups are supported in Visualforce pages. #### See Also - [Define Lookup Filters](https://help.salesforce.com/s/articleView?id=platform.fields_lookup_filters_defining.htm&release=264.0.0&type=5 "Create and define lookup filters. Lookup filter criteria can compare fields of different types as long as they are compatible. Value-based filters are supported in Lightning Experience and Salesforce Classic.") - [Lookup Filter Examples](https://help.salesforce.com/s/articleView?id=platform.fields_lookup_filters_examples.htm&release=264.0.0&type=5 "Various examples for record types, record status, roles, and complex configurations in lookup filters.") # Dependent Picklist Considerations When defining dependent picklists, review these considerations. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To define and edit dependent picklists: Customize Application
Checkboxes Checkbox fields can be controlling fields but not dependent fields.
Connect Offline While controlling fields and dependent picklists are available in Connect Offline, the logic between them isn’t.
Converting fields When you convert existing fields to dependent picklists or controlling fields, it doesn’t affect the existing values in your records. After conversion, the dependency rules apply to new records and to any changes to existing records.
Default values
  • You can prepopulate a record event with default values in dependent picklists.
  • Default values on dependent picklists are available on accounts, opportunities, contacts, leads, and custom objects.
  • If the Automated Account Field setting is enabled, you can’t prepopulate dependent picklists with default values.
Dependency limitations
  • Before defining a dependency, make sure that your picklist has at least one value. Standard fields such as Product Family don’t contain values until you add them.
  • If a standard controlling field relies on functionality that you disable, then the dependency rules for the picklist no longer apply. For example, if you disable the Self-Service portal, and Closed by Self-Service User is a controlling field, its dependent picklist shows all available values.
  • If you replace a parent value in a controlling picklist, the picklist dependency is lost. After replacing the parent value, re-create the dependency by using the new parent value.
  • You can update the field dependency of a managed controller picklist field only from the UI and not by using the Metadata API.
  • Picklist dependencies are created based on the API names of individual picklist values. If these API names are modified after the dependency is configured, the dependent field relationship doesn’t work as expected.
Field-level security Field-level security settings for a controlling field and dependent picklist are independent. Remember to hide a controlling field whenever its correlating dependent picklist is hidden.
Import The Data Import Wizard doesn’t consider field dependencies. You can import any value into a dependent picklist regardless of the value imported for a controlling field.
Lead conversion
  • If you create a dependency for lead fields that map to account, contact, and opportunity fields for lead conversion, create the same dependency on the account, contact, or opportunity.
  • You can map dependent picklists and controlling lead fields to account, contact, or opportunity fields with different dependency rules.
Lightning pages Dynamic Forms-enabled Lightning pages that contain dependent picklists must also contain their controlling picklist fields, or the dependent picklist values don't appear.
Multi-select picklists Multi-select picklists can be dependent picklists but not controlling fields.
Page layouts
  • Page layouts that contain dependent picklists must also contain their controlling picklist fields, or the dependent picklist values don't appear.
  • Make sure that the dependent picklist is lower on the page layout than its controlling field.
  • If a dependent picklist is required and no values are available for it based on the controlling field value, users can save the record without entering a value. The record is saved with no value for that field.
Picklist limitations
  • A controlling field can have up to 300 values. If a field is both a controlling field and dependent picklist, it can’t contain more than 300 values.
  • No checks are performed for dependent fields when a controlling field is updated.
  • These fields aren’t available as controlling fields.
    • Activity Fields
      • Call Type
      • Create recurring series of events
      • Show Time As
      • Subject
      • Task
      • Type
    • Contact Fields
      • Salutation
      • Contact Currency
    • Custom Object Fields
      • Currency
    • Lead Fields
      • Converted
      • Unread By Owner
Record types You can define or change the record type for your dependent picklist only within the Preview dialog when creating or editing the field dependency values. The record type controls what values are available in the controlling field. The record type and the controlling field together determine what values are available in the dependent picklist. For example, a dependent value is only available if it’s available in the selected record type and the selected controlling value.
Standard versus custom picklists
  • Custom picklist fields can be either controlling or dependent fields.
  • Standard picklist fields can be controlling fields but not dependent fields.
# Dependent Picklists When a field of type picklist (level 1) has one or more dependent child fields of type picklist (level 2 - level ), the UI updates the child fields' Replace with field option. Update the child field's Replace with field with the identical option as its parent field's Replace with field option. - Parent: Skip <-> Child: Skip - Parent: Clear <-> Child: Clear - Parent: Picklist <-> Child: Picklist - Exception: When the parent field has its Replace with field option set to Custom…, then its child field's Replace with field option is set to Picklist. # Dependent Picklists Use a dependent picklist to help your users enter accurate and consistent data. A dependent picklist is a custom or multi-select picklist for which the valid values depend on the value of another field, called the controlling field. A controlling field can be any picklist (with at least one and fewer than 300 values) or checkbox field on the same record. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example For example, you can define a Reason custom picklist on opportunities and make its valid values depend on the value of the Stage picklist like this: - If Stage is Closed Won, the valid values for Reason are `Superior features` or `Lower price`. - If Stage is Closed Lost, the valid values for Reason are `Inferior features`, `Higher price`, or `Company viability`. - **[Define a Dependent Picklist](https://help.salesforce.com/s/articleView?id=platform.fields_defining_field_dependencies.htm&release=264.0.0&type=5)** Specify a dependent picklist and its values for your org. - **[Use the Field Dependency Matrix](https://help.salesforce.com/s/articleView?id=platform.fields_using_the_field_dependency_matrix.htm&release=264.0.0&type=5)** The field dependency matrix lets you specify the dependent picklist values that are available when a user selects each controlling field value. The top row of the matrix contains the controlling field values, while the columns list the dependent field values. Use this matrix to include or exclude values. Included values are available in the dependent picklist when a value in the controlling field is selected. Excluded fields aren’t available in the dependent picklist for the selected controlling field value. - **[Edit Dependent Picklists](https://help.salesforce.com/s/articleView?id=platform.fields_editing_field_dependencies.htm&release=264.0.0&type=5)** Modify field dependencies in picklists. - **[Delete Picklist Dependencies](https://help.salesforce.com/s/articleView?id=platform.fields_deleting_field_dependencies.htm&release=264.0.0&type=5)** If you no longer want the values of a dependent picklist to depend on a controlling field, delete its dependency. Deleting the dependency removes the logic that defines how the values of the picklist depend on the controlling field, but doesn't delete the fields or affect their data. - **[Dependent Picklist Considerations](https://help.salesforce.com/s/articleView?id=platform.fields_dependent_field_considerations.htm&release=264.0.0&type=5)** When defining dependent picklists, review these considerations. # Dependent Picklists Screen Input Component Display picklists in a flow screen in which the options for one picklist depend on the selected value of another picklist. The Dependent Picklists screen component determines which options to display in each picklist by using an existing field dependency in your org. A field dependency connects two picklist fields on the same object. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This screen component requires Lightning runtime. ## Configure the Dependent Picklists Component ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip Before you add a Dependent Picklists screen component to your flow, define field dependencies for the appropriate picklist fields in your org. You can select resources from the flow, such as variables or global constants, or you can manually enter a value.
Attribute Description
API Name

The API name of the component.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Disabled

If set to true, the user can’t modify the value. The default value is false.

This attribute accepts a resource with a Boolean value.

Object API Name

The API name of the object. The picklist fields that you identify in Picklist 1 API Name, Picklist 2 API Name, and Picklist 3 API Name must be associated with this object.

This attribute accepts single-value resources. The value is treated as text.

Picklist 1 API Name

The API name of the first picklist field. For the specified object, this picklist field must be the controlling field in a field dependency between Picklist 1 and Picklist 2.

This attribute accepts single-value resources. The value is treated as text.

Picklist 1 Label

The label for the first picklist field.

This attribute accepts single-value resources. The value is treated as text.

Picklist 1 Required

If set to $GlobalConstant.True, the running user must enter a value.

This attribute accepts single-value Boolean resources.

Picklist 1 Value

The default selection for the first picklist field. Configuring this attribute pre-selects an option for the field.

This attribute accepts single-value resources. The value is treated as text.

Picklist 2 API Name

The API name of the second picklist field. For the specified object, this picklist field must be the dependent field in a field dependency between Picklist 1 and Picklist 2. If you display a third picklist field, Picklist 2 must be the controlling field in a field dependency between Picklist 2 and Picklist 3.

This attribute accepts single-value resources. The value is treated as text.

Picklist 2 Label

The label for the second picklist field.

This attribute accepts single-value resources. That value is treated as text.

Picklist 2 Required

If set to $GlobalConstant.True, the running user must enter a value.

This attribute accepts single-value Boolean resources.

Picklist 2 Value

The default selection for the second picklist field. Configuring this attribute pre-selects an option for the field.

This attribute accepts single-value resources. The value is treated as text.

Picklist 3 API Name

The API name of the third picklist field. For the specified object, this picklist field must be the dependent field in a field dependency between Picklist 2 and Picklist 3.

This attribute accepts single-value resources. That value is treated as text.

Picklist 3 Label

The label for the third picklist field.

This attribute accepts single-value resources. The value is treated as text.

Picklist 3 Required

If set to $GlobalConstant.True, the running user must enter a value.

This attribute accepts single-value Boolean resources.

Picklist 3 Value

The default selection for the third picklist field. Configuring this attribute pre-selects an option for the field.

This attribute accepts single-value resources. The value is treated as text.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If your org has a namespace, add the namespace to the beginning of the object's API name, and each picklist API Name. For example, if you have a custom object called Insurance\_Agent\_\_c, and your org's namespace is Acme, enter Acme\_\_Insurance\_Agent\_\_c. ## Store the Dependent Picklists Component’s Values in the Flow The flow stores values automatically. If you store values manually, store the attribute’s output value in a variable. To store values manually, select **Manually assign variables (advanced)**. All attributes are available to store in flow variables. Most likely, you must store one of these attributes.
Attribute Description
Picklist 1 Value

What the user selected for the first picklist field.

You can store this value in a single-value Text variable or a Text field on a record variable.

Picklist 2 Value

What the user selected for the second picklist field.

You can store this value in a single-value Text variable or a Text field on a record variable.

Picklist 3 Value

What the user selected for the third picklist field.

You can store this value in a single-value Text variable or a Text field on a record variable.

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip By default, screen components that run on Lightning runtime version 58 and prior have no memory. If a user enters a value, and then does one of the following, the value is lost. - Navigates to another screen and returns to the component’s screen. - Pauses the flow then resumes it. - Navigates to the next screen and triggers an input validation error. Setting the attribute enables a flow to remember the value. The flow stores the value automatically. If you store values manually, store the attribute’s output value in a variable. ## Set the Component Visibility Specify the logic that determines when the flow displays the component.
Option Description
When to Display Component

Configure when the component is displayed by using conditional logic.

You can set the components to:

Always
Always display the component.
When all conditions are met (AND)
Display the component when all of the conditions that you define are met. Define at least one condition.
When any condition is met (OR)
Display the component when at least one of the conditions that you define is met. Define at least one condition.
When custom conditional logic is met
Display the component when the condition logic that you define is met. Define at least one condition and specify condition logic.
## Validate Input Provide a formula that evaluates whether what the user entered is valid and the error message to display if invalid.
Option Description
Error Message Specify the error message that appears below the component if the user enters an invalid value.
Formula

Provide a formula expression that returns a Boolean value.

If the formula expression evaluates to true, the input is valid. If the formula expression evaluates to false, the error message appears below the component.

If the user leaves the field blank and the field isn’t required, the flow doesn’t perform the validation. If the user leaves the field blank and the field is required, the flow shows the default error message and not your custom error message.

## Specify the Behavior of Values on Revisited Screens Specify what this component does when a user enters a value, navigates to a previous screen, and then returns to the screen with this component.
Option Description
Use values from when the user last visited this screen The component retains the values that the user specified and doesn’t update the values to reflect changes made on previous screens.
Refresh inputs to incorporate changes elsewhere in the flow

The component updates the user-specified values to reflect changes made on previous screens.

If you pause and then resume the flow, the flow retains user-specified values only in Checkbox, Checkbox Group, Currency, Long Text Area, Multi-Select Picklist, Number, Password, Picklist, Radio Buttons, and Text components.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example For example, in a Dinner Order flow, users select a specific dessert. Each dessert comes in different flavors, and the flavor options change based on the dessert that the user selects. On the Guest Order custom object, define two picklist fields: Dessert and Flavor. Next, define a field dependency between Dessert and Flavor, where Dessert is the controlling picklist. Identify which Flavor options apply to each Dessert option. ![A field dependency that maps Flavor options to Dessert options.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_screencmp_dependentpicklist_dependency.png) In your flow screen, add a Dependent Picklists screen component. Configure the component with these values. | Attribute | Value | | --- | --- | | **Object API Name** | Guest\_Order\_\_c | | **Picklist 1 API Name** | Dessert\_\_c | | **Picklist 1 Label** | Dessert | | **Picklist 2 Value** | Flavor\_\_c | | **Picklist 2 Label** | Flavor | When a user runs the flow, the options for Flavor change based on what’s selected for Dessert. ![A dependent picklist component at run time, which offers different Flavor options based on what the flow user selects for Dessert.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_screencmp_dependentpicklist.png) ## Considerations Screen input component values are set to null when they’re hidden by conditional visibility. But hidden picklists in a Dependent Picklists component aren’t set to null unless the entire Dependent Picklists component is hidden. #### See Also - [Standard Flow Screen Components](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp.htm&release=264.0.0&type=5 "Salesforce provides several standard screen components that extend the types of input fields available in screens.") - [Define Dependent Picklists](https://help.salesforce.com/s/articleView?id=platform.fields_defining_field_dependencies.htm&language=en_US) # Deploy a Change Set You can deploy the contents of an inbound change set as a whole but not on a component-by-component basis. 1. From Setup, enter Inbound Change Sets in the Quick Find box, then select **Inbound Change Sets**. 2. Click **Deploy** next to the change set you want to deploy. If you prefer to review the change set before deploying it, first click the name of the change set to view its detail page. When ready, click **Deploy**. If the change set has been deleted from its source org, the **Deploy** link isn’t available. If a deployment of the change set is already in progress, the **Deploy** link isn’t available until after the deployment completes. Alternatively, you can perform a quick deployment to shorten your deployment time to production. Change sets that have been successfully validated can sometimes qualify for a quick deployment. For more information, see [Quick Deployments](https://help.salesforce.com/s/articleView?id=platform.deploy_monitoring.htm&release=264.0.0&type=5). To prevent a deployment from failing when components are referenced by Apex jobs, in the Deployment Settings page, click **Allow deployments of components when corresponding Apex jobs are pending or in progress**, and then click **Save**. This option lets you deploy components that are referenced by Apex jobs—including scheduled jobs, batch jobs, and future methods— that are pending or in progress. This option applies to change sets and deployments that are started through the Metadata API. A change set is deployed in a single transaction. If the deployment is unable to complete for any reason, the entire transaction is rolled back. After a deployment completes successfully, all changes are committed to your org and the deployment can’t be rolled back. The Lightning Platform requires that at least 75% of your code is covered by unit tests before you can deploy it to a production org. Ideally, strive for 100% coverage. The code coverage restriction isn’t enforced for sandbox or Developer Edition orgs. - Enabling this option can sometimes cause Apex jobs to fail due to unsupported changes. - This option doesn’t affect editing and saving Apex code in the Salesforce user interface (in Setup or the Developer Console). These operations fail when there are active jobs associated with the Apex class. #### See Also - [View Inbound Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets_inbound_view_list.htm&release=264.0.0&type=5 "The Inbound Change Sets page lists change sets awaiting deployment, as well as the history of deployed change sets.") - [Viewing Change Set Details](https://help.salesforce.com/s/articleView?id=platform.changesets_inbound_view_detail.htm&release=264.0.0&type=5 "The Change Sets detail page lists information about a particular change set.") - [When Change Sets Become Unavailable](https://help.salesforce.com/s/articleView?id=platform.changesets_inbound_view_unavailable.htm&release=264.0.0&type=5 "A change set deployed from a source sandbox that you recently deleted or refreshed can temporarily appear available for deployment in the target org.") - [Special Behavior in Deployments](https://help.salesforce.com/s/articleView?id=platform.deploy_special_behavior.htm&release=264.0.0&type=5 "Use the information here to determine what to include in your deployment and how the changes appear in the destination.") - [Monitor Deployments of Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets_monitor_deployment.htm&release=264.0.0&type=5 "Track the status of deployments that are in progress in the Deployment Status page.") # Deploy a Flow Approval Process After you’ve designed and tested your flow approval process, you’re ready to put it to work. - **[Set Up an Org-Wide Email Address for Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_deploy_create_org_wide_email_address.htm&release=264.0.0&type=5)** To send emails from Flow Approval Processes, create an org-wide email address. - **[Activate or Deactivate a Flow Approval Process](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_distribute_activate.htm&release=264.0.0&type=5)** You can have multiple versions of a flow approval process in Salesforce, but only one version of each flow approval process can be active at a time. You can activate or deactivate a flow approval process in Flow Builder or from the flow approval process’s detail page in Setup. - **[Make Autolaunched Flow Approval Processes Available to Users](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_deploy_allow_users_to_submit_approval.htm&release=264.0.0&type=5)** Approvals based on an active, record-triggered flow approval process automatically run when a record is added or updated and meets the flow approval process’s entry criteria. However, approvals based on an active, autolaunched flow approval process aren’t run automatically. Before a user can manually submit an approval, create a button that calls an active autolaunched flow approval process and add the button to the relevant record page. # Deploy an Orchestration After you design and test your orchestration, it’s time to put it to work! - **[Set Up an Org-Wide Email Address for Orchestrations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_deploy_create_org_wide_email_address.htm&release=264.0.0&type=5)** To send emails from Flow Orchestration, create an org-wide email address. - **[Activate or Deactivate an Orchestration](https://help.salesforce.com/s/articleView?id=platform.orchestrator_distribute_activate.htm&release=264.0.0&type=5)** You can have multiple versions of an orchestration in Salesforce, but only one version of each orchestration can be active at a time. You can activate or deactivate an orchestration in Flow Builder or from the orchestration’s detail page in Setup. - **[Deploy Orchestrations with Change Sets](https://help.salesforce.com/s/articleView?id=platform.orchestrator_deploy_with_change_sets.htm&release=264.0.0&type=5)** Create, test, and debug your orchestrations in a sandbox. Use a change set to send the orchestration and its associated flows to production when you’re ready to deploy. # Deploy API Catalog Data Using Change Sets After you create, test, and debug your API Catalog configuration in a sandbox, use a change set to send the catalog and its associated dependencies, such as external services entries and named credentials, to production when you’re ready to deploy. ### Required Editions
Available in: Lightning Experience
Available in: Developer, Enterprise, Performance, and Unlimited Editions
User Permissions Needed
To access API Catalog:

Available to Salesforce admins by default.

For other users, View Setup

To edit deployment connections:

Deploy Change Sets

AND

Modify Metadata Through Metadata API Functions

To use outbound change sets: Create and Upload Change Sets
To use inbound change sets:

Deploy Change Sets

AND

Modify Metadata Through Metadata API Functions

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important You can’t use managed packages to promote API Catalog data from org to org. The authentication data necessary for API Catalog can’t be retained and installed in a separate org, and you can’t edit the authentication information installed through a package in the target org. 1. Create an outbound change set in the source org for the API Catalog entries you want to deploy to another org. See [Outbound Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets_about_outbound.htm&language=en_US). 2. Add **Cataloged API** to the change set and then select the catalog entries to include in the change set. The dependencies are automatically selected for you. 3. Upload your outbound change set. 4. Deploy your inbound change set in your target org. See [Inbound Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets_about_inbound.htm&language=en_US). 5. Make sure MuleSoft API connections that are in Custom status have valid external credentials, because API Catalog can’t automatically verify or create those during the connection process. See [Create and Manage Connections for Your APIs](https://help.salesforce.com/s/articleView?id=platform.api_catalog_create_connections_for_apis.htm&release=264.0.0&type=5 "Create connections to authorize the use of actions you activate for MuleSoft APIs and HTTP callouts in Salesforce. You create connections for other external API sources from outside of API Catalog, and then you can view the connections from the catalog."). ## Deploy Change Sets Using Salesforce CLI You can alternatively deploy change sets using Salesforce CLI commands. 1. Create an empty Salesforce DX project. See [Salesforce DX Developer Guide: Create a Salesforce DX Project](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_create_new.htm). 2. Create a package XML file that has these metadata API components as shown in the example. - CatalogedApi - CatalogedApiVersion - CatalogedApiArtifactVersionInfo - ExternalServiceRegistration - NamedCredential - ExternalCredential - PermissionSet - Flow ``` * PermissionSet * ExternalCredential * NamedCredential * ExternalServiceRegistration * CatalogedApiArtifactVersionInfo * CatalogedApi * CatalogedApiVersion * Flow 65.0 ``` 3. Pull the package into your local project to create a change set by using the `sf project retrieve start` command. This example creates a change set in a source org with the org ID mySandboxOrg. ``` sf project retrieve start --manifest package.xml --api-version 65.0 --target-org mySandboxOrg ``` 4. Deploy to the target org by using the `sf project deploy start` command. This example deploys the change set to a target org with the org ID myProdOrg. ``` sf project deploy start -o myProdOrg ``` #### See Also - [Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets.htm&language=en_US) - [_Developer Documentation:_ Metadata API Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_intro.htm) - [_Developer Documentation:_ Salesforce CLI Command Reference](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_project_commands_unified.htm) # Deploy Changes Using Salesforce CLI (Beta) Use Salesforce CLI to deploy changes to a pipeline stage’s environment or to perform a validate-only deployment. You must externally merge any changes in the source control repository before you can perform the deployment using the CLI. While the CLI command runs, you can see the progress of the promotion reflected in the DevOps Center Pipeline Stages tab. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note This feature is a Beta Service. Customer may opt to try such Beta Service in its sole discretion. Any use of the Beta Service is subject to the applicable Beta Services Terms provided at [Agreements and Terms](https://www.salesforce.com/company/legal/agreements/). The DevOps Center CLI plugin is compatible with DevOps Center package version 6.0 or later. The DevOps Center plugin (`plugin-devops-center`) is installed the first time you run a CLI command. To install and configure the CLI, see the [Salesforce CLI Setup Guide](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_intro.htm). Salesforce CLI releases on a weekly basis. See the [Salesforce CLI Release Notes](https://github.com/forcedotcom/cli/blob/main/releasenotes/README.md) for information on the timing for the official release of the DevOps Center plugin. The CLI commands for DevOps Center include: | Command | Description | | --- | --- | | `project deploy pipeline start` | Deploy changes from a branch to the pipeline stage’s org. | | `project deploy pipeline report` | Check the status of a pipeline deployment operation. | | `project deploy pipeline resume` | Resume watching a pipeline deployment operation. | | `project deploy pipeline validate` | Perform a validate-only deployment from a branch to the pipeline stage’s org. You can create a validation for only the bundling stage and versioned stages. | | `project deploy pipeline quick` | Quickly deploy a validated deployment to an org. | To see all command options, you can view help directly in a terminal or command window. Append `--help` to the command name. In this example, all `project deploy pipeline` commands are listed: ``` sf project deploy pipeline --help ``` To view condensed help for a command, use the `-h` flag. For detailed information on all CLI commands, see the [Salesforce CLI Command Reference](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference.htm). To use the DevOps Center CLI commands, you must: - Be assigned the DevOps Center Release Manager permission set. This permission set enables you to perform promotions. Ask a Salesforce admin or project manager for assistance. - Authorize the org in which DevOps Center is installed. The easiest way to authorize an org is with the `org login web` command. See [Authorization](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth.htm) in the Salesforce DX Developer Guide for details. The following examples demonstrate how to deploy changes to a pipeline stage’s environment using Salesforce CLI. First, changes must be merged to a pipeline stage branch directly in the source control repository. When the `pipeline deploy` command is run, all externally merged changes are deployed to the corresponding pipeline stage environment. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_tip.png) Tip To avoid having to indicate the `--devops-center-username` each time you run a DevOps Center CLI command, you can set it using a configuration variable. See `target-devops-center` in the Salesforce CLI Setup Guide: [Configuration Variables](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_dev_cli_config_values.htm) for details. In these examples, line breaks are added for readability purposes. In this first example, several work item feature branches were merged to the Integration branch. To deploy the changes from the Integration branch to the Integration environment: ``` sf project deploy pipeline start --branch-name recruit-integration --devops-center-username MyDevOpsCenterOrg --devops-center-project-name "Recruiting App" ``` In this example, UAT is the bundling stage, which means that you indicate a version identifier. To deploy all merged changes in a version 1.0 bundle to the UAT environment: ``` sf project deploy pipeline start --branch-name recruit-uat --devops-center-username MyDevOpsCenterOrg --devops-center-project-name "Recruiting App" --bundle-version-name 1.0 ``` In this example, you’re ready to validate the changes in the Staging branch so you can perform a quick deployment to production. When ready, you can perform the quick deployment in DevOps Center Pipeline Stages. To run a validate-only deployment: ``` sf project deploy pipeline validate --branch-name recruit-staging --devops-center-username MyDevOpsCenterOrg --test-level RunLocalTests --devops-center-project-name "Recruiting App" ``` #### See Also - [_Salesforce CLI Command Reference_: sf project deploy pipeline](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_project_commands_unified.htm) # Deploy Custom Metadata Types and Records to Production Orgs Using Change Sets Use change sets to deploy custom metadata types and records from a sandbox to another org. Typically you deploy the change set to a production org. ### Required Editions
Available in: Salesforce Classic and Lightning Experience

Available in: Enterprise, Performance, Unlimited, and Developer Editions

You can create, edit, and delete custom metadata type records from installed packages in: Group and Professional Editions

You can add custom metadata types and records to change sets using the Lightning Platform user interface. From Setup, enter Outbound Change Sets in the Quick Find box, then select **Outbound Change Sets**, click your change set name, and then click **Add**. #### See Also - [Custom Metadata Types](https://help.salesforce.com/s/articleView?id=platform.custommetadatatypes_overview.htm&release=264.0.0&type=5 "You can create your own declarative developer frameworks for internal teams, partners, and customers. Rather than building apps from data, you can build apps that are defined and driven by their own types of metadata. Metadata is the information that describes the configuration of each customer’s organization.") ## Add Custom Metadata Types 1. Select the **Custom Metadata Type** component type. 2. Select the custom metadata type you want to add to your outbound change set. 3. Click **Add to Change Set**. 4. To view the dependent components, such as a custom field or a page layout, click **View/Add Dependencies**. 5. Select the dependent components you want to add. 6. Click **Add to Change Set**. ## Add Custom Metadata Records 1. Select the custom metadata type’s label ​from the available component types, for example, `Threat Tier`. If the type is from a package that you’re extending, use `Threat Tier [vacations]`. 2. Select the records to add. 3. Click **Add to Change Set**. If you add a record to a change set, its corresponding type is included in the list of dependent components. If you add a type to a change set, its records are not automatically included in the list of dependent components. For more information on using change sets, see the [Change Set Development Model](https://trailhead.salesforce.com/modules/declarative-change-set-development) module on Trailhead. # Deploy Metadata and Data from DX Inspector Quickly move metadata and configuration data from your current Salesforce org (source org) to a target org in a single orchestration. You can access this feature from the Change Management tab in DX Inspector. This type of direct deployment is ideal for moving small, specific changes without using a full DevOps pipeline. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note Metadata deployment is a beta feature, and data deployment is a developer preview feature. If you’re looking for an alternative to Change Sets, try this feature. Metadata and data deployment feature deploys metadata first and then the related data. It retrieves selected records from the source org and migrates them to the target org. To maintain data integrity, it migrates records based on their relationships. For example, the feature migrates parent records first to capture their new record IDs, and then it migrates and maps child records to the correct parent records by using these IDs. If external IDs are present, they’re used to upsert records, preventing duplicates and ensuring existing records in the target org are updated with the latest changes. Interested in learning more about this feature? See [Metadata (Beta) and Data (Developer Preview) Deployment](https://help.salesforce.com/s/articleView?id=platform.metadata_and_data_deployment.htm&language=en_US). #### See Also - [Enable Metadata (Beta) and Data (Developer Preview) Deployment](https://help.salesforce.com/s/articleView?id=platform.enable_metadata_and_data_deployment.htm&language=en_US) # Deploy Metadata and Data to a Target Org Move your metadata changes and configuration data from your current org to a target org.  ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To deploy metadata and configuration data: Customize Application
- Plan your deployment. See [Plan and Prepare for Deployment](https://help.salesforce.com/s/articleView?id=platform.plan_for_deployment.htm&release=264.0.0&type=5 "A successful deployment starts with a solid plan. To avoid conflicts or missing dependent metadata and configuration data during deployments, review these prerequisites, best practices, and limitations.") From DX Inspector, go to the Change Management tab. ## Select Metadata to Deploy 1. On the Metadata tab, select the metadata files to deploy. 2. (Optional) To view relationships for a selected metadata component, click the down arrow ![Down arrow icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_icon_action_list_item_dropdown.png) icon, then select **View Dependencies...**. A window displays the metadata relationships in a hierarchical tree. 3. (Optional) Select related metadata to include in the deployment. ## Select Data Records to Migrate 1. On the Data tab, find the data object that you want to migrate. 2. In the data object row, click the down arrow (![Down arrow icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_icon_action_list_item_dropdown.png) ) icon, and then select **Select Associated Records...**. 3. To configure the selected object, complete these steps: 1. Select a unique External ID to map records and prevent duplicates. 2. (Optional) To include only specific fields, click **Edit Fields**. By default, the required fields are selected. 3. (Optional) To migrate a subset of records, click **Add Filters** and define your filter criteria. ![Define external ID, filters, and fields for data deployment](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/dx_deploy_data.png) 4. Click **Select Related Objects**. Related parent and child objects are listed. Parent objects are selected by default. 5. On the Child Objects tab, select a unique External ID to map records and prevent duplicates. ![Child objects tab for the Price Book standard object.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/dx_deploy_child_object.png) 6. Select the records to migrate, then click **Review Configuration.** 7. (Optional) In the data object row, click the down arrow ( ![Down arrow icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lex_icon_action_list_item_dropdown.png)) icon to download or remove the records. 8. Review the list of filtered records and click **Add**. ## Deploy Metadata and Data 1. On the Change Management tab, click **Deploy Options...**. 2. In the Deploy Changes window, select the target org. ![Deploy changes to a target org](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/dx_deploy_changes.png) 3. (Optional) If your target org isn’t listed, connect to a new org and authenticate. 4. Select one of these options: - If you’ve added all dependencies and are ready to proceed, click **Next**. - To view metadata relationships or add more dependencies, click **Check Dependencies**. 5. Review the deployment summary and click **Deploy**. # Deploy Orchestrations with Change Sets Create, test, and debug your orchestrations in a sandbox. Use a change set to send the orchestration and its associated flows to production when you’re ready to deploy. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

To edit deployment connections:

Deploy Change Sets

AND

Modify Metadata Through Metadata API Functions

To use outbound change sets: Create and Upload Change Sets
To use inbound change sets: Deploy Change Sets AND Modify Metadata Through Metadata API Functions
Create and upload the outbound change set in your sandbox, and deploy the inbound change set in production. 1. Ensure that all group names and queue names used in the source org to assign interactive steps to users duplicate the names used in the target org. 2. Ensure that no interactive steps are directly assigned to a specific user. 1. Create constants for each assigned user who’s directly assigned to an interactive step in the orchestration. 2. Assign each interactive step to the appropriate assigned-user constant. 3. Activate your orchestration and all its referenced flows. 4. Create an outbound change set. 5. Add components to the new change set. These components include the orchestration, its associated flows, and any new custom actions or new custom flow screen components that the associated flows depend on. 6. Upload your outbound change set. 7. Deploy your inbound change set in your target org. 8. Update any assigned-user constants in the orchestration, and save a new version of the orchestration. 9. Activate the new version of the orchestration. Ensure that the page layouts for each context record referenced in the orchestration include the Orchestrator Work Guide Lightning App Builder component. #### See Also - [_Sandboxes: Staging Environments for Customizing and Testing_ : Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets.htm&language=en_US) # Deploy Processes and Flows as Active By default, processes and flows that are active in a sandbox or non-production org are deployed to a production org as inactive. After deployment, manually reactivate the new versions. In production orgs, you can enable the setting to deploy a new active version of a process or flow via change sets or Metadata API. If you use a continuous integration and continuous delivery model to deploy metadata changes, enable the option to deploy processes and flows as active. ### Required Editions
View supported editions.
User Permissions Needed
To edit process automation settings: Customize Application
To create, update, and delete flow list views: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This setting applies to processes and autolaunched flows that are deployed via change sets and Metadata API. This setting isn't available in developer, sandbox, or other non-production orgs because you can always deploy a new active version. 1. From Setup, in the Quick Find box, enter Automation, then select **Process Automation Settings**. 2. Select **Deploy processes and flows as active**. 3. Enter the flow test coverage percentage. 4. Save your changes. Before you can deploy a process or autolaunched flow as active, make sure you meet flow test coverage requirements. At least one Apex test must cover the flow test coverage percentage of the active processes and autolaunched flows. Flow test coverage requirements don’t apply to flows that have screens. To calculate your flow test coverage, determine the number of all active flow versions with or without test coverage. Also determine the number of flow versions that are inactive, the latest version, and have test coverage. Here’s a sample query. ```sql SELECT count_distinct(Id) FROM Flow WHERE Status = 'Active' AND Id NOT IN ( SELECT FlowVersionId FROM FlowTestCoverage ) + SELECT count_distinct(FlowVersionId) FROM FlowTestCoverage ``` To determine the number of all latest flow versions that have test coverage, run all tests and use the Tooling API FlowTestCoverage object. Here’s a sample query. ```sql SELECT count_distinct(FlowVersionId) FROM FlowTestCoverage ``` Divide the second number (number of all latest flow versions that have test coverage) by the first number (number of all active versions with or without test coverage and all of the latest inactive versions that have test coverage). For example, you have a total of 10 flows. Flow A has two versions. The latest version is inactive with test coverage. The first version is active without test coverage. Flows B-E each have only one version, and each version is inactive with test coverage. Flows F-J each have only one version, and each version is active with test coverage. The flow test coverage is 90%. | Flow Label | Version | Status | Test Coverage | | --- | --- | --- | --- | | Flow A | 2 | Inactive | Yes | | Flow A | 1 | Active | No | | Flow B | 1 | Inactive | Yes | | Flow C | 1 | Inactive | Yes | | Flow D | 1 | Inactive | Yes | | Flow E | 1 | Inactive | Yes | | Flow F | 1 | Active | Yes | | Flow G | 1 | Active | Yes | | Flow H | 1 | Active | Yes | | Flow I | 1 | Active | Yes | | Flow J | 1 | Active | Yes | ```sql SELECT FlowVersion.Definition.DeveloperName FROM FlowTestCoverage GROUP BY FlowVersion.Definition.DeveloperName ``` ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip To get the names of all active autolaunched flows and processes that don’t have test coverage, use this query. ```sql SELECT Definition.DeveloperName FROM Flow WHERE Status = 'Active' AND (ProcessType = 'AutolaunchedFlow' OR ProcessType = 'Workflow' OR ProcessType = 'CustomEvent' OR ProcessType = 'InvocableProcess') AND Id NOT IN (SELECT FlowVersionId FROM FlowTestCoverage) ``` #### See Also - [_Tooling API_ : FlowTestCoverage](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_flowtestcoverage.htm) - [_Salesforce Help_: Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets.htm&language=en_US) # Deploy Using Change Sets You can deploy workflows, rules, Apex classes and triggers, and other customization from a sandbox org to your production org. You can create an outbound change set in the Salesforce user interface and add the components that you want to upload and deploy to the target org. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in Enterprise, Performance, Professional, Unlimited, and Database.com Editions
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note To deploy metadata and configuration simulateneously, use DX Inspector. See [Deploy Metadata and Data from DX Inspector](https://help.salesforce.com/s/articleView?id=platform.code_tools_deploy_metadata_and_data.htm&language=en_US). 1. To access change sets, from Setup, enter Outbound Change Sets in the Quick Find box. 2. Select **Outbound Change Sets**. #### See Also - [Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets.htm&release=264.0.0&type=5 "Use change sets to send customizations from one Salesforce org to another. For example, you can create and test a new object in a sandbox org, then send it to your production org using a change set. Change sets can contain only modifications you can make through the Setup menu. For example, you can’t use a change set to upload a list of contact records. Change sets contain information about the org. They don’t contain data, such as records.") - [Choose Your Tools for Developing and Deploying Changes](https://help.salesforce.com/s/articleView?id=platform.code_tools_ant.htm&release=264.0.0&type=5 "Whether you’re an admin using point-and-click tools or a developer writing code, you can pick the right tool, work in a sandbox, and deploy complete changes to a production org. You can customize and code changes for your org in a sandbox using one, or more, of the tools provided by Salesforce.") # Deploy Using Lifecycle Center Manage changes and releases collaboratively with Lifecycle Center, a tool designed for both low-code admins and pro-code developers. Lifecycle Center ensures a single source of truth and provides governed, version-controlled deployments by connecting your development environments (sandboxes, scratch orgs) to a source control repository. Lifecycle Center tracks changes in work items and moves them through a configurable pipeline. Each pipeline stage includes a branch and a target org. Promoting work items between stages deploys your changes to the target org. Use Lifecycle Center to manage releases with built-in approval and visibility, especially when multiple teams share the environments and release paths. With Lifecycle Center, you can: - Track changes in work items. - Commit changes, including metadata and configuration data, from your org using DX Inspector. - Create change requests for peer review. - Promote work items through pipeline stages. - Resolve merge conflicts or deployment failures using Lifecycle Center Model Context Protocol (MCP) tools. For smaller, specific deployments of metadata and configuration data that don't require a full pipeline, use the metadata and data deployment feature from DX Inspector. See [Metadata and Data Deployment](https://help.salesforce.com/s/articleView?id=platform.metadata_and_data_deployment.htm&language=en_US) Interested in learning more? See [Next Generation DevOps Center](https://help.salesforce.com/s/articleView?id=platform.next_generation_devops_center.htm&language=en_US) and [Application Lifecycle Management Journey with DevOps Center](https://help.salesforce.com/s/articleView?id=platform.next_gen_devops_center_alm_journey.htm&language=en_US). #### See Also - [Set Up DevOps Center](https://help.salesforce.com/s/articleView?id=platform.next_generation_devops_center.htm&language=en_US) - [Deploy Metadata and Data from DX Inspector](https://help.salesforce.com/s/articleView?id=platform.devops_testing_improve_release_quality_with_devops_testing.htm&language=en_US) # Deploy Your Changes Migrate metadata changes between Salesforce orgs by using the deployment tools available in Setup. To access these pages, use the Quick Find box. - Deployment Settings: To use the change sets feature, a deployment connection is required. You can specify connection permissions for both outbound and inbound change sets on the Deployment Connections page. - Deployment Status: Monitor the progress of deployments made through the Metadata API. - Outbound Change Sets: Make changes in the org you are logged into, and upload those changes to another org. - Inbound Change Sets: Accept, modify, or reject change sets uploaded from other orgs. - **[Choose Your Tools for Developing and Deploying Changes](https://help.salesforce.com/s/articleView?id=platform.code_tools_ant.htm&release=264.0.0&type=5)** Whether you’re an admin using point-and-click tools or a developer writing code, you can pick the right tool, work in a sandbox, and deploy complete changes to a production org. You can customize and code changes for your org in a sandbox using one, or more, of the tools provided by Salesforce. - **[Connect Organizations for Deployment](https://help.salesforce.com/s/articleView?id=platform.deploy_connection_parent.htm&release=264.0.0&type=5)** Deploy connections for change sets and authorize a deployment connection. - **[Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets.htm&release=264.0.0&type=5)** Use change sets to send customizations from one Salesforce org to another. For example, you can create and test a new object in a sandbox org, then send it to your production org using a change set. Change sets can contain only modifications you can make through the Setup menu. For example, you can’t use a change set to upload a list of contact records. Change sets contain information about the org. They don’t contain data, such as records. - **[Metadata API Edit Access](https://help.salesforce.com/s/articleView?id=platform.meta_modify_metadata_perm.htm&release=264.0.0&type=5)** To use Metadata API, a user must have these things. - **[Deployment Best Practices](https://help.salesforce.com/s/articleView?id=platform.deploy_best_practices.htm&release=264.0.0&type=5)** Keeping your live Salesforce environment (production org) running smoothly is critical for maintaining customer trust. How do you do that? By making smart, deliberate choices that follow best practices around governance and change management. A solid deployment strategy ensures that you're introducing changes into your system thoughtfully, which helps you maintain stability and avoid disruptions that can adversely affect your customers or business. - **[Special Behavior in Deployments](https://help.salesforce.com/s/articleView?id=platform.deploy_special_behavior.htm&release=264.0.0&type=5)** Use the information here to determine what to include in your deployment and how the changes appear in the destination. - **[Monitor Deployments](https://help.salesforce.com/s/articleView?id=platform.deploy_monitoring.htm&release=264.0.0&type=5)** You can monitor deployments that are in progress, check which deployments are waiting for execution, and view the results of completed deployments on the Deployment Status page. #### See Also - [_Salesforce Help_: Deploy Data Cloud Changes from a Sandbox](https://help.salesforce.com/s/articleView?id=data.c360_a_data_cloud_sandbox_deploy.htm&type=5&language=en_US) # Deployment Best Practices Keeping your live Salesforce environment (production org) running smoothly is critical for maintaining customer trust. How do you do that? By making smart, deliberate choices that follow best practices around governance and change management. A solid deployment strategy ensures that you're introducing changes into your system thoughtfully, which helps you maintain stability and avoid disruptions that can adversely affect your customers or business. ## Why Developing Directly in Production Isn't a Good Idea Deploying changes directly to your live Salesforce production environment is generally not a good idea because it introduces significant risks to your business and users. Even small modifications can have unexpected, cascading effects that disrupt your system. For instance, changing a field's type can irreversibly alter data or cause Apex code to recompile. A single, untested update can break a critical process, mess up your data, or make the system unusable for your team or your customers, leading to a scramble to fix things while everyone waits. When you’re developing or modifying an app, the safest place to make and test changes is in a dedicated development environment, such as a sandbox or scratch org. And some changes must be made in a development environment to safeguard your production org, such as writing Apex code. A robust release pipeline with multiple testing stages ensures a smooth deployment to production by: - Validating that integrated changes work together. - Allowing you to practice the deployment to identify any issues. - Making sure you include everything you need in your deployment artifact. If you missed something, it'll be obvious when you test it. - Providing multiple stakeholders the opportunity to test the changes in a Partial Copy or Full sandbox (user acceptance testing). ## What Changes Can You Make Directly in Production? While developing or modifying applications in your production org is generally not recommended, some administrative tasks are perfectly fine to perform directly in production. These tasks typically don't involve changing or building applications themselves, but rather managing existing configurations or user access. For instance, you can safely perform administrative tasks such as: - Developing email templates. - Creating or editing users. - Creating or editing permission sets and profiles. These types of actions are common and acceptable to execute directly in your live org. They help to keep it running smoothly without the risks associated with larger development changes. ## Embrace Change Management and Good Governance Maintaining a healthy and stable production environment is crucial for your business and customers. This requires a strategic approach to deployment, grounded in best practices for governance and change management, also known as application lifecycle management (ALM). These practices establish a framework for change: defining what, when, and how changes are introduced. This gives teams confidence and provides traceability, leading to smoother, more consistent deployments. Here are some suggested governance rules to encourage good development practices. - Minimize who can develop in production. Limit "Customize Application" access to admins. - Restrict permissions to perform programmatic deployments to a small number of admins. - Be judicious about the changes you make via the Setup in production, and stick to administrative tasks. ## Be Strategic About Deployment Timing During a Salesforce deployment, the impact on users can range from a minor inconvenience to a complete disruption, depending on the type of changes and the time of the deployment. Be sure to steer clear of peak hours when everyone's actively using the system. Avoiding peak times is especially important if your deployment might cause Apex code to recompile or cause Apex concurrency errors, which can greatly reduce application performance. Additionally, avoid deploying right before holidays or major events to prevent any unnecessary headaches or disruptions. Instead, try to release at times when most users are off the system. Try to stick to a consistent release schedule. For example, aim to release at regular intervals and on a given day of the week. Even here at Salesforce, we schedule regular release moratoriums to avoid system-wide disruptions during critical times. Scheduling consistency helps with company-wide planning and sets expectations with your business users and customers. ## Watch for Deployment Dependencies When deploying to Salesforce, a simple approach for ordering your deployment can significantly ease the process and help resolve dependencies efficiently. Here, we provide some general information and guidelines. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note Some Salesforce features and products have their own specific information for deployment best practices. Be sure to review your feature's product documentation before formulating your deployment strategy. A recommended sequence is to deploy in this order: - Objects - Apex classes - Visualforce components and pages - Lightning web components (LWC) and Aura components - Apex triggers and other metadata - Profiles and permission sets - Sharing rules To avoid issues early in the process, deploy objects first. Include new custom objects, fields, record types, and other necessary metadata components. This sequence is especially important for components like compact layouts and list views, because of their direct dependency on objects. For profiles and permission sets, be sure that all related metadata is deployed beforehand because profiles act as an overarching layer that ties together many dependencies across the org's metadata. Deploy sharing logic near the end of your deployment window because it operates at the record-level. Deploying a full profile or permission set that contains a sharing rule, for example, triggers a calculation each time you attempt to deploy, which can be time-consuming if there are multiple failures. The timing of sharing logic deployments is critical due to the sharing recalculation process. Additionally, any changes made in an org, particularly to sharing rules or group settings, or structural changes in role hierarchy, can cause Apex code to recompile, which can increase processing times. # Deployment Connections for Change Sets A deployment connection is required between two Salesforce orgs to send change sets from one org to another. You can’t create deployment connections between arbitrary orgs. Instead, you create connections between all orgs affiliated with a production org. For example, if you have a production org and two sandboxes, a deployment connection is created between production and each sandbox. Also, a deployment connection is created between the two sandboxes. A deployment connection alone doesn’t enable change sets to be sent between orgs. Each org must be authorized to send and receive change sets. This added level of security enforces code promotion paths and keeps orgs' setup metadata from being overwritten by mistake. For example, the following figure illustrates one possible migration path for a production org (Prod) and two sandboxes (Dev and Test). In this example, the production org can only receive changes that have been fully tested, so only the Test sandbox is authorized to upload change sets to production. To synchronize development projects with the production org, the Prod org can send change sets to the Dev sandbox, but not to the Test sandbox. Finally, because the features in development need iterative testing, Dev and Test sandboxes should be able to send change sets back and forth. **Change Set Authorization Enforces Code Path** ![Authorizing a change set enforces the direction of code promotion.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/deploy_sandboxes/images/migration_path.jpg) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note This illustration describes one possible code migration path. Your department must create its own policies for orgs to send and receive change sets to one another. #### See Also - [Deploy a Change Set](https://help.salesforce.com/s/articleView?id=platform.changesets_inbound_deploy.htm&release=264.0.0&type=5 "You can deploy the contents of an inbound change set as a whole but not on a component-by-component basis.") - [View Available Deployment Connections](https://help.salesforce.com/s/articleView?id=platform.changesets_admin_connections_view.htm&release=264.0.0&type=5 "A deployment connection enables customizations to be copied from one Salesforce org to another. The deployment connections list shows which orgs are authorized to upload changes to this org, and which orgs allow this org to upload changes to them.") - [Authorize a Deployment Connection](https://help.salesforce.com/s/articleView?id=platform.t_changesets_deployment_connection.htm&release=264.0.0&type=5 "Authorize inbound changes so that another Salesforce org can send change sets to the org you are logged into.") - [View Details of a Deployment Connection](https://help.salesforce.com/s/articleView?id=platform.changesets_admin_connection_details.htm&release=264.0.0&type=5 "A deployment connection enables customizations to be copied from one Salesforce org to another. The deployment connections list shows which orgs are authorized to upload changes to this org, and which orgs allow this org to upload changes to them.") # Deployment Status for Custom Objects and External Objects Use the Deployment Status setting in the object definition to control when users can see and use the object and its associated custom tab, related lists, and reports. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions

Salesforce Connect external objects are available in Developer Edition and, for an extra cost, in Enterprise, Performance, and Unlimited Editions.

User Permissions Needed
To deploy custom objects and external objects: Customize Application
While developing a custom object or external object, you might not want users to see and interact with it. Because users can get frustrated with changes in layout or lose data when you delete custom fields, control visibility of the new object until you’re finished. - Set the deployment status to In Development when first creating your custom object or external object. Doing so hides it from users while you’re designing and testing it. Only users with the Customize Application permission can see the object tab, search results, related lists, and report data types. - Change the deployment status to Deployed when you want to allow all users to use the object and the associated custom tab, related lists, and reports. - If you make more enhancements after deploying a custom object or external object, you can change the deployment status back to In Development. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note A custom report type’s deployment status changes from Deployed to In Development if its primary object is a custom or external object whose deployment status similarly changes. When you create a big object, the status is set to In Development. You can't deploy a big object until it includes an index that contains at least one custom field. Only required custom fields are allowed in an index. After you create an index, you see a second status of Deployed. When you’re ready to grant users access, change the status to Deployed. #### See Also - [Make Search Faster](https://help.salesforce.com/s/articleView?id=ai.search_index_considerations.htm&type=5&language=en_US) # Deputy Connector Connect to an external Deputy account. Perform tasks like starting, pausing, and stopping timesheets, or creating and updating leave requests. Use Deputy as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Bearer authentication. Bearer authentication sends a header named Authorization with a value of Bearer and a token with every request. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Token

Enter the bearer token to use to authenticate the requests. For information about how to create the bearer token, refer to the external system's documentation.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Deputy actions are available in Flow Builder. - Adding A Leave Request For An Employee - Adding Or Updating A Shift - Get Details For A Employee By Id - Pause Or Unpause Employees Timesheet - Retrieve Leave Accrual Object - Retrieve Rosters For Employee - Retrieve Time Sheet Pay Return Object - Retrieve Time Sheet Object - Return Details Of A Specific Leave Request - Shift Offers - Start An Employees Timesheet - Stop An Employees Timesheet - Update Details Of A Specific Leave Request ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Derdack SIGNL4 Connector Connect to an external Derdack SIGNL4 account. Perform tasks like triggering alerts, managing alert timelines, or listing all users. Use Derdack SIGNL4 as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Derdack SIGNL4 actions are available in Flow Builder. - Get Alert - Get Alert Escalation Infos - Get Alert Summary - Get Alert Timeline Entries - Get All Users - Get Details Of An Event - Trigger Alert ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Design Action Link Templates Before you create a template, consider which values you want to set in the template and which values you want to set with binding variables when you instantiate action link groups from the template. ## Action Link Templates Overview Here’s an action link group template in Setup. Each action link group should contain at least one action link. This example action link template has three binding variables: the API version number in the Action URL, the Item Number in the HTTP Request Body, and the OAuth token value in the HTTP Header field. ![Action Link Template Edit](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/actionlinks_template.png) The Connect REST API request to instantiate the action link group and set the values of the binding variables. ``` POST /connect/action-link-group-definitions { "templateId":"07gD00000004C9r", "templateBindings":[ { "key":"ApiVersion", "value":"v1.0" }, { "key":"ItemNumber", "value":"8675309" }, { "key":"BearerToken", "value":"00DRR0000000N0g!ARoAQMZyQtsP1Gs27EZ8hl7vdpYXH5O5rv1VNprqTeD12xYnvygD3JgPnNR" } ] } ``` This Apex code instantiates the action link group from the template and sets the values of the binding variables. ```java // Get the action link group template Id. ActionLinkGroupTemplate template = [SELECT Id FROM ActionLinkGroupTemplate WHERE DeveloperName='Doc_Example']; // Add binding name-value pairs to a map. Map bindingMap = new Map(); bindingMap.put('ApiVersion', '1.0'); bindingMap.put('ItemNumber', '8675309'); bindingMap.put('BearerToken', '00DRR0000000N0g!ARoAQMZyQtsP1Gs27EZ8hl7vdpYXH5O5rv1VNprqTeD12xYnvygD3JgPnNR'); // Create ActionLinkTemplateBindingInput objects from the map elements. List bindingInputs = new List(); for (String key : bindingMap.keySet()) { ConnectApi.ActionLinkTemplateBindingInput bindingInput = new ConnectApi.ActionLinkTemplateBindingInput(); bindingInput.key = key; bindingInput.value = bindingMap.get(key); bindingInputs.add(bindingInput); } // Set the template Id and template binding values in the action link group definition. ConnectApi.ActionLinkGroupDefinitionInput actionLinkGroupDefinitionInput = new ConnectApi.ActionLinkGroupDefinitionInput(); actionLinkGroupDefinitionInput.templateId = template.id; actionLinkGroupDefinitionInput.templateBindings = bindingInputs; // Instantiate the action link group definition. ConnectApi.ActionLinkGroupDefinition actionLinkGroupDefinition = ConnectApi.ActionLinks.createActionLinkGroupDefinition(Network.getNetworkId(), actionLinkGroupDefinitionInput); ``` ## Template Design Considerations Considerations for designing a template: - Determine the expiration time of the action link group. - Define _binding variables_ in the template and set their values when you instantiate the group. Don’t store sensitive information in templates. Use binding variables to add sensitive information at run time. - Determine who can see the action link when it’s associated with a feed element. - Use _context variables_ in the template to get information about the execution context of the action link. When the action link executes, Salesforce fills in the values and sends them in the HTTP request. ## Set the Action Link Group Expiration Time When creating an action link group from a template, the expiration date can be calculated based on a period provided in the template, or the action link group can be set not to expire at all. To set the hours until expiration in a template, enter a value in the Hours until Expiration field of the action link group template. This value is the number of hours from when the action link group is instantiated until it's removed from associated feed elements and can no longer be executed. The maximum value is 8760, which is 365 days. To set the action link group expiration date when you instantiate it, set the `expirationDate` property of either the Action Link Group Definition request body (Connect REST API) or the `ConnectApi.ActionLinkGroupDefinition` input class (Apex). To create an action link group that doesn’t expire, don’t enter a value in the Hours until Expiration field of the template and don’t enter a value for the `expirationDate` property when you instantiate the action link group. Here’s how `expirationDate` and Hours until Expiration work together when creating an action link group from a template. - If you specify `expirationDate`, its value is used in the new action link group. - If you don’t specify `expirationDate` and you specify Hours until Expiration in the template, the value of Hours until Expiration is used in the new action link group. - If you don’t specify `expirationDate` or Hours until Expiration, the action link groups instantiated from the template don’t expire. ## Define Binding Variables Define binding variables in templates and set their values when you instantiate an action link group. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important Don’t store sensitive information in templates. Use binding variables to add sensitive information at run time. When the value of a binding is set, it is stored in encrypted form in Salesforce. You can define binding variables in the Action URL, HTTP Request Body, and HTTP Headers fields of an action link template. After a template is published, you can edit these fields, you can move binding variables between these fields, and you can delete binding variables. However, you can’t add new binding variables. Define a binding variable’s key in the template. When you instantiate the action link group, specify the key and its value. Binding variable keys have the form `{!Bindings.key}`. The key supports [Unicode](http://www.unicode.org/reports/tr18/#Compatibility_Properties) characters in the predefined `\w` character class: `[\p{Alpha}\p{gc=Mn}\p{gc=Me}\p{gc=Mc}\p{Digit}\p{gc=Pc}]`. This Action URL field has two binding variables. ``` https://www.example.com/{!Bindings.ApiVersion}/items/{!Bindings.ItemId} ``` This HTTP Headers field has two binding variables. ``` Authorization: OAuth {!Bindings.OAuthToken} Content-Type: {!Bindings.ContentType} ``` Specify the keys and their values when you instantiate the action link group in Connect REST API. ``` POST /connect/action-link-group-definitions { "templateId":"07gD00000004C9r", "templateBindings" : [ { "key":"ApiVersion", "value":"1.0" }, { "key":"ItemId", "value":"8675309" }, { "key":"OAuthToken", "value":"00DRR0000000N0g_!..." }, { "key":"ContentType", "value":"application/json" } ] } ``` Specify the binding variable keys and set their values in Apex. ```java Map bindingMap = new Map(); bindingMap.put('ApiVersion', '1.0'); bindingMap.put('ItemId', '8675309'); bindingMap.put('OAuthToken', '00DRR0000000N0g_!...'); bindingMap.put('ContentType', 'application/json'); List bindingInputs = new List(); for (String key : bindingMap.keySet()) { ConnectApi.ActionLinkTemplateBindingInput bindingInput = new ConnectApi.ActionLinkTemplateBindingInput(); bindingInput.key = key; bindingInput.value = bindingMap.get(key); bindingInputs.add(bindingInput); } // Define the action link group definition. ConnectApi.ActionLinkGroupDefinitionInput actionLinkGroupDefinitionInput = new ConnectApi.ActionLinkGroupDefinitionInput(); actionLinkGroupDefinitionInput.templateId = '07gD00000004C9r'; actionLinkGroupDefinitionInput.templateBindings = bindingInputs; // Instantiate the action link group definition. ConnectApi.ActionLinkGroupDefinition actionLinkGroupDefinition = ConnectApi.ActionLinks.createActionLinkGroupDefinition(Network.getNetworkId(), actionLinkGroupDefinitionInput); ``` ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_tip.png) Tip You can use the same binding variable multiple times in action link templates, and only provide the value one time during instantiation. For example, you could use `{!Bindings.MyBinding}` twice in the HTTP Request Body field of one action link template, and again in the HTTP Headers of another action link template within the same action link group template, and when you instantiate an action link group from the template, you would need to provide only one value for that shared variable. ## Set Who Can See the Action Link Choose a value from the User Visibility dropdown list to determine who can see the action link after it’s associated with a feed element. Among the available options are Only Custom User Can See and Everyone Except Custom User Can See. Choose one of these values to allow only a specific user to see the action link or to prevent a specific user from seeing it. Then enter a value in the Custom User Alias field. This value is a binding variable key. In the code that instantiates the action link group, use the key and specify the value as you would for any binding variable. This template uses the Custom User Alias value **Invitee**. ![Action Link Template](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/actionlinks_customuser.png) When you instantiate the action link group, set the value just like you would set a binding variable. ``` POST /connect/action-link-group-definitions { "templateId":"07gD00000004C9r", "templateBindings" : [ { "key":"Invitee", "value":"005D00000017u6x" } ] } ``` If the template uses **Only creator’s manager can see**, a user that doesn’t have a manager receives an error when instantiating an action link group from the template. In addition, the manager is the manager at the time of instantiation. If the user’s manager changes after instantiation, that change isn’t reflected. ## Use Context Variables Use context variables to pass information about the user who executed the action link and the context in which it was invoked into the HTTP request made by invoking an action link. You can use context variables in the `actionUrl`, `headers`, and `requestBody` properties of the Action Link Definition Input request body or `ConnectApi.ActionLinkDefinitionInput` object. You can also use context variables in the Action URL, HTTP Request Body, and HTTP Headers fields of action link templates. You can edit these fields, including adding and removing context variables, after a template is published. The available context variables are: | Context Variable | Description | | --- | --- | | `{!actionLinkId}` | The ID of the action link the user executed. | | `{!actionLinkGroupId}` | The ID of the action link group containing the action link the user executed. | | `{!communityId}` | The ID of the site in which the user executed the action link. The value for your internal org is the empty key `"000000000000000000"`. | | `{!communityUrl}` | The URL of the site in which the user executed the action link. The value for your internal org is empty string `""`. | | `{!orgId}` | The ID of the org in which the user executed the action link. | | `{!userId}` | The ID of the user that executed the action link. | For example, suppose you work for a company called Survey Example and you create an app for AppExchange called Survey Example for Salesforce. Company A has Survey Example for Salesforce installed. Let’s imagine that someone from company A goes to surveyexample.com and makes a survey. Your Survey Example code uses Connect REST API to create a feed item in Company A’s Salesforce org with the body text **Take a survey**, and an action link with the label **OK**. This `UI` action link takes the user from Salesforce to a web page on surveyexample.com to take a survey. If you include a `{!userId}` context variable in either the HTTP Request Body or the Action URL for that action link, when a user clicks the action link in the feed, Salesforce sends the ID of the user who clicked in the HTTP request it makes to your server. If you include an `{!actionLinkId}` context variable in the Survey Example server-side code that creates the action link, Salesforce sends an HTTP request with the ID of the action link and you can save that to your database. This example includes the `{!userId}` context variable in the Action URL in the action link template. ![Context variables in Action URL field in Setup.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/actionlinks_contextvariables.png) ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_tip.png) Tip Binding variables and context variables can be used in the same field. For example, this action URL contains a binding variable and a context variable: `https://www.example.com/{!Bindings.apiVersion}/doSurvey?salesforceUserId={!userId}` #### See Also - [Create Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_create.htm&release=264.0.0&type=5 "Create action link templates in Setup so that you can instantiate action link groups with common properties from Connect REST API or Apex. You can package templates and distribute them to other Salesforce orgs.") - [Edit Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_edit.htm&release=264.0.0&type=5 "You can edit all fields on an unpublished action link group template and on its associated action link templates.") - [Delete Action Link Group Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_delete.htm&release=264.0.0&type=5 "When you delete an action link group template, you delete its associated action link templates and all action link groups that have been instantiated from the templates. Deleted action link groups disappear from any feed elements they've been associated with.") - [Package Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_package.htm&release=264.0.0&type=5 "Package action link templates to distribute them to other Salesforce organizations.") - [_Apex Developer Guide_: Working with Action Links](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/connectapi_features_action_links.htm) - [_Apex Developer Guide_: Define an Action Link in a Template and Post with a Feed Element](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/connectapi_examples_define_post_action_link_template.htm) # Design Attribute Considerations for Flow Screen and Action Components To expose an attribute in Flow Builder, define a corresponding `design:attribute` in the component bundle's design resource. Keep these guidelines in mind when defining design attributes for flows. ### Required Editions
View supported editions.
## Supported Attributes on `design:attribute` Nodes In a `design:attribute` node, Flow Builder supports only the `name`, `label`, `description`, and `default` attributes. The other attributes, like `min` and `max`, are ignored. For example, for this design attribute definition, Flow Builder ignores `required` and `placeholder.` ``` ``` ## Calculating Minimum and Maximum Values for an Attribute To validate min and max lengths for a component attribute, use a flow formula or the component's client-side controller. ## Modifying or Deleting `design:attribute` Nodes If a component’s attribute is referenced in a flow, you can’t change the attribute’s type or remove it from the design resource. This limitation applies to all flow versions, not just active ones. Remove references to the attribute in all flow versions, and then edit or delete the attribute in the design resource. # Design Home Page Layouts in Salesforce Classic After creating the components you want displayed on the Home tab, design your home page layouts. You can design your layouts based on your unique organizational and user needs. ### Required Editions
Available in: Salesforce Classic
Available in: All Editions
User Permissions Needed
To view home page layouts: View Setup and Configuration
To create or change home page layouts: Customize Application
1. From Setup, enter Home Page Layouts in the Quick Find box, then select **Home Page Layouts**. 2. Click to edit an existing layout or create one. Alternately, select a layout to copy and click **Clone**. 3. If you create a layout, give it a name and then click **Save**. 4. Select the components to display on the layout. - To add the Find Articles component, select **Article Search**. This component is only available for Salesforce Knowledge users. - To add the Customer Portal component, select **Customer Portal Welcome**. If the My Profile site Visualforce page has been enabled, this component contains a personalized welcome message and a link to the portal user’s profile. The My Profile page enables users logged into either your Salesforce site, or your Customer Portal from Salesforce sites, to update their own contact information. When they change this page, the corresponding portal user and contact records are updated. - To allow your users to resume flow interviews that they’ve paused, select **Paused Flow Interviews**. This component displays only flow interviews that the user has paused. You can add up to 20 components to a home page layout. 5. Click **Next**. 6. Customize the order in which the narrow and wide components appear. Move a component by selecting it and using the arrow buttons. 7. Click **Save**. #### See Also - [Assign Home Tab Page Layouts to Profiles](https://help.salesforce.com/s/articleView?id=platform.assigning_home_page_layouts_to_profiles.htm&release=264.0.0&type=5 "Your home page layouts are only visible to users after you assign them to a user profile.") - [Salesforce Classic Home Tab Page Layouts](https://help.salesforce.com/s/articleView?id=platform.customize_homepage.htm&release=264.0.0&type=5 "You can customize the Home tab in Salesforce Classic to include components such as sidebar links, a company logo, a dashboard snapshot, or custom components that you create. A dashboard snapshot is a clipping of the top row of a dashboard’s components. Just like other tabs, you can also assign different home page layouts to different users based on profile.") # Design the Approval Request Page for Classic Approval Processes The approval page is where an approver responds to an approval request from a classic approval process. Customize which fields appear on that page and in which order. This page is used only for this classic approval process. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs.
Option Description
Selected Fields Specifies which fields to show on the approval request page. Keep in mind that approvers can view this page on a mobile device. Select only the fields necessary for users to decide whether to approve or reject records.
Display approval history information... If selected, the approval request page displays the approval history of the associated record. This option is available only in Salesforce Classic. In Lightning Experience, the approval history appears only on the record being approved.
Security Settings

Controls whether users have to log in to Salesforce to see the approval request.

Allow approvers to access the approval page only from within the application (Recommended)
Default. Users log in to Salesforce to view the approval page.
Allow approvers to access the approval page only from within the application, or externally from a wireless-enabled mobile device
Users can access an external version of the approval page from a browser, including browsers on mobile devices, without logging in to Salesforce. If selected, you can’t add approval steps that let users manually select the next approver.
# Design Your Login Pages Use the Login Branding Editor to design your login pages. ### Required Editions
Available in: Salesforce Classic
Available in: Developer Edition
User Permissions Needed
To manage Trialforce: Customize Application
1. Log into your Trialforce Management Organization. 2. From Setup, enter Login Site in the Quick Find box, then select **Login Site**. 3. At the top of the editor, click the tab for the login page size: **Desktop** or **Mobile**. 4. In the left pane, expand the Page Header node and click **Select File** to choose your company logo for each size screen your app supports. 5. Expand the Page Content node and paste the URL of the trial sign-up link into the **Trial Sign-Up Link** | **Use custom link** field. This is the link your prospects will click to request a free trial on your website. Typically, ISVs create a separate sign-up page for this purpose. 6. Provide URLs for the right and bottom of the page. If you leave these fields blank, the frames default to the ones used on the Salesforce login page. 7. Expand the page footer and provide your company name and font color. 8. Expand the page background node and provide a background image and color. 9. At the top of the page click **Save and Close**. 10. On the Branded Login Site page, click **Preview** for the size of the page you want to see. Make sure your login page appears correct for each login page your app supports. # Design Your Own Data Model With Schema Builder Schema Builder provides a dynamic environment for viewing and modifying all the objects and relationships in your app. This greatly simplifies the task of designing, implementing, and modifying your data model, or schema. Schema Builder is enabled by default. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations. You can view your existing schema and interactively add new custom objects, custom fields, and relationships, simply by dragging and dropping. Schema Builder automatically implements the changes and saves the layout of your schema any time you move an object. This eliminates the need to click from page to page to find the details of a relationship or to add a new custom field to an object in your schema. Schema Builder provides details like the field values, required fields, and how objects are related by displaying lookup and master-detail relationships. You can view the fields and relationships for both standard and custom objects. To access Schema Builder, from Setup, enter Schema Builder in the Quick Find box, then select **Schema Builder**. Schema Builder lets you add the following to your schema: - Custom objects - Lookup relationships - Master-detail relationships - All custom fields except: Geolocation #### See Also - [Create Objects with Schema Builder](https://help.salesforce.com/s/articleView?id=platform.schema_builder_elements_objects.htm&release=264.0.0&type=5 "Custom objects are objects that you create to store information that's specific to your company or industry. You can create them via Setup or in the Schema Builder.") - [Custom Field Types](https://help.salesforce.com/s/articleView?id=platform.custom_field_types.htm&release=264.0.0&type=5 "Salesforce supports various field types, allowing you to select the right one for your data. You can also convert an existing field to a different data type if needed.. When you have data that doesn’t match any of the standard fields, your admin can create a custom field for that data. For example, create a Middle Name field for contacts to capture additional information.") - [Change Sets](https://help.salesforce.com/s/articleView?id=platform.changesets.htm&type=5&language=en_US) # Designate a Workflow Owner in Agentforce Operations Assign ownership of workflows to a user or team that's different from the user who created the blueprint in Agentforce Operations. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Role or Access Needed
To create a blueprint from scratch, using AI, or by importing a .rex file in Agentforce Operations: Admin role or Creator role

To create a blueprint by importing a .docx file in Agentforce Operations:

Admin role
To publish a blueprint in Agentforce Operations: Admin role or Publisher role with View access for the blueprint
To edit a blueprint in Agentforce Operations: Admin role, Creator role, or a user with Edit access for the blueprint
The user who creates a blueprint isn't always the right user to own the workflows that run from it. For example, a team admin can build and publish a blueprint, but a separate team or user is responsible for managing the workflows it generates. With Agentforce Operations, you can designate a workflow owner in the blueprint so that every workflow started from it is automatically assigned to the right user or team. You can designate only one user or team as the workflow owner at a time. The workflow owner or a workspace admin can transfer ownership after a workflow is created. Learn more in [Transfer Ownership of an Active Workflow in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_transfer_workflow_ownership.htm&release=264.0.0&type=5 "Reassign ownership of a running workflow to a new user or team when the current workflow owner leaves the organization or changes roles in Agentforce Operations."). 1. [Create a blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_create_blueprint.htm&release=264.0.0&type=5 "Use AI to generate a blueprint by describing your process and optionally uploading supporting documents. You can also build a blueprint from scratch or import one from another workspace. Anyone with the Creator role can generate blueprints in Agentforce Operations.") or [edit an existing blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_edit.htm&release=264.0.0&type=5 "Open an existing blueprint for editing to add stages, tasks, automations, or other changes."). 2. In the blueprint, click the **Access** tab. 3. In the Workflow access section, click the **\+ Set workflow owner** field. 4. Search for and select the user or team that you want to assign as the owner of workflows started from this blueprint. 5. Publish the blueprint. To learn more, see [Publish a Blueprint in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_publish.htm&release=264.0.0&type=5 "Publish a blueprint to make it available for others to use in Agentforce Operations."). The workflow owner receives an email notification when the blueprint is published. All workflows started from this blueprint are automatically assigned to the designated owner with edit access. # Designing an External System Integration To connect any flow to an external system without coding, use MuleSoft for Flow: Integration connectors in the flow. When no connector exists, you can use the HTTP Callout action to make direct API calls to external systems without coding. Run your flow when external system changes occur by selecting the External System Change-Triggered flow type. For legacy systems without APIs, you can use MuleSoft RPA processes published on Anypoint Platform as external services in your flow. For documents and unstructured data, use MuleSoft for Flow: IDP to extract information from PDFs, images, and forms. ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connect with a MuleSoft for Flow: Integration Connector MuleSoft for Flow: Integration connectors integrate external systems with flows, enabling communication, interoperability, and data exchange. Integrating siloed data by using connectors improves workflow, enhances efficiency, and provides a more connected experience for users. You can access [pre-built templates for specific MuleSoft for Flow: Integration connectors](https://help.salesforce.com/s/articleView?id=platform.automate_ala_use_mulesoft_for_flow_integration_templates.htm&release=264.0.0&type=5 "Use a MuleSoft for Flow: Integration template to configure connectors or use AI pre-built flows to build your flow logic. These tools eliminate starting from scratch, so you can accelerate integration and customize automation for your business."). Use these templates to setup flows quickly with pre-configured logic and field mappings for your connector. You can use templates and then make your own connections. This approach makes it faster to set up connections while still letting you change the integration to fit your needs. You can reference a MuleSoft for Flow: Integration connector in two ways within your flow. To initiate a flow based on [external system changes](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Create a connection to an external system in the Automation app."), use an [External System Change-Triggered flow](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_trigger.htm&release=264.0.0&type=5 "To trigger a flow when a change happens in a third-party system, use an External System Change-Triggered flow. A poller checks for new records on a schedule and creates flow interviews when records are found. Create the flow from scratch or from a template."). This flow type uses the connector to poll the external system for matching triggers at your specified interval. Alternatively, [add the connector's action to a new or existing flow](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows.") to any new or existing flow to push changes to an external system. MuleSoft for Flow: Integration connectors are designed to maintain their currency through a structured update process. Automatic updates are applied for minor and patch versions, which helps make sure that integrations remain secure and compliant. To maintain control and stability, manually upgrade your major versions. As they become available, new connector versions appear in Show advanced options, where you can select specific action or trigger versions. For more information about supported triggers and actions, refer to [Third-Party Connectors](https://help.salesforce.com/s/articleView?id=platform.automate_flow_ref_third_party_connectors.htm&release=264.0.0&type=5 "Use MuleSoft for Flow: Integration connectors in your flows for no-code connectivity to external systems. Each external system that connects to Flow Builder behaves in different ways depending on how the external system stores the information that you want to retrieve and manipulate. Review each connector's reference page to understand which triggers and actions are available.") and view the respective connector reference. For an overview of how to set up MuleSoft for Flow: Integration and to create automated connections between systems, refer to [Get Started with MuleSoft for Flow: Integration](https://help.salesforce.com/s/articleView?id=platform.automate_flow_get_started_mfi.htm&release=264.0.0&type=5 "Use MuleSoft for Flow: Integration to create automated connections between systems, so you can keep data up-to-date, reduce manual work, and respond faster to business events."). ## Connect by API Without a MuleSoft for Flow: Integration Connector If there isn’t a connector available for your external system, and your system has an API, you have several connection options. For simple connections by using HTTP protocols, you can use the HTTP Callout action in your flow for direct API integration. The HTTP Callout action in Flow Builder connects your flow to the outside system directly by using External Services. You don't need to write code, work with a developer, or use a middleware tool. However, you must have the API documentation for the endpoint you’re calling. For more complex connections, you can build your connection in Setup and then create an action in API Catalog, which makes it available in flows, Agentforce, and other Salesforce products. ## Connect to a System Without an API When external systems don't have APIs or connectors available, you can build MuleSoft RPA processes. These processes interact with desktop and web apps, and then invoke these processes from your flow. With MuleSoft RPA, your flow can: - Launch and interact with a web browser and web-based apps - Open and control desktop applications - Extract data from apps that don't have API access - Automate form filling and data entry across multiple systems Unlike MuleSoft for Flow: Integration connectors that use APIs, MuleSoft RPA processes mimic human interactions with apps. The processes make them useful to get data from older systems or apps that don't have modern integration features. ## Process Documents with MuleSoft for Flow: IDP When traditional APIs aren't available or when data lives in documents, use MuleSoft for Flow: IDP for document processing. To customize your document processing settings and extract structured data from unstructured documents, such as PDFs, images, and forms, use document processing features in Flow Builder. Document processing uses AI models to understand the structure of the document and get important information. Use it for processing invoices, forms, contracts, and other business documents that don't have accessible APIs. ## Select Your Integration Method Select the appropriate integration method based on your external system's capabilities: - MuleSoft for Flow: Integration Connectors–Use when a connector is available and you need real-time connectivity. - HTTP Callout Action–Use in a flow for simple connections to APIs that use an HTTP protocol. - API Catalog–For complicated integrations that you plan to use throughout your Salesforce org, set up your integration one time and then use it in Flow Builder and other Salesforce features. - External System Change-Triggered Flows–Use when you must poll for changes in systems with APIs - MuleSoft RPA–Use to interact with desktop or web applications when APIs aren't available. - Document Processing–Use when your data is in digital or scanned documents (PDFs, images, forms). ## Polling Failure and Recovery in External System Change-Triggered Flows ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important External System Change-Triggered flows use a poller to fetch records on the selected schedule. **Polling Behavior and Deactivation** - **Retries:** When polling fails, the flow tries again up to 3 consecutive times. - **Automatic Deactivation:** Happens after the third consecutive poller failure. This behavior applies to poller-level failures (for example, authentication or connectivity), but doesn't apply to individual record-level failures. - **Reactivation:** If poller failure deactivates the flow, resolve the underlying issue and reactivate the flow manually. **Poller Limits and Exceptions** - **Pre-execution Failures:** If the poller fails before execution starts, no fault path is available at the **Start** element. - **Payload Limits:** A poll response that exceeds 128,000 characters (including data and metadata) exceeds the payload limit. For more information, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). ## Examples With a connection to an external system, examples of the tasks your flow can do include: ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example - Update the related Contact in Salesforce when a contact is updated in NetSuite - Update the data in QuickBooks Online when an Order is updated in Salesforce - Create an issue in Jira when a Case is created in Salesforce and escalated to engineering - Sync a Lead created in one Salesforce org to a Lead in another Salesforce org - Extract customer data from a legacy desktop application and create Salesforce records - Automate web form submission on external websites to capture lead information - Automate data entry across multiple web-based systems - Extract invoice data from PDFs and automatically create records in Salesforce - **[Understand Value Maps in MuleSoft for Flow: Integration](https://help.salesforce.com/s/articleView?id=platform.automate_flow_concepts_value_maps.htm&release=264.0.0&type=5)** Use value maps to translate source values to target values by using a reusable global resource across flows. #### See Also - [Flow Types](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_type.htm&release=264.0.0&type=5 "A flow's type determines which elements and resources you can add and how you can distribute the flow. For example, you embed a screen flow on a page to gather information from visitors; or you distribute an autolaunched flow by using a custom button that users click to run the flow in the background. Similarly, you can add a Custom Error element only in a record-triggered flow, whereas you can add a Choice resource type only in a screen flow.") - [Get Started with Flows](https://help.salesforce.com/s/articleView?id=platform.automate_flow_get_started.htm&release=264.0.0&type=5 "Plan your automation carefully to ensure a successful solution. Whether building traditional flows or using AI agents, define clear goals and specific instructions before you start. Identify business challenges and their root causes to determine which automation approach best solves your process issues.") # Designing Automation Templates in Blueprints in Agentforce Operations Learn how blueprints work as reusable templates for automated workflows in Agentforce Operations. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

## Getting Started with Blueprints Blueprints are reusable templates for automated workflows. They're a structured process with a defined beginning and end. Create a blueprint first, and then start workflows from it to run your process. To learn about how blueprints relate to workflows, fields, and tasks, see [How Blueprints, Workflows, and Tasks Connect in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_workflows_tasks.htm&release=264.0.0&type=5 "In Agentforce Operations, blueprints, workflows, stages, tasks, and fields each play a specific role and work together in a clear hierarchy to automate business processes. Understanding how they connect helps you plan your processes before you start building blueprints and running workflows."). ## Creating a Blueprint Start by creating a blueprint that defines your process. Give it a name and description, and configure basic settings. Learn more in [Create an Automation Template with a Blueprint in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_create_blueprint.htm&release=264.0.0&type=5 "Use AI to generate a blueprint by describing your process and optionally uploading supporting documents. You can also build a blueprint from scratch or import one from another workspace. Anyone with the Creator role can generate blueprints in Agentforce Operations."). ## Adding Stages Organize your blueprint into logical phases by adding stages. Stages group related tasks together and control when each part of the workflow runs. Learn more in [Stages in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_stages.htm&release=264.0.0&type=5 "Stages organize the tasks in a blueprint into logical phases. Use stages to break a process into manageable milestones and control when each part of the workflow runs."). ## Configuring Tasks Add tasks to your stages to define the work people or AI agents need to complete. Configure task details such as assignees, due dates, and required information. Learn more in [Tasks in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_configure_tasks.htm&release=264.0.0&type=5 "Tasks are the individual units of work in a blueprint. Configure tasks to collect the right information, route work to the right people, and shape how each step behaves at run time."). ## Working with Fields and Forms Define the data that your blueprint collects by adding fields. Create forms to organize how users see and complete those fields. Fields can be required or optional, and you can create custom field types to match your data needs. Learn more in [Collect Information from Users in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_fields_and_forms.htm&release=264.0.0&type=5 "Use fields and forms to request, collect, and pass information through tasks and workflows in Agentforce Operations."). ## Organizing with Tags Use tags to categorize and filter blueprints and workflows. Tags help teams find related work and organize processes by department, product line, or any other criteria. Learn more in [Organize Workflows with Tags and Tag Categories in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_tags_and_categories.htm&release=264.0.0&type=5 "Use tags to classify blueprints and workflows in Agentforce Operations. Use tag categories to organize your tags in the list of tags. You can filter workflows by tags in the Home page workflow list view."). ## Publishing Your Blueprint After you configure your blueprint, publish it to make it available for creating workflows. Publishing creates the first version. Learn more in [Publish a Blueprint in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_publish.htm&release=264.0.0&type=5 "Publish a blueprint to make it available for others to use in Agentforce Operations."). ## Linking Multiple Blueprints A linked blueprint nests a child blueprint inside a parent as a sub-process. The linked blueprint doesn't run independently. The parent tracks the child's progress and can receive output fields back from it. At run time, both appear on the Home page as independent workflows. Access levels don't inherit between parent and child. A blueprint can contain up to four linked blueprints. Learn more in [Build Complex Processes with Linked Blueprints in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_linked.htm&release=264.0.0&type=5 "Build complex, multi-stage processes by linking multiple blueprints together in Agentforce Operations. Reuse existing blueprints as building blocks so one workflow can automatically trigger and track another as part of a larger operation."). ## Blueprint Versions Every time you publish a blueprint, Agentforce Operations creates a new version of the blueprint and updates the change log to include the new version. Admins and editors can add version notes when publishing a new version and restore any previous version. There's no limit on the number of versions a blueprint can have, so teams can evolve and improve their processes over time. Learn more in [Manage Blueprint Versions in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_manage_versions.htm&release=264.0.0&type=5 "Create new versions of blueprints, review change history, and restore a previous version in Agentforce Operations."). ## Blueprint Variants Blueprints can include multiple variants to support different scenarios, such as regions, product lines, or customer types. Variants are alternate versions of a standard blueprint that run different stages and tasks based on conditions you define, such as a single-select field value. Every variant collects the same data as the standard blueprint but routes the work differently. When a workflow starts, it evaluates the conditions. Each variant has its own version history and Blueprint ID. Learn more in [Customize How a Blueprint Runs Based on Criteria with Variants in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_variants.htm&release=264.0.0&type=5 "Use variants to adapt a published blueprint for different teams, regions, or scenarios while preserving the original blueprint."). ## Conditional Branching Blueprints support conditional logic that routes work down different paths based on field values, dates, or other criteria. For example, route high-value orders through an additional approval stage, or send international orders through customs documentation tasks. With conditional branching, you create flexible processes that adapt to different scenarios without creating separate blueprints. Learn more in [Split a Blueprint's Path in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_split_path.htm&release=264.0.0&type=5 "Route workflows down different paths based on field values from earlier stages. Use conditional branching when different inputs lead to different stages, approvals, or outcomes."). ## Locked Workflows Lock published blueprints to prevent changes to workflows after they start running. Locked workflows can't have their stages, tasks, or structure modified while the workflow is in progress. Locking ensures process consistency and prevents accidental changes to in-progress work. Admins can still make changes to locked workflows. Learn more in [What You Can and Can't Do in Locked Workflows in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_lock_restrictions.htm&release=264.0.0&type=5 "Understand which actions are permitted or restricted in locked workflows in Agentforce Operations."). ## Additional Blueprint Features Blueprints include several features that help you organize, track, and manage your automated processes: - Workflow reference IDs: Assign unique identifiers to workflows created from a blueprint. See [Manage Workflow Reference IDs in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_referenced_ids_for_workflows.htm&release=264.0.0&type=5 "Set up unique reference IDs so Agentforce Operations automatically assigns a trackable identifier to every workflow created from a blueprint, or turn off reference IDs when you no longer need them."). - Autogenerate workflow names: Create dynamic workflow names by using field values. See [Autogenerate Workflow Names with Merge Fields in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_workflow_naming.htm&release=264.0.0&type=5 "Create a naming convention for workflows so each workflow started from a blueprint gets a consistent, descriptive name based on field values in Agentforce Operations."). - Collaborative editing: Multiple people can work on the same draft blueprint at the same time. See [Collaborative Blueprint Editing in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_collaborative_editing.htm&release=264.0.0&type=5 "Multiple people can work on the same draft blueprint at the same time. Agentforce Operations shows who else is editing and updates everyone's view in real time."). - Dynamic due dates: Automatically adjust task due dates when upstream tasks complete early or late. See [Set Up Dynamic Due Dates in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_dynamic_due_dates.htm&release=264.0.0&type=5 "Configure a blueprint to automatically shift downstream task due dates when upstream tasks complete late or early in Agentforce Operations."). To learn more, explore these links. - **[Create an Automation Template with a Blueprint in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_create_blueprint.htm&release=264.0.0&type=5)** Use AI to generate a blueprint by describing your process and optionally uploading supporting documents. You can also build a blueprint from scratch or import one from another workspace. Anyone with the Creator role can generate blueprints in Agentforce Operations. - **[Stages in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_stages.htm&release=264.0.0&type=5)** Stages organize the tasks in a blueprint into logical phases. Use stages to break a process into manageable milestones and control when each part of the workflow runs. - **[Tasks in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_configure_tasks.htm&release=264.0.0&type=5)** Tasks are the individual units of work in a blueprint. Configure tasks to collect the right information, route work to the right people, and shape how each step behaves at run time. - **[Collect Information from Users in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_fields_and_forms.htm&release=264.0.0&type=5)** Use fields and forms to request, collect, and pass information through tasks and workflows in Agentforce Operations. - **[Set Up Dynamic Due Dates in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_dynamic_due_dates.htm&release=264.0.0&type=5)** Configure a blueprint to automatically shift downstream task due dates when upstream tasks complete late or early in Agentforce Operations. - **[Import a Blueprint from Another Workspace](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprint_transfer.htm&release=264.0.0&type=5)** Export a published blueprint from one workspace and import it into another workspace in Agentforce Operations. During import, review and map the blueprint's dependencies to your workspace. - **[Organize Workflows with Tags and Tag Categories in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_tags_and_categories.htm&release=264.0.0&type=5)** Use tags to classify blueprints and workflows in Agentforce Operations. Use tag categories to organize your tags in the list of tags. You can filter workflows by tags in the Home page workflow list view. - **[Autogenerate Workflow Names with Merge Fields in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_workflow_naming.htm&release=264.0.0&type=5)** Create a naming convention for workflows so each workflow started from a blueprint gets a consistent, descriptive name based on field values in Agentforce Operations. - **[Split a Blueprint's Path in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_split_path.htm&release=264.0.0&type=5)** Route workflows down different paths based on field values from earlier stages. Use conditional branching when different inputs lead to different stages, approvals, or outcomes. - **[Customize How a Blueprint Runs Based on Criteria with Variants in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_variants.htm&release=264.0.0&type=5)** Use variants to adapt a published blueprint for different teams, regions, or scenarios while preserving the original blueprint. - **[Manage Workflow Reference IDs in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_referenced_ids_for_workflows.htm&release=264.0.0&type=5)** Set up unique reference IDs so Agentforce Operations automatically assigns a trackable identifier to every workflow created from a blueprint, or turn off reference IDs when you no longer need them. - **[Customize Blueprint Behavior in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_customize_behavior.htm&release=264.0.0&type=5)** Customize how a blueprint behaves at run time. Configure naming conventions, reference IDs, variants, and other settings to standardize and control the workflows that run from a blueprint. - **[Build Complex Processes with Linked Blueprints in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_linked.htm&release=264.0.0&type=5)** Build complex, multi-stage processes by linking multiple blueprints together in Agentforce Operations. Reuse existing blueprints as building blocks so one workflow can automatically trigger and track another as part of a larger operation. - **[Publish a Blueprint in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_publish.htm&release=264.0.0&type=5)** Publish a blueprint to make it available for others to use in Agentforce Operations. - **[Blueprint Limits in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprint_limits.htm&release=264.0.0&type=5)** Blueprints have limits on the number of tasks, fields, and form items they can contain. These limits help you avoid the performance issues that come with oversized blueprints. #### See Also - [How Blueprints, Workflows, and Tasks Connect in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_workflows_tasks.htm&release=264.0.0&type=5 "In Agentforce Operations, blueprints, workflows, stages, tasks, and fields each play a specific role and work together in a clear hierarchy to automate business processes. Understanding how they connect helps you plan your processes before you start building blueprints and running workflows.") - [Data Sources in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_data_sources.htm&release=264.0.0&type=5 "Data sources are tables of structured reference data, such as supplier lists, customer catalogs, or parts databases. Admins import data sources into Agentforce Operations so users can look up and validate that data in workflows and tasks.") - [Creating and Starting a Workflow in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_start_workflow.htm&release=264.0.0&type=5 "Create a workflow from a blueprint, bulk-start many workflows from a CSV file, or start a workflow by sending an email to begin automating your business process.") # Designing Flows After you know the business problem you’re trying to solve with task automation, have identified the functional requirements for the flow, and have a distribution plan, it’s time to design the solution so it can be built using Flow Builder. ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. ## Where to Start Use this roadmap to move through the key design concepts in sequence. Each topic builds on the one before it. | stage | What You Learn | | --- | --- | | 1\. [Building Blocks of Flows](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_building_blocks.htm&language=en_US) | Understand the three core components every flow is made of: elements (the actions a flow runs), connectors (the paths a flow can take), and resources (the values a flow references). This is the foundation for everything that follows. | | 2\. [Flow Types](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_type.htm&language=en_US) | Choose the right flow type for your use case. A flow's type controls which elements and resources are available and how the flow is distributed—for example, screen flows collect user input, while autolaunched flows run silently in the background. | | 3\. [Triggered Flows](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger.htm&language=en_US) | Decide what starts your flow. Triggers include record changes, time schedules, external system events, Data Cloud data changes, automation events, and audience or segment membership. This topic maps each trigger type to its corresponding concept topic so you can go deeper on the ones that apply. | | 4\. [Template-Triggered Prompt Flows](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger_prompt_template_capability.htm&language=en_US) | Use a specialized flow type to supply dynamic data to Prompt Builder prompt templates. The flow runs when a prompt template is resolved and injects generated content—such as a list of nearby events—into the template's output. | | 5\. [Designing an External System Integration](https://help.salesforce.com/s/articleView?id=platform.automate_flow_concepts_design_external_system_change_triggered_flows.htm&language=en_US) | Connect your flow to systems outside Salesforce without code. Choose from MuleSoft for Flow: Integration connectors, the HTTP Callout action for direct API calls, MuleSoft RPA for legacy desktop systems, or MuleSoft for Flow: IDP to extract data from PDFs and other documents. | ## IN THIS SECTION - **[Building Blocks of Flows](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_building_blocks.htm&release=264.0.0&type=5)** Flows are built from three core components: elements, connectors, and resources. Elements represent actions that flows run, such as reading or writing Salesforce data. Connectors define the paths that flows can take at run time. Resources represent values that you can reference throughout a flow. - **[Flow Types](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_type.htm&release=264.0.0&type=5)** A flow's type determines which elements and resources you can add and how you can distribute the flow. For example, you embed a screen flow on a page to gather information from visitors; or you distribute an autolaunched flow by using a custom button that users click to run the flow in the background. Similarly, you can add a Custom Error element only in a record-triggered flow, whereas you can add a Choice resource type only in a screen flow. - **[Triggered Flows](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger.htm&release=264.0.0&type=5)** In the Start element of a triggered flow, you can specify what starts a flow. For example, the flow trigger can be a schedule or the new and changed records of a specified object. Without a trigger, you need to set up other things to launch the flow, such as custom buttons, processes, Apex classes, or even Einstein Bots. - **[Template-Triggered Prompt Flows](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_trigger_prompt_template_capability.htm&release=264.0.0&type=5)** Provide data to prompt templates in Prompt Builder with template-triggered prompt flows. - **[Designing an External System Integration](https://help.salesforce.com/s/articleView?id=platform.automate_flow_concepts_design_external_system_change_triggered_flows.htm&release=264.0.0&type=5)** To connect any flow to an external system without coding, use MuleSoft for Flow: Integration connectors in the flow. When no connector exists, you can use the HTTP Callout action to make direct API calls to external systems without coding. Run your flow when external system changes occur by selecting the External System Change-Triggered flow type. For legacy systems without APIs, you can use MuleSoft RPA processes published on Anypoint Platform as external services in your flow. For documents and unstructured data, use MuleSoft for Flow: IDP to extract information from PDFs, images, and forms. #### See Also - [_Trailhead_: Flow Basics](https://trailhead.salesforce.com/content/learn/modules/flow-basics) - [_Trailhead_: Build a Simple Flow](https://trailhead.salesforce.com/content/learn/modules/build-a-simple-flow) # Designing for Flow Orchestration Learn about what an orchestration is made of and how it relates to flows. - **[Orchestrations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_concept_orchestrations.htm&release=264.0.0&type=5)** An orchestration uses stages, steps, and decisions to organize complex business processes. - **[Orchestration Types](https://help.salesforce.com/s/articleView?id=platform.orchestrator_concepts_type.htm&release=264.0.0&type=5)** An orchestration’s type determines how the orchestration can be distributed. - **[Triggers for Orchestrations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_concepts_trigger.htm&release=264.0.0&type=5)** Create record-triggered orchestrations to respond to record changes that require user input or additional record updates. Specify whether to trigger the orchestration based on new and changed records of a specific object in the Start element. Use Flow Trigger Explorer to manage the order of record-triggered automations. - **[Building Blocks of Orchestrations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_concepts_building_blocks.htm&release=264.0.0&type=5)** Stages and steps are the building blocks of an orchestration. - **[Error Handling in Orchestrations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_concepts_error_handling.htm&release=264.0.0&type=5)** Error handling manages unexpected issues that occur in stages during an orchestration run. Configure fault paths for stages to define recovery actions when stage errors occur, ensuring orchestrations complete successfully instead of failing. - **[Running Context of an Orchestration](https://help.salesforce.com/s/articleView?id=platform.orchestrator_concepts_running_user.htm&release=264.0.0&type=5)** The running context determines the access that an orchestration has to Salesforce data and the context used by a paused orchestration to resume. By default, the running context of an orchestration is the Automated Process User in system context. - **[Orchestration Versioning](https://help.salesforce.com/s/articleView?id=platform.orchestrator_concepts_versioning.htm&release=264.0.0&type=5)** Flow Orchestration has two levels of versioning: the version of the orchestration and the version of a flow called by an orchestration. - **[Orchestration Run](https://help.salesforce.com/s/articleView?id=platform.orchestrator_orchestration_run.htm&release=264.0.0&type=5)** An orchestration run represents an instance of a running orchestration. # Determine Appointment Time Slots with Shifts To determine time slots with shifts, enable shift-related rules in the scheduling policy. To consider a service territory member’s shifts instead of the service territory member’s operating hours, enable the Use service territory member’s shift option. However, if you want to consider the intersection of shifts and the service territory’s operating hours, then enable the Use service territory’s operating hours with shifts option along with the Use service territory member’s shift option. To consider the account’s operating hours along with the intersection, enable the Enforce Account’s Visiting Hours option. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Depending on the rules that you define in the scheduling policy, Salesforce Scheduler determines the availability of appointment time slots according to: - Shift timings - Intersection of time slots in operating hours of the service territory and shift timings - Intersection of time slots in operating hours of the account and shift timings - Intersection of time slots in operating hours of the service territory, operating hours of an account, and shift timings ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_important.png) Important - If you enable the Use service territory member's shift option and the service resource doesn't have any shifts, no time slots are available.
Use service territory member's shift Use service territory's operating hours with shifts Enforce Account’s Visiting Hours Salesforce Scheduler determines time slots based on
Enabled Disabled Disabled

Shifts.

Example:

  • Service territory's operating hours: 10 AM - 3 PM, Monday to Friday
  • Service resource's shifts: 10 AM - 4 PM. Monday to Friday
  • Available time slots: 10 AM - 4 PM, Monday to Friday
Note
Note Salesforce Scheduler doesn't consider the service territory's operating hours.
Enabled Disabled Enabled

The intersection of shifts and the account's operating hours.

Example:

  • Service territory's operating hours: 2 PM - 6 PM, Monday to Friday
  • Service resource's shifts: 10 AM - 4 PM. Monday to Friday
  • Account's operating hours: 10 AM - 12 PM, Monday to Friday
  • Available time slots: 10 AM - 12 PM, Monday to Friday
Note
Note Salesforce Scheduler doesn't consider the service territory's operating hours.
Enabled Enabled Disabled

The intersection of shifts and service territory's operating hours.

Example:

  • Service territory's operating hours: 9 AM - 3 PM, Monday to Friday
  • Service resource's shifts: 8 AM - 4 PM. Monday to Friday
  • Available time slots: 9 AM - 3 PM, Monday to Friday
Enabled Enabled Enabled

The intersection of shifts, service territory's operating hours, and account's operating hours.

Example:

  • Service territory's operating hours: 10 AM - 3 PM, Monday to Friday
  • Service resource's shifts: 10 AM - 4 PM. Monday to Friday
  • Account's operating hours: 10 AM - 12 PM, Monday to Friday
  • Available time slots: 10 AM - 12 PM, Monday to Friday
![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_example.png) Example Bruce, a contractor, specializes in loan management and manages his own availability independent of any branch. To reflect his availability, he creates shifts from 10 AM to 5 PM, Monday to Friday. The operating hours of the 1 Market St. branch are 10 AM to 3 PM, Monday to Friday. Salesforce Scheduler shows time slots that are based only on Bruce's shifts, and doesn’t consider the branch’s operating hours. ![shifts\_time\_slot\_ex1](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_shifts_time_slot_ex1.png) ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_example.png) Example John, a banker, works in the 1 Market St. branch. The operating hours of the 1 Market St. branch are from 10 AM to 3 PM, Monday to Friday. To schedule more appointments, John creates his shifts from 10 AM to 4 PM, Monday to Thursday. However, the branch manager has a strict policy to schedule appointments only during the branch’s operating hours. Salesforce Scheduler now shows time slots from 10 PM to 3 PM for John based on his shifts and the branch’s operating hours. ![shifts\_time\_slot\_ex2](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_shifts_time_slot_ex2.png) ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_example.png) Example John, a banker, works in the 1 Market St. branch. The operating hours of the 1 Market St. branch are 10 AM to 3 PM, Monday to Friday. Jane, a customer, only makes appointments between 10 AM and 12 PM. John has created shifts between 10 AM and 2 PM. When John wants to schedule an appointment with Jane, the available time slots are between 10 AM and 12 PM. The time slots are determined based on the intersection of the branch’s operating hours, John’s shifts, and Jane’s operating hours. ![shifts\_time\_slot\_ex3](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_shifts_time_slot_ex3.png) - **[Define Shift Rules in Scheduling Policy](https://help.salesforce.com/s/articleView?id=platform.ls_use_shifts_to_determine_time_slots.htm&release=264.0.0&type=5)** To use shifts instead of the service territory member’s operating hours when determining available time slots, enable shift-specific rules in the scheduling policy. #### See Also - [How Salesforce Scheduler Determines Available Time Slots](https://help.salesforce.com/s/articleView?id=platform.ls_how_are_time_slots_determined.htm&release=264.0.0&type=5 "When users schedule a service appointment, Salesforce Scheduler uses multiple factors, such as field values, scheduled appointments, absences, Scheduler Settings, and Scheduling Policies to determine available time slots.") - [Set Up Operating Hours in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_set_up_oh.htm&release=264.0.0&type=5 "Operating hours represent the time slots during which appointments can be scheduled. For example, if a bank allows mortgage appointments at a branch only Monday through Wednesday, from 8 AM to 2 PM, create operating hours for the mortgage work type that reflect this requirement.") - [Scheduling Policy Rules in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_scheduling_policies.htm&release=264.0.0&type=5 "Understand the scheduling policy rules that are available in Salesforce Scheduler.") # Determine Automation Usage in a Flow Version Flow versions can use other flows from a Subflow element, and they can use flows and flow approval processes from an Action element. To understand the relationships between a flow version and the automations that it uses, view the Usage tab of the Flow Version page in the Approvals app. ### Required Editions
View supported editions.
User Permissions Needed
To view usage details for all flows on the Flows tab in the Automation app Manage Flow
To view usage details for your marketing flows on the Flows tab in the Automation app

View Flows

OR

View All Non-Admin Flows

The Uses Flows and Uses Orchestrations lists depend on whether the selected flow version was created in your org. If Salesforce or a managed package provided the flow version, the Uses Flows and Uses Orchestrations lists contain no items. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter automation, and then select **Automation**. The Automation app opens. 3. Select the **Flows** tab, click a flow label, and then select the **Versions** tab. The Flow page opens and shows a list of versions for the selected flow. 4. Click the link of a flow version name, and then select the **Usage** tab. The tab shows the automations that the flow version uses. ![A list of automations that a sample flow version uses](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_version_usage.png) # Determine CRM Record for Individual Marketing Flow Element Use the Determine CRM Record for Individual action element to find out if a person has a contact, lead, or prospect record. You can set up different paths for each situation and customize how you want to approach an individual depending on your existing records. For example, send specific emails based on whether the person is a lead or prospect, or update their contact record with new information. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise and Unlimited Editions with Marketing Cloud Growth or Advanced Edition
Available in: All editions supported by Data 360. See Data 360 edition availability
## Usage In a segment-triggered flow, add the Determine CRM Record for Individual action to the flow canvas. You can configure the action to include paths for whether a contact, lead, or prospect record is found. You can also configure a path if none of those records are found. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note The Determine CRM Record for Individual action is available only for segment-triggered flows. Wait elements and actions like Send Email and Send SMS are unsupported on paths directly leading out from the action. You can add waits and actions after all of the paths meet. # Determine Flow Approval Process Usage in Flow Versions Flow versions can call a flow approval process from an Action element using the Request Approval action. View the flow versions that use an autolaunched flow approval process before making changes to the active flow approval process version. ### Required Editions
View supported editions for Flow Approval Processes.
User Permissions Needed
To view usage details for all flow approval processes in the Approvals app Manage Flow
To view usage details for the flow approval processes that you created in the Approvals app Approval Designer
The Used in Flow Versions list shows only flow versions created in your org that use the selected flow approval process. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter approvals, and then select **Approvals**. The Approvals app opens. 3. Select the **Manage All Flow Approval Processes** tile. The All Flow Approval Processes list view opens. 4. Click a flow approval process label, and then select the **Usage** tab. The tab shows a list of flow versions that use the flow approval process. ![A list of flow versions that use a sample flow approval process version](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/automated_approvals/automated_approvals_flow_approval_process_used_in_usage.png) # Determine Flow Usage in a Flow Approval Process Version Flow approval process versions use flows to run approval and background steps. Flow approval process version stages and steps can use flows to evaluate complex criteria. Those criteria can determine when a background or approval step starts and when to mark a stage or approval step as completed. View the flows that a flow approval process version uses to understand these relationships. ### Required Editions
View supported editions for Flow Approval Processes.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This feature is supported in Government Cloud and Government Cloud Plus.
User Permissions Needed
To view usage details for all flow approval processes in the Approvals app Manage Flow
To view usage details for the flow approval processes that you created in the Approvals app Approval Designer
The Uses Flows list depends on whether the selected flow approval process version was created in your org. If Salesforce or a managed package provided the flow approval process version, then the Uses Flows list contains no items. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter approvals, and then select **Approvals**. The Approvals app opens. 3. Select the **Manage All Flow Approval Processes** tile. The All Flow Approval Processes list view opens. 4. Click a flow approval process label, and then select the **Versions** tab. The Orchestration page opens and shows a list of versions for the selected flow approval process. 5. Click the link of a flow approval process version name, and then select the **Usage** tab. The tab shows the flows that the flow approval process version uses. ![A list of flows that a sample flow approval process version uses](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/automated_approvals/automated_approvals_flow_approval_process_flow_usage.png) # Determine Flow Usage in an Orchestration Version Orchestration versions use flows to run interactive and background steps. Orchestration version stages and steps can use flows to evaluate complex criteria. Those criteria can determine when a background, interactive step, or MuleSoft step starts and when to mark a stage or interactive step as completed. View the flows that an orchestration version uses to understand the relationships between an orchestration version and the flows it references. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To view usage details on the Orchestrations tab in the Automation Lightning app Manage Flow
The Uses Flows list depends on whether the selected orchestration version was created in your org. If Salesforce or a managed package provided the orchestration version, then the Uses Flows list contains no items. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter automation, and then select **Automation**. The Automation app opens. 3. Select the **Orchestrations** tab, click an orchestration label, and then select the **Versions** tab. The Orchestration page opens and shows a list of versions for the selected orchestration. 4. Click the link of an orchestration version name, and then select the **Usage** tab. The tab shows the flows that the orchestration version uses. ![A list of flows that a sample orchestration version uses](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/orchestration/orchestrator_orchestration_version_uses_flows_view.png) # Determine Flow Usage in Automation Versions Flow approval process versions and orchestration versions rely on flows to run steps and evaluate complex conditions. Flow versions can use another flow from a Subflow element or an Action element. To understand the relationships between the automation versions that use a flow, view the Usage tab of the Flow page in the Approvals app. ### Required Editions
View supported editions.
User Permissions Needed
To view usage details for all flows on the Flows tab in the Automation app Manage Flow
To view usage details for your marketing flows on the Flows tab in the Automation app

View Flows

OR

View All Non-Admin Flows

The Used in Flow Versions and Used in Orchestration Versions lists show only flow versions and flow approval process versions created in your org that use the selected flow. 1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png). 2. In the search box, enter automation, and then select **Automation**. The Automation app opens. 3. Select the **Flows** tab. The Flows list view opens. 4. Click a flow label, and then select the **Usage** tab. The tab shows a list of automation versions that use the flow. ![A list of flow versions, orchestration versions, and flow approval process versions that use a sample flow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_usage.png) # Determine How to Distribute Your Screen Flow Choose where to place your screen flow based on who accesses it and how you want them to interact with it. ### Required Editions
View supported editions.
After you create and activate a screen flow, decide how to share it with your users. Consider these questions to help you decide. - Are the users internal and are a part of your org, or are they’re external users who are outside of your org? - Where do you want users to access the flow? There are several ways that you can distribute a screen flow. Most are for internal users because the screen flow runs in your Salesforce org. You can share your flow with external users by embedding a flow in an Experience Cloud site. If you don't want users to log in to use the flow, you don't need to purchase Experience Cloud licenses. If you want users to log in to use the flow, purchase Experience Cloud licenses. | Use When You Want To | User Type | Location | Distribution Method | | --- | --- | --- | --- | | Run the flow from a specific record page with the click of a button. The flow can receive the record ID or entire record for context. Ideal for record-specific actions like updating a record or creating related records. | Internal | Record page button | [Quick Action](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_action.htm&release=264.0.0&type=5 "Add a button to a Lightning record page that starts an active screen flow. Send the entire record or the record ID to the flow. Use a quick action to setup the button.") or [Custom Button](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url.htm&release=264.0.0&type=5 "If you're using your flow’s web address (URL) to share your flow, you can customize what happens when the flow ends, and you can send variable values to the flow in the URL.") | | Run a flow directly on a page for easy access. Use when the flow is a main part of a user's workflow and you want it to be visible without extra clicks. | Internal | Home page, record page, or app page | [Lightning Page](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_lab.htm&release=264.0.0&type=5 "To easily distribute a screen flow to Lightning Experience or Salesforce app users, embed it in a Lightning page.") | | Run the flow from anywhere in your app. Great for frequently used flows that users need quick access to regardless of which page they're on. | Internal | Footer of a Lightning app, accessible from any page | [Utility Bar](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_utilitybar.htm&release=264.0.0&type=5 "Want your flow to be accessible from any page in your app? Add it to the utility bar in your Lightning app. The utility bar gives your users quick access to commonly used tools.") | | Share the flow's URL directly with users through email, chat, or other communication channels. Simple way to give users access without modifying page layouts. | Internal | Direct link shared with users | [Direct URL](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url.htm&release=264.0.0&type=5 "If you're using your flow’s web address (URL) to share your flow, you can customize what happens when the flow ends, and you can send variable values to the flow in the URL.") | | Add a button to a list view to perform actions on selected records. Use when you want users to run the flow on one or more records from a list view. | Internal | List view | [Custom List Button](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url.htm&release=264.0.0&type=5 "If you're using your flow’s web address (URL) to share your flow, you can customize what happens when the flow ends, and you can send variable values to the flow in the URL.") | | Add a link to a record detail page that opens the flow. Less prominent than a button but still accessible from the record. | Internal | Record detail page | [Custom Link](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url.htm&release=264.0.0&type=5 "If you're using your flow’s web address (URL) to share your flow, you can customize what happens when the flow ends, and you can send variable values to the flow in the URL.") | | Create a dedicated tab for the flow in your app's navigation. Use when the flow is a standalone tool that users access frequently. | Internal | Navigation tab in a Lightning app | [App Page](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_lab.htm&release=264.0.0&type=5 "To easily distribute a screen flow to Lightning Experience or Salesforce app users, embed it in a Lightning page.") or [Web Tab](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url.htm&release=264.0.0&type=5 "If you're using your flow’s web address (URL) to share your flow, you can customize what happens when the flow ends, and you can send variable values to the flow in the URL."). | | Add the flow to an Experience BCloud site page for users who log in to your site. Use for customer portals, partner communities, or other authenticated experiences where users have Salesforce credentials. | External | Page on an Experience Cloud site for logged-in users (requires Experience Cloud licenses) | [Experience Builder Site (Authenticated)](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_external_community.htm&release=264.0.0&type=5 "To add a screen flow to a page on your authenticated Experience Cloud website, use an Experience Builder Flow component. Use this method if you have a customer portal or other website that requires users to log in to use.") | | Add the flow to a public Experience Cloud site page for unauthenticated visitors. Use for self-service tools, surveys, lead capture forms, or other public-facing flows. Remember to grant the guest user profile access to the flow. | External | Page on a public Experience Cloud site (no Experience Cloud licenses required) | [Experience Builder Site (Unauthenticated)](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_external_experience_guest_user.htm&release=264.0.0&type=5 "Create an Experience Cloud site that's available to everyone and add a flow component to a page in the site and select an active screen flow. You can link to the flow page from your company's website. Use this method to share flows with external users who don't have a Salesforce license, such as customers, partners, or other external users. Because users aren't logging into your site, you don't need to purchase Experience Cloud licenses.") | ## Advanced Distribution Options There are some advanced ways to distribute a screen flow when you need more control over how your flow looks and behaves. | Use When You Want TO | User Type | Location | Distribution Method | | --- | --- | --- | --- | | Customize how your flow gets and receives data by embedding it in a custom Aura component. Use when you need more control over the flow's behavior and integration. | Internal | Custom action, Lightning tab, or Lightning page | [Custom Aura Component](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_lc.htm&release=264.0.0&type=5 "To customize how your flow gets and receives data, add it to a custom Aura component. Then distribute that component through a custom action, Lightning tab, or Lightning page.") | | Embed the flow in a custom Aura component for finer control over how the flow behaves in external contexts. Flows in custom Aura components use Lightning runtime. | External | External app or page | [Custom Aura Component](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_lc.htm&release=264.0.0&type=5 "To customize how your flow gets and receives data, add it to a custom Aura component. Then distribute that component through a custom action, Lightning tab, or Lightning page.") | | Customize your flow's look and feel for internal users. Flows in Visualforce pages use Classic runtime. Distribute the page through a Visualforce tab, custom button, or custom link. | Internal | Visualforce tab, custom button, or custom link | [Visualforce Page](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_vf.htm&release=264.0.0&type=5 "To customize your flow’s look and feel for internal users, add the flow to a Visualforce page. Then distribute that page through a Visualforce tab, custom button, or custom link.") | | Embed your flow in a Visualforce page and distribute it externally. Customize the appearance to match your company's branding. Point external users to the Visualforce page, not the flow directly. | External | Salesforce site, portal, or community | [Visualforce Page](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_external_vf.htm&release=264.0.0&type=5 "Let external users run your flow by adding the flow to a Visualforce page and distributing that page externally. For example, through a community.") | # Determine How to Serve Your Custom Domain To determine the recommended domain configuration option to serve your custom domain, answer a few questions about your domain and your Salesforce configuration. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, and Unlimited Editions.
Applies to: Salesforce Sites and LWR, Aura, and Visualforce sites
![Decision diagram](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/custom_domain_determine_config2.png) 1. If you don’t own a domain yet, determine the domain to use to serve your site content, including whether you require a registrable domain. For more information, see [Custom Domain Prerequisites](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_prereqs.htm&release=264.0.0&type=5 "Before you serve your site content with a custom domain, register a domain. To get that domain ready to serve your site content, update the Domain Name System (DNS) record to point to your org. Review your site URLs for potential conflicts, and complete the prerequisites for your chosen domain configuration option."). 2. If your domain currently serves content, to minimize the downtime for your domain, plan to set up a [temporary non-HTTPS domain](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_temp_domain.htm&release=264.0.0&type=5 "Salesforce requires that you serve your custom domain via HTTPS. However, some configuration steps can require a temporary non-HTTPS configuration. If your HTTPS certificate isn’t ready to be uploaded to Salesforce, you can use a temporary domain to start configuring your custom URLs. Also, when your domain serves other content, or when you want to move a custom domain to a new production org, you can use a temporary domain to minimize disruption to your domain."). 1. To move a domain to another org, set up a temporary non-HTTP domain as the first step. After the domain is configured in your new org, use the same domain configuration option as the existing domain. For more information, see [Move a Domain to Another Production Org](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_move.htm&release=264.0.0&type=5 "If you purchase a new production org, your old org continues to serve your sites with your custom domain. To move the domain to your new org, set up the domain, and then delete the domain in your old org. Or if you have multiple production orgs, you can move an existing domain to an org of your choice."). 2. If your domain serves content outside of Salesforce, to determine the final option to use for your domain, go to the next step. 3. If you plan to use a registrable domain, skip to the question about whether a non-Salesforce third-party service or CDN serves your domain. 4. If you have digital experiences, including the ones built with [Experience Cloud](https://help.salesforce.com/s/articleView?id=platform.users_license_types_communities.htm&type=5&language=en_US), [Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_b2b_licenses.htm&type=5&language=en_US), and [Industries](https://help.salesforce.com/s/articleView?id=ind.industries_object_access_by_license.htm&type=5&language=en_US) licenses, we recommend that you use the Salesforce content delivery network (CDN). 1. If your company’s policies prohibit the caching of your site content, go to the question about whether a non-Salesforce third-party service or CDN serves your domain. 2. Otherwise, when you add your domain in Salesforce, select the domain configuration option **Serve the domain with the Salesforce Content Delivery Network (CDN)**. For instructions, see [Serve Your Experience Cloud Site with the Salesforce Content Delivery Network (CDN)](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_salesforce_cdn.htm&release=264.0.0&type=5 "Optimize page load times and site performance with our content delivery network. Salesforce partners with a content delivery network (CDN) provider to efficiently deliver publicly cacheable content to users on your Experience Cloud sites. We recommend the Salesforce CDN for custom domains that serve Digital Experiences, including Experiences built with Experience Cloud, Commerce, and Industries licenses."). To learn how CDNs optimize page load times and site performance by caching your site content, see [Content Delivery Networks (CDNs) and Salesforce](https://help.salesforce.com/s/articleView?id=platform.community_builder_cdn_overview.htm&release=264.0.0&type=5 "Optimize page load times and site performance with our content delivery network (CDN). Salesforce partners with a CDN provider to efficiently deliver publicly cacheable content to users on your Experience Cloud sites."). 5. If a non-Salesforce third-party service or CDN serves your domain, when you add your domain in Salesforce, select the domain configuration option **Use a third-party service or CDN to serve the domain**. For instructions, see [Use a Third-Party Service or CDN to Serve Your Custom Domain](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_external_host.htm&release=264.0.0&type=5 "Use a domain that’s hosted by a third-party service to serve your Experience Cloud sites or Salesforce Sites. These third-party services include third-party hosts, web application firewalls (WAFs), and non-Salesforce content delivery networks (CDNs)."). 6. If your domain uses a web application firewall (WAF), when you add your domain in Salesforce, select the domain configuration option **Use a third-party service or CDN to serve the domain**. For instructions, see [Use a Third-Party Service or CDN to Serve Your Custom Domain](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_external_host.htm&release=264.0.0&type=5 "Use a domain that’s hosted by a third-party service to serve your Experience Cloud sites or Salesforce Sites. These third-party services include third-party hosts, web application firewalls (WAFs), and non-Salesforce content delivery networks (CDNs)."). 7. If none of the other scenarios apply, when you add your domain in Salesforce, select the domain configuration option **Serve the domain with your HTTPS certificate on Salesforce servers**. For instructions, see [Serve a Custom Domain with Your HTTPS Certificate on Salesforce Servers](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_cert.htm&release=264.0.0&type=5 "Use an HTTPS certificate that you own to serve your custom domain. After you set up your domain in Salesforce, that domain can serve your Experience Cloud sites or Salesforce Sites."). For more information about each of these options and the corresponding traffic flows, see Options to Serve a Custom Domain. #### See Also - [Custom Domains](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt.htm&release=264.0.0&type=5 "Provide a branded experience for users who access your external-facing Salesforce content by serving your Digital Experiences or Salesforce Sites on a domain that you own, such as https://www.example.com.") - [Options to Serve a Custom Domain](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_domain_config_options.htm&release=264.0.0&type=5 "Salesforce supports three HTTPS options to serve your domain. Whether you serve content for your domain via an HTTPS certificate that you own, through the Salesforce content delivery network (CDN), or through an external service, we require that you use HTTPS. When initial configuration requires that your domain is available before you enable HTTPS, Salesforce also supports a temporary non-HTTPS option.") - [Custom Domain Prerequisites](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_prereqs.htm&release=264.0.0&type=5 "Before you serve your site content with a custom domain, register a domain. To get that domain ready to serve your site content, update the Domain Name System (DNS) record to point to your org. Review your site URLs for potential conflicts, and complete the prerequisites for your chosen domain configuration option.") # Determine Service Resource Availability by Work Type Groups Salesforce Scheduler uses an intersection of operating hours of Service Territory, Service Territory Member, Work Type, and Account to determine service resource availability based on the scheduling policies and scheduler settings. If you want Salesforce Scheduler to also use work type groups to determine availability, enable the Operating Hours for Service Territory Members for Work Type Groups preference in Scheduler Settings. Then, enter work type groups for service territory member operating hours in service territory member records. This setting is enabled by default for orgs created after Summer ’21. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
You can use this preference to specify the hours that a service resource can work on specific appointment topics. For example, a banker in a branch handles Investment Banking and Retail Banking from 10 AM to 12 PM and Account Opening from 1 PM to 3 PM. You can also use this preference to define a subset of topics that a service resource can work on from a service territory. For example, a doctor consults for the Apollo Clinic in two locations. In San Francisco, the doctor sees patients for pulmonology consultations every weekday from 10 AM to 12 PM. The doctor, who also specializes in immunology and allergy medicine, consults at the Oakland clinic every weekday from 2 PM to 4 PM. After you enable the preference, here’s how to set the operating hours for service territory members: - If you want a service resource to be available for a set of work type groups for specific operating hours, enter the operating hours and select the work type groups. - If you want a service resource to be considered as available for all work type groups, then enter operating hours and don’t select any work type groups. - If you want a service resource to be considered as unavailable for a day, don’t enter operating hours for that day. If you don’t create any operating hours for a service territory member, Salesforce Scheduler considers the resource as available for all work type groups. - **[Prerequisites for Setting Operating Hours for Resources Working on Appointment Topics](https://help.salesforce.com/s/articleView?id=platform.ls_prereqs_operating_hours_for_resources_working_on_appointment_topics.htm&release=264.0.0&type=5)** To enable the Operating Hours for Service Territory Members to Work on Appointment Topics preference, your organization must meet certain prerequisites. - **[Enable Operating Hours for Service Territory Members for Work Type Groups](https://help.salesforce.com/s/articleView?id=platform.ls_enable_operating_hours_for_stm_for_wtgs.htm&release=264.0.0&type=5)** To set hours for resources working on appointment topics, enable the Operating Hours for Service Territory Members for Work Type Groups preference. - **[Determine Service Resource Availability by Work Type Groups: Example](https://help.salesforce.com/s/articleView?id=platform.ls_examples_restrict_availability_based_on_work_type_groups.htm&release=264.0.0&type=5)** Learn how Salesforce Scheduler populates time slots when you use the Operating Hours for Service Territory Members for Work Type Groups preference. # Determine Service Resource Availability by Work Type Groups: Example Learn how Salesforce Scheduler populates time slots when you use the Operating Hours for Service Territory Members for Work Type Groups preference. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Ryan is a banker who specializes in Investment Banking, Business Banking, and General Banking. He works from the Market Street branch, which is open from 9:00 AM to 5:00 PM from Monday to Friday. Each appointment is for 60 minutes. The Appointment Start Time Interval is 60 minutes, and Block Time Before Appointment and Block Time After Appointment are set to 0. Here are his work hours for appointment topics.
Day Time Appointment Topics
Monday 10:00 AM to 12:00 PM
  • Business Banking
  • General Banking
Monday 1:00 PM to 3:00 PM
  • General Banking
  • Investment Banking
Tuesday 10:00 AM to 4:00 PM
  • Business Banking
  • Investment Banking
Wednesday 9:00 AM to 5:00 PM All appointment topics
Thursday 9:00 AM to 5:00 PM General Banking
Friday No Appointments No Appointments
![Operating hours for Ryan’s service territory member record for the Market Street branch.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_examples_restrict_availability_based_on_work_type_groups.png) Let’s take a closer look at some work hours. - As Ryan accepts Business Banking and General Banking appointments from 10:00 AM to 12:00 PM on Monday, we select both Business Banking and General Banking in the work type group column. - As Ryan accepts all types of appointments on Wednesday from 9:00 AM to 5:00 PM, we don’t select any work type group. - As Ryan doesn’t accept any appointments on Friday, we don’t create any work hours for Friday. Here are the time slots that appear when a customer books an appointment with Ryan for Business Banking. ![The Select Service Appointment Time screen with the time slots for Business Banking.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_examples_restrict_availability_based_on_work_type_groups_1.png) Here are the time slots that appear when a customer books an appointment with Ryan for General Banking. ![The Select Service Appointment Time screen with the time slots for General Banking.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_examples_restrict_availability_based_on_work_type_groups_2.png) Here are the time slots that appear when a customer books an appointment with Ryan for Investment Banking. ![The Select Service Appointment Time screen with the time slots for Investment Banking.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_examples_restrict_availability_based_on_work_type_groups_3.png) # Determine the URL of a Site.com Page Determine a Site.com page’s URL to let your users access it directly, make it the home page for your community, and more. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage a community’s Site.com custom pages:

Create and Set Up Communities

OR

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

After you create a Site.com page, you can determine the page’s URL to: - Provide your users with a URL that lets them access a public page directly. - Create a link to the page from other pages, including Salesforce Sites and Visualforce pages. - Make it the home page for your community using a URL redirect in Salesforce Sites. - Add a private page to a web tab in your community. 1. To determine the correct URL for the page: - From the Create Community wizard, click **Customize**. - If you navigated away from the Create Community wizard, click **Customize** | **Communities** | **All Communities**, then click the **Manage** button next to the community name. 2. Click **Administration Settings**. 3. Copy the URL displayed on the page and paste it into a text editor. 4. To create a URL that points to: - The Site.com site’s home page, append /s/ to the URL. For example, https://MyDomainName.my.site.com/ExperienceCloudSiteName/s/. - A specific Site.com page, append /s/, where is the name of the Site.com page. For example, https://MyDomainName.my.site.com/ExperienceCloudSiteName/s/promotion. The URL is case-sensitive and “s” must be lowercase. #### See Also - [Add Authenticated Site.com Pages to Community Tabs](https://help.salesforce.com/s/articleView?id=platform.siteforce_communities_tab.htm&release=264.0.0&type=5 "After you create a private Site.com page, you can add the page to a tab in your community.") - [Salesforce Sites URL Redirects](https://help.salesforce.com/s/articleView?id=platform.sites_redirects.htm&release=264.0.0&type=5 "If you move or reorganize pages on your Salesforce Site, search engines can have trouble finding the new page locations. To avoid this issue, set up site URL redirects to inform users and search engines that site content has moved.") # Determine What Metadata Types to Ignore During Development Your Salesforce DX project repo contains a .forceignore file that determines what metadata and files to exclude when retrieving files from development environments and deploying changes to environments in your release pipeline. The .forceignore file structure mimics the .gitignore structure. Each line in .forceignore specifies a pattern that corresponds to one or more files. The files typically represent metadata components, but can be any files you want to exclude, such as LWC configuration JSON files or tests. Create or edit the file directly in the source control repository. ## Considerations When Initially Creating the .forceignore File If you used our template to create your repo, the .forceignore file likely requires updating to reflect your specific project needs. If you manually create .forceignore in an existing repo, be sure the file is located in the root folder of the Salesforce DX project directory. When you initially build your release pipeline, all pipeline stage branches contain the version of .forceignore that’s in the main branch associated with your release environment. When work items are created, their associated feature branches use the version of the file that’s in your first pipeline stage’s branch. After you activate your pipeline, DevOps Center becomes aware of the .forceignore file and honors it when pulling or promoting changes. ## Sample .forceignore Syntax This sample file contains many of the common files and folders that developers want to ignore. The syntax is different for the promote (deploy) and pull (retrieve) operations. For example, if you want to exclude all profiles when promoting changes, you indicate `**/profiles/**`. If you want to exclude all profiles when pulling changes, you indicate `*.profile`. ``` # List files or folders below to ignore them when deploying and retrieving changes # Standard metadata package.xml # These metadata files are ignored when promoting (deploying) **/appMenus/** **/appSwitcher/** **/fieldRestrictionRules/** **/objectTranslations/** **/profiles/** **/profilePasswordPolicy/** **/profileSessionSetting/** **/settings/** **/sharingRules/** **/AuthProvider/** # These metadata files are ignored when pulling (retrieving) *.settings *.appMenu *.appSwitcher *.rule *.objectTranslation *.profile *.profilePasswordPolicy *.profileSessionSetting *.sharingRules *.AuthProvider # LWC configuration files **/jsconfig.json **/.eslintrc.json # LWC Jest **/__tests__/** ``` ## Considerations When Updating the .forceignore File If changes are required, update the .forceignore file in the main branch of your project repo. If you have multiple DevOps Center projects, manually update the file in each project repository. However, the changes don’t automatically propagate to existing branches in the source control system. To apply these changes to any existing work items or future promotions, copy and commit the changes to each work item feature branch and all pipeline stage branches in all source control project repositories. After the changes are pushed from the source control repository to DevOps Center, all future work item branches contain the updated file and all future promotions honor the changes in the file. # Determine Which Changes to Include for the Work Item The work item Changes tab is where you can see the changes you made in the development environment. As you make changes in the development environment, the source-tracking feature keeps a record of the component files that have been added, deleted, or changed. After making and testing your changes, pull them from your development environment, so you can see the changes before committing them to the repository for review. For the specific work item, you can select which changes you want to move forward and commit. - **[Exclude Metadata from the Changes List](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_exclude_metadata.htm&release=264.0.0&type=5)** When retrieving changes from your development environment, you likely have files or metadata types that you want to exclude from committing to the source control repository. You can exclude individual files or all files in a specific directory with a .forceignore file. DevOps Center provides you the ability to view information about these ignored files but they don’t show up in the changes list. - **[Supported Special Characters in Metadata Component Names](https://help.salesforce.com/s/articleView?id=platform.devops_center_component_names_special_characters.htm&release=264.0.0&type=5)** When naming metadata components, DevOps Center and its underlying technologies, such as Metadata API and Salesforce CLI, support a subset of special characters. To avoid issues when deploying or promoting metadata to a pipeline stage, we strongly suggest using only supported special characters in your component names. - **[Pull Changes from the Development Environment](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_pull_changes.htm&release=264.0.0&type=5)** Because the development environment has source tracking enabled, DevOps Center knows what files have been added, changed, or removed. When you pull changes, DevOps Center displays a list of all files that it has identified as changed. These changes aren’t associated with the work item until you select and commit them to the source control repository. - **[Available Changes List](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_available_changes_list.htm&release=264.0.0&type=5)** When you connect a source-tracked development environment to a work item and pull changes, DevOps Center displays a list of all files that it has identified as changed. These changes aren’t associated with the work item until you select and commit them to the source control repository. After a change is committed, it no longer appears in the Available Changes list. - **[Add Any Metadata Component Manually](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_add_metadata.htm&release=264.0.0&type=5)** A key benefit of DevOps Center is that we track changes for you. However, for those times when you require flexibility to include more metadata than what was pulled automatically, you can select and commit additional metadata source files, not just the ones that DevOps Center determines have changed. # Determine Who Has Sandbox Access Selective Sandbox Access helps you limit access to only required users who are included in a public group. It also removes the additional step for a Salesforce admin to change user email addresses back to their original format. ### Required Editions
User Permissions Needed
To create or edit a public group: Manage Users
To create, refresh, activate, and delete a sandbox: Manage Dev Sandboxes (Developer or Developer Pro only) or Manage Sandboxes (all sandbox types)
## Do I Have to Use a Public Group to Provide Access to a Sandbox? When you create or refresh a Developer and Developer Pro sandbox, you must grant access to the sandbox using a public group. For Partial Copy and Full sandboxes, we recommend that you provide access through a public group; however, you still have the option to provide access to all active users. ## How Do I Provide Access Through a Public Group? When creating or refreshing a sandbox, you select a public group for **Sandbox Access**. To create a public group, see [Create and Edit Groups](https://help.salesforce.com/s/articleView?id=platform.creating_and_editing_groups.htm&type=5&language=en_US). - Make sure all members of the group are of type `Users`. - To improve security and reduce sandbox creation times, we recommend that the public group contains fewer than 150 members. How you select the public group depends on how many public groups are defined in your org. - If the production org has fewer than 60 public groups, select the group from the Public Groups dropdown. - If the production org has 60 or more public groups, enter the public group name in the Public Groups field. If the public group is empty, only the sandbox creator has access. ## Sandbox Access User Group Options The Sandbox Access User Group determines the email address formats when creating a sandbox. When you clone a sandbox, Selective Sandbox Access is unavailable. Cloned sandbox access is determined based on access to the source sandbox.
Sandbox Operation Sandbox Access User Group Users With Access Email Address Format
Create (applies to only Partial Copy and Full sandboxes) All Active Users (Match Source Org Access) Matches users who have access in the production org.

The email address of the sandbox creator is copied unmodified from the production org.

Email addresses of the remaining users are appended with .invalid.

Create (applies to all sandbox types) Public User Group

The sandbox creator and users belonging to the public user group have access to the sandbox.

We freeze remaining users to remove sandbox access.

The email addresses of all users with sandbox access are copied unmodified from the production org.

Email addresses of the remaining users are appended with .invalid.

Clone (applies to all sandbox types) Not selectable. Source sandbox matches production access. All users with access to the source sandbox.

The email address of the sandbox creator is copied unmodified from the source org.

Email addresses of the remaining users are appended with .invalid.

## Provide Access to Additional Users in Existing Sandboxes You can provide access to additional users by unfreezing their user accounts. See Salesforce Help: [Freeze or Unfreeze User Accounts](https://help.salesforce.com/s/articleView?id=platform.users_freeze.htm&type=5&language=en_US) for instructions. # Develop and Deploy Apex in the Developer Console The Developer Console is an integrated development environment with a collection of tools you can use to create, debug, and test applications in your Salesforce org. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Performance, Unlimited, Developer, Enterprise, and Database.com Editions
User Permissions Needed
To use the Apex Deployment Tool: Author Apex
#### See Also - [Open the Developer Console](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_opening.htm&type=5&language=en_US) - [Using the Developer Console](https://help.salesforce.com/s/articleView?id=platform.code_system_log.htm&type=5&language=en_US) # Develop and Deploy Using Metadata API Use Metadata API to retrieve, deploy, create, update or delete customization information, such as custom object definitions and page layouts, for your org. This API is intended for managing customizations and for building tools that can manage the metadata model, not the data itself. ### Required Editions
Available in: Performance, Unlimited, Developer, and Enterprise Editions
User Permissions Needed
To use Metadata API: Modify Metadata Through Metadata API Functions
For information about Metadata API, see the [Metadata API Developer Guide.](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/) #### See Also - [Choose Your Tools for Developing and Deploying Changes](https://help.salesforce.com/s/articleView?id=platform.code_tools_ant.htm&release=264.0.0&type=5 "Whether you’re an admin using point-and-click tools or a developer writing code, you can pick the right tool, work in a sandbox, and deploy complete changes to a production org. You can customize and code changes for your org in a sandbox using one, or more, of the tools provided by Salesforce.") # Develop and Deploy Using Salesforce Extensions for Visual Studio Code and Code Builder Salesforce Extensions for VS Code and Code Builder are powered by Salesforce CLI and the Salesforce APIs. Both these products provide a robust set of tools for developing on the Salesforce platform. The Salesforce Extension pack includes tools for developing on the Salesforce platform in the lightweight, extensible VS Code editor. To use Salesforce Extensions for VS Code, download and install the extensions along with the other required software. See [Install Salesforce Extensions](https://developer.salesforce.com/tools/vscode/en/vscode-desktop/install) for details. Salesforce Code Builder is a web-based integrated development environment that has all the power and flexibility of Visual Studio Code, Salesforce Extensions for VS Code, and Salesforce CLI in your web browser. Code Builder provides a modern developer experience for all developers, regardless of expertise level. See [Code Builder](https://developer.salesforce.com/tools/vscode/en/codebuilder/about) for details. #### See Also - [Choose Your Tools for Developing and Deploying Changes](https://help.salesforce.com/s/articleView?id=platform.code_tools_ant.htm&release=264.0.0&type=5 "Whether you’re an admin using point-and-click tools or a developer writing code, you can pick the right tool, work in a sandbox, and deploy complete changes to a production org. You can customize and code changes for your org in a sandbox using one, or more, of the tools provided by Salesforce.") # Develop and Deploy with DX Inspector DX Inspector is a management tool that provides quick access to metadata and data change tracking and visualization. It’s available at the top of a page or builder in your Salesforce sandbox, scratch org, or Developer Edition org. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
DX Inspector shows the name of the org (if available) that you’re working in. It also provides an entry point to a panel with more change tracking capabilities. Before you start using these capabilities, review and accept the opt-in terms. ![DX Inspector](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/dx_inspector.png) You can also create and view the status of work items, or switch between them to focus on high-priority work items. - **[Change Management](https://help.salesforce.com/s/articleView?id=platform.change_management.htm&release=264.0.0&type=5)** The Change Management tab offers a unified view of all the modifications across your current org. From this tab, you can view, manage, and commit metadata and data changes to your source control repository. You can also move metadata and data together for direct deployment to a target org. - **[Activity History](https://help.salesforce.com/s/articleView?id=platform.dx_inspector_activity_history.htm&release=264.0.0&type=5)** View a chronological timeline of key events in your org, such as commits, deployments, and reviews. Use the Activity History tab in DX Inspector to audit activity and troubleshoot errors. - **[Metadata and Data Deployment from DX Inspector](https://help.salesforce.com/s/articleView?id=platform.metadata_and_data_deployment.htm&release=264.0.0&type=5)** Quickly move metadata and configuration data from your current Salesforce org to a target org in a single orchestration. This type of direct deployment from DX Inspector is ideal for moving small, specific changes without using a full DevOps pipeline. # Developer Console The Developer Console is an integrated development environment with a collection of tools you can use to create, debug, and test applications in your Salesforce org. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png) Important Developer Console is in maintenance mode and no new features are being added. Only security bugs of high severity are addressed. - **[Open the Developer Console](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_opening.htm&release=264.0.0&type=5)** It takes only a couple of clicks to open the Developer Console from Salesforce Classic or Lightning Experience. The Developer Console is an integrated development environment with a collection of tools you can use to create, debug, and test applications in your Salesforce org. - **[Developer Console Functionality](https://help.salesforce.com/s/articleView?id=platform.code_system_log.htm&release=264.0.0&type=5)** The Developer Console can help with many of your development tasks. - **[Developer Console Query Editor](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_query_editor.htm&release=264.0.0&type=5)** You can use the **Query Editor** in the Developer Console to execute a SOQL query or SOSL search on the data in your organization. A SOQL query retrieves data from a single object or multiple related objects in the database. You can execute a SOQL query immediately after data is added to the database. A SOSL query is a free-form text search that retrieves multiple related or unrelated objects and fields. Using SOSL, you can retrieve data for a specific term that exists within a field. And, SOSL can tokenize multiple terms to find relevant records. It can take several minutes for data to be indexed before you can execute a query and get results. - **[The Developer Console User Interface](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_navigating.htm&release=264.0.0&type=5)** The Developer Console includes a collection of useful tools for coding, debugging, and testing applications. # Developer Console Command Line Reference The Developer Console includes a command line for various useful commands.
Command Parameters Description
commands None A list of all commands.
exec <Apex statements> <Apex statements>: One or more Apex statements. Executes the <Apex statements> and generates a log.
exec [-o | -r] None

-o: Opens the Enter Apex Code window.

-r: Executes the code in the Enter Apex Code window and generates a log.

find <string> <string>: A string of characters. Searches the log for a string.
help None Explains how to get information about commands.
man <command> <command>: A Command Line Window command. Displays the description of the command.
# Developer Console Debug Menu The Developer Console **Debug** menu allows you to manage your logs and execute anonymous Apex. It includes these options. - **Open Execute Anonymous Window**: Opens a new window that allows you to enter Apex code for testing. - **Execute Last**: Executes the most recent entry in the Enter Apex Code window. - **Switch Perspective**: Selects the perspective from the list of available standard and custom perspectives. - **View Log Panels**: Displays a list of available panels for use in a perspective. - **Perspective Manager**: Opens the Perspective Manager. - **Save Perspective**: Saves any changes you’ve made to the current perspective since it was open. - **Save Perspective As**: Saves a copy of the current perspective with a different name. - **Auto-Hide Logs**: Select this option to clear existing logs when the page is refreshed. - **Show My Current Logs Only**: Deselect this option (selected by default) to see all logs saved for your organization, including newly generated logs created by other users. - **Show My Current Checkpoints Only**: Deselect this option (selected by default) to display all checkpoints currently saved for your organization, including newly generated ones created by other users. - **Clear**: Select **Log Panel**, **Checkpoint Results Panel**, or **Checkpoint Locations** to erase current data from the cache and refresh the display. - **Resume Updating**: Renews the connection to the server. This option is only shown if polling has been interrupted due to inactivity. - **Change Log Levels**: Opens the log settings dialog to define logging levels for future requests. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note Some options in the **Debug** menu are not accessible until a log has been generated. #### See Also - [Executing Anonymous Apex Code](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_execute_anonymous.htm&release=264.0.0&type=5 "The Developer Console allows you to execute Apex code as another way to generate debug logs that cover specific application logic.") - [Log Inspector](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_view_system_log.htm&release=264.0.0&type=5 "The Log Inspector is a context-sensitive execution viewer in the Developer Console. It shows the source of an operation, what triggered the operation, and what occurred next. Use this tool to inspect debug logs that include database events, Apex processing, workflow, and validation logic.") - [Managing Perspectives in the Log Inspector](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_perspectives_working.htm&release=264.0.0&type=5 "A perspective is a predefined layout of panels in the Log Inspector.") - [Debug Log Levels](https://help.salesforce.com/s/articleView?id=platform.code_setting_debug_log_levels.htm&release=264.0.0&type=5 "To specify the level of information that gets included in debug logs, set up trace flags and debug levels. The debug levels assigned to your trace flags control the type and amount of information that is logged for different events. After logging has occurred, inspect debug events in your debug logs.") # Developer Console Edit Menu The Developer Console **Edit** menu allows you to search and edit your code files. It includes these options. - **Find**: Searches the current view for the selected text. If no text is selected, opens a browser find dialog. - **Find Next**: Finds the next match for the selected or specified text in the current view. - **Find/Replace**: Finds and replaces the selected or specified text in the current view. - **Search in Files**: Opens a search dialog to search the contents of all code files. - **Fix Indentation**: Corrects the indentation in the current code file. # Developer Console File Menu The Developer Console **File** menu allows you to manage your Apex triggers and classes, Visualforce pages and components, and static resources (text, XML, JavaScript, or CSS). It includes these options. - **New**: Creates a resource and opens it in the Source Code Editor. You can create these resources: - Apex class or trigger; To create an Apex trigger, first select the object to associate with the trigger. - Lightning application, component, event, interface, or tokens bundle - Visualforce page or component - Static resource file (text, XML, JavaScript, or CSS) - **Open**: Launches a File Open window that allows you to browse and open your application code and data objects. - **Open Resource**: Launches an Open Resource window that allows you to search for files by name. - **Open Lightning Resources**: Launches an Open Lightning Resources window that allows you to search for Lightning components resources by name. - **Open Log**: Opens the selected log in the Log Inspector. You can also access logs from the Logs tab. - **Open Raw Log**: Opens the selected log, in plain text. - **Download Log**: Saves a text copy of the selected log to your local machine. - **Save**: Saves the item in the active tab. - **Save All**: Saves changes in all the tabs open in your workspace. Use this option to save a set of dependent changes. - **Delete**: Deletes the item in the active tab. You can only delete Apex classes, triggers, Visualforce pages, and static resource files. - **Close**: Closes the active tab. - **Close All**: Closes all the tabs open in your workspace. If any tab contains unsaved changes, you are prompted to save them. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note As of API version 45.0, you can build Lightning components using two programming models: Lightning Web Components, and the original model, Aura Components. Lightning web components are custom HTML elements built using HTML and modern JavaScript. Lightning web components and Aura components can coexist and interoperate on a page. You cannot develop Lightning web components in the Developer Console. #### See Also - [Open Types with the File Open Window](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_menu_file_open.htm&release=264.0.0&type=5 "You can browse and open your application code and data objects from the Developer Console Open window.") - [Source Code Editor](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_view_code_editor.htm&release=264.0.0&type=5 "The Developer Console includes a Source Code Editor with a collection of features for editing Apex and Visualforce code.") - [Object Inspector](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_view_quick_schema.htm&release=264.0.0&type=5 "The Object Inspector provides a read-only reference for the fields of a standard or custom object, and their data types. To open the Object Inspector, click File > Open and select the object you want to view.") # Developer Console Functionality The Developer Console can help with many of your development tasks. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To use the Developer Console: API Enabled AND View All Data
To view, retain, and delete debug logs: View All Data
To execute anonymous Apex: Author Apex
To use code search and run SOQL or SOSL on the query tab: API Enabled
To save changes to Apex classes and triggers: Author Apex
To save changes to Visualforce pages and components:     Customize Application
To save changes to Lightning resources: Customize Application
## Debugging and Troubleshooting The Developer Console provides a convenient set of tools for efficiently tracking down logical issues. - View Logs: Use the Logs tab to view a list of logs. Open logs in the Log Inspector. Log Inspector is a context-sensitive execution viewer in the Developer Console. It shows the source of an operation, what triggered the operation, and what occurred next. Use this tool to inspect debug logs that include database events, Apex processing, workflow, and validation logic. - Set and View Checkpoints in Apex Code: Use the Developer Console to set checkpoints to identify the source of errors. For example, if you want to understand why a certain request generates an error, you can review the execution, identify the offending logic, and set a checkpoint. When you execute the process again, you can inspect the request at that specific point to understand in detail how to improve your code. While the Developer Console can't pause execution like a traditional debugger, it provides much of the same visibility and reduces the need to add `System.debug` statements. ## Editing and Navigating Source Code The Developer Console allows you to browse, open, edit, and create source code files. - Browse Packages in Your Organization: Navigate the contents of packages created in your organization. - View and Edit Apex Classes and Triggers: Open and edit Apex triggers and classes, and open a read-only view of your custom object definitions. - View and Edit Lightning Components: Open and edit Lightning resources, such as an application, component, event, or interface. - View and Edit Visualforce Pages and Components: Open and edit Visualforce pages and components. - Use the Source Code Editor: Open a working set of code files and switch between them with a single click. - Format Your Code Files: You can use the Prettier code formatter to format your Aura components in Developer Console. To prettify the code in an open file, select **Edit** | **Fix Code Formatting**. Or, press Ctrl+Alt+F. To configure your code-formatting settings, select **File** | **Preferences** and then adjust the settings whose names begin with **Prettier:**. For information about these settings, see [Options](https://prettier.io/docs/en/options.html) in the Prettier documentation. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note Fix Code Formatting isn’t available in Internet Explorer. ## Testing and Validating Performance The Developer Console has various features dedicated to testing code and analyzing performance. - Test Apex Code: Use the Developer Console to check code coverage and run Apex tests, including unit tests, functional tests, regression tests, and so on. To facilitate the development of robust, error-free code, Apex supports the creation and execution of unit tests. Unit tests are class methods that verify whether a particular piece of code is working properly. Unit test methods take no arguments, commit no data to the database, and send no emails. Such methods are flagged with the `@isTest` annotation in the method definition. Unit test methods must be defined in test classes, that is, classes annotated with `@isTest`. - Inspect Logs for Performance Issues: Log Inspector is a context-sensitive execution viewer in the Developer Console. It shows the source of an operation, what triggered the operation, and what occurred next. Use this tool to inspect debug logs that include database events, Apex processing, workflow, and validation logic. Open a debug log and view the aggregated performance of an operation in the Performance Tree. The Executed Units panel breaks up the request by time and type. It categorizes the timings by methods, queries, workflows, callouts, DML, validations, triggers, and pages, giving you a clear idea of where to find performance issues. Use the Timeline panel to see a timeline view of the overall request and walk through the events for a given block. The Limits panel provides a summary view of resources used and maps them against your allocated request limits. ## Executing SOQL and SOSL Queries The Developer Console provides a simple interface for managing SOQL and SOSL queries. - Edit and Execute SOQL and SOSL Queries: Use the **Query Editor** to query data from your organization. - View Query Results: Results are displayed in a Query Results grid, in which you can open, create, update, and delete records. For SOSL search results with multiple objects, each object is displayed on a separate tab. #### See Also - [Open the Developer Console](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_opening.htm&release=264.0.0&type=5 "It takes only a couple of clicks to open the Developer Console from Salesforce Classic or Lightning Experience. The Developer Console is an integrated development environment with a collection of tools you can use to create, debug, and test applications in your Salesforce org.") - [The Developer Console User Interface](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_navigating.htm&release=264.0.0&type=5 "The Developer Console includes a collection of useful tools for coding, debugging, and testing applications.") - [Developer Console File Menu](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_menu_file.htm&release=264.0.0&type=5 "The Developer Console File menu allows you to manage your Apex triggers and classes, Visualforce pages and components, and static resources (text, XML, JavaScript, or CSS). It includes these options.") - [Logs Tab](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_browser_logs.htm&release=264.0.0&type=5 "Use the Logs tab in the Developer Console to access logs that include database events, Apex processing, workflow, callouts, and validation logic.") - [Examples of Using the Log Inspector](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_solving_problems_using_system_log.htm&release=264.0.0&type=5 "Here are some of the ways you can use the Log Inspector to diagnose and solve problems.") - [Prettier Docs: Options](https://prettier.io/docs/en/options.html) # Developer Console Query Editor You can use the **Query Editor** in the Developer Console to execute a SOQL query or SOSL search on the data in your organization. A SOQL query retrieves data from a single object or multiple related objects in the database. You can execute a SOQL query immediately after data is added to the database. A SOSL query is a free-form text search that retrieves multiple related or unrelated objects and fields. Using SOSL, you can retrieve data for a specific term that exists within a field. And, SOSL can tokenize multiple terms to find relevant records. It can take several minutes for data to be indexed before you can execute a query and get results. In the Developer Console Query Editor, the History pane displays your last 10 queries for quick reuse. Results are displayed in a Query Results grid, in which you can open, create, update, and delete records. For SOSL search results with multiple objects, each object is displayed on a separate tab. ![Query Editor tool in the Developer Console](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_query_editor.png) - **[Execute a SOQL Query or SOSL Search](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_query_editor_soql_sosl.htm&release=264.0.0&type=5)** Execute SOQL queries or SOSL searches in the Query Editor panel of the Developer Console. - **[Retrieve Query Plans](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_query_editor_query_plans.htm&release=264.0.0&type=5)** Use the Query Plan tool to optimize and speed up queries done over large numbers of records. View query plans for SOQL queries, reports, and list views. If custom indexes are available for your organization, use query plans to help you decide when to request a custom index from Salesforce Support. - **[Query Results Grid](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_query_editor_query_results_grid.htm&release=264.0.0&type=5)** The Query Results grid displays each record as a row. You can create, update, and delete records without leaving the Developer Console. For SOSL search results with multiple objects, each object is displayed on a separate tab. #### See Also - [Developer Console Functionality](https://help.salesforce.com/s/articleView?id=platform.code_system_log.htm&release=264.0.0&type=5 "The Developer Console can help with many of your development tasks.") # Developer Console User Interface: Logs, Tests, and Problems Panel The lower panel in the Developer Console includes a collection of useful tabs. - The **Progress** tab displays all asynchronous requests in real time. To see only the operations that are in progress, select **Hide Finished Runs**. To terminate any deployments that haven’t finished, click **Cancel All Deployments**. When you terminate a deployment, a residual polling thread appears in the Progress tab with a short delay. Partial deployments are not possible. To clear the polling task immediately, refresh the Developer Console. - The **Problems** tab shows the details of compilation errors in the Source Code Editor. Changes you make are compiled and validated in the background. While you’re editing code, an error indicator displays beside lines that contain errors. Click a row in the **Problems** tab to jump to the line of code that caused the error. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note After twenty minutes of inactivity, the Developer Console stops polling for new logs, test runs, and checkpoints. To resume updates, click **Debug** | **Resume Updating**. - **[Checkpoints Tab](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_checkpoints.htm&release=264.0.0&type=5)** The **Checkpoints** tab displays a list of saved checkpoints that preserve a snapshot of the state of objects in memory at the time the checkpoint was reached. - **[Logs Tab](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_browser_logs.htm&release=264.0.0&type=5)** Use the Logs tab in the Developer Console to access logs that include database events, Apex processing, workflow, callouts, and validation logic. - **[View State Tab](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_view_state.htm&release=264.0.0&type=5)** The **View State** tab in the Developer Console allows you to examine the view state for a Visualforce page request. - **[Tests Tab](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_tab_tests.htm&release=264.0.0&type=5)** Use the Developer Console to set up test runs, run tests, and check Apex code coverage. # Developer Console User Interface: Menu Bar The menu bar contains menus that give you access to most of the important functionality. - The **Help** menu includes links to the online help, a reference page of shortcut keys, and the Developer Console preferences page. - **[Developer Console File Menu](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_menu_file.htm&release=264.0.0&type=5)** The Developer Console **File** menu allows you to manage your Apex triggers and classes, Visualforce pages and components, and static resources (text, XML, JavaScript, or CSS). It includes these options. - **[Open Types with the File Open Window](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_menu_file_open.htm&release=264.0.0&type=5)** You can browse and open your application code and data objects from the Developer Console Open window. - **[Developer Console Edit Menu](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_menu_edit.htm&release=264.0.0&type=5)** The Developer Console **Edit** menu allows you to search and edit your code files. It includes these options. - **[Developer Console Debug Menu](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_menu_debug.htm&release=264.0.0&type=5)** The Developer Console **Debug** menu allows you to manage your logs and execute anonymous Apex. It includes these options. # Developer Console User Interface: Workspace A workspace is a collection of resources represented by tabs in the main panel of the Developer Console. The detail view or editor shown in each tab is determined by the type of resource open in the tab. For example, source code opens in the Source Code Editor, logs open in the Log Inspector, and so on. You can create a workspace for any group of resources that you use together to keep your work organized. For example, you can create one workspace for source code and another for debug logs, switching between them as you code and test. The **Workspace** menu includes all the necessary links: - **Switch Workspace**: Allows you to select from your org’s saved workspaces. - **New Workspace**: Creates a new workspace. Enter a name for the workspace and click OK. Open the resources that you want in the workspace. The workspace will be saved when you switch to a different workspace or close the Developer Console. - **Rename Current Workspace**: Overwrites the current workspace with the name you enter. - **Workspace Manager**: Opens a popup window that allows you to browse, open, create, and delete your org’s workspaces. You can open the following types of resources in the Developer Console workspace: - Logs open in the Log Inspector. - Checkpoints open in the Checkpoint Inspector. - Apex classes and triggers, and Visualforce pages and components open in the Source Code Editor. - Organization metadata and other non-code resources open in the Object Inspector. - Query results listed on the Query Editory tab open in an editable Query Results grid. - Finished test runs listed on the Test tab open in a Test Results view. To collapse unused panels, use the ![Collapse down button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_button_collapse_down.png)![Collapse up button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_button_collapse_up.png)![Collapse right button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_button_collapse_right.png)![Collapse left button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_button_collapse_left.png) buttons. When collapsed, you can click a panel to temporarily reveal and use it. When your cursor moves out of the panel, it collapses automatically. When you switch to a different workspace or close the Developer Console, the state of the tabs (and the panels within the tabs) in the current workspace is saved. If you have not created a workspace, the configuration is saved as the Default workspace. ## Navigating Between Tabs To move left and right through tabs in the workspace, click the appropriate tab or use the following keyboard shortcuts: - Left: CTRL+Page Up - Right: CTRL+Page Down ## Navigating View History To move backward and forward through your view history, click the ![Tab history buttons](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_history_buttons.png) buttons or use the following keyboard shortcuts: - Backward: CTRL+, - Forward: CTRL+. Clicking ![back button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_history_button_back.png) (or CTRL+) moves through the previously viewed tabs in the order that you viewed them. The ![forward button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_history_button_forward.png) button only becomes active when you are viewing your history. #### See Also - [The Developer Console User Interface](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_navigating.htm&release=264.0.0&type=5 "The Developer Console includes a collection of useful tools for coding, debugging, and testing applications.") - [Source Code Editor](https://help.salesforce.com/s/articleView?id=platform.code_dev_console_view_code_editor.htm&release=264.0.0&type=5 "The Developer Console includes a Source Code Editor with a collection of features for editing Apex and Visualforce code.") # DevOps Center (Managed Package) After your team manager or Salesforce admin has installed and configured DevOps Center, you’ll be notified that the DevOps Center org is ready for you to log in. As part of the setup process, they created one or more projects, source control project repositories, and work items associated with each project. They also added each team member’s source-tracked development environment. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note This article provides information about the DevOps Center managed package. Starting in April 2026, Salesforce offers Lifecycle Center. For information about the new version, see [Lifecycle Center](https://help.salesforce.com/s/articleView?id=platform.next_generation_devops_center.htm&release=264.0.0&type=5 "Lifecycle Center (formerly next-generation DevOps Center) brings modern DevOps best practices to your team with an AI-powered, click-based user interface (UI). Built on the principles of DevOps Center (Managed Package), Lifecycle Center serves as a central development hub where your team can collaborate—with built-in governance that keeps coding agents and users safe and compliant."). ## DevOps Center Projects A project is your team’s central arena for work. The purpose of a project is to help you and your team collaborate and manage changes being developed for a particular application. A project encapsulates definitions and configurations of the many different things that managing a set of changes requires, including: - Work items that define the changes to be made - A pointer to the source control repository that stores changes made for the project - Which development environments are used to make changes (source-tracked Developer sandbox, Developer Pro sandbox, or scratch org) - Environments used for pipeline stages, for example, integration, UAT, and staging - A pipeline that defines how changes are deployed as they move from development to production ## Basic Development Workflow - [Get ready to use a source control system](https://help.salesforce.com/s/articleView?id=platform.devops_center_source_control_account.htm&release=264.0.0&type=5 "DevOps Center requires that you use it with a source control system. You can create a new account or use an existing account. Right now, we support GitHub and Bitbucket (beta)."). - [Open DevOps Center and select a project](https://help.salesforce.com/s/articleView?id=platform.devops_center_open.htm&release=264.0.0&type=5 "Are you ready to begin work? Log in to the DevOps center org, launch DevOps Center, and then select a project."). - [Start on a work item](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_open.htm&release=264.0.0&type=5 "When you open a project for the first time, it's likely to contain several work items that your release manager created when configuring DevOps Center. You and other team members can create additional work items as the project progresses."). - [Pull changes from the development environment, or make changes outside of DevOps Center](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_changes_tab.htm&release=264.0.0&type=5 "The work item Changes tab is where you can see the changes you made in the development environment. As you make changes in the development environment, the source-tracking feature keeps a record of the component files that have been added, deleted, or changed."). - [Commit changes to the project repository](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_commit_changes.htm&release=264.0.0&type=5 "After you decide which changes to include for the work item, commit the changes to the project’s source control repository. When you commit changes, they’re stored in the repository branch that was created when the work item moved to the In Progress stage."). - [Share your changes for team members to review](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_review.htm&release=264.0.0&type=5 "When changes for an In Progress work item are committed and ready to share with reviewers, creating a review opens a change request, also called a pull request."). - [Indicate work items are ready to promote](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_ready_to_promote.htm&release=264.0.0&type=5 "After the work item is reviewed, a team member approves the work item to be ready to promote. Work items aren’t available for promotion through the pipeline until they are in the Ready to Promote status."). - [Promote work items through the pipeline](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_items_promote.htm&release=264.0.0&type=5 "You promote work items through a pipeline, which defines the sequence of stages that work items progress as they go through the release lifecycle from development to production (or some other final stage). You can have any number of pipeline stages. Your team manager built the pipeline when configuring DevOps Center."). - **[Get Ready to Use a Source Control System](https://help.salesforce.com/s/articleView?id=platform.devops_center_source_control_account.htm&release=264.0.0&type=5)** DevOps Center requires that you use it with a source control system. You can create a new account or use an existing account. Right now, we support GitHub and Bitbucket (beta). - **[Open DevOps Center and Select a Project](https://help.salesforce.com/s/articleView?id=platform.devops_center_open.htm&release=264.0.0&type=5)** Are you ready to begin work? Log in to the DevOps center org, launch DevOps Center, and then select a project. - **[Work Item Management](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_management.htm&release=264.0.0&type=5)** A team uses work items to track the progress of changes created to achieve a specific objective or task. These tasks can include enabling a user story, creating a feature, or addressing a bug. Managing releases through work items makes it easier to track the progress of the overall release and identify areas of concern. - **[What Happens When a Sandbox Is Refreshed](https://help.salesforce.com/s/articleView?id=platform.devops_center_sandbox_refresh.htm&release=264.0.0&type=5)** Refreshing a sandbox creates a new copy of the sandbox based on the production or sandbox org you copy it from. - **[Determine Which Changes to Include for the Work Item](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_changes_tab.htm&release=264.0.0&type=5)** The work item Changes tab is where you can see the changes you made in the development environment. As you make changes in the development environment, the source-tracking feature keeps a record of the component files that have been added, deleted, or changed. - **[Commit Changes to the Source Control Repository](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_commit_changes.htm&release=264.0.0&type=5)** After you decide which changes to include for the work item, commit the changes to the project’s source control repository. When you commit changes, they’re stored in the repository branch that was created when the work item moved to the In Progress stage. - **[View Work Item Events in Activity History](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_activity_history.htm&release=264.0.0&type=5)** You can view the Activity History for each work item, which provides a comprehensive history of all key events, including promotions, commits, work item status changes, warnings, and errors (failures). This historical view enables you to maintain and view a record of events and associated details for auditing, troubleshooting, and general visibility purposes. - **[Synchronize Your Development Environment](https://help.salesforce.com/s/articleView?id=platform.devops_center_dev_environment_sync.htm&release=264.0.0&type=5)** If you’re working on a team with multiple developers, it’s likely that your dev environment is going to become out of sync with the source control repository. DevOps Center tracks the differences between each development environment and the first pipeline stage’s branch. - **[Review Changes with Team Members](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_review.htm&release=264.0.0&type=5)** When changes for an In Progress work item are committed and ready to share with reviewers, creating a review opens a change request, also called a pull request. - **[Indicate That Work Items Are Ready to Promote](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_item_ready_to_promote.htm&release=264.0.0&type=5)** After the work item is reviewed, a team member approves the work item to be ready to promote. Work items aren’t available for promotion through the pipeline until they are in the Ready to Promote status. - **[External Change Requests and Merges](https://help.salesforce.com/s/articleView?id=platform.devops_center_external_merges.htm&release=264.0.0&type=5)** You can create a change request and merge your changes directly in the source control system, which is the first half of the promotion process. You can complete the promotion by deploying all externally merged changes to the pipeline stage’s associated environment within DevOps Center or by using Salesforce CLI. - **[Promote Work Items Through Your Pipeline](https://help.salesforce.com/s/articleView?id=platform.devops_center_work_items_promote.htm&release=264.0.0&type=5)** You promote work items through a pipeline, which defines the sequence of stages that work items progress as they go through the release lifecycle from development to production (or some other final stage). You can have any number of pipeline stages. Your team manager built the pipeline when configuring DevOps Center. - **[Combine Work Items in DevOps Center (Managed Package)](https://help.salesforce.com/s/articleView?id=platform.devops_center_promotion_combine_work_items.htm&release=264.0.0&type=5)** Prevent potential conflicts during the promotion process by combining work items that share metadata components. In some cases, the source control repository doesn’t know how to reconcile the changes to the same metadata component. Sometimes the promotion is blocked based on a dependency with a shared component. But have no fear, DevOps Center detects the shared components and provides you with a way to promote your changes through the release pipeline with confidence. - **[View Pipeline Events in Activity History](https://help.salesforce.com/s/articleView?id=platform.devops_center_pipeline_activity_history.htm&release=264.0.0&type=5)** DevOps Center provides a comprehensive history of all key pipeline events, including promotions, synchronizations, and errors (failures). You can use these events and their associated details for auditing, troubleshooting, and general visibility purposes. - **[Update the Project’s Source API Version Each Salesforce Release](https://help.salesforce.com/s/articleView?id=platform.devops_center_sourceapi_version.htm&release=264.0.0&type=5)** Because projects in DevOps Center require a source control repository that uses the Salesforce DX project structure, each DevOps Center project contains a configuration file, sfdx-project.json. During each Salesforce release cycle, make a plan to update the source API version to avoid metadata type version mismatch errors when moving changes through your release pipeline. - **[Merge Conflict Resolution with DevOps Center MCP Tools (Managed Package)](https://help.salesforce.com/s/articleView?id=platform.devops_center_mcp_intro.htm&release=264.0.0&type=5)** The DevOps Center Model Context Protocol (MCP) tools in Salesforce DX MCP Server are a set of capabilities that simplify and accelerate the resolution of merge conflicts. The MCP server uses large language models (LLMs) to analyze conflicts, translate them into natural language explanations, and suggest solutions, so you can use natural language prompts instead of commands. Access these tools through Agentforce Vibes in your Integrated Development Environment (IDE). - **[Improve Release Quality with DevOps Testing](https://help.salesforce.com/s/articleView?id=platform.devops_testing_improve_release_quality_with_devops_testing.htm&release=264.0.0&type=5)** DevOps Testing extends the capabilities of DevOps Center by bringing AI-powered testing and quality control into your DevOps pipeline. Integrate DevOps Testing with testing tools, set quality gates, and run test suites to thoroughly test changes as they move through the DevOps pipeline. This reduces production issues and ensures higher-quality releases. # DevOps Center Managed Package Migration (Developer Preview) Move your DevOps Center (Managed Package) projects into Lifecycle Center. Migration includes your projects, pipelines, environments, and eligible work items so your team can continue to release changes in the new experience. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
Not available in: Government Cloud Plus. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center is supported in orgs in the EU that aren't part of EU OZ, per standard product terms and conditions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note The feature is in developer preview and is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement, if executed by Customer. Its use is at the Customer's sole discretion. ## What Moves to Lifecycle Center Migration moves specific data from DevOps Center (Managed Package) to Lifecycle Center. - Active projects selected for migration. - Pipeline configurations, including stages and environments. - Eligible work items, such as new and closed work items. - Branches and configurations associated with migrated projects. Migration copies data from DevOps Center (Managed Package) to Lifecycle Center without affecting your original data. Run the migration multiple times to move new projects, work items, and pipelines. Migration adds new data but doesn't update previously migrated items, automatically skipping them to prevent duplicates. ## Limitations Certain DevOps Center (Managed Package) data doesn't migrate and requires manual updates post-migration. - Open work items. Open work items refer to work items that are in In Progress, In Review, Ready to Promote, Approved, or Promoted status. Lifecycle Center creates placeholders for open work items with the Migration Pending status. A placeholder contains the work item ID, title, and status. Complete the work in DevOps Center (Managed Package). To continue working on these work items in Lifecycle Center, create corresponding work items there. - Rerunning the migration doesn't update placeholders if the status of the managed package work item changes. - Pipeline environment and source control credentials don't migrate and you must reauthorize them in Lifecycle Center. ## Considerations for Migration - Migrate during a low-activity period to minimize disruption for your team. - Promote, mark as Never, or close open work items in your pipeline. - Use a new source control repository for Lifecycle Center when possible. Reusing an existing repository with pre-existing branches can cause naming conflicts that prevent work items from moving to In Progress status. - Inform your team that open work items appear as placeholders after migration. - Tell your team members to create work items in Lifecycle Center, and commit changes to them to continue their work. - Don't turn off Lifecycle Center while the migration is ongoing. - After you migrate a project, avoid working on the same project in both DevOps Center (Managed Package) and Lifecycle Center. Use the managed package only to finish open work items that existed before migration. Working in both places can create branch and data conflicts. - Don't create work items in DevOps Center (Managed Package) after migration to avoid data inconsistencies. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_warning.png) Warning If you continue using DevOps Center (Managed Package) during a phased migration, plan how your team tracks new work. Run migration again to move new work items and related data into Lifecycle Center. - **[Migrate to Lifecycle Center (Developer Preview)](https://help.salesforce.com/s/articleView?id=platform.devops_center_migrate_managed_package.htm&release=264.0.0&type=5)** Move selected DevOps Center (Managed Package) projects to Lifecycle Center. #### See Also - [Lifecycle Center](https://help.salesforce.com/s/articleView?id=platform.next_generation_devops_center.htm&release=264.0.0&type=5 "Lifecycle Center (formerly next-generation DevOps Center) brings modern DevOps best practices to your team with an AI-powered, click-based user interface (UI). Built on the principles of DevOps Center (Managed Package), Lifecycle Center serves as a central development hub where your team can collaborate—with built-in governance that keeps coding agents and users safe and compliant.") # DevOps Center Releases Based on your feedback and our drive for innovation, the DevOps Center team releases new features, product enhancements, and bug fixes on a regular basis. If you want to know all the goodness included in each package version, you’ve come to the right place. ## Package Version 11.0.0 Release date: June 25, 2025 This release contains service updates, bug fixes, and performance improvements. Release notes: [DevOps Center Roadmap: v11.0 (June 2025)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=116674501&issue=forcedotcom%7Cdevops-center-roadmap%7C170) ## Package Version 10.1.0 Release date: March 25, 2025 This release contains service updates, bug fixes, and performance improvements. Release notes: [DevOps Center Roadmap: v10.1 (March 2025)](https://github.com/forcedotcom/devops-center-roadmap/issues/166) ## Package Version 9.1.0 Release date: February 21, 2025 This release contains service updates, bug fixes, and performance improvements. Release notes: [DevOps Center Roadmap: v9.1 (February 2025)](https://github.com/forcedotcom/devops-center-roadmap/issues/161) ## Package Version 8.2.0 Release date: November 20, 2024 This release includes changes to support DevOps Testing pilot, under-the-hood bug fixes, and performance improvements. This release is required if you’re part of the DevOps Testing pilot. Release notes: [DevOps Center Roadmap: v8.2 (November 2024)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=86546332&issue=forcedotcom%7Cdevops-center-roadmap%7C155) ## Package Version 7.8.0 Release date: October 24, 2024 This release contains performance improvements and bug fixes. Release notes: [DevOps Center Roadmap: v7.8 (October 2024)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=84398541&issue=forcedotcom%7Cdevops-center-roadmap%7C153) ## Package Version 7.7.0 Release date: October 8, 2024 This release contains performance improvements and bug fixes. Release notes: [DevOps Center Roadmap: v7.7 (October 2024)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=82094962) ## Package Version 7.6.0 Release date: September 13, 2024 This release contains performance improvements and bug fixes. Release notes: [DevOps Center Roadmap: v7.6 (September 2024)](https://github.com/forcedotcom/devops-center-roadmap/issues/150) ## Package Version 7.5.0 Release date: September 3, 2024 This release contains feature enhancements, performance improvements, and bug fixes. Release notes for new features: [Winter ’25 Release Notes (DevOps Center)](https://resources.docs.salesforce.com/252/latest/en-us/sfdc/pdf/salesforce_winter25_release_notes.pdf) Release notes for bug fixes: [DevOps Center Roadmap v7.5 (September 2024)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=74639628) ## Package Version 6.4.0 Release date: July 22, 2024 This release contains feature enhancements, performance improvements, and bug fixes. Release notes: [DevOps Center Roadmap: v6.4 (July 2024)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=71977666) ## Service Update Release date: March 2024 This release contains service updates. Release notes for updates: [Update backend library versions](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=66619936) ## Service Update Release date: February 2024 This release contains service updates. Release notes for updates: [Use API version from sfdx-project.json](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=66619717) ## Package Version 6.3.0 Release date: November 30, 2023 This release contains new features, performance improvements, and bug fixes. Release notes for new features: [Winter ’24 Release Notes (DevOps Center)](https://resources.docs.salesforce.com/246/latest/en-us/sfdc/pdf/salesforce_winter24_release_notes.pdf) Release notes for bug fixes: [DevOps Center Roadmap: v6.3 (November 2023)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=44664870) ## Package Version 6.1.0 Release date: October 12, 2023 This release contains performance improvements and bug fixes. Release notes: [DevOps Center Roadmap: v6.1 (October 2023)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=41372401) ## Package Version 6.0.0 Release date: August 31, 2023 This release contains new features, performance improvements, and bug fixes. Release notes for new features: [Winter ’24 Release Notes (DevOps Center)](https://resources.docs.salesforce.com/246/latest/en-us/sfdc/pdf/salesforce_winter24_release_notes.pdf) Release notes for bug fixes: [DevOps Center Roadmap: v6.0 (August 2023)](https://github.com/forcedotcom/devops-center-roadmap/issues/110) ## Package Version 5.8.0 Release date: July 27, 2023 This release contains performance improvements and bug fixes. Release notes: [DevOps Center Roadmap: v5.8 (July 2023)](https://github.com/forcedotcom/devops-center-roadmap/issues/103) ## Package Version 5.7.0 Release date: June 15, 2023 This release contains performance improvements and bug fixes. Release notes: [DevOps Center Roadmap: v5.7 (June 2023)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=29809934) ## Package Version 5.5.0 Release date: April 11, 2023 This release contains performance improvements and bug fixes. Release notes: [DevOps Center Roadmap: v5.5 (April 2023)](https://github.com/orgs/forcedotcom/projects/4/views/1?pane=issue&itemId=24378743) ## Package Version 5.3.0 Release date: December 9, 2022 DevOps Center is generally available, and includes some significant new features and product enhancements since we released the beta version. Release notes for new features: [Spring ’23 Release Notes (DevOps Center)](https://resources.docs.salesforce.com/242/latest/en-us/sfdc/pdf/salesforce_spring23_release_notes.pdf) #### See Also - [_DevOps Center Roadmap_: Tell Us What’s Important to You](https://github.com/orgs/forcedotcom/projects/4/views/1) # DevOps Pipeline Stage Assignments Assign test suites and quality gate rules to your In Progress work items and pipeline stages on the Stage Assignments tab. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Professional (API access required), Unlimited, and Developer Editions
When you create a review for a work item or promote a work item to the next pipeline stage in DevOps Center, DevOps Testing automatically runs the assigned test suites and quality gate rules. The work item moves to the next pipeline stage only if it meets the defined quality gate rules. - **[Assign Test Suites to Work Items and Pipeline Stages](https://help.salesforce.com/s/articleView?id=platform.devops_testing_assign_test_suites_to_work_items_and_pipeline_stages.htm&release=264.0.0&type=5)** Set up test suites for specific work items and events on pipeline stages. - **[Assign Quality Gate Rules to Work Items and Pipeline Stages](https://help.salesforce.com/s/articleView?id=platform.devops_testing_assign_quality_gate_rules_to_work_items_and_pipeline_stages.htm&release=264.0.0&type=5)** Set up quality gate rules for specific events on pipeline stages to ensure that only work items meeting the set quality criteria move to the next stage. - **[Enable or Disable Quality Gate Rules for Test Suites](https://help.salesforce.com/s/articleView?id=platform.devops_testing_enable_quality_gate_rules_for_test_suites.htm&release=264.0.0&type=5)** Enable or disable quality gate rules after they’re assigned to test suites. While we recommend that you do not disable your quality gate rules, you can temporarily disable them if tests are inconsistent or to speed up deployment. After disabling, reevaluate quality gate rules to promote the changes. #### See Also - [Assign Test Suites to Work Items and Pipeline Stages](https://help.salesforce.com/s/articleView?id=platform.devops_testing_assign_test_suites_to_work_items_and_pipeline_stages.htm&release=264.0.0&type=5 "Set up test suites for specific work items and events on pipeline stages.") - [Assign Quality Gate Rules to Work Items and Pipeline Stages](https://help.salesforce.com/s/articleView?id=platform.devops_testing_assign_quality_gate_rules_to_work_items_and_pipeline_stages.htm&release=264.0.0&type=5 "Set up quality gate rules for specific events on pipeline stages to ensure that only work items meeting the set quality criteria move to the next stage.") - [Enable or Disable Quality Gate Rules for Test Suites](https://help.salesforce.com/s/articleView?id=platform.devops_testing_enable_quality_gate_rules_for_test_suites.htm&release=264.0.0&type=5 "Enable or disable quality gate rules after they’re assigned to test suites. While we recommend that you do not disable your quality gate rules, you can temporarily disable them if tests are inconsistent or to speed up deployment. After disabling, reevaluate quality gate rules to promote the changes.") # DevOps Testing Glossary of Terms Get familiar with the key terms and concepts related to DevOps Testing. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Professional (API access required), Unlimited, and Developer Editions
Code Coverage The percentage of executable lines of code covered by a test suite. DevOps Testing calculates this value by dividing the total number of lines run by the number of lines in the classes covered by the tests, then multiplying the result by 100. For the default test suite, DevOps Testing fetches the org-wide coverage. Use this value to assess the quality of your test suite. See [Testing and Code Coverage](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_code_coverage_intro.htm). Quality Gate The checkpoints that ensure only work items that meet quality criteria move to the next pipeline stage. Severity A value ranging from 1 to 5 that helps prioritize failing tests according to their potential impact. DevOps Testing supports these severity levels. - 1 - Critical - 2 - High - 3 - Medium - 4 - Low - 5 - Info Test A set of conditions under which you determine whether a system or change is working as intended. Test Execution The process of running a test that is part of a test suite. Test Provider A testing solution to automate and manage testing activities. For example, Copado Robotic Testing, Provar Automation, Salesforce Code Analyzer v5, and so on. Test Suite A collection of tests for the same test provider. Test Suite Execution The process of running a group of tests assigned to a pipeline stage to verify functionality and identify potential issues. A test suite can be run independently or as part of a test suite group. Test Suite Execution Group A collection of test suites run for a particular pipeline stage in the DevOps process. # DHL Tracking Connector Connect to an external DHL Tracking account. Perform tasks like getting tracking information. Use DHL Tracking as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These DHL Tracking actions are available in Flow Builder. - Get Shipment Tracking Info ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Differences Between User Sharing with Manual Sharing and Sharing Sets Manual sharing and sharing sets provide access to different groups of users. ### Required Editions

Available in: both Salesforce Classic and Lightning Experience

Manual sharing available in: Salesforce Classic

Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
You can control who sees whom in the organization, including internal and external users, if your organization has User Sharing enabled. Manual sharing and sharing sets provide additional access beyond the organization-wide defaults and sharing rules. Some external users, such as high-volume Experience Cloud site users, don’t have roles and can’t be used in sharing rules. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_example.png) Example Grant internal and most external users access to a user by creating a manual share using the Sharing button on the user detail page of that user. Grant high-volume users access to other users by creating a sharing set. The following table shows when to use manual sharing and sharing sets.
  Users Getting Access
  Internal External (Non-high-volume users) High-volume users
Internal Manual Sharing Manual Sharing Sharing Set
External (Non-high-volume users) Manual Sharing Manual Sharing Sharing Set
High-volume users Manual Sharing Manual Sharing Sharing Set
#### See Also - [User Sharing Considerations](https://help.salesforce.com/s/articleView?id=platform.security_sharing_users_concept.htm&release=264.0.0&type=5 "Review these considerations before you implement user sharing.") # Digital Wallet Actions Take action to monitor and alert on usage for products and features that are tracked in Digital Wallet. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise and Unlimited Editions
For required user permissions, see Salesforce Help: [Digital Wallet Permissions](https://help.salesforce.com/s/articleView?id=xcloud.wallet_permissions.htm&language=en_US&type=5). - **[Compute Consumption](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_wallet_compute_consumption.htm&release=264.0.0&type=5)** Computes usage for all consumption cards. - **[Create Consumption Alert](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_wallet_create_consumption_alert.htm&release=264.0.0&type=5)** Sends a notification to specified users when consumption for a card meets or exceeds a specified threshold. - **[Create License Utilization Alert](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_wallet_create_license_utilization_alert.htm&release=264.0.0&type=5)** Sends a notification to specified users when license utilization reaches or exceeds a specified threshold. - **[Create Product Limit Alert](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_actions_wallet_create_product_limit_alert.htm&release=264.0.0&type=5)** Creates alerts when product limit utilization reaches or exceeds configured threshold percentages. This action evaluates current utilization against the specified thresholds and creates Utilization Alert records when thresholds are breached. # Disable All Email Notifications for Work Item Assignments By default, an orchestration sends an email notification when an orchestration work item is assigned or reassigned to a user, group, or queue. Disable all work item notifications to stop sending emails to internal users and credentialed Experience Cloud site visitors. ### Required Editions
View supported editions for Flow Orchestration.
User Permissions Needed
To edit process automation settings: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To send email from Salesforce, Flow Orchestration requires domain-level and user-level email verification. Email delivery fails if either the user's email address or the email-sending domain is unverified. See [Requirements to Send Email from Salesforce](https://help.salesforce.com/s/articleView?id=xcloud.security_email_verification_requirements.htm&type=5&language=en_US) . 1. From Setup, in the Quick Find box, enter process automation, and then select **Process Automation Settings**. 2. On the Process Automation Settings page, select **Stop Sending Orchestration Work Item Email Notifications** # Disable API Access Control Setting for Allowlisted Connected Apps For orgs with API Access Control settings enabled by Salesforce Support, you must disable the “For admin-approved users, limit API access to only allowlisted connected apps” because this setting blocks DevOps Center from interacting with required APIs. If you have this setting enabled, the behavior you see depends on if it was enabled before or after you installed DevOps Center. - If this setting was enabled before DevOps Center was installed, you can’t add a release environment to a project. - If this setting was enabled after DevOps Center was installed, you can’t perform common operations, such as commits and promotions. 1. From Setup, in the Quick Find box, enter API Access Control, then select **API Access Control**. 2. Deselect **For admin-approved users, limit API access to only allowlisted connected apps**. Next, continue configuring DevOps Center. # Disable Auto-Clone Object Matching from Your Salesforce Template Disable auto-clone object matching to speed up your seeding jobs and avoid seed failures caused by large records. When you disable auto-clone matching, you reduce processing time, especially when the destination already contains the necessary records. The process to disable auto-clone objects matching from a template is the same process for both Nodes and Levels templates. In this article, we show a Nodes template example. Auto-Clone While creating a sandbox, Salesforce automatically clones several objects from Production to the sandbox. To avoid creating duplicates, the Seeding application first matches the cloned object records in the source and the destination, and then skips seeding records that already exist in the destination. ## Advanced Option User object is not visible for selection in the template as users are auto-cloned by Salesforce when creating a sandbox. An option exists for advanced users who need to seed User records that are not auto-cloned (i.e. Community Users/Partner Users). - For Mac: - Hold down the Option + Command keys, you are then able to see and add User object to the template. Once added, use the filter to specify the relevant User type. - Enter the word user in the object field, then hold down the Option + Command keys; you are then able to see and add User object to the template. Once added, use the filter to specify the relevant User type. - For Windows: - Hold down control + alt keys for Windows, you are then able to see and add User object to the template. Once added, use the filter to specify the relevant User type. - Enter the word user in the object field, then hold down control + alt keys for Windows you are then able to see and add User object to the template. Once added, use the filter to specify the relevant User type. ## Disable Auto-Clone If you are aware that matching auto-cloned objects might cause the seed to fail, due to a large number of records, or you are sure that all records already exist in the destination and there is no need to run the matching step, you can disable the auto-clone matching function for the relevant object(s). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note If you choose to disable auto-matching and the objects are included in the template, duplicate records might be created. 1. Click the three dots on the template. The drop-down menu opens. 2. Select Advanced Settings. The Advanced Settings window opens. 3. Clear the selected options to disable auto-clone matching. When matching users, we verify that the destination org contains the source users; missing users are mapped to the authenticated user to successfully seed all records. Disabling the Users option results in a faster seed, however, seeding records where the owner does not exist, fail. If the template does not contain Product2, PriceBook & PricebookEntry objects, you can disable matching them, to shorten the seed time. By default, both options are selected. Changing (disabling/enabling) these options affect future seeds. The settings are copied when cloning a template. # Disable DevOps Center Preference When DevOps Center was installed, a Salesforce admin first enabled DevOps Center. To ensure that DevOps Center can’t be installed or used, you can disable the DevOps Center preference. 1. From Setup, enter DevOps Center in the Quick Find box, then select **DevOps Center**. 2. Disable **Enable DevOps Center**. You no longer can install or upgrade the DevOps Center app, and users see DevOps Center has not been enabled for your org when they try to use it. # Disable Parallel Test Execution Tests that are started from the Salesforce user interface (including the Developer Console) run in parallel. Parallel test execution can speed up test run time. Sometimes, parallel test execution results in data contention issues, and you can turn off parallel execution in those cases. ### Required Editions
Available in: Lightning Experience

Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions

See Supported Editions for Flow Builder and Licenses for Integrated Features

User Permissions Needed
To define, edit, delete, set security, and set version settings for Apex classes: Author Apex
To run Apex tests: View Setup and Configuration
To open, edit, or create a flow test in Flow Builder: Manage Flow
To view test run details in Flow Builder: View All Data
In particular, data contention issues and `UNABLE_TO_LOCK_ROW` errors can occur in these cases. - When tests update the same records at the same time—Updating the same records typically occurs when tests don’t create their own data and turn off data isolation to access the org’s data. - When a deadlock occurs in tests that are running in parallel and that try to create records with duplicate index field values—Test data is rolled back when a test method finishes execution. A deadlock occurs when two running tests are waiting for each other to roll back data, which happens if two tests insert records with the same unique index field values in different orders. You can prevent receiving those errors by turning off parallel test execution in the Salesforce user interface. 1. From Setup, enter Application in the Quick Find box, select **Application Test Execution**, then click **Options...**. 2. In the Application Test Execution Options dialog, select **Disable Parallel Apex Testing** and then click **OK**. For more information about test data, see Isolation of Test Data from Organization Data in Unit Tests in the [Apex Code Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/). This option doesn’t affect the execution order of tests, which continue to run asynchronously from the Application Test Execution page. # Disable Single Sign-On (SSO) Disabling Single Sign-On (SSO) requires a shift to password authentication. Upon disabling SSO, you must configure password expiration settings, the number of previous passwords to deny, and whether to enable MFA. 1. Click the Security icon in the bottom left corner of the screen to open the Security Page. 2. Scroll down to the Authentication Method section. 3. Click Change to Password. The Password Settings will open on the right of the screen. 4. Configure your password settings and click Save. The next time a user from your account attempts to log in, they'll be forced to reset their password. # Discord Connector Connect to an external Discord account. Perform tasks like creating channels or messaging users. Use Discord as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Discord actions are available in Flow Builder. - Add Guild Member - Create Channel Invite - Create Channel Message - Create DM - Create Group DM - Create Guild - Create Guild Channel - Crosspost Channel Message - Delete Channel - Delete Channel Message - Delete Guild - Delete Guild Member - End Poll - Get Channel By Id - Get Channel Message By Id - Get Guild By Id - Get Guild Member - Get Poll Answer Votes - Get User By Id - List Channel Invites - List Channel Messages - List Guild Channels - Update Channel - Update Channel Message - Update Guild - Update Guild Member ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Discounting Opportunities Classic Approval Process Example Opportunities that are discounted more than 40% require a CEO approval. Use this example to create a one-step classic approval process. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. ## Prep Your Organization Before creating the classic approval process: - To notify approvers about a pending approval request, create an email template. To direct users to the approval page in Salesforce, include approval process merge fields. - Create the following custom fields for opportunities: - A percent field called Discount Percent so that users can enter a percentage discount. - A checkbox field called Discount Approved to indicate whether the CEO approved the discount. ## Create the Approval Process Create a classic approval process on the Opportunity object and specify the following: - The filter criteria for this classic approval process is Discount Percent greater or equal 0.4. Records must meet this criteria before they can be submitted to this classic approval process. - You don't need to choose a custom field as the next automated approver because you specify later that the CEO must approve all requests. - Select the email template you created for this classic approval process. - Choose the record owner as the only user who can submit a discount request for approval. - Create one approval step with no filter criteria since all records submitted must be approved or rejected. - Choose Automatically assign to approver(s) and select the name of your CEO. - If appropriate, choose The approver's delegate may also approve this request if you want to allow the user in the Delegated Approver field to approve requests. - Consider creating the following final approval actions: - Email alert to notify the user who submitted the discount request. - Field update to automatically select the opportunity Discount Approved checkbox. ## Wrap Things Up - After you created the classic approval process, add the Approval History related list to the appropriate opportunity page layouts. - Consider adding the Items To Approved related list to your custom home page layouts. The related list shows users all approval requests that are waiting for their response. - If you have a sandbox, test the approval process, then activate it. #### See Also - [Email Templates in Salesforce Classic](https://help.salesforce.com/s/articleView?id=sales.admin_emailtemplates.htm&language=en_US) - [Create Custom Fields](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&language=en_US) - [Set Up a Classic Approval Process](https://help.salesforce.com/s/articleView?id=platform.approvals_getting_started.htm&release=264.0.0&type=5 "If classic Approval Processes is the right automation tool for your business process, follow these high-level steps to create one for your org.") - [Prepare Your Org for Classic Approval Processes](https://help.salesforce.com/s/articleView?id=platform.approvals_prep_org.htm&release=264.0.0&type=5 "Make sure that your users can submit their records for approval using classic approval processes, and consider how you can make it easy for approvers to respond to approval requests.") # Discourse Connector (Beta) Connect to an external Discourse account. Perform tasks like creating posts or managing users. Use Discourse as a data target (action). ### Required Editions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This connector is a beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this beta service is at the Customer's sole discretion.
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections To connect to a system, whether it’s a data source or a data target, you must create a connection with that system’s required credentials. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. The credentials are hidden after you create the connection. You can reuse connections.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

Api-Username

Enter the API username.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Discourse actions are available in Flow Builder. - Create Post - Create User - Delete Post - Delete Topic - Delete User - Get Latest Topics - Get Post By Id - Get Posts - Get Topic By Id - Get User By Id - List Users - Update Post - Update Topic - Update User ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Discover Which Records Are Available to Guest Users Use Authenticated and Guest User Access Report and Monitoring, available for free on AppExchange to see which objects and permissions users can access from your public sites. The report shows you the total number of records per object that users can access. The report also categorizes records owned by users, records shared with manual or Apex sharing, and queue or public group membership information. Here’s an example of a report. ![The Guest User Access Report, showing which files guest users can access.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/access/images/guar1.png) After you determine which records users can access, you have three options to secure the records: - If record sharing is due to ownership, reassign the records owned by guest users to other users in your org. - If record sharing is due to guest user membership in queues or public groups, remove guest users from queues and public groups. - If record sharing is due to manual or Apex sharing, remove records shared via manual or Apex sharing. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note Salesforce doesn't own or support the Authenticated and Guest User Access Report and Monitoring AppExchange package. If you have troubleshooting issues, contact the package owner. # Display Current Community User Information Site.com designers creating authenticated pages for a community site can display the current user's information by accessing `CurrentUser` namespace expressions. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage a community’s Site.com custom pages:

Create and Set Up Communities

OR

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

1. Open the page on which you want to display the current community user's information. 2. From the Page Elements pane, drag a **Content Block** or **Custom Code** page element onto the page. 3. Type {!CurrentUser. and the value that you want to display. For example, `{!CurrentUser.firstName}`. Check the list of [available expressions for displaying current user information](https://help.salesforce.com/s/articleView?id=platform.siteforce_communities_data_code_reference.htm&release=264.0.0&type=5 "Use these CurrentUser namespace expressions to display authenticated user information on a Site.com community page."). 4. Add any additional text you require. For example, `Welcome back {!CurrentUser.firstName}!`. 5. If you're in a Content Block, click **Save**. If you're in a Custom Code element, click **Save and Close**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If an unauthenticated user views a page that contains `CurrentUser` expressions, the current user information does not appear. For example, if an unauthenticated user viewed a page that contained the previous example, the user sees “Welcome back !” as the welcome message. # Display Data or Content Using Data Elements You can use a data element to display the data retrieved by a page data connection or a data repeater. The data element binds to a field in the object and acts as a placeholder that's replaced with the field's data when the page loads. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

When combined with a data repeater, data elements result in a “repeating template” that displays one or more records on the page. When used with a page data connection, data elements display data from a single record. You can use data elements to display plain text, formatted text (for dates and numbers), or images. You can also add hyperlinks to data elements to allow site visitors to navigate to another page, such as a detailed description, or to refresh the data displayed on the page or the data repeater based on their selection. See [Data Filtering Examples](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_examples.htm&release=264.0.0&type=5 "When working with data repeaters, data tables, and data functions, you can filter the data you retrieve in many ways. In this topic, we explore two options— fixed values and URL query strings—to illustrate some common filtering techniques."). When the page is open: 1. Drag a **Data Element** from the Page Elements pane onto the data repeater. Alternatively, if the page has a page data connection, drag the **Data Element** page element directly onto the page canvas. 2. Select the field to display. To [customize how the field's data is displayed](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_merge_fields.htm&release=264.0.0&type=5 "Site.com uses expression language to display data dynamically. Expressions serve as placeholders for data that is replaced with information when the page loads. When working with data-bound page elements or custom widget properties, you can use expressions to customize how data is displayed on the page."), click **Customize**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The object's fields are listed first, followed by the fields of all [parent objects](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_nested_overview.htm&release=264.0.0&type=5 "Standard and custom objects have relationships that define how records in one object relate to records in another. For example, the Accounts object has a one-to-many relationship with the Contacts object—that is, each account can have one or more contacts associated with it. This relationship is also known as a parent-to-child or a master-detail relationship."), which use the format parent\_object\_name.field\_name. 3. Select the display type.
Option Description
Text Lets you display the field's data as plain text.
Formatted text If you're working with dates, times, or currency, lets you choose from several text display formats.
Image

If the field contains an image URL, lets you display the field's data as an image. The URL can be absolute or relative to the site.

You can also select a field to use for the alternative text or enter custom text.

4. To create a hyperlink, select Add a hyperlink. Otherwise, go to step 8. 5. Select the link type.
Option Description
A URL

Lets you link to a Web page by:

  • Choosing a field that you want to reference, such as a field that stores the relative URLs of PDFs you uploaded to your site.
  • Choosing a field that you want to reference and clicking Customize to add an absolute URL or to create a custom link, such as a URL query string.
An item in your site

Lets you link to a page, image, or file in the site by selecting the item type and then selecting the item. (If you can't see the list of items, place your cursor in the URL field and press the DOWN key on your keyboard.)

You can also customize the URL—for example, by creating a URL query string.

An email

Lets you link to an email message by entering the recipient's address, and the message subject and body.

You can use merge fields to access the object's fields. For example, if an object has an Email field, enter the merge field, such as {!email}, in the Email address text box.

When the link is clicked, it opens a new message window in the user's email client and adds the appropriate email address to the To: field.

6. Optionally, enter a tooltip by selecting the required field or clicking Customize to add custom text. The tooltip displays as a pop-up when the user hovers over the link. 7. If you're linking to a URL or an item in your site, specify where the item must open. | Option | Description | | --- | --- | | **Popup window** | Loads the item into a window. When you select this option, you can set the title for the popup and control its appearance and size with the options that appear. | | **New window (\_blank)** | Loads the item into a new, unnamed browser window. | | **Same window (\_self)** | Loads the item into the same frame or window as the link. This setting is the default setting. | | **Topmost window (\_top)** | Loads the item into the topmost parent frameset or window of the frame that contains the link. | | **Parent window (\_parent)** | Loads the item into the parent frameset or window of the frame that contains the link. | 8. Click **Save**. The data element is displayed on the page as a merge field. To test the output, [preview the page](https://help.salesforce.com/s/articleView?id=platform.siteforce_preview.htm&release=264.0.0&type=5 "Contributors, designers, and site administrators can preview site pages to see how they look when rendered in a browser window. It's always a good idea to make sure your changes are displayed correctly, as this preview is how the pages appear on the live site."). #### See Also - [Dynamically Retrieve Data with Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") - [Retrieving Data with Page Data Connections](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_page_connection.htm&release=264.0.0&type=5 "Use a page data connection to create a detail page for a single record when working with Salesforce objects.") - [Displaying Data or Content Using Custom Code](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_code.htm&release=264.0.0&type=5 "In addition to data elements and content blocks, you can also use custom code as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text.") - [Displaying Data Using Content Blocks](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_content_block.htm&release=264.0.0&type=5 "In addition to data elements and custom code, you can also use content blocks as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text.") # Display Image Screen Input Component Easily insert images in flow screens. Upload images to Salesforce as static resources and then you can reference them while configuring the component. ### Required Editions
View supported editions.
For information about adding screen components to your flow screen, see [Screen Element](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screen.htm&release=264.0.0&type=5 "Collect information from or display information to a user who runs the flow."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This screen component requires Lightning runtime. ## Configure the Display Image Component
Attribute Description
API Name

The API name of the component.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Horizontal Alignment

If you don't want the browser to determine the image's horizontal alignment, enter a specific alignment value. Valid values are: left, center, or right.

This attribute accepts single-value resources. The value is treated as text.

Image Alt Text

Alternative text for screen readers and other assistive technology and for browsers that can’t load the image. Provide a meaningful description unless the image is purely decorative or redundant.

To have assistive technology skip the image, set Image Alt Text to {​!$GlobalConstant.EmptyString}.

If you don't set this attribute, assistive technology reads the file path from the image source (img src), which can confuse your users and potentially create an accessibility compliance issue.

This attribute accepts single-value resources. The value is treated as text.

Image CSS

Override the CSS for your image by providing your own CSS string. Example: border-radius: 8px; box-shadow: 10px 5px 5px blue; opacity: 0.75;

This attribute accepts single-value resources. The value is treated as text.

Image Height

If you don't want the browser to determine the image height, enter a specific height value. Valid values are a number and unit, or a percentage of the container. Examples: 200 px, 2 cm, 50%. If you enter a number value and don’t enter a unit value, the unit value defaults to pixels.

This attribute accepts single-value resources. The value is treated as text.

Image Name

Required. The name of a static resource that contains an image file. The image must be a .png or .jpg file.

This attribute accepts single-value resources. The value is treated as text.

Image Width

If you don't want the browser to determine the image width, enter a specific width value. Valid values are a number and unit, or a percentage of the container. Examples: 200 px, 2 cm, 50%. If you enter a number value and don’t enter a unit value, the unit value defaults to pixels.

This attribute accepts single-value resources. The value is treated as text.

## Store the Display Image Component’s Values in the Flow The flow stores values automatically. If you store values manually, store the attribute’s output value in a variable. To store values manually, select **Manually assign variables (advanced)**. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip By default, screen components that run on Lightning runtime version 58 and prior have no memory. If a user enters a value, and then does one of the following, the value is lost. - Navigates to another screen and returns to the component’s screen. - Pauses the flow then resumes it. - Navigates to the next screen and triggers an input validation error. Setting the attribute enables a flow to remember the value. The flow stores the value automatically. If you store values manually, store the attribute’s output value in a variable. ## Set the Component Visibility Specify the logic that determines when the flow displays the component.
Option Description
When to Display Component

Configure when the component is displayed by using conditional logic.

You can set the components to:

Always
Always display the component.
When all conditions are met (AND)
Display the component when all of the conditions that you define are met. Define at least one condition.
When any condition is met (OR)
Display the component when at least one of the conditions that you define is met. Define at least one condition.
When custom conditional logic is met
Display the component when the condition logic that you define is met. Define at least one condition and specify condition logic.
## Validate Input Provide a formula that evaluates whether what the user entered is valid and the error message to display if invalid.
Option Description
Error Message Specify the error message that appears below the component if the user enters an invalid value.
Formula

Provide a formula expression that returns a Boolean value.

If the formula expression evaluates to true, the input is valid. If the formula expression evaluates to false, the error message appears below the component.

If the user leaves the field blank and the field isn’t required, the flow doesn’t perform the validation. If the user leaves the field blank and the field is required, the flow shows the default error message and not your custom error message.

## Specify the Behavior of Values on Revisited Screens Specify what this component does when a user enters a value, navigates to a previous screen, and then returns to the screen with this component.
Option Description
Use values from when the user last visited this screen The component retains the values that the user specified and doesn’t update the values to reflect changes made on previous screens.
Refresh inputs to incorporate changes elsewhere in the flow

The component updates the user-specified values to reflect changes made on previous screens.

If you pause and then resume the flow, the flow retains user-specified values only in Checkbox, Checkbox Group, Currency, Long Text Area, Multi-Select Picklist, Number, Password, Picklist, Radio Buttons, and Text components.

#### See Also - [Standard Flow Screen Components](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp.htm&release=264.0.0&type=5 "Salesforce provides several standard screen components that extend the types of input fields available in screens.") # Display Recommendations After creating a strategy, choose a page to run your strategy and display your recommendations. You can use a Lightning record page, an app’s home page, an Experience Cloud site page, a Visualforce page, or an external site, depending on where you want recommendations to appear. ### Required Editions
View supported editions for Next Best Action.
## Lightning Page (Lightning App Builder) - On a Lightning page in Lightning App Builder, create, edit, or clone a record page. - Drag Einstein Next Best Action from the component list to the location on the page where you want to display it. - Choose an action strategy and the number of recommendations that you want the component to display. If you want to show users flows and quick actions in addition to recommendations, use the Actions & Recommendations component on your Lightning record page. You can create an Actions & Recommendations deployment that specifies action strategies and how you want your recommendations to appear. ## App Home Page - Create a strategy for the Next Best Action component. Use global variables such as $User.Id when you create the strategy. Use global variables because the home page isn’t a record page and isn’t associated with objects, like Case, Account, or Product. - Navigate to your org’s Home page. - Click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png), and select Edit Page. - From the list of Lightning components on the left (1), drag the Einstein Next Best Action component to the home page (2). ![Adding the NBA component to a home page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/next_best_action/nba_component_to_homepage.png) ## Experience Builder Site Page (Experience Builder) - In Experience Builder, create or edit a site page. - Drag Suggested Actions from the component list to the location on the page where you want to display it. Visualforce Page: Use Lightning Out to add the lightning:nextBestAction component. Custom Apps: Add Einstein Next Best Action functionality into your app with the global lightning:nextBestAction component. - **[Einstein Next Best Action Component](https://help.salesforce.com/s/articleView?id=platform.nba_lab_cmp.htm&release=264.0.0&type=5)** Einstein Next Best Action uses strategies that apply your org’s business rules to display context-sensitive suggested offers and actions on your Lightning record pages. #### See Also - [Suggested Actions](https://help.salesforce.com/s/articleView?id=experience.rss_suggested_actions_component.htm&language=en_US) - [Flow Builder for Service and the Actions & Recommendations Component](https://help.salesforce.com/s/articleView?id=service.console_lex_guided_action_list_component.htm&language=en_US) - [_Lightning Aura Components Developer Guide:_ Add Aura Components to Any App with Lightning Out (Beta)](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/lightning_out.htm) - [Einstein Next Best Actions Considerations](https://help.salesforce.com/s/articleView?id=platform.nba_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when working with strategies and recommendations.") # Display Text Screen Output Component Display information in a flow screen. ### Required Editions
View supported editions.
## Configure the Display Text Component
Attribute Description
API Name

The API name of the component.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Text box

The text shown to the flow user.

If you include a uniform resource identifier (URI), use one of these supported URI prefixes:

  • http:

  • https:

  • //

  • /

  • file:

  • ftp:

  • mailto:

  • sfdc:

  • data:

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note When you use a choice in a Display Text component, the component shows the choice label instead of the choice value. ## Format Text by Using the Rich Text Editor Use the options in the rich text editor to format your text. Change the font family, size, and color. Make text bold, italic, or underlined. Indent and align your text for better structure. Use paragraph styles to make the text accessible to screen readers. Add images to enhance your content. Add alternate text to informational images. Finally, clear all formatting to start over.
Option Use It To
Font Control
Font Family Apply specific fonts to the selected text
Font Size Change the text size
Font Color Change the text color
Text Styling
Bold Make the text bold
Italic Make the text italic
Underline Add underlines to the selected text
List formatting
Bulleted List Create unordered lists if the sequence of the items in the list isn't important
Numbered List Create numbered lists if the sequence of items in the list is important
Text Alignment
Indent Move the text further to the right
Outdent Move the text closer to the left margin
Left Align Text Left-align the text
Center Align Text Center-align the text
Right Align Text Right-align the text
Link Add a hyperlink at the cursor position or add the hyperlink to the selected text
Image
  • Upload Image: Upload an image from your computer to Salesforce Files. Images uploaded to Salesforce Files don't always render correctly on Experience Cloud sites.
  • Add Image from Static Resources: When you add an image from static resources, perform one of the these tasks:
    • Upload an image as a static resource from within Display Text.
      • Enter a name and select the cache control settings. The static resource image name must start with a letter and contain only alphanumeric characters and non-consecutive underscores. The name must not include any spaces.
      • If the uploaded image is informative, add alternate text.
    • Search for and select an existing static resource image. If the selected image is informative, add alternate text.

    Static resource images are packageable and render correctly on Experience Cloud sites.

Alt Text Add alternative text for informational images. To add alt text for informational images, select a single image from the screen properties editor of the Display Text Component component and enter alternate text. Skip the alternative text if the image is decorative.
Paragraph style

Use header styles Header 1 through Header 6 for headings. Use the Normal style for body text. Paragraph styles apply semantic HTML to text that screen readers can use to interpret the content structure accurately.

To apply a paragraph style to a word or phrase, place your cursor on the word or select the phrase, and then select a style.

Remove formatting Remove formatting from the selected text.
## Set the Component Visibility Specify the logic that determines when the flow displays the component.
Option Description
When to Display Component

Configure when the component is displayed by using conditional logic.

You can set the components to:

Always
Always display the component.
When all conditions are met (AND)
Display the component when all of the conditions that you define are met. Define at least one condition.
When any condition is met (OR)
Display the component when at least one of the conditions that you define is met. Define at least one condition.
When custom conditional logic is met
Display the component when the condition logic that you define is met. Define at least one condition and specify condition logic.
![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example Show a confirmation message that summarizes what the flow did on the user’s behalf. ## Considerations - If you include a reference to another screen component within the text box of the Display Text component, the text is subject to the same character limit as reactive formulas, 3,900 characters. Formatting such as applying bold adds characters that count toward the limit. If the text exceeds the character limit, the Display Text component isn't reactive. - Static resource image names must be 80 characters or fewer, including the namespace prefix. - Static resource images uploaded from the Display Text component can be up to 2.5 MB. - To search static resource images from the Display Text component, you need the View Setup and Configuration user permission. To upload static resource images from the Display Text component, you need the Customize Application user permission. #### See Also - [Standard Flow Screen Components](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp.htm&release=264.0.0&type=5 "Salesforce provides several standard screen components that extend the types of input fields available in screens.") # Displaying Data from Related Objects Using Nested Data Repeaters You can retrieve data from any child object of a parent object using a data repeater that contains another data repeater, data table, or data function. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To edit the guest user profile:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

AND

Manage Profiles and Permission Sets

AND

Customize Application

The outer or parent data repeater connects to an object, such as Accounts. In turn, the inner data repeater, data table, or data function automatically lets you connect to any child objects, such as Contacts. This is also known as a nested data repeater. For example, if a data repeater is connected to Accounts, you can add a nested data function to it that's connected to Contacts to return the number of contacts associated with each account. To create a nested data repeater: 1. [Add a data repeater](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") to the page. 2. Drag another **Data Repeater**, **Data Table**, or **Data Function** from the Page Elements pane onto the data repeater. 3. Select the related Salesforce object that you want to connect to. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can also retrieve data from unrelated objects. However, as this can adversely affect the performance of your site, we recommend retrieving data from related objects only. 4. Optionally, in Filters, select criteria to filter your data set. If you don't select any criteria, all the data from the item is returned. 1. Select the field to which the filter criteria apply. The Field drop-down list displays the object's fields, followed by the fields of all parent objects, which use the format parent\_object\_name.field\_name. 2. Select [the operator](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_operators.htm&release=264.0.0&type=5) to control how results are filtered. For example, select Equals to return an exact match. 3. Select [the source](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_operators.htm&release=264.0.0&type=5) of the filter value. For example, to specify an explicit value, select Fixed value, or to use the values passed to the page via a query string, select URL query string. 4. Set the value of the filter. If you're using a query string, you can also specify what should happen if the query string is missing. 5. Add additional filter criteria as required to narrow your results further. Each filter item is combined with an AND operator. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you're using a fixed value to filter the results, you can view the returned records in the Connection Preview section. To refresh the list of records, click **Reload Preview**. 5. In Sorting, you can specify whether to sort the results by one or more fields in ascending or descending order. For example, if you're working with an object that contains user data, you could sort your results by gender first and then by name. 6. In Limits, you can limit the number of returned results. For example, if you're only interested in the top five results, enter 5 in the Limit results to field. 7. If you're adding [pagination](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_pagination.htm&release=264.0.0&type=5 "Events let you add interactive and animated effects to the pages and page elements of your website. When using data repeaters and data tables, you can add pagination events so users can easily page through the displayed data. Pagination events are particularly useful when working with large amounts of data."), specify the number of results to display per page in the Results per page field. 8. If you're working with a data table, click **Next** and add fields to the table by double-clicking a field, or selecting it and clicking ![Add](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_moveright.png). 9. Click **Save**. You can either add [data elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_element.htm&release=264.0.0&type=5 "You can use a data element to display the data retrieved by a page data connection or a data repeater. The data element binds to a field in the object and acts as a placeholder that's replaced with the field's data when the page loads.") or [custom code](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_code.htm&release=264.0.0&type=5 "In addition to data elements and content blocks, you can also use custom code as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text.") to the parent repeater to display its fields. Similarly, if you've nested a data repeater inside the parent data repeater, add data elements or custom code to the nested data repeater to display the child object's fields. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can't nest data repeaters more than one level deep. #### See Also - [Access Data in Related Objects Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_nested_overview.htm&release=264.0.0&type=5 "Standard and custom objects have relationships that define how records in one object relate to records in another. For example, the Accounts object has a one-to-many relationship with the Contacts object—that is, each account can have one or more contacts associated with it. This relationship is also known as a parent-to-child or a master-detail relationship.") - [Dynamically Retrieve Data with Data Tables](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5 "Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table.") - [Using Data Functions](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_function.htm&release=264.0.0&type=5 "A data function lets you connect to a standard or custom Salesforce object, perform calculations on the returned results, and display the calculation on the page. For example, for a particular field in an object, you can use a data function to calculate the total value or the average amount of all returned records.") # Displaying Data or Content Using Custom Code In addition to data elements and content blocks, you can also use custom code as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

When the page is open: 1. Drag a **Custom Code** page element from the Page Elements pane onto the data repeater. Alternatively, if the page has a page data connection, drag the **Custom Code** page element directly onto the page canvas. 2. To access the fields of the object that the data repeater or page is connected to, type {! and double-click the [expression](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_merge_fields.htm&release=264.0.0&type=5 "Site.com uses expression language to display data dynamically. Expressions serve as placeholders for data that is replaced with information when the page loads. When working with data-bound page elements or custom widget properties, you can use expressions to customize how data is displayed on the page.") that you want to display. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The object's fields are listed first, followed by the fields of all [parent objects](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_nested_overview.htm&release=264.0.0&type=5 "Standard and custom objects have relationships that define how records in one object relate to records in another. For example, the Accounts object has a one-to-many relationship with the Contacts object—that is, each account can have one or more contacts associated with it. This relationship is also known as a parent-to-child or a master-detail relationship."), which use the format parent\_object\_name.field\_name. 3. Add any additional expressions or text you require. For example: ``` To contact {!Name}, call {!Phone}. ``` where `{!Name}` and `{!Phone}` are placeholders for the values of the Name and Phone fields of each record. 4. Click **Save and Close**. #### See Also - [Dynamically Retrieve Data with Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") - [Retrieving Data with Page Data Connections](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_page_connection.htm&release=264.0.0&type=5 "Use a page data connection to create a detail page for a single record when working with Salesforce objects.") - [Displaying Data Using Content Blocks](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_content_block.htm&release=264.0.0&type=5 "In addition to data elements and custom code, you can also use content blocks as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text.") - [Data Filter Examples](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_examples.htm&release=264.0.0&type=5 "When working with data repeaters, data tables, and data functions, you can filter the data you retrieve in many ways. In this topic, we explore two options— fixed values and URL query strings—to illustrate some common filtering techniques.") # Displaying Data Using Content Blocks In addition to data elements and custom code, you can also use content blocks as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

When the page is open: 1. Drag a **Content Block** page element from the Page Elements pane onto the data repeater. Alternatively, if the page has a page data connection, drag the **Content Block** page element directly onto the page canvas. 2. Enter the name of the field you want to display using an [expression](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_merge_fields.htm&release=264.0.0&type=5 "Site.com uses expression language to display data dynamically. Expressions serve as placeholders for data that is replaced with information when the page loads. When working with data-bound page elements or custom widget properties, you can use expressions to customize how data is displayed on the page."). For example, {!Name}. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The object's fields are listed first, followed by the fields of all [parent objects](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_nested_overview.htm&release=264.0.0&type=5 "Standard and custom objects have relationships that define how records in one object relate to records in another. For example, the Accounts object has a one-to-many relationship with the Contacts object—that is, each account can have one or more contacts associated with it. This relationship is also known as a parent-to-child or a master-detail relationship."), which use the format parent\_object\_name.field\_name. 3. Add any additional expressions or text you require. For example: To contact {!Name}, call {!Phone}. where {!Name} and {!Phone} are placeholders for the values of the Name and Phone fields of each record. You can also use expressions if you're [adding a hyperlink](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_hyperlink.htm&release=264.0.0&type=5 "When viewing a page in Design Mode, designers and site administrators can create hyperlinks to external Web pages or websites, pages and assets in the site, email messages, and anchors on the page.") to the content block. 4. Click **Save**. #### See Also - [Dynamically Retrieve Data with Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater.htm&release=264.0.0&type=5 "Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify.") - [Retrieving Data with Page Data Connections](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_page_connection.htm&release=264.0.0&type=5 "Use a page data connection to create a detail page for a single record when working with Salesforce objects.") - [Displaying Data or Content Using Custom Code](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_code.htm&release=264.0.0&type=5 "In addition to data elements and content blocks, you can also use custom code as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text.") - [Display Data or Content Using Data Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_element.htm&release=264.0.0&type=5 "You can use a data element to display the data retrieved by a page data connection or a data repeater. The data element binds to a field in the object and acts as a placeholder that's replaced with the field's data when the page loads.") - [Data Filter Examples](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_examples.htm&release=264.0.0&type=5 "When working with data repeaters, data tables, and data functions, you can filter the data you retrieve in many ways. In this topic, we explore two options— fixed values and URL query strings—to illustrate some common filtering techniques.") # DISTANCE Calculates the distance between two locations in miles or kilometers. ## Use `DISTANCE(mylocation1, mylocation2, 'unit')` and replace mylocation1 and mylocation2 with two location fields, or a location field and a value returned by the [GEOLOCATION](https://help.salesforce.com/s/articleView?id=platform.customize_functions_geolocation.htm&release=264.0.0&type=5 "Returns a geolocation based on the provided latitude and longitude. Must be used with the DISTANCE function.") function. Replace unit with mi (miles) or km (kilometers). ## Tips - The DISTANCE function returns a number data type. Distance is always calculated in decimals, even if you’re displaying the geolocation notation in degrees, minutes, and seconds in the user interface. Specify the number of decimal places to show when you create a custom field. - The DISTANCE function isn’t available in reports, but it can be used in list views. To use DISTANCE in your reports, set up a formula field, and then reference the field in your reports. - DISTANCE is the only formula function that can use [GEOLOCATION](https://help.salesforce.com/s/articleView?id=platform.customize_functions_geolocation.htm&release=264.0.0&type=5 "Returns a geolocation based on the provided latitude and longitude. Must be used with the DISTANCE function.") parameters. - There are limitations on DISTANCE accuracy and equality calculations. - DISTANCE supports only the logical operators > and <, returning values within (<) or beyond (>) a specified radius. - Distance is calculated as a straight line, regardless of geography and topography between the two points. For more details, see “[How SOQL Calculates and Compares Distances](https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_geolocate.htm#geolocation_how_distance_is_calculated)” in the SOQL and SOSL Reference. ![Example: Distance Between Two Geolocation Fields](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example: Distance Between Two Geolocation Fields `DISTANCE(warehouse_location__c, store_location__c, 'mi')` This formula returns the distance, in miles, between the warehouse and the store. In this example, `warehouse_location__c` and `store_location__c` are the names of two custom geolocation fields. ![Example: Distance Between an Address Field and a Geolocation Field](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example: Distance Between an Address Field and a Geolocation Field `DISTANCE(BillingAddress, store_location__c, 'mi')` This formula returns the distance, in miles, between an account’s billing address and a store. In this example, `BillingAddress` is the standard billing address field on an Account object, and `store_location__c` is the name of a custom geolocation field. ![Example: Distances with Conditions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example: Distances with Conditions `IF(DISTANCE(warehouse_location__c, ShippingAddress, 'mi')<10, "Near", "Far")` This formula updates a text formula field to Near if the distance between the warehouse and the account shipping address compound field is less than 10 miles. Otherwise, it updates the text field to Far. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip Although DISTANCE can be calculated in miles or kilometers, the unit isn't returned in the calculation. If possible, include the unit of measure in the name of your distance formula field, so users know whether the distance is in miles or kilometers. # Distribute a Flow After you’ve designed and tested your flow, it’s time to put it to work! Flows can be run in several ways, depending on who the flow is designed for. Internal users, external users, or systems can run a flow, or a flow can be deployed for another organization. Distributing a flow is a three-stage process. 1. **Review the concepts.** Before you distribute, understand how user access, security, data context, and runtime experience affect how your flow behaves. See [Flow Distribution Concepts](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_concepts.htm&release=264.0.0&type=5 "Understand which users can run your flow, what data your flow can access, and how your flow looks in Classic and Lightning Experience."). 2. **Activate your flow.** Users can run only an active flow version. See [Activate or Deactivate a Flow](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_activate.htm&release=264.0.0&type=5 "You can activate or deactivate a flow from the Automation app Flows tab or the Flow Builder canvas."). 3. **Choose a distribution method.** How you make the flow available depends on who runs it and from where. | Who runs the flow? | What to do | | --- | --- | | Internal users in your org | Add the flow to a custom action, Lightning page, utility bar, URL button, Aura component, or Visualforce page. See [Distribute Flows to Users in Your Org](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal.htm&release=264.0.0&type=5 "Enable your internal users to run your flow through a custom action, the flow URL, a Lightning page, a Visualforce page, or a custom Aura component."). | | External users outside your org | Add the flow to an Experience Builder site, Embedded Service deployment, or Visualforce page. See [Distribute Flows to Users Outside Your Org](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_external.htm&release=264.0.0&type=5 "Let external users run your flow by adding the flow to an Experience Builder site, an external app or page, or an Embedded Service deployment. For finer control over how your flow behaves in external contexts, use a custom Aura component or Visualforce page. Flows in custom Aura components use Lightning runtime, and flows in Visualforce pages use Classic runtime."). | | Automated systems | Trigger the flow without user interaction by using Apex or the REST API. See [Distribute Flows to Automated Systems](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_system.htm&release=264.0.0&type=5 "Some flows don't require any user interaction to start. To enable a system to automatically launch a flow you can use the start Apex method."). | | Users in another org | Package the flow in a Lightning Bolt Solution, change set, or managed package. See [Distribute Flows to Other Orgs](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_deploy.htm&release=264.0.0&type=5 "Flows can be included in Lightning Bolt Solutions, change sets, and packages. The recipient org of the solution, change set, or package must have flows enabled."). | IN THIS SECTION - **[Activate or Deactivate a Flow](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_activate.htm&release=264.0.0&type=5)** You can activate or deactivate a flow from the Automation app Flows tab or the Flow Builder canvas. - **[Flow Distribution Concepts](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_concepts.htm&release=264.0.0&type=5)** Understand which users can run your flow, what data your flow can access, and how your flow looks in Classic and Lightning Experience. - **[Distribute Flows to Users in Your Org](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal.htm&release=264.0.0&type=5)** Enable your internal users to run your flow through a custom action, the flow URL, a Lightning page, a Visualforce page, or a custom Aura component. - **[Distribute Flows to Users Outside Your Org](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_external.htm&release=264.0.0&type=5)** Let external users run your flow by adding the flow to an Experience Builder site, an external app or page, or an Embedded Service deployment. For finer control over how your flow behaves in external contexts, use a custom Aura component or Visualforce page. Flows in custom Aura components use Lightning runtime, and flows in Visualforce pages use Classic runtime. - **[Distribute Flows to Automated Systems](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_system.htm&release=264.0.0&type=5)** Some flows don't require any user interaction to start. To enable a system to automatically launch a flow you can use the `start` Apex method. - **[Distribute Flows to Other Orgs](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_deploy.htm&release=264.0.0&type=5)** Flows can be included in Lightning Bolt Solutions, change sets, and packages. The recipient org of the solution, change set, or package must have flows enabled. # Distribute a Flow by Sharing Its URL Distribute your screen flow or autolaunched flow by sharing its web address (URL). ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. ## Create the Flow Create an autolaunched flow or screen flow to launch from the link. 1. Open the Flows list view. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. Note that the Automation app and Flows tab options don't require Setup access. 2. Create an autolaunched flow or a screen flow. 1. From the Automation app, click **New**. Then select the **Autolaunched Flow (No Trigger)** tile or the **Screen Flow** tile. 2. From Setup, click **New Flow**. Then select the **Autolaunched Flow (No Trigger)** tile or the **Screen Flow** tile.. Flow Builder opens. 3. Optionally, add variables to store inputs to send to the flow. 1. To open the Toolbox, click ![Toolbox icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_example_use_online_form_create_record/automate_flow_build_example_use_online_form_create_record_toolbox.png). 2. Click **New Resource**, and then select **Variable**. 3. Enter an API name and description . 4. select a data type. 5. Select **Available for input**. 6. Click **Done**. 4. Add elements to your flow to perform the actions you want. For example, if the flow has the ID of the contact sent into the flow, you can use a Send Email action to email the contact by setting Record ID to the recordId variable. 5. Save the flow. 6. Test the flow by clicking **Debug** and using test data. 7. Click **Activate**. ## Get Your Flow's URL 1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 2. For the flow that you want to run, click ![Show actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_list_enhanced_dropdown_icon.png), and select **View Details and Versions**. 3. Copy the flow's URL. The format of the URL is /flow/My\_Flow. ## Prepare URL for Sharing 1. Append the flow URL to your org's URL. Then, add /lightning to the start of the URL. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note We recommend using Lightning experience and adding /lightning to the beginning of your flow URL. However, if you don't add /lightning to the flow URL, it still works, you just don't get the new benefits of running in Lightning. To learn more, see [Choosing Between Lightning and Non-Lightning Flow URL Formats](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_lightning_vs_lightning_out.htm&release=264.0.0&type=5 "When you run a screen flow from a URL, you can choose between using Lightning or the non-Lightning URL format, which uses Lightning Out. We recommend using Lightning for a faster, more consistent experience. However, there are times when you need to use the non-Lightning format."). For example: ``` https://yourDomain.my.salesforce.com/lightning/flow/MyFlowName ``` If the flow was installed from a managed package, include the namespace prefix in the flow URL. For example: ``` https://yourDomain.my.salesforce.com/lightning/flow/namespace/MyFlowName ``` If the flow is run from a page hosted on an Experience Cloud site, include the full site path in the flow URL. ``` https://x.my.site.com/mysitepath/s/lightning/flow/myFlowName ``` 2. To set the initial values of your flow's variables, append `?flow__variable1=value1&flow__variable2=value2` to the URL. To learn more about sending variable values to your flow, see [Send Variable Values to a Flow Using the Flow's URL](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_variable.htm&release=264.0.0&type=5 "When you distribute a flow by using a URL, you can set variables values within that flow by using parameters in the URL.") ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Optionally, you can customize what happens when the flow ends. To learn more, see [Customize Flow Finish Behavior](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_returl.htm&release=264.0.0&type=5 "By default, after a user finishes a screen flow, the screen flow redirects the user to the first screen. If you want to redirect users to another page within Salesforce when they click Finish, use the retURL parameter in the flow URL."). Now you can share the flow's web address (URL). When a user clicks the link, the screen flow or autolaunched flow starts running. # Distribute Flows to Automated Systems Some flows don't require any user interaction to start. To enable a system to automatically launch a flow you can use the `start` Apex method. Most of these methods can be used only with an autolaunched flow. A flow can be launched without user interaction, such as from the Apex `interview.start` method. Autolaunched flows run in bulk and without user interaction. They can't contain steps, screens, choices, or dynamic choices in the active or latest flow version. When a flow user invokes an autolaunched flow, the active flow version runs. If there’s no active version, the latest version runs. When a flow admin invokes a flow, the latest version always runs. - **[Start a Flow from REST API](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_system_rest.htm&release=264.0.0&type=5)** Use a REST call to run an autolaunched flow by using the invocable action endpoint and setting the path to flow. For example, you can run a flow from a non-Salesforce application or piece of code. The flow retrieves data from Salesforce and returns it as an output variable in your REST call. - **[Start a Flow from Apex](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_system_apex_invoke_a_flow_from_apex.htm&release=264.0.0&type=5)** Flows started from Apex can include complex business logic and enhanced error handling, and can integrate with external systems more effectively. This approach promotes reusability by encapsulating logic within flows that can be called as needed. It also provides greater control over execution context and order of operations. The combination of Apex and flow helps you create more powerful and flexible apps that are easier to maintain. #### See Also - [_Actions Developer Guide_: Flow Actions](https://developer.salesforce.com/docs/atlas.en-us.api_action.meta/api_action/actions_obj_flow.htm) - [_Apex Reference Guide_: Interview Class](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/flow_interview_class.htm) # Distribute Flows to Other Orgs Flows can be included in Lightning Bolt Solutions, change sets, and packages. The recipient org of the solution, change set, or package must have flows enabled. ### Required Editions
View supported editions.
- **[Distribute Flows via Lightning Bolt Solutions](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_deploy_lightningboltsolution.htm&release=264.0.0&type=5)** To distribute automated business processes or bootstrap an Experience Builder site with a complete solution or new look, create a Lightning Bolt Solution. A Lightning Bolt Solution can include flows, custom Lightning apps, or Experience Builder templates or pages. Before you create a solution, group flows that you want to include in a flow category. - **[Deploy Processes and Flows as Active](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_deploy_active.htm&release=264.0.0&type=5)** By default, processes and flows that are active in a sandbox or non-production org are deployed to a production org as inactive. After deployment, manually reactivate the new versions. In production orgs, you can enable the setting to deploy a new active version of a process or flow via change sets or Metadata API. If you use a continuous integration and continuous delivery model to deploy metadata changes, enable the option to deploy processes and flows as active. # Distribute Flows to Users in Your Org Enable your internal users to run your flow through a custom action, the flow URL, a Lightning page, a Visualforce page, or a custom Aura component. ### Required Editions
View supported editions.
- **[Start a Flow with a Button](https://help.salesforce.com/s/articleView?id=platform.automate_flow_distribute_internal_url_button.htm&release=264.0.0&type=5)** There are different ways to start a flow from a button. The type of button determines the type of flow you can start, where users can see the button, what variable values you can send into the flow. - **[Embed a Screen Flow in a Lightning Page](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_lab.htm&release=264.0.0&type=5)** To easily distribute a screen flow to Lightning Experience or Salesforce app users, embed it in a Lightning page. - **[Add a Flow Link to a Record Page](https://help.salesforce.com/s/articleView?id=platform.automate_flow_distribute_internal_url_link.htm&release=264.0.0&type=5)** Add a custom link to a record page that starts an active screen flow or autolaunched flow. Use the flow's web address (URL) to set up the link. - **[Add a Flow to the Actions & Recommendations Component](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_guided_action_list.htm&release=264.0.0&type=5)** Want to use your flow to guide users through complex business processes in Lightning console or standard navigation apps? Associate the flow with records by using a process to create a RecordAction object, or by creating an Actions & Recommendations deployment. Then add the Actions & Recommendations component to your Lightning pages using the Lightning App Builder. - **[Embed a Screen Flow in a Navigation Tab in Your Org](https://help.salesforce.com/s/articleView?id=platform.automate_flow_distribute_internal_url_web_tab.htm&release=264.0.0&type=5)** Add an active screen flow to a navigation tab in your org, using the flow's web address (URL). Users can open the tab and then run the screen flow from there. - **[Add a Flow to a Utility Bar](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_utilitybar.htm&release=264.0.0&type=5)** Want your flow to be accessible from any page in your app? Add it to the utility bar in your Lightning app. The utility bar gives your users quick access to commonly used tools. - **[Distribute a Flow by Sharing Its URL](https://help.salesforce.com/s/articleView?id=platform.automate_flow_distribute_internal_url_url.htm&release=264.0.0&type=5)** Distribute your screen flow or autolaunched flow by sharing its web address (URL). - **[Additional Options for Launching a Flow Using its URL](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url.htm&release=264.0.0&type=5)** If you're using your flow’s web address (URL) to share your flow, you can customize what happens when the flow ends, and you can send variable values to the flow in the URL. - **[Embed a Flow in a Custom Aura Component](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_lc.htm&release=264.0.0&type=5)** To customize how your flow gets and receives data, add it to a custom Aura component. Then distribute that component through a custom action, Lightning tab, or Lightning page. - **[Embed a Flow in a Visualforce Page](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_vf.htm&release=264.0.0&type=5)** To customize your flow’s look and feel for internal users, add the flow to a Visualforce page. Then distribute that page through a Visualforce tab, custom button, or custom link. - **[Prepare Your Org for Paused Flow Interviews](https://help.salesforce.com/s/articleView?id=platform.flow_pause_prep.htm&release=264.0.0&type=5)** A flow interview is a running instance of a flow. Not every flow interview can be completed in one go. Add the Pause button to your flows, so that users can pause flow interviews for later. Update the sharing model for flow interviews, so that other users can resume a paused interviews. And make it easy for users to resume interviews by adding a component to their Home page. # Distribute Flows to Users Outside Your Org Let external users run your flow by adding the flow to an Experience Builder site, an external app or page, or an Embedded Service deployment. For finer control over how your flow behaves in external contexts, use a custom Aura component or Visualforce page. Flows in custom Aura components use Lightning runtime, and flows in Visualforce pages use Classic runtime. For example, set up a self-service tool for your site to help visitors generate custom sales quotes. - **[Add a Screen Flow to a Public Experience Cloud Site](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_external_experience_guest_user.htm&release=264.0.0&type=5)** Create an Experience Cloud site that's available to everyone and add a flow component to a page in the site and select an active screen flow. You can link to the flow page from your company's website. Use this method to share flows with external users who don't have a Salesforce license, such as customers, partners, or other external users. Because users aren't logging into your site, you don't need to purchase Experience Cloud licenses. - **[Add a Screen Flow to an Authenticated Experience Cloud Site](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_external_community.htm&release=264.0.0&type=5)** To add a screen flow to a page on your authenticated Experience Cloud website, use an Experience Builder Flow component. Use this method if you have a customer portal or other website that requires users to log in to use. - **[Embed a Flow in a Visualforce Page for External Users](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_external_vf.htm&release=264.0.0&type=5)** Let external users run your flow by adding the flow to a Visualforce page and distributing that page externally. For example, through a community. # Distribute Flows via Lightning Bolt Solutions To distribute automated business processes or bootstrap an Experience Builder site with a complete solution or new look, create a Lightning Bolt Solution. A Lightning Bolt Solution can include flows, custom Lightning apps, or Experience Builder templates or pages. Before you create a solution, group flows that you want to include in a flow category. ### Required Editions
View supported editions.
User Permissions Needed
To create a flow category: Customize Application
To create a Lightning Bolt Solution without an Experience Builder template: Customize Application AND View Setup and Configuration
To create a Lightning Bolt Solution with an Experience Builder template: Customize Application AND AND
1. Add your flows to a flow category. You can only add active flows. 2. Create your Lightning Bolt Solution. Add one or more flow categories, custom Lightning apps, and Lightning Community templates or pages. 3. Package the solution to distribute it to your own orgs, or share or sell it on AppExchange. #### See Also - [Add Flows to a Lightning Bolt Solution](https://help.salesforce.com/s/articleView?id=experience.community_builder_export_flow_category.htm&language=en_US) - [Lightning Bolt for Salesforce: Build Once, Then Distribute and Reuse](https://help.salesforce.com/s/articleView?id=experience.community_builder_export_overview.htm&language=en_US) # DocSpring Form Connector (Beta) Connect to an external DocSpring Form account. Perform tasks like generating PDFs or managing form templates. Use DocSpring Form as a data target (action). ### Required Editions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This connector is a beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this beta service is at the Customer's sole discretion.
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Basic authentication. Basic authentication enables the user to provide a username and password when logging in to an external system. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Username

Enter the username to use to authenticate the requests.

Password

Enter the password to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These DocSpring Form actions are available in Flow Builder. - GET /templates/{template\_id}/submissions - Add Fields To Template - Batch Generate Pdf V1 - Batch Generate Pdfs - Copy Template - Create Custom File From Upload - Create Data Request Token - Create Folder - Delete Folder - Expire Submission - Generate Pdf - Get Data Request - Get Full Template - Get Presign Url - Get Submission - Get Submission Batch - Get Template - List Folders - List Submissions - List Templates - Move Folder To Folder - Move Template To Folder - Test Authentication - Update Data Request - Update Template ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Document Agent in Agentforce Operations Use the Document Agent to extract more complicated information from documents, such as images and tables, in Agentforce Operations. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

## When to Use the Document Agent Use the Document Agent to generate or summarize a document, compare documents, or extract tables from a CSV or Excel file where the format of the table is identical every time the workflow runs. To use the Document Agent to extract tables, don't add any special formatting to the file, and put the column labels in the first row of the file. There are two different document agents. Learn more in [Document Agents in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agents_document_compare.htm&release=264.0.0&type=5 "Agentforce Operations has two document agents. Understand the differences to choose the right one for your task.") ## Capabilities | Capability | Description | Example | | --- | --- | --- | | Basic data extraction | Extract information from PDFs, images, CSV, .docx, .pptx, and .xlsx files. | Get the expiration date from a provided certificate. | | Tabular data extraction | Get tables from PDFs or CSV files. Best for smaller tables and simpler layouts. | Extract invoice line items and create `line_items.csv`. | | Document summary | Summarize one or more documents. | Summarize the intellectual property clause of a contract. | | .docx template filling | Fill Word templates that use variables in the format `{{ variable_name }}`. | Pre-populate a contract template by mapping fields to variables, such as `{{ customer_name }}`, `{{ contract_start_date }}`, and `{{ contract_end_date }}`. | | .docx difference checker | Compare two .docx files and return differences in content and comments. | Find all contract changes made in the latest negotiation round. | | PDF generation | Create a PDF with rich text and tables. | Generate a supplier scoring report with summary, scores, and rationale. | # Document Agents in Agentforce Operations Agentforce Operations has two document agents. Understand the differences to choose the right one for your task. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

## When to Use Each Document Agent Use the Document Reader Agent to extract fields or tables from unstructured documents, such as PDFs or images, or when you want to extract fields from documents where the format changes with each workflow run. Use the Document Agent to generate or summarize a document, compare documents, or extract tables from a CSV or Excel file where the format of the table is identical every time the workflow runs. To use the Document Agent to extract tables, the file can't have any special formatting and the first row of the file has to be the column labels. ## Choosing and Configuring a Document Agent Learn more about what each document agent does, its capabilities, and how to configure tasks that use it. The Document Agent extracts data from structured documents, generates summaries, fills Word templates, and compares .docx files. Use it when the document format is consistent across workflow runs. To learn more, see [Document Agent in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agent_document.htm&release=264.0.0&type=5 "Use the Document Agent to extract more complicated information from documents, such as images and tables, in Agentforce Operations."). The Document Reader Agent (Beta) extracts fields and tables from unstructured or variable-format documents like scanned PDFs and images. Configure keyword aliases and per-field instructions to guide extraction. To learn more, see [Document Reader Agent (Beta) in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agents_document_reader.htm&release=264.0.0&type=5 "Understand the capabilities, inputs, and limitations of the Document Reader agent (Beta) in Agentforce Operations."). To learn more, explore these links. - **[Document Agent in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agent_document.htm&release=264.0.0&type=5)** Use the Document Agent to extract more complicated information from documents, such as images and tables, in Agentforce Operations. - **[Document Reader Agent (Beta) in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agents_document_reader.htm&release=264.0.0&type=5)** Understand the capabilities, inputs, and limitations of the Document Reader agent (Beta) in Agentforce Operations. # Document Processing Limits and Quotas Limits for document processing in flows align with Data 360 where applicable. Prompt limits and other document processing-specific quotas are documented in the MuleSoft document processing documentation. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the MuleSoft for Flow: IDP add-on. Professional Edition requires the API access add-on. To purchase, contact your Salesforce account executive.
Document processing features require Einstein generative AI turned on in Setup, and Data 360 provisioned and enabled for your org.
MuleSoft for Flow: IDP features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
## Limits Inherited from Data 360 Document processing uses the same limits as Data 360 for rate limits and general service limits. For the full list and current values, see the [Data 360 limits and guidelines](https://help.salesforce.com/s/articleView?id=data.c360_a_limits_and_guidelines.htm&type=5&language=en_US) in Salesforce Help. ## Prompt Limits and Other Document Processing-Specific Quotas For prompt limits (such as the number of prompts per document action, token limits per request, and response length by model) and other document processing-specific quotas (including file formats, file size, request and concurrency limits, and polling), see [MuleSoft IDP: Quotas and Limits](https://docs.mulesoft.com/idp/quotas-and-limits). # Document Reader Agent (Beta) in Agentforce Operations Understand the capabilities, inputs, and limitations of the Document Reader agent (Beta) in Agentforce Operations. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-agentforce_operations-264-0-0-production-enus/dce314e6-0a31-4a8b-98f7-3d2a3fd02ee2/images/icon_note.png) Note This feature is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/agreements/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/). Use of this pilot or beta service is at the Customer's sole discretion. ## When to Use the Document Reader Agent Use the Document Reader Agent to extract fields or tables from unstructured documents, such as PDFs or images, or you want to extract fields from documents where the format changes with each workflow run. There are two different document agents, Learn more in [Document Agents in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agents_document_compare.htm&release=264.0.0&type=5 "Agentforce Operations has two document agents. Understand the differences to choose the right one for your task.") ## Capabilities | Capability | Description | Example | | --- | --- | --- | | Field value extraction | Extract values from structured or unstructured documents, such as PDFs and images. | Extract the vendor name, invoice date, and total amount from a scanned PDF invoice. | | Find information with keywords | Provide different words to look for in a document that describe the information you want. Separate multiple aliases with commas. | For the PO Number field, enter: PO Number, PO #, Purchase Order #. | | Instructions for individual fields | Add specific instructions about a field's format or location to help the agent find or interpret the value. You can also use instructions for conditional logic. | Tell the agent that Invoice Number is always a 6-digit number starting with 00, or add If missing, use today's date. | | Supports fields with multiple values | For text fields, enter Yes in the Multiple Values column so the agent returns a comma-separated list of all matching values instead of a single value. | Extract all contact email addresses from a document that lists multiple contacts. | | Tabular data extraction | Extract repeating rows of data such as line items. Request a table within a form in the Request information section. Tabular data can’t be extracted directly into a CSV file. | Extract each line item from an invoice, including item description, quantity, unit price, and total. | ## Configuring a Document Reader Agent Task The Document Reader agent requires that you configure the task differently than other agents. Review the differences before configuring your task. 1. In the **Share information** section, add the document field that contains the file you want to extract data from. Pass the document to the task as a shared field at run time. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-agentforce_operations-264-0-0-production-enus/dce314e6-0a31-4a8b-98f7-3d2a3fd02ee2/images/icon_important.png) Important Don’t upload files directly to the **Documents** input in the task setup. The agent only reads documents passed through shared fields. 2. In the **Request information** section, add the fields you want the agent to fill in: - To extract system field values, add individual requested fields for each piece of data you need. - To extract tabular data such as line items, add a form that includes a table. The agent fills in the table rows at run time. Learn about how to [Assign a Task to an AI Agent in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_assign_task_to_ai_agent.htm&release=264.0.0&type=5 "Assign a task to an AI agent in Agentforce Operations and provide the inputs needed for reliable completion.") ## Field-Level Instructions After you configure the requested fields on the task, a **Provide Field Instructions for Agent** section appears. Use this section to give the agent specific guidance on how to find and format each field's value. For general instructions that apply to all fields, such as Translate all content into English, use the task Description field instead. For each requested field or table column, you can provide: | Input | Description | Example | | --- | --- | --- | | Keywords in Document | Different words to look for in the document that describe the information you want. Separate multiple aliases with commas. | For the PO Number field, enter: PO Number, PO #, Purchase Order #. | | Additional Instructions | Other information about the data's format or location to help the agent find it. You can also provide conditional instructions. | A 6-digit number that starts with 00. Or: If missing, use today's date. | | Multiple Values | Enter Yes if the field has more than one value. The value is returned as a comma-separated list of values instead of a single value. Available for text fields only. | If you're extracting contact email addresses and expect multiple emails, enter Yes. | ## Limitations - Supported file types: images, PDF, CSV, .docx, .xlsx, and .pptx. - Pass documents to the task through a shared field. Uploading files directly to the Documents input isn't supported. - Set up tabular data to be returned as a data grid configured through a form. The agent can’t extract tabular data directly into a CSV file. - The agent can’t output Document, Signature, or Data Source fields. - A maximum of 15 requested fields per task. - Tables support a maximum of 10 columns and 50 rows. # Document360 Connector Connect to an external Document360 account. Perform tasks like retrieving knowledge base articles, accessing project workflows, or listing team accounts. Use Document360 as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Document360 actions are available in Flow Builder. - Get All Team Accounts - Get All User Groups - Get Article Versions - Gets All Workflow Statuses For A Project - Gets Folders Information - Gets List Of Articles Within A Project Version - Gets List Of Project Versions ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Dovetail Connector Connect to an external Dovetail account. Perform tasks like searching for information, and retrieving project lists, files, and associated data. Use Dovetail as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Bearer authentication. Bearer authentication sends a header named Authorization with a value of Bearer and a token with every request. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Token

Enter the bearer token to use to authenticate the requests. For information about how to create the bearer token, refer to the external system's documentation.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Dovetail actions are available in Flow Builder. - Get File By Id - List Data - List Projects - Magic Search ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Downgrade Experience Cloud Site Users with Community Licenses to Contactless Users You can convert Experience Cloud site users with community licenses to contactless users. By converting site users, you can expand your site without adding to the cost. For example, you can downgrade inactive or unqualified users and then upgrade them to full-featured site users later on. You can downgrade users from Setup and through the API. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note The contactless users feature is available only with the External Identity license, which enables access to the Salesforce Customer Identity product. Downgrading a site user to a contactless user is a two-step process. You disable the site user and then reactivate the user as a contactless user. When you disable users, Salesforce deactivates them and invalidates their usernames by renaming them. You restore the usernames when you reactivate the users. Reactivated users receive a Welcome New Member email from Salesforce. You can prevent Salesforce from sending welcome emails from Experience Workspaces. 1. On the user’s contact detail page, save the contact’s username. 2. From the action dropdown menu, select **Disable User**. 3. (Optional) Disable welcome emails. 1. From Experience Workspaces, select **Administration**, and then select **Emails**. 2. Under Email Templates, deselect **Send welcome email**. 4. From Setup, in the Quick Find box, enter Users, then select **Users**. 5. Next to the user you’re downgrading, click **Edit**. 6. For user license, select **External Identity**, and then select a customer or partner profile. 7. Select **Active**. 8. Restore the username name by replacing the username with the one you saved. 9. Save your changes. You can also downgrade users in bulk from the API. If you’re downgrading in bulk, assign the users to a profile. In this example, we’re downgrading a single user. ``` //Disable user String uName; User u = [SELECT Id, UserName FROM User WHERE Id = '005xx009871TQXL']; u.IsPortalEnabled=false; uName = u.UserName; Update u; //Activate as a contactless user User u1 = [SELECT Id, UserName, IsActive FROM User WHERE Id = '005xx009871TQXL']; u1.UserName = 'sarah@mycompany.com'; // Or uName from above u1.IsActive = true; Update u1; ``` # Download a Backup in Backup and Restore for Salesforce to CSV Get a comprehensive and easily accessible record of your backup data in a CSV file. Use separated metadata objects for integration with other systems or for data management tasks. Gain insights into your backup history and performance when you filter and analyze backup data. 1. From a specific backup, click Download. 2. Select to download All or Specific objects/tables. 3. If you selected Specific objects/tables, select the objects/tables you wish to download. 4. Select whether to include attachments. 5. Click Run. The export begins, and you are redirected to the Jobs tab. When the export is completed successfully, a confirmation is displayed. 6. Once the job completes, click Click here to download the CSV. # Download API WSDL and Client Certificates To integrate your applications with Salesforce using the API, download a Web Services Description Language (WSDL) document. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Professional, Enterprise, Developer, and Database.com Editions
User Permissions Needed
To download a WSDL: Customize Application
- **Enterprise WSDL**: Use this WSDL document to build an integration for a single org. The enterprise WSDL is strongly typed, which means that it contains objects and fields with specific data types, such as `int` and `string`.You must download and re-consume the enterprise WSDL document when changes are made to the custom objects or fields in an org or when you want to use a different version of the API. - **Partner WSDL**: Use this WSDL to build an integration that works across multiple Salesforce orgs, regardless of their custom objects or fields. Typically, partners and ISVs use this WSDL. It’s loosely typed, which means that you work with name-value pairs of field names and values instead of specific data types.The partner WSDL document needs to be downloaded and consumed only once per version of the API. - **Apex WSDL**: Use this WSDL to run or compile Apex in another environment. - **Metadata WSDL**: Use this WSDL to migrate configuration changes between orgs or work with the customizations in your org as XML metadata files. 1. To download a WSDL document, navigate to Setup, enter API in the Quick Find box, then select **API**. 2. Download the appropriate WSDL: If you’re downloading an enterprise WSDL and you have managed packages installed in your org, click **Generate Enterprise WSDL**. Select the version of each installed package to include in the generated WSDL. By default, it is set to the latest installed versions of the packages. Otherwise, right-click the link for the appropriate WSDL document to save it to a local directory. In the menu, Internet Explorer users can choose **Save Target As**, while Google Chrome and Mozilla Firefox users can choose **Save Link As**. 3. On your computer, import the local copy of the WSDL document into your development environment. You can also select the default package versions without downloading a WSDL in the **Package Version Settings** section. 4. Optionally, you can download a certificate to authenticate Salesforce orgs. To download a certificate, navigate to Setup, enter API in the Quick Find box, then select **API**. Use this certificate for workflow outbound messaging. This certificate identifies that the request comes from Salesforce, not a specific user. If you want to use certificates to ensure secure connections using other Salesforce features, such as Apex callouts, use Salesforce certificates and key pairs. 5. In Client Certificate section, click **Manage API Client Certificate**. 6. In the API Client Certificate section, click the **API Client Certificate**. 7. Click **Download Certificate**. The .crt file is saved in the download location specified in your browser. You can then import the downloaded certificate into your application server and configure your application server to request the client certificate. #### See Also - [Certificates and Keys](https://help.salesforce.com/s/articleView?id=xcloud.security_keys_about.htm&type=5&language=en_US) - [Work With APIs](https://help.salesforce.com/s/articleView?id=platform.work_with_apis.htm&release=264.0.0&type=5 "Salesforce provides programmatic access to your org’s information using simple, powerful, and secure application programming interfaces.") - [_Apex Developer Guide_](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guide.htm) - [_Metadata API Developer Guide_](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/) # Download the User Access and Permissions Assistant Package Download the User Access and Permissions Assistant from AppExchange. ### Required Editions
Available in: all editions except Starter
User Permissions Needed
To install packages: Download AppExchange Packages
1. Log in with your Trailhead email, and navigate to the listing on [AppExchange](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FeF99UAF). 2. Select **Get it Now**, and from the dropdown, select the org that you want to install it in. 3. Agree to the terms and conditions. 4. After you’re redirected to the Salesforce login page, input the credentials for the Salesforce org that you want to install the solution in. 5. Select the profiles that you want to access the solution: Admins Only, Everyone, or a specific profile. # Draft a Flow with Agentforce (Beta) Build your flow faster and easier by letting Agentforce help you get started. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the Foundations or Agentforce 1 editions. To purchase, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Draft a Flow with Agentforce is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/agreements/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/). Use of this pilot or beta service is at the Customer's sole discretion.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. To enable Agentforce\-drafted flows and summaries, turn on [Generative AI](https://help.salesforce.com/s/articleView?language=en_US&id=ai.generative_ai_enable.htm&type=5) in Setup, and verify that [Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_provision.htm&type=5&language=en_US) is provisioned and enabled in your org. You can also use Setup with Agentforce to work with flows more efficiently. For more information, see [Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_overview.htm&language=en_US) and [Flows in Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_flows.htm&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Agentforce for Flow creates autolaunched, record-triggered, schedule-triggered, screen, external system change-triggered flows, and flows that use connectors as actions. Creating external system change-triggered flows and flows that use connectors as actions requires specific MuleSoft for Flow user permissions and licenses. See [Create MuleSoft for Flow: Integration Flows with Agentforce](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_create_and_evolve_integration_flows_with_agentforce.htm&language=en_US&type=5). 1. To create a flow with Agentforce for the first time: 1. From Setup, in the Quick Find box, enter Process Automation Settings, and then select **Process Automation Settings**. 2. Select **Agentforce flow automation (Beta)**. 3. Save the settings. 2. From the Flows section in Setup, click **New Flow**, or from the Automation app, click **New**. 3. In the Use Agentforce to Help You Build (Beta) section, click **Get Started (Beta)**. 4. Write instructions in one of these ways. - To write instructions from scratch, describe what you want to automate in the Instructions field. - To get started with sample instructions, expand **Get Started with Sample Instructions** and select a sample. The sample instructions automatically appear in the Instructions field. Modify the instructions as needed. - To build flows triggered by external system changes or flows that use connectors as actions, create a [connection to the external system](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&type=5&language=en_US) and then [create MuleSoft for Flow: Integration Flows with Agentforce](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_create_and_evolve_integration_flows_with_agentforce.htm&language=en_US&type=5). 5. Click **Draft with Agentforce (Beta)**. 6. Check the draft flow for accuracy and safety. 7. To provide feedback in the panel, click thumbs up or thumbs down. 8. If the flow doesn’t meet your needs, take one of these actions. - Modify the flow. - Click **Edit Instructions** and modify your instructions. Then, click **Create** to create a flow with your updated instructions. - Try again in a new window by clicking **Start Over** in the Agentforce panel. 9. Save your work. 10. When the flow meets your needs: 1. Debug and test the flow. 2. Activate the flow. #### See Also - [Best Practices for Drafting Flows with Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.flow_build_best_practices_and_considerations_for_einstein_for_flow.htm&release=264.0.0&type=5 "Get the best results when using Agentforce to build draft flows.") - [Example Instructions for Drafting Flows with Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.flow_build_example_einstein_for_flow_instructions.htm&release=264.0.0&type=5 "Use Agentforce for Flow to create accurate draft flows by providing clear, detailed instructions about your requirements. Base your instructions on example patterns that describe when the flow starts and what actions it should take.") - [Considerations for Agentforce-Drafted Flows and Formulas (Beta)](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_einstein_considerations.htm&release=264.0.0&type=5 "Supported functionality, usage requirements, and important limitations when using Agentforce to draft flows and formulas.") - [_Salesforce Help_: About Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_about.htm&type=5&language=en_US) - [_Video_: Get to Know Einstein for Flow](https://salesforce.vidyard.com/watch/Wfhwp7gReQTATYZwdEF8Gk) # Drafting Flows with Agentforce (Beta) Save time by describing what you want to automate and letting Agentforce draft a flow and get you started with your automation. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the Foundations or Agentforce 1 editions. To purchase, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Draft a Flow with Agentforce is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/agreements/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/). Use of this pilot or beta service is at the Customer's sole discretion. To use Agentforce for Flow, turn on [Einstein Generative AI](https://help.salesforce.com/s/articleView?language=en_US&id=ai.generative_ai_enable.htm&type=5) in Setup, and verify that [Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_provision.htm&type=5&language=en_US) is provisioned and enabled in your org. To create a flow with Agentforce, go to the Process Automation Settings page in Setup and select **Agentforce flow automation (Beta)**. Setup with Agentforce can also help you work with flows more efficiently. For more information, see [Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_overview.htm&language=en_US) and [Flows in Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_flows.htm&language=en_US). - **[Best Practices for Drafting Flows with Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.flow_build_best_practices_and_considerations_for_einstein_for_flow.htm&release=264.0.0&type=5)** Get the best results when using Agentforce to build draft flows. - **[Example Instructions for Drafting Flows with Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.flow_build_example_einstein_for_flow_instructions.htm&release=264.0.0&type=5)** Use Agentforce for Flow to create accurate draft flows by providing clear, detailed instructions about your requirements. Base your instructions on example patterns that describe when the flow starts and what actions it should take. - **[Draft a Flow with Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.flow_build_build_a_flow_with_einstein.htm&release=264.0.0&type=5)** Build your flow faster and easier by letting Agentforce help you get started. - **[Summarize Flows with Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_summarize_flows_with_einstein.htm&release=264.0.0&type=5)** Use Agentforce to summarize new flows, existing flows, and even flows that Agentforce helped you create. Generate summaries of varying lengths to understand what your flows are about and what they do. Agentforce summarizes flows in as much detail as you need. Add the flow summary to the flow description, so anyone can understand how the flow works. - **[Evolve a Flow with Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_evolve_flow_with_einstein.htm&release=264.0.0&type=5)** Improve and modify your existing flows by using natural language in the Agentforce panel. Through conversational prompts, add new elements, update properties and conditions, and remove outdated components. - **[Considerations for Agentforce-Drafted Flows and Formulas (Beta)](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_einstein_considerations.htm&release=264.0.0&type=5)** Supported functionality, usage requirements, and important limitations when using Agentforce to draft flows and formulas. - **[Global Model Data Opt-In and Opt-Out for Flows Created by Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_einstein_global_model_data_opt_in.htm&release=264.0.0&type=5)** Agentforce intelligence is built on data. The more data Agentforce has, the more powerful the resulting predictions. Most companies don’t have enough data to build their own models. To give you more meaningful generative AI, Salesforce builds global generative models that generate and edit flows and answer flow-related questions. To protect your customer data, your account is opted out of the global data model by default. #### See Also - [_Video_: Get to Know Einstein for Flow](https://salesforce.vidyard.com/watch/Wfhwp7gReQTATYZwdEF8Gk) - [_Salesforce Help_: About Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_about.htm&type=5&language=en_US) # Drata Connector Connect to an external Drata account. Perform tasks like deactivating employee access or getting team compliance status. Use Drata as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Bearer authentication. Bearer authentication sends a header named Authorization with a value of Bearer and a token with every request. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Token

Enter the bearer token to use to authenticate the requests. For information about how to create the bearer token, refer to the external system's documentation.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Drata actions are available in Flow Builder. - Deactivate Employee Access - Get Compliance Completion Trends - Get Control Readiness Status - Get Employee Compliance Overview - Get Employee Evidence History - Get Employee Security Tasks - Get Expiring Certifications - Get Failed Or Overdue Security Tasks - Get Team Compliance Status - Submit Policy Attestation - Trigger Control Follow Up Tasks ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Dropbox Sign Connector Connect to an external Dropbox Sign account. Perform tasks like getting a signature request and sending a request reminder. Use Dropbox Sign as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Basic authentication. Basic authentication enables the user to provide a username and password when logging in to an external system. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Username

Enter the username to use to authenticate the requests.

Password

Enter the password to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Dropbox Sign actions are available in Flow Builder. - Get Signature Request - Send Request Reminder ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Duplicate a Site.com Site Create a copy of a site. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To create a copy of a site: 1. On the Site.com tab in the Site.com app, select the site and click **![menu arrow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_arrowdrop.png)** | **Duplicate**. Alternatively, on the Overview tab in Site.com Studio, click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_actions.png)** | **Duplicate This Site**. 2. Enter a name for the site. 3. Click **Create**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - If you're creating a copy of a site that uses [data services](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_overview.htm&release=264.0.0&type=5 "Site.com data services combine many features that let you connect to standard and custom Salesforce objects. Retrieve data from your organization's objects and dynamically display it on your site pages, or alternatively, gather and submit data from your customers. And when you update data in your Salesforce object, the changes are reflected automatically on the live site—no site updates required!"), you must [set the data access permissions](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_access_perms.htm&release=264.0.0&type=5 "Sites built with Site.com are publicly available, so visitors access the site via the Guest User license that's associated with the site.") in the new site's guest user profile. - You can't create, delete, or duplicate community sites in Site.com. #### See Also - [Create a Site.com Site](https://help.salesforce.com/s/articleView?id=platform.siteforce_website_create.htm&release=264.0.0&type=5 "To get started with Site.com, create a new blank site.") - [Export a Site.com Site](https://help.salesforce.com/s/articleView?id=platform.siteforce_website_export.htm&release=264.0.0&type=5 "You can export your site from Site.com to your hard drive. The site is exported in a packaged format with a .site extension, which you can import into another Salesforce organization. The maximum site size you can import is 2 GB.") - [Import a Site.com Site](https://help.salesforce.com/s/articleView?id=platform.siteforce_website_importing.htm&release=264.0.0&type=5 "You can import an exported Site.com site into your organization. When you import a site, you’re given the site administrator role in the site. You can import a site file that was exported in Summer ’19 or later and has a maximum site size of 2 GB.") # DX Inspector Connect your development environment directly to your Lifecycle Center project to manage work items and track changes without leaving your org. DX Inspector connects your development environment and your Lifecycle Center project. It’s available by default and appears at the top of any page or builder in your Salesforce sandbox, scratch org, or Developer Edition org. Instead of switching between multiple browser tabs to manage your DevOps tasks, you can track changes, create work items, commit metadata, and create change requests directly within the org where you're building. The Change Management tab in DX Inspector provides a comprehensive view of all source-tracked changes in your org. When your development work is complete, you can create a work item and commit your changes directly to the project repository. The real-time sync between Lifecycle Center and DX Inspector makes sure that every commit and status change is immediately reflected in Lifecycle Center. ![DX Inspector available in the user's development environment.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/next_gen_dx_change_management.png) When ready, start the peer review process by creating a change request (pull request) in DX Inspector. After your team reviews and approves the request in your source control, the work item moves to the Ready to Promote state. Then, your deployment manager can start the promotion process in Lifecycle Center. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note Starting July 1, 2026, Salesforce requires multi-factor authentication (MFA) for users with certain permissions. Users working in development environments and deployment managers promoting to orgs may need to set up MFA according to their organization's security requirements. See [Multi-Factor Authentication for Salesforce Orgs](https://help.salesforce.com/s/articleView?id=xcloud.security_overview_2fa.htm&type=5&language=en_US) and [Prepare Your Org for Salesforce MFA Enforcement](https://admin.salesforce.com/blog/2026/prepare-your-org-for-salesforce-mfa-enforcement). - **[Reconnect DX Inspector to Lifecycle Center](https://help.salesforce.com/s/articleView?id=platform.devops_center_managed_package_to_next_gen.htm&release=264.0.0&type=5)** If your team recently migrated from DevOps Center (Managed Package) to Lifecycle Center, remove your existing DX Inspector connection and reconnect to Lifecycle Center so that your commits go to the right project. - **[Add Metadata Manually](https://help.salesforce.com/s/articleView?id=platform.devops_center_add_metadata.htm&release=264.0.0&type=5)** The Change Management tab uses source tracking to automatically track metadata files in your org. However, when you require flexibility to include additional metadata files that source tracking hasn’t pulled automatically, you can add metadata manually. - **[Data Commit and Deployment](https://help.salesforce.com/s/articleView?id=platform.devops_center_data_deployment.htm&release=264.0.0&type=5)** Maintain data integrity and keep dependencies intact by moving metadata and data together in a single work item. In Lifecycle Center, you can move configuration data between environments using the same commit and deploy flow that you use for metadata. - **[Commit Changes to Source Repository](https://help.salesforce.com/s/articleView?id=platform.devops_center_commit_changes.htm&release=264.0.0&type=5)** Commit changes to your source repository directly from the Change Management tab. After you make the changes, decide which changes to include for the work item and commit them to the Lifecycle Center project’s source control repository. - **[Create a Change Request](https://help.salesforce.com/s/articleView?id=platform.devops_center_create_change_request.htm&release=264.0.0&type=5)** Start a peer review of your work item by creating a change request directly from DX Inspector. - **[Shift-Left Testing for Review Events](https://help.salesforce.com/s/articleView?id=platform.devops_center_testing_shift_left_review_events.htm&release=264.0.0&type=5)** Lifecycle Center Testing automatically runs assigned test suites when a developer creates a review in DX Inspector, catching issues early before changes advance through the pipeline. # Dynamic Forms and Mobile Using the Record Detail - Mobile Component The Dynamic Forms Field Section component and the Field components that go inside were previously only available on desktop. To support mobile users, the Record Detail - Mobile component gives your mobile users a way to see the record details on their mobile devices on a Dynamic Forms-enabled page. ### Required Editions
Lightning App Builder available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Lightning pages and Dynamic Forms available in: Lightning Experience and the Salesforce mobile app

Available in: Group Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you haven’t yet enabled Dynamic Forms on Mobile, you can still use the Record Detail - Mobile component. But to give your mobile users the same experience that your desktop users have, from Salesforce Mobile App Setup, enable **Dynamic Forms and Dynamic Highlights Panel on Mobile**. [Learn More](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_on_mobile_enable.htm&type=5&language=en_US) When you migrate a record page that supports both desktop and phone to Dynamic Forms, a Record Detail - Mobile component is added to the page for you. But when you create a fresh page using a template that supports both desktop and phone, after adding the fields and field sections, you must add the Record Detail - Mobile component to the page yourself. The Record Detail - Mobile component wraps fields from the Record Detail component into a mobile-only container. So, on pages that support both desktop and phone, your desktop users see the Field Section components, and your mobile users see the Record Detail - Mobile component. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example Here’s what a page that you create in desktop mode in the Lightning App Builder looks like when viewed on a phone. The Field Section components just below the Highlights Panel on desktop are dropped on mobile, and the Record Detail - Mobile component takes over to deliver the sections and fields. ![Dynamic Forms desktop and mobile comparison](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/dynamic_forms_desktop_to_mobile_callouts.png) The Record Detail - Mobile component displays with an “Unsupported form factor” message when viewed on a page in the Lightning App Builder in Desktop preview mode. #### See Also - [Migrate a Record Page to Dynamic Forms](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_migrate.htm&release=264.0.0&type=5 "Some pages have Dynamic Forms enabled by default. For those that don't, you can migrate the fields and sections from your existing record pages as individual components in the Lightning App Builder. Then you can configure them the same way as the other components on the page, so that your users get only the fields and sections that they want. If you have save options on your account, case, or lead record pages, they are migrated.") - [Break Up Your Record Details with Dynamic Forms](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_overview.htm&release=264.0.0&type=5 "The more fields that there are on your page layout, the more that the Record Detail component becomes a monolithic block of fields that you can’t customize. With Dynamic Forms, you can migrate the fields and sections from your page layout to individual components in Lightning App Builder. Then you can configure them the same way as the other components on the page - spreading them out across multiple columns and tabs, and dynamically showing and hiding them based on record data, user details, and device type, so that your users get only the fields and sections that they want.") # Dynamic Forms Known Issues Keep these known issues in mind when working with Dynamic Forms. ### Required Editions
Lightning App Builder available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Lightning pages and Dynamic Forms available in: Lightning Experience and the Salesforce mobile app

Available in: Group Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

- If you click **View All Dependencies** from the Path component, the dependencies that you see come from the record details on the page layout, not from the Dynamic Forms fields on the page. - The CurrencyISOCode field doesn’t appear as required (with the asterisk) at run time, although it still behaves as required. - When you hover over fields in the palette, the data types shown are inaccurate. - Fields in two-column Field Section components don’t horizontally align correctly. If you want the fields to retain their horizontal alignment inside a field section, select the **Align fields horizontally** checkbox. - A record’s printable view is based on the fields from its default page layout, not on the fields on the Dynamic Forms-based page. - Dynamic Forms field components aren’t supported inside the Macro Builder. When a Dynamic Forms-enabled record page is opened inside the Macro Builder, the field components don’t appear. - Universally required fields that are only required for either person account or business account appear in the Universally Required Fields section of the Fields panel regardless of which record type you're building the page for. For example, if you're creating a page for the business account record type, you see both person account and business account required fields in the Universally Required Fields section. If the person account required field isn't present on the page when you save the business account page, you get a warning even though the person account field isn't needed for the business account page. - The Einstein Account Tier field is missing from the Record Detail component on custom account record pages in the Lightning App Builder and when the account record page renders for users. If you migrate a custom account record page to Dynamic Forms, the Einstein Account Tier field appears in the available fields list and on the record page in Lightning App Builder, but doesn't appear when the page renders for users. - You can define a Lightning page that supports multiple accounts, like a business account and a person account. You can’t designate different save option values for the business account or person account flow on that Lightning page. - When you create an object from a related list in the context of a person account using Dynamic Forms, the PersonContactId field isn’t prepopulated in the new record. - If you edit a field inline and don’t save, then use a quick action to edit and save, your inline edits aren’t saved when your quick action edit is. - If you move a record to a different status in Kanban view, and the status change triggers a field validation error, it opens the edit window but doesn’t show the error. - Some field section header labels that are created when migrating a Dynamic Forms page don’t have the same label as the page layout section header. You can update the label in Lightning App Builder. ## Packaging Known Issues with Dynamic Forms - In a non-namespaced org, conflicts can happen if you install a managed package with a Dynamic Forms-enabled Lightning page that's based on an object that exists in the subscriber org and that contains a custom field with the same API name as a custom field on the same object in the subscriber org. The API name conflict between the managed package's custom field and the subscriber org's custom field causes the installed managed Lightning page to reflect the subscriber org's fields instead of the fields from the managed package. This issue can also happen with prompt templates installed from a managed package. If the installed prompt template is referenced by a custom field on a Dynamic Forms-enabled Lightning page, and that prompt template itself references a custom field with a namespace that is different from the Lightning page's namespace, package deploy can fail. Namespaces are used to differentiate custom object and field names from other orgs' names. For more information about namespaces in orgs, see [Understanding Namespaces](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_unlocked_pkg_plan_namespaces.htm). ## Visibility Rule Known Issues with Dynamic Forms - Visibility rules based on parent object fields don’t work correctly. - When you clone a record based on a Dynamic Forms-enabled page that has visibility rules, all the fields referenced in the visibility rules are added to the cloned record, regardless of whether those fields are on the page. The field value used in the rule evaluation and the field’s saved value on the cloned record can vary, depending on the cloning user’s access to the field used in the visibility rule. - If the user has read and write access to the field used in the visibility rule, and the field has a value, the source record's original value is used in the rule evaluation and saved to the cloned record. - If the user has read and write access to the field used in the visibility rule, and the field has no value, the source record's blank value is used in the rule evaluation, but the cloned record saves with the field’s default value. - If the user has only read access to the field used in the visibility rule, the source record's original value is used in the rule evaluation, but the cloned record saves with the field’s default value. - If the user doesn’t have read or write access to the field used in the visibility rule, the source value is treated as blank, and the cloned record saves with the field’s default value. - Values saved in the cloned record of a Dynamic Forms-enabled page depend on the cloning user’s access to the field even when there are no visibility rules assigned. This behavior is different from [cloning record detail component values](https://help.salesforce.com/s/articleView?id=xcloud.basics_clone_records.htm&type=5&language=en_US) on non Dynamic Forms-enabled pages. ## Create from Lookup Known Issues with Dynamic Forms - Creating a record from a lookup field opens a window with the Dynamic Forms fields only if the object is LWC-enabled. For example, Products and Tasks still use information from the page layout. See [LWC Migration for Record Home Pages](https://developer.salesforce.com/docs/platform/lwc/guide/migrate-lwc.html) for the list of LWC-enabled objects. - When working with actions, using Dynamic Forms via a Create from Lookup field is supported only for standard actions. Other types of actions, such as default actions and custom quick actions, continue to use information from the page layout. - On a Dynamic Forms-based page, you get a page error when there are multiple instances of the same lookup field that look up to an object that’s not supported in the UI API. See the [User Interface API Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_get_started_supported_objects.htm) for the list of supported objects. - For a non-UI API supported object that has a Forms-enabled object as a related list, if you click **New** from the related list, the parent lookup field doesn't appear in the New dialog. But you can save the new record. #### See Also - [Dynamic Forms Tips and Considerations](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_considerations.htm&release=264.0.0&type=5 "Keep these tips and considerations in mind when working with Dynamic Forms.") - [Dynamic Forms Limitations](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_limitations.htm&release=264.0.0&type=5 "Keep these general, migration, and packaging limitations in mind when working with Dynamic Forms.") - [Break Up Your Record Details with Dynamic Forms](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_overview.htm&release=264.0.0&type=5 "The more fields that there are on your page layout, the more that the Record Detail component becomes a monolithic block of fields that you can’t customize. With Dynamic Forms, you can migrate the fields and sections from your page layout to individual components in Lightning App Builder. Then you can configure them the same way as the other components on the page - spreading them out across multiple columns and tabs, and dynamically showing and hiding them based on record data, user details, and device type, so that your users get only the fields and sections that they want.") # Dynamic Forms Limitations Keep these general, migration, and packaging limitations in mind when working with Dynamic Forms. ### Required Editions
Lightning App Builder available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Lightning pages and Dynamic Forms available in: Lightning Experience and the Salesforce mobile app

Available in: Group Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

## General - Dynamic Forms is supported for most but not all standard LWC-enabled objects. See [LWC Migration for Record Home Pages](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/migrate_lwc) for a list of LWC-enabled objects. If you open a record page for an object in the Lightning App Builder and don't see a Fields tab in the component panel, then Dynamic Forms isn't supported for that object. As an example, the Note object doesn’t support Dynamic Forms because it has a fixed layout. - Dynamic Forms isn’t supported on objects that aren’t LWC-enabled. For example, Products, Events, and Tasks, which aren’t LWC-enabled, use information from page layouts. - Dynamic Forms doesn’t work in Internet Explorer 11. Users with IE 11 who try to view a page that uses Dynamic Forms get a page error. - Dynamic Forms doesn’t work on pages based on custom templates. - You can add up to 100 fields per column in a Field Section component. A blank space component is considered a field and counts against the limit of 100 fields per region. It doesn’t count against the component page limit. - The columns inside a Field Section are considered components. A Field Section component with two columns counts as three components when determining the total components on a page. - If you convert a section from two columns to one, the new single column can only hold 100 fields. If you have more than 100 fields total between the two columns, when you switch to a single column, the first 100 fields are moved into the single column, and the rest of the fields are dropped. If you change your mind after switching to single column, you can revert the change by immediately clicking the undo button (![Lightning App Builder Undo button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/rd_button_undo.png)). - Users can expand or collapse field sections only while in view or inline edit mode, not in the full edit, create, or clone windows. If you expand or collapse a field section and then refresh your browser, including pulling to refresh, the expanded or collapsed state doesn’t persist. - If you have Opportunity Products enabled and have the **Prompt users to add products to opportunities** setting enabled, when you create an opportunity from either an opportunity-related list or from opportunity home, the create window uses record details from the page layout. - The Clone with Related action for opportunities uses record details from the page layout even if the opportunity page you launch the action from uses Dynamic Forms. - When viewing an external or non-UI API-supported object record that has a related list for a child object that supports Dynamic Forms, if you create a record for that child object from the parent record related list, the create window uses record details from the child object page layout. - When configuring key fields in a path, the fields in the Available Fields list come from the record details on the object’s page layout, even if the page the path resides on uses Dynamic Forms. - The fields available for inline editing in list views are determined by the fields on the page layout, not the ones configured with Dynamic Forms. ## Migration - Only fields, sections containing fields, and layout save options are included when migrating a page to Dynamic Forms. Other elements on the page layout, such as custom links and blank spaces, aren't included. - You can add up to 100 fields per column in a Field Section component. And you can add up to 100 sections per region. If you use the migration tool to import fields and sections from a page layout that has more than those limits, then we migrate up to the first 100 sections in each region and the first 100 fields in each column. The rest of the fields are dropped, even if they’re required fields. You can manually add the dropped items later. If you change your mind after you make the switch, you can click the undo button (![Lightning App Builder Undo button](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/rd_button_undo.png)) to roll back the changes. - The Lightning App Builder Record Detail to Dynamic Forms migration tool doesn’t migrate all possible layout save options. For example, when saving a layout, if **Default** is selected but **Show on edit page** is deselected, then this option isn’t migrated. Manually set this value after migration. ## Packaging - Users who don’t have a license for a managed package don’t see fields from that managed package in the Lightning App Builder palette. - When a page that contains fields from a managed package is updated by an admin that doesn’t have a license to that managed package, the fields from that managed package are removed from the page upon saving. #### See Also - [_Knowledge Article_: Extended Support for Accessing Lightning Experience Using Microsoft Internet Explorer 11](https://help.salesforce.com/articleView?id=000333934&type=1&mode=1&language=en_US) - [Dynamic Forms Tips and Considerations](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_considerations.htm&release=264.0.0&type=5 "Keep these tips and considerations in mind when working with Dynamic Forms.") - [Dynamic Forms Known Issues](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_known_issues.htm&release=264.0.0&type=5 "Keep these known issues in mind when working with Dynamic Forms.") - [Break Up Your Record Details with Dynamic Forms](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_overview.htm&release=264.0.0&type=5 "The more fields that there are on your page layout, the more that the Record Detail component becomes a monolithic block of fields that you can’t customize. With Dynamic Forms, you can migrate the fields and sections from your page layout to individual components in Lightning App Builder. Then you can configure them the same way as the other components on the page - spreading them out across multiple columns and tabs, and dynamically showing and hiding them based on record data, user details, and device type, so that your users get only the fields and sections that they want.") # Dynamic Forms on Mobile Considerations Keep these considerations in mind when working with Dynamic Forms on mobile. ### Required Editions
Lightning App Builder available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Lightning pages and Dynamic Forms available in: Lightning Experience and the Salesforce mobile app

Available in: Group Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

- Enabling **Dynamic Forms and Dynamic Highlights Panel on Mobile** then disabling it can cause fields and field sections to be removed from your Dynamic Forms-enabled record pages when viewed on mobile. After disabling **Dynamic Forms and Dynamic Highlights Panel on Mobile**, add the Record Detail - Mobile component to your Dynamic Forms-enabled record pages so that mobile users can still see record fields. If you no longer want to use Dynamic Forms, remove any field sections and fields from your record pages, then add the Record Detail component instead. - Enabling **Dynamic Forms and Dynamic Highlights Panel on Mobile** changes the behavior of help text on mobile devices from a modal style to a [lightning-helptext](https://developer.salesforce.com/docs/component-library/bundle/lightning-helptext/documentation) tooltip. - Record-home offline priming isn’t supported. If you’re using AURA-based priming, you can’t pre-cache your most recently used records. - Offline draft edits to record pages aren’t supported when Dynamic Forms on Mobile is enabled. - Visualforce pages appear when viewing a Dynamic Forms-enabled record page on mobile, but not when editing it. - When you view a Dynamic Forms-enabled record page on a mobile device, tapping the address field results in different behavior depending on whether **Dynamic Forms and Dynamic Highlights Panel on Mobile** is enabled in your org. When it isn’t enabled, tapping an address field opens a prompt to select a map app. When it is enabled, tapping an address field takes you immediately to Google Maps™. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Keep working even when disconnected from the internet with Mobile Offline, available in [Salesforce Mobile App Plus](https://help.salesforce.com/s/articleView?language=en_US&id=sf.salesforce_app_plus.htm). #### See Also - [Enable Dynamic Forms on Mobile](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_on_mobile_enable.htm&release=264.0.0&type=5 "With Dynamic Forms on Mobile, your mobile users can have the same customized experience that your desktop users have.") - [Break Up Your Record Details with Dynamic Forms](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_overview.htm&release=264.0.0&type=5 "The more fields that there are on your page layout, the more that the Record Detail component becomes a monolithic block of fields that you can’t customize. With Dynamic Forms, you can migrate the fields and sections from your page layout to individual components in Lightning App Builder. Then you can configure them the same way as the other components on the page - spreading them out across multiple columns and tabs, and dynamically showing and hiding them based on record data, user details, and device type, so that your users get only the fields and sections that they want.") # Dynamic Forms Tips and Considerations Keep these tips and considerations in mind when working with Dynamic Forms. ### Required Editions
Lightning App Builder available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Lightning pages and Dynamic Forms available in: Lightning Experience and the Salesforce mobile app

Available in: Group Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

## General Considerations - Lightning App Builder preview respects density settings for field sections with one exception. If you have the Compact density setting enabled, you don't see the field labels and field values aligned on the same row on the Lightning App Builder canvas. - When you switch page templates on a page that uses Dynamic Forms, the list of available templates contains only the templates that are supported for your Dynamic Forms-enabled page. - Some fields get special handling in Dynamic Forms. They're set to Read-Only or Required and that state isn’t editable in the properties panel. - If you add more than one instance of the same field to a Lightning page, all instances of that field on the page show the same data. However, two or more instances of the same field on a page with different visibility rules, UI behavior, or requiredness settings can cause problems with the page at run time, including issues with record edit behavior. - Programmatic versions of the accordion components don’t provide the same functionality as their App Builder counterparts. For example, `lightning-accordion` and `lightning:accordion` components don’t currently support lazy loading. - Expanding or collapsing a field section while designing a page has no effect on whether a section is expanded or collapsed for users at run time. - When you save a new custom object record with an empty object name, the API populates the custom object name field with the record ID. Make sure that the Name field is on the page and is marked as required. - When Dynamic Forms-enabled pages appear on a tablet, field sections inside tabs have more left padding than field sections outside of tabs. - When adding new custom fields to Dynamic Forms-enabled Lightning pages as part of field creation, fields are added as the last field in the first column on the first field section on the page in top-down, left-to-right order. If the field section is in a container, such as a Tabs or Accordion component, then the first field section is chosen from the first tab or the first accordion section. The “active” tab doesn’t matter. If the first field section on a page is the Dynamic Highlights Panel, then new fields are added to the second field section instead. - When you create a record from a Dynamic Forms-enabled record page, the success confirmation toast message doesn't include a link like it does when you create a record from standard record pages. - When you click a compound address field from a Record Detail component, it opens in Google Maps™ with just the address populated. When you click a compound address field from a Dynamic Forms-enabled page, it opens in Google Maps showing both the address and the latitude and longitude values. However, if the latitude and longitude values point to an area with no known address, Google Maps doesn't show an address. - The User Interface setting Enable Collapsible Sections doesn't apply to Lightning record pages when Dynamic Forms is enabled on the page. This setting applies only to record pages in Salesforce Classic and to Lightning record pages that use the Record Detail component. The Dynamic Forms expand and collapse functionality takes precedence over the Enable Collapsible Sections setting. ## General Tips - We recommend not having both a Record Detail component and field sections on the same page. If you do, users can have issues with the page, including: - Multiple, overlapping save and cancel bars when both are on the page and both in inline edit. - Visibility rules on Field and Field Section components not working properly. - When users create, edit, or clone a record that uses Dynamic Forms, the fields they see come from the field sections on the page, not from the Record Detail component. - Field sections are top-down-left-right tab order only, while Record Detail is left-right-top-down tab order, which can cause confusion. As a result, fields inside a Field Section sometimes don’t line up horizontally, while Record Detail fields do. If you want the fields to retain their horizontal alignment inside a field section, select the **Align fields horizontally** checkbox. - Dynamic actions are supported on custom objects. Actions on standard objects come from the record details on the page layout, not from the Dynamic Forms fields on the page. ## Visibility Rules and Dynamic Forms - Field and Field Section components are supported on desktop only. Therefore, the visibility rules that you set on them are respected only in the desktop view, not on mobile. However, Dynamic Forms on Mobile gives your mobile users the same experience that your desktop users have. To avoid this issue, from Salesforce Mobile App Setup, enable **Dynamic Forms and Dynamic Highlights Panel on Mobile**. - If a field is hidden on a page due to a visibility rule, and a user edits the value of the field, its new or changed value isn’t saved. - Dependent picklist fields don’t respect visibility rules. Even if they have visibility rules assigned to them, dependent picklist fields still appear in the View All Dependencies list. - Component visibility rules on field sections behave differently than they do on fields. Visibility rules on fields are assessed dynamically. Changes a user makes while editing a record can make fields appear and disappear as visibility rules are evaluated. Visibility rules on field sections aren’t dynamic and don’t react to what a user does while editing. Field section visibility rules are evaluated only after the record is saved. - If you hide a field with a visibility rule, users don’t lose access to the field’s data. Values in hidden fields remain intact and are visible outside of the Dynamic Forms-based page in places like reports, dashboards, and list views. Hidden fields are for user convenience, not for field-level security. - When a tab is hidden by a visibility rule, any field sections within that tab are hidden in the Create and Edit windows. If all field sections on a page are contained in the hidden tab, then the Create and Edit windows are blank. #### See Also - [Dynamic Forms Limitations](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_limitations.htm&release=264.0.0&type=5 "Keep these general, migration, and packaging limitations in mind when working with Dynamic Forms.") - [Dynamic Forms Known Issues](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_known_issues.htm&release=264.0.0&type=5 "Keep these known issues in mind when working with Dynamic Forms.") - [Break Up Your Record Details with Dynamic Forms](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_overview.htm&release=264.0.0&type=5 "The more fields that there are on your page layout, the more that the Record Detail component becomes a monolithic block of fields that you can’t customize. With Dynamic Forms, you can migrate the fields and sections from your page layout to individual components in Lightning App Builder. Then you can configure them the same way as the other components on the page - spreading them out across multiple columns and tabs, and dynamically showing and hiding them based on record data, user details, and device type, so that your users get only the fields and sections that they want.") # Dynamic Highlights Panel The Dynamic Highlights Panel component displays up to 12 key record fields, which are configured in Lightning App Builder. The Dynamic Highlights Panel is responsive. When you change the size of your browser window, your information stays visible and wraps instead of being truncated. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience

Available in: Group, Essentials, Professional, Enterprise, Performance, Unlimited, and Developer editions

The Dynamic Highlights Panel is a container for fields, just like a Field Section. You can find it on the Fields tab in the Lightning App Builder. ![Dynamic Highlights Panel in the Fields tab](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lab_dynamic_highlights_panel.png) When you add the Dynamic Highlights Panel to the canvas, a Primary Field value is preset to the object’s Name field. You can change the Primary Field value in the property pane. If no secondary fields are added to the panel, the panel displays collapsed in runtime. You can use visibility rules to show and hide fields in the panel. You can also apply conditional formatting to fields in the panel to make them stand out and help users quickly identify the most relevant information on the page. You can also customize the actions that appear in the panel. The Dynamic Highlights Panel is supported for all LWC-enabled objects. For a list of LWC-enabled objects, see [LWC Migration for Record Home Pages](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/migrate_lwc). The Dynamic Highlights Panel must be enabled for mobile before your mobile users can see it on record pages. You can enable the panel on the Salesforce Mobile App page in Setup. When you enable **Dynamic Actions on Mobile**, some visibility rules may not work on standard objects as expected. Enable the **Dynamic Forms and Dynamic Highlights Panel on Mobile** setting at the same time. Enabling both settings ensures record pages on mobile use the latest LWC-based Lightning page technology, which provides improved support for visibility rules. The Dynamic Highlights Panel uses dynamic actions by default. Actions on pages that use the panel can come from different places based on how and where actions are configured and whether Dynamic Actions on Mobile is enabled. - If [Dynamic Actions on Mobile](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_create_dynamic_action.htm&release=264.0.0&type=5 "With dynamic actions, you can add flexibility and control to actions on your record pages. Assign dynamic actions in the Lightning App Builder instead of in the page layout editor, and then apply filters to control when and where actions are visible to users.") isn’t enabled for your org, desktop and mobile users viewing a page with the Dynamic Highlights Panel see the actions configured inside the Dynamic Highlights Panel. If the Dynamic Highlights Panel has no actions configured, desktop and mobile users see actions from the page layout. You can enable Dynamic Actions on Mobile from the Salesforce Mobile App page in Setup. - If Dynamic Actions on Mobile is enabled for your org, a checkbox appears in the page properties on record pages in Lightning App Builder. ![Checkbox to enable page-level dynamic actions for the Salesforce mobile app](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/dynamic-actions-mobile-page-level.png) If you don't select the checkbox, mobile and desktop users see the actions from the Dynamic Highlights Panel, if configured, and from the page layout if not configured. When this option is selected, the page-level actions you configure in the page properties pane take precedence on mobile over all other actions on the page, including those configured in the Dynamic Highlights Panel, the Highlights Panel, or from the page layout. #### See Also - [Dynamic Highlights Panel Considerations and Limitations](https://help.salesforce.com/s/articleView?id=platform.dynamic_highlights_panel_considerations.htm&release=264.0.0&type=5 "Keep these considerations and limitations in mind when using the Dynamic Highlights Panel.") - [Get Help for Lightning App Builder](https://help.salesforce.com/s/articleView?id=platform.lightning_app_builder_overview.htm&release=264.0.0&type=5 "The Lightning App Builder is a point-and-click tool that makes it easy to create custom pages for the Salesforce mobile app and Lightning Experience, giving your users what they need all in one place. The Lightning App Builder is also a one-stop shop for configuring Lightning apps.") - [Conditional Field Formatting in Lightning App Builder](https://help.salesforce.com/s/articleView?id=platform.conditional_formatting_overview.htm&release=264.0.0&type=5 "Make a field stand out by adding special formatting based on rules and criteria you provide, so that end users can quickly identify the most relevant information on a record page. You can apply conditional formatting to almost any field on a Dynamic Forms-enabled page, including the fields in the Dynamic Highlights Panel component.") - [Visibility Rules on Lightning Pages](https://help.salesforce.com/s/articleView?id=platform.lightning_page_components_visibility.htm&release=264.0.0&type=5 "Control when a component appears on a Lightning page by adding filter conditions and logic to its properties in the Lightning App Builder. For example, you can construct a filter that causes a rich text component on an opportunity page to display when the opportunity’s amount is greater than or equal to US$1 million.") # Dynamic Highlights Panel Considerations and Limitations Keep these considerations and limitations in mind when using the Dynamic Highlights Panel. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience

Available in: Group, Essentials, Professional, Enterprise, Performance, Unlimited, and Developer editions

## Considerations Keep these considerations in mind when using the Dynamic Highlights Panel. - If the Primary Field is hidden for a user due to field-level security settings, the object’s Name field is set as the Primary Field value for that user at runtime. - When you disable **Dynamic Forms and Dynamic Highlights Panel on Mobile**, the Dynamic Highlights Panel component is removed from record pages when they’re viewed on mobile. To make sure that mobile users can still see record highlights, add a regular Highlights Panel component to any page that contains a Dynamic Highlights Panel. Then create a visibility rule for the Highlights Panel that sets it to appear only on mobile devices. Desktop users then see the Dynamic Highlights Panel, and mobile users see the Highlights Panel. If you no longer want to use the Dynamic Highlights Panel component, remove it from your record pages, and add a regular Highlights Panel component instead. - Don't add both the Dynamic Highlights Panel and the regular Highlights Panel components to the same page. - Fields in the Dynamic Highlights Panel are read only. Inline edit isn’t supported for Dynamic Highlights Panel fields, nor are they included in the available fields when you edit a record. - Dynamic Highlights Panel fields are fixed width and don’t dynamically adjust based on the field values. - When adding new custom fields to Dynamic Forms-enabled Lightning pages as part of field creation, those fields are added as the last field in the first column on the first field section on the page in top-down, left-to-right order. If the first field section on a page is the Dynamic Highlights Panel, then new fields are added to the second field section instead. - When you enable **Dynamic Actions on Mobile**, some visibility rules may not work on standard objects as expected. Enable the **Dynamic Forms and Dynamic Highlights Panel on Mobile** setting at the same time. Enabling both settings ensures record pages on mobile use the latest LWC-based Lightning page technology, which provides improved support for visibility rules. ## Limitations Keep these limitations in mind when using the Dynamic Highlights Panel. - Blank spaces aren’t supported. - The Dynamic Highlights Panel doesn’t support the merging of multiple address or phone fields. It also doesn’t support a dropdown-menu version of those fields. - On pages that use the Dynamic Highlights Panel, the panel scrolls with the page. The panel's primary field and actions don't stick at the top when you scroll. - Visibility rules aren’t supported for the Primary Field, but you can use them to show and hide the other fields in the panel. - You can’t select a cross-object field as the Primary Field for the Dynamic Highlights Panel in the Lightning App Builder. - After a record is modified by a record-triggered flow, changes to action buttons in the Dynamic Highlights Panel aren’t always reflected immediately. In this scenario, refresh the page to see the updated action buttons. # Dynamic Interactions Considerations Keep these considerations in mind when working with Dynamic Interactions. ### Required Editions
Available in: Lightning Experience

Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

- Informational components within target components are ignored when the target component’s properties are shown in the Event property editor. - If you switch page templates for a page that contains Dynamic Interactions, the available template list shows only templates that support Dynamic Interactions. - Aura components re-render when an interaction targeting them is triggered. - Autocomplete doesn’t work when entering an expression in the rich text editor. - After a component’s event metadata is used on a Lightning page or released as part of a managed package, certain breaking changes aren’t allowed, such as removing the event, renaming a property, or changing a property type. # Dynamic Interactions in the Lightning App Builder Dynamic Interactions is part of our continuing drive to make Lightning pages more dynamic and interactive. With Dynamic Interactions, an event occurring in one component on a Lightning page, such as the user clicking an item in a list view, can update other components on the page. Dynamic Interactions lets admins create applications with components that communicate and transform based on user interactions, all in the Lightning App Builder UI. It unlocks capabilities that previously were reserved only for developers. ### Required Editions
Available in: Lightning Experience

Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

To get the most out of Dynamic Interactions, admins and developers work together. Developers write custom components that power the Dynamic Interactions. The developer defines the events that the component supports and then exposes the events in the Lightning App Builder UI. Then, in the Lightning App Builder, an admin configures the event by setting up the interactions between the components. Dynamic Interactions has four major building blocks. - Event—Anything that can trigger an interaction, such as a mouse click, a button press, or a change in a field’s value. - Interaction—An activity that happens between the source and the target. - Source—The item triggering the event. Currently, only custom Lightning web components and the [Dynamic Actions Bar component (Pilot)](https://help.salesforce.com/s/articleView?id=platform.lightning_page_components.htm&release=264.0.0&type=5) are supported as sources. - Target—The item that’s the target of the interaction. Any component on a Lightning page can be a target. An event occurring in one component (the source) can trigger changes in one or more other components on the page (the targets). A single source can have multiple targets. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Dynamic Interactions is supported only on app pages, and interactions are limited to activity between components. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_example.png) Example Kai (they/them) and Rina (she/her) are an admin and developer team. Kai wants to give their on-the-go users an easy way to check the location of various accounts so that they can plan efficient site visits using a simple app page. Kai enlists Rina’s help to make this happen. As a developer, Rina knows that she can wire up events between components using code. But she wants to give Kai the power to configure the event interactions in the way that they need to without having to come back to her every time a change is necessary. Rina creates a custom source component for Kai, plus two other components to act as event targets. After installing the new components in their org, Kai has an app page with three custom components: Account List, Account Detail, and Account Location (a map). ![Dynamic Interactions sample page](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/di_example_page.png) The source component is the Account List on the left. It has an Item Selected event enabled, which Rina exposed to the Lightning App Builder UI using new Dynamic Interactions code. After Kai finishes configuring the event interactions, when a user clicks a list item in the Account List component, the event fires. The Account Detail component updates to show that account’s details. At the same time, the Account Location component pinpoints that account’s location on a map. Every new click or tap on an account in the list results in updating the content in the other two components. #### See Also - [_Lightning Web Components Dev Guide_: Configure a Component for Dynamic Interactions in the Lightning App Builder](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.use_config_for_app_builder_dynamic_interactions) - [_Lightning Web Components Dev Guide_: XML Configuration File Elements](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.reference_configuration_tags) # Dynamic Interactions Limits and Limitations Keep these considerations in mind when working with Dynamic Interactions in the Lightning App Builder. ### Required Editions
Available in: Lightning Experience

Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

- Dynamic Interactions is supported only on app pages. - Only LWC custom components can be source components, but any component present on the page (Aura or LWC) can be a target. - Dynamic Interactions isn’t supported on pages based on custom page templates. - Only String and Rich Text type properties can use expressions to define their values. - The “required” property restriction isn’t respected when defining a new value for a target property in Dynamic Interactions, regardless of its type or whether it’s defined with an expression. - `Event` is the only context supported for expressions in interactions. - You can use expressions only for properties of type String, Integer, and Boolean. - You can’t set a target property value as an array or list of values, such as a multi-select picklist. - You can set a target property value of a String attribute to `empty` using Metadata API but not in the Lightning App Builder UI. - Dynamic Interactions doesn’t work in the Mobile Only app in the Salesforce mobile app or in the legacy tablet mobile experience. - When a dependent property is autopopulated with a value based on a selection you made or a value you entered in another property, the autopopulated value isn’t saved unless you “touch” the dependent property field by clicking into it or tabbing to it. # Dynamic SOQL and Secure Platform Encryption Dynamic SOQL lets you create SOQL strings at run time within Apex, so you can build more flexible applications. This flexibility is useful in environments where queries are constructed dynamically based on user input or other run time conditions. Locating Dynamic SOQL within Salesforce Search the code base for all references to: - Database.query - database.countQuery - database.getquerylocator Dynamic SOQL Analysis and the Shield Platform Encryption Analysis Engine Due to the nature of Secure’s Platform Encryption Analysis engine, queries which are formed at runtime (Dynamic SOQL) cannot be analyzed and must be checked manually. Ensure the field is not used in a way that breaks the SOQL query. For each reference, check the query strings for: - Aggregates > MIN, MAX, etc. - ORDER BY clauses - GROUP BY clauses - WHERE clauses - Fuzzy matching not supported for encryption (CONTAINS, LIKE, >=, <=, etc.,) - Exact matches are supported for determination encryption ONLY (=, !=, IN) The result of any "All Clear" field that is referenced in the above changes that field result to "Blocked by Configuration". If the result of any existing "Blocked by Configuration" field is referenced above, the blocked reason is added to the items requiring remediation prior to field encryption. # Dynamically Retrieve Data with Data Repeaters Use a data repeater to connect to a standard or custom Salesforce object and retrieve a dataset based on the filter criteria that you specify. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To edit the guest user profile:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

AND

Manage Profiles and Permission Sets

AND

Customize Application

You can connect to standard or custom Salesforce objects, or to content lists or categories in your site. When you combine a data repeater with data elements, custom code, or content blocks, you can create a “repeating template” that displays one or more records on the page. To add a data repeater to a page: 1. Drag a **Data Repeater** from the Page Elements pane onto the page. 2. Select the object that you want to connect to. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - For Site.com users, the dropdown list only displays objects that are available to guest users because site visitors access your public site via the Guest User license. To make other objects available, go to the [guest user profile](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_access_perms.htm&release=264.0.0&type=5 "Sites built with Site.com are publicly available, so visitors access the site via the Guest User license that's associated with the site."), enable the relevant object's “Read” permission, and refresh the list. - For Communities users, the dropdown list displays objects that aren’t always available to site visitors. For authenticated visitors, object access on public and private pages is controlled by their user profiles. For unauthenticated visitors, object access on public pages is controlled by the site's guest user profile. 3. Optionally, in Filters, select criteria to filter your dataset. If you don't select any criteria, all the data from the item is returned. 1. Select the field to which the filter criteria apply. The Field dropdown list displays the object's fields, followed by the fields of all parent objects, which use the format parent\_object\_name.field\_name. 2. Select [the operator](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_operators.htm&release=264.0.0&type=5) to control how results are filtered. For example, select Equals to return an exact match. 3. Select [the source](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_operators.htm&release=264.0.0&type=5) of the filter value. For example, to specify an explicit value, select Fixed value, or to use the values passed to the page via a query string, select URL query string. 4. Set the value of the filter. If you're using a query string, you can also specify what happens if the query string is missing. 5. Add additional filter criteria as required to narrow your results further. Each filter item is combined with an AND operator. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you're using a fixed value to filter the results, you can view the returned records in the Connection Preview section. To refresh the list of records, click **Reload Preview**. 4. In Sorting, you can specify whether to sort the results by one or more fields in ascending or descending order. For example, if you're working with an object that contains user data, you could sort your results by gender first and then by name. 5. In Limits, you can limit the number of returned results. For example, if you're only interested in the top five results, enter 5 in the Limit results to field. 6. If you're adding [pagination](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_pagination.htm&release=264.0.0&type=5 "Events let you add interactive and animated effects to the pages and page elements of your website. When using data repeaters and data tables, you can add pagination events so users can easily page through the displayed data. Pagination events are particularly useful when working with large amounts of data."), specify the number of results to display per page in the Results per page field. 7. Click **Save**. Next, you must add either [data elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_element.htm&release=264.0.0&type=5 "You can use a data element to display the data retrieved by a page data connection or a data repeater. The data element binds to a field in the object and acts as a placeholder that's replaced with the field's data when the page loads."), [custom code](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_code.htm&release=264.0.0&type=5 "In addition to data elements and content blocks, you can also use custom code as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text."), or [content blocks](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_content_block.htm&release=264.0.0&type=5 "In addition to data elements and custom code, you can also use content blocks as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text.") to the data repeater to display the data it retrieves. - **[Display Data or Content Using Data Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_element.htm&release=264.0.0&type=5)** You can use a data element to display the data retrieved by a page data connection or a data repeater. The data element binds to a field in the object and acts as a placeholder that's replaced with the field's data when the page loads. - **[Displaying Data or Content Using Custom Code](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_code.htm&release=264.0.0&type=5)** In addition to data elements and content blocks, you can also use custom code as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text. - **[Displaying Data Using Content Blocks](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_content_block.htm&release=264.0.0&type=5)** In addition to data elements and custom code, you can also use content blocks as an alternative way to display data in a data repeater or in a page data connection. It's particularly useful for displaying field data that's inline with text. - **[Dynamically Retrieve Data with Data Tables](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5)** Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table. - **[Edit Columns in a Data Table](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table_column.htm&release=264.0.0&type=5)** A data table's columns bind to the fields of the object it's connected to. Each column cell acts as a placeholder that is replaced with the field's data when the page loads. - **[Add Pagination to Data Repeaters and Data Tables](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_pagination.htm&release=264.0.0&type=5)** Events let you add interactive and animated effects to the pages and page elements of your website. When using data repeaters and data tables, you can add pagination events so users can easily page through the displayed data. Pagination events are particularly useful when working with large amounts of data. - **[Using Data Functions](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_function.htm&release=264.0.0&type=5)** A data function lets you connect to a standard or custom Salesforce object, perform calculations on the returned results, and display the calculation on the page. For example, for a particular field in an object, you can use a data function to calculate the total value or the average amount of all returned records. - **[Page Data Connections Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_page_overview.htm&release=264.0.0&type=5)** Page data connections make it easy for site administrators and designers to create a detail page for a single record when working with Salesforce objects. - **[Retrieving Data with Page Data Connections](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_page_connection.htm&release=264.0.0&type=5)** Use a page data connection to create a detail page for a single record when working with Salesforce objects. - **[Access Data in Related Objects Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_nested_overview.htm&release=264.0.0&type=5)** Standard and custom objects have relationships that define how records in one object relate to records in another. For example, the Accounts object has a one-to-many relationship with the Contacts object—that is, each account can have one or more contacts associated with it. This relationship is also known as a parent-to-child or a master-detail relationship. - **[Displaying Data from Related Objects Using Nested Data Repeaters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_nested_add.htm&release=264.0.0&type=5)** You can retrieve data from any child object of a parent object using a data repeater that contains another data repeater, data table, or data function. - **[Improve Performance Using Caching](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_caching.htm&release=264.0.0&type=5)** When working with data-bound page elements, such as data repeaters, data tables, and data functions, you can improve the performance and page rendering of your website using caching. Caching controls how often a page containing a data connection requests data from Salesforce. - **[Data Filters](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_operators.htm&release=264.0.0&type=5)** When you add a data repeater, a data table, or a data function to a page, you don't have to limit the records it retrieves. However, if you're working with a Salesforce object that has thousands of records, you can limit the returned results using filter criteria. - **[About Displaying Dynamic Data Using Expressions](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_merge_fields.htm&release=264.0.0&type=5)** Site.com uses expression language to display data dynamically. Expressions serve as placeholders for data that is replaced with information when the page loads. When working with data-bound page elements or custom widget properties, you can use expressions to customize how data is displayed on the page. - **[Data Filter Examples](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_examples.htm&release=264.0.0&type=5)** When working with data repeaters, data tables, and data functions, you can filter the data you retrieve in many ways. In this topic, we explore two options— fixed values and URL query strings—to illustrate some common filtering techniques. #### See Also - [The Default, Error, and No Data Views](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_views.htm&release=264.0.0&type=5 "When working with data repeaters, data tables, data functions, and forms, you can customize what your site visitors see if an error occurs when connecting to the data source.") - [Improve Performance Using Caching](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_caching.htm&release=264.0.0&type=5 "When working with data-bound page elements, such as data repeaters, data tables, and data functions, you can improve the performance and page rendering of your website using caching. Caching controls how often a page containing a data connection requests data from Salesforce.") - [Data Filter Examples](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_examples.htm&release=264.0.0&type=5 "When working with data repeaters, data tables, and data functions, you can filter the data you retrieve in many ways. In this topic, we explore two options— fixed values and URL query strings—to illustrate some common filtering techniques.") - [Site.com Data Services Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_overview.htm&release=264.0.0&type=5 "Site.com data services combine many features that let you connect to standard and custom Salesforce objects. Retrieve data from your organization's objects and dynamically display it on your site pages, or alternatively, gather and submit data from your customers. And when you update data in your Salesforce object, the changes are reflected automatically on the live site—no site updates required!") # Dynamically Retrieve Data with Data Tables Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To edit the guest user profile:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

AND

Manage Profiles and Permission Sets

AND

Customize Application

A data table's columns bind to the fields of the object it's connected to. Each column cell acts as a placeholder that is replaced with the field's data when the page loads. To add a data table to the page: 1. Drag a **Data Table** from the Page Elements pane onto the page. 2. Select the object that you want to connect to. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - For Site.com users, the dropdown list only displays objects that are available to guest users because site visitors access your public site via the Guest User license. To make other objects available, go to the [guest user profile](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_access_perms.htm&release=264.0.0&type=5 "Sites built with Site.com are publicly available, so visitors access the site via the Guest User license that's associated with the site."), enable the relevant object's “Read” permission, and refresh the list. - For Communities users, the dropdown list displays objects that aren’t available to site visitors. For authenticated visitors, object access on public and private pages is controlled by their user profiles. For unauthenticated visitors, object access on public pages is controlled by the site's guest user profile. 3. Optionally, in Filters, select criteria to filter your dataset. If you don't select any criteria, all the data from the item is returned. 1. Select the field to which the filter criteria apply. The Field dropdown list displays the object's fields, followed by the fields of all parent objects, which use the format parent\_object\_name.field\_name. 2. Select [the operator](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_operators.htm&release=264.0.0&type=5) to control how results are filtered. For example, select Equals to return an exact match. 3. Select [the source](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_operators.htm&release=264.0.0&type=5) of the filter value. For example, to specify an explicit value, select Fixed value, or to use the values passed to the page via a query string, select URL query string. 4. Set the value of the filter. If you're using a query string, you can also specify what happens if the query string is missing. 5. Add additional filter criteria as required to narrow your results further. Each filter item is combined with an AND operator. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you're using a fixed value to filter the results, you can view the returned records in the Connection Preview section. To refresh the list of records, click **Reload Preview**. 4. In Sorting, you can specify whether to sort the results by one or more fields in ascending or descending order. For example, if you're working with an object that contains user data, you could sort your results by gender first and then by name. 5. In Limits, you can limit the number of results returned. For example, if you're only interested in the top five results, enter 5 in the Limit results to field. 6. If you're adding [pagination](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_pagination.htm&release=264.0.0&type=5 "Events let you add interactive and animated effects to the pages and page elements of your website. When using data repeaters and data tables, you can add pagination events so users can easily page through the displayed data. Pagination events are particularly useful when working with large amounts of data."), specify the number of results to display per page in the Results per page field. 7. Click **Next**. 8. Add available fields to the table by double-clicking a field, or selecting it and clicking ![Add](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_moveright.png). 9. Reorder the list of selected fields by clicking **Move Up** or **Move Down**. 10. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You can't add page elements to a data table. However, you can add additional columns to a data table by selecting it and clicking **Edit**. On the Select Fields screen, select the additional fields and save your changes. After you've added the data table to the page, you can use the Properties pane to: - Provide a short heading or summary of the table's purpose in the Caption field. The caption appears above the table, and complies with W3C accessibility standards for screen reader users. - Hide the column headings by deselecting Show Column Headings in the Table section. - Make the columns sortable by selecting the jQuery Flexigrid theme in the Theme section and selecting Enable Sorting. The theme also changes the appearance of the table. - Change the name of a column by selecting the column cell and updating its name in the Column Heading property in the Data Table section. #### See Also - [Edit Columns in a Data Table](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table_column.htm&release=264.0.0&type=5 "A data table's columns bind to the fields of the object it's connected to. Each column cell acts as a placeholder that is replaced with the field's data when the page loads.") - [The Default, Error, and No Data Views](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_views.htm&release=264.0.0&type=5 "When working with data repeaters, data tables, data functions, and forms, you can customize what your site visitors see if an error occurs when connecting to the data source.") - [Improve Performance Using Caching](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_caching.htm&release=264.0.0&type=5 "When working with data-bound page elements, such as data repeaters, data tables, and data functions, you can improve the performance and page rendering of your website using caching. Caching controls how often a page containing a data connection requests data from Salesforce.") - [Data Filter Examples](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_examples.htm&release=264.0.0&type=5 "When working with data repeaters, data tables, and data functions, you can filter the data you retrieve in many ways. In this topic, we explore two options— fixed values and URL query strings—to illustrate some common filtering techniques.") # Dynamics Authenticated User Permission Requirements for Backup & Recover The Authenticated User connects your Backup & Recover application to a client's Dataverse environment. Having a dedicated integration user enhances security, improves audit trails, and avoids API concurrency collisions. Own leverages the Dataverse WEB API to perform a backup and restore of your Dynamics data. As a best practice, Own recommends having a dedicated user provisioned specifically for Own. This should be enabled to enhance security and audit log capabilities, as well as assist to avoid API concurrency collisions, and other problems that may occur due to with the same user issues. For the authentication user to be applicable for backup and recovery in Dynamics, they have to be assigned the System Administrator security role in the destination environment. Authenticated User = The user that the Own platform uses to connect to the client's Dataverse environment. See [Security roles and privileges](https://learn.microsoft.com/en-us/power-platform/admin/security-roles-privileges?tabs=new). # Dynamics Backup History Overview The Backup History tab displays a comprehensive list of backups, including those with incomplete file downloads due to API limitations or errors. The Backup History tab includes these columns: | Column Name | Description | | --- | --- | | Status | The status of the backup (Success, Warning, or Error). | | Type | The type of backup performed: synthetic full backup or full backup (see detailed descriptions below). | | Started At | The date and time the backup was initiated. | | Tag | Tags assigned to the backup. | | Label | Labels assigned to the backup by the system or user. | | Duration | The total time taken to backup the Data. | | Size | The size of the backup. | | API Calls | The number of API calls used during the backup process. | | Bulk API Usage | The Bulk API Usage during the backup process. | | Items | The number of Records backed up and the number of Files backed up. | ## Backup Types Synthetic Full Backup: An incremental backup that merges with previous full or synthetic full backups to create an updated full backup. This backup reduces run time and API consumption, while maintaining all the benefits of a full backup. Full Backup: A backup that copies the entire set of sObject data. While this backup takes longer than a synthetic full backup, done periodically, it ensures a high level of data integrity. ## Status Definitions - Success : Data backed up successfully. Possible File statuses: - Files backup completed. - Files backup in progress. - Files backup partially complete (API limitation).. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note - The daily API limit has been reached before all the binary files were backed up. The binary files' backup continues on each consecutive day up to the daily API limit and until completion of the backup. - You can choose how to use the daily API limit in the most efficient manner. For example, you may decide to prioritize API calls for something other than the binary files. - For further information see [Managing API Consumption for Dynamics Backups](https://help.salesforce.com/s/articleView?id=platform.br_o_microsoft_api_consumption.htm&release=264.0.0&type=5 "Admins users can set limits for API consumption, for files and attachments downloaded via the REST API, in the Options menu."). - Warning : The backup contain warnings. The warning can be in the Data backup, the File backup or both. - Error : The backup contains errors. The error can be in the Data backup, the File backup or both. ## Export Backups to CSV The option to export all backups to a CSV file is located on the Backup History tab. For metadata, each metadata object is listed separately, as well as the package.xml file. Use any of these files to deploy metadata using your preferred Integrated Development Environment. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note - 1TB CSV Download Limit - There is a 1TB CSV download limit. This limit can prevent you from running exports. You can use export-to-s3 option for large volumes of data. There is no size limit for exporting data to external endpoints. ## Filtering Backups You can filter the backups with the following options: - All backups - Label - Status - Warning - Status - Error - Status - Successful # Dynamics Backup Retention Policies Retention policies help you meet requirements for keeping data backed up. You can adjust retention periods and retain backups indefinitely when needed for legal procedures. In the Options menu, you can manage your retention policies. A data retention policy is an established protocol for retaining information for operational or regulatory compliance needs. Retention policies can be set to meet any internal requirements set by your organization for keeping data backed up. Your backups are stored on encrypted volumes for a default number of years. Admins can edit backup retention periods as well as their frequency. The Retention feature specifies how long we retain a copy of the backup for your use. For example, for a retention policy set to six months, once a backup is six months old, we automatically purge it to ensure you remain compliant with internal data policies. On the day after retention ends, the Own application marks the backup as deleted, and the backup appears grayed out in the Backup History list. You will no longer be able to access this backup dataset. ## Attachments Once a month, the Own application checks which attachment files are related to backups. Files that are not associated with any backup will be purged. ## Retention Policy Tags on Backup History The weekly retention policy behavior determines the best candidate for the "weekly" retention daily. Leveraging a logic that plans for the worst, the weekly retention tag will appear to migrate daily until it achieves the closest match for that week and will "set" on it. For example, the weekly retention is set to Saturday, and today is November 2nd, 2021, a Tuesday. In the best-case scenario, the weekly retention tag will show correctly on October 30th, 2021 - a Saturday, but will migrate on November 2nd until settling on November 7th, 2021. Suppose, for some reason, Friday was the last backup day. In that case, the Own application ensures a weekly data set will always be available next to the scenario set by the customer's retention policy, which means Friday for that week. The retention policy will only allow automatic backups per configured plan. Meaning, if you are on the default one auto-backup a day plan and have an automatic backup scheduled for 10 AM, which runs for 2 hours, and then reconfigure the scheduler to run automatically again at 10 PM, the retention policy will delete the older backup to conform to the plan. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Manual backups do not affect this count. The automatic scheduler is always running synced to UTC. ## Edit Dynamics Retention Policies Adjust policies to retain backups for a specific duration, after which the backups are automatically purged. You can configure daily, weekly, monthly, and yearly frequencies, specifying how often the Own application checks and acts on the retention period policy. The frequency can be driven via a matrix to achieve specific business use case policy configurations. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Applying a new retention policy with a period less than the original retention period may result in the automatic purging of older backups. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Legal Hold is a retention policy feature for companies that find themselves in legal procedures requiring them to store data for undisclosed periods. Legal Hold is intended for specific backups that should never be deleted, enabling storing and not losing original evidence (such as transcripts, financial documents, and pictures) for use in legal matters. If you need to activate the Legal Hold attribute, please contact our Customer Support Team. 1. Click Edit Retention Policy. 2. Select whether to Always keep last 15 backups. 3. Select the Retention period from the drop-down list. 4. Click Apply Policy. 5. Click Update. The updates will be applied within 10 days. # Dynamics Scheduled Export Automate the export of data from a service to a specified endpoint such as an S3 Bucket, SQL Azure Blob, or Snowflake. Dynamics Scheduled Export facilitates regular data backups or data sharing by automating the export process, which saves time and reduces manual effort. Users are limited to two scheduled exports per service. When that limit is reached, the "New Scheduled Export..." button is disabled (grayed out). ## Create a Scheduled Export 1. Select the service to use. 2. Click "New Scheduled Export...". The New Scheduled Export window opens. 3. Enter a name for the new export. 4. In the Export to drop-down list, select S3 Bucket, SQL, Azure Blob or Snowflake. 5. Select an endpoint. A success message appears. 6. Select the Frequency from the following options: - Weekly: Select the day of the week, how often per weeks, and the hour. - Daily: Select the hour. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note The time zone is set according to user profile settings. 7. Select whether to export All or Specific tables. 8. If Specific tables was selected, filter or scroll to select the desired tables. 9. If applicable, select whether to include attachments. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note The option to include attachments is only visible when S3 Bucket, Azure Blob or Snowflake was selected for "Export to". 10. Click Save. The table contains the following information: - Name - Endpoint - The status of the last scheduled export: - Completed Successfully: The export of your backup to your endpoint was successful. - Failed: The export failed due to an error. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note If your export fails, check the endpoint validity or job status for more information. - You can select to edit or delete a scheduled export. ## Edit a Scheduled Export 1. To edit a scheduled export, click the three-dot menu icon. The Edit option is displayed. 2. Click Edit. The "Edit Scheduled Export" modal is displayed. 3. Make any required changes to the scheduled export. 4. Click Save to confirm the changes. ## Delete a Scheduled Export 1. To delete a scheduled export, click the three-dot menu icon. The Delete option is displayed. 2. Click Delete. The delete modal is displayed. 3. Click "Yes, delete it". # DynamoDB Qualifier Examples for Parsing Formulas This example shows a simple formula to concatenate two text values. The value of the `location` virtual attribute is evaluated using the values of `city` and `state` attributes. For example, if city is Los Angeles and state is California, location value is defined as Los Angeles, California. ``` { "columns": { "city": { "presence": "any", "type": "S", "values": [{ "definition": "LEFT(location, FIND(",", location)-1)" }] }, "state": { "presence": "any", "type": "S", "values": [{ "definition": "MID(location, FIND(", ", location)+2, LEN(location))" }] }, "location": { "virtual": "true", "values": [{ "definition": "city+", "+state" }] } } } ``` This example depicts use of parsing formulas to decode an address stored in a single attribute in Amazon DynamoDB. The `data` field captures the street address as _country#region#city#address_ for querying purposes. For example, USA#MI#Ann Arbor#707 Oxford Rd. ``` { "columns": { "pk": { "filter": "suppliers#%", "values": [ { "definition": ""suppliers#" +supplier" } ] }, "sk": { "presence": "exists", "values": [ { "definition": ""SUPPLIER"" } ] }, "supplier": { "virtual": true, "type": "S", "values": [ { "definition": "MID(pk, FIND("#", pk) + 1, LEN(pk))" } ] }, "data": { "presence": "any", "type": "S", "values": [ { "definition": "country + "#" + region + "#" + city + "#" + address" } ] }, "country": { "virtual": true, "type": "S", "values": [ { "definition": "LEFT(data, FIND("#", data)-1)" } ] }, "region": { "virtual": true, "type": "S", "values": [ { "definition": "MID(data, FIND("#", data)+1, FIND("#", data, FIND("#", data)+1)-FIND("#", data)-1)" } ] }, "city": { "virtual": true, "type": "S", "values": [ { "definition": "MID(data, FIND("#", data, FIND("#", data)+1)+1, FIND("#", data, FIND("#", data, FIND("#", data)+1)+1)-FIND("#", data, FIND("#", data)+1)-1)" } ] }, "address": { "virtual": true, "type": "S", "values": [ { "definition": "RIGHT(data, LEN(data)-FIND("#", data, FIND("#", data, FIND("#", data)+1)+1))" } ] } } } ``` #### See Also - [_Amazon DynamoDB Developer Guide_: Using the BEGINS\_WITH Function with PartiQL for DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-functions.beginswith.html) - [Manage Qualifiers for Salesforce Connect Adapter for Amazon DynamoDB](https://help.salesforce.com/s/articleView?id=platform.dynamodb_manage_qualifiers.htm&release=264.0.0&type=5 "Amazon DynamoDB uses unique design patterns to model data efficiently that support multiple table and single table designs. To make data stored in Amazon DynamoDB table accessible to external objects, use qualifiers to reinterpret external data. The qualifiers describe the item attributes and indicates whether an item belongs to the schema represented by the external object. For multiple-table schema designs, the table qualifier is optional.") # Dynatrace Connector Connect to an external Dynatrace account. Perform tasks like creating, retrieving, updating, or deleting credentials for monitoring services. Use Dynatrace as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Dynatrace actions are available in Flow Builder. - Create Credentials - Delete Credentials - Get All Credentials - Get Credentials Metadata - Update Credentials ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Edit a Blueprint in Agentforce Operations Open an existing blueprint for editing to add stages, tasks, automations, or other changes. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Role or Access Needed
To edit a blueprint in Agentforce Operations: Admin role, Creator role, or a user with Edit access for the blueprint
How you open a blueprint for editing depends on whether it's a draft or a published blueprint. Draft blueprints are edited directly. Published blueprints require you to create a new version first, which generates an editable draft. ## Edit a Draft Blueprint Draft blueprints aren't published and are edited directly. 1. In the navigation sidebar, click **Blueprints**. 2. Click the **Draft blueprints** tab. 3. Click **Edit** on the blueprint that you want to edit. 4. Make your changes. ## Edit a Published Blueprint You can't directly edit a published blueprint. To make changes to the blueprint, create a new version of the blueprint. The new version is a draft that you can edit and then publish when ready. 1. In the navigation sidebar, click **Blueprints**. 2. Check that you're in the **Published blueprints** tab. 3. On the blueprint you want to edit, click the three-dot dropdown list. 4. Click **New version**. A new draft version of the blueprint opens in the editor. You can now make changes and publish the updated version when ready. 5. Make your changes. # Edit a Custom Field You can modify the field attributes of a custom field. The attributes vary according to the field data type. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: all editions

Standard Objects aren’t available in Database.com

User Permissions Needed
To create or change fields: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations. 1. From the management settings for the field’s object, go to Fields & Relationships. 2. Click the field’s name, then click **Edit**. 3. Modify the field attributes. The attributes differ depending on the field type. If you’re editing a picklist, you can change its definition and its values. For picklist settings, see [Add or Edit Picklist Values](https://help.salesforce.com/s/articleView?id=platform.updating_picklists.htm&release=264.0.0&type=5 "Add new values or rename existing values in a custom picklist from the fields area of an object. If the picklist uses a global picklist value set, you can change its values only by editing the global value set. Your changes affect all picklists that inherit their values from that global value set."). To change the type of this custom field, see [Change the Custom Field Type](https://help.salesforce.com/s/articleView?id=platform.customize_fieldtype.htm&release=264.0.0&type=5 "You can modify the data type of a custom field. For example, you can change a field from Text to Text Area (Long)."). 4. Optionally, define custom help text for the field. 5. For lookup and master-detail relationship fields, optionally define a lookup filter. 6. For formula fields, click **Next** to modify the formula. 7. In Enterprise, Unlimited, Performance, and Developer Editions, click **Next** to set the field-level security for the field. Keep these considerations in mind when you edit a custom field. - Editing fields can require changing a large number of records at once. To process these changes efficiently, your request can be queued and you receive an email notification when the process has been completed. - To customize the way a custom object’s related list appears on a parent record’s detail page, edit the parent record’s page layout. For example, if you want to edit which fields appear on a custom object’s related list on accounts, you would edit the account page layout. - You can’t change the Field Name if a custom field is referenced in Apex. - When editing fields for accounts, opportunities, cases, contacts, or custom objects, check for any criteria-based sharing rules that use the field in the rules. A field change can affect which records are shared. #### See Also - [Define Default Field Values](https://help.salesforce.com/s/articleView?id=platform.fields_defining_default_values.htm&release=264.0.0&type=5 "Define a default value for a field. Use a formula to generate dynamic values or constants for static values.") - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") # Edit a Document from a Process Add content to an existing document. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). After you’ve created a Quip action and selected **Edit Document**, fill in the relevant fields to add the action to your process. 1. Enter a name for this action. This text appears on the canvas and helps you differentiate this action from others in your process. The name truncates to fit on the canvas. 2. Select **Document** as the Document Type. 3. Enter the URL of the document you want to edit. 4. Select the location in the document where you want to add content. To add content after or before a section or to replace a section, enter the document section anchor link. 5. Select the Content Type. 6. Enter the new content. 7. Optionally, select **Disable Extra Lines in Quip** to prevent Quip from automatically adding a blank line after each paragraph. 8. Save the action. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To replace the existing Process Builder processes and Workflow Rules with flows before Process Builder and Workflow Rules reach [end of support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US), see [Quip Actions in Flow Builder](https://help.salesforce.com/s/articleView?id=xcloud.quip_automation_flow.htm&type=5&language=en_US). # Edit a Group Update a group's name and description to keep your flow's sections clear and accurate. ### Required Editions
View supported editions.
User Permissions Needed
To create and manage flow element groups : Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. 1. Open the Flows list view. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. Note that the Automation app and Flows tab options don't require Setup access. 2. Click an existing flow to open it, or create a flow by clicking **New** or **New Flow.** 3. Click the group card for the group you want to edit. The group's properties panel opens. 4. Update the group's name. Use a name that describes the section's purpose, such as Validate Input or Create Records. 5. Update the group's description. 6. Save your flow. #### See Also - [Edit Elements in Auto-Layout](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements_autolayout_edit.htm&release=264.0.0&type=5 "Modify existing elements in a flow to update their configuration or behavior.") # Edit a Running Workflow in Agentforce Operations Reassign tasks, add tasks, and update task details in a workflow that's running in Agentforce Operations. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

You can change a workflow while it's running. You can add new tasks and update task details such as the due date, assignees, and description. Changes take effect immediately and are recorded in the task's activity history. ## Add a Task to a Running Workflow Insert an ad hoc task into a workflow that is running in Agentforce Operations. You can add a task to any stage in a running workflow. The new task is added as a standalone task and doesn’t affect the blueprint. 1. In the navigation sidebar, click **Home**. 2. Click the name of the workflow that you want to edit. 3. Click **Open workflow.** 4. In the stage where you want to add the task, click **\+ Task**. 5. Configure the task. 6. Click **Add**. The task is added to the workflow immediately. Assignees are notified. ## Update a Task in a Running Workflow Edit task details such as due date, description, and CC recipients while a workflow is running in Agentforce Operations. You can only edit tasks that haven't run yet. 1. In the navigation sidebar, click **Home**. 2. Click the name of the workflow that you want to edit. 3. Click **Open workflow.** 4. Click the task that you want to edit. 5. Make your changes. 6. Click **Save**. Changes are saved immediately and recorded in the task's activity history. If you reassigned the task, Agentforce Operations notifies the previous assignee that the task has been reassigned. The new assignee receives a task assignment notification. # Edit a Slide from a Process (Retired) Insert a new slide or change an image in an existing slide deck. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). After you’ve created a Quip action and selected **Edit Document**, fill in the relevant fields to add the action to your process. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_warning.png) Warning Quip is retiring slides on January 31, 2021. After this date, the Copy Content action in Process Builder and Flow Builder no longer works, and Slides isn’t a valid document type for the Edit Document and Create Document actions. [Tell Me More](https://help.salesforce.com/articleView?id=000355252&language=en_US&mode=1&type=1) 1. Enter a name for this action. This text appears on the canvas and helps you differentiate this action from others in your process. The name truncates to fit on the canvas. 2. Select **Slides** as the Document Type. 3. Enter the URL of the slide deck you want to edit. 4. Select **Insert New Slide** or **Change Image In Slide**. 5. Select the location in the slide deck where you want to add content. 6. To add content before or after a section, enter the slide number. 7. Use the **Advanced** section to include anchor links instead of slide numbers. 8. To add text to a slide, select **Text Layout** and add your content. 9. To add an image, select **Image Layout** and enter the URL of the image you want to add. 10. Save the action. # Edit a Spreadsheet from a Process Add data to an existing spreadsheet. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create, edit, or view processes:

Manage Flow

AND

View All Data

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). After you’ve created a Quip action and selected **Edit Document**, fill in the relevant fields to add the action to your process. 1. Enter a name for this action. This text appears on the canvas and helps you differentiate this action from others in your process. The name truncates to fit on the canvas. 2. Select **Spreadsheet** as the Document Type. 3. Enter the URL of the spreadsheet you want to edit. 4. Select the location in the spreadsheet where you want to add content. 5. To add content after a section, before a section, or to replace a section, enter the Section Anchor Link. 6. Select **Row** or **Column** as the element type where you want to add content. 7. Enter the new content. 8. Save the action. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To replace the existing Process Builder processes and Workflow Rules with flows before Process Builder and Workflow Rules reach [end of support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US), see [Quip Actions in Flow Builder](https://help.salesforce.com/s/articleView?id=xcloud.quip_automation_flow.htm&type=5&language=en_US). # Edit Action Link Templates You can edit all fields on an unpublished action link group template and on its associated action link templates. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: all editions except Personal and Starter
User Permissions Needed
To edit action link group templates: Customize Application
To edit action link templates: Customize Application
1. From Setup, enter Action Link Templates in the Quick Find box, then select **Action Link Templates**. 2. To edit an action link group template, click **Edit** next to its name. If the group template isn’t published, edit any field. If it is published, edit the Name field only. 3. To edit an action link template: 1. Click the name of its master action link group template. 2. Click the Action Link Template ID to open the detail page for the action link template. 3. Click **Edit**. If the associated action link group template isn’t published, edit any field. If it’s published, edit any of these fields: - Action URL - HTTP Request Body - HTTP Headers These fields support context variables and binding variables. You can add and delete context variables in any of these fields. You cannot add a new binding variable. You can: - Move a binding variable to another editable field in an action link template. - Use a binding variable more than once in an action link template. - Use a binding variable more than once in any action link templates associated with the same action link group template. - Remove binding variables. #### See Also - [Design Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_design.htm&release=264.0.0&type=5 "Before you create a template, consider which values you want to set in the template and which values you want to set with binding variables when you instantiate action link groups from the template.") - [Create Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_create.htm&release=264.0.0&type=5 "Create action link templates in Setup so that you can instantiate action link groups with common properties from Connect REST API or Apex. You can package templates and distribute them to other Salesforce orgs.") - [Delete Action Link Group Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_delete.htm&release=264.0.0&type=5 "When you delete an action link group template, you delete its associated action link templates and all action link groups that have been instantiated from the templates. Deleted action link groups disappear from any feed elements they've been associated with.") - [Package Action Link Templates](https://help.salesforce.com/s/articleView?id=platform.action_link_group_template_package.htm&release=264.0.0&type=5 "Package action link templates to distribute them to other Salesforce organizations.") - [_Apex Developer Guide_: Working with Action Links](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/connectapi_features_action_links.htm) - [_Apex Developer Guide_: Define an Action Link in a Template and Post with a Feed Element](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/connectapi_examples_define_post_action_link_template.htm) # Edit an Asynchronous Callout Class Definition To edit an External Services asynchronous callback class, a related background operation job can't be running. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
The Apex callback class is editable when: - the job is completed; an async response is received and the callback executes successfully - the job triggers an error when there is an initial response failure - the job triggers an error when the asynchronous response can’t be processed successfully - the job is manually cancelled on the Background Operations page If the background operation job is still running (not yet completed), and hasn't thrown an error, then editing or deleting the respective Apex callback handler class definition triggers an error message and the edits aren't saved. For example: ``` This External Service callback handler class has background operation jobs running: . Retry when there are no other jobs in progress. ``` # Edit an Event Relay and Change Its Status You can edit an event relay to change its status, label, and the error recovery option. ### Required Editions
User Permissions Needed
To edit an event relay: Customize Application
1. Open the Edit window for the event relay either from the event relays page or the event relay detail page. 1. In the Event Relays page, click the dropdown under the Actions column, and select **Edit**. 2. In the Event relay detail page, click **Edit**. 2. In the Edit window, change the label, status, or the error recovery option. # Edit an External Service Edit an external service's named credentials, description, schema, and included operations. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
You can register a new version of an API specification over an existing registration. This update works only if active operations and their associated schema objects _aren’t removed_ in the new specification. Deactivate operations before making incompatible changes to the API specification. When updating a schema that has active operations, non-structural changes, such as updating a description, are allowed. However, structural changes, such as updating an object's properties or parameters, require you to first deactivate the associated operation. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip If the new schema version isn’t compatible, the edit workflow notifies you which operations and schema objects are active and must be deactivated before making incompatible changes. With this information, you can deactivate the necessary operations before saving your updated registration. A component is active based on these rules. - Operation—if the operation was set to active through the registration UI - Object—if the object is referenced directly or indirectly from an active operation - Parameter—if the parameter's parent operation is active - Property—if the property's parent object is active For details about supported and non-supported changes, see [Schema Update Support](https://help.salesforce.com/s/articleView?id=platform.external_services_appendix_update_schema.htm&release=264.0.0&type=5 "You can register an updated schema version that includes supported changes to active and inactive components. This section provides details about whether changes are supported."). 1. From Setup, in the Quick Find box, enter External Services and select **External Services**. 2. Click the arrow in the service’s Actions column, and then select **Edit**. You can modify these service settings. - Named Credential - Description - Service Schema - Operations 3. Optionally update the schema with a new version by submitting a new schema, or by using the inline text editor to make changes. 4. Use the instructions in [Register an External Service](https://help.salesforce.com/s/articleView?id=platform.external_services_register.htm&release=264.0.0&type=5 "Registering an external service takes only a few steps and no code.") to submit an updated schema, validate, and select operations for your edited external service. # Edit an External Service Created by HTTP Callout You can edit an external service's registration details, or use the declarative editor to change the operation's configuration. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
- **[Edit the Schema or Named Credential](https://help.salesforce.com/s/articleView?id=platform.external_services_edit_http_callout_service.htm&release=264.0.0&type=5)** To edit the details of an external service created by HTTP Callout, you can edit the schema directly, change the Description, or change the Named Credential. - **[Edit an Operation Declaratively](https://help.salesforce.com/s/articleView?id=platform.external_services_edit_http_callout_operation.htm&release=264.0.0&type=5)** To edit an external service's operation created by HTTP Callout, you can use the same declarative tools you used to create the HTTP Callout in Flow Builder. # Edit an Operation Declaratively To edit an external service's operation created by HTTP Callout, you can use the same declarative tools you used to create the HTTP Callout in Flow Builder. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
1. From Setup in Lightning Experience, enter External Services in the Quick Find box, and select **External Services**. 2. Click the name of the external service that you want to edit. 3. Locate the operation you want to edit. In the right-most column, pull down the arrow and select **Edit HTTP Callout Action**. 4. To edit your invocable action, configure the declarative settings in the **Edit HTTP Callout** window. For more details about using the declarative editor, see steps five through the end of the section in [Configure an HTTP Callout Action](https://help.salesforce.com/s/articleView?id=platform.flow_http_callout_configure.htm&type=5&language=en_US). 5. Click **Save**. # Edit and Delete Widgets Access the site's widgets in the Widgets view under All Site Content (on the Overview tab). ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To update a widget, hover over it and click ![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png). From the ![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png) menu, you can: - Edit the widget. When you edit a widget, it opens in a new tab. Any updates you make are reflected immediately in the site pages or page templates that reference it. - Update the widget's properties, including the name, description, display icon, and availability. In the Widgets view, you can also edit the name, description, or availability inline by double-clicking the item. - Duplicate, preview, or delete the widget. If a widget is being used on a site page, page template, or another widget, you can't delete it. #### See Also - [Widgets Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_overview.htm&release=264.0.0&type=5 "Widgets let you save time by building custom page elements that you and your team can reuse throughout the site.") - [Create Widgets](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_create.htm&release=264.0.0&type=5 "Widgets let you create custom, reusable page elements by combining existing Site.com page elements, custom code, and CSS.") - [Add a Widget to a Page](https://help.salesforce.com/s/articleView?id=platform.siteforce_widget_addtopage.htm&release=264.0.0&type=5 "Add a widget that enhances your page.") # Edit and Work with Site.com Page Elements The Page Structure pane displays the hierarchy of all elements on the page and is a very useful way of selecting, moving, and reordering elements, particularly for more complicated page designs. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

- To select a page element, either click it on the page, or select it in the Page Structure pane (![Page Structure](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_domtree.png)). This highlights the element on the page and displays the item's selector bar and **Actions** menu (![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)). - To edit a page element, such as a content block, image, or custom code, either: - Double-click the element on the page. - Select the element on the page and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Edit** on its selector bar. - Select or hover over the element in the Page Structure pane and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Edit**. - Click **Edit Content** on the toolbar (for content blocks only). - To move a page element, either: - Select the element on the page and drag it to the correct position, or click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Move** on its selector bar. - Drag the item to your preferred location in the Page Structure pane, or select it and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Move** | **Direction**. You can also drag all page elements other than panels to your preferred location in the Page Structure pane. - To resize a page element, select it and drag the resize handles to the correct size. If the corner resize handles are unavailable, it means the item's Auto Height property is enabled, which adjusts the height depending on its contents. To resize it to a set height, disable the property by either deselecting **Auto Height** in the Properties pane (![Properties](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_properties.png)), or by clicking one of the bottom resize handles and clicking **Disable Auto Height** in the popup message that appears. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip If you disable the Auto Height property on an image, but you want it to retain its aspect ratio—the relationship of height to width—press and hold down the SHIFT key while you drag to resize it. Alternatively, if you're using CSS to style the page element, adjust the style of the class or ID that styles it. - To delete an element, select it and either: - Click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Delete** on the item's selector bar. - Press **DELETE**. - Click ![Cut](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_cut.png) on the toolbar. - In the Page Structure pane, click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Delete**. If a site page or page template is based on another page template: - The content of all editable page elements on a child page or template is linked to the content of the editable elements on its parent page template. When you update the content of an editable page element on the parent template, the changes are pushed down to any child pages or page templates. However, if you modify the content of an editable page element at the child page or template level, you break the link between the elements, and any subsequent changes made to the page element on the parent template don't trickle down to its children. - You can't reposition or resize its page elements. However, if the element's Auto Height property is enabled in the template, the height adjusts to fit the content in the template-based page. To edit the page element, you must edit it in the page template. - You can't delete its page elements. To delete the page element, you must delete it from the page template. - You can't alter the events, properties, or style of an editable page element, such as its color, position, and size. #### See Also - [Site.com Page Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects.htm&release=264.0.0&type=5 "Page elements are the building blocks of your site pages and page templates. Combined, they provide the page's structure and content.") - [Add Site.com Page Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects_add.htm&release=264.0.0&type=5 "Page elements are the building blocks of your site pages and page templates. Panel elements add structure to your pages. You can think of both pages and panels as “containers” for the page elements that you add to them.") - [Add Content Blocks to Pages](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_add.htm&release=264.0.0&type=5 "Content blocks contain the text of your website pages, and can also house images, videos, and hyperlinks. Designers and site administrators can add content blocks to pages when in Design Mode.") - [Lay Out Site.com Pages Using Panels](https://help.salesforce.com/s/articleView?id=platform.siteforce_panel_add.htm&release=264.0.0&type=5 "A panel is a useful layout tool that defines the logical divisions of your page and lets you group page elements together for easy movement and positioning. Think of it as a container for other page elements, including other panels, or as a div that wraps around the content placed within it. Panels are ideal for adding editable areas to page templates.") - [About Editable Page Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_about_editable_elements.htm&release=264.0.0&type=5 "When you mark a page element as Editable on a page template, that page element becomes editable in any child pages or templates derived from the parent template.") # Edit Columns in a Data Table A data table's columns bind to the fields of the object it's connected to. Each column cell acts as a placeholder that is replaced with the field's data when the page loads. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

You can display plain text, formatted text (for dates and numbers), or images in the column cells. You can also add hyperlinks to column cells to allow site visitors to navigate to another page, such as a detailed description, or to refresh the data displayed in the data table based on their selection. See [Data Filtering Examples](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_repeater_examples.htm&release=264.0.0&type=5 "When working with data repeaters, data tables, and data functions, you can filter the data you retrieve in many ways. In this topic, we explore two options— fixed values and URL query strings—to illustrate some common filtering techniques."). To edit a column: 1. Double-click the column cell in the data table. 2. Select the field to display. To [customize how the field's data is displayed](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_merge_fields.htm&release=264.0.0&type=5 "Site.com uses expression language to display data dynamically. Expressions serve as placeholders for data that is replaced with information when the page loads. When working with data-bound page elements or custom widget properties, you can use expressions to customize how data is displayed on the page."), click **Customize**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The object's fields are listed first, followed by the fields of all [parent objects](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_nested_overview.htm&release=264.0.0&type=5 "Standard and custom objects have relationships that define how records in one object relate to records in another. For example, the Accounts object has a one-to-many relationship with the Contacts object—that is, each account can have one or more contacts associated with it. This relationship is also known as a parent-to-child or a master-detail relationship."), which use the format parent\_object\_name.field\_name. 3. Select the display type.
Option Description
Text Lets you display the field's data as plain text.
Formatted text If you're working with dates, times, or currency, lets you choose from several text display formats.
Image

If the field contains an image URL, lets you display the field's data as an image. The URL can be absolute or relative to the site.

You can also select a field to use for the alternative text or enter custom text.

4. To create a hyperlink, select Add a hyperlink. Otherwise, go to step 8. 5. Select the link type.
Option Description
A URL

Lets you link to a Web page by:

  • Choosing a field that you want to reference, such as a field that stores the relative URLs of PDFs you uploaded to your site.
  • Choosing a field that you want to reference and clicking Customize to add an absolute URL or to create a custom link, such as a URL query string.
An item in your site

Lets you link to a page, image, or file in the site by selecting the item type and then selecting the item. (If you can't see the list of items, place your cursor in the URL field and press the DOWN key on your keyboard.)

You can also customize the URL—for example, by creating a URL query string.

An email

Lets you link to an email message by entering the recipient's address, and the message subject and body.

You can use merge fields to access the object's fields. For example, if an object has an Email field, enter the merge field, such as {!email}, in the Email address text box.

When the link is clicked, it opens a new message window in the user's email client and adds the appropriate email address to the To: field.

6. Optionally, enter a tooltip by selecting the required field or clicking **Customize** to add custom text. The tooltip displays as a pop-up when the user hovers over the link. 7. If you're linking to a URL or an item in your site, specify where the item opens. | Option | Description | | --- | --- | | **Popup window** | Loads the item into a window. When you select this option, you can set the title for the popup and control its appearance and size with the options that appear. | | **New window (\_blank)** | Loads the item into a new, unnamed browser window. | | **Same window (\_self)** | Loads the item into the same frame or window as the link. This setting is the default. | | **Topmost window (\_top)** | Loads the item into the topmost parent frameset or window of the frame that contains the link. | | **Parent window (\_parent)** | Loads the item into the parent frameset or window of the frame that contains the link. | 8. Click **Save**. The column is displayed on the page as an expression. To test the output, [preview the page](https://help.salesforce.com/s/articleView?id=platform.siteforce_preview.htm&release=264.0.0&type=5 "Contributors, designers, and site administrators can preview site pages to see how they look when rendered in a browser window. It's always a good idea to make sure your changes are displayed correctly, as this preview is how the pages appear on the live site."). To change the name of a column, select the column cell and update the name in the Column Heading field of the Properties pane. #### See Also - [Dynamically Retrieve Data with Data Tables](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_table.htm&release=264.0.0&type=5 "Use a data table to connect to a standard or custom Salesforce object, retrieve a dataset based on the filter criteria that you specify, and display one or more record as rows in the table.") - [Site.com Data Services Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_overview.htm&release=264.0.0&type=5 "Site.com data services combine many features that let you connect to standard and custom Salesforce objects. Retrieve data from your organization's objects and dynamically display it on your site pages, or alternatively, gather and submit data from your customers. And when you update data in your Salesforce object, the changes are reflected automatically on the live site—no site updates required!") # Edit Content Blocks as a Contributor Content blocks contain the text of your website pages, and can also house images and hyperlinks. As a contributor, you can edit the text in editable content blocks using an inline editor. Because you're editing the text inline, you always know exactly how the finished page looks when it's live. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To edit only content in Site.com sites:

Site.com Contributor User field enabled on the user detail page

AND

Contributor role assigned at the site level

Editable content blocks display a gray border when you hover over the text. You can edit the text in these areas only. When the page is open: 1. Double-click the text area you want to edit. The inline editor appears. 2. Add or edit text, and format it using the [inline editor](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_livemode_toolbar.htm&release=264.0.0&type=5 "As a contributor, you can use the inline editor to edit any editable text areas on the page. Editable areas display a gray border when you hover over the text."). Avoid applying formatting, such as different fonts or highlighting, directly to text whenever possible. Instead, it's best practice to use the paragraph and heading styles to quickly apply consistent formatting throughout the site. Using paragraph and heading styles also ensures that all page text is updated automatically if a site administrator or designer modifies these styles. 3. Add [images](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_livemode_image.htm&release=264.0.0&type=5 "As a contributor, you can quickly add images to any editable text areas on the page using an inline editor.") or [hyperlinks](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_livemode_hyperlink.htm&release=264.0.0&type=5 "As a contributor, you can use the inline editor to quickly add hyperlinks to text or images in any editable text areas on the page.") as required. Your changes are saved automatically when you click anywhere outside the text area. #### See Also - [Preview How Pages Appear on Mobile Devices](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_livemode.htm&release=264.0.0&type=5 "With live mode, site administrators, designers, and contributors can preview how pages and templates appear on devices such as mobile phones and tablets.") - [The Contributor's Page Editing View](https://help.salesforce.com/s/articleView?id=platform.siteforce_editor_page_edit.htm&release=264.0.0&type=5 "Use the Overview tab to import assets, preview the page, and update the appearance of the page.") # Edit Content Blocks in Design Mode Designers and site administrators can edit content blocks on the page. Content blocks contain the text for site pages, and can also house images, videos, and hyperlinks. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

When the page is open in Design Mode: 1. Double-click the content block on the page. 2. Add or edit text and format it using the [content editing toolbar](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_toolbar.htm&release=264.0.0&type=5 "Designers and site administrators can edit content blocks when in Design mode. Content blocks contain the site page's text, along with images, videos, and hyperlinks."). ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip - If you copy and paste text from Microsoft® Office, highlight the text and click ![Remove formatting pasted from Microsoft Office](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_cleanformatting.png) to remove any hidden formatting, which can adversely affect how the text appears on the page. - Avoid applying formatting, such as different fonts or highlighting, directly to text whenever possible. Instead, it’s best practice to use the paragraph and heading styles to quickly apply consistent formatting throughout the site. Using paragraph and heading styles also ensures that all page text is updated automatically if a site administrator or designer modifies these styles. 3. Add [images](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_image.htm&release=264.0.0&type=5 "Designers and site administrators can add images to content blocks when viewing a page in Design Mode."), [videos](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_video.htm&release=264.0.0&type=5 "Designers and site administrators can add YouTube®, Google®, Adobe® Flash®, Windows Media®, and Apple QuickTime® videos to content blocks when viewing a page in Design Mode."), [hyperlinks](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_hyperlink.htm&release=264.0.0&type=5 "When viewing a page in Design Mode, designers and site administrators can create hyperlinks to external Web pages or websites, pages and assets in the site, email messages, and anchors on the page."), or [anchors](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_anchor.htm&release=264.0.0&type=5 "An anchor is an invisible marker that identifies a particular location on a page. If you’re a designer or site administrator, you can add an anchor to the page and then create a hyperlink that jumps to that specific location, which can be useful if a page is particularly long. For example, if your page has several sections, you could add links to each section at the top of the page to aid navigation.") as required. 4. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The content of all editable page elements on a child page or template is linked to the content of the editable elements on its parent page template. When you update the content of an editable page element on the parent template, the changes are pushed down to any child pages or page templates. However, if you modify the content of an editable page element at the child page or template level, you break the link between the elements, and any subsequent changes made to the page element on the parent template don't trickle down to its children. # Edit Dependent Picklists Modify field dependencies in picklists. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To edit field dependencies: Customize Application
1. From the management settings for the picklist’s object, go to Fields. 2. Click **Field Dependencies**. 3. Click **Edit** next to the field dependency relationship you want to change. 4. Use the [field dependency matrix](https://help.salesforce.com/s/articleView?id=platform.fields_using_the_field_dependency_matrix.htm&release=264.0.0&type=5 "The field dependency matrix lets you specify the dependent picklist values that are available when a user selects each controlling field value. The top row of the matrix contains the controlling field values, while the columns list the dependent field values. Use this matrix to include or exclude values. Included values are available in the dependent picklist when a value in the controlling field is selected. Excluded fields aren’t available in the dependent picklist for the selected controlling field value.") to specify the dependent picklist values that are available when a user selects each controlling field value. 5. Optionally, click **Preview** to test your selections. 6. Save your changes. #### See Also - [Find Object Management Settings](https://help.salesforce.com/s/articleView?id=platform.extend_click_find_objectmgmt_parent.htm&release=264.0.0&type=5 "Salesforce lets you personalize your object model with features like custom fields, page layouts, and validation rules. Depending on which experience of Salesforce you have enabled, these customizations are located in different areas of Setup.") # Edit Elements in Auto-Layout Modify existing elements in a flow to update their configuration or behavior. ### Required Editions
View supported editions.
User Permissions Needed
To add and manage flow elements : Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. Edit elements to modify their configuration, change their behavior, or update the data they process. Screen elements open in a separate window for editing, while non-screen elements open their properties panel directly on the canvas. 1. Edit a screen element. 1. To edit a screen element, click it, and then make your changes in the Edit Screen window. 2. To undo changes to the Edit Screen window one at a time, use the undo shortcut on your keyboard. 3. To undo all changes to the screen element, click **Cancel**. 4. To close the Edit Screen window, click **Done** 5. Save your flow. 2. Edit a non-screen element. 1. To edit an element, click it, and then make changes in its properties panel. 2. To hide a properties window on the canvas, click ![Close element panel](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_builder_close_element_panel.png). 3. To undo changes to the properties window one at a time, click ![Undo changes](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_builder_undo_changes.png) or use the undo shortcut on your keyboard. 4. Save your flow. # Edit Existing Custom Libraries Add values or remove values used to mask text or email fields in a masking policy from custom libraries. ### Required Editions
Available in: Lightning Experience
Available in: Professional, Enterprise, Unlimited, and Developer Editions with the Salesforce Data Mask add-on license.
User Permissions Needed
To edit custom libraries:
  • Data Mask And Seed User Permission Set License
  • Data Mask And Seed User Permission Set
In the Name column of the Custom Libraries page, click on a custom library name. The UI opens the custom library page in Edit mode. - **[Manually Add Values to a Custom Library](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_add_to_custom_library.htm&release=264.0.0&type=5)** Use this procedure when you want to individually add a relatively small number of typical or standard values to a custom library. For example, for QA of sandbox masking you only need a library containing 15 female first names. - **[Generate and Add Values to a Custom Library with Einstein](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_add_to_custom_library_with_einstein.htm&release=264.0.0&type=5)** Use this procedure when you want to generate and add to a custom library a large number of values of a specific or unique type. For example, for your QA of sandbox masking you need to generate a custom library containing 100 cities having a population of over 5 million. - **[Delete Values from a Custom Library](https://help.salesforce.com/s/articleView?id=platform.data_mask_and_seed_delete_custom_library_values.htm&release=264.0.0&type=5)** Use this procedure when you want to delete values from a custom library that are no longer necessary for or relevant to your development or QA work. # Edit Language Content on the Page The Site.com Studio language selector lets you switch between languages as you edit content on each page. Contributors, designers, and site administrators can each add language-specific content to a page using the language selector. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To add and manage language options:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To edit language content: Site.com Publisher User or Contributor User field enabled on the user detail page and any role assigned at the site level
When the page is open: 1. Select a language in the Site.com Studio language selector (the Change Site Language dropdown list on the toolbar). 2. Edit the page content. If you're viewing a content block in a specific language: - A warning icon (![Warning triangle](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_yellowtriangle.png)) indicates that the text that has not yet been replaced. - A globe icon (![Blue language globe](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_langglobe.png)) indicates that the content has been replaced. 3. Optionally, update the language-aware properties as required. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Site.com Studio does not validate languages as you enter content. Take care to add the correct content for the selected language. To revert translated content, right-click the content block and select **Revert Translation**. Text reverts to the fallback language, if specified, or else to the default site language. #### See Also - [About Editing Language Content](https://help.salesforce.com/s/articleView?id=platform.siteforce_languages_picker.htm&release=264.0.0&type=5 "The default language is the language in which your site initially displays. By default, it's set to English (US), and it serves as the starting point when you add new languages. So for example, if you build your site and then add French as a site language, the French version initially contains English (US) content until you replace it with French-specific content.") # Edit Metadata Through Visualizations In Builder Central, when you visualize metadata such as a data model, an agent, a flow, a flexipage, or a permission set, you can select an element(s) in the visualization and use the agent to edit its metadata. Based on the context and your requested changes, the agent updates both the metadata and its visualization. It also identifies impacted dependencies across the project and updates related metadata as needed, reducing the effort required to manually trace and update dependencies and helping prevent deployment failures caused by missed dependencies. To edit the metadata: 1. Open Builder Central and open the project that contains the metadata you want to edit. ![Builder Central home page with the Projects list open and the CSS Portal project highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-builder_central-264-0-0-production-enus/b289b805-9f02-4038-93a5-7ae3a6138aac/builder_central/images/builder_central_edit_viz_open_project.png) 2. In the **Explorer** panel, expand the metadata category and select the item you want to open. For example, expand Agents and select CSS Portal Assistant. Its visualization opens on the design canvas, showing its structure. 3. Click **Select to Edit** in the top-right corner of the canvas and you can click elements on the canvas to select them. Click the element you want to change. To select multiple related elements, do one of the following: - Click each additional element to add it to the selection. - Click and drag to draw a selection box around the elements you want to select. Each selected element is outlined, and it appears in an **Edit Element** popup at the bottom of the canvas, showing the current selection count — for example, **Edit Element (2 Selected)**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-builder_central-264-0-0-production-enus/b289b805-9f02-4038-93a5-7ae3a6138aac/images/icon_note.png) Note If you select the wrong element, click the x on its chip in the popup to remove it from the selection. ![Builder Central Design interface showing the CSS Portal Assistant selected in the Explorer and visualized on the canvas, with the Select to Edit button highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-builder_central-264-0-0-production-enus/b289b805-9f02-4038-93a5-7ae3a6138aac/builder_central/images/builder_central_edit_viz_select_to_edit.png) 4. In the **Describe your changes…** box, enter your instruction, or click the microphone icon to speak it. For example, enter Rename the API to Customer Self Service. 5. Click **Send to Agent**. Your instruction and the selected elements appear in the Agentforce chat panel. The Build Agent checks for upstream and downstream dependencies that the change affects and asks for your confirmation. After you confirm, it updates the metadata and reports what changed. ![Builder Central Design interface showing the CSS Portal Assistant selected for editing, with an instruction entered in the Edit Element dialog and the Send to Agent button highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-builder_central-264-0-0-production-enus/b289b805-9f02-4038-93a5-7ae3a6138aac/builder_central/images/builder_central_edit_viz_send_to_agent.png) 6. Review the canvas to confirm the change. For example, the field now shows as required. To refine the result, enter more prompts. 7. Review the updated canvas to confirm the change was applied. For example, the agent card now displays the new name consistently across the card and any connected nodes. You can continue refining the result with additional prompts as needed. #### See Also - [Build an App: The Lifecycle](https://help.salesforce.com/s/articleView?id=platform.builder_central_app_lifecycle.htm&release=264.0.0&type=5 "Every Builder Central build follows the same general flow, whatever you're building. This flow describes the phases in a build from start to finish.") - [Build an App or Agent in Builder Central (Beta)](https://help.salesforce.com/s/articleView?id=platform.builder_central_build_first_app.htm&release=264.0.0&type=5 "Here's the fastest way to see how Builder Central works. Follow these steps to build, preview, and test your first app or agent.") - [Refine and Edit Your App](https://help.salesforce.com/s/articleView?id=platform.builder_central_refine_edit_app.htm&release=264.0.0&type=5 "After the Build Agent creates your app, you can refine it in Builder Central without starting over. Describe the changes you want in the chat, or use visual editing to adjust elements directly on the design canvas.") # Edit Multi-Line Layouts for Opportunity Products Customize the columns that display when users add or edit items in the Products related list of an opportunity detail page. ### Required Editions
Available in: Lightning Experience and Salesforce Classic
Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To edit multi-line layouts for opportunity products: Customize Application
In Salesforce Classic, the Multi-Line Layout columns appear when you click **Edit All** from the Products related list on an opportunity detail page. In Lightning Experience, the Multi-Line Layout columns appear on the Edit All Products window that appears when you click **Edit Products** or **Add Products** | **Next** from the Products related list on an opportunity record page. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Multi-line layout is available only for page layouts on certain objects, such as Opportunity Product, Opportunity Split, Order Product, Contract Line Item, and Sales Agreement Product. If you don’t see the **Edit Multi-Line Layout** link in the page layout editor on an object layout, then multi-line layout isn’t supported for that object. 1. From the object management settings for Opportunity Product, go to **Page Layouts**. 2. Next to the name of an Opportunity Product page layout, click **Edit**. 3. Click **Edit Multi-Line Layout**. 4. Move fields between Available Fields and Selected Fields. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note The Product and Quantity fields are required and can’t be removed from the layout. 5. Click **Save**. #### See Also - [Configure Fields on Multi-Line Layouts for Opportunity Products](https://help.salesforce.com/s/articleView?id=platform.layouts_opp_product_multiline_fields.htm&release=264.0.0&type=5 "Before you can add a field to the Opportunity Product multi-line layout, the field must be visible on the Opportunity Product page layout. You make the field visible via the Product related list on an Opportunity object page layout.") - [The Enhanced Page Layout Editor](https://help.salesforce.com/s/articleView?id=platform.customize_layoutcustomize_pd.htm&release=264.0.0&type=5 "The enhanced page layout editor is a tool for customizing your page layouts in Salesforce, the Self-Service Portal, and the Salesforce Customer Portal. The enhanced page layout editor has all the functionality of the original page layout editor, but has more features and an easier-to-use interface.") - [Page Layouts](https://help.salesforce.com/s/articleView?id=platform.customize_layout.htm&release=264.0.0&type=5 "Page layouts control the layout and organization of buttons, fields, s-controls, Visualforce, custom links, and related lists on object record pages. They also help determine which fields are visible, read only, and required. Use page layouts to customize the content of record pages for your users.") # Edit Multiple Profiles with Profile List Views If enhanced profile list views are enabled for your organization, you can change permissions in up to 200 profiles directly from the list view, without accessing individual profile pages. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To edit multiple profiles from the list view:

Manage Profiles and Permission Sets

AND

Customize Application

Editable cells display a pencil icon (![Editable Field](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/resources-global/_corporate/images/pencil.png)) when you hover over the cell, while non-editable cells display a lock icon (![Uneditable Field](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/resources-global/_corporate/images/lock.png)). In some cases, such as in standard profiles, the pencil icon appears but the setting isn’t actually editable. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_warning.png) Warning Use care when editing profiles with this method. Because profiles affect a user's fundamental access, making mass changes may have a widespread effect on users in your organization. 1. Select or [create](https://help.salesforce.com/s/articleView?id=platform.users_custom_profile_lists.htm&release=264.0.0&type=5 "If enhanced profile list views are enabled for your organization, you can create profile list views to view a set of profiles with the fields that you choose. For example, you can create a list view of all profiles with Modify All Data enabled.") a list view that includes the profiles and permissions you want to edit. 2. To edit multiple profiles, select the checkbox next to each profile you want to edit. If you select profiles on multiple pages, Salesforce remembers which profiles are selected. 3. Double-click the permission you want to edit. For multiple profiles, double-click the permission in any of the selected profiles. 4. In the dialog box that appears, enable or disable the permission. In some cases, changing a permission may also change other permissions. For example, if “Customize Application” and “View Setup and Configuration” are disabled and you enable “Customize Application,” then “View Setup and Configuration” is also enabled. In this case, the dialog box lists the affected permissions. 5. To change multiple profiles, select **All n selected records** (where n is the number of profiles you selected). 6. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note - For standard profiles, inline editing is available only for the “Single Sign-On” and “Affected By Divisions” permissions. - If you edit multiple profiles, only those profiles that support the permission you’re changing will change. For example, if you use inline editing to add “Modify All Data” to multiple profiles, but because of its user license the profile doesn't have “Modify All Data,” the profile won't change. If any errors occur, an error message appears, listing each profile in error and a description of the error. Click the profile name to open the profile detail page. The profiles you've clicked appear in the error window in gray, strike-through text. To view the error console, you must have pop-up blockers disabled for the Salesforce domain. Any changes you make are recorded in the setup audit trail. #### See Also - [Profiles](https://help.salesforce.com/s/articleView?id=platform.admin_userprofiles.htm&release=264.0.0&type=5 "Profiles define default settings for users. When you create users, you assign a profile to each one.") # Edit Object Permissions in Profiles Object permissions specify the type of access that users have to objects. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Contact Manager, Professional, Group, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To view object permissions: View Setup and Configuration
To edit object permissions:

Manage Profiles and Permission Sets

AND

Customize Application

We strongly recommend that you use permission sets and permission set groups instead of profiles to manage your users’ object permissions. Because you can reuse smaller permission set building blocks, you can avoid creating dozens or even hundreds of profiles for each user and job function. For more information, see [Permissions Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_overview.htm&release=264.0.0&type=5 "A permission set is a collection of settings and permissions that give users access to various tools and functions. Permission sets extend users’ functional access without changing their profiles and are the recommended way to manage your users’ permissions.") in Salesforce Help. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note As of Winter ’21 and later, editing standard objects on standard profiles is disabled. 1. From Setup, in the Quick Find box, enter Profiles, and then select **Profiles**. 2. Select a profile. 3. Depending on which user interface you’re using, do one of the following. - In the enhanced profile user interface, in the Find Settings box, enter the name of the object and select it from the list. Click **Edit**, then scroll to the Object Permissions section. - In the original profile user interface, click **Edit**, then scroll to the Standard Object Permissions, Custom Object Permissions, or External Object Permissions section. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note If your org has more than 500 custom objects and you search for object settings in a profile, they don’t load. To see all objects, click **Object Settings**. 4. Specify the object permissions. 5. Click **Save**. In the enhanced profile user interface, if prompted, confirm any additional changes that must be made to keep permissions in alignment from previous changes. You can see which profiles grant access to an object and edit this access for custom profiles in Object Manager. Select an object, and then click **Object Access**. #### See Also - [Object Permissions](https://help.salesforce.com/s/articleView?id=platform.users_profiles_object_perms.htm&release=264.0.0&type=5 "Object permissions specify the base-level access users have to create, read, edit, and delete records for each object.") - [Profiles](https://help.salesforce.com/s/articleView?id=platform.admin_userprofiles.htm&release=264.0.0&type=5 "Profiles define default settings for users. When you create users, you assign a profile to each one.") # Edit Picklists for Record Types and Business Processes Customize the values in record type or business process picklists based on your organization’s unique needs. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Record types are available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
Business processes are available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create or change record types: Customize Application
To create or change business processes: Customize Application
1. Select a record type or business process and click **Edit** next to the picklist field to change its values. 2. Add or remove values as needed. Users can choose from these values when creating or editing records. 3. Optionally, choose a default picklist value. Some picklists require a default value. The default value in a dependent field is ignored. 4. Click **Save**. #### See Also - [_Salesforce Help_: Create Custom Fields](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&type=5&language=en_US) # Edit Quip Document Action Edit content in a document, spreadsheet, or slide. Add or replace content based on a document section. ### Required Editions
Available in: Lightning Experience
View supported editions for Quip.
In Flow Builder, add an Action element to your flow. In the Action field, enter Quip, and select **Edit Quip Document**. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_warning.png) Warning Quip is retiring slides on January 31, 2021. After this date, the Copy Content action in Process Builder and Flow Builder no longer works, and Slides isn’t a valid document type for the Edit Document and Create Document actions. [Tell Me More](https://help.salesforce.com/articleView?id=000355252&language=en_US&mode=1&type=1) ## Set Input Values Use values from earlier in the flow to set the inputs for the action.
Input Parameter Description
Content Location

Location in the document where you want to add content. Valid values are:

  • append–To add content to the end of the document, enter this value.
  • prepend–To add content to the beginning of the document, enter this value.
  • after_section–To add content after a designated section, enter this value. Valid only if Section Anchor Link is specified.
  • before_section–To add content before a designated section, enter this value. Valid only if Section Anchor Link or Section Match Type is specified.
  • replace_section–To replace an existing section with new content, enter this value. Valid only if Section Anchor Link or Section Match Type is specified.
  • after_document_range–To add content to a template after a document range, enter this value. Valid only if Document Range Heading is specified.
  • before_document_range–To add content to a template before a document range, enter this value. Valid only if Document Range Heading is specified.
  • replace_document_range–To replace existing content based on a document range, enter this value. Valid only if Document Range Heading is specified.
Document URL URL of the document that you want to edit. For example: https://salesforce.quip.com/GVnGbtEasAGa
Edit Document Type

Type of document that you want to edit. Valid values are:

  • document–To edit a document, enter this value.
  • spreadsheet–To edit a spreadsheet, enter this value.
Content

Optional. Content added to the document that you want to edit. Valid only if Content Format is set to html. Valid values are:

  • String values
  • @[Salesforce user ID]–To @mention a Salesforce user in the document, enter the Salesforce ID. If the user’s Salesforce email is connected to Quip, the user ID is replaced with a Quip user @mention. If not, the Salesforce ID is replaced with the user’s Salesforce email.
  • @[person1@quip.com]–To @mention a user by email, enter this value.
  • @Everyone–To send a notification to everyone in the document, enter this value.
Content Format

Optional. Format of content added to the document. By default, content format is set to html. Valid values are:

  • html–To format text added to Document Content with html, enter this value.
  • liveapp–To add a live app to your document, enter this value. Only valid if Document Type is set to document.
Disable Extra Lines in Quip Optional. Boolean parameter that prevents Quip from inserting an extra line between paragraphs. The default is false, meaning that by default extra lines are inserted.
Document Range Heading Optional. Heading text that marks the start of the document range.
Element Type

Optional. The type of spreadsheet element to edit. Only valid if Document Type is set to spreadsheet. Valid values are:

  • row–To edit a spreadsheet row, enter this value.
  • column–To edit a spreadsheet column, enter this value.
Image Number

Optional. Image index of an image on a slide. Only valid if Document Type is set to slides. Valid values are:

  • Image integers–Integers represent an image index on a slide. Images are ordered from top to bottom. Images closer to the top of a slide have an image integer of 1. Images closer to the bottom have the biggest integers. If there are multiple images on a slide with the same vertical positions, the image numbers are ordered from left to right. If there are multiple images on a slide with the same horizontal and vertical positions, the image that is behind the other one has an image number of 1. The image in front has an image number of 2.

Quip is retiring slides on January 31, 2021. After this date, the Copy Content action in Process Builder and Flow Builder no longer works, and Slides isn’t a valid document type for the Edit Document and Create Document actions. Tell Me More

Image URL

Optional. The URL of an image in a slide deck. Only valid if Document Type is set to slides.

Quip is retiring slides on January 31, 2021. After this date, the Copy Content action in Process Builder and Flow Builder no longer works, and Slides isn’t a valid document type for the Edit Document and Create Document actions. Tell Me More

Live App Type

Type of live app added to the document. Required if Content Format is set to liveapp. Only documents support live apps. Valid values are:

  • salesforce_record–To add the Salesforce Record live app to the document, enter this value.
  • salesforce_list–To add the Salesforce List live app to the document, enter this value.
Object Type Type of object used by the Salesforce List live app. Required if Live App Type is set to salesforce_list. Only string values are supported. For example: Account, Opportunity, or CustomObject__c.
Record Name Optional. Name of the record added to the document through the Salesforce Record live app. Valid only if the Live App Type is set to salesforce_record. Only string values are supported.
Record Type Optional. Type of object used by the Salesforce Record live app. Valid only if Live App Type is set to salesforce_record. Only string values are supported. For example: Account, Opportunity, or CustomObject__c.
Salesforce List View ID Optional. ID of the Salesforce list view added to the document. Valid only if Live App Type is set to salesforce_list.
Salesforce Org Name Optional. Salesforce org name used in the live app. Valid only if Content Format is set to liveapp. Only string values are supported. For example: Acme.
Salesforce Record ID Optional. ID of the Salesforce record added to the document. Valid only if Live App Type is set to salesforce_record.
Section Anchor Link URL of a section in the document where you want to add or replace content. Valid only if Content Location is set to before_section, after_section, or replace_section. For example: https://[quip_site_url]/GVnGAtEawAGh/Source-Slide#JUJACAuc0ps, where Source-Slide#JUJACAuc0ps is a specific slide in the slide deck.
Section Match Type

Placement of keywords used to identify the section where you want to add or replace content. Valid only if Content Location is set to before_section, after_section, or replace_section, and the Document Type is document. Keywords aren’t case-sensitive and ignore HTML tags. Valid values are:

  • prefix–To find a keyword in a document based on the first part of a word, enter this value. For example, hello is the prefix for helloworld.
  • suffix–To find a keyword in a document based on the end of a word, enter this value. For example, world is the suffix for helloworld.
Section Style

Format of the document section where you want to add or replace content. Required if Section Type is set to textmatch. Valid values are:

  • paragraph–To find a keyword in a paragraph, enter this value.
  • heading–To find a keyword in a heading, enter this value.
  • list–To find a keyword in a list, enter this value.
Section Text Keywords to identify the section where you want to add or replace content. Required if Section Match Type is specified. Only string values are supported.
Section Type

Optional. Determines how a section is edited. Valid values are:

  • anchorlink–To edit a document section based on its anchor link, enter this value. Valid only if Section Anchor Link is set up.
  • textmatch–To edit a document section based on a keyword, enter this value.
Slide Layout

Optional. The slide element to edit. Only valid if Document Type is set to slides. Valid values are:

  • single_column–To edit a slide column, enter this value.
  • image–To edit a slide image, enter this value.

Quip is retiring slides on January 31, 2021. After this date, the Copy Content action in Process Builder and Flow Builder no longer works, and Slides isn’t a valid document type for the Edit Document and Create Document actions. Tell Me More

Slide Number

Optional. The slide index to edit. Only valid if Document Type is set to slides. For example, to edit the first slide of a deck, enter 1.

Quip is retiring slides on January 31, 2021. After this date, the Copy Content action in Process Builder and Flow Builder no longer works, and Slides isn’t a valid document type for the Edit Document and Create Document actions. Tell Me More

## Store Output Values | Output Parameter | Description | | --- | --- | | **Document ID** | ID of the edited document | | **Document Link** | URL of the edited document | | **Document Title** | Title of the edited document | ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example A sales rep wants to update their Account Plan and add a list view of open opportunities related to the account. You can create a flow that uses the Edit Document core action to add the Salesforce List live app to the end of the Account Plan. ![append list live app to document](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_quip_edit_doc_liveapp.png) ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example A service manager wants to update an Account Plan with an account history. The account is up for renewal and the service manager wants to make sure that the sales rep has the necessary background on past cases before contacting the customer. You can create a flow that uses the Edit Document core action to add an account history to an Account Plan and place it before the placeholder lorem. ![Add content before section](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_quip_edit_doc_before_1.png) ![edit doc before lorem](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_quip_edit_doc_before_2.png) #### See Also - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") # Edit Session Settings in Profiles You can control session settings on a user profile basis. If you don’t configure the profile session settings, the org’s session settings apply to users of the profile. When set, the profile settings override the org-wide settings. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
Custom Profiles available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To edit session and password settings in profiles: Manage Profiles and Permission Sets
1. From Setup, in the Quick Find box, enter Profiles, and then select **Profiles**. 2. Select a profile. 3. Depending on which user interface you’re using, take the corresponding step. - In the enhanced profile user interface, click **Session Settings**, and then click **Edit**. - In the original profile user interface, click **Edit**, and then scroll to the Session Settings section. 4. For Session Times Out After, select a timeout value from the dropdown list. Set how many minutes or hours of inactivity elapse before a user’s authentication session times out. At the end of the session, the user must log in again. 5. For Session Security Level Required at Login, select **High Assurance** to require users to verify their identity with multi-factor authentication when they log in. After users authenticate successfully, they’re logged in to Salesforce. It’s possible that users are prompted to verify their identity with multi-factor authentication twice during an OAuth approval flow. The first challenge is on the UI session. The second challenge happens when the access token is bridged into the UI because the High Assurance session security level isn’t transferred to the access token. 6. Enable different login policies for your org’s employees depending on whether they log in to Salesforce or an Experience Cloud site. 1. To give employees less restrictive access to a site as compared to logging in to Salesforce, select **Separate Experience Cloud site and Salesforce login authentication for employees**. Employees are often required to log in to Salesforce from the corporate network or VPN. If you don’t select this option, employees have the same policies for logging in to Salesforce and to their Experience Cloud sites. When you select this option, Salesforce and Experience Cloud sites are treated as separate apps, so you can loosen site login policies for employees. As a result, employees with an active Salesforce session can be required to log in again when accessing a site. And employees who log in to a site can be required to log in to Salesforce. When employees who have these options enabled in their profile navigate to Experience Cloud site workspaces, they’re prompted to log in to the site again. Users who have these options enabled and the required permissions can still create Experience Cloud sites. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note External customers and partners can typically log in to Experience Cloud sites without such restrictive login policies. 2. To ignore IP address restrictions for this user profile, select **Relax login IP restrictions**. 3. To make it easier for employees to access Experience Cloud sites, select **Skip employee device activation during Experience Cloud site login**. With this setting enabled, Salesforce doesn’t prompt employees for identity verification when they access an Experience Cloud site from an unrecognized browser, device, or IP address. This setting doesn’t skip device activation when an employee logs in to your org. 4. To support authorization with OAuth for employees who have the Separate Experience Cloud site and Salesforce login authentication for employees setting enabled on their profile, select **Allow OAuth for employees**. 7. Optionally, for customer and partner profiles, configure these extra settings. 1. To control how long a customer or partner session lasts before the user must log in again, for Session Times Out After, select a timeout value from the dropdown list. The maximum session length depends on the community user license associated with the profile. For most community licenses, such as the Customer Community User and Partner Community licenses, the maximum length is 24 hours. For the External Identity and High Volume Customer Portal licenses, you can extend sessions up to 7 days. 2. To improve security by requiring customers and partners to verify their identity when they log in from an unrecognized browser, device, or IP address, select **Enable device activation for customers**. This option applies to users with community licenses or the External Identity license. 3. To prevent customers or partners from being logged out when they close the browser, select **Keep users logged in when they close the browser**. This setting keeps customer or partner user sessions active until users log out of the site or the session times out. If you don’t select this setting, customers or partners are logged out when they close their browser. This option applies only to the External Identity and High Volume Customer Portal licenses. 8. Save your changes. # Edit Settings for the Salesforce CDN Fine-tune the Salesforce content delivery network’s (CDN) default settings to address the unique needs of your storefront domains. Turn image optimization and the web application firewall (WAF) managed ruleset off or on. You can also protect your domain from malicious activity with up to 10 custom WAF rules based on autonomous system number (ASN), IP address, and country. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, and Unlimited Editions.
Applies to: LWR sites
Unfamiliar with terms like DNS, WAF, and CNAME? Want to review the difference between a URI and a URL? See [Custom Domain Terminology](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_terms.htm&release=264.0.0&type=5 "Review the terms related to setting up a custom domain in Salesforce."). To customize your domain's Salesforce CDN settings, go to Setup. In the Quick Find box, enter Domains, and then select **Domains**. Click **Edit CDN Settings** next to the domain whose settings you want to edit. ## Image Optimization The image optimization feature makes your site pages load faster for guest users, whether they’re viewing your site on their phone, tablet, or desktop computer. For the best site performance, turn on Image Optimization. ## Compress Content and Web Resources Salesforce uses Brotli compression to compress content and web resources for faster page-load times and a smoother delivery. Brotli is a compression algorithm created by Google that can reduce file sizes without sacrificing any significant information. ## Accelerate and Secure HTTP Traffic Quick UDP Internet Connections (QUIC) is a transport layer network protocol designed by Google to improve the performance of web applications over the internet. It's encrypted by default and built on UDP instead of TCP, which makes it more reliable, secure, and faster than traditional internet protocols. ## Web Application Firewall (WAF) A web application firewall protects web applications for potential attacks, such as cross-site scripting (XSS), injection attacks, sensitive data exposure, and security misconfigurations. It analyzes each HTTP or HTTPS request at the application layer. WAF rules use information about each site visitor to determine whether it’s safe to grant the visitor access to your site. With potentially malicious site traffic filtered out by the Salesforce CDN, your site has more bandwidth and better performance to support valid traffic. ## Managed Ruleset Managed Ruleset is a collection of preconfigured WAF rules that address common security vulnerabilities and protect your site from malicious attacks. The Salesforce CDN partner updates the managed ruleset frequently to address new security threats and to reduce false positives. When you turn on Managed Ruleset, your sites are automatically protected with the most up-to-date security. ## Custom Firewall Rules For more control over incoming site traffic, create up to 10 unique WAF rules. To create each rule, write an expression that includes an operator and a value. Then, specify the action for the Salesforce CDN to take when incoming traffic matches that condition—allow the traffic, block the traffic, or run a managed challenge. Custom WAF rules support simple and complex expressions. See [Custom Firewall Rule Expressions on the Salesforce CDN](https://help.salesforce.com/s/articleView?id=platform.community_builder_cdn_custom_firewall_rules.htm&release=264.0.0&type=5 "Custom web application firewall (WAF) rule expressions evaluate incoming traffic based on IP address, autonomous system number (ASN), or country. After you write an expression, choose whether to allow, block, or run a managed challenge on incoming traffic that matches the expression."). - **[Custom Firewall Rule Expressions on the Salesforce CDN](https://help.salesforce.com/s/articleView?id=platform.community_builder_cdn_custom_firewall_rules.htm&release=264.0.0&type=5)** Custom web application firewall (WAF) rule expressions evaluate incoming traffic based on IP address, autonomous system number (ASN), or country. After you write an expression, choose whether to allow, block, or run a managed challenge on incoming traffic that matches the expression. # Edit Sharing Rules You can edit the label, rule name, and sharing access level for all sharing rules. Depending on the rule type, you can also edit additional settings. If you must edit other fields in the sharing rule, like who is granted access, delete the rule and create a new one. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions

See Sharing Rule Considerations for more information on availability.

User Permissions Needed
To create sharing rules: Manage Sharing
1. From Setup, in the Quick Find box, enter Sharing Settings, then select **Sharing Settings**. 2. In the Sharing Rules related list for the object, click **Edit**. 3. Change the label and rule name if desired. 4. If you selected a rule that's based on owner or group membership, skip to the next step. If you selected a criteria-based or guest user sharing rule, specify the criteria that records must match to be included in the sharing rule. The fields available depend on the object selected, and the value must be a literal number or string. To change the AND relationship between filters, click **Add Filter Logic**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note You must create guest user sharing rules to open up record access to guest users. Keep in mind that the guest user sharing rule type grants access to users without login credentials. By creating a guest user sharing rule, you're allowing immediate and unlimited access to all records matching the sharing rule's criteria to anyone. To secure your Salesforce data and give your guest users access to what they need, consider all the use cases and implications of creating this type of sharing rule. Implement security controls that you think are appropriate for the sensitivity of your data. Salesforce is not responsible for any exposure of your data to unauthenticated users based on this change from default settings. 5. Select sharing access settings for users. Some access settings aren’t available for some objects or in some situations.
Access Setting Description
Private

Users can’t view or update records, unless access is granted outside of this sharing rule.

Available only for associated contacts, opportunities, and cases.

Read Only

Users can view, but not update, records.

Guest user sharing rules can only grant Read Only access.

Read/Write Users can view and update records.
Full Access

Users in the selected group, role, or territory can view, edit, transfer, delete, and share the record, just like the record’s owner.

With a Full Access sharing rule, users can also view, edit, delete, and close activities associated with the record if the org-wide sharing setting for activities is Controlled by Parent.

Available for campaigns only.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note Contact Access isn’t available when the organization-wide default for contacts is set to Controlled by Parent. 6. Click **Save**. After updates to sharing rules, sharing rules are recalculated to add or remove access as needed. Depending on the nature of your updates and your org’s setup, these sharing calculations can take awhile to complete. If you experience sharing evaluations or timeouts, consider deferring sharing calculations before making large-scale updates, and then restart and recalculate sharing at a later time. For more information, see [Defer Sharing Calculations](https://help.salesforce.com/s/articleView?id=platform.security_sharing_defer_sharing_calculations.htm&release=264.0.0&type=5 "Performing a large number of configuration changes can lead to very long sharing rule evaluations or timeouts. To avoid these issues, a Salesforce admin can suspend sharing calculations, specifically for sharing rules and group membership, then resume calculations during an organization's maintenance period.") in Salesforce Help. #### See Also - [Create Sharing Rules](https://help.salesforce.com/s/articleView?id=platform.security_sharing_rules_create.htm&release=264.0.0&type=5 "You can create sharing rules based on the record owner or other criteria, and sharing rules that grant record access to unauthenticated guest users. You can also create sharing rules based on group membership for the User object.") - [Sharing Rules](https://help.salesforce.com/s/articleView?id=platform.security_about_sharing_rules.htm&release=264.0.0&type=5 "Use sharing rules to extend sharing access to users in public groups, roles, or territories. Sharing rules give particular users greater access by making automatic exceptions to your org-wide sharing settings.") # Edit Site.com Pages as a Designer or Site Administrator When working with page templates and site pages, you can add content, structure, and style, all in one place. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

Open a page or template on the Overview tab by double-clicking it or hovering over it and clicking **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Edit**. The page opens as a new tab. ![The publisher's page view, numbered 1-4](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_overview.png) - Using the ![Page Elements](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_pageitems.png)Page Elements and ![Page Structure](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_domtree.png)Page Structure panes (1), you can search for and [add page elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects_add.htm&release=264.0.0&type=5 "Page elements are the building blocks of your site pages and page templates. Panel elements add structure to your pages. You can think of both pages and panels as “containers” for the page elements that you add to them.") to a page, and [reorder the page element hierarchy](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects_working_with.htm&release=264.0.0&type=5 "The Page Structure pane displays the hierarchy of all elements on the page and is a very useful way of selecting, moving, and reordering elements, particularly for more complicated page designs."). - Using the ![Properties](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_properties.png)Properties, ![Style](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_css.png)Style, and ![Events](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_events.png)Events panes (2), you can set properties, [add style](https://help.salesforce.com/s/articleView?id=platform.siteforce_style_tab_using.htm&release=264.0.0&type=5 "The Style pane is a visual CSS editor that lets you modify style properties, such as the background color, font size, and border style, as you work with pages and page elements. If you're using CSS classes or IDs to style your pages, you can modify or create style items directly from the Style pane, rather than opening the style sheet."), and [create events](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_create.htm&release=264.0.0&type=5 "Use events to add interactive and animated effects to the pages and page elements of your website.") for a selected page or element. - Using the toolbar (3), you can: - Undo and redo your actions. - Cut, copy, or paste page elements. - [Import assets](https://help.salesforce.com/s/articleView?id=platform.siteforce_assets_import.htm&release=264.0.0&type=5 "Contributors, publishers, and site administrators can import a variety of assets, such as images, HTML pages, and PDFs, to use in a website. You can import assets and files individually, or use a zipped file. When importing entire websites or large numbers of assets, it’s easier to create a zipped file of the content with the desired folder structure. When importing the zipped file for a website, Site.com recreates your website and places everything in the same folder structure."), such as images and files. - [Preview pages to see how they'll appear when live](https://help.salesforce.com/s/articleView?id=platform.siteforce_contentblock_livemode.htm&release=264.0.0&type=5 "With live mode, site administrators, designers, and contributors can preview how pages and templates appear on devices such as mobile phones and tablets.") on different devices. - [Preview your site](https://help.salesforce.com/s/articleView?id=platform.siteforce_preview.htm&release=264.0.0&type=5 "Contributors, designers, and site administrators can preview site pages to see how they look when rendered in a browser window. It's always a good idea to make sure your changes are displayed correctly, as this preview is how the pages appear on the live site.") or generate an anonymous preview link to send to other users. - [Publish your recent changes](https://help.salesforce.com/s/articleView?id=platform.siteforce_publish.htm&release=264.0.0&type=5 "When you publish a site in Site.com, you make its pages and assets live on the Internet so site visitors can access them."). - [Access other page actions](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_working_with.htm&release=264.0.0&type=5 "When working with pages and templates, you can perform common tasks, such as renaming, deleting, or duplicating pages.") (![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_actions.png)), such as renaming or deleting the page. - On the page canvas (4), you can [lay out the page](https://help.salesforce.com/s/articleView?id=platform.siteforce_panel_add.htm&release=264.0.0&type=5 "A panel is a useful layout tool that defines the logical divisions of your page and lets you group page elements together for easy movement and positioning. Think of it as a container for other page elements, including other panels, or as a div that wraps around the content placed within it. Panels are ideal for adding editable areas to page templates.") and [select, edit, and move page elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_objects_working_with.htm&release=264.0.0&type=5 "The Page Structure pane displays the hierarchy of all elements on the page and is a very useful way of selecting, moving, and reordering elements, particularly for more complicated page designs."). ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip - Hide the side panes to increase the canvas size by clicking ![Hide left panes](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_collapse_left.png) and ![Hide right panes](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_collapse_right.png). To reopen a pane, click its icon. - As you edit a page, your changes are saved and the status icon (![Saved](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_saved.png)) on the page tab is updated automatically. - If the site page or page template is based on another template, editable page elements are highlighted with a blue border on the page. - **[Site.com Page Templates Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_master.htm&release=264.0.0&type=5)** Before you begin building the pages of your website, take some time to plan the pages you need, and in particular, which pages have a similar layout. When you've decided on the layout, the quickest method is to use a page template to build the basic layout. - **[Create Site.com Page Templates](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_master_create.htm&release=264.0.0&type=5)** A page template lets you define the layout and functionality of site pages in one location. By adding common page elements to the template and then basing site pages on it, you can achieve a consistent look and feel throughout your site. And because a template-based page inherits the template's elements, you can make site-wide changes from one location. - **[Create Editable Template Areas](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_master_editable.htm&release=264.0.0&type=5)** As the template creator, you specify which elements users can edit in pages based on the template. - **[About Editable Page Elements](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_about_editable_elements.htm&release=264.0.0&type=5)** When you mark a page element as Editable on a page template, that page element becomes editable in any child pages or templates derived from the parent template. - **[Create Site.com Pages](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_create.htm&release=264.0.0&type=5)** As a site administrator or designer, when you create a site page, you can choose to base it on a layout or page template. - **[Identify Which Template a Site.com Page Uses](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_master_identify.htm&release=264.0.0&type=5)** When you edit a template-based page, you can't modify its non-editable page elements. You also can't reposition, resize, or delete editable page elements, or alter the events, properties, or style associated with them. To update these elements or properties, you must edit them in the template the page is based on. - **[Rename, Duplicate, and Convert Pages](https://help.salesforce.com/s/articleView?id=platform.siteforce_page_working_with.htm&release=264.0.0&type=5)** When working with pages and templates, you can perform common tasks, such as renaming, deleting, or duplicating pages. - **[Changing a Page's Doctype Property](https://help.salesforce.com/s/articleView?id=platform.siteforce_html5_doctype.htm&release=264.0.0&type=5)** The Document Type Definition (DTD) or doctype of a page defines which version of HTML it's using. This information is used by some browsers to trigger a standard rendering mode. By default, each page's doctype is set to HTML5, which is the latest version, but you can change it to XHTML 1.0. #### See Also - [Using Site.com Studio as a Site Administrator or Designer](https://help.salesforce.com/s/articleView?id=platform.siteforce_overview_studio.htm&release=264.0.0&type=5 "Site.com Studio provides a dedicated site-building environment for site administrators and designers.") # Edit Slack Message Action Edit a message that was previously sent to Slack. ### Required Editions
View supported editions.
Before using a core action for Slack, enable Salesforce for Slack integrations. In Flow Builder, add an Action element to your flow. In the New Action window, select **Slack**, and then select **Edit Slack Message**. ## Set Input Values The flow sends the connection values that you provide to Slack to retrieve an access token.
Input Parameter Description
Slack App ID for Token

Required. The Slack app that runs the action. Only Slack apps that are installed for the org are available. The input value evaluates to the Slack app ID.

The Slack app must be a member of the conversation that contains the message to edit.

Slack Conversation ID

Required. The ID of the channel or the direct message to send the message to. Alternatively, specify a Slack user ID if the message was sent to the user via the Messages tab of the Slack app. Enter a value or select a resource.

You can obtain the Slack conversation ID by logging in to Slack.com and launching Slack in your browser. The conversation ID is the last parameter in the URL. For example, in this URL, the conversation ID is C56789FGHIJ:

https://app.slack.com/client/T01234ABCDE/C56789FGHIJ

Slack Message

Required. The message to send. Use alongside Post Message action. For best results, include no more than 4,000 characters. Slack truncates messages containing more than 40,000 characters. Enter a value or select a resource. This action only supports editing messages with standard markdown formatting.

Slack supports text formatting with Slack mrkdown. To disable formatting for a plain text message that contains Slack mrkdown, use an escape sequence.

Slack doesn’t support text formatting with HTML and renders rich text messages as plain text.

Slack Message Timestamp

Required. The timestamp of the message sent. Enter a value or select a resource. For example, enter 1234567890.123456.

The numerals before the period character (.) specify a Unix timestamp. The numerals after the period character specify microseconds.

You can store the Slack Message Timestamp output parameter of the Send Slack Message, Edit Slack Message, or Send Message To Launch Flow action as a resource to use later.

Slack Workspace ID for Token

Required. The Slack workspace where the Slack app is installed. Select a value or resource. The input value evaluates to the Slack workspace ID.

You can obtain the Slack workspace ID by logging in to Slack.com and launching Slack in your browser. The workspace ID is the penultimate parameter in the URL. For example, in this URL, the workspace ID is T01234ABCDE:

https://app.slack.com/client/T01234ABCDE/C56789FGHIJ

## Usage To use this action, you must accept the Slack Terms of Service in Setup and install one of the official Salesforce Slack apps in your Slack workspace. #### See Also - [Enable Salesforce for Slack Integrations](https://help.salesforce.com/s/articleView?id=slack.slack_apps_enable.htm&language=en_US) - [_Salesforce Admins_: How Admins Can Connect Salesforce and Slack](https://admin.salesforce.com/blog/2021/how-admins-can-connect-salesforce-and-slack) # Edit the Schema or Named Credential To edit the details of an external service created by HTTP Callout, you can edit the schema directly, change the Description, or change the Named Credential. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
1. From Setup in Lightning Experience, enter External Services in the Quick Find box, and select **External Services**. 2. Click the name of the external service that you want to edit. 3. Click the **Edit** button. 4. Optionally, change the **Description**, or change the Named Credential under **Select a Named Credential**. When you save your changes, the Creation source shown on the external service's detail page remains **HTTP Callout in Flow Builder**, and therefore, can be edited again using the declarative tools. 5. Optionally, use the JSON schema editor to edit the schema. If you change the schema and save it, the **Creation source** changes to **From API specification**. This external service's operation can no longer be edited using declarative tools, but is edited like any other external service. 6. Click **Save & Next**. 7. Select the operation(s) to include in this registration. 8. Click **Next**. 9. Review your edited action, and click **Finish**. # Edit Users To change a user's details—such as username, profile, role, or contact information—edit the user account. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Contact Manager, Essentials, Group, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To edit users: Manage Internal Users
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_tip.png) Tip Instead of completing this task manually, get help from Setup with Agentforce. For example, tell the Setup agent, “Update the department of user Iris Thomas to ‘Sales.’” For more information, see [User Management in Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_user_management.htm&language=en_US). 1. From Setup, in the Quick Find box, enter Users, then select **Users**. 2. Click **Edit** next to a user’s name. 3. Change the settings as needed. If you change the user's license, only licenses with remaining seats are displayed. The user license determines which profiles are available for the user. 4. Click **Save**. #### See Also - [Considerations for Editing Users](https://help.salesforce.com/s/articleView?id=platform.users_edit_considerations.htm&release=264.0.0&type=5 "Be aware of these behaviors when editing users.") - [User Fields](https://help.salesforce.com/s/articleView?id=platform.user_fields.htm&release=264.0.0&type=5 "The fields that comprise the Personal Information and other personal settings pages describe a user.") - [Delete Users](https://help.salesforce.com/s/articleView?id=platform.deactivating_users.htm&release=264.0.0&type=5 "While you can’t completely delete a user, you can deactivate a user’s account so they can’t log in to Salesforce.") - [Reset Passwords for Your Users](https://help.salesforce.com/s/articleView?id=xcloud.resetting_and_expiring_passwords.htm&type=5&language=en_US) - [Unlock Users](https://help.salesforce.com/s/articleView?id=platform.users_unlock.htm&release=264.0.0&type=5 "Users can be locked out of their org when they enter incorrect login credentials too many times. Unlock users to restore their access.") - [Licenses Overview](https://help.salesforce.com/s/articleView?id=platform.users_licenses_overview.htm&release=264.0.0&type=5 "To enable specific Salesforce functionality for your users, you must choose one user license for each user. To enable more functionality, you can assign permission set licenses and feature licenses to your users or purchase usage-based entitlements for your organization.") # Edit Window Open Properties Custom buttons and links can open in different types of windows. If you configure a custom button or link to open in a window, set the window properties. If you leave the window properties blank, the custom button or link uses the default settings of the user’s browser. ### Required Editions
Available in: Salesforce Classic

Available in: All Editions except Database.com

S-controls are available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

User Permissions Needed
To edit custom button or link properties: Customize Application
To edit the window open properties. 1. From the management settings for the object whose button or link you want to edit, go to Buttons, Links, and Actions, and then click the button or link name. Custom buttons aren’t available on the user object. 2. Click **Window Open Properties**. 3. Edit the window properties. | Window Property | Description | | --- | --- | | Width | The window width (in pixels). | | Height | The window height (in pixels). | | Window Position | The location on the screen where you want the window to open. | | Resizeable | Allow users to resize the window. | | Show Address Bar | Show the browser’s address bar that contains the URL. | | Show Scrollbars | Show browser scrollbars in the window. | | Show Toolbars | Show the browser toolbars. Toolbars normally contain navigation buttons like Back, Forward, and Print. | | Show Menu Bar | Show the browser menus. The menus typically contain option like File and Edit. | | Show Status Bar | Show the status bar at the bottom of the browser. | ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Some properties aren’t available depending on the behavior of the custom button or link. For example, if you chose Execute JavaScript, no window open properties are available. 4. Save your changes. #### See Also - [Define Custom Buttons and Links](https://help.salesforce.com/s/articleView?id=platform.defining_custom_links.htm&release=264.0.0&type=5 "Define the action that occurs when a user clicks a custom button or link. Custom buttons and links can streamline actions within Salesforce or integrate Salesforce data with external URLs, applications, or systems.") # Editing a Levels Template for Salesforce When opening an existing Levels seeding template, it opens in view-only mode. You can edit a seeding template if another user isn't editing the template. Master admins can edit locked templates. ## View Mode In view-only mode, you can export the seeding template's levels hierarchy and run seeding jobs. If your template contains multiple roots, you can generate a preview for all the templates roots at once. by clicking the **Regenerate All** link. If this template is being used in a scheduled seeding job, the Scheduled seed icon is displayed above the Template Builder tab's border on the right. In this icon, click ![Scheduled](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_i_schedule.png) to open the Scheduled tab in a new browser tab. In the Template Builder tab, when viewing a seeding template that is locked by another user for editing, the Lock icon appears in the upper right of the UI. Users that are assigned the Master Admin role can use the **Make me editor** link. Master Admin users can access this link by hovering over the. This link then expands and shows a message about the template being locked for edit, followed by the **Make me editor** link. Clicking **Make me editor**: - Refreshes the display of the seeding template to present the latest state of the template - Keeps the template in Edit mode - Assigns the Master Admin user as the template's current editor, who can then modify the template and, also, publish the template ## Edit Mode While a template is in Edit mode, it is locked, and other users can't edit it. ![Edit Levels template](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_edit_levels_template.png) If you are not authorized to view production data, you cannot modify both the **Template Source** field and the **Anonymization Template** field. When running a seeding job using a seeding template that is in Edit mode, the seeded data is according to the template as currently displayed in the editor (other users would run a seeding job using the published version of this seeding template, if a published version exists). If this template is being used in a scheduled seeding job, the Schedule seed icon is displayed above the Template Builder tab's border on the right. In this icon, click ![Scheduled](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_i_schedule.png) to open the Scheduled tab in a new browser tab. Click **Edit** to edit the template. In edit mode, you can make changes without disturbing other users from using the published version of the template to run seeding jobs. Editing changes that you make are not published until you click **Save**. Click ![Discard Changes](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_i_undo_schedule.png) to discard your changes and return to the last saved display. # Editing a Nodes Template for Salesforce When opening an existing Nodes seeding template, it opens in view-only mode. You can edit a seeding template if another user isn't editing the template. Master admins can edit locked templates. ## View Mode In view-only mode, you can export the seeding template's node (object) hierarchy and run seeding jobs. You can also manually initiate the recalculation of the template counts by clicking the **Recalculate** link. If this template is being used in a scheduled seeding job, the Scheduled seeds icon is displayed above the Template Builder tab's border on the right. In this icon, click ![Scheduled](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_i_schedule.png) to open the Scheduled tab in a new browser tab. In the Template Builder tab, when viewing a seeding template that is locked by another user for editing, the Lock icon appears in the upper right of the UI. Users that are assigned the Master Admin role can use the **Make me editor** link. Master Admin users can find this link by hovering over the Lock icon. This expands and shows a message about the template being locked for edit, followed by the **Make me editor** link. Clicking **Make me editor**: - Refreshes the display of the seeding template to present the latest state of the template - Keeps the template in Edit mode - Assigns the Master Admin user as the template's current editor, who can then modify the template and, also, publish the template ## Edit Mode While a template is in Edit mode, it is locked, and other users can't edit it. ![Edit Nodes template](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_edit_nodes_template.png) If you aren't authorized to view production data, you can't modify the **Template Source** field or the **Anonymization Template** field. When running a seeding job using a seeding template that is in Edit mode, the seeded data is according to the template as currently displayed in the editor (other users would run a seeding job using the published version of this seeding template, if a published version exists). If this template is being used in a scheduled seeding job, the Schedule seed icon is displayed above the Template Builder tab's border on the right. In this icon, click ![Scheduled](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_i_schedule.png) to open the Scheduled tab in a new browser tab. Click **Edit** to edit the template. In edit mode, you can make changes without disturbing other users from using the published version of the template to run seeding jobs. Editing changes that you make are not published until you click **Save**. Click ![Discard Changes](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_i_undo_schedule.png) to discard your changes and return to the last saved display. # Editing a Nodes Template for ServiceNow When opening an existing seeding template, it opens in view-only mode. You can edit a seeding template if another user isn't editing the template. Master admins can edit locked templates. ## View Mode In view-only mode, you can export the seeding template's node (table) hierarchy and run seeding jobs. You can also manually initiate the recalculation of the template counts by clicking the **Recalculate** link. If this template is being used in a scheduled seeding job, the Scheduled seeds icon is displayed above the Template Builder tab's border on the right. In this icon, click ![Scheduled](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_i_schedule.png) to open the Scheduled tab in a new browser tab. In the Template Builder tab, when viewing a seeding template that is locked by another user for editing, the Lock icon appears in the upper right of the UI. Users that are assigned the Master Admin role can use the **Make me editor** link. Master Admin users can find this link by hovering over the Lock icon. This expands and shows a message about the template being locked for edit, followed by the **Make me editor** link. Clicking **Make me editor**: - Refreshes the display of the seeding template to present the latest state of the template - Keeps the template in Edit mode - Assigns the Master Admin user as the template's current editor, who can then modify the template and, also, publish the template ## Edit Mode While a template is in Edit mode, it is locked, and other users can't edit it.![Seeding template edit mode for ServiceNow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_sn_template_edit_mode.png) When running a seeding job using a seeding template that is in Edit mode, the seeded data is according to the template as currently displayed in the editor (other users would run a seeding job using the published version of this seeding template, if a published version exists). If this template is being used in a scheduled seeding job, the Schedule seed icon is displayed above the Template Builder tab's border on the right. In this icon, click ![Scheduled](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_i_schedule.png) to open the Scheduled tab in a new browser tab. Click **Edit** to edit the template. In edit mode, you can make changes without disturbing other users from using the published version of the template to run seeding jobs. Editing changes that you make are not published until you click **Save**. Click ![Discard Changes](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/own_from_salesforce/images/seeding_o_i_undo_schedule.png) to discard your changes and return to the last saved display. # Editing and Deleting Categories and Terms In the Categories view on the Overview tab, you can update and delete your site’s categories and the terms they contain. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Content lists and categories are currently available through a pilot program. For information on enabling content lists and categories for your organization, contact Salesforce. - Hover over a category and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** to: - Edit the category’s name and description. - Delete the category. The category and any terms it contains are placed in the Trash Can on the Overview tab. If the category is used by a content list, repeater, data table, or data function, you can’t remove the category until you remove all references to it. - Add a term. - Hover over a term and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** to: - Edit the term’s name. - Delete the term. If you delete an individual term, it’s removed permanently from the site. Only categories are placed in the Trash Can. #### See Also - [Create Categories and Terms](https://help.salesforce.com/s/articleView?id=platform.siteforce_category_create.htm&release=264.0.0&type=5 "Categories let you create groups of terms that you can use to classify the items in your site's content lists.") - [Creating Content Lists](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_create.htm&release=264.0.0&type=5 "Create content lists to store site content such as blogs or articles that you can display dynamically on your site pages.") - [Content Lists and Categories Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_overview.htm&release=264.0.0&type=5 "Content lists let you create and store content items to use in your site, such as press releases, blog posts, and news articles. Categories let you create groups of terms to classify the items in your content lists.") # Editing Input Fields in a Form After you've added a form to the page, you can edit and reorder its fields. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

To reorder fields, drag them to the correct position on the page or in the Page Structure pane. Alternatively, select a field and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Move Up** or **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Move Down**. To hide a field, such as required field that you don't want your site visitors to see, select Hidden Field in the Properties pane. When you hide a field, you can access it from the Page Structure pane. To make a field a required field, which means the user must complete the field before submitting the form, select Required Field in the Properties pane. A red asterisk (\*) is displayed beside the field to indicate that it's required. You can't change the Required Field setting for any fields that are required by the object the form is connected to. To rename a field, replace the name in the Label Name field in the Properties pane. To change the appearance of a field on the page, select a different theme in the Properties pane. If the field is in a form, you can only change the form's theme. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note - You can't move fields from a form onto the page. However, you can delete non-required fields, or hide both required and non-required fields. - You can't drag fields from the page onto a form. #### See Also - [Add Input Fields to Forms or Pages](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_form_fields.htm&release=264.0.0&type=5 "Add additional input fields to an existing form. Each input field binds to a field in the object the form is connected to. Add input fields directly to a page, panel, data repeater, or data table to build your own custom features using") - [Input Field Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_form_field_props.htm&release=264.0.0&type=5 "When adding or editing input fields on a form or page, use the options in the Field Properties section of the Properties pane to control how the selected input field functions.") - [Setting the Default Value of Input Fields](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_fields_value.htm&release=264.0.0&type=5 "You can set the default value of an input field that you add to a form or page. This automatically populates the input field with the value you specify when the page loads.") - [Adding a Form to the Page](https://help.salesforce.com/s/articleView?id=platform.siteforce_data_form.htm&release=264.0.0&type=5 "Use forms to collect data from your site visitors and submit the data to standard or custom Salesforce objects. Create web-to-lead forms, capture customer details, or gather feedback on your products or services.") # Editing Rich Text Area Fields in Records Use rich text area fields to improve the appearance of text, including adding images and hyperlinks. ### Required Editions
Available in: the Salesforce mobile app, Salesforce Classic, and Lightning Experience
Available in: Essentials, Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create or change custom fields: Customize Application
Rich text area fields use the [rich text editor](https://help.salesforce.com/s/articleView?id=platform.fields_using_html_editor.htm&release=264.0.0&type=5 "Use the rich text editor to format text in custom fields with the rich text area type. You can also use the rich text editor in many other features, such as Chatter publisher and groups.") to format content. The rich text editors for custom fields in Lightning Experience and the Salesforce mobile app have a few differences compared to rich text editors in Salesforce Classic. In Lightning Experience and the Salesforce mobile app, rich text editors for custom fields use the open-source Quill library. In Salesforce Classic, rich text editors for custom fields use CKEditor. In Lightning Experience, Salesforce Knowledge and emails also use the CKEditor. | Rich Text Editor Toolbar Button for Custom Fields | In Lightning Experience and the Salesforce mobile app | In Salesforce Classic | | --- | --- | --- | | Color | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | Format Font (Bold, Italic, Underline, Strikethrough) | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | | Format Body (Bulleted List, Numbered List, Indent, and Outdent) | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | | Align Text (Left Align, Center Align, and Right Align) | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | | Insert Link | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | | Insert Image | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | | Remove Formatting | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | Undo and Redo Last Action |   | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note We recommend using the toolbar to format your content. The rich text editor provides only a WYSIWYG interface. You can’t edit HTML tags. When you copy content from a web page or another source and paste it into the editor, unsupported tags are removed. Text enclosed in unsupported tags is preserved as plain text. HTML markup counts against the character limit of the field. For more information, see [Rich Text Area Field Considerations](https://help.salesforce.com/s/articleView?id=platform.fields_rich_text_area_limitations.htm&release=264.0.0&type=5 "Learn considerations for Rich Text Area fields, including where you can use them, their character limits, and how Salesforce returns and handles content."). Note these differences across rich text editors in Lightning Experience and the Salesforce mobile app compared to Salesforce Classic. In Lightning Experience and the Salesforce mobile app: - Spaces are considered non-empty values. - The default font family is the native sans-serif font on your system or device. - The **Insert Link** button enables you to enter a URL with the `_blank` target value by default. This button appears disabled when the record edit page is loaded, and is enabled after you activate the editor with your keyboard or mouse. - The **Insert Image** button enables you to insert an image. You can upload an image using the system file picker only. The image upload can vary across rich text editors in different feature areas. For example, in the Chatter publisher on a record page, you can also select an image that has been previously uploaded to your org. - The **Left Align** button inserts a `

` element around the content. - Use keyboard shortcuts to undo and redo content formatting. In Windows, undo your last action by pressing Ctrl+Z, and reverse your last undo by pressing Ctrl+Y. On Mac OS, use Cmd+Z and Cmd+Y. Alternatively, use the Edit menu in your browser to undo or redo your changes. In Salesforce Classic: - Spaces are considered empty values. - The default font family is Arial, Verdana, Trebuchet MS, sans-serif. - Color formatting is preserved when you switch to Salesforce Classic to edit a custom field that’s been formatted in Lightning Experience or the Salesforce mobile app. This occurs even though the **Color** button isn’t available in Salesforce Classic. - The **Insert Link** button lets you enter a URL with a selection of protocols and target values. When you switch to Lightning Experience or the Salesforce mobile app and edit the custom field, unsupported protocols or target values aren’t preserved. - The **Insert Image** button lets you insert an image by uploading it or reference one that’s hosted on another server. - The **Left Align** button initially inserts a `

` element around the content. If you remove the left alignment formatting and reuse the **Left Align** button on existing text that was previously left-aligned, extra `

` tags are added. ## Implementation Tips - Specify the size of the editor box for a rich text field by configuring the **Number of lines displayed** property in the field’s setup. - When you view or print content, Salesforce preserves the formatted version of the rich text. - Searches of content that contains rich text area fields ignore images and tags. - Deleting a rich text area field moves it to the Deleted Fields section on the custom object or Salesforce Knowledge article types. - You can convert rich text area fields into long text area fields only. Any images get deleted the next time you save the long text area field. After converting, markup is hidden in the long text area field but it isn’t removed from the record, so if you change your mind, you can restore the markup before you save the record. - The text part of a rich text area field counts toward data storage for the object that contains the field. ## Pasting Content from External Sources - You can copy and paste text from external sources, such as Microsoft® Word, but sometimes doing so requires reapplying the formatting. - Text from external sources can include HTML tags and special formatting that you can’t see and don’t need. The tags are counted against the character limit of a field. We recommend pasting text into a plain text editor such as Notepad on Windows or TextEdit on macOS first. Copy the text from the plain text editor, paste it into a rich text field, and apply formatting using the rich text field’s buttons. - JavaScript and CSS are treated as text. For example, if you’re creating an Idea through the API, the JavaScript or CSS code is removed without warning. Salesforce supports a limited number of approved HTML tags. - When a rich text area field is used in a formula, the HTML tags are stripped out before the formula is run. - Rich text area fields can be filtered and summarized in reports, but HTML tags and special formatting aren’t included in report results. For example, `some text` becomes “some text” instead of some text or some _text_. - You can use a rich text area field in a mail merge, but the HTML tags are included as text in the resulting document. Images aren’t merged. ## Images in Rich Text Area Fields - The maximum size of an image that can be uploaded in a rich text area field is 1 MB. You can upload only .gif, .jpg, and .png file types. - To upload many images, use API version 20 or later. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note When you upload images via the API, the `alt` attribute isn’t populated unless you specified it separately. - Images uploaded into a rich text area field are extracted in your org’s weekly export and included in the exported data. - Images in rich text area fields count toward file storage for the object that contains the field. - You can’t add a hyperlink to an image. - You can’t upload an image to a rich text area using the file:// protocol in the **URL** field. Instead, use http:, https:, data:, //, /, or a relative URL. - You can’t resize images in Lightning Experience and the Salesforce mobile app. An exception to this is in Lightning Knowledge when using the Chrome browser. ## Formatting Support The power of the rich text editor is in its WYSIWYG interface. Type in the editor and use the toolbar to format your content as much as you can. When you paste formatted content from another source, you can expect some formatting differences in Lightning Experience and the Salesforce mobile app. Here are formatting considerations to look out for. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_warning.png) Warning If you add a custom rich text area field in Salesforce Classic and edit it in Lightning Experience, you can also expect the formatting differences. Saving your changes in Lightning Experience overwrites the original formatting you had in Salesforce Classic and conversely. Alternatively, you can fix some of the formatting using the toolbar or switch to Salesforce Classic to perform your edits. Colors The **Color** button is available in Lightning Experience only. Color formatting is preserved when you edit the rich text field in Salesforce Classic. The rich text field in Lightning Experience handles color formatting in RGB format, which adds the `` tag around your text. The rich text field in Salesforce Classic handles color formatting in hexadecimal format, which adds the `` tag around your text. The RGB and hexadecimal value depends on the color you choose. Definition lists Formatting for definition lists is preserved, but the styling appears different in Lightning Experience and the Salesforce mobile app. Definition terms are not bold. Fonts Pasting text with a predefined font face, color, or size converts the `font` tag into a `span` tag with the `style` attribute. Headings Heading styles are different in Lightning Experience and Salesforce Classic. Headings in Salesforce Classic are bold and become smaller in size as the header level increases in number. Headings in Lightning Experience have the following font size and weight. - `h1`: 24 px (not bold) - `h2`: 18 px (bold) - `h3`: 18 px (not bold) - `h4`: 14 px (bold) - `h5`: 14 px (not bold) - `h6`: 12 px (bold) Inline styles on `h1`, `h2`, `h3`, `h4`, `h5`, and `h6` tags are not supported and are ignored. Hyperlinks Hyperlinks always open in a new window or tab in Lightning Experience and the Salesforce mobile app using `target=”_blank”`. In Salesforce Classic, you can use different `target` values in hyperlinks in the rich text field. If you edit a rich text field with such a link in Lightning Experience or the app, the `target` value is converted to `_blank`. Inline styles In Salesforce Classic, inline styles are supported on `div`, `span`, `p`, `br`, and `hr` tags. In Lightning Experience and the Salesforce mobile app, inline styles are supported only on `span` tags. Lists Nested ordered lists in rich text fields are numbered differently in Salesforce Classic than they are in Lightning Experience and the Salesforce mobile app. In Salesforce Classic, nested ordered lists are numbered with this pattern: 1, 1, 1. In Lightning Experience and the Salesforce mobile app, nested ordered lists are numbered with this pattern: 1, a, i. In Lightning Experience and the Salesforce mobile app, you can’t nest a bulleted list within a numbered list. The nested bulleted list is converted to a numbered list when you paste it into the editor. You also can’t nest a numbered list within a bulleted list. The nested numbered list is converted to a bulleted list when you paste it into the editor. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_warning.png) Warning Nesting lists of different types is supported in Salesforce Classic only. Don’t edit an existing rich text area field containing a nested list of a different type in Lightning Experience and the Salesforce mobile app. If you do, the nested list is converted to the same type as its parent list, even if you don’t edit the list itself. Nested lists of the same type are supported. However, pasting a nested list into the editor flattens the list into one list in Lightning Experience and the Salesforce mobile app. For example, a nested bulleted list within a bulleted list becomes a single bulleted list when pasted. For nested lists of the same type, use the toolbar to adjust your list formatting. You can also press the Tab key or Shift+Tab to create a nested list item or remove a nested list item. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note In Lightning Experience and the Salesforce mobile app, pasting lists that are copied from Microsoft® Word is not supported and results in list items getting converted into paragraphs. Although they look visually like lists, they are pasted as `p` tags. Paragraphs and line breaks Pressing the Enter key creates a paragraph in Lightning Experience and the Salesforce mobile app. However, pressing the Enter key in Salesforce Classic adds a `
` element inside the current paragraph. The visual difference is minor. Markup for blank lines is `


` in Lightning Experience and the Salesforce mobile app, and `
` in Salesforce Classic. If you create text in a rich text field in Lightning Experience or the Salesforce mobile app and later edit it in Salesforce Classic, markup for the blank lines is converted to `

 

`. Subsequent edits in Lightning Experience or the Salesforce mobile app don’t change blank lines back to their original markup. Paragraphs in rich text editors add extra characters to the text when saved in Lightning Experience and the Salesforce mobile app. Each paragraph contributes seven characters `

` to the character count. For example, if your admin specifies a 5000 character limit, you can enter only 4993 characters in the rich text editor of a custom field in Lightning Experience. Breaking the text into multiple paragraphs further reduces the number of characters you can enter. Blank lines contribute no visible characters, but contribute several characters with their markup. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note RichText field values are returned in HTML format. That means it might contain block elements. Nesting block elements as merge fields in inline elements can cause formatting issues in HTML. If you're using the RichText custom field as a merge field, consider applying HTML customizations, like fonts, to the custom field itself. If you want only text data in the custom field, use TextField instead. Special Characters Since rich text field values are returned in HTML format, some characters are escaped when the custom field value is retrieved through the API. - Ampersand character `&` is returned as `&` - Greater than character `>` is returned as `>` - Less than character `<` is returned as `<` - Quote character `"` is returned as `"` - Single quote character `'` is returned as `'` - Some special characters, such as emoji, are rendered in inconsistent formats. The return value depends on your platform and the receiving end of the API response. Tables In Salesforce Classic, Lightning Experience, and the Salesforce mobile app, pasting tables is supported, but you can edit only the content within the tables. Text-level markup - Addresses with `address` tags cause enclosing list formatting to be removed. - Nested quotes using `q` tags are not supported. - Strikethrough text uses `strike` tags. - Teletype text within `tt` tags is converted to use `code` tags. This table lists supported HTML tags and formatting considerations in Lightning Experience and the Salesforce mobile app. When you edit a rich text field or paste text with unsupported tags in Lightning Experience and the Salesforce mobile app, those tags are removed. Text that was enclosed in unsupported tags is preserved as plain text. | HTML Tags Supported in Salesforce Classic | Supported in Custom Fields in Lightning Experience and the Salesforce Mobile App? | Comments for Lightning Experience and the Salesforce Mobile App | | --- | --- | --- | | `a` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | The `target` attribute is always set to `_blank`. This tag is removed if `href` has no value. | | `abbr` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `acronym` |   | This tag is converted into an `abbr` tag. | | `address` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | When text with this tag is nested in a list and pasted in the editor, the list tags,`ol`, `li`, and `ul`, are removed. Some tags before the `address` tag get nested in `address`. | | `b` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `bdo` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `big` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `blockquote` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Consecutive block quotes are merged. | | `br` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Line breaks are nested in `p` tags. | | `caption` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `cite` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `code` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `col` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `colgroup` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `dd` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `del` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `dfn` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `div` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `dl` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `dt` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Definition terms are not bold. | | `em` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `font` |   | Pasting text with a predefined font face, color, or size converts the `font` tag into a `span` tag with the `style` attribute. | | `h1` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Inline styles on headings are not supported. | | `h2` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Inline styles on headings are not supported. | | `h3` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Inline styles on headings are not supported. | | `h4` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Inline styles on headings are not supported. | | `h5` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Inline styles on headings are not supported. | | `h6` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Inline styles on headings are not supported. | | `hr` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `i` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `img` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `ins` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `kbd` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `li` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Pasting a nested list of the same type flattens the list into one list, for example, a nested bulleted list within a bulleted list. Use the toolbar to adjust your list formatting. | | `ol` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Nesting an ordered list (numbered) in an unordered list (bulleted) converts the ordered list into an unordered list. | | `p` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Pressing Enter creates a new `p`. | | `pre` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `q` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Nested quotes are not supported. | | `s` |   | This tag is converted into a `strike` tag. | | `samp` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `small` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `span` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | This tag is nested in a `p` tag, which adds extra padding around the text. | | `strike` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `strong` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `sub` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Nested `sub` tags are merged. | | `sup` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Nested `sup` tags are merged. | | `table` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `tbody` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `td` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `tfoot` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `th` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `thead` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `tr` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `tt` |   | This tag is converted into a `code` tag. | | `u` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | | `ul` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) | Nesting an unordered list (bulleted) in an ordered list (numbered) converts the unordered list into an ordered list. | | `var` | ![Checkmark denoting support](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/resources-global/_corporate/images/checkmark.png) |   | #### See Also - [Create a Custom Field](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&release=264.0.0&type=5 "Capture your unique business data by storing it in custom fields. When you create a custom field, you configure where you want it to appear and optionally control security at the field level.") - [Rich Text Fields in Knowledge Articles](https://help.salesforce.com/s/articleView?id=service.knowledge_rich_text_considerations.htm&type=5&language=en_US) # Editing, Deleting, and Duplicating Content List Records Each content item in a content list is stored as a record that you can edit, delete, and duplicate. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Content lists and categories are currently available through a pilot program. For information on enabling content lists and categories for your organization, contact Salesforce. When the content list is [open](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_manage.htm&release=264.0.0&type=5 "In the Content Lists view on the Overview tab, you can manage your site's content lists."), hover over a record and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** to: - Edit the record. Alternatively, double-click the record. - Delete the record. - Duplicate the record. To delete multiple records, select the checkbox beside each record that you want to remove, select Delete in the Bulk Actions drop-down list and click **Apply**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you delete a record, it's deleted permanently from the site. However, if you delete an entire content list, the content list and its records are placed in the Trash Can on the Overview tab. #### See Also - [Understanding the Content List's Editing View](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_edit.htm&release=264.0.0&type=5 "When editing a content list, you can add and edit fields, and create and manage records all in one place.") - [Add Records to a Content List](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_add_records.htm&release=264.0.0&type=5 "After you've created a content list and added fields to it, you're ready to add content items.") - [Creating Content Lists](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_create.htm&release=264.0.0&type=5 "Create content lists to store site content such as blogs or articles that you can display dynamically on your site pages.") # Editing, Deleting, and Duplicating Content Lists In the Content Lists view on the Overview tab, you can manage your site's content lists. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Content lists and categories are currently available through a pilot program. For information on enabling content lists and categories for your organization, contact Salesforce. Hover over a content list and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** to: - Edit the content list's records. - Edit the content list's fields. - Change the name or description properties. - Duplicate the content list. - Delete the content list. The content list and any records it contains are placed in the Trash Can on the Overview tab. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_warning.png) Warning If you delete a content list that's being used by a repeater, data table, or data function, the data-bound page element will no longer work. #### See Also - [Creating Content Lists](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_create.htm&release=264.0.0&type=5 "Create content lists to store site content such as blogs or articles that you can display dynamically on your site pages.") - [Understanding the Content List's Editing View](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_edit.htm&release=264.0.0&type=5 "When editing a content list, you can add and edit fields, and create and manage records all in one place.") - [Content Lists and Categories Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_content_overview.htm&release=264.0.0&type=5 "Content lists let you create and store content items to use in your site, such as press releases, blog posts, and news articles. Categories let you create groups of terms to classify the items in your content lists.") # Editing, Disabling, and Deleting IP Restrictions in Site.com After you create an IP restriction for a Site.com site, you can edit the address range, briefly disable the IP restriction (say, to allow temporary access to a page), or delete the restriction entirely. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To add and edit IP restrictions in Site.com:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator role assigned at the site level

To view all the IP restrictions on a site, open the IP Restrictions view under Site Configuration (on the Overview tab). Alternatively, to view the IP restriction on a single item, hover over it in the All Site Content view and click **![Actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/siteforce_icon_actions.png)** | **Edit IP Restrictions**. When either the IP Restrictions section or the IP restrictions dialog box is open, you can: - Edit the range of IP addresses. In the IP Restrictions view, double-click the IP address to edit the values inline. - Disable an IP restriction by deactivating it. You can reactivate the restriction at any time. If you deactivate an IP restriction on an item that has several restrictions, the item's other restrictions are also deactivated. - Delete an IP restriction. This removes the restriction entirely and allows all site visitors to access the item. After you update the site's IP restrictions, [publish the site](https://help.salesforce.com/s/articleView?id=platform.siteforce_publish.htm&release=264.0.0&type=5 "When you publish a site in Site.com, you make its pages and assets live on the Internet so site visitors can access them.") to enable your changes. #### See Also - [Site.comIP Restrictions Overview](https://help.salesforce.com/s/articleView?id=platform.siteforce_ip_overview.htm&release=264.0.0&type=5 "Every computer has a unique IP address that it uses to identify itself. Using IP restrictions, you can define a range of permitted IP addresses for the pages, folders, and assets in your site to control visitors' access.") - [Add IP Restrictions in Site.com](https://help.salesforce.com/s/articleView?id=platform.siteforce_ip_set.htm&release=264.0.0&type=5 "Control site visitors' access to the pages, page templates, folders, and assets in your site by setting the range of permitted IP addresses.") # Einstein Decision Marketing Flow Element Determine a user’s level of email engagement by using Einstein Engagement Frequency or Einstein Engagement Scoring. You can also route users through the flow based on that engagement level. This element performs the equivalent of an if-then statement. ### Required Editions
Available in: Lightning Experience
This feature is available in Enterprise and Unlimited Editions with Marketing Cloud Growth or Advanced Edition.
Available in: All Editions supported by Data 360. See Data 360 edition availability.
The data graph associated with the flow must match the data graph select in Setup and meet these requirements at a minimum. The data graph can include other objects and attributes. - The primary DMO of the data graph is Unified Individual. - The Unified Individual DMO in the data graph includes the Individual Identity Link DMO as a related object. - The Individual Identity Link DMO in the data graph includes the Individual DMO as a related object. - The Individual DMO in the data graph includes the Contact Point Email DMO as a related object. - If you’re using the Einstein Engagement Scoring model, the Contact Point Email DMO in the data graph must include the Einstein Engagement Score DMO as a related object. In the Einstein Engagement Score DMO, you must select the attributes that correspond to the engagement metrics that you use in Flow Builder, for example, Email Click Likelihood, Email Open Likelihood, and Email Subscribe Likelihood. - If you’re using the Einstein Engagement Frequency model, the Contact Point Email DMO in the data graph must include the Einstein Engagement Frequency DMO as a related object. In the Einstein Engagement Score DMO, you must select the Email Engagement Classification attribute. ![Data Graph showing required Data Model Objects with Email Engagement Frequency selected](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_ref_element_mktg_einstein_decision_data_graph.png) ## Usage The Einstein Decision action element is available in automation event-triggered flows, broadcast flows, on-demand flows, and segment-triggered flows. ## Set Input Values
Input Parameter Description
Label The label for this element on the canvas.
API Name

The requirement for uniqueness applies only to elements within the current flow. Two elements can have the same API name, provided they're used in different flows.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Description Description of this element.
**Einstein Decision Element Configuration** ![The Einstein Decision element with a label of Campaign Email.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_ref_element_mktg_einstein_decision_configuration.png) ## Select Decision Model Select which engagement model the flow uses to determine the flow’s path. - Scoring: Einstein Engagement Scoring uses customer data and machine learning to assign scores for each contact's likelihood to engage with emails or to interact with push notifications. To use Einstein Engagement Scoring, turn it on in your org and make sure that the Einstein Engagement Score data model object (DMO) is included in the data graph associated with the flow. - Frequency: Einstein Engagement Frequency evaluates users and determines the optimal number of email messages to send. To use Einstein Engagement Frequency, turn it on in your org and make sure that the Einstein Engagement Frequency DMO is included in the data graph associated with the flow. ## Scoring Configuration If you select Einstein Engagement Scoring as the engagement model, select the metric that the flow uses to determine each user’s path. - Open Likelihood: Select paths based on how likely the customer is to open a message. - Click Likelihood: Select paths based on how likely the customer is to click a link in a message. - Unsubscribe Likelihood: Select paths based on how likely the customer is to unsubscribe from your list. Then, add up to four paths. You must add at least one path. - Most likely: The user has the highest likelihood of engaging. For example, the user has the highest likelihood of clicking a link in an email. - More likely: The user has an above-average likelihood of engaging. - Less likely: The user has a below average likelihood of engaging. - Least likely: The user has the least likelihood of engaging. ## Frequency Configuration If you select Einstein Engagement Frequency as the engagement model, you can add up to four paths. You must add at least one path. - Oversaturated: The user has received too many messages. - Almost Saturated: The user has received nearly too many messages. - On Target: The user has received the right number of messages. - Overlooked: The user has received too few messages. # Einstein Discovery Action Get predictive and prescriptive intelligence directly in your flows with Einstein Discovery-powered models. Select the row or fields to use for your predictions and let Einstein Discovery generate predictions, suggested ways to improve predicted outcomes, and other details. ### Required Editions
Available in: Lightning Experience
View supported editions.
## Set Input Values ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note To view Einstein Discovery predictions, improvements, and other details, users need the **View Einstein Discovery Recommendations** system permission. To learn more, see [Assign Einstein Discovery Permission Sets to Users](https://help.salesforce.com/s/articleView?id=analytics.bi_edd_setup_assign_permsets.htm&language=en_US) . Use values from an Einstein Discovery model to set the inputs for the action. | Field | Description | | --- | --- | | **Action** | Search for the deployed models to which you have access. | | **Label** | Descriptive label for the action. | | **API Name** | API name for the action. | | **Description** | Description for the action. | | What to Store |   | | **Predictions** | Enable output from a predictive model to be stored in a flow resource. | | **Top Predictors** | Enable top predictors to be stored in a flow resource. | | **Top Improvements** | Enable suggested actions to be stored in a flow resource. Applies only to numeric and binary classification models. | | **Select Object Record ID Field** | Generate predictions based on a Salesforce object record. | | **Map Fields** | Generate predictions using flow resources. | | **Record ID Field** | ID of the record to use for the prediction. | | **Model Variable** | Map the prediction model variables to flow resources. | | **Advanced** | Optionally, for predictions associated with multiclass classification models, expand Advanced, select **Manually assign variables**, and selectively store output values (class probabilities, the prediction, and top predictors). | #### See Also - [About Models](https://help.salesforce.com/s/articleView?id=analytics.bi_edd_model_about.htm&language=en_US) - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") # Einstein Next Best Action Component Einstein Next Best Action uses strategies that apply your org’s business rules to display context-sensitive suggested offers and actions on your Lightning record pages. ### Required Editions
View supported editions for Next Best Action.
User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
To run a recommendation strategy on a Lightning record page:

Run Flows

OR

Flow User field enabled on the user detail page

OR

For Experience Cloud, the FlowSites perm provides org-wide access. To restrict access to users by profile or permission set, add a component visibility filter to the Suggested Actions component.

- Create a recommendation strategy in Flow Builder. - Drag the Einstein Next Best Action component onto your record page. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note In Experience Builder, the component is called Suggested Actions. - In the property editor, select the strategy you want to display (1). Enter the maximum number of recommendations to display (2) and choose where recommendations open when accepted (3). ![Einstein Next Best Action component properties](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/next_best_action/einstein_next_best_action_header_properties.png)
Component Description
Title Displays the title for the component on the Record page.
Hide Einstein Header Hides the Einstein Recommendations graphical header.
Strategy Displays all available strategies created in Flow Builder.
Maximum Recommendations Displayed Displays up to four recommendations.
Hide Empty Component Displays the component only when there are recommendations available initially.
Launch Recommended Action In Specifies whether recommendations open in a display window or a new browser window.
Show Image Shows images associated with each displayed recommendation. If there isn’t an image, a placeholder displays.
Show Description

Displays the recommendation descriptions.

To see the full text of longer messages, adjust the browser's zoom percentage.

Show Reject Option Displays the reject option.
Set Component Visibility Allows Dynamic Lightning Pages by adding filter conditions and logic to the component properties in the Lightning App Builder.
Here’s how a strategy looks with the Einstein header and no images in the Service console: ![Screenshot of a record page with Einstein recommendations.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/next_best_action/einstein_next_best_action_console.png) # Einstein Next Best Action Entitlements Einstein Next Best Action has usage-based entitlements. All orgs receive a free monthly allowance of Next Best Action requests. If your usage exceeds your allowance of free monthly requests or any entitlements that you purchase, Salesforce contacts you to discuss additions to your contract. To track your usage, from Setup, navigate to **Company Information**. ### Required Editions
View supported editions for Next Best Action.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Next Best Action entitlement usage is based on a rolling 30-day period, beginning when the org is created. Entitlement usage listed on the Company Information page in Setup is based on the calendar month's usage, not the rolling 30-day usage. Einstein Next Best Action is automatically enabled for the editions listed in the Required Editions table. | How To Get It | What’s Included | What’s Counted | Availability | Permission | | --- | --- | --- | --- | --- | | Free org-wide requests | All orgs receive 5,000 Next Best Action strategy requests per month at no charge. | All Next Best Action and Einstein Recommendation Builder requests, including tests in Strategy Builder, display to customers, and repeat displays triggered by events. | Included in **Essentials**, **Professional**, **Enterprise**, **Performance**, and **Unlimited** Editions | None | | Einstein Next Best Action Additional Requests SKU | Provides 10,000 additional Next Best Action requests each month on an org-wide basis. (Add-on) | All Next Best Action requests, including tests in Strategy Builder, display to customers, and repeat displays triggered by events. | For purchase in **Essentials**, **Professional**, **Enterprise**, **Performance**, and **Unlimited** Editions | None | | Service Einstein SKU | Provides unlimited Next Best Action requests for a single user. | Requests made by users with this permission aren’t counted against the monthly entitlement. | For purchase in **Enterprise**, **Performance**, and **Unlimited** Editions | Unlimited Next Best Action Strategy Executions | | Lightning Platform Plus | Provides unlimited Next Best Action requests for a single user. | Requests made by users with this permission aren’t counted against the monthly entitlement. | For purchase in **Enterprise**, **Performance**, and **Unlimited** Editions | Unlimited Next Best Action Strategy Executions | ## Next Best Action Request A _request_ is a call to the Next Best Action engine that causes a strategy to run and return recommendations. ### Required Editions
View supported editions for Next Best Action.
Each time a page with an Einstein Next Best Action component is loaded or refreshed in a browser, Salesforce generates a new request. For example, when a case status changes from New to In Progress, the data change on the page triggers a refresh. This action also applies to the Actions & Recommendations and Suggested Actions components. Requests are also made when: - A field is updated on a record detail page that includes the Next Best Action component. - A user enters data in the Subject or Description field of a site contact support page that includes the Next Best Action component. Another way to make a request is to call a Next Best Action REST API resource from your own web app. You can also call Next Best Action REST API resources from an iOS or an Android app. The app can make requests in response to a custom UI and return recommendations. Paying customers can see the number of requests their org has made by navigating from Setup to **Company Information**, **Usage-based Entitlements**, **Maximum Next Best Action Requests available**. #### See Also - [Display Recommendations](https://help.salesforce.com/s/articleView?id=platform.nba_admin_using_strategies.htm&release=264.0.0&type=5 "After creating a strategy, choose a page to run your strategy and display your recommendations. You can use a Lightning record page, an app’s home page, an Experience Cloud site page, a Visualforce page, or an external site, depending on where you want recommendations to appear.") - [Einstein Next Best Action Entitlements](https://help.salesforce.com/s/articleView?id=platform.nba_perms_and_entitlements.htm&release=264.0.0&type=5 "Einstein Next Best Action has usage-based entitlements. All orgs receive a free monthly allowance of Next Best Action requests. If your usage exceeds your allowance of free monthly requests or any entitlements that you purchase, Salesforce contacts you to discuss additions to your contract. To track your usage, from Setup, navigate to Company Information.") # Einstein Next Best Action Examples These examples walk you through the process of creating Einstein Next Best Action components. ### Required Editions
View supported editions for Next Best Action.
- **[Offer a Gift Basket to Each Account](https://help.salesforce.com/s/articleView?id=platform.nba_examples_gift_basket.htm&release=264.0.0&type=5)** Use a Next Best Action component on the Lightning Account record page to offer a gift basket to each of your accounts. When a customer accepts the offer, a form opens to collect the recipient’s name and shipping address. After the form is submitted, a request email is sent to the shipping department. - **[Use Customer Satisfaction to Drive Recommendations](https://help.salesforce.com/s/articleView?id=platform.nba_examples_csat.htm&release=264.0.0&type=5)** Use Einstein Next Best Action to tailor recommendations based on customer satisfaction scores. For example, offer a service contract discount to customers with low satisfaction or a new product preview to those with high satisfaction. Drive retention and upsell with targeted offers. # Einstein Next Best Actions Considerations Keep these considerations in mind when working with strategies and recommendations. ### Required Editions
View supported editions for Next Best Action.
Einstein Next Best Action relies on flows, recommendations, strategies, and components, and has standard objects for reporting. ## Flows - Flow requirements: All Recommendation objects must reference a flow. Without any flows, you can't show a recommendation. - Active flow requirements: Strategies only load recommendations with active flows. - REST API execution context: When you start a flow by using REST API, it runs in the context of the authenticated user. The running user's profile and permission sets determine the object permissions and field-level access of the flow. Create a profile and permission sets for users who run the flow. ## Recommendations - Custom category fields: Consider adding a custom category field to the recommendation object and layout. A category field gives you more control when loading, sorting, and filtering recommendations, and more options when creating flows. - Recommendation labels: Create names, descriptions, acceptance labels, and rejection labels that are appropriate for your intended audience. - Duplicate names: Reusing a recommendation name creates a recommendation instead of overwriting the existing one. Duplicated names can cause strategies to show duplicate recommendations to customers. - Flow status visibility: All flows, both inactive and active, display in the Action dropdown list. After you save your recommendation, you can see if the flow is active. - Inactive flow references: You can create a recommendation that references an inactive flow, but no strategy loads it until you activate the flow. ## Strategies - Recommendation requirements: All strategies require at least one recommendation. - Loading recommendations: In Flow Builder, you can load and filter the records of a Recommendation object, or load and filter the records of any object and convert them into recommendations at the end of the strategy by using the Recommendation Assignment element. - Limit Repetitions element: Use the Limit Repetitions element in Flow Builder to hide a recommendation from all users after they respond more than a defined number of times within a defined number of days. For limit repetitions to work, recommendations must have a unique record ID. - Subflow support: Recommendation Strategy flows don't support calling subflows. ## Tracking and Reporting Reactions - Custom report types: When you create strategies in Flow Builder, create custom report types by using the Recommendation Strategy Metrics and Recommendation Responses primary objects. - Unique record ID requirement: When you create reports from the Recommendation Reactions primary object, recommendations must have a unique record ID to show the recommendation source name and ID correctly for limit reoffers. ``` Rights of ALBERT EINSTEIN are used with permission of The Hebrew University of Jerusalem. Represented exclusively by Greenlight. ``` #### See Also - [Suggest Options with Recommendation Strategies](https://help.salesforce.com/s/articleView?id=platform.einstein_next_best_action.htm&release=264.0.0&type=5 "Use Einstein Next Best Action to deliver tailored recommendations at the right moment. Define strategies that apply your business logic to surface a few high-value offers such as repairs, discounts, or add-on services. Present the final recommendations in your Automation Lightning app or Experience Builder site.") - [Write a Strategy Builder Expression](https://help.salesforce.com/s/articleView?id=platform.nba_strategy_expressions.htm&release=264.0.0&type=5 "Create unique expressions using logic from the Salesforce expression builder to filter recommendations, select or deselect branches, and determine which recommendations are available for consideration in a strategy.") - [_Apex Reference Guide_: NextBestAction Class](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_ConnectAPI_NextBestAction_static_methods.htm#apex_ConnectAPI_NextBestAction_static_methods) # Einstein Prediction Builder Harnessing the power of artificial intelligence (AI), let Einstein predict almost any field in Salesforce. Then, use the predictions to power workflow, focus efforts, and work smarter. No models. No algorithms. And, best of all, no code. Point. Click. Predict. ### Required Editions
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important We provide Einstein Prediction Builder to selected customers through a pilot program that requires agreement to specific terms and conditions. If you’re not in this program and you want more information about joining, contact Salesforce. Einstein Prediction Builder is subject to change and isn’t generally available unless or until Salesforce announces its general availability. Make your purchase decisions only based on of generally available products and features. With Einstein Prediction Builder, we’ll guide you every step of the way. From the Einstein Prediction Builder page in Setup, we’ll take you through a few simple steps where you’ll: 1. Create a custom number field to store Einstein’s predictions 2. Tell Einstein what to predict. 3. Tell Einstein which data to analyze in order to make a prediction. 4. Tell Einstein to save your prediction to the custom number field that you created. 5. Review your settings and tell Einstein to build your prediction. Within 24 hours, Einstein’s predictions start appearing in the custom field that you created. Then, you can add the field to page layouts or use it to customize workflow. Or just bask in the glow of knowing the future! That’s it! Make as many predictions as you’d like. Today. # Einstein Prediction Builder Examples With Einstein Prediction Builder, you can predict the expected value for a number field and the likelihood of Yes for a formula field with “Yes,” “No,” and null options. ### Required Editions
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_important.png) Important We provide Einstein Prediction Builder to selected customers through a pilot program that requires agreement to specific terms and conditions. If you’re not in this program and you want more information about joining, contact Salesforce. Einstein Prediction Builder is subject to change and isn’t generally available unless or until Salesforce announces its general availability. Make your purchase decisions only based on generally available products and features. Here’s just a few of things you could predict with Einstein Prediction Builder: - The number of days late a customer will pay their invoice - The revenue from a deal - The salary for a job candidate - The likelihood that a student who applied to your school will matriculate - The likelihood that an invoice will be more than seven days late - The likelihood that a case will be high priority #### See Also - [Einstein Prediction Builder](https://help.salesforce.com/s/articleView?id=platform.einstein_prediction_builder.htm&release=264.0.0&type=5 "Harnessing the power of artificial intelligence (AI), let Einstein predict almost any field in Salesforce. Then, use the predictions to power workflow, focus efforts, and work smarter. No models. No algorithms. And, best of all, no code. Point. Click. Predict.") # Einstein RAG Flow Core Actions Improve large language model (LLM) responses in flows with actions related to Einstein retrieval augmented generation (RAG). ### Required Editions
Available in: Lightning Experience
View supported editions.
- **[Transform Query for Email Action](https://help.salesforce.com/s/articleView?id=platform.automate_flow_ref_elements_actions_rag_transformqueryforemail.htm&release=264.0.0&type=5)** This action generates a natural language query for retrieval based on the email details, language, and additional context. This action is available in flows running API version 62.0 and later. - **[Transform Query for Conversation Action](https://help.salesforce.com/s/articleView?id=platform.automate_flow_ref_elements_actions_rag_transformqueryforconversation.htm&release=264.0.0&type=5)** This action generates a natural language query for retrieval based on the conversation text, language, and additional context. - **[Transform Query for Case Action](https://help.salesforce.com/s/articleView?id=platform.automate_flow_ref_elements_actions_rag_transformqueryforcase.htm&release=264.0.0&type=5)** This action generates a natural language query for retrieval based on the case details, language, and additional context. # Elastic Email Connector (Beta) Connect to an external Elastic Email account. Perform tasks like creating campaigns or sending emails. Use Elastic Email as a data target (action). ### Required Editions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This connector is a beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this beta service is at the Customer's sole discretion.
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Elastic Email actions are available in Flow Builder. - Create Campaign - Delete Campaign - Get Campaign By Name - Get Campaigns - Get Email Status - Get Statistics - Send Emails - Update Campaign - View Email ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Elasticsearch Connector Connect to an external Elasticsearch account. Perform tasks like retrieving index and count information, listing inference endpoints, checking licenses, or running multiple searches. Use Elasticsearch as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Elasticsearch actions are available in Flow Builder. - catCount - catIndices - getInferenceEndpoints - getLicense - multiSearch ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Element Error Rate in Flows Several types of flows automate tasks in the background. As a result, if an error occurs, it can be some time before you notice that anything is wrong with your business process. See which flows need attention at a glance with the Element Error Rate field. This field shows a green success icon for healthy flows and a yellow warning icon for unhealthy flows. Learn how Salesforce calculates the error rate and which metrics it uses in the calculation. ### Required Editions
Available in: Lightning Experience
View supported editions.
The element error rate is the percentage of flow elements used during the last flow occurrence that resulted in errors. Flows with a 0% error rate have no errors and show a green icon. Flows with any error rate from 1% to 100% show a yellow icon indicating a need for investigation. This field is visible on the standard Flows list view and on individual flow record pages. ## Element Runs The number of elements activated during the last flow occurrence, which isn't the same as the total number of elements in the flow. To see the number of activated elements, hover over the Element Error Rate field or add the Element Runs field to a list view. ## Element Errors The number of elements that resulted in errors during the last flow occurrence. To see the number, hover over the Element Error Rate field or add the Element Errors field to a list view. ## Flow Occurrences Each time a flow runs, it creates a flow occurrence. Depending on the flow, a flow occurrence can consist of several flow interviews. A flow that runs weekly on 50 records has one flow occurrence and 50 flow interviews each week. ## Example of How the Element Error Rate Is Calculated This flow has a Decision element that splits three possible ways. ![A schedule-triggered flow with three decision options.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_element_error_rate.png) If this flow goes along the Over 30 days path, it runs the Decision, Action, and Update Records elements for a total of three elements. On the Over 15 days path, it runs two elements, and on the Default Outcome path, it runs only one element. Suppose that this flow runs the Over 30 days path, but encounters an error during the Update Records element. The flow now has one element error and three elements run, causing the element error rate to be 1/3 or 33%. The flow runs weekly on any record that is still active, and on a given run, the flow finds 100 eligible records. Of the flow interviews created for those records: - 15 run the Over 30 days path, 5 of which encounter an error at the Update Records element, totaling 45 elements run and five errors. - 45 run the Over 15 days path, 10 of which encounter an error at the Action element, totaling 30 elements run and 10 errors. - 40 run the Default Outcome path, but there are 5 that encounter an error at the Decision element, totaling 40 elements run and five errors. In this example, the element error rate for the entire flow occurrence is 115 elements run with 20 errors, or 17%. This percentage is the number shown in the Element Error Rate field. # Elements of a Formula Learn the elements you can combine to build a formula: literal values, field references, functions, operators, and comments. Understand what each element does and see an example of how to enter it. ## How a Formula Is Built Use any or all of these elements to build a formula. This example formula combines all elements to calculate 2% of an amount and round the result to two decimal places: ``` /* 2% of Amount, rounded to two decimal places */ ROUND( ( Amount*0.02 ), 2 ) ``` This example uses: - A function, `ROUND`, which returns a number rounded to a specified number of decimal places. - A field reference, Amount. - A literal value, 0.02. - An operator, \*, which multiplies the value of the Amount field by the literal value 0.02. - Another operator, parentheses ( ), which groups `Amount*0.02` as the first argument to `ROUND`. - A second literal value, 2, which is the input that tells `ROUND` how many decimal places to return. - A comment that describes the formula. Comments start with /\* and end with \*/. They’re ignored when the formula runs. ## Literal Value A literal value is a number or text string that you enter directly in a formula. The value is used exactly as entered, without calculating or changing it. - Enter a number directly, as plain digits without commas or currency symbols. Use the decimal form for percentages—for example, enter 0.02 for 2%. To represent $850,000, enter 850000, not 850,000 or $850000. - Enter text by enclosing it in quotation marks. For example, this formula uses the IsWon checkbox on an opportunity and returns a text literal: ``` IF( IsWon, "Won", "Not Won" ) ``` It returns the text “Won” when the opportunity is won. Otherwise it returns “Not Won”. To include a quotation mark or backslash within the text, precede it with a backslash. For an example, see [Tips for Working with Text in Formulas](https://help.salesforce.com/s/articleView?id=platform.tips_for_using_text_formula_fields.htm&release=264.0.0&type=5 "Get tips for working with text in formulas. Find guidance on using quotation marks to insert or concatenate text, escaping special characters with backslashes, and more."). ## Field Reference A field reference (a merge field) uses the value of another standard or custom field in your formula. Use these syntax forms: - Standard field: `field_name` (for example, Amount) - Custom field: `field_name__C` (for example, Discount\_Percent\_\_c) - Field on a related object (standard relationship): `RelationshipName.field_name` (for example, Account.Name) - Field on a related object (custom relationship): `object_name__r.field_name` or `object_name__r.field_name__c` (for example, Position\_\_r.title\_\_c for a custom field) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note For fields on related objects, the relationship name is usually, but not always, the object name. For the full rules on relationship names, see [Merge Fields for Cross-Object Formulas](https://help.salesforce.com/s/articleView?id=platform.fields_merge_fields_cross_object.htm&release=264.0.0&type=5 "A Cross-object formula is a formula that spans two related objects and references merge fields on those objects."). You can also reference a value from a custom metadata type. That’s configuration data stored separately from the record, not a field on the object. Use the `$CustomMetadata` global variable, and identify the type, the record, and the field. Use this syntax, replacing each token with your own API names: ``` $CustomMetadata.CustomMetadataTypeAPIName.RecordAPIName.FieldAPIName ``` In this example, `AnnualRevenue__mdt` is the custom metadata type, `Annual_Revenue` is the record’s API name, and Maximum\_Revenue\_\_c is the field: ``` $CustomMetadata.AnnualRevenue__mdt.Annual_Revenue.Maximum_Revenue__c ``` ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Referencing custom metadata in formula fields is available in Enterprise, Performance, Unlimited, and Developer Editions. To insert a merge field without typing it, use the **Insert Field** button or the dropdown list. ## Function A function is a system-defined formula that returns a value or values, and can require input from you. Salesforce provides many functions. These functions show how input works: - `TODAY()` requires no input and returns the current date. - `TEXT(` value `)` requires input, such as a percent, number, or currency value, and returns text. For example, `TEXT(ExpectedRevenue)` converts a currency amount such as $200,000 to the text 200000, without the dollar sign or comma. For a complete list of functions, see [Formula Operators and Functions by Context](https://help.salesforce.com/s/articleView?id=platform.customize_functions.htm&release=264.0.0&type=5 "Use these operators and functions when building formulas. All functions are available everywhere that you can include a formula, such as formula fields, validation rules, approval processes, and workflow rules, unless otherwise specified."). ## Operator An operator is a symbol that specifies the type of calculation to perform, or the order in which to perform calculations. For example: - The + symbol adds two values. - Parentheses ( ) specify which expressions to evaluate first. Comparison operators test whether a condition is true. They include: - < (less than) - \> (greater than) - <= (less than or equal to) - \>= (greater than or equal to) - \= (equal to) - <> (not equal to) This example uses < to compare a currency field with a number: ``` AnnualRevenue < 850000 ``` `AnnualRevenue < 850000` is `TRUE` when an account’s annual revenue is under $850,000. For the complete list of operators, see [Formula Operators and Functions by Context](https://help.salesforce.com/s/articleView?id=platform.customize_functions.htm&release=264.0.0&type=5 "Use these operators and functions when building formulas. All functions are available everywhere that you can include a formula, such as formula fields, validation rules, approval processes, and workflow rules, unless otherwise specified."). ## Comment A comment is an annotation within a formula. It begins with a forward slash and asterisk (`/*`) and ends with an asterisk and forward slash (`*/`), as shown in this example: ``` /*This is a formula comment*/ ``` Comments document specific parts of a formula for anyone viewing its definition. Salesforce ignores comments when it processes a formula. This example uses comments to document each part of a multi-part formula. The field names, record type name, and picklist text are for illustration. Replace them with values from your org. ``` AND( /*competitor field is required, check to see if field is empty */ LEN( Competitor__c ) = 0, /* rule only enforced for New Business record types */ RecordType.Name = "New Business", /* checking for any closed status, allows for additional closed picklist values in the future */ CONTAINS( TEXT( StageName ), "Closed" ) ) ``` You can also comment out sections of a formula to debug and check the syntax while locating errors. Keep these considerations in mind: - Nesting comments causes a syntax error. For example, you can’t save a formula that contains this string: ``` /* /* comment */ */ ``` - Commenting out an entire formula causes a syntax error. - Comments count against the character and byte size limits in formulas. #### See Also - [Find Examples of Advanced Formulas](https://help.salesforce.com/s/articleView?id=platform.useful_advanced_formulas.htm&release=264.0.0&type=5 "Review sample formulas for sales, service, financial, employee-services, and integration scenarios. Examples cover commissions and discounts, cross-object references, date and time calculations, image links, data completeness, and more. Adapt the formulas to your fields and business requirements.") # Elevated Permissions for Non-Admin Users in Security Center Extension Let non-admin users access and manage certain features and functionalities that are typically restricted to administrators. This article provides an overview of the elevated permissions required for certain features in Secure for non-admin users. These permissions are not included in the packaged Permission Sets as they are elevated and must be assigned by an Admin. Own recommends creating a Permission Set called "Secure Elevated Permissions" for easy management. A Permissions Set Group may be created for each user type as well. | system Permission | DC Tab | si tab | wsw tab | settings tab | | --- | --- | --- | --- | --- | | API Enabled | Yes | Yes | Yes | Yes | | Customize Application | Yes | Yes | Yes | Yes | | Download AppExchange Packages | Yes | Not Available | Not Available | Not Available | | Manage Custom Permissions | Yes | Not Available | Not Available | Not Available | | Manage Package License | Yes | Not Available | Not Available | Not Available | | Modify All Data (to run Fill Rates Calculator) | Yes | Yes | Yes | Yes | | Modify Data Classification | Yes | Not Available | Not Available | Not Available | | Modify Metadata Through Metadata API Functions | Yes | Yes | Yes | Yes | | View Health Check | Not Available | Yes | Not Available | Not Available | | Manage Users | Not Available | Yes | Not Available | Not Available | # Elevated Permissions for Non-Admin Users in Shield Extension Let non-admin users access and manage certain features and functionalities that are typically restricted to administrators. This article provides an overview of the elevated permissions required for certain features in Secure for non-admin users. These permissions are not included in the packaged Permission Sets as they are elevated and must be assigned by an Admin. Own recommends creating a Permission Set called "Secure Elevated Permissions" for easy management. A Permissions Set Group may be created for each user type as well. | system Permission | pea tab | hrp tab | fhe tab | settings tab | | --- | --- | --- | --- | --- | | API Enabled | Yes | Yes | Yes | Yes | | Customize Application | Yes | Yes | Yes | Yes | | Download AppExchange Packages | Yes | Yes | Not Available | Not Available | | Manage Custom Permissions | Yes | Not Available | Not Available | Not Available | | Manage Package License | Yes | Not Available | Yes | Not Available | | Modify All Data (to run Fill Rates Calculator) | Yes | Yes | Yes | Yes | | Modify Data Classification | Not Available | Not Available | Not Available | Not Available | | Modify Metadata Through Metadata API Functions | Yes | Yes | Yes | Yes | | View Health Check | Not Available | Not Available | Not Available | Not Available | | Manage Users | Not Available | Not Available | Not Available | Not Available | # Email Alert Actions An email alert is an email generated by an automated process and sent to the designated recipients. The action consists of the standard text and the list of recipients. You can use an email alert in an automation, such as a flow, approval process, or entitlement process. Legacy workflow rules and processes built in Process Builder or through the Invocable Actions REST API endpoint also use email alerts. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
From Setup, enter Email Alerts in the Quick Find box, and select **Email Alerts**. Then use these settings to configure your email alert. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip Create a standardized letterhead to use for all email templates that you use for email alert actions.
Field Description
Description Enter a description.
Unique Name Enter a unique name to refer to this component in the API. The requirement for uniqueness is only within the selected object type. You can have actions of the same type with the same unique name, provided they’re defined in different objects.The Unique Name field can contain only underscores and alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
Object

If available, choose an object for this email alert.

Salesforce uses this object when generating merge field values for email templates. Also, you can define the recipients of this email alert using contact and user lookup fields that are relevant to that object. For example, if you select Contract, you can define the contract signer as a recipient. The object is read-only if the new email alert is associated with an automation for a particular object.

Email Template

Choose an email template. Insert merge fields to reference specific information based on the record that triggers the email alert. For example, insert a merge field for the opportunity.

Classic Email Templates

Except for {!ApprovalRequest.Comments}, approval merge fields named {!ApprovalRequest.field_name} in email templates return values only in approval assignment emails and email alerts for approval processes. When used in other emails—including email alerts for automations—the approval merge fields return null.

The {!ApprovalRequest.Comments} merge field returns only the most recently entered comment in emails for an approval step that requires unanimous approval from multiple approvers.

If available, select Protected Component to mark the alert as protected if it’s part of a Managed - Released package.

The Recipient merge field isn’t supported in either Classic or Lightning email templates used for automations.

Lightning Email Templates

In Lightning email templates, merge fields are resolved for activity-enabled objects only, except Contact and Lead merge fields. Activity-enabled objects appear in the Related Entity Type field on the email template record home.

Cross-object merge fields aren’t supported. The object specified in the Related Entity Type field must be the object used in the template’s merge fields. For a workaround, see Cross-object Merge Fields Do Not Work in Email Templates.

There isn’t equivalent support for special merge fields in Classic email templates, such as {!this} or {!$Setup.LabelName}.

UTF-8 encoding is used on all emails sent through email alerts.

Recipient Type

Select who receives this email alert.

In master-detail relationships, email alerts are sent only to the master record's owner. Detail records lack an owner field and inherit the master's sharing and security settings.. For example, you select Owner for recipient type for objects involved in a master-detail relationship. Only the owner of the master record is available for recipients. See Object Relationships Overview.

Recipients

Select who receives this email alert in the Available Recipients list and click Add.

If you change the object after selecting recipients, Salesforce clears the Selected Recipients list.

If your email recipient is a role and that role contains multiple people, Salesforce emails each person in that role.

If your email recipient is a record owner and the owner of the record is a queue, the queue email receives the email alert. If the queue is set up so that email is sent to all members, queue members are notified as well. If no queue email is specified, only queue members are notified.

Additional Emails Enter up to five more email addresses for recipients who aren’t Salesforce users, leads, or contacts.
From Email Address

Either the default workflow user or a previously configured and verified organization-wide address. This field lets you use a standard email address for your organization (such as support@company.com) instead of the default From field, which is the email address of the person who updates the record.

If the default workflow user is the guest user, you must have a verified organization-wide address in this field.

If you select Make this the default From email address for this object's email alerts, this email address overrides the From Email Address for all email alerts associated with the object. You can still customize individual email alerts to use a different From Email Address. The From Email Address in an email alert changes to the current user when the email alert is installed using a managed or unmanaged package. The From Email Address doesn’t change when using other types of deployment, such as Metadata API or change sets.

The daily allocation for emails sent through email alerts is 1,000 per standard Salesforce license per org—except for free Developer Edition and trial orgs, where the daily email allocation is 15. The overall org allocation is 2,000,000. This allocation applies to emails sent through email alerts in automations or REST API. Single emails sent to external email addresses are also limited, and how those limits are enforced depends on when your org was created. #### See Also - [Email Alert Actions](https://help.salesforce.com/s/articleView?id=platform.customize_wfalerts.htm&release=264.0.0&type=5 "An email alert is an email generated by an automated process and sent to the designated recipients. The action consists of the standard text and the list of recipients. You can use an email alert in an automation, such as a flow, approval process, or entitlement process. Legacy workflow rules and processes built in Process Builder or through the Invocable Actions REST API endpoint also use email alerts.") - [Daily Allocations for Email Alerts](https://help.salesforce.com/s/articleView?id=platform.workflow_limits_email.htm&release=264.0.0&type=5 "The daily allocation for emails sent through email alerts is 1,000 per standard user license per org—except for free Developer Edition and trial orgs, where the daily workflow email allocation is 15. The overall org allocation is 2,000,000. This allocation applies to emails sent through email alerts in workflow rules, approval processes, flows, processes, or REST API. Single emails sent to external email addresses are also limited, and how those limits are enforced depends on when your org was created.") ## Recipient Types for Email Alerts When you configure an email alert, you identify who receives the email. The options available vary based on your Salesforce settings and the object that you selected. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
Recipient Type Description
Account Owner

The user listed as the owner of the account itself or the account associated with the record.

This option works only for email alerts on accounts, opportunities, cases, contacts, contracts, and any custom object that is a child of the account object. The associated account must also specify an account owner. If you select another object type or the associated account doesn’t have an account owner, Salesforce sends the email alert to the record owner instead.

Account Team

All users assigned to a particular account team role.

The Account Team option is always available. However, emails are sent only when the rule is associated with the account object or its immediate child objects.

Case Team All users assigned to a particular case team role.
Creator The user who created the record.
Customer Portal User All users associated with a Customer Portal.
Email Field

An email address field on the selected object, such as the Email field on lead records or custom email fields.

When creating email alerts for campaign members, Email Field refers to the email field on the lead or contact that the campaign member is based on.

Opportunity Team

All users assigned to a particular opportunity team role. This option appears only when team selling is enabled.

The Opportunity Team option works only for email alerts configured for opportunities. It doesn’t work for email alerts configured for child objects of opportunities.

Owner The record owner.
Partner User All users associated with a partner portal.
Portal Role All users assigned to a particular portal role.
Portal Role and Subordinates All users assigned to a particular portal role, plus all users in roles below that role.
Public Groups The users in a particular public group.
Related Contact

An associated contact on the record.

For example, you can select the Customer Signed By field for contracts that contain the name of the contract signer.

Related Lead or Contact Owner A campaign member’s lead or contact owner.
Related User

An associated user on the record.

For example, contract records have an Activated By field that contains the name of the user that activated the contract.

Role All users assigned a particular role.
Role and Internal Subordinates All users assigned a particular role, plus all users in roles below that role, excluding partner portal and Customer Portal users.
Role and Subordinates All users assigned a particular role, plus all users in roles below that role.
User A particular user.
The Recipient merge field isn’t supported in either Classic or Lightning email templates used for automations. # Email Alert Element Send an email using an Email Alert action where you specify an email template and a static list of recipients. You add an Action element to your flow and search for the name of your already configured Email Alert action. ### Required Editions
View supported editions.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If you're using Marketing Cloud Growth, use the Send Email Message action instead of the Email Alert action. Email Alert actions don't work with segments. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To send email from Salesforce, the Send Email action in Salesforce Flow requires domain-level and user-level email verification. Email delivery fails if either the user's email address or the email-sending domain is unverified. See [Requirements to Send Email from Salesforce](https://help.salesforce.com/s/articleView?id=xcloud.security_email_verification_requirements.htm&language=en_US&type=5). Before you begin: - Create a [Lightning email template](https://help.salesforce.com/s/articleView?id=sales.email_templates_lightning_parent.htm&language=en_US) or [Classic email template](https://help.salesforce.com/s/articleView?id=sales.admin_emailtemplates.htm&language=en_US). Specify the recipient record in any merge fields you use. For example, you could use the contact record or the lead record. When you build the email Alert, you match the object to the referenced record in the flow. For example, if the email alert references the Lead object, use a lead record ID when configuring the element in the flow. - In Setup, search for Email Alerts and configure your [email alert](https://help.salesforce.com/s/articleView?id=platform.customize_wfalerts.htm&release=264.0.0&type=5 "An email alert is an email generated by an automated process and sent to the designated recipients. The action consists of the standard text and the list of recipients. You can use an email alert in an automation, such as a flow, approval process, or entitlement process. Legacy workflow rules and processes built in Process Builder or through the Invocable Actions REST API endpoint also use email alerts."). See [Email Alert Actions](https://developer.salesforce.com/docs/atlas.en-us.api_action.meta/api_action/actions_obj_email_alert.htm) in the Actions Developer Guide. - Understand the [daily limits](https://help.salesforce.com/s/articleView?id=platform.workflow_limits_email.htm&release=264.0.0&type=5 "The daily allocation for emails sent through email alerts is 1,000 per standard user license per org—except for free Developer Edition and trial orgs, where the daily workflow email allocation is 15. The overall org allocation is 2,000,000. This allocation applies to emails sent through email alerts in workflow rules, approval processes, flows, processes, or REST API. Single emails sent to external email addresses are also limited, and how those limits are enforced depends on when your org was created.") for emails sent from email alerts. - Determine which record you want to reference in the email and use that record's ID in the element. For example, if you’re sending the email to the contact that triggered the flow, use the ID of the triggering contact. Or, if you’re using a Get Records element to get the record that receives the email, use the ID of the record found in the Get Records element. If the email alert has merge fields, the referenced record is the starting point for those fields. Add an Action element to your flow. Search for your email alert using the name of the email alert and select the email alert to configure. To filter the list of email alerts by a specific object, enter the API name of the object. The unique name for each email alert is prefixed with its object. For example, email alert emailAlert-Account.Owner\_Changed is associated with the Account object. ## Set Input Values
Field Description
Record ID

Select a resource that contains the ID for the record that you want the email to reference. If the email alert uses merge fields, this record is the starting point for those merge fields.

This field accepts single-value resources of any type. The value is treated as text. The object of the referenced record must match the object of the email alert.

## Usage At run time, the email isn’t sent until the interview’s transaction is completed. Transactions are complete when the interview either finishes or runs a Screen, Local Action, or Wait element. Flow Builder displays email alerts from managed packages only if the email alert isn’t protected. #### See Also - [Sending Emails from a Flow](https://help.salesforce.com/s/articleView?id=platform.flow_build_actions_email.htm&release=264.0.0&type=5 "Send emails to your customers, partners, and employees automatically in a flow. There are several different ways to send an email from a flow depending on who you want to send your email to and how you want your email content to look. Determine the best way to send your email based on the functionality that you need.") - [Customize What Happens When a Flow Fails](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_fault.htm&release=264.0.0&type=5 "Learn how fault paths customize what happens when a flow fails. Choose how to notify admins, guide users, and take a follow-up action.") - [Move and Connect Elements to Change a Flow Route](https://help.salesforce.com/s/articleView?id=platform.flow_build_logic_route_add.htm&release=264.0.0&type=5 "Identify which elements the flow runs and in what order by connecting the elements on your canvas together. To change the run order, move elements and add or remove connectors.") - [Daily Allocations for Email Alerts](https://help.salesforce.com/s/articleView?id=platform.workflow_limits_email.htm&release=264.0.0&type=5 "The daily allocation for emails sent through email alerts is 1,000 per standard user license per org—except for free Developer Edition and trial orgs, where the daily workflow email allocation is 15. The overall org allocation is 2,000,000. This allocation applies to emails sent through email alerts in workflow rules, approval processes, flows, processes, or REST API. Single emails sent to external email addresses are also limited, and how those limits are enforced depends on when your org was created.") # Email Contacts that a User Selects on a Screen Example This example uses an automatically triggered screen action to let users select an account and instantly view or select related contacts—all within a single screen. Then, it sends the selected contacts an email. #### See Also - [Action Button Screen Input Component](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_action_button.htm&release=264.0.0&type=5 "Use the Action Button component so the running user can trigger a screen action with the click of a button on a screen. The screen action runs an active autolaunched flow, and the results of the autolaunched flow can be shown on the same screen as the button. Using this component means that you need fewer screens so users can complete screen flows more quickly.") - [Data Safety When Running Screen and Autolaunched Flows in System Context](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_context_data_safety_system_context.htm&release=264.0.0&type=5 "Screen flows and autolaunched flows without triggers can expose more data than intended. This potential issue primarily affects Experience Cloud sites accessed by external users. Configure proper user permissions for field-level and record-level security instead of running flows in system context. When system context is necessary, use only the minimum fields and records required.") ## Create the Associated Autolaunched Flow to Get Records Create the autolaunched flow that gets the contact records for the selected account. 1. From the Automation app, click **New**. 2. Click **Autolaunched**. 3. Click **Autolaunched Flow (No Trigger)**. 4. Click **Create**. The new autolaunched flow opens in Flow Builder 5. Create a text input variable to store the account ID that's passed into the flow. 1. Open Toolbox. 2. Click **New Resource**. 3. Select **Variable**. 4. For API Name, enter inputAccountId. 5. For Data Type, select **Text**. 6. For Availability Outside the Flow, select **Available for input**. 7. Click **Done**. ![New text resource that's available for input](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_new_input_resource.png) 6. Create a record collection output variable to store the contact records to send back to the screen flow. 1. Open Toolbox. 2. Click **New Resource**. 3. Select **Variable**. 4. For API Name, enter outputContacts. 5. For Data Type, select **Record**. 6. Select **Allow multiple values (collection)**. 7. For Object, select **Contact**. 8. For Availability Outside the Flow, select **Available for output**. 9. Click **Done**. ![New collection resource that's available for output](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_new_output_resource.png) 7. Add a Get Records element. 1. Click the plus icon and select **Get Records**. 2. For Label enter Get Contacts. 3. For API Name, enter Get\_Contacts. 4. For Object, select **Contact**. 5. In the Filter Contact Records section, for Field, click**AccountId**, for Operator, click **Equals**, and for Value, click **inputAccountId**. 6. For How Many Records to Store, select **Only the first record**. 7. For How to Store Record Data, select **Choose fields and let Salesforce do the rest**, and then add the **First Name,** **Last Name**, and **Email** fields. We're storing only these fields because they're the ones that we want shown in the Data Table component. Only storing the fields that you need reduces loading times for your running user and makes your data safer. For more information about data safety in screen flows, see [Data Safety When Running Screen and Autolaunched Flows in System Context](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_context_data_safety_system_context.htm&type=5&language=en_US). ![A Get Records element that's retrieving contact records with an AccountId that equals inputAccountId](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_screen_flows_screen_actions_create_autolaunched_flow.png) 8. Add an Assignment element. 1. Click the plus icon and select **Assignment**. 2. For Label, enter Set Output Variable. 3. For API Name, enter Set\_Output\_Variable. 4. In the Set Variable Values section, for Variable, click **outputContacts**, for Operator, click **Equals**, and for Value, click **Contacts from Get Contacts**. ![Assignment element that's assigning the contacts from the Get Records element to the output variable](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_screen_flows_screen_actions_create_autolaunched_flow_2.png) 9. Save the flow. 10. For Label enter Get Contacts for Account, and for API Name, enter Get\_Contacts\_for\_Account. 11. Test and activate your flow. ## Create an Input for the Screen Action to Send to the Autolaunched Flow Create a screen flow that has a screen with a Lookup component on it to allow the running user to find and select an Account. 1. From the Automation app, click **New**. 2. Click **Screen**. 3. Click **Screen Flow**. 4. Click **Create**. The new screen flow opens in Flow Builder 5. Add a Screen element. 1. Click the plus icon and then select **Screen** 2. For Label, enter Select Account and Contacts and let the API name autofill. 3. In the Components menu, click **Lookup**. 4. For API Name, enter Set Output Variable. 5. For API name, enter SelectAccount. 6. For Field API Name enter AccountId. AccountId is the API name of the Account Name lookup field on the Contact object that we want to copy functionality from 7. For Label, enter Select Account. 8. For Object API Name, enter Contact. Contact is the API name of the object that has the lookup field that we want to copy functionality from. ![Lookup screen component that searches for an account](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_screen_flows_screen_actions_lookup_component.png) ## Set Up the Screen Action Set up the screen action to get contacts for the selected account. You decide you want to trigger the screen action automatically as soon as the running user selects an account. 1. Click the screen element header to open Screen Properties. 2. Click **Configure Screen Actions** 3. For Flow, select **Get Contacts for Account** 4. For Label, enter Get Contacts for Account. 5. For API Name, enter Get\_Contacts\_for\_Account\_Action. 6. In the Set Action Run Settings section, for inputAccountId, click the switch to include the input. Then select the account that was selected in the Lookup component. Select the **SelectAccount** screen component, and then click **recordId**. ![Set Action Run Settings section with input selected](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/automate_screen_flows_screen_action_inputs.png) ## Use the Autolaunched Flow's Data in the Screen Flow Use the contacts retrieved from the autolaunched flow to populate a Data Table component. Show the first name, last name, and email address of the contacts in the Data Table component. 1. From the Components menu, click **Data Table**. 2. For API Name, enter ContactsDataTable. 3. For Label, enter Select Contacts for Account. 4. For Source Collection, click **Get\_Contacts\_for\_Account\_Action**, then click **Results**, and then click **outputContacts**. 5. For Configure Columns, add the **First Name,** **Last Name**, and **Email** fields. ![A Data Table component that uses the output of the screen action for the source collection](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_screen_action_results_in_data_table.png) The running user can select an account and then select related contacts all on the same screen. 6. Save your work. ## Use the Collected Data Later in the Flow Take the contacts selected in the Data Table component and send them an email using the Send Email action. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To send email from Salesforce, the Send Email action in Salesforce Flow requires domain-level and user-level email verification. Email delivery fails if either the user's email address or the email-sending domain is unverified. See [Requirements to Send Email from Salesforce](https://help.salesforce.com/s/articleView?id=xcloud.security_email_verification_requirements.htm&language=en_US&type=5). 1. Create a collection variable. This variable holds the email addresses of the contacts that you want to email. 1. In the Toolbox, click **New Resource** and then select **Variable**. 2. For API Name, enter EmailAddresses and for Data Type, select **Text**. 3. Select **Allow multiple values (collection)** and save your work. 2. Add a Loop element. This step tells the flow to go through the selected contacts 1. On the canvas, click the plus icon and then select **Loop** 2. For Label, enter Iterate Over Selected Contacts and let the API name autofill. 3. For the Collection Variable, select **Select Account** | **ContactsDataTable** | **Selected Rows**. This step tells the flow that we are going to go through the list of selected contacts and do something with them. 3. Add an Assignment element. This step takes the email address of each selected contact as it goes through the loop and adds it to the collection variable we created. 1. After For Each, click the plus icon and then select **Assignment** 2. For Label, enter Add Email to Email Addresses Collection and let the API name autofill. 3. For Variable, select the **EmailAddresses** collection variable you created. 4. For Operator, select **Add**. 5. For Value, select **Current Item from Loop** and then select **Email**. This takes the email of the current contact you're on, and adds the email of that contact to the EmailAddresses collection variable. 4. Add a Send Email action. This step configures the email to send to the selected contacts. 1. For Recipient Address Collection, select the **EmailAddresses** collection variable. 2. In the Configure Email Content section, for Subject, enter Welcome to Our Community!. 3. For Body, enter We're excited to welcome you as a new contact. If you have any questions, feel free to reach out!. 4. For Rich-Text-Formatted Body, select **True**. This step makes the email look nicer by using the selected font and any other formatting you're configured. 5. Save your work. ![Configured Send Email action element](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/example_screen_action_send_email.png) Now the flow is configured to send the email to the contacts selected on the screen. ![Full flow](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/example_screen_action_full_flow.png) 5. Test your flow using sample data and different scenarios and then activate it. # Email Deliverability New and refreshed sandboxes use the System email only setting by default. Sandboxes created before Spring ’13 default to All email. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Database.com Editions
User Permissions Needed
To view a sandbox: View Setup and Configuration
To create, refresh, activate, and delete a sandbox: Manage Dev Sandboxes (Developer or Developer Pro only) or Manage Sandboxes (all sandbox types)
This setting applies to production and sandbox. To set it, from Setup, enter Deliverability in the Quick Find box, and then select **Deliverability**. If editable, set the access level in the Access to Send Email section. If Salesforce restricted your ability to change this setting, you can’t edit the access level. - No access—Allows only password reset emails. Prevents all other outbound email to and from users. - System email only—Allows only automatically generated emails, such as new user and password reset emails. - All email—Allows all types of outbound email. Default for new orgs that aren’t sandboxes. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_tip.png) Tip The System email only setting is useful for controlling email sent from sandboxes so that testing and development work doesn’t send test emails to your users. # Email Screen Input Component Let users enter email address values from a flow screen. ### Required Editions
View supported editions.
![An Email component at run time. The placeholder text guides the flow user to enter the email in a particular format.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_screencmp_email.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This screen component requires Lightning runtime. ## Configure the Email Component You can select resources from the flow, such as variables or global constants, or you can manually enter a value.
Attribute Description
API Name

The API name of the component.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Disabled

If set to true, the user can’t modify the value. The default value is false.

This attribute accepts a resource with a Boolean value.

Label

The label that appears above the email field.

This attribute accepts single-value resources. The value is treated as text.

Placeholder Text

Text that appears in the field when it’s empty. Use placeholder text to give users a hint about what to enter in the field.

This attribute accepts a resource with a single value. The value is treated as text.

Read Only

If set to true, the user can’t modify the value, but the user can copy it. The default value is false.

This attribute accepts a resource with a Boolean value.

Required

If set to true, the running user must enter a value. The default value is false.

This attribute accepts a resource with a Boolean value.

Value

The value of the email field. Setting this attribute prepopulates the field. To use the value that the user enters, store this attribute’s output in a variable.

This attribute accepts single-value resources. The value is treated as text.

## Store the Email Component’s Values in the Flow The flow stores values automatically. If you store values manually, store the attribute’s output value in a variable. To store values manually, select **Manually assign variables (advanced)**. All attributes are available to store in flow variables, but Value is the most likely attribute you must store. To store the email address that the user entered, store the Value attribute in a flow variable. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip By default, screen components that run on Lightning runtime version 58 and prior have no memory. If a user enters a value, and then does one of the following, the value is lost. - Navigates to another screen and returns to the component’s screen. - Pauses the flow then resumes it. - Navigates to the next screen and triggers an input validation error. Setting the attribute enables a flow to remember the value. The flow stores the value automatically. If you store values manually, store the attribute’s output value in a variable. ## Set the Component Visibility Specify the logic that determines when the flow displays the component.
Option Description
When to Display Component

Configure when the component is displayed by using conditional logic.

You can set the components to:

Always
Always display the component.
When all conditions are met (AND)
Display the component when all of the conditions that you define are met. Define at least one condition.
When any condition is met (OR)
Display the component when at least one of the conditions that you define is met. Define at least one condition.
When custom conditional logic is met
Display the component when the condition logic that you define is met. Define at least one condition and specify condition logic.
## Validate Input Provide a formula that evaluates whether what the user entered is valid and the error message to display if invalid.
Option Description
Error Message Specify the error message that appears below the component if the user enters an invalid value.
Formula

Provide a formula expression that returns a Boolean value.

If the formula expression evaluates to true, the input is valid. If the formula expression evaluates to false, the error message appears below the component.

If the user leaves the field blank and the field isn’t required, the flow doesn’t perform the validation. If the user leaves the field blank and the field is required, the flow shows the default error message and not your custom error message.

## Specify the Behavior of Values on Revisited Screens Specify what this component does when a user enters a value, navigates to a previous screen, and then returns to the screen with this component.
Option Description
Use values from when the user last visited this screen The component retains the values that the user specified and doesn’t update the values to reflect changes made on previous screens.
Refresh inputs to incorporate changes elsewhere in the flow

The component updates the user-specified values to reflect changes made on previous screens.

If you pause and then resume the flow, the flow retains user-specified values only in Checkbox, Checkbox Group, Currency, Long Text Area, Multi-Select Picklist, Number, Password, Picklist, Radio Buttons, and Text components.

#### See Also - [Standard Flow Screen Components](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp.htm&release=264.0.0&type=5 "Salesforce provides several standard screen components that extend the types of input fields available in screens.") # Email Services You can use email services to process the contents, headers, and attachments of inbound email. For example, you can create an email service that automatically creates contact records based on contact information in messages. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience

Available in: Enterprise, Performance, Unlimited, and Developer Editions

Use of email services in installed AppExchange packages also available in: Essentials, Group, and Professional Editions

User Permissions Needed
To configure Apex email services and email service addresses: Customize Application
To create Apex classes: Author Apex
- **[What Are Email Services?](https://help.salesforce.com/s/articleView?id=platform.code_email_services_overview.htm&release=264.0.0&type=5)** Email services are automated processes that use Apex classes to process inbound email. - **[Define Email Service Addresses](https://help.salesforce.com/s/articleView?id=platform.code_email_service_address.htm&release=264.0.0&type=5)** Add an inbound email address for an email service. - **[Define Email Services](https://help.salesforce.com/s/articleView?id=platform.code_email_services_editing.htm&release=264.0.0&type=5)** Set up an email service to handle incoming email, and configure the service to process messages according to your users' needs. - **[The InboundEmail Object](https://help.salesforce.com/s/articleView?id=platform.code_inbound_email.htm&release=264.0.0&type=5)** For every email the Apex email service domain receives, Salesforce creates a separate InboundEmail object that contains the contents and attachments of that email. You can use Apex classes that implement the `Messaging.InboundEmailHandler` interface to handle an inbound email message. Using the `handleInboundEmail` method in that class, you can access an InboundEmail object to retrieve the contents, headers, and attachments of inbound email messages, as well as perform many functions. # Email Subscription Automation Event Run the automation event-triggered flow when an email subscription event is received. ### Required Editions
Available in: Lightning Experience
This feature is available in Enterprise and Unlimited Editions with Marketing Cloud Growth or Advanced Edition.
Available in: All Editions supported by Data 360. See Data 360 edition availability.
## Usage | Field | Description | | --- | --- | | **Subscription Name** | Search for and select the email subscription event that triggers the flow. | #### See Also - [Build Automation Event-Triggered Flows](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_create_automation_event_triggered_flow.htm&release=264.0.0&type=5 "Configure triggers to process records when events occur in integrated applications.") # Emails About Flow Approval Process Errors When an approval submission's orchestration run fails, Salesforce sends an error email. The email is sent to either the admin who last modified the associated flow approval process or the Apex exception email recipients. ### Required Editions
View supported editions for Flow Approval Processes.
The email includes the error message with details about the: - Flow Approval Process - Executed flow approval process elements - Flows called from flow approval process steps For an activated flow approval process, the error email also contains a link to show the failed orchestration run details in Flow Builder. If an approval submission's orchestration run fails because of a flow it calls, then the recipients receive an error email for the flow approval process failure and an error email for the flow failure. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example ``` Error element level_1 (FlowOrchestratedStage). Invalid User reference Flow Details Flow API Name: Simple_Approval_2 Type: Approvals with Flow Orchestration Version: 2 Status: Active Org: Acme Hardware (00DWs000001kID7) Flow Interview Details Interview Label: Simple Approval 1/28/2025, 3:19 PM Interview GUID: 1015777406f0500b9c734cf2043a194abf287f2-41f0 Current User: Admin User (005Ws000000qE6v) Start time: 1/28/2025, 3:19 PM Duration: 0 seconds How the Interview Started Orchestration Run ID: 0jEWs000000Cp0L Admin User (005Ws000000qE6v) started the flow interview. API Version for Running the Flow: 63 Some of this flow's variables were set when the interview started. recordId = 02iWs000005LFpD submitter = 005Ws000000qE6v ENTER STAGE: level 1 ID: 0jFWs000000DFu5 Status: Error APPROVAL STEP: manager approval ID: 0jLWs000000FBnx Status: Error Entry Condition: When the stage starts, the step starts Condition evaluates to true Assignment Type: User Assigned To: {!test} (test) Action: standard_approvals__EvaluateApproval Inputs: ActionInput__RecordId = {!recordId} (02iWs000005LFpD) ActionInput__CustomEmailSubject = null ActionInput__CustomEmailBody = null Outputs: None. Exit Condition: When the assigned user has completed the action, the step is marked Completed Condition evaluates to false Screen Flow: standard_approvals__EvaluateApproval Error Occurred: Invalid User reference Salesforce Error ID: 923962389-687110 (-1301330857) ``` # Embed a Flow in a Custom Aura Component To customize how your flow gets and receives data, add it to a custom Aura component. Then distribute that component through a custom action, Lightning tab, or Lightning page. ### Required Editions
View supported editions.
To embed a flow in your Aura component, add the `lightning:flow` component to it, for example: ``` ``` In the JavaScript controller, identify which flow to start, for example: ``` ({ init : function (component) { // Find the component whose aura:id is "flowData" const flow = component.find("flowData"); // In that component, start your flow. Reference the flow's API Name. flow.startFlow("myFlow"); }, }) ``` # Embed a Flow in a Visualforce Page To customize your flow’s look and feel for internal users, add the flow to a Visualforce page. Then distribute that page through a Visualforce tab, custom button, or custom link. ### Required Editions
View supported editions.
User Permissions Needed
To create, edit, and set version settings for Visualforce pages: Customize Application
1. Find the flow’s API name. 1. From Setup, enter Flows in the Quick Find box, then select **Flows**. 2. Click the name of the flow. 3. Copy the API name of the flow. 2. From Setup, enter Visualforce Pages in the Quick Find box, then select **Visualforce Pages**. 3. Define a new Visualforce page, or open an existing one. 4. Add the `` component somewhere between the `` tags. 5. Set the `name` attribute to the API name of the flow. For example: ```markup ``` If the flow is from a managed package, the `name` attribute must be in this format: `namespace.flowuniquename`. 6. Click **Save**. 7. Restrict which users can access the Visualforce page. 1. Click **Visualforce Pages**. 2. Click **Security** next to your Visualforce page. 3. Move all the appropriate profiles from Available Profiles to Enabled Profiles by using the add and remove buttons. 4. Click **Save**. 8. Add the Visualforce page to your app by using a custom button, link, or Visualforce tab. - **[Customize a Visualforce Component to Control the Flow's Finish Behavior](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_vf_finish.htm&release=264.0.0&type=5)** By default, users who click **Finish** start a new interview and see the first screen of the flow. After you embed a flow in a Visualforce page, configure the `finishLocation` attribute to route users to another page in Salesforce. # Embed a Flow in a Visualforce Page for External Users Let external users run your flow by adding the flow to a Visualforce page and distributing that page externally. For example, through a community. ### Required Editions
User Permissions Needed
To create, edit, and set version settings for Visualforce pages: Customize Application
For example, you can set up a self-service tool for your public Salesforce site to help visitors generate custom sales quotes. Because the flow is embedded in a Visualforce page, you can customize the appearance of the flow so that it uses your company’s branding and style. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note When you make a flow available to site or portal users, point them to the Visualforce page that contains the embedded flow, not the flow itself. Site and portal users aren’t allowed to run flows directly. To add a flow to a Visualforce page, embed it by using the `` component. 1. Find the flow’s API name. 1. From Setup, enter Flows in the Quick Find box, then select **Flows**. 2. Click the name of the flow. 3. Copy the API name of the flow. 2. From Setup, enter Visualforce Pages in the Quick Find box, then select **Visualforce Pages**. 3. Define a new Visualforce page, or open an existing one. 4. Add the `` component somewhere between the `` tags. 5. Set the `name` attribute to the API name of the flow. For example: ```markup ``` If the flow is from a managed package, the `name` attribute must be in this format: `namespace.flowuniquename`. 6. Click **Save**. 7. Restrict which users can access the Visualforce page. Any external users with access to the Visualforce page can run the embedded flow. 1. Click **Visualforce Pages**. 2. Click **Security** next to your Visualforce page. 3. Move all the appropriate profiles from Available Profiles to Enabled Profiles by using the add and remove buttons. 4. Click **Save**. 8. To distribute your Visualforce page, add the Visualforce page to your Salesforce site. Or use the Visualforce page to define a custom Visualforce tab, and then add that tab to your portal or community. #### See Also - [_Lightning Aura Components Developer Guide_ : Configure Components for Experience Builder](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_config_for_builder.htm) - [_Lightning Aura Components Developer Guide_ : Add Aura Components to Any App with Lightning Out (Beta)](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/lightning_out.htm) # Embed a Screen Flow in a Lightning Page To easily distribute a screen flow to Lightning Experience or Salesforce app users, embed it in a Lightning page. ### Required Editions
Available in: Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
If you’re not yet familiar with the types of Lightning pages you can customize, check out the [Lightning App Builder module](https://trailhead.salesforce.com/module/lightning_app_builder) in Trailhead. ​If your org uses the Outlook or Gmail integrations you can ​also create custom email application panes. 1. Open a Lightning page in the Lightning App Builder. 2. From the Lightning Components pane on the left, drag the Flow component onto the Lightning page canvas. 3. Configure the component.
Component Description
Flow Only active screen flows are available. Flows that were built in the Desktop Flow Designer aren’t supported.
Layout

By default, flows display in one column.

If a screen contains a Section screen component, that screen ignores the Layout property.

  • Starting in Winter ’23, two-column flow layouts are ignored. For a better layout option, add Section components to your flow screens. Each Section component lets you organize record fields and screen components in up to four adjustable-width columns.
  • If a flow screen contains a Section component, that screen ignores the Layout property.
Input variables If you see other properties, they’re the flow’s input variables. Variables appear only if they allow input access.
Pass all field values from the record into the flow variable

This option is available only for Record pages, and requires a record variable in the flow named recordId that's available for input.

For example, when this component is embedded in an Contact Record page, at run time the component passes the contact's record into the recordId input record variable.

Pass record ID into this variable

This option is available only for Record pages, and requires a text variable in the flow named recordId that's available for input.

For example, when this component is embedded in an Opportunity Record page, at run time the component passes the opportunity’s ID into the recordId input text variable.

4. Save the page. 5. Hang on, you’re not finished yet! To make your page available to your users, activate it. You can activate the page from the Save dialog when you save it for the first time, or later using the **Activation** button. 6. Test that the flow is working correctly, and then roll the Lightning page out to your users. #### See Also - [Two-Column Flow Considerations](https://help.salesforce.com/s/articleView?id=platform.flow_considerations_design_layout.htm&release=264.0.0&type=5 "If your org has Lightning runtime enabled, you can control whether a flow displays in one column or two columns. Before you use this feature, understand how the flow layout currently behaves.") - [Section Screen Output Component](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_section.htm&release=264.0.0&type=5 "Organize screen components and record fields to give your users a better experience.") # Embed a Screen Flow in a Navigation Tab in Your Org Add an active screen flow to a navigation tab in your org, using the flow's web address (URL). Users can open the tab and then run the screen flow from there. ### Required Editions
View supported editions.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. ## Create the Flow Create a screen flow to embed in the tab. 1. Open the Flows list view. - From the Automation app, select the **Flows** tab. - From the **Flows** tab in any Lightning app, click the actions menu and select **Open Flow**. - From Setup, in the Quick Find box, enter Flows, and then select **Flows**. Note that the Automation app and Flows tab options don't require Setup access. 2. Create a screen flow. 1. From the Automation app, click **New**. Then select or **Screen Flow**. 2. From Setup, click **New Flow**. Then select **Screen Flow**. Flow Builder opens. 3. Optionally, add variables to store inputs to send to the flow. 1. To open the Toolbox, click ![Toolbox icon.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_example_use_online_form_create_record/automate_flow_build_example_use_online_form_create_record_toolbox.png). 2. Click **New Resource**, and then select **Variable**. 3. Enter an API name and description . 4. select a data type. 5. Select **Available for input**. 6. Click **Done**. 4. Add elements to your flow to perform the actions you want. For example, if the flow has the ID of the contact sent into the flow, you can use a Send Email action to email the contact by setting Record ID to the recordId variable. 5. Save the flow. 6. Test the flow by clicking **Debug** and using test data. 7. Click **Activate**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can also run an autolaunched flow from a navigation tab. It starts running when the URL is clicked, the navigation tab opens, and your users see a message that the flow finished. ## Get Your Flow's URL 1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 2. For the flow that you want to run, click ![Show actions](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_list_enhanced_dropdown_icon.png), and select **View Details and Versions**. 3. Copy the flow URL, and add it to the end of your org's URL. The format of the flow URL is /flow/My\_Flow. For example: ``` https://yourDomain.my.salesforce.com/flow/MyFlowName ``` If the flow was installed from a managed package, include the namespace prefix in the flow URL. For example: ``` https://yourDomain.my.salesforce.com/flow/namespace/MyFlowName ``` If the flow is run from a page hosted on an Experience Cloud site, include the full site path in the flow URL. ``` https://x.my.site.com/mysitepath/s/flow/myFlowName ``` 4. Optionally, send input values to the flow when it runs. Learn about adding input values to the URL in [Send Variable Values to a Flow Using the Flow's URL](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_variable.htm&release=264.0.0&type=5 "When you distribute a flow by using a URL, you can set variables values within that flow by using parameters in the URL."). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Using Lightning instead of Lightning Out isn't supported on navigation tabs. So, if you add /lightning before your flow's URL, you many have unexpected results. ## Create a Web Tab 1. From Setup, in the Quick Find box, enter Tabs, and then select **Tabs**. 2. In the Web Tabs section, click **New**. 3. Select your page layout, and click **Next**. 4. Enter a value for Tab Label, and let the Tab Name autofill. 5. Select a value for Tab Style, and click **Next**. 6. In the Button or Link URL text box, paste the full URL that includes your org's URL and your flow's URL. For example, `https://mydomain.my.salesforce.com/flow/MyFlowName`. 7. Click **Next** and then **Next**. 8. Save your work. ![A web tab with a screen flow in it.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/distribute_flow_web_tab.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Optionally, you can customize what happens when the flow ends. To learn more, see [Customize Flow Finish Behavior](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_internal_url_returl.htm&release=264.0.0&type=5 "By default, after a user finishes a screen flow, the screen flow redirects the user to the first screen. If you want to redirect users to another page within Salesforce when they click Finish, use the retURL parameter in the flow URL."). Users can go to the navigation tab in your org and run the screen flow from there. # Embed Outbound Flows Into Record Pages (Optional) When you embed a flow into a record page, users can schedule or modify appointments directly from the page. They don’t have to use the quick action, which launches the flow in a separate window and blocks users’ access to details on the page. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. On the record page that you want to embed your Salesforce Scheduler flow into, from Setup, select **Edit Page**. 2. Drag the Flow component to the page. ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_warning.png) Warning If you have enabled multi-resource scheduling, add the Flow component to the main region on the page. With multi-resource scheduling enabled, Salesforce Scheduler flows don’t work when added to tabs or to the sidebar on a record page. 3. In the Properties pane, from the Flow list, select the Salesforce Scheduler flow that you want to add. 4. Save your changes. # Embed Salesforce Scheduler Flows into Other Flows You can call a Salesforce Scheduler flow from within another flow that is of the Salesforce Scheduler flow type. For example, you can create and add a Salesforce Scheduler flow to the account page that asks users whether they want to create or modify an appointment. And then it launches the related flow. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To open, edit, or create a flow in Flow Builder: Manage Flow
To run a flow: Run Flows
1. From Setup, in the Quick Find box, enter Flows, select **Flows**, and then click **New Flow**. 2. Select **Use a Template**, and click **Next**. 3. Select the **Salesforce Scheduler Flow** template, and click **Next**. 4. In Flow Builder, design your flow according to your requirements. 5. Drag the Subflow element onto the canvas. 6. In the Referenced Flow field, search for and select a Salesforce Scheduler service appointment flow, and click **Done**. 7. Connect the subflow to an appropriate node in your flow. 8. Save your changes, and then activate the flow. # Embedded Images in Rich Text Areas A rich field type in Salesforce is a field type where users can enter formatted text and add images and links. ## Overview To back up an embedded image, you must have a record with an image embedded in a rich text area field conforming to the following pattern for HTML tag parameters. ## Pattern for HTML Tag Parameters The rich text area field contains the image in the form of an HTML tag containing parameters in a structured format as follows: ``` ``` ![Warning](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_warning.png) Warning The parameters must follow this pattern for the embedded image to back up. ## Example of an Tag in a Rich Text Area The following example shows an tag from a rich text area field: ``` Sarah Loehr. ``` For further information see the Salesforce article, [Get an Image from a Rich Text Area Field](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_rich_text_image_retrieve.htm). ## Embedded Images in EmailMessages Since embedded images are references to an Attachment or ContentVersion object containing the image, when restoring an EmailMessage with an embedded image in its HTMLBody, it can be pointing to an Attachment or ContentVersion that was restored alongside it. When the Attachment or ContentVersion is restored, it will have a new Id. This means that the reference in the embedded image no longer points to the correct Attachment or ContentVersion, resulting in the image being broken in the restored EmailMessage. # Enable a Feature License for a User You can enable a feature for a user in your organization when creating or editing that user. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable feature licenses: Manage Internal Users
1. In Setup, enter Users in the Quick Find box, then select **Users**. 2. In the user list view, click a user’s name. 3. On the User Detail page, select the checkbox next to the feature license you want to enable for that user. You can enable more than one feature license for a single user. 4. Click **Save**. #### See Also - [Add a Single User](https://help.salesforce.com/s/articleView?id=platform.adding_new_users.htm&release=264.0.0&type=5 "Depending on the size of your organization or your new hire onboarding process, you may choose to add users one at a time. The maximum number of users you can add is determined by your Salesforce edition.") - [Edit Users](https://help.salesforce.com/s/articleView?id=platform.editing_users.htm&release=264.0.0&type=5 "To change a user's details—such as username, profile, role, or contact information—edit the user account.") - [Feature Licenses Overview](https://help.salesforce.com/s/articleView?id=platform.users_understanding_feature_licenses.htm&release=264.0.0&type=5 "A feature license entitles a user to access an additional feature that isn’t included with his or her user license, such as Marketing or WDC. Users can be assigned any number of feature licenses.") - [Available Feature Licenses](https://help.salesforce.com/s/articleView?id=platform.users_feature_licenses_available.htm&release=264.0.0&type=5 "Assign one or more of these additional feature licenses to users so that they can access features not included in their user license.") - [View Your Organization’s Feature Licenses](https://help.salesforce.com/s/articleView?id=platform.users_viewing_feature_licenses.htm&release=264.0.0&type=5 "View the feature licenses your company has purchased to know what you have available to assign to your users.") # Enable Actions in the Chatter Publisher Enabling actions in the publisher lets you add actions that you’ve created to the Chatter publisher. Actions appear on the Home page, on the Chatter tab, in Chatter groups, and on record detail pages. ### Required Editions
Available in: Salesforce Classic
Available in: Group, Professional, Enterprise, Performance, Unlimited, Contact Manager, Database.com, and Developer Editions
User Permissions Needed
To enable actions in the Chatter publisher: Customize Application
By default, the Salesforce Classic Chatter publisher includes the standard actions Post, File, Link, Poll, Question, and Thanks. With the actions in the publisher setting enabled, you can include nonstandard actions in the Chatter publisher too. Nonstandard actions include Create, Update, Log a Call, custom actions, and Mobile Smart Actions. In organizations created after the Winter ‘14 release, actions in the publisher is enabled automatically. 1. From Setup, enter Chatter Settings in the Quick Find box, then select **Chatter Settings**. 2. Click **Edit**. 3. Select Enable Actions in the Publisher. Although the Enable Actions setting appears in Lightning Experience, it has no effect there. 4. Click **Save**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note You aren’t required to enable actions in the publisher to use them in the Salesforce app or in third-party apps. See [Actions With and Without Chatter](https://help.salesforce.com/s/articleView?id=platform.actions_with_or_without_chatter.htm&release=264.0.0&type=5 "Use actions regardless of whether Chatter or actions in the publisher are enabled.") for more information. - **[Set Up Actions with Chatter Enabled](https://help.salesforce.com/s/articleView?id=platform.setting_up_actions.htm&release=264.0.0&type=5)** Global and object-specific actions enhance the Chatter experience for your users in Salesforce Classic and in the Salesforce app. - **[Set Up Actions Without Chatter Enabled](https://help.salesforce.com/s/articleView?id=platform.setting_up_actions_without_chatter.htm&release=264.0.0&type=5)** You can set up object-specific and global actions for the Salesforce mobile app or third-party apps, even if your org doesn’t have Chatter enabled. - **[Actions With and Without Chatter](https://help.salesforce.com/s/articleView?id=platform.actions_with_or_without_chatter.htm&release=264.0.0&type=5)** Use actions regardless of whether Chatter or actions in the publisher are enabled. # Enable Additional Features for Agentforce Enhance the functionality of Agentforce for Scheduler by customizing their instructions. Add new instructions to the Appointment Book for Scheduler Agent topic to enable these optional features. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
## Appointment Booking with Channels Before You Begin - Enable Appointment Booking with Channels. - Enable Use STM Shifts in the default scheduling policy. - Provide Read access on Engagement Channel Type objects that are used in Agentforce to the Einstein Agent custom profile. - Provide FLS on Engagement Channel Type on Service Appointment object - Update the sharing settings for Engagement Channel Type records Edit the agent topic and add this instruction to it. For appointment booking, always ask for appointment channel. Don't ask for all optional parameters, only the appointment channel. If there's an error with channels, report it to the end user. ## Group Appointments Considerations - By default, Agentforce displays a maximum of 20 upcoming group appointments. - Users can’t be added to group appointments on the behalf of other users. To enroll or unenroll in an appointment, a user must authenticate with Agentforce and then perform the action themselves. - When a user unenrolls from an appointment, the Service Appointment Attendee record isn’t deleted. Before You Begin - Enable Use STM Shifts in the default scheduling policy. - [Set up Group Service Appointments.](https://help.salesforce.com/s/articleView?id=platform.ls_set_up_group_service_appointments.htm&release=264.0.0&type=5 "Use group service appointments to create appointments for a large group of customers, and provide them with the flexibility to enroll in or unenroll from the service appointment. For example, create and allow multiple users to enroll in a resume workshop. Also, directly enroll lead records and authenticated users to the appointment or share the group appointment enrollment URLs with unauthenticated users via email.") - Update the sharing settings to add Read, Create, Update on Service Appointment Attendee. - Add the List Upcoming Group Appointment, Enroll or Unenroll Attendee for Scheduler agent actions to your agent. Edit the agent topic and add this instruction to it. 1\. When asked to schedule or book an appointment, first ask the user what type of appointment they are looking for with the following options: 1\. 1-1 2\. Group 2\. If the user selects Group, set isGroupAppointment to true. 3\. If the appointment type is mentioned in the initial intent, do not ask again. Examples: Schedule a group appointment implies the appointment is of type Group. Schedule a one on one meeting implies the appointment is of type 1-1. 4\. If a user asks to enroll into a group appointment, run the 'Enroll or Unenroll Attendee for Scheduler' action. Enrolling does not require firstName, lastName, or companyInfo unless explicitly asked by the action’s output due to an error. Don't assume firstName, lastName, companyInfo, if required ask the user. Do not ask for email. 5\. Take the email from User Context 6\. If a user asks to un-enroll into a group appointment, run the 'Enroll or Unenroll Attendee for Scheduler' action. Unenrolling does not require firstName, lastName, or companyInfo unless explicitly asked by the action’s output due to an error. Don't assume firstName, lastName, companyInfo, if required ask from user. Do not ask for email. ## Assets Edit the agent topic and add this instruction to it. If the service resources fetched during "Collect Appointment Details for Scheduler" contains the label Asset then show it to the user so that the user knows which resource is of the type Asset. Once the user selects a resource, update the serviceResources field using only the resource name (do not include any descriptive labels such as '(Asset)'). When agents list assets in search results, they’re listed with the suffix (Asset). ## Multi-Resource Scheduling Before you begin: - Enable Multi-resource scheduling. - Update field-level security on Assigned Resources that Agentforce uses. - By default, the first service resource is marked as the primary and the other resources are marked as required. Edit the agent topic and add this instruction to it. 1\. If the customer provides more than one Service Resource name when booking an appointment, capture and store all the names provided. Before moving to the next step, ensure that each provided Service Resource name is converted to a valid Service Resource ID. 2\. Only proceed once all names have been successfully resolved to IDs. 3\. If appointment collection action throws an error providing multiple options for Service Resources, allow the user to choose the correct Service Resource. 4\. Do not discard or ignore the other names. Still remember and retain all originally provided names. Any name mentioned during the conversation for Service Resources should always be passed to “Collect Appointment Details for Scheduler” action. Never skip a name entered by the user. 5\. Once all the Service Resource names are resolved to IDs, pass all the resolved Service Resource IDs to the subsequent steps of the appointment booking process. By default, the first service resource is marked as the primary and the other resources are marked as required. ## Cases Before you begin: Update the field-level security to set Read on cases that Agentforce uses. Edit the agent topic and add this instruction to it. 1\. Ask the user if the appointment is regarding a Case. If it is, ask the user to provide the case number and pass it to “Collect Appointment Details for Scheduler”. 2\. If the appointment type is mentioned in the initial intent, do not ask again. For example, "schedule an appointment for this case number " clearly mentions the relevant Case number. # Enable and Configure Capacity-Based Scheduling Control the number of appointments that can be scheduled for a given shift and type of work. Service resources can control the number of appointments per shift to meet customer needs. Territory managers can choose whether to distribute capacity in a shift for a work topic or across multiple work topics ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
- **[Prerequisites to Enable Capacity-Based Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_prereqs_capacity_based_scheduling.htm&release=264.0.0&type=5)** Before you use capacity-based scheduling, perform these prerequisites. - **[Considerations for Capacity-Based Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_considerations_for_capacity_based_scheduling.htm&release=264.0.0&type=5)** An appointment is assigned to a shift and service resource based on the shift’s availability and capacity. When a particular shift or work type reaches capacity, the additional appointments are scheduled in the next ‌shift or with another service resource with available capacity. - **[Enable ‌Capacity-Based Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_enable_capacity_based_scheduling.htm&release=264.0.0&type=5)** To view and control the number of service appointments at a shift and work-type level, enable capacity-based scheduling. - **[Available Limits for Capacity-Based Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_available_limits_for_capacity_based_scheduling.htm&release=264.0.0&type=5)** Capacity-based scheduling provides two types of limits that can be set for a service territory to validate capacity. - **[Set the Capacity Limit for a Service Territory](https://help.salesforce.com/s/articleView?id=platform.ls_set_the_capacity_limit_for_a_service_territory.htm&release=264.0.0&type=5)** Specify the number of appointments that can be scheduled for a shift work type. - **[Add the Shift Capacity Component](https://help.salesforce.com/s/articleView?id=platform.ls_add_the_shift_capacity_component.htm&release=264.0.0&type=5)** Add the Service Territory Capacity Summary component to view shift capacity information for a service resource or service territory. - **[Set Capacity for Shifts](https://help.salesforce.com/s/articleView?id=platform.ls_set_capacity_for_shifts.htm&release=264.0.0&type=5)** For each shift, set the number of appointments that can be booked for a particular work type. # Enable and Configure Concurrent Scheduling With concurrent scheduling, it’s easy to schedule multiple customer appointments in the same time slot. For example, a doctor’s office can let several patients book a Monday 1-2 PM appointment to ensure against downtime. Appointments appear as overlapping events on the Salesforce Calendar. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
- **[Considerations for Concurrent Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_considerations_concurrent.htm&release=264.0.0&type=5)** Here are some things to keep in mind when you implement concurrent scheduling. - **[Update Field-Level Security for the Time Slot Object](https://help.salesforce.com/s/articleView?id=platform.ls_update_fls_concurrent.htm&release=264.0.0&type=5)** Update the field-level security on the Work Type Group and Max Appointment fields on the Time Slot object for all user profiles involved in scheduling. - **[Enable Concurrent Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_enable_concurrent.htm&release=264.0.0&type=5)** Enable Concurrent Scheduling to let users schedule multiple appointments within the same time slot. - **[Enable Concurrent Scheduling for Group Service Appointments](https://help.salesforce.com/s/articleView?id=platform.ls_enable_concurrent_scheduling_for_group_appointments.htm&release=264.0.0&type=5)** Schedule multiple appointments within the same time slot when you’ve selected the group appointment mode. - **[Define Time Slots for Concurrent Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_set_max_appointments.htm&release=264.0.0&type=5)** Define time slots for concurrent appointments and specify the maximum number of appointments that can be made in a time slot. # Enable and Configure Multi-Resource Scheduling Multi-resource scheduling lets users create appointments that include more than one required service resource. An appointment can have a maximum of five required service resources: one primary required service resource plus four required service resources, including asset resources. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
- **[Considerations for Multi-Resource Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_multiresource_considerations.htm&release=264.0.0&type=5)** In multi-resource scheduling, a primary service resource anchors the appointment and must be marked required. The primary service resources are the only service resources whose skills are matched to the skill requirements for an appointment. Other required service resources are matched to the appointment based on their availability and the primary resource’s service territory. Resources not marked required are considered optional. - **[Enable Multi-Resource Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_enable_multiresource.htm&release=264.0.0&type=5)** Turn on Multi-Resource Scheduling to let users schedule groups of resources, as well as assets, for customer appointments. - **[Update Field-Level Security for Multi-Resource Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_update_fls_multiresource.htm&release=264.0.0&type=5)** Update the field-level security settings on the Primary Resource field on the Assigned Resource object for all user profiles that need to access multi-resource scheduling. # Enable and Install DevOps Center in the Org Enable DevOps Center to provide the permissions needed to install the DevOps Center package in the org. You can install DevOps Center in the org that is the final release org in your pipeline, or in another org that is unrelated to the orgs in the pipeline. ### Required Editions
Available in: Lightning Experience in Enterprise, Performance, Professional (API access required), Unlimited, and Developer Editions.
Available in: Government Cloud Plus as interoperable. Turning on DevOps Center in Government Cloud Plus orgs can send data outside the authorization boundary. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. DevOps Center is supported in orgs in the EU that aren’t part of EU OZ, per standard product terms and conditions.
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/images/icon_important.png) Important You can’t install DevOps Center in a sandbox. To install DevOps Center in a Professional Edition org, the org must have API access, which enables DevOps Center to access data from the source control system. If you attempt to install DevOps Center in a Professional Edition org without API access, an installation error occurs. Contact your Account Executive to request the API add-on. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center_setup-264-0-0-production-enus/4741b024-a514-4bcf-8f2f-9d308932d2de/images/icon_important.png) Important Starting in April 2026, new downloads and installations of the DevOps Center managed package are no longer supported. If you previously installed it, you can continue using it and access it from the App Launcher. We recommend enabling and setting up Lifecycle Center, which provides agentic experience and enhanced workflows to streamline change and release management. See [Set up Next Generation DevOps Center](https://help.salesforce.com/s/articleView?id=platform.next_gen_devops_center_setup.htm&language=en_US).
User Permissions Needed
To install and configure DevOps Center: “Download AppExchange Packages”
1. From Setup, enter DevOps Center in the Quick Find box, then select **DevOps Center**. If you don’t see DevOps Center as an option under Setup in your Developer Edition org, it’s likely that the DE org was created before DevOps Center was introduced and doesn’t have the correct permissions. To continue, create another Developer Edition org. 2. Enable DevOps Center, and then review and accept the opt-in terms. You can disable the preference at any time. Disabling the preference means that you can’t install the app or updates. If DevOps Center is already installed, disabling the preference prevents access to the DevOps Center application. 3. Click **Install Package**. After the installer launches, you’re guided through the installation process to install the latest version of the DevOps Center managed package. You can come back to this Setup page to reinstall or upgrade the package. 4. Select **Install for Admins Only**, and then click **Install**. 5. Approve third-party access to login.salesforce.com and test.salesforce.com. Next, create an external client app so that DevOps Center appears in App Launcher, then be sure to assign the appropriate DevOps Center permission sets to each team member. - **[Confirm DevOps Center Package Installation](https://help.salesforce.com/s/articleView?id=platform.devops_center_confirm_installation.htm&release=264.0.0&type=5)** When installation is complete, you receive a confirmation email. You can confirm the installation on the Installed Packages Setup page. - **[Create an External Client App](https://help.salesforce.com/s/articleView?id=platform.devop_center_create_external_client_app.htm&release=264.0.0&type=5)** External client apps provide single sign-on (SSO) and use OAuth protocols to authorize third-party applications. When you configure the app and assign appropriate permission sets, DevOps Center appears in the App Launcher. - **[Add Team Members as Users in the DevOps Center Org](https://help.salesforce.com/s/articleView?id=platform.devops_center_add_team_member.htm&release=264.0.0&type=5)** Add any team members who aren’t already users in the DevOps Center org. For each team member, specify the appropriate license and profile based on their role. - **[Assign the DevOps Center Permission Sets](https://help.salesforce.com/s/articleView?id=platform.devops_center_assign_permsets.htm&release=264.0.0&type=5)** Assign permission sets to everyone working on your project in DevOps Center. Consider who must change project-level settings (such as adding another work environment) and who needs access to only work items. - **[Configure Session Settings](https://help.salesforce.com/s/articleView?id=platform.devops_center_configure_session_settings.htm&release=264.0.0&type=5)** Due to the underlying technologies that support creating sessions that allow DevOps Center to interact with multiple environments in a project’s pipeline, IP addresses aren’t static. Therefore, you must disable the session setting, Lock sessions to the IP address from which they originated, to avoid seeing errors when attempting to commit and promote changes. - **[Disable API Access Control Setting for Allowlisted Connected Apps](https://help.salesforce.com/s/articleView?id=platform.devops_center_disable_api_access_control.htm&release=264.0.0&type=5)** For orgs with API Access Control settings enabled by Salesforce Support, you must disable the “For admin-approved users, limit API access to only allowlisted connected apps” because this setting blocks DevOps Center from interacting with required APIs. # Enable Anonymous Resource Scheduling When anonymous scheduling is enabled, users don’t get to choose service resources during the scheduling process. Also, assigned resources’ names aren’t shown on the appointment summary page. Hiding service resource names from users protects their privacy. It also gives you the flexibility to assign different resources to appointments if the resources initially assigned become unavailable. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To open, edit, or create a flow in Flow Builder: Manage Flow
To run a flow: Run Flows
To enable anonymous scheduling, first enable automatic service resource assignment by setting the new Anonymous Booking attribute to True and Service Resource Booking attribute to False on your flow screen component. And then hide assigned resources’ names by setting the new Show Service Resource attribute on the Review Service Appointment flow screen component to False. To hide service resources’ names on the review appointment page: 1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 2. Edit the flow that you want to hide service resource names for. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Before you can edit a flow, you must deactivate it. 3. Use the showServiceResource variable to set the value of the Show Service Resource attribute to False. 1. On the Manager tab, under Variables, click **showServiceResource**. 2. Click **Edit**. 3. In the Default Value field, enter {!$GlobalConstant.False}. 4. Click **Done**. 4. Save your changes, and then activate the flow. #### See Also - [Enable Automatic Service Resource Assignment](https://help.salesforce.com/s/articleView?id=platform.ls_enable_auto_resource_assignment.htm&release=264.0.0&type=5 "When automatic service resource assignment is enabled, your customers or guest users can schedule appointments without selecting a service resource. Based on the selected time slot, an appropriate service resource is automatically assigned to the appointment. You can also configure your flows to give users the option to manually select a service resource or have one assigned automatically.") # Enable API Catalog Support for MuleSoft APIs and MCP Servers Let API Catalog sync MuleSoft APIs and MCP servers from Anypoint Platform. Salesforce admins can then use API Catalog to activate actions for MuleSoft APIs and allow tools for MuleSoft MCP servers to use in Agentforce. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable Einstein in MuleSoft Anypoint Platform: MuleSoft Anypoint Platform permission set
1. From Setup, in the Quick Find box, enter MuleSoft, and then select **MuleSoft**. 2. Select **Anypoint Platform Setup**. 3. In Your connected Anypoint Platform Organization, click **View Connection Info**. 4. If you aren't the Anypoint Platform admin, contact your Anypoint Platform admin to request to turn on MuleSoft support for API Catalog. If you are the Anypoint Platform admin, in Connection to MuleSoft Anypoint Platform, click **Go to Anypoint Platform** and then follow the steps in [_MuleSoft Documentation_: Enabling API Catalog](https://docs.mulesoft.com/access-management/enabling-api-catalog). #### See Also - [API Catalog](https://help.salesforce.com/s/articleView?id=platform.api_catalog.htm&language=en_US) - [MuleSoft Documentation: Connecting a Trusted Salesforce Organization to Anypoint Platform](https://docs.mulesoft.com/access-management/connecting-salesforce-orgs) # Enable Appointment Distribution Enable the Appointment Distribution and Aggregate Resource Use settings. Then define an appointment assignment policy to calculate resource utilization and link the assignment policy to your scheduling policy. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
- **[Appointment Distribution Implementation Considerations](https://help.salesforce.com/s/articleView?id=platform.ls_appointment_distribution_implementation_considerations.htm&release=264.0.0&type=5)** Learn about the limitations for appointment distribution, and plan your implementation accordingly. - **[Enable Appointment Distribution Settings](https://help.salesforce.com/s/articleView?id=platform.ls_enable_appt_distribution_settings.htm&release=264.0.0&type=5)** To enable appointment distribution, enable the Appointment Distribution and Aggregate Resource Use settings. The Appointment Distribution setting provides access to the appointment distribution feature. And the Aggregate Resource Use setting starts the utilization score calculation for service resources. A utilization score is required for appointment distribution to work as expected. - **[Define an Appointment Assignment Policy](https://help.salesforce.com/s/articleView?id=platform.ls_define_an_appt_assignment_policy.htm&release=264.0.0&type=5)** Define an appointment assignment policy and specify the parameters that are used to calculate the utilization score for service resources. - **[Link Your Appointment Assignment Policy to a Scheduling Policy](https://help.salesforce.com/s/articleView?id=platform.ls_link_appt_assign_policy_to_scheduling_policy.htm&release=264.0.0&type=5)** Link your appointment assignment policy to the scheduling policy that your flows use for appointment scheduling. # Enable Appointment Distribution Settings To enable appointment distribution, enable the Appointment Distribution and Aggregate Resource Use settings. The Appointment Distribution setting provides access to the appointment distribution feature. And the Aggregate Resource Use setting starts the utilization score calculation for service resources. A utilization score is required for appointment distribution to work as expected. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 2. Enable **Appointment Distribution**, and then enable **Aggregate Resource Use**. # Enable Approval Notifications for Classic Approval Processes in Slack If your org uses both classic Approval Processes and Salesforce Digital HQ app, approval notifications are automatically enabled in Slack. Users receive approval requests as messages on the Salesforce Digital HQ’s Messages tab. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable approvals in Slack: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Slack notifications are turned on automatically. Admins can turn off Slack notifications from Setup on the Notification Delivery Settings page. 1. From Setup, in the Quick Find box, enter Notification Delivery Settings, and select **Notification Delivery Settings**. 2. From the Approval requests dropdown menu, select **Edit**. 3. Select **Slack**, and enable **Salesforce Digital HQ**. #### See Also - [Salesforce for Slack](https://help.salesforce.com/s/articleView?id=slack.slack_apps_digital_hq.htm&language=en_US) # Enable Asserted Encryption with SSO In order to meet FAL2 requirements, your IdP may need to sign assertions it generates. Find the variables you need to enter in your IdP to enable encrypted assertion. Encrypted assertion is not supported for the FedRAMP region. ## Create an Encryption Certificate 1. Follow the enablement steps in [Single Sign On (SSO)](https://help.salesforce.com/s/articleView?id=platform.platform_o_single_sign_on.htm&release=264.0.0&type=5 "Own from Salesforce supports single sign on using SAML 2.0. Instead of relying on local authentication for password and security policies, you can set your own authentication using your managed Identity Provider."), until your unique parameters are generated in Own. 2. Click Download XML File. 3. Open the downloaded file in a text editor that supports XML. 4. In the file that opens, use Ctrl + F to search for “”. 5. Copy the value in between the “” and “” tags (without including the tags). This is your encryption certificate. 6. Open a new text file and paste the content into it. Save the file as a .pem file (for Azure Entra ID, save the file as a .cer file). You now have an encryption certificate file to upload to your IdP. Some IdPs also request the Encryption Algorithm and/or Key Transport Algorithm. The algorithms we use are: Encryption Algorithm: AES256-CBC Key Transport Algorithm: RSA-OAEP Continue setting up your SAML app within your IdP. ## Set Up SAML App Proceed according to your Identity Provider. 1. Okta - In the app's SAML Settings: 1. Click Show Advanced Settings. 2. In the Asserted Encryption drop-down, select Encrypted. 3. In the Encryption Algorithm drop-down, select AES256-CBC. 4. In the Key Transport Algorithm drop-down, select RSA-OAEP. 5. Click Browse files… next to the Encryption Certificate field and upload your encryption certificate. 2. Azure Entra ID - In the application page: 1. Select Token encryption. 2. Click Import Certificate to upload your encryption certificate. 3. Click the … menu next to the thumbprint status and select Activate token encryption certificate. 3. Salesforce - In the connected app page: 1. Select Encrypt SAML Response to upload the encryption certificate. 2. In the Encryption Method field, enter AES-256. 4. Ping - In the app’s Configuration tab: 1. Select Encryption. 2. Select AES\_256 as your algorithm for encrypting assertions. 3. Import your encryption certificate. # Enable Asset Scheduling in Salesforce Scheduler It’s easier than ever to book rooms and equipment, such as MRI machines or dialysis chairs, with Asset Scheduling. ### Required Editions

Salesforce Scheduler is available for an extra cost in Lightning Experience.

Asset Scheduling is available for an extra cost in Lightning Experience.

Available in: Enterprise and Unlimited Editions
- **[Provide User Profile Access to the Asset Field](https://help.salesforce.com/s/articleView?id=platform.ls_asset_field_access.htm&release=264.0.0&type=5)** Grant field-level access to the Asset field on Service Resource to allow users to create or manage resources in Salesforce Scheduler. - **[Update the Service Resource Page Layout for Asset Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_asset_page_layout.htm&release=264.0.0&type=5)** Give users access to Asset Scheduling on the Service Resource page. - **[Update the Default Asset Sharing Setting (Optional)](https://help.salesforce.com/s/articleView?id=platform.ls_asset_sharing_setting.htm&release=264.0.0&type=5)** The default sharing setting for assets is Controlled by Parent, which requires a parent account and/or contact to be defined for an asset. However, assets do not always require parent accounts. To remove this restriction, change the default sharing setting. - **[Create Assets in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_asset_create.htm&release=264.0.0&type=5)** Create assets such as meeting rooms and equipment. - **[Make AssetsAvailable for Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_asset_service_resource.htm&release=264.0.0&type=5)** Add your assets as service resources to make them available for scheduling. # Enable Automatic Resource Assignment and Anonymous Scheduling You can enable automatic service resource assignment to let users schedule appointments without selecting service resources. Customers or guest users don’t always know the names of service resources. And sometimes they don’t care about which resource they’re assigned. After you enable automatic resource assignment, service resources are automatically assigned based on the time slots users select. Also, you can hide the assigned resources’ names on the appointment summary page to protect their privacy. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
In anonymous scheduling, Salesforce Scheduler shows the list of aggregated time slots for the service resources who are available for the selected work type group, engagement channel (optional), and service territory. After you select a time slot, Salesforce Scheduler randomly assigns a service resource from the resources available for the time slot. If you want to optimize resource utilization, enable the Appointment Distribution setting. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note The random selection of a service resource applies only to the Lightning console. For APIs, Salesforce Scheduler returns a set of service resources available for each time slot. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_example.png) Example Bruce, a customer, wants to meet a retail banker for wealth management queries at the 1 Market St. branch between 2 PM and 5 PM. Three retail bankers—John, Sara, and Jane—are available during this time. John is available for the 1 PM to 2 PM and 2 PM to 3 PM slots. Sara is available for the 2 PM to 3 PM, 3 PM to 4 PM, and 4 PM to 5 PM slots. And Jane is available for the 3 PM to 4 PM and 4 PM to 5 PM slots. In the time slot screen, Bruce sees a consolidated view of the available time slots: 1 PM to 2 PM, 2 PM to 3 PM, 3 PM to 4 PM, and 4 PM to 5 PM. If Bruce selects the 3 PM to 4 PM time slot, Salesforce Scheduler randomly assigns one of the three available retail bankers to the appointment. - **[Grant Users Edit Access to the Anonymous Booking Field](https://help.salesforce.com/s/articleView?id=platform.ls_field_level_security_anonymous_booking.htm&release=264.0.0&type=5)** Before you enable automatic service resource assignment, give users edit access to the Anonymous Booking field on the Service Appointment object. - **[Enable Automatic Service Resource Assignment](https://help.salesforce.com/s/articleView?id=platform.ls_enable_auto_resource_assignment.htm&release=264.0.0&type=5)** When automatic service resource assignment is enabled, your customers or guest users can schedule appointments without selecting a service resource. Based on the selected time slot, an appropriate service resource is automatically assigned to the appointment. You can also configure your flows to give users the option to manually select a service resource or have one assigned automatically. - **[Enable Anonymous Resource Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_enable_anonymous_scheduling.htm&release=264.0.0&type=5)** When anonymous scheduling is enabled, users don’t get to choose service resources during the scheduling process. Also, assigned resources’ names aren’t shown on the appointment summary page. Hiding service resource names from users protects their privacy. It also gives you the flexibility to assign different resources to appointments if the resources initially assigned become unavailable. # Enable Automatic Service Resource Assignment When automatic service resource assignment is enabled, your customers or guest users can schedule appointments without selecting a service resource. Based on the selected time slot, an appropriate service resource is automatically assigned to the appointment. You can also configure your flows to give users the option to manually select a service resource or have one assigned automatically. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To open, edit, or create a flow in Flow Builder: Manage Flow
To run a flow: Run Flows
Before you enable automatic service resource assignment, update field-level security for the Anonymous Booking field on the Service Appointment object to give users edit access. Use the new Anonymous Booking and Service Resource Booking attributes on your flow screen component. These attributes are available on the Select Service Resource, Service Resource Availability, and Select Service Resource and Service Appointment Time flow screen components. By default, Anonymous Booking is set to False and Service Resource Booking to True, and there’s no change in your flow's behavior. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note In Salesforce Scheduler with the Asset Management add-on, a service resource can be a technician (person) or an asset (meeting room or equipment). Create and assign different sets of skills for technicians and assets to prevent assets from being automatically assigned as service resources. For example, mammograms can be a skill for an X-ray technician. And 3D mammogram can be a skill for an X-ray machine. 1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 2. Create a flow or edit an existing flow that you want to enable automatic resource assignment for. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Before you can edit a flow, you must deactivate it. 3. On the Manager tab, under Variables, edit the allowAnonymousBooking and allowResourceBooking variables and set their values according to your requirement. - To skip the resource selection page and automatically assign service resources, set allowAnonymousBooking to {!$GlobalConstant.True} and allowResourceBooking to {!$GlobalConstant.False}. - To give users the option to choose between automatic resource assignment and manual resource selection, set both allowAnonymousBooking and allowResourceBooking to {!$GlobalConstant.True}. ![Service Resource Assignment](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_auto_assign_resource.png) 4. Save your changes, and then activate the flow. #### See Also - [Grant Users Edit Access to the Anonymous Booking Field](https://help.salesforce.com/s/articleView?id=platform.ls_field_level_security_anonymous_booking.htm&release=264.0.0&type=5 "Before you enable automatic service resource assignment, give users edit access to the Anonymous Booking field on the Service Appointment object.") # Enable ‌Capacity-Based Scheduling To view and control the number of service appointments at a shift and work-type level, enable capacity-based scheduling. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To enable capacity-based scheduling: Customize Application
Before enabling capacity-based scheduling, complete the [prerequisites](https://help.salesforce.com/s/articleView?id=platform.ls_prereqs_capacity_based_scheduling.htm&release=264.0.0&type=5 "Before you use capacity-based scheduling, perform these prerequisites."). 1. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 2. Enable Capacity-Based Scheduling. By default, after you enable capacity-based scheduling, the capacity of your shift work topics is set to 0. To ensure business continuity, populate capacity values in your shift work topics so that your schedule works as it did before in one of these ways. - Initialize the capacity for existing shift records using a script. For more information on using the script, see [Initialize Shift Work Topics with Capacity](https://help.salesforce.com/s/articleView?id=platform.ls_initialize_shift_work_topics_with_capacity.htm&release=264.0.0&type=5 "Initialize capacity for shift work topics in your org."). - Set the capacity for shift work topics. For more information, see [Set the Capacity Limit for a Service Territory](https://help.salesforce.com/s/articleView?id=platform.ls_set_the_capacity_limit_for_a_service_territory.htm&release=264.0.0&type=5 "Specify the number of appointments that can be scheduled for a shift work type.") and [Set Capacity for Shifts](https://help.salesforce.com/s/articleView?id=platform.ls_set_capacity_for_shifts.htm&release=264.0.0&type=5 "For each shift, set the number of appointments that can be booked for a particular work type.") - **[Initialize Shift Work Topics with Capacity](https://help.salesforce.com/s/articleView?id=platform.ls_initialize_shift_work_topics_with_capacity.htm&release=264.0.0&type=5)** Initialize capacity for shift work topics in your org. # Enable Classic Approval Processes in Chatter If your organization has both Approvals and Chatter enabled, administrators can turn on Approvals in Chatter. Users then receive approval requests as posts in their Chatter feeds. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable Approvals in Chatter: Customize Application
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. Before you begin, make sure that all classic approval processes in your org are properly configured to take advantage of Approvals in Chatter. After turning on this feature, all existing active classic approval processes start generating Chatter posts. 1. From Setup, enter Chatter Settings in the Quick Find box, then select **Chatter Settings**. 2. Click **Edit**. 3. Select **Allow Approvals**. 4. Save your changes. #### See Also - [Prepare to Enable Classic Approval Processes in Chatter](https://help.salesforce.com/s/articleView?id=platform.approvals_for_chatter_getstart.htm&release=264.0.0&type=5 "Because Approvals in Chatter relies on both Chatter and the Classic Approval Processes feature, getting your org set up involves more than just turning on the feature. Before you enable Approvals in Chatter, understand the limitations and considerations for Approvals in Chatter and post templates.") - [Considerations for Classic Approval Processes in Chatter](https://help.salesforce.com/s/articleView?id=platform.approvals_for_chatter_considerations.htm&release=264.0.0&type=5 "Find out more about Approvals in Chatter, before you enable it.") - [Where Do Approval Request Posts for Classic Approval Processes Appear?](https://help.salesforce.com/s/articleView?id=platform.approvals_for_chatter_overview.htm&release=264.0.0&type=5 "When your org has Approvals in Chatter enabled, approval request posts appear in various Chatter feeds. To see the approval request post, you must have access to the approval record.") # Enable Clickjack Protection in Site.com Clickjacking is a type of attack that tricks users to click something, such as a button or link, because they perceive they are clicking something safe. Instead, the button or link performs malicious actions on your site, leading to data intrusion, unauthorized emails, changed credentials, or other site-specific results. Hidden iframes can be placed maliciously on site pages and entice users to click a button or link that appears below the hidden iframe. With clickjack protection, you can configure whether your browser allows external domains to frame your Site.com site pages. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

User Permissions Needed
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail page

AND

Site administrator or designer role assigned at the site level

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note To configure clickjack protection for Experience Cloud sites, see [Enable Clickjack Protection in Experience Cloud Sites](https://help.salesforce.com/s/articleView?id=experience.networks_clickjack_protection.htm&type=5&language=en_US). 1. In Site.com Studio, click **Site Configuration** | **Edit**. 2. Select your preferred level of clickjack protection. - **Allow framing by any page (no protection)**: The least secure level. All external domains can frame your site pages. - **Allow framing of site pages on external domains (good protection)**: Only trusted external domains can frame your site pages. You specify the domains that you trust in the Trusted Domains for Inline Frames list. - **Allow framing by the same origin only (recommended)**: The default level for Site.com sites. Allows framing of site pages by pages with the same domain name and protocol security. - **Don’t allow framing by any page (most protection)**: The most secure level, but this option can cause certain pages to appear as blank pages. To avoid this issue, use the default setting instead. 3. Save your changes. 4. If you chose to allow framing of your site pages on external domains, specify the domains that you trust to frame each site’s pages. 1. From Setup in Salesforce Classic, enter Sites in the Quick Find box, and then select **Sites**. 2. Click the site label to open the Site Details page. 3. Click **Add Trusted Domain** in the Trusted Domains for Inline Frames section and enter the domain you want to allow iframes on. You can add up to 512 domains. Some infrastructure limits the maximum size of HTTP headers. If you allow multiple domains to frame your site pages, keep the size of the CSP header under 12 KB. Salesforce customers report issues when the header size approaches 16 KB, and third parties often add to the header during processing. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip Added domains take effect only when **Allow framing of site pages on external domains (good protection)** is selected. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Internet Explorer supports clickjack protection through the legacy X-Frame-Options HTTP Header only. This header supports `sameorigin`, `deny` (none), `allowall`, and `allow-from` uri. In particular, `allow-from` uri supports only one URI. To support a list for IE users, the framing site must identify itself to the site domain by passing in a query parameter in the `iframe` tag. For example, if you add https://www.example.com as a trusted external domain and your site URL is https://MyDomainName.my.site.com, then the page on https://www.example.com must make its iframe as follows: ``` ``` You can also set the trusted external domain in the `iframeDomain` cookie. This method allows iframes if the `_iframeDomain` URL variable isn’t saved when navigating between pages in IE. ```markup Cookie iframeDomainCookie = ApexPages.currentPage().getCookies().get('iframeDomain'); if (iframeDomainCookie == null) { iframeDomainCookie = new Cookie('iframeDomain','www.example.com'); // Set the new cookie for the page ApexPages.currentPage().setCookies(new Cookie[]{iframeDomainCookie}); } ``` #### See Also - [Configure Site Properties](https://help.salesforce.com/s/articleView?id=platform.siteforce_website_properties.htm&release=264.0.0&type=5 "Set properties for the site, such as the home page, site name, and error page, and create an anonymous preview URL that allows other users to review the site before it goes live. The URL is always valid (unless you disable it) and shows the latest work in progress. It's only available to the people you send it to, and can't be found by search engines.") - [Enable Clickjack Protection in Experience Cloud Sites](https://help.salesforce.com/s/articleView?id=experience.networks_clickjack_protection.htm&type=5&language=en_US) - [Create and Edit Salesforce Sites](https://help.salesforce.com/s/articleView?id=platform.sites_creating_and_editing_sites.htm&release=264.0.0&type=5 "After you enable Salesforce Sites, create a Salesforce Site. Or, update an existing site.") # Enable Concurrent Scheduling Enable Concurrent Scheduling to let users schedule multiple appointments within the same time slot. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Salesforce Scheduler, and then select **Salesforce Scheduler Settings**. 2. Enable Concurrent Scheduling. # Enable Concurrent Scheduling for Group Service Appointments Schedule multiple appointments within the same time slot when you’ve selected the group appointment mode. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Salesforce Scheduler, and then select **Salesforce Scheduler Settings**. 2. Enable **Concurrent Scheduling**, and then enable **Group Service Appointments**. # Enable Contactless Users Enable the contactless user feature for your org to reduce the overhead of managing customers and partners by creating users without contact information. Without contacts, you don’t have to worry about keeping user and contact records in sync. For example, if you maintain a user directory for identity purposes, no contact information is required. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Professional, Unlimited, and Developer Editions
User Permissions Needed
To enable Contactless User setting: Manage Users and Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note The contactless users feature is available only with the External Identity license, which enables access to the Salesforce Customer Identity product. 1. From Setup, enter User in the Quick Find box, then select **User Management Settings**. 2. Select **Contactless Salesforce Customer Identity Users**. If you later want to upgrade users to a full community license, you must first add contact information to the user record. #### See Also - [Manage Contactless Users](https://help.salesforce.com/s/articleView?id=platform.users_contactless_users_manage_users.htm&release=264.0.0&type=5 "By default, when Salesforce creates a user record for a customer or partner, it adds the user’s contact information. But if your implementation doesn’t require contact information for customers or partners, consider going contactless to reduce the overhead of managing these types of users. Without contacts, you don’t have to worry about keeping user and contact records in sync. For example, if you maintain a user directory for identity purposes, no contact information is required.") # Enable Custom Address Fields After you review the feature limitations and configure the State and Country/Territory picklists, enable custom address fields. Then you can add custom fields to standard and custom objects in Object Manager using the compound Address field type. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: all editions
User Permissions Needed
To modify user interface settings: Customize Application
Before you enable custom address fields, review the [requirements and limitations](https://help.salesforce.com/s/articleView?id=platform.fields_caf_requirements.htm&release=264.0.0&type=5 "Before you enable custom address fields, configure State and Country/Territory picklists and review these considerations."). 1. In Setup, in the Quick Find box, enter User Interface, and then select **User Interface**. 2. In the Setup section, select **Use custom address fields** and save your changes. After you enable custom address fields, the Address data type is available when you add a field via Object Manager. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note This feature can’t be disabled. #### See Also - [Custom Address Fields](https://help.salesforce.com/s/articleView?id=platform.fields_caf.htm&release=264.0.0&type=5 "Improve address data accuracy and the end-user experience with Custom Address Fields. Users can populate a custom address field manually or they can use the Google lookup to search for an address. Admins and APIs can access each address stored in a custom address field as a structured compound data type as well as individual address components.") - [Create a Custom Address Field](https://help.salesforce.com/s/articleView?id=platform.fields_caf_create.htm&release=264.0.0&type=5 "Use the Address field type to create a custom address field that mimics the behavior of standard address fields. For example, add a Warehouse Address field to a standard or custom object. Users can populate a custom address field manually, or they can use the Google lookup to search for an address. Then you can access each address that’s stored in a custom address field, either as a structured compound data type or as individual address components.") - [Salesforce Features and Edition Allocations](https://help.salesforce.com/s/articleView?id=xcloud.overview_limits_general.htm&type=5&language=en_US) # Enable Custom Permissions in Permission Sets Custom permissions give you a way to provide access to custom processes or apps. After you’ve created a custom permission and associated it with a process or app, you can enable the permission in permission sets. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

In Group and Professional Edition organizations, you can’t create or edit custom permissions, but you can install them as part of a managed package.

User Permissions Needed
To enable custom permissions in permission sets: Manage Profiles and Permission Sets
1. From Setup, enter Permission Sets in the Quick Find box, then select **Permission Sets**. 2. Select a permission set, or create one. 3. On the permission set overview page, click **Custom Permissions**. 4. Click **Edit**. 5. To enable custom permissions, select them from the Available Custom Permissions list and then click **Add**. To remove custom permissions from the permission set, select them from the Enabled Custom Permissions list and then click **Remove**. 6. Click **Save**. You can see and edit all custom permissions that are enabled for a permission set on its summary page. On the permission set’s detail page, click **View Summary**. #### See Also - [Configure Permissions and Access in Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_permissions_access.htm&release=264.0.0&type=5 "Configure object, field, and user permissions as well as other access and feature settings in permission sets.") - [Custom Permissions](https://help.salesforce.com/s/articleView?id=platform.custom_perms_overview.htm&type=5&language=en_US) - [Manage Permissions in the Permission Set and Permission Set Group Access Summaries](https://help.salesforce.com/s/articleView?id=platform.perm_sets_summary_page.htm&release=264.0.0&type=5 "To help you manage your users’ permissions, you can see and update all object, user, field, and custom permissions that are enabled for a permission set or permission set group in its summary page. You can also manage which permission set groups the permission set is included in and vice versa.") # Enable Custom Permissions in Profiles Custom permissions give you a way to provide access to custom processes or apps. After you’ve created a custom permission and associated it with a process or app, you can enable the permission in profiles. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience

Available in: Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

In Group and Professional Edition organizations, you can’t create or edit custom permissions, but you can install them as part of a managed package.

User Permissions Needed
To enable custom permissions in profiles: Manage Profiles and Permission Sets
We strongly recommend that you use permission sets and permission set groups instead of profiles to manage your users’ custom permissions. Because you can reuse smaller permission set building blocks, you can avoid creating dozens or even hundreds of profiles for each user and job function. For more information, see [Permissions Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_overview.htm&release=264.0.0&type=5 "A permission set is a collection of settings and permissions that give users access to various tools and functions. Permission sets extend users’ functional access without changing their profiles and are the recommended way to manage your users’ permissions.") in Salesforce Help. 1. From Setup, in the Quick Find box, enter Profiles, and then select **Profiles**. 2. Select a profile. 3. Depending on which user interface you’re using, do one of the following. - In the enhanced profile user interface, click **Custom Permissions**, and then click **Edit**. - In the original profile user interface, in the Enabled Custom Permissions related list, click **Edit**. 4. To enable custom permissions, select them from the Available Custom Permissions list and click **Add**. To remove custom permissions from the profile, select them from the Enabled Custom Permissions list and click **Remove**. 5. Click **Save**. #### See Also - [Custom Permissions](https://help.salesforce.com/s/articleView?id=platform.custom_perms_overview.htm&type=5&language=en_US) # Enable Data Translation Allow translation of data stored in certain objects and fields. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, and Developer Editions
User Permissions Needed
To view company information: View Setup and Configuration
To change company information: Modify All Data
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Before enabling data translation, note these important considerations: - Data translation requires API version 48.0 or later. - Data translation counts against your Salesforce org’s storage limits. - Data translation is available on some objects and fields. For example, data translation is available on the Industries Record Alert, Product, and Product Category objects. 1. From Setup, in the Quick Find box, enter Company Information, and then select **Company Information**. 2. In the Organization Detail section, click **Edit**. 3. Select **Enable Data Translation**. 4. Click **Save**. Data translation is available for the Name and Description fields through the Translation tab within Product. You can also manage your data translations through the Export and Import options within Translation Workbench. Optionally, enable data translation for custom fields. #### See Also - [Translation Workbench](https://help.salesforce.com/s/articleView?id=platform.workbench.htm&release=264.0.0&type=5 "Use Translation Workbench to maintain translated values for metadata and data labels in your Salesforce org. Specify languages for translation and assign translators for each language. Manage translated values for any Salesforce supported language. Translators can maintain translations directly through the workbench, or you can export translation files for bulk translation imports.") - [Salesforce B2B Commerce and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_intro.htm&type=5&language=en_US) - [Salesforce B2B Commerce and D2C Commerce Enable Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&language=en_US) - [Data and File Storage Allocations](https://help.salesforce.com/s/articleView?id=xcloud.overview_storage.htm&type=5&language=en_US) - [Localize Record Alerts](https://help.salesforce.com/s/articleView?id=ind.record_alerts_localize.htm&language=en_US) - [Manage Objects’ Data Translations](https://help.salesforce.com/s/articleView?id=platform.ls_manage_data_translations.htm&language=en_US) # Enable Data Translation Enable users to translate the data for Work Type Group, Service Territory, and Service Resource objects. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Company Information, and then select **Company Information**. 2. In the Organization Detail section, click **Edit**. 3. Under Translation Settings, select **Enable Data Translation**. 4. Save your changes. # Enable Data Translation for Custom Fields Allow translation of data stored in custom fields on certain objects and fields. You can enable data translation on custom fields with a type of Text, Text Area, Text Area (Long), Text Area (Rich), and URL. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, and Developer Editions
User Permissions Needed
To change data translation settings:

Customize Application

AND

Modify All Data

Before enabling data translation for custom fields, you must enable data translation. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Data translation requires API version 48.0 or later. 1. From Setup, in the Quick Find box, enter Data Translation Settings, and then select **Data Translation Settings**. 2. Select an object to enable data translation for its custom fields. Only objects that support data translation are listed. 3. Select the custom fields that you want to make available for data translation. Data translation can only be enabled on custom fields with a type of Text, Text Area, Text Area (Long), Text Area (Rich), and URL. 4. Click **Save**. If your B2B Commerce Store supports multiple languages, data translation is available for the selected custom fields through the Translation tab within Product and Product Category. You can also manage your data translations through the Export and Import options within Translation Workbench. #### See Also - [Salesforce B2B Commerce and D2C Commerce](https://help.salesforce.com/s/articleView?id=commerce.comm_intro.htm&type=5&language=en_US) - [Salesforce B2B Commerce and D2C Commerce Enable Data Translation](https://help.salesforce.com/s/articleView?id=commerce.comm_enable_data_translation.htm&language=en_US) - [Translation Workbench](https://help.salesforce.com/s/articleView?id=platform.workbench.htm&release=264.0.0&type=5 "Use Translation Workbench to maintain translated values for metadata and data labels in your Salesforce org. Specify languages for translation and assign translators for each language. Manage translated values for any Salesforce supported language. Translators can maintain translations directly through the workbench, or you can export translation files for bulk translation imports.") - [Localize Record Alerts](https://help.salesforce.com/s/articleView?id=ind.record_alerts_localize.htm&language=en_US) - [Manage Objects’ Data Translations](https://help.salesforce.com/s/articleView?id=platform.ls_manage_data_translations.htm&language=en_US) # Enable Debug Mode for Lightning Components Enable debug mode to make it easier to debug JavaScript code from Lightning components. Only enable debug mode for users who are actively debugging JavaScript. Salesforce is slower for users who have debug mode enabled. ### Required Editions
Available in: Salesforce Classic (not available in all orgs) and Lightning Experience

Available for use in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions

Create Lightning components using the UI in Enterprise, Performance, Unlimited, Developer Editions, or a sandbox.

The Lightning Component framework executes in one of two modes: production and debug. - **Production Mode**: By default, the framework runs in production mode. This mode is optimized for performance. Framework code is optimized and “minified” to reduce the size of the JavaScript code. As a result of this process, the JavaScript code served to the browser is obfuscated. Optimization and minification are performed on framework code only. Custom component code is not minified or obfuscated. Untouched custom component code includes both components you create yourself, and components installed as part of a managed package. Minification is a performance optimization, not intellectual property protection. Code that’s minified is hard to read, but it’s not encrypted or otherwise prevented from being viewed. - **Debug Mode:** When you enable debug mode, framework and component JavaScript code isn’t minified and is easier to read and debug. Debug mode also adds more detailed output for some warnings and errors. Debug mode has a significant performance impact. Salesforce is slower for any user who has debug mode enabled. For this reason, we recommend using it only when actively debugging JavaScript code, and only for users involved in debugging activity. Don’t leave debug mode on permanently. Users who have debug mode enabled see a banner notification once a week while it’s enabled. To enable debug mode for users in your org: 1. From Setup, enter Debug Mode in the Quick Find box, then select **Debug Mode Users**. Users with debug mode enabled have a check mark in the Debug Mode column. 2. In the user list, locate any users who need debug mode enabled. If necessary, use the standard list view controls to filter your org’s users. 3. Enable the selection checkbox next to users for whom you want to enable debug mode. 4. Click **Enable**. To disable debug mode for a user, follow the preceding steps and click **Disable** instead of **Enable**. #### See Also - [Lightning Component Framework](https://help.salesforce.com/s/articleView?id=platform.aura_overview.htm&release=264.0.0&type=5 "The Lightning Component framework is a UI framework for developing single-page web apps for mobile and desktop devices.") - [Lightning Aura Components Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/) # Enable Development Mode Although you can view and edit Visualforce page definitions on the Visualforce Pages page in Setup, enabling Visualforce development mode is the best way to build Visualforce pages. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable development mode: Customize Application
Development mode provides you with: - A special development footer on every Visualforce page that includes the page’s view state, any associated controller, a link to the component reference documentation, and a page markup editor that offers highlighting, find-replace functionality, and auto-suggest for component tag and attribute names. - The ability to define new Visualforce pages just by entering a unique URL. - Error messages that include more detailed stack traces than what standard users receive. 1. From your personal settings, enter Advanced User Details in the Quick Find box, then select **Advanced User Details**. No results? Enter Personal Information in the Quick Find box, then select **Personal Information**. 2. Click **Edit**. 3. Select the Development Mode checkbox. 4. Optionally, select the Show View State in Development Mode checkbox to enable the View State tab on the development footer. This tab is useful for monitoring the performance of your Visualforce pages. 5. Click **Save**. # Enable Drop In Appointments To manage customers who visit the branch without prior appointments, enable the Drop In Appointments setting. ### Required Editions Before enabling Drop In Appointments, complete the [prerequisites](https://help.salesforce.com/s/articleView?id=platform.ls_prereqs_drop_in_appointments.htm&release=264.0.0&type=5 "Before you enable the Drop In Appointments setting, complete these prerequisites.").
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 2. Enable **Drop In Appointments**. 3. To match the skill and the skill levels of the service resources with the skill requirement of a work type while creating a waitlist, enable **Skill and Skill Level Matching**. 4. To show all waitlist participants in a single, unified list regardless of the service requested, enable **Simplified View**. When you enable Skill and Skill Level Matching, Lobby Management segments the waitlist view by work type groups. Simplified View removes this segmentation making sure that your greeters can easily view the priority of participants across the waitlist. # Enable Dynamic Forms on Mobile With Dynamic Forms on Mobile, your mobile users can have the same customized experience that your desktop users have. ### Required Editions
Lightning App Builder available in: Salesforce Classic (not available in all orgs) and Lightning Experience
Lightning pages and Dynamic Forms available in: Lightning Experience and the Salesforce mobile app

Available in: Group Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions

User Permissions Needed
To create and save Lightning pages in the Lightning App Builder: Customize Application
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Dynamic Forms (desktop and mobile) is supported for most but not all standard LWC-enabled objects. For a list of LWC-enabled objects, see [LWC Migration for Record Home Pages](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/migrate_lwc). If you open a record page for an object in the Lightning App Builder and don't see a Fields tab in the component panel, then Dynamic Forms isn't supported for that object. As an example, the Note object doesn’t support Dynamic Forms because it has a fixed layout. Dynamic Forms isn’t supported on objects that aren’t LWC-enabled. For example, Products, Events, and Tasks, which aren’t LWC-enabled, use information from the object page layout. 1. From Setup, in the Quick find box, enter Mobile, and then select **Salesforce Mobile App**. 2. Enable **Dynamic Forms and Dynamic Highlights Panel on Mobile**. ![The Dynamic Forms on Mobile opt in toggle](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/df_on_mobile_opt_in.png) Now that you’ve enabled this option, record pages that you create with Dynamic Forms fields after this point are fully mobile-friendly. However, to take advantage of the benefits of Dynamic Forms on mobile, update your existing Dynamic Forms-enabled record pages. 3. From Setup, in the Quick Find box, enter App Builder, and then select **Lightning App Builder**. 4. Open a Dynamic Forms-enabled record page. 5. If the Record Detail - Mobile component is on the canvas, hover over it and click ![Delete](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lab_component_trash_icon.png) to remove it. It’s usually found at the bottom of the Details tab. ![Record Detail Mobile component](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/lab_record_detail_mobile_cmp.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note To ensure mobile users see your Dynamic Forms fields and customizations, you must remove the Record Detail - Mobile component from a Dynamic Forms-enabled record page. If you enable Dynamic Forms on Mobile but don't remove this component, mobile users only see the fields from the Record Detail - Mobile component, not your customized Dynamic Forms fields. After the component is removed, mobile users see the same customized Dynamic Forms fields as desktop users. 6. Save the page. 7. Optionally, if the page is active, click **Activation** and confirm that the page is activated for the phone form factor. Dynamic Forms on Mobile works on iOS and Android phones and tablets on all currently supported devices that run the Salesforce mobile app. See [Requirements for the Salesforce Mobile App](https://help.salesforce.com/s/articleView?id=xcloud.salesforce_app_requirements.htm&type=5&language=en_US) . ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note If you use an override action to handle default record values with an LWC custom component on a Dynamic Forms-enabled record page, and you have Dynamic Forms on Mobile enabled, to ensure the override works properly on mobile, you must [encode the default record values in your custom LWC component](https://developer.salesforce.com/docs/platform/lwc/guide/use-navigate-default.html#handle-default-field-values-using-an-override-action). #### See Also - [Dynamic Forms on Mobile Considerations](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_mobile_considerations.htm&release=264.0.0&type=5 "Keep these considerations in mind when working with Dynamic Forms on mobile.") - [Break Up Your Record Details with Dynamic Forms](https://help.salesforce.com/s/articleView?id=platform.dynamic_forms_overview.htm&release=264.0.0&type=5 "The more fields that there are on your page layout, the more that the Record Detail component becomes a monolithic block of fields that you can’t customize. With Dynamic Forms, you can migrate the fields and sections from your page layout to individual components in Lightning App Builder. Then you can configure them the same way as the other components on the page - spreading them out across multiple columns and tabs, and dynamically showing and hiding them based on record data, user details, and device type, so that your users get only the fields and sections that they want.") # Enable Einstein Entitlement and Routing in Anypoint Platform Let Anypoint Platform users use your entitlement and route Einstein prompts through your Salesforce org. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable Einstein entitlement and routing in MuleSoft Anypoint Platform: MuleSoft Anypoint Platform permission set
1. From Setup, in the Quick Find box, enter MuleSoft, and then select **MuleSoft**. 2. Select **Anypoint Platform Setup**. 3. In the Your connected Anypoint Platform Organization section, click **View Connection Info**. 4. In the Connection to MuleSoft Anypoint Platform window, enable Enable Einstein in MuleSoft Anypoint Platform. # Enable Email Approval Response for Classic Approval Processes After you’ve reviewed the considerations and prepared the right template, flip the switch that lets users respond to approval requests directly from their email. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable Email Approval Response: Customize Application
Before you begin, give the appropriate users the “API Enabled” user permission so that they can respond to approval requests by email. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. 1. From Setup, enter Process Automation Settings in the Quick Find box, then select **Process Automation Settings**. 2. Select **Enable email approval response**. 3. Save your changes. #### See Also - [Considerations for Email Approval Response in Classic Approval Processes](https://help.salesforce.com/s/articleView?id=platform.approvals_email_limitations.htm&release=264.0.0&type=5 "Before you enable the ability to act on approvals via email, review how email works with your classic approval processes.") - [Let Users Respond to Approval Requests from Classic Approval Processes by Email](https://help.salesforce.com/s/articleView?id=platform.approvals_email_parent.htm&release=264.0.0&type=5 "If the email notification includes all the information that an approver needs to make a decision, enable email approval response. That way, a user can simply reply to the email notification.") # Enable Enhanced Permission Set Component Views When you have large numbers of Apex class assignments for permission sets, enable a paginated result set, standard filtering, and sorting to work more efficiently. ### Required Editions
Available in: both Lightning Experience and Salesforce Classic
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To enable Enhanced Permission Set Component Views: Customize Application
1. From Setup, enter User in the Quick Find box, then select **User Management Settings**. 2. Enable **Enhanced Permission Set Component Views**. 3. On the Permission Sets Setup page, select a permission set. 4. Select **Apex Class Access** and click **Edit**. If you have many classes assigned to the permission set, select the number of items per page to view. ![The edit page for Apex Class Access in a permission set with the enable enhanced option enabled.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/access/images/user_management_apex_view.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note If you have more than 5,000 Apex classes, the “All” view doesn’t display any classes, and the letter “A” view is selected by default. #### See Also - [Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_overview.htm&release=264.0.0&type=5 "A permission set is a collection of settings and permissions that give users access to various tools and functions. Permission sets extend users’ functional access without changing their profiles and are the recommended way to manage your users’ permissions.") # Enable Enhanced Permission Set List Views You can more easily manage permission sets with Enhanced Permission Set List Views. ### Required Editions
Available in: Lightning Experience
Available in: All Editions
User Permissions Needed
To enable the enhanced permission set list view: Manage Users
1. From Setup, in the Quick Find box, enter Users, and then select **User Management Settings**. 2. Enable **Enhanced Permission Set List View**. #### See Also - [Manage Permission Sets in the Enhanced Permission Set List View](https://help.salesforce.com/s/articleView?id=platform.enhanced_permission_set_list_view.htm&release=264.0.0&type=5 "Manage permission sets more easily with improved search options and advanced filtering with the Enhanced Permission Set List View.") # Enable Enhanced Profile List Views Enhanced lists give you the ability to quickly view, customize, and edit list data to speed up your daily productivity. ### Required Editions
User Permissions Needed
To enable the enhanced profile list view: Customize Application
1. From Setup, enter User in the Quick Find box, then select **User Management Settings**. 2. Enable **Enhanced Profile User Interface**. # Enable Enhanced Public Group Assignment With the Enhanced Public Group Assignment, you can assign and remove members such as users, other groups, roles, and portal roles. ### Required Editions
Available in: Lightning Experience
Available in: All Editions
User Permissions Needed
To enable the enhanced public group assignment: Manage Users
1. From Setup, in the Quick Find box, enter Public Groups and select **Public Groups**. 2. Select a public group and then click **View Summary**. #### See Also - [Manage Public Group Membership](https://help.salesforce.com/s/articleView?id=platform.manage_public_group_membership.htm&release=264.0.0&type=5 "In public groups, you can assign and remove members such as users, other groups, roles, and portal roles. Where you manage public group membership depends on the type of updates that you’re making.") # Enable Enhanced Role List Views The Enhanced Role List View is designed to manage role-based access control. ### Required Editions
Available in: Lightning Experience
Available in: All Editions
User Permissions Needed
To enable the enhanced role list view: Manage Users
1. From Setup, in the Quick Find box, enter Users, and then select **User Management Settings**. 2. Enable **Enhanced Role List View**. #### See Also - [Manage Roles in the Enhanced Role List View](https://help.salesforce.com/s/articleView?id=platform.enhanced_role_list_view.htm&release=264.0.0&type=5 "View, sort and filter user roles, and edit multiple records inline with the Enhanced Role List View.") # Enable Enhanced User List Views The Enhanced User List View is designed to optimize data interaction and management. ### Required Editions
Available in: Lightning Experience
Available in: All Editions
User Permissions Needed
To enable the enhanced user list view: Manage Users
1. From Setup, in the Quick Find box, enter Users and select **User Management Settings**. 2. Enable **Enhanced User List View**. #### See Also - [Manage Users in the Enhanced User List View](https://help.salesforce.com/s/articleView?id=platform.enhanced_user_list_view.htm&release=264.0.0&type=5 "Build dynamic, customized lists that show records tailored to specific criteria in Enhanced User List View. You can also use Enhanced User List View to edit multiple records inline.") # Enable External Change Data Capture and Tracking Enable external change data capture for the data source and each external object that you want to monitor. ### Required Editions
User Permissions Needed
To create or edit external objects: Customize Application
1. From Setup, enter External Data Sources in the Quick Find box, then select **External Data Sources**. 2. Click **Edit**, and select **Eligible for External Change Data Capture**. 3. Click **Save**. 4. From the External Objects list , select the external object that you want to track. 5. Click **Edit**, and select **Track Data Changes**. 6. Click **Save**. After you enable change tracking, a publication channel is created under the topic for the external object. For example, `/data/Object Name__ChangeEvents` appears as `/data/Products__ChangeEvents`, where Product is the object name. # Enable Field-Level Security for Permission Sets during Field Creation Set field-level security for a field on permission sets instead of profiles. ### Required Editions
Available in: all editions
User Permissions Needed
To enable setting field-level security for permission sets instead of profiles during field creation: Customize Application
1. From Setup, in the Quick Find box, enter User Management Settings, and then select **User Management Settings**. 2. Enable **Field-Level Security for Permission Sets during Field Creation**. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_example.png) Example To follow best practices for user access control, you plan to assign permissions through permission sets and permission set groups. For easier permission set management, turn on **Field-Level Security for Permission Sets during Field Creation**. When you create a field, you can then set field-level security on your permission sets as part of the workflow. Now when you create a field on an object, set field-level security on a field, or change a field’s type, you assign field-level security for permission sets instead of profiles. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note The View Field Accessibility page doesn’t currently support permission sets. #### See Also - [Create Custom Fields](https://help.salesforce.com/s/articleView?id=platform.adding_fields.htm&type=5&language=en_US) - [Set Field-Level Security for a Field on All Permission Sets](https://help.salesforce.com/s/articleView?id=platform.users_fields_fls_permsets.htm&release=264.0.0&type=5 "Set field-level security for a field on permission sets. This option is an alternative to setting field-level security for a field on profiles.") # Enable HSTS Preloading on a Custom Domain As a security best practice, enable and submit your custom domain for HTTP Strict Transport Security (HSTS) preloading. Connections can be vulnerable when HTTP requests are redirected to HTTPS. An example is a user attempting to access your custom domain using the HTTP protocol. By adding your registrable domain to the third-party HSTS preload list, supported browsers always use HTTPS, protecting your users from attacks during those HTTP redirections. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, and Unlimited Editions.
Applies to: Salesforce Sites and LWR, Aura, and Visualforce sites
User Permissions Needed
To view a domain:

Manage Custom Domains

OR

View Setup and Configuration

To edit a domain: Manage Custom Domains
The [`Strict-Transport-Security`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) HTTP header informs browsers to always use HTTPS, a secure connection, to access the domain. However, the first time a user accesses a domain, an HTTP-only connection can be vulnerable while the browser interprets that instruction. HSTS preloading helps to mitigate this issue. If your domain is on that list, browsers that use the list always treat that domain as requiring a secure connection. For a list of the browsers that support HSTS preloading, see [https://hstspreload.org](https://hstspreload.org). To add your domain to the list, you enable the `Strict-Transport-Security` HTTP header on the registrable domain. Then you add that domain to the third-party HSTS preload list. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Only registrable domains are eligible for HSTS preloading. A registrable domain, —sometimes called a root domain or naked domain—is the domain’s public suffix, such as .com or .org, plus the label to the left of that suffix. An example is example.com without the www subdomain. So, `example.com` and `example.co.uk` are eligible for HSTS preloading, but `www.example.com`, `www.example.co.uk`, and `sub.example.com` aren’t eligible. To enable HSTS on a custom domain that serves your site content, complete these steps. 1. Enable HSTS preloading on the `Strict-Transport-Security` HTTP header for your custom domain’s registrable domain. 1. If your domain in Salesforce is a registrable domain such as https://example.com, select **Allow HSTS preloading registration** on the domain. To access this setting, edit your domain from the Domains Setup page. When that setting is enabled, Salesforce includes the `preload` directive in the HSTS header for your custom domain. 2. If your domain in Salesforce includes a subdomain, complete the prerequisites for the related registrable domain. Examples of domains with a subdomain include https://www.example.com, https://shop.example.com, and https://shop.example.co.uk. In all three examples, the registrable domain is example.com. You can find the prerequisites on [https://hstspreload.org](https://hstspreload.org). To determine any steps required to qualify for HSTS preloading, use the form on that website. Salesforce can’t complete those prerequisites for you. If your custom domain is a registrable domain and the Allow HSTS preloading registration option is enabled on your domain, Salesforce adds the required HTTP header. Otherwise, Salesforce can’t complete the prerequisites for your domain. 2. To add your domain to the HSTS preload list, go to [https://hstspreload.org](https://hstspreload.org), verify your domain’s eligibility, and then submit your domain. When your registrable domain is on the HSTS preload list, browsers that check that list always use HTTPS to access your domain and its subdomains. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note A third party defines and manages the HSTS preload list and its prerequisites. Salesforce can’t add your domain to the list for you. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note HSTS preloading is enabled on all Salesforce and Visualforce pages, and for all system-managed domains for Experience Cloud sites and Salesforce Sites. The system-managed domain format for Experience Cloud sites is `MyDomainName.my.site.com` in orgs with enhanced domains and `ExperienceCloudSitesSubdomain.force.com` in orgs without enhanced domains. The system-managed domain format for Salesforce Sites is `MyDomainName.my.salesforce-sites.com` in orgs with enhanced domains and `SalesforceSitesSubdomain.force.com` in orgs without enhanced domains. No action is required to enable HSTS preloading on those domains. #### See Also - [Custom Domains](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt.htm&release=264.0.0&type=5 "Provide a branded experience for users who access your external-facing Salesforce content by serving your Digital Experiences or Salesforce Sites on a domain that you own, such as https://www.example.com.") - [Custom Domain Management](https://help.salesforce.com/s/articleView?id=platform.domain_mgmt_dom_detail.htm&release=264.0.0&type=5 "Keep your custom domain up to date with your business needs. Learn how to manage your domain during org migrations and certificate changes. Edit your domain’s configuration option, move to a different domain name, or enable HSTS preloading. And when you no longer need a custom domain, delete the domain and its custom URLs in Salesforce.") # Enable Lifecycle Center Governance Enable Lifecycle Center Governance to unlock policy controls in your org and start enforcing policies across coding agents. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable Governance: Lifecycle Center Admin
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_important.png) Important Turn on and configure Governance from your hub org. Sandbox orgs can connect to the production hub org to import governance policies. 1. From the App Launcher, find and select **Lifecycle Center**. 2. On the Lifecycle Center home page, click **Manage Features**. 3. Find **Governance** in the list, and turn it on. Policies are now available in the **Governance** tab. When you first activate Governance, all policies are active and all rules are enabled by default. You can review and manage them in the **Policies** tab. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note If the **Governance** tab isn't visible by default in existing orgs, go to **Setup**, search for **Tabs**, find the **Governance** tab, and set its visibility to **Default On**. #### See Also - [Access Policy Controls](https://help.salesforce.com/s/articleView?id=platform.devops_center_governance_access_policy_controls.htm&release=264.0.0&type=5 "Policy controls is your central workspace for reviewing and managing the governance policies and rules active in your org.") # Enable Maps and Location Services in Salesforce Scheduler Salesforce Scheduler uses maps and location services to search for appointment locations (service territories). ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Maps, select **Maps and Location Settings**, and then select **Edit**. 2. Select **Enable Maps and Location Services (powered by Google)**. 3. Select **Enable autocomplete on standard address fields (Lightning Experience and mobile app only)**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note You can only select this option after you’ve selected the **Enable Maps and Location Services (powered by Google)** option. 4. Save your changes. 5. From Setup, in the Quick Find box, enter Data Integration, and then select **Data Integration Rules**. 6. Click **Geocodes for Service Territory Address**, and then click **Edit Rule Settings**. 7. Select **Update all records (recommended)**. 8. Save your changes. # Enable MuleSoft Direct Let Salesforce admins discover and deploy pre-built MuleSoft Direct integrations directly from Salesforce. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable MuleSoft Direct in MuleSoft Anypoint Platform: MuleSoft Anypoint Platform root Organization Administrator permission and role
A MuleSoft Direct integration is a prebuilt app or a configurable example. Integrations simplify the business workflow implementation by allowing external systems to easily integrate with the Salesforce Cloud apps. An integration can depend on several other apps that are necessary to complete a business use case. ## Enable MuleSoft Direct in Anypoint Platform The Anypoint Platform organization administrator enables MuleSoft Direct in Anypoint Platform 1. Make sure your Anypoint Platform and Salesforce orgs are connected through a trusted tenant relationship. See [Manage Your MuleSoft Anypoint Platform Connections](https://help.salesforce.com/s/articleView?id=platform.mulesoft_manage_your_anypoint_platform_connection.htm&release=264.0.0&type=5 "Enable cross-platform features between Salesforce and Anypoint Platform by establishing a tenant relationship."). 2. Sign in to Anypoint Platform using an account that has the root Organization Administrator permission. 3. In the navigation bar or the main Anypoint Platform page, click **Access Management**. 4. Select **Salesforce**. 5. In the section for the connected Salesforce organization to enable MuleSoft Direct for, select **Enable**. 6. Select **Continue**. 7. Select the business groups to enable MuleSoft Direct integrations for, and then select **Save settings**. ## Access MuleSoft Direct in Salesforce Setup After MuleSoft Direct is enabled in Anypoint Platform, the Salesforce organization administrator can view and deploy available integration assets to the Salesforce organization. 1. From Setup, in the Quick Find box, enter MuleSoft, and then select **MuleSoft**. 2. Select **MuleSoft Direct**. 3. Select **Get Started**. 4. Accept the terms and conditions, and select **Save**. ## Deploy Integration Assets When you deploy an integration asset, an application instance is created and shown in App instances for the integration asset. For information about enabling and deploying assets from the Salesforce org, see [Enabling Integrations](https://help.salesforce.com/s/articleView?id=ind.enable_integration_assets.htm&language=en_US). ## Delete an App Instance Remove an app instance that you no longer need from your Salesforce org and Anypoint Runtime Manager. 1. From Setup, in the Quick Find box, enter MuleSoft, and then select **MuleSoft**. 2. Select **MuleSoft Direct**. 3. Select the integration asset to delete. 4. Click the down arrow, and then select **Delete Instance**. 5. Select **Delete**. # Enable Multi-Resource Scheduling Turn on Multi-Resource Scheduling to let users schedule groups of resources, as well as assets, for customer appointments. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note To schedule assets, your org must have the Asset Scheduling license. 1. From Setup, in the Quick Find box, enter Salesforce Scheduler, and then select **Salesforce Scheduler Settings**. 2. Enable Multi-Resource Scheduling. 3. Save your changes. # Enable Multiple Service Resource Event Setting To group individual events and view the list of all service resources under a single event, enable the Multiple Service Resource Event setting. ### Required Editions Before enabling Multiple Service Resource Event, ensure that you fulfill all the [prerequisites](https://help.salesforce.com/s/articleView?id=platform.ls_prereqs_multiple_attendee_event.htm&release=264.0.0&type=5 "Before you enable the Multiple Service Resource Event setting in your production org, enable the setting in a sandbox and then test its features.").
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 2. Enable **Event Management**, and then enable **Multiple Service Resource Event**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note After you enable this setting, you can’t disable it. # Enable Multiple Time Zone Selection In your appointment flows, when you set the Show Time Zone Pick List attribute to True, the appointment time slot pages show a dropdown list with all the time zones supported in Salesforce. When scheduling appointments, users can select the time zone in which they want to see the appointment time slots. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To open, edit, or create a flow in Flow Builder: Manage Flow
To run a flow: Run Flows
1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 2. Create a flow or edit an existing flow. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Before you can edit a flow, you must deactivate it. 3. In Flow Builder, on the **Manager** tab, edit the showTimeZonePicklist flow variable, and set its value to {!$GlobalConstant.True}. 4. Save your changes, and then activate the flow. # Enable Object Permissions in Permission Sets Object permissions determine the base-level access users have to create, read, edit, and delete records for each object. Permissions sets are the recommended feature for managing object permissions. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
The available object settings vary according to which Salesforce edition you have.
Permission sets available in: Essentials, Contact Manager, Professional, Group, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To view object settings: View Setup and Configuration
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_tip.png) Tip Instead of completing this task manually, get help from Setup with Agentforce. For example, tell the Setup agent, “Update permission set Sales\_Operations to enable the Read permission for accounts.” For more information, see [User Access Management in Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_user_access.htm&language=en_US). 1. From Setup, in the Quick Find box, enter Permission Sets, and then select **Permission Sets**. 2. Select a permission set. 3. In the Find Settings... box, enter the name of the object and select it from the list. Click **Edit**, 4. In the Object Permissions section, enable the desired permissions. 5. Click **Save**. On the object’s page, you can also edit tab settings, record type settings, and field permissions. You can see and edit all object permissions that are enabled for a permission set on its summary page. On the permission set’s detail page, click **View Summary**. You can also see which permission sets grant access to an object and edit this access for custom permission sets in Object Manager. Select an object, and then click **Object Access**. #### See Also - [Object Permissions](https://help.salesforce.com/s/articleView?id=platform.users_profiles_object_perms.htm&release=264.0.0&type=5 "Object permissions specify the base-level access users have to create, read, edit, and delete records for each object.") - [Configure Permissions and Access in Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_permissions_access.htm&release=264.0.0&type=5 "Configure object, field, and user permissions as well as other access and feature settings in permission sets.") - [Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_overview.htm&release=264.0.0&type=5 "A permission set is a collection of settings and permissions that give users access to various tools and functions. Permission sets extend users’ functional access without changing their profiles and are the recommended way to manage your users’ permissions.") - [Enable User Permissions in Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_app_perms.htm&release=264.0.0&type=5 "User permissions specify what tasks users can perform and what features users can access. In permission sets, you enable user permissions in the App Permissions and System Permissions sections.") - [Manage Permissions in the Permission Set and Permission Set Group Access Summaries](https://help.salesforce.com/s/articleView?id=platform.perm_sets_summary_page.htm&release=264.0.0&type=5 "To help you manage your users’ permissions, you can see and update all object, user, field, and custom permissions that are enabled for a permission set or permission set group in its summary page. You can also manage which permission set groups the permission set is included in and vice versa.") # Enable Operating Hours for Service Territory Members for Work Type Groups To set hours for resources working on appointment topics, enable the Operating Hours for Service Territory Members for Work Type Groups preference. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note - Before enabling the preference, make sure that you complete all the [prerequisites](https://help.salesforce.com/s/articleView?id=platform.ls_prereqs_operating_hours_for_resources_working_on_appointment_topics.htm&release=264.0.0&type=5 "To enable the Operating Hours for Service Territory Members to Work on Appointment Topics preference, your organization must meet certain prerequisites."). - This feature uses the new Appointment Topic Time Slot junction object that’s now to be used in all development. Related Salesforce Scheduler flows also use this junction object. - After you enable this setting, you can’t disable it. - All the new orgs are provided with this setting enabled by default. - When you enable this setting, there’s no loss of functionality. 1. From Setup, in the Quick Find box, enter Salesforce Scheduler, and then select **Salesforce Scheduler Settings**. 2. Enable **Operating Hours for Service Territory Members for Work Type Groups**. 3. Click **Enable** in the pop-up. 4. Transfer the customizations that you backed up. # Enable or Disable Quality Gate Rules for Test Suites Enable or disable quality gate rules after they’re assigned to test suites. While we recommend that you do not disable your quality gate rules, you can temporarily disable them if tests are inconsistent or to speed up deployment. After disabling, reevaluate quality gate rules to promote the changes. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Professional (API access required), Unlimited, and Developer Editions
User Permissions Needed
To enable or disable quality gate rules for test suites: DevOps Testing Manager
1. Go to the Stage Assignments tab. 2. For the pipeline stage record, click **View**. 3. Click **Assign Quality Gate Rules**. 4. To enable or disable a quality gate rule for specific test suites: 1. In the Enable Quality Gate Rule column, click ![Edit](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/DevOps_Testing_Edit_Icon.png). 2. To enable a quality gate rule, select the **Enable Quality Gate Rule** checkbox. 3. To disable a quality gate rule, deselect the **Enable Quality Gate Rule** checkbox. 4. Click **Apply**. 5. Save your work. 5. To enable or disable a quality gate rule for all test suites: 1. Go to the quality gate rules record page. 2. Click the dropdown arrow next to the **Edit** button. 3. To enable a quality gate rule for all test suites, select **Activate All Assignments**. 4. To disable a quality gate rule for all test suites, select **Deactivate All Assignments**. 5. Click **Confirm**. # Enable or Disable Translation Workbench Translation Workbench allows you to specify languages for translation, assign translators, and manage your translations through the workbench or bulk translation. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable and disable Translation Workbench: Customize Application
1. From Setup, in the Quick Find box, enter Translation Language Settings, and then select **Translation Language Settings**. 2. On the welcome page, click **Enable**. Enabling Translation Workbench makes these changes to your Salesforce org. If a customized component doesn’t have a translated value, the component uses the org’s default language. When you deactivate a language, all translations for that language are still available in Translation Workbench. However, users with that language selected see the org’s default language values. - The Manage Translation systems permission is available in permission sets. - You must edit picklist values individually. You can’t mass-edit existing picklist values, but you can still mass-add new values. - When picklist values are sorted alphabetically, the values are alphabetical by the user's locale. - Reports have a Filter Language dropdown list in the Filters pane of the report builder. Selecting a language filters on translated strings for any filter criteria that use the starts with, contains, or doesn’t contain operator. - Import files have a Language dropdown list, and all records and values within the import file must be in the selected language. - Web-to-Lead and Web-to-Case have a Language dropdown list before you generate the HTML. To disable Translation Workbench, from Setup, in the Quick Find box, enter Translation Language Settings, and then select **Translation Language Settings**. Click **Disable**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note In a Developer org with a managed package containing translations, Translation Workbench can’t be disabled after it’s enabled. #### See Also - [Supported Languages](https://help.salesforce.com/s/articleView?id=xcloud.faq_getstart_what_languages_does.htm&type=5&language=en_US) - [Language, Locale, and Currency Settings](https://help.salesforce.com/s/articleView?id=xcloud.admin_language_locale_currency.htm&type=5&language=en_US) - [Rename Object, Tab, and Field Labels](https://help.salesforce.com/s/articleView?id=platform.customize_rename.htm&release=264.0.0&type=5 "You can change the name of almost any object, field, or tab in Salesforce. This simple adjustment lets you continue using the terminology your users already know and helps them transition to using Salesforce. However, Salesforce Help and most pages in Setup always display the original names for standard objects, fields, and tabs.") # Enable Resource Appointment Sharing To enable appointment sharing with service resources, enable the Resource Appointment Sharing setting. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 2. Enable **Resource Appointment Sharing**. # Enable Salesforce Sites To use Salesforce Sites with or without a custom domain, you must first enable Salesforce Sites and register your Salesforce Sites domain. Your company's Salesforce Sites domain is used for all the sites that you create. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Developer, Enterprise, Performance, and Unlimited Editions
User Permissions Needed
To create and edit Salesforce Sites:

Customize Application

OR

Create and Set Up Experiences

To enable Salesforces Sites and register your Salesforce Sites domain, take these steps. 1. From Setup, enter Sites in the Quick Find box, then select **Sites**. Your Sites domain includes your org’s My Domain in the format MyDomainName.my.salesforce-sites.com. 2. Read and accept the Sites Terms of Use by selecting the checkbox. 3. Click **Register My Salesforce Site Domain**. After you accept the Terms of Use and register your Salesforce Sites domain, the changes related to site creation are tracked in your organization's Setup Audit Trail and the Site History related list. It may take up to 48 hours for your registration to take effect. #### See Also - [Set Up Salesforce Sites](https://help.salesforce.com/s/articleView?id=platform.sites_setup_overview.htm&release=264.0.0&type=5 "Enable Salesforce Sites and create public websites and applications that are directly integrated with your Salesforce org—without requiring users to log in with a username and password.") - [Salesforce Sites Considerations](https://help.salesforce.com/s/articleView?id=platform.sites_considerations.htm&release=264.0.0&type=5 "Before you create and use Salesforce Sites, review considerations around App Exchange packaging, access and authentication, and potential URL conflicts between sites.") - [Enhanced Domains](https://help.salesforce.com/s/articleView?id=xcloud.domain_name_enhanced.htm&type=5&language=en_US) # Enable Service Resource Filtering Let users schedule appointments faster and with the most suitable service resources by applying service resource filters in your appointment flows. Use the Filter by Resource IDs attribute on relevant flow pages to specify a comma-separated list of service resource IDs. Salesforce Scheduler limits its search to the specified list of resources when getting service resources or service territory slots for appointments. On the service resource selection page, service resources appear in the order in which you specify them in the comma-separated list. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
User Permissions Needed
To open, edit, or create a flow in Flow Builder: Manage Flow
To run a flow: Run Flows
The Filter by Resource IDs attribute is available on the Select Service Resource page in outbound flows. It's also available on the Select Service Resource and Service Appointment Time page in inbound and guest flows. 1. From Setup, in the Quick Find box, enter Flows, and then select **Flows**. 2. Create a flow or edit an existing flow that you want to enable service resource filtering for. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Before you can edit a flow, you must deactivate it. 3. In Flow Builder, edit the flow screen with the Select Service Resource or Select Service Resource and Service Appointment Time flow screen component. 4. Select the flow screen component. 5. In the Filter by Resource IDs attribute, enter a comma-separated list of service resource IDs. The affected page shows only those service resources that are in the specified list of service resources and in the selected service territory and work type group. 6. Save your changes, and then activate the flow. # Enable Single Sign-On Own from Salesforce supports single sign on using SAML 2.0. Instead of relying on local authentication for password and security policies, you can set your own authentication using your managed Identity Provider. Single sign-on is supported using SAML 2.0 and IdP-initiated flows. The IdP must allow the SAML Assertion to be used in order to authenticate. The SSO application needs to be created in your IdP provider before enabling SSO in the platform. Single sign-on settings can only be accessed by Admin and Master Admin users. These settings are hidden from all other users. Admin users have read-only access while Master Admins can edit settings. It is recommended to limit Master Admin access to a single user. 1. Click the Security icon at the bottom left corner of the screen. 2. Scroll down to the Authentication Method section and click Change to Single Sign On (SSO). The SSO Settings will open on the right of the screen. 3. Enter the Identity Provider Issuer: A unique identifier of the IdP (Usually an https:// URL). The SAML issuer is typically the Entity ID, which can be verified in the IdP’s metadata xml. 4. Upload the IdP Signature Certificate. Your certificate should be an X.509 PEM encoded file. 5. (Optional) Enter a Logout URL for where to direct users after signing out. 6. Click Next. The process may take a few minutes to verify the settings. After the settings are saved and your unique parameters are created, the IdP Parameters are displayed. 7. Copy the values into the relevant fields in your identity provider. If you want all users to be logged in to a specific region on sign in, click Show advanced access and select the region-specific Direct RelayState, rather than the Default RelayState. 8. The RelayState must be defined in your IdP provider. RelayState is sometimes also referred to as a "Start URL", "Target URL", "Target application URL", among other names. Refer to your IdP provider's SAML application documentation for their name for this variable. 9. In your IdP, make sure that the unique user identifier (also known as name ID) points to the email address. 10. In the Own Data Platform, click Close. A message appears informing you that to activate SSO you must complete the setup and sign in with your IdP. Until setup is completed, the sign in method in the Security page displays a “Not Activated” warning: 11. To complete the setup, log out and log back in to the Own Data Platform with your IdP. This will verify your settings and activate them across your account. Until this is done, users can still log in with their email and password. If there was an issue with the SSO setup, the Master Admin user can still log in with their email and password to debug. Once SSO is activated, logging in with email and password is disabled for all accounts. If no users in your account have logged in within 48 hours, SSO is not activated and your account is locked. Please contact support for assistance. - **[Implications of Enabling Single Sign-on](https://help.salesforce.com/s/articleView?id=platform.platform_o_sso_implications.htm&release=264.0.0&type=5)** Understand the changes in password policies and security measures when single sign-on is enabled in Own. - **[Update SSO Credentials](https://help.salesforce.com/s/articleView?id=platform.platform_o_sso_update.htm&release=264.0.0&type=5)** When you update your identity provider issuer and/or certificate, the new credentials won’t be active until a user logs in with IdP. - **[Disable Single Sign-On (SSO)](https://help.salesforce.com/s/articleView?id=platform.platform_o_sso_disable.htm&release=264.0.0&type=5)** Disabling Single Sign-On (SSO) requires a shift to password authentication. Upon disabling SSO, you must configure password expiration settings, the number of previous passwords to deny, and whether to enable MFA. # Enable Single Sign-on for FedRAMP Within the Own Government Cloud platform, single sign-on (SSO) is the only authentication method available for user login. Own from Salesforce supports single sign-on using SAML 2.0. Instead of relying on local authentication for password and security policies, you can set your own authentication using your managed identity provider (IdP). Single sign-on is supported using SAML 2.0 and IdP-initiated flows. The identity provider must allow the SAML Assertion to be used in order to authenticate. The SSO application needs to be created in your IdP provider before SSO can be enabled. Single sign-on settings can be accessed only by Admin and Master Admin users. These settings are hidden from all other users. Admin users have read-only access, and Master Admins can edit settings. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-own_from_salesforce-264-0-0-production-enus/8ac98673-ede2-4046-a41e-2d5c846f24ff/images/icon_note.png) Note Users can't set their passwords directly within the Own application. The password length, complexity rules, expiration, and password history cannot be enforced within Own. Instead, this is handled through their identity provider. Users can't use the Forgot/Reset Password link. If they attempt to do so, they are directed to their identity provider for assistance. 1. Log in to the Own Data Platform. 2. In the Account Options menu, select **Account Settings**. 3. On the Account Settings page, select the **Security** tab. 4. Select Single Sign On (SSO) and enter the information: 1. Identity Provider name: Provide a name for the single sign-on provider. 2. SAML issuer: Enter the identity provider issuer. 3. Certificate fingerprint: Ensure that the downloaded certificate has a .pem file extension and click **Upload certificate...** to add the certificate. 4. Logout URL: Provide the URL for a web page to display after logging out. 5. Save your changes. - **[Configure Identity Providers (IdP) for SSO in Own Government Cloud](https://help.salesforce.com/s/articleView?id=platform.platform_o_fedramp_config_identity_providers.htm&release=264.0.0&type=5)** Customers can configure their own authentication using managed identity providers. The Own Government Cloud platform supports Azure IdP, Okta IdP, and Salesforce IdP. We recommend that Master Administrators follow the configuration instructions for their provider. # Enable Source Tracking in Sandboxes By enabling source tracking in Developer and Developer Pro sandboxes, Salesforce DX tooling can automatically track new, changed, and deleted metadata components. You can then select and determine which changes to move forward in the development cycle and release. For DX tooling that uses a Salesforce DX project or source control repository, source tracking can aid in conflict detection and resolution. And best of all, because source tracking identifies which metadata components changed, you no longer have to manually keep track of changes. You can enable source tracking in Developer and Developer Pro sandboxes in two ways: in your production org for all sandboxes created from it, or for a specific sandbox. After you turn on source tracking, you can disable it at any time. - For all Developer and Developer Pro sandboxes—when you enable the feature in your production org, all newly created and refreshed sandboxes use source tracking. Existing sandboxes don’t have source tracking enabled until you refresh them. - For a specific Developer or Developer Pro sandbox—if you don’t want to enable source tracking in all sandboxes, or want to enable source tracking without refreshing the sandbox, you can enable it directly in the sandbox from the Sandbox Settings Setup page. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-deploy_sandboxes-264-0-0-production-enus/654e51d1-6795-49fe-bd43-b5385950cf4a/images/icon_note.png) Note Source tracking isn’t supported and can’t be enabled for Partial Copy sandboxes, Full sandboxes, or Developer Edition orgs. Source tracking can result in metadata deployments taking longer to complete. ## Enable Source Tracking for All Developer and Developer Pro Sandboxes Enable source tracking for all Developer and Developer Pro sandboxes in your production org from the Dev Hub Setup page. ### Required Editions
Available in: Enterprise, Performance, and Unlimited Editions. For Professional and Database.com Editions, you can only enable source tracking directly in the sandbox.
User Permissions Needed
To view a sandbox: View Setup and Configuration AND Customize Applications
To create, refresh, activate, and delete a sandbox: Manage Dev Sandboxes (Developer or Developer Pro only) or Manage Sandboxes (all sandbox types)
1. Log in to the source (production) org. 2. From Setup, find and select **Dev Hub**. If you don't see Dev Hub in the Setup menu, make sure that the source org is one of the supported editions. 3. Select **Enable Source Tracking in Developer and Developer Pro Sandboxes**. 4. Refresh any existing Developer or Developer Pro sandboxes to enable this feature. Source tracking is automatically enabled for any newly created or refreshed Developer or Developer Pro sandboxes. You can disable this feature at any time by clicking the toggle. When the sandbox is refreshed, all source tracking information is deleted. ## Enable Source Tracking in a Specific Sandbox Enable source tracking for a specific Developer or Developer Pro sandbox in its Settings Setup page. This feature remains enabled in a cloned sandbox. If you refresh a sandbox, you must re-enable this feature. ### Required Editions
Available in: Lightning Experience in Developer and Developer Pro sandboxes
User Permissions Needed
To view a sandbox: View Setup and Configuration AND Customize Applications
To create, refresh, activate, and delete a sandbox: Manage Dev Sandboxes (Developer or Developer Pro only) or Manage Sandboxes (all sandbox types)
1. Log in to the Developer or Developer Pro sandbox. 2. From Setup, find and select **Sandbox Settings**. 3. Click **Enable Source Tracking in This Sandbox**. Metadata changes from this point forward are tracked, but existing metadata changes made before you enabled this feature aren’t tracked. When the sandbox is refreshed, all source tracking information is deleted. If you haven’t enabled source tracking in the production org for all Developer and Developer Pro sandboxes, and you want the refreshed sandbox to use source tracking, you must re-enable the feature in the Sandbox Settings page. If you disable source tracking, it can take several days to clean up the source tracking records. The process isn’t instantaneous. You can re-enable source tracking after the cleanup process is finished. # Enable Tags Allow users to add personal or public tags to most records. Tags are words or short phrases that users associate to records to describe and organize data in a personalized way. ### Required Editions
Available in: Salesforce Classic
Tag settings available in: All Editions
User Permissions Needed
To modify tag settings: Customize Application
1. From Setup, enter Tag Settings in the Quick Find box, then select **Tag Settings**. 2. Select **Enable Personal Tags** and **Enable Public Tags** to allow users to add personal and public tags to records. Deselect both options to disable tags. 3. Specify which objects and page layouts display tags in a tag section at the top of record detail pages. The tag section is the only place where a user can add tags to a record. For example, if you select only account page layouts, users in your org can only tag account records. If you select only account page layouts for personal tags and not public tags, users can tag account records only with personal tags. 4. Click **Save**. When enabling tags, keep these guidelines in mind. - You can also add tags to page layouts by editing a layout directly. However, you can’t add tags to feed-based page layouts. - Search results and the Tags page don’t display custom objects without an associated tab, even if tags are enabled for the custom object. If you want custom object records to appear, create an associated tab. The tab doesn’t have to be visible to users. - Customer Portal users can't view the tags section of a page, even if it is included in a page layout. - When Chatter is disabled, joined reports can’t be tagged. #### See Also - [Topics and Tags Settings](https://help.salesforce.com/s/articleView?id=platform.customize_tags.htm&release=264.0.0&type=5 "Topics on objects allow users to add topics to records so they can organize them by common themes. With Chatter enabled, users can also see related posts and comments. Enabling topics for an object disables public tags on records of that object type. Personal tags aren’t affected.") # Enable the Email Domain Allowlist Enable the Email Domain Allowlist Setup page, where you can restrict the email domains allowed in a user’s Email field. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: all editions
User Permissions Needed
To enable Allowed Email Domains: Customize Application
1. From Setup, in the Quick Find box, enter User Management Settings, and then select **User Management Settings**. 2. Turn on **Email Domain Allowlist**. When the allowlist is enabled, you can access the Allowed Email Domains Setup page. #### See Also - [Restrict User Email Domains](https://help.salesforce.com/s/articleView?id=platform.users_email_domain_restrict.htm&release=264.0.0&type=5 "You can define an allowlist to restrict the email domains allowed in a user’s Email field.") # Enable the Enhanced Profile User Interface The enhanced profile user interface provides a streamlined experience for managing profiles. You can easily navigate, search, and modify settings for a profile. Your Salesforce org can use one profile user interface at a time. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
Custom Profiles available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
User Permissions Needed
To enable the enhanced profile user interface: Customize Application
1. From Setup, in the Quick Find box, enter User, and then select **User Management Settings**. 2. Enable **Enhanced Profile User Interface**. You can’t use the enhanced profile user interface for your org if: - You use Microsoft® Internet Explorer® 6, which is now obsolete. Support for Internet Explorer ended December 2020. Replace it with Microsoft Edge. - You use category groups on guest profiles used for sites. - You delegate partner portal administration to portal users. #### See Also - [Profiles](https://help.salesforce.com/s/articleView?id=platform.admin_userprofiles.htm&release=264.0.0&type=5 "Profiles define default settings for users. When you create users, you assign a profile to each one.") - [Configure Default Settings in Profiles](https://help.salesforce.com/s/articleView?id=platform.users_profiles_using_enhanced_ui.htm&release=264.0.0&type=5 "Configure assigned apps, record types, page layouts, and other default settings in profiles so that assigned users can see the data and apps required to complete their work.") # Enable the Licensing Events Feature Control when licensing events occur by specifying peak business hours and heavy traffic periods to optimize licensing event timing. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, and Unlimited Editions
1. Create a permission set for the `ManageOnDemandProvisioning` user perm. 2. Decide which users set the blockout hours and dates for your org. Add those users to the `ManageOnDemandProvisioning` permission set, including yourself. 3. To make the feature available for users in the `ManageOnDemandProvisioning` perm set, go to the **Setup** | **Company Settings** | **Licensing Events** page and use the toggle to turn on **Licensing Events**. ![Enable the Licensing Events](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/access/images/enable_licensing_events.png) # Enable the Main Service Resource Setting To use Omni-Channel service resources with the Agent resource type in Salesforce Scheduler, enable the Main Service Resource setting. When you enable the setting, we recommend that you create only one service resource per user. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. Specify a service resource record for each user with a Salesforce Scheduler PSL license as Main. Salesforce Scheduler considers only the service resource records specified as Main for scheduling appointments 2. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 3. Enable **Main Service Resource**. # Enable the Multiple Topics for Shifts Setting To add one or more topics to a shift, enable the Multiple Topics for Shifts setting. After you enable this setting, you can’t disable it. ### Required Editions Before you enable Multiple Topics for Shifts, complete the [prerequisites](https://help.salesforce.com/s/articleView?id=platform.ls_prereqs_multiple_topics_for_shifts.htm&release=264.0.0&type=5 "The Multiple Topics for Shifts feature uses the Shift Work Topic junction object to manage topics supported by shifts. Salesforce Scheduler flows and APIs also use this junction object. Before you enable the Multiple Topics for Shifts setting, migrate information related to supported topics from shift records to shift work topic records and clear the existing work type and work type data.").
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 2. Enable **Multiple Topics for Shifts**. # Enable the Resource Availability Sharing Using Actionable List Setting To generate and share the availability of a service resource for potential customers using actionable list, enable the Resource Availability Sharing Using Actionable List setting. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
This feature requires the Industry Sales Excellence Add On license and Actionable Segmentation enabled. 1. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 2. Enable **Resource Availability Sharing Using Actionable List**. #### See Also - [Enable Actionable Segmentation](https://help.salesforce.com/s/articleView?id=ind.actionable_segmentation_enable_feature.htm&type=5&language=en_US) - [Actionable List Members](https://help.salesforce.com/s/articleView?id=ind.actionable_list_members.htm&type=5&language=en_US) # Enable the Schedule Appointments Using Engagement Channels Setting To add one or more channels to a shift, enable the Schedule Appointments Using Engagement Channels. ### Required Editions Before you enable Schedule Appointments Using Engagement Channels, complete the [prerequisites](https://help.salesforce.com/s/articleView?id=platform.ls_prereqs_for_using_engagement_channels.htm&release=264.0.0&type=5 "Salesforce Scheduler uses the Shift Engagement Channel junction object to relate engagement channel types to shifts and the Engagement Channel Work Type junction object to relate the engagement channel types to work types. Before you enable the Schedule Appointments Using Engagement Channels setting, complete these prerequisites.").
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Salesforce Scheduler Settings, and then select **Salesforce Scheduler Settings**. 2. Enable **Schedule Appointments Using Engagement Channels**. # Enable Translation of Custom Field Data Enable translation of custom field data for Work Type Group, Service Territory, and Service Resource objects. You can enable data translation for custom fields with Text, Text Area, Text Area (Long), Text Area (Rich), and URL types. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Before enabling data translation for custom fields, ensure that you enable data translation. 1. From Setup, in the Quick Find box, enter Data Translation Settings, and then select **Data Translation Settings**. 2. To enable data translation for custom fields, select an object. Only objects that support data translation are listed. 3. Select the custom fields for which you want to enable translation. 4. Save your changes. # Enable Translation Workbench Use Translation Workbench to specify languages for translation, to assign translators, and to manage your translations. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
1. From Setup, in the Quick Find box, enter Translation Language Settings, and then select **Translation Language Settings**. 2. Enable translation workbench. # Enable User Access Policies User access policies allow you to automate and migrate your users’ assignments to access mechanisms, including managed package licenses, permission sets, and permission set licenses. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Enterprise and Unlimited editions
User Permissions Needed
To enable User Access Policies: Manage Users
1. From Setup, in the Quick Find box, enter User Management Settings, and then select **User Management Settings**. 2. Enable **User Access Policies**. The Enhanced Interface for User Access Policies setting is enabled automatically. We recommend that you keep this setting enabled. If Salesforce enabled user access policies for you before the Summer ’23 release, you must enable this feature again on the User Management Settings page. #### See Also - [User Access Policies](https://help.salesforce.com/s/articleView?id=platform.perm_user_access_policies.htm&release=264.0.0&type=5 "With user access policies, you define aggregated access for your users in a single operation. Automate your users’ assignments to permission set licenses, permission sets, permission set groups, package licenses, queues, and public groups. You can create policies that grant or remove access whenever users are created or updated, or in a one-time manual migration.") # Enable User Field History Tracking You can more easily manage and audit your user's data with User Field History Tracking. ### Required Editions
Available in: Lightning Experience
Available in: All Editions
User Permissions Needed
To enable the User Field History Tracking: Manage Users
1. From Setup, in the Quick Find box, enter Users, and then select **User Management Settings**. 2. Enable **User Field History Tracking (Beta)**. After you enable user field history tracking, view the tracking data on the user's access summary page. #### See Also - [https://help.salesforce.com/s/articleView?id=xcloud.security\_field\_history\_tracking.htm&type=5](https://help.salesforce.com/s/articleView?id=xcloud.security_field_history_tracking.htm&type=5&language=en_US) # Enable User Permissions in Permission Sets User permissions specify what tasks users can perform and what features users can access. In permission sets, you enable user permissions in the App Permissions and System Permissions sections. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Essentials, Contact Manager, Professional, Group, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To edit user permissions: Manage Profiles and Permission Sets
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_tip.png) Tip Instead of completing this task manually, get help from Setup with Agentforce. For example, tell the Setup agent, “Update permission set Sales\_Operations to enable the ability to create dashboards.” For more information, see [User Access Management in Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_user_access.htm&language=en_US). 1. From Setup, in the Quick Find box, enter Permission Sets, and then select **Permission Sets**. 2. Select a permission set. 3. On the permission set overview page, search for the user permission that you want to enable in the Find Settings box, and then select it. 4. On the App Permissions or System Permissions page, click **Edit**. 5. Scroll down to the user permission and select its checkbox. 6. Click **Save**. You can see and edit all user permissions that are enabled for a permission set on its summary page. On the permission set’s detail page, click **View Summary**. #### See Also - [Configure Permissions and Access in Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_permissions_access.htm&release=264.0.0&type=5 "Configure object, field, and user permissions as well as other access and feature settings in permission sets.") - [Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_overview.htm&release=264.0.0&type=5 "A permission set is a collection of settings and permissions that give users access to various tools and functions. Permission sets extend users’ functional access without changing their profiles and are the recommended way to manage your users’ permissions.") - [User Permissions](https://help.salesforce.com/s/articleView?id=platform.admin_userperms.htm&release=264.0.0&type=5 "User permissions specify what tasks users can perform and what features users can access. For example, users with the View Setup and Configuration user permission can view Setup pages, and users with the API Enabled user permission can access any Salesforce API.") - [Enable Object Permissions in Permission Sets](https://help.salesforce.com/s/articleView?id=platform.perm_sets_objects_and_fields.htm&release=264.0.0&type=5 "Object permissions determine the base-level access users have to create, read, edit, and delete records for each object. Permissions sets are the recommended feature for managing object permissions.") - [Manage Permissions in the Permission Set and Permission Set Group Access Summaries](https://help.salesforce.com/s/articleView?id=platform.perm_sets_summary_page.htm&release=264.0.0&type=5 "To help you manage your users’ permissions, you can see and update all object, user, field, and custom permissions that are enabled for a permission set or permission set group in its summary page. You can also manage which permission set groups the permission set is included in and vice versa.") - [PermissionSetEventStore Policies](https://help.salesforce.com/s/articleView?id=xcloud.et_security_policy_types_permissionseteventstore.htm&language=en_US) # Enable User Self-Deactivation Let external Experience Cloud site and Chatter users deactivate their own accounts. The results are identical to an administrator-initiated deactivation. ### Required Editions
Available in: All Editions
User Permissions Needed
To enable external user deactivation option:

Customize Application

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note Deactivation is not the same as deletion. To learn more about deactivation, refer to Salesforce documentation about deactivating users. 1. From Setup, enter User in the Quick Find box, then select **User Management Settings**. 2. Enable **User Self Deactivate**. 3. Use developer or declarative tools to provide a mechanism for users to deactivate their accounts. In Experience Cloud sites built with Aura templates, the [Customizable User Settings component](https://help.salesforce.com/s/articleView?id=experience.rss_user_settings_customizable.htm&type=5&language=en_US) gives users the option to deactivate their account. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note In Experience Cloud sites using LWR or Visualforce templates, create a flow that external users can run to deactivate their own accounts without the help of an admin. #### See Also - [Delete Users](https://help.salesforce.com/s/articleView?id=platform.deactivating_users.htm&release=264.0.0&type=5 "While you can’t completely delete a user, you can deactivate a user’s account so they can’t log in to Salesforce.") # Enable Users to Create and Manage Appointments in Salesforce Scheduler Enable users and customers to book appointments through Salesforce Lightning Service Console, Experience Cloud sites, and your company websites. - **[Manage Access to Salesforce Scheduler Flows](https://help.salesforce.com/s/articleView?id=platform.ls_provide_flow_access_to_profiles.htm&release=264.0.0&type=5)** Use flow access to limit users who can edit and run flows, with the Salesforce Scheduler Flow process type, based on their user records, profiles, or permission sets. To apply more granular security to an individual flow, override the default behavior of the flow. And then grant access to the flow based on user profiles or permission sets. - **[Create a Salesforce Scheduler Email Prompt Template](https://help.salesforce.com/s/articleView?id=platform.ls_create_salesforce_scheduler_email_prompt_template.htm&release=264.0.0&type=5)** Save your end users time from manually writing appointment invitation emails. Create a Salesforce Scheduler Email prompt template to direct a Large Language Model (LLM) to generate personalized appointment invitations by using up-to-the-minute data from your Salesforce objects. - **[Appointment Statuses and Status Categories in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_appointment_statuses_and_status_categories_in_salesforce_scheduler.htm&release=264.0.0&type=5)** Using service appointment statuses, users can track the status of appointments throughout the appointment lifecycle. Each appointment status is mapped to one of the standard, out-of-the-box service appointment status categories. Status categories can be used to create and use custom statuses while maintaining a consistent work classification for tracking and reporting. You can create custom appointment statuses but you can’t create status categories. - **[Set Up Video Appointments with Amazon Chime](https://help.salesforce.com/s/articleView?id=platform.ls_set_up_video_appnts_with_chime.htm&release=264.0.0&type=5)** Salesforce Scheduler provides integrated Amazon Chime for video calls. The feature operates in the Bring-Your-Own-Application (BYOA) model and requires that you have an Amazon Chime account. After you enable and configure video call settings, Salesforce Scheduler uses Amazon Chime for all video appointments. Salesforce Scheduler also provides Virtual Appointment Email templates that you can use to send notifications to unauthenticated users for upcoming video appointments. - **[Set Up Outbound Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_distribute_outbound_flows.htm&release=264.0.0&type=5)** Salesforce Scheduler provides standard flow templates to let your internal users (employees) quickly schedule appointments with customers. Users can easily search for and select the right person, topic, location, and date and time of the appointment. You can either use the provided standard flow templates or create flows based on those templates and customize them to suit your business needs. - **[Create and Manage Outbound Appointments in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_work_with_appointments.htm&release=264.0.0&type=5)** Use Salesforce Scheduler to schedule an appointment with a customer and an assigned resource or resources. Modify an appointment to reschedule it to a different date or time or to add more service resources. Cancel the appointment if the customer can no longer make it. After you schedule an appointment, deleting service resources, modifying work type durations, or modifying the appointment to remove assigned service resources can result in unexpected behavior. - **[Set Up Inbound Scheduling](https://help.salesforce.com/s/articleView?id=platform.ls_set_up_inbound_scheduling.htm&release=264.0.0&type=5)** Set up and configure the provided standard inbound flow templates to let your authenticated external users (customers and partners) and unauthenticated users (prospects) quickly schedule appointments with your employees. - **[Create and Manage Inbound Appointments in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_work_with_inbound_appointments.htm&release=264.0.0&type=5)** Customers, partners, and prospects can use Salesforce Scheduler to schedule appointments with your service resources. They can also modify appointments to reschedule them or add service resources, and cancel appointments. After an appointment is scheduled, deleting service resources, modifying work type durations, or modifying the appointment to remove assigned service resources can result in unexpected behavior. - **[Set Up Group Service Appointments](https://help.salesforce.com/s/articleView?id=platform.ls_set_up_group_service_appointments.htm&release=264.0.0&type=5)** Use group service appointments to create appointments for a large group of customers, and provide them with the flexibility to enroll in or unenroll from the service appointment. For example, create and allow multiple users to enroll in a resume workshop. Also, directly enroll lead records and authenticated users to the appointment or share the group appointment enrollment URLs with unauthenticated users via email. - **[Guest Service Appointment Management in Salesforce Scheduler](https://help.salesforce.com/s/articleView?id=platform.ls_manage_appointments_for_guest_users.htm&release=264.0.0&type=5)** Guest users can modify appointments to reschedule them or change service resources, and cancel appointments. To notify guest users of their scheduled appointment, configure email notifications by using the available email templates. The email templates include the links that invoke the flow that modifies and cancels a guest user service appointment. If a guest user cancels the appointment, the confirmation email template includes a link to create another appointment. - **[Share Service Resource Availability by Using an Invitation URL](https://help.salesforce.com/s/articleView?id=platform.ls_share_srvc_resource_availability_using_invitation_url.htm&release=264.0.0&type=5)** Service resources or their assistants can share the time period during which the resources are available for appointment booking. They can define and share the appointment criteria with users by creating an invitation URL. Users can navigate to the invitation URL and book an appointment. The URL directs users to the starting week of when the service resource is available. - **[Lobby Management](https://help.salesforce.com/s/articleView?id=platform.ls_lobby_management.htm&release=264.0.0&type=5)** Use lobby management to manage customers who prefer to visit the branch location—with or without a scheduled appointment. With lobby management, greeters can manage scheduled service appointments and drop-in appointments. They can also view the estimated wait time for appointments. - **[How Salesforce Scheduler Tracks Appointments](https://help.salesforce.com/s/articleView?id=platform.ls_how_ss_tracks_appt_after_lead_conversion.htm&release=264.0.0&type=5)** When a lead is converted or when accounts are merged, Salesforce Scheduler updates the Parent Record field for associated service appointments. Salesforce Scheduler also updates the Related To field for associated Salesforce calendar events. - **[Embed Salesforce Scheduler Flows into Other Flows](https://help.salesforce.com/s/articleView?id=platform.ls_embed_flows_into_flows.htm&release=264.0.0&type=5)** You can call a Salesforce Scheduler flow from within another flow that is of the Salesforce Scheduler flow type. For example, you can create and add a Salesforce Scheduler flow to the account page that asks users whether they want to create or modify an appointment. And then it launches the related flow. # Encrypt Fields with Secure Encrypt sensitive fields using the Platform Encryption Analyzer so you can protect your data. Encrypt fields directly from the analysis results, and then confirm the encryption options. You can also exclude fields from encryption, include previously excluded fields, and download a compliance report of the last analysis as a PDF file. ## Encrypt Fields Encrypt fields that have been listed as "All Clear" or "Blocked by Configuration". 1. Hover the cursor over the field's result icon and click **Encrypt Now**. 2. Select an encryption option. The available options for encrypting a field may vary based on configuration choices and limitations within Salesforce. 3. Click **OK**. 4. Click **Add**. 5. Once confirmed, Salesforce sends an email with the encryption results. To encrypt an object with existing data, navigate to Salesforce Setup, then Encryption Statistics, select the object, and click Sync. An object can only be synced once a week. Ensure all objects are selected prior to starting the sync. 6. To download a Compliance Report of the last analysis as a .pdf file, click **Printable View**. ## Exclude Fields from Encryption 1. Hover over the analysis result of the field to be excluded and click **Exclude**. 2. Enter a reason for excluding the field and click **Next**. 3. Click **Yes, complete this Exclusion**. The excluded field is displayed with a grayed and striped pattern. ## Include Fields for Encryption Include previously excluded fields for encryption and future analysis. 1. Hover over the analysis result of the excluded field and click **Include**. 2. Click **Yes, complete this Inclusion**. An "Update Exclusion Reason" option is available in this window, allowing users to change the exclusion reason for the selected field. The field is now included for encryption and future analysis. # End Session Action This action ends a specified session for an agent. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions. Required add-on licenses vary by agent type.
View licenses for integrated features.
In Flow Builder, add an Action element to your flow. Select the **AI Agent API** category. Then, select the **End Session** action. ## Set Input Values
Field Description
Session End Message

Required. An Apex AgentInvAction__AIAgentAPIV1_SessionEndedMessage record that contains a message with the reason why the session ended.

Valid values for the reason property are:

  • UserRequest
  • Transfer
  • Expiration
  • Error
  • Other
Session ID Required. The ID of the current agent session.
Tenant Key ID Reserved for internal use only.
## Set Output Values | Set Field | Description | | --- | --- | | 200 | Batched response (headless) | | 400 Exception | Bad request | | 401 Exception | Access bearer token is missing or invalid | | 403 Exception | User is forbidden from accessing the resource | | 404 Exception | Resource not found | | 422 Exception | Any exception that occurred during the request execution | | 423 Exception | Server is busy and cannot process the request at this time | | 429 Exception | Too many requests for the server to handle | | 503 Exception | Service is unavailable possibly because Apex or flow calls timed out | | Default Exception | Server is busy and cannot process the request at this time | | responseCode | The response code associated with the exception message. | ## Usage This action is available only if the following are true. Otherwise, the action fails. - Agentforce is enabled. - The user who runs the flow has the Manage AI Agents permission. - The specified agent has an active version. To set the Session End Message input: - Create an Apex-defined variable and select the **AgentInvAction\_\_AIAgentAPIV1\_SessionEndedMessage** Apex class. - Use Assignment elements to set the `reason` property. - Use the AgentInvAction\_\_AIAgentAPIV1\_SessionEndedMessage variable as the Session End Message input. # End-to-end Example with Flow In this Flow example, design and test the automation that sends a user’s information from Salesforce to the external employee banking system. Create the variables for user phone numbers, and combine different phone numbers into one piece of data. Then use the external service action to create the user. 1. Define a named credential For this simplified example, use "legacy" Named Credentials. Instead of clicking New, select **New Legacy** from the dropdown menu next to the New button. For the named credential that your org uses to access the banking system, assign the Bank label. Assign a placeholder URL, such as https://api.example.com. Use example.com because you _paste in_ the schema at registration time, instead of using a URL to point to an API spec. In the case where you use a URL, the named credential URL corresponds to the declared host of the API spec and one of its transfer protocol schemes or URL protocols. The URL can point to a different endpoint as long as it hosts the same external service. The base path is added to the named credential URL on callout. 2. Register the employee banking system’s external service, using the steps described in [Register an External Service](https://help.salesforce.com/s/articleView?id=platform.external_services_register.htm&release=264.0.0&type=5 "Registering an external service takes only a few steps and no code.") as a guide. Use the BankService name and the Bank named credential, and then copy the schema from the “External Services API Spec Example 2”, found in the topic [External Services OpenAPI 2.0 Schema](https://help.salesforce.com/s/articleView?id=platform.external_services_schema_examples.htm&release=264.0.0&type=5 "This section features External Services OpenAPI 2.0 schema examples."). 3. Click **New Flow**. 4. Select **Start From Scratch** and click **Next**. 5. Then, select **Screen Flow** and click **Create**. This example uses static values for simplicity. In contrast, a production flow with user data includes elements to get user records, store values to variables, and communicate these values to the external service. 6. To handle the multiple phone numbers nested below the `BankService_Phone` value, add the two variable resources. 1. Click **Manager**, and then click **New Resource**. 2. For the resource type, select **Variable**. 3. For the API name, enter WorkPhone. 4. For the data type, select **Apex-Defined**. 5. For the Apex class, select ExternalService\_\_BankService\_Phone. ![Adding a new resource of type Variable with name Workphone.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/external_services_flow_workphone.png) 6. Click **Done**. 7. Repeat these steps using the API name CellPhone. 7. Add the variable resource that acts as the array for the phone number values. 1. Click **New Resource**. 2. For the resource type, select **Variable**. 3. For the API name, enter Phones. 4. For the data type, select **Apex-Defined**, and select the **Allow multiple values (collection)** option. 5. For the Apex class, select ExternalService\_\_BankService\_Phone. ![Adding a new resource, selecting the Allow multiple values checkbox.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/external_services_flow_phone.png) 6. Click **Done**. 8. Add the variable resource that stores the user’s name. 1. Click **New Resource**. 2. For the resource type, select **Variable**. 3. For the API name, enter User. 4. For the data type, select **Apex-Defined**. 5. For the Apex class, select `ExternalService__BankService_User`. 6. Click **Done**. 9. Assign values to the work phone variable. 1. From the Toolbox, click **Elements**. 2. Drag an **Assignment** element to the canvas. 3. For Label, enter Assign Work Phone, and let the API name autopopulate. 4. Click **Search variables**, select **WorkPhone**, then select **phone**. The variable `{!WorkPhone.phone}` appears. 5. For Value, enter 1234567890. 6. Click **Add Assignment**. 7. Click **Search variables**, select **WorkPhone**, then select **typeofphone**. The variable `{!WorkPhone.typeofphone}` appears. 8. For Value, enter Work. ![Assign the variable values for the work phone.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/external_services_flow_assign_work.png) 9. Click **Done**. 10. Connect the Start element to this assignment element. 10. Assign values to the cell phone variable. 1. Drag an **Assignment** element to the canvas. 2. For Label, enter Assign Cell Phone, and let the API name autopopulate. 3. Click **Search variables**, select **CellPhone**, then select **phone**. The variable `{!CellPhone.phone}` appears. 4. For Value, enter 0987654321 5. Click **Add Assignment**. 6. Click **Search variables**, select **CellPhone**, then select **typeofphone**. The variable `{!CellPhone.typeofphone}` appears. 7. For **Value** enter Cell. 8. Click **Done**. 9. Connect the last element to this one. 11. Assign multiple phone values to the single phone array variable. 1. Drag an **Assignment** element to the canvas. 2. For Label, enter Assign Phones, and let the API name autopopulate. 3. Click **Search variables** then select **Phones**. The variable `{!Phones}` appears. 4. Change the **Operator** to **Add**. 5. For Value, select **Workphone**. 6. Click **Add Assignment**. 7. Click **Search variables** then select **Phones** again. 8. Change the Operator to **Add**. 9. For Value select **Cellphone**. ![Assign the two phone variables to add to the Phones array variable.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/external_services_flow_assign_both.png) 10. Click **Done**. 11. Connect the last element to this one. 12. Assign the user values. 1. Drag an **Assignment** element to the canvas. 2. For Label, enter Assign User, and let the API name autopopulate. 3. Click **Search variables**, select **User**, then **id**. The variable `{!User.id}` appears. 4. For Value, enter 1234. 5. Click **Add Assignment**. 6. Click **Search variables**, select **User**, then **name**. The variable `{!User.name}` appears. 7. For Value, enter Maria. 8. Click **Add Assignment**. 9. Click **Search variables**, select **User**, then **phones**. The variable `{!User.phones}` appears. 10. For Value, select **Phones**. ![Assign the static values for id and name, and the phone array for phones.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/external_services_flow_assign_user.png) 11. Click **Done**. 12. Connect the last element to this one. 13. To create users on the external bank system, add the action generated by your external service schema. 1. Drag an **Action** element to the canvas. 2. Filter the actions by type, and select **External Service**. 3. Select **postUser**. 4. For Label, enter Create a new user, and let the API name autopopulate. 5. Next to **\>\_user**, toggle **Included** to include input values. 6. From the lookup, select **User**. ![Assign the two phone variables to add to the Phones array variable.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/external_services_flow_create_action.png) 7. Click **Done**. 8. Connect the last element to this one. Your canvas includes these elements. ![The elements created have been connected.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/external_services_flow_completed.png) 14. Save and debug the flow. A successful debug includes the assignment and External Service callout. ![Debug result showing Assignment and Bankservice.postusers completed.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/external_services_flow_debug.png) # Engagement Channel Types Engagement channel types are mediums, such as Phone, Video, and In Person that service resources use to meet customers. Enable the Schedule Appointments Using Engagement Channels setting so that territory managers and service resources can use the engagement channel types and the channel types' junction objects. Territory managers and service resources can define the availability of resources for the engagement channel types by adding one or more channel types to a shift. Salesforce Scheduler shows service resources and resource time slots based on the channel type that a user selects when creating an appointment. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Engagement channel types filter service resources based on the engagement channel type that the resources are available for. We recommend using engagement channel types when you want to define multiple channels in Salesforce Scheduler. - **[Considerations for Using Engagement Channel Types](https://help.salesforce.com/s/articleView?id=platform.ls_considerations_engagement_channels.htm&release=264.0.0&type=5)** Here are some things to keep in mind when you use engagement channel types. - **[Prerequisites for Using Engagement Channel Types](https://help.salesforce.com/s/articleView?id=platform.ls_prereqs_for_using_engagement_channels.htm&release=264.0.0&type=5)** Salesforce Scheduler uses the Shift Engagement Channel junction object to relate engagement channel types to shifts and the Engagement Channel Work Type junction object to relate the engagement channel types to work types. Before you enable the Schedule Appointments Using Engagement Channels setting, complete these prerequisites. - **[Create Engagement Channel Types](https://help.salesforce.com/s/articleView?id=platform.ls_create_engagement_channels_types.htm&release=264.0.0&type=5)** To define engagement channels for service appointments and to add the channels to shifts, create engagement channel types. - **[Enable the Schedule Appointments Using Engagement Channels Setting](https://help.salesforce.com/s/articleView?id=platform.ls_enable_schedule_appnt_using_engage_channels_setting.htm&release=264.0.0&type=5)** To add one or more channels to a shift, enable the Schedule Appointments Using Engagement Channels. # Enhance Salesforce with Code You can make your Salesforce org even more useful and responsive to your users by developing custom applications and integrating your external applications. It's best to do your development in a sandbox so you can test your code changes before you deploy them. Sandboxes contain copies of your data, code, and configuration settings that are isolated from your production environment. You can customize your organization and test applications in a sandbox, then deploy the changes to your production organization when ready. In some cases, you might have several developers working in different sandboxes who then coordinate those changes for deployment. - **[Salesforce Development Tools](https://help.salesforce.com/s/articleView?id=platform.development_tools.htm&release=264.0.0&type=5)** Salesforce provides various tools for all phases of app development. - **[Replacement Tools for Workbench](https://help.salesforce.com/s/articleView?id=platform.replacement_workbench_tools.htm&release=264.0.0&type=5)** Workbench (https://workbench.developerforce.com) is an open-source tool for interacting with your org. However, because Salesforce doesn’t maintain Workbench, we can’t address issues or bugs related to using it. We recommend that you use our alternative and integrated tools instead, such as Code Builder, Salesforce CLI, and VS Code Extensions. - **[Work With APIs](https://help.salesforce.com/s/articleView?id=platform.work_with_apis.htm&release=264.0.0&type=5)** Salesforce provides programmatic access to your org’s information using simple, powerful, and secure application programming interfaces. - **[Write Code](https://help.salesforce.com/s/articleView?id=platform.writing_code.htm&release=264.0.0&type=5)** Write code using the Apex programming language to add business logic or use the Visualforce markup language to create the user interface. Integrate your application using APIs and authenticate your external applications. - **[Debug Your Code](https://help.salesforce.com/s/articleView?id=platform.debugging_your_code.htm&release=264.0.0&type=5)** Use checkpoints, logs, and the View State tab to help debug the code you’ve written. - **[Test Your Changes](https://help.salesforce.com/s/articleView?id=platform.testing_your_code.htm&release=264.0.0&type=5)** Testing is key to the success of your application, particularly if you deploy your application to customers. If you validate that your application works as expected with no unexpected behavior, your customers are going to trust you more. - **[Manage Scratch Orgs](https://help.salesforce.com/s/articleView?id=platform.managing_scratch_orgs.htm&release=264.0.0&type=5)** The scratch org is a source-driven and disposable deployment of Salesforce code and metadata, made for developers and automation (CI/CD). A scratch org is fully configurable, allowing developers to emulate different Salesforce editions with different features and preferences. #### See Also - [Sandbox Types and Templates](https://help.salesforce.com/s/articleView?id=platform.create_test_instance.htm&type=5&language=en_US) - [Complete Salesforce Developer Documentation](https://developer.salesforce.com/page/Documentation) # Enhanced Message Screen Input Component Let users send a messaging component in an enhanced Messaging session. ### Required Editions
Available in: Lightning Experience
View supported editions.
## Configure the Enhanced Message Component
Attribute Description
API Name

The API name of the component.

An API name can include underscores and alphanumeric characters without spaces. It must begin with a letter and can’t end with an underscore. It also can’t have two consecutive underscores.

Messaging Session ID The variable containing the record ID of the messaging session.
Messaging Component Name The messaging component to incorporate into the screen-based flow—for example, a time selector component. Create messaging components on the Messaging Components page in Setup.
Time Slot Options The list of time slot options to show to the customer, generated by a custom Apex action. This field is visible only if a time selector messaging component is selected.
Object Type The type of record to show to the customer—for example, Case. This field is visible only if a question with dynamic options messaging component is selected.
Record Variable The record variable that determines which records of the selected object type to show to the customer. This field is visible only if a question with dynamic options messaging component is selected.
Parameter Name The name of a custom parameter on the selected messaging component.
Parameter Value Type The type of custom parameter. Valid values are Variable and Literal. The value defaults to Variable.
Value The value to pass into the parameter—for example, a question to precede a list of options.
Variable The variable to pass into the parameter—for example, a variable containing the contact’s name.
#### See Also - [Standard Flow Screen Components](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp.htm&release=264.0.0&type=5 "Salesforce provides several standard screen components that extend the types of input fields available in screens.") - [Send Structured Content with Messaging Components](https://help.salesforce.com/s/articleView?id=service.messaging_components_parent.htm&language=en_US) # Ensure Funds Async Action Ensure funds for an invoice, and apply them to the invoice. Optionally, apply the funds in a defined sequence. If needed, capture authorized funds by sending a request to a payment provider. This action inserts a background operation into an asynchronous job queue and returns the ID of that operation so you can track its status. Payment gateway responses appear in the payment gateway log and don’t affect the background operation status. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the Salesforce Order Management add-on. To purchase, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Payment sequencing for ensuring funds is available in sandbox orgs. It’s available in production on a rolling basis in Spring ’26. Contact Salesforce Customer Support for more information. In Flow Builder, add an Action element to your flow. Select the **Order Management** category, and search for Ensure Funds Async. (Optional) To sequence payments, in Flow Builder, add an Action element to your flow. Select the **Order Management** category, and search for Ensure Funds with Sequence OrderPaymentSummaries. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If the action creates a payment, the payment record’s ClientContext value isn’t predictable. Don't use it in custom logic. Set Input Values Use values from earlier in the flow to set the inputs.
Input Parameter Description
Ensure Funds Async Input

This input is an Apex-defined variable of class ConnectApi.EnsureFundsAsyncInputRepresentation.

The variable has these fields: invoiceId- The ID of the invoice to ensure funds for and apply them to.

isConsiderReservedBalanceAmount- If true, the reserved balance amount is used for the order summary to fund the invoice. If there’s not enough reserved balance amount, any available balance that isn’t reserved by another summary is used. If false, any available balance is used.

isAllowPartial- If true, partial funding of the invoice is allowed. Optionally, you can define a sequence in which to capture payments for the invoice. If you don’t define a sequence for this value, or this value is false, then the default capture logic is applied.

sequences- This value is an ordered list of amounts and the OrderPaymentSummaries to apply them to. It’s a list of Apex-defined variables of class SequenceOrderPaymentSummaryInputRepresentation. It contains these fields:

  • amount-Amount to apply to the OrderPaymentSummary.
  • orderPaymentSummaryId- ID of the OrderPaymentSummary to apply the amount to.
Order Summary Id Reference to the order summary associated with the invoice.
Store Output Values
Output Parameter Description
Ensure Funds Async Output

This value is an Apex-defined variable of class EnsureFundsAsyncOutputRepresentation. It only returns the ID of the asynchronous background operation, regardless of whether a call is made to an external payment gateway. It doesn’t include any errors from the operation.

The backgroundOperationId field contains the ID of the background operation.

Usage This action applies funds to the invoice balance from order payment summaries associated with the specified order summary following this logic: ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If multiple order payment summaries have equal **BalanceAmount** values, their order of selection is random. - Verify that the invoice balance doesn’t exceed the total BalanceAmount of all the order payment summaries associated with the order summary. - If an order payment summary has a BalanceAmount equal to the invoice balance, apply the funds from that order payment summary. - If no exact match was found, apply funds from the order payment summary with the largest BalanceAmount. - If the invoice still has a balance to ensure, repeat steps 2 and 3 until the full balance is ensured or no captured funds remain. - If the invoice still has a balance, look for an order payment summary with an authorized amount equal to the remaining invoice balance. If one exists, capture and apply the funds from that order payment summary. - If no exact match was found, capture and apply funds from the order payment summary with the largest authorized amount. - If the invoice still has a balance to ensure, repeat steps 5 and 6 until the full balance is ensured. #### See Also - [Create Invoice from Fulfillment Order Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_om_actions_create_invoice_from_fo.htm&release=264.0.0&type=5 "In Salesforce Order Management, create an invoice for a fulfillment order that doesn’t have one.") - [Ensure Refunds Async Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_om_actions_ensure_refunds_async.htm&release=264.0.0&type=5 "In Salesforce Order Management, ensure refunds for a credit memo or excess funds by sending a request to a payment provider. This action inserts a background operation into an asynchronous job queue and returns the ID of that operation so you can track its status. Payment gateway responses appear in the payment gateway log and don’t affect the background operation status.") - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") - [Payment Sequencing](https://help.salesforce.com/s/articleView?id=commerce.om_impl_payment_sequencing.htm&language=en_US) # Ensure Refunds Async Action In Salesforce Order Management, ensure refunds for a credit memo or excess funds by sending a request to a payment provider. This action inserts a background operation into an asynchronous job queue and returns the ID of that operation so you can track its status. Payment gateway responses appear in the payment gateway log and don’t affect the background operation status. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the Salesforce Order Management add-on. To purchase, contact your Salesforce account executive.
In Flow Builder, add an Action element to your flow. Select the **Order Management** category, and search for **Ensure Refunds Async**. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If the action creates a refund, the refund record’s ClientContext value isn’t predictable. Don't use it in custom logic. Set Input Values Use values from earlier in the flow to set the inputs.
Input Parameter Description
Ensure Refunds Async Input

This input is an Apex-defined variable of class ConnectApi.EnsureReundsAsyncInputRepresentation.

The variable has these fields. You can specify either creditMemoId or excessFundsAmount, or you can specify both. If you're requesting a refund for a cancelled item, but an invoice was already generated and sent to ensureFunds, specify creditMemoId.

  • creditMemoId—The ID of the credit memo to ensure refunds for.
  • excessFundsAmount—The amount of excess funds to apply the refunds against.
  • invoicesToPay—List of invoices for fees that reduce the refund, such as return fees.
  • isAllowPartial—This value controls the behavior when the amounts included in the sequences list don’t cover the entire refund amount. If this value is false, the default refund logic is applied to ensure the remaining refund amount. If this value is true, the unrefunded balance remains on the credit memo. If you don’t specify a sequences list, this value is ignored, and the default refund logic is applied. The default is false.
  • sequences—This input is an ordered list of refund amounts and the OrderPaymentSummaries to apply them to. The process traverses this list in order and stops when it has refunded the full amount. It’s a list of Apex-defined variables of class SequenceOrderPaymentSummaryInputRepresentation. It contains these fields:
    • amount—Amount of the refund to apply to the OrderPaymentSummary.
    • orderPaymentSummaryId—ID of the OrderPaymentSummary to apply the Amount to.
Order Summary Id Reference to the order summary associated with the credit memo.
Store Output Values
Output Parameter Description
Ensure Refunds Async Output

This value is an Apex-defined variable of class EnsureRefundsAsyncOutputRepresentation. It only returns the ID of the asynchronous background operation, regardless of whether a call is made to an external payment gateway. It doesn’t include any errors from the operation.

The backgroundOperationId field contains the ID of the background operation.

Usage This action applies the refund to order payment summaries associated with the specified order summary following this logic. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note If multiple order payment summaries have equal **AvailableToRefund** amounts, their order of selection is random. - Verify that the credit memo balance and excess funds amount don't exceed the total **AvailableToRefund** amount of all the order payment summaries associated with the order summary. - If **sequences** is specified, follow these steps. - Traverse the **sequences** list in order and apply the specified refund amounts to the specified order payment summaries. - If the specified credit memo and excess funds are fully refunded, or if **isAllowPartial** is true, then the action stops here. - If a credit memo is specified, follow these steps. - If an order payment summary has an **AvailableToRefund** amount matching the credit memo’s remaining balance, apply the refund to that payment. - If no exact match was found, apply the refund to the order payment summary with the largest **AvailableToRefund** amount. - If the credit memo has any remaining balance, repeat steps a and b until that balance is fully refunded. - If only one OrderPaymentSummary is specified but has multiple payments, follow these steps. - If a payment has an amount matching the CreditMemo’s remaining balance, apply the refund to that payment. - If no exact match was found but one or more payment has a large enough amount to cover the balance, use the payment with the smallest amount. - If no single payment has a large enough amount, use multiple payments in descending order of amount. This ensures the fewest payments are used. - If an excess funds amount is specified, follow these steps. - Examine those order payment summaries. If one has an **AvailableToRefund** amount matching the excess funds amount, apply the refund to that payment. - If no exact match was found, apply the refund to the order payment summary with the largest **AvailableToRefund** amount. - If any excess funds amount remains, repeat steps a and b until it’s fully refunded. #### See Also - [Create Credit Memo Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_om_actions_create_credit_memo.htm&release=264.0.0&type=5 "In Salesforce Order Management, create a credit memo to represent the refund for one or more change orders associated with an order summary.") - [Create an Invoice from Change Orders Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_om_actions_create_invoice_from_change_orders.htm&release=264.0.0&type=5 "In Salesforce Order Management, create an invoice to represent the charges for one or more change orders. Create invoices for change orders that increase order amounts, such as return fees. When you ensure the refund for a return, include the invoices for the associated return fees in the input.") - [Return Order Items Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_om_actions_return_return_order_items.htm&release=264.0.0&type=5 "In Salesforce Order Management, process one or more return order line items belonging to a return order. This action creates a change order record for the returned items and makes the processed return order line items read-only. You can include return order fees associated with the return order line items. If you do, a change order record is created for the return fees. If a processed return order line item has a remaining expected quantity, the action creates a separate return order line item representing that quantity.") - [Ensure Funds Async Action](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_om_actions_ensure_funds_async.htm&release=264.0.0&type=5 "Ensure funds for an invoice, and apply them to the invoice. Optionally, apply the funds in a defined sequence. If needed, capture authorized funds by sending a request to a payment provider. This action inserts a background operation into an asynchronous job queue and returns the ID of that operation so you can track its status. Payment gateway responses appear in the payment gateway log and don’t affect the background operation status.") - [Add and Edit Elements](https://help.salesforce.com/s/articleView?id=platform.flow_build_elements.htm&release=264.0.0&type=5 "Use elements to define actions that the flow can run. When they’re on the canvas, connect them to create the order in which they run.") # Entitlements and Limits for Agentforce Operations View entitlements and limits for Agentforce Operations licenses. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

## Entitlements ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-agentforce_operations-264-0-0-production-enus/dce314e6-0a31-4a8b-98f7-3d2a3fd02ee2/images/icon_note.png) Note To view your current usage, go to the underlying Salesforce org for your Agentforce Operations workspace. In Setup, search for and select **Company Information**. Your usage numbers are listed there.
  Agentforce Operations - Small - Enterprise Edition Agentforce Operations - Medium - Enterprise Edition Agentforce Operations - Large - Enterprise Edition
Entitlements
Salesforce System Administrator License 5 5 5
Number of Blueprints 10 11–50 50+
Number of Internal Users 2,000 5,000 Customize
Number of External Users 20,000 40,000 Customize
## Limits
 Agentforce Operations - Small - Enterprise EditionAgentforce Operations - Medium - Enterprise EditionAgentforce Operations - Large - Enterprise Edition
Outgoing emails per day200,000200,000200,000
Number of emails sent each hour per user505050
Number of split tasks in a running workflow505050
Number of splits per task in a running workflow where the split tasks start linked workflows252525
Number of workflows created by API per hour3,0003,0003,000
Number of workflows that can be bulk created2,4982,4982,498
Number of users that can be bulk updated9,9989,9989,998
Number of rows in a data source that the Generalist Agent can search1,000,0001,000,0001,000,000
Number of rows in a data source that other AI agents can search100,000100,000100,000
CSV data source upload limit (rows, excluding header)1,000,0001,000,0001,000,000
SharePoint Upload attachment file size100 MB100 MB100 MB
Maximum document size for Generalist Agent tasks500 MB500 MB500 MB
Maximum combined document size per Generalist Agent task1 GB1 GB1 GB
## Blueprint Limits (Design Time) These limits apply to each blueprint and are the same across all licenses. | Limit | Value | | --- | --- | | Total tasks per blueprint | 150 | | Automation tasks per blueprint | 50 | | Total fields per blueprint | 1,000 | | Items per form (including the intake form) | 500 | #### See Also - [Blueprint Limits in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprint_limits.htm&release=264.0.0&type=5 "Blueprints have limits on the number of tasks, fields, and form items they can contain. These limits help you avoid the performance issues that come with oversized blueprints.") # Environment Management Options You have several options to manage your environments from the environment’s menu in the Pipeline Environments tab. Which menu options are available is determined by the environment type and whether the pipeline is activated. ## Managing Environments in Lifecycle Center This topic is only for DevOps Center (Managed Package). In Lifecycle Center, you replace or remove environments. For details, see [Manage Environments](https://help.salesforce.com/s/articleView?id=platform.devops_center_manage_environments.htm&language=en_US). ## Swap Environment Swap a development or pipeline environment with another after the pipeline is activated. Use this operation after a sandbox has been refreshed to re-establish the connection with DevOps Center. - Development environments—if DevOps Center can determine that the environment was descended from an environment in the project pipeline, all unpromoted work items that are connected to the current dev environment are moved to the new dev environment. If DevOps Center can’t determine the environment’s ancestry, DevOps Center deploys all changes from the first pipeline stage’s branch to the new dev environment. - Pipeline environments—if DevOps Center can determine that the environment was descended from an environment in the project pipeline, all work items that are connected to the current pipeline environment are moved to the new pipeline environment. If DevOps Center can’t determine the environment’s ancestry, DevOps Center deploys all changes from the pipeline stage’s branch to the new pipeline environment. ## Remove Environment Remove an unused dev environment from the list. If you change your mind, you can add a removed environment again. However, you can’t remove an environment after it has an activity history associated with it. After an environment has an activity history, your options are to disconnect it or swap it. ## Disconnect Environment Disconnect a dev environment that is expired or you no longer plan to use to remove it from the list. You can disconnect an environment only if no active work items are associated with it. After it’s disconnected, you can still view information about the environment in the Activity History but you can’t use it again in the DevOps Center project. You can, however, use the environment in a different DevOps Center project. ## Change Environment Select a different environment for a pipeline stage, if the pipeline isn’t yet activated. - **[Add the Release Environment for the Project](https://help.salesforce.com/s/articleView?id=platform.devops_center_project_add_release_env.htm&release=264.0.0&type=5)** At a minimum, projects require a release environment (often your production org) and one developer environment. Be sure all team members are users in this environment if they require access to it to perform deployments to it from within DevOps Center. - **[Add Development Environments to the Project](https://help.salesforce.com/s/articleView?id=platform.devops_center_project_add_dev_environments.htm&release=264.0.0&type=5)** Add the source-tracked development environment that you created for each developer working on the project. - **[Update IP Allowlist for DevOps Center App](https://help.salesforce.com/s/articleView?id=platform.devops_center_ip_allow_list_app.htm&release=264.0.0&type=5)** If your security settings require it, add the necessary domains for all environments that have allowlisting enabled. #### See Also - [_Salesforce DX Developer Guide_: Enable Source Tracking in Sandboxes](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_setup_enable_source_tracking_sandboxes.htm) - [_Salesforce DX Developer Guide_: Track Changes Between Your Project and Org](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_source_tracking.htm) - [_Salesforce Help_: Are You Sharing a Development Environment?](https://help.salesforce.com/s/articleView?id=platform.devops_center_dev_environment_sharing.htm&type=5&language=en_US) - [_Salesforce Help_: Synchronize Your Development Environment](https://help.salesforce.com/s/articleView?id=platform.devops_center_dev_environment_sync.htm&type=5&language=en_US) - [_Salesforce Help_: Swap a Development Environment](https://help.salesforce.com/s/articleView?id=platform.devops_center_dev_environment_swap.htm&type=5&language=en_US) - [_Salesforce Help_: Swap a Pipeline Environment](https://help.salesforce.com/s/articleView?id=platform.devops_center_pipeline_environment_swap.htm&type=5&language=en_US) # Envoy Connector Connect to an external Envoy account. Perform tasks like accessing location information, managing invites, or retrieving reservations. Use Envoy as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Envoy actions are available in Flow Builder. - Create An Invite - Delete An Invite - Get A Location - Get A Reservation - Get Desks - Get Locations - Update A Desk ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Equivalent Features in Flows and Workflow Rules Features and fields in workflow rules correspond to certain things in flows. Use the equivalent features and fields to build flows that can replace your workflow rules. ### Required Editions
View supported editions.
## General | Workflow Rules | Flows | | --- | --- | | Create New Rule | When creating a flow, select **Record-Triggered Flow**. | | Description | Use the Description field. The field is available when saving the flow. | | Email Alerts | Use the Action element. | | Outbound Messages | Use the Action element. | | Rule Name | Use the Flow Label field. The field is available when saving the flow. | | Select Object | Use the Object field. The field is available in the Start element, in the Select Object section. | | Tasks | Use the Create Records element. For How to Set the Record Fields, select **Use separate resources, and literal values** and then select the **Task** object. | | Time Triggers | Use a scheduled path. To create a scheduled path, in the Start element, optimize the flow for **Actions and Related Records**. Then, from the flow canvas, select **Add Scheduled Path** on the Start node. | ## Evaluation Criteria In flows, evaluation criteria are defined in the Start element, in the Set Entry Conditions section.
Workflow Rules Flows
created

Trigger the Flow When:

  • A record is created
created, and any time it's edited to subsequently meet criteria

Trigger the Flow When: When to Run the Flow for Updated Records:

  • A record is created or updated
  • Only when a record is updated to meet the condition requirements
created, and every time it's edited

Trigger the Flow When: When to Run the Flow for Updated Records:

  • A record is created or updated
  • Every time a record is updated and meets the condition requirements
To manually convert workflow rules with unsupported use cases in entry criteria, create a Decision element inside the Flow. Then recreate the workflow rule steps with the condition builder. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note With this method, the flow will always run and check on the decision after entering. This method can impact performance or prevent time-based workflow triggers from migrating. ## Rule Criteria In flows, rule criteria are defined in the Start element, in the Set Entry Conditions section. | Workflow Rules | Flows | | --- | --- | | Run this rule if the criteria are met | For Condition Requirements, select **All Conditions Are Met (AND)** | | Run this rule if the formula evaluates to true | For Condition Requirements, select **Formula Evaluates to True** | ## Field Updates In flows, field updates are done using the Update Records element. In the Update Records element, for How to Find Records to Update and Set Their Values, select **Use the {object name} record that triggered the flow**. In flows, you can enter values directly, or use formulas or references for field values. You can also update multiple fields in a single flow. To improve performance, place field updates in a flow optimized for fast field updates (before-save). Flows don’t support field update notifications for the Owner field. A Get Records element can be required to reference certain elements, like users or groups. ## Task Fields To create a task in a flow, use the Create Records element. | Workflow Rules | Flows | | --- | --- | | Assigned To | API Name OwnerId Field Name Assigned To | | Comments | API Name Description Field Name Comments | | Due Date | API Name ActivityDate Field Name Due Date | | Object | API Name WhatId Field Name Related To | | Priority | API Name Priority Field Name Priority | | Protected Component | N/A | | Status | API Name Status Field Name Status | | Subject | API Name Subject Field Name Subject | | Unique Name | N/A | ## Operators Flow Builder shows only the operators that are relevant to the field. `Less Than`, `Greater Than`, `Less Than or Equal`, and `Greater Than or Equal`, appear only for number fields. | Workflow Rules | Flows | | --- | --- | | `does not contain` | N/A | | `equals` | `Equals` | | `excludes` | N/A | | `greater or equal` | `Greater Than or Equal` (only number fields) | | `greater than` | `Greater Than` (only number fields) | | `includes` | N/A | | `less or equal` | `Less Than or Equal` (only number fields) | | `less than` | `Less Than` (only number fields) | | N/A | `Ends With` | | N/A | `Is Null` | | N/A | `Is Changed` | | `not equal to` | `Does Not Equal` | | `starts with` | `Starts With` | | `within` | N/A | To manually convert workflow rules that use the `does not contain` operator, use custom condition logic. For example, create a condition that uses the `Contains` operator in the first condition, and in the condition logic, enter **NOT 1**. #### See Also - [Migrate to Flow Tool Considerations](https://help.salesforce.com/s/articleView?id=platform.migrate_to_flow_tool_considerations.htm&release=264.0.0&type=5 "Review considerations and supported workflow rules and processes for the Migrate to Flow tool.") # Error Handling in Flow Approval Processes Error handling addresses how to manage unexpected issues that can occur when a flow approval process runs. Configure fault paths for stages to define actions to take if issues occur, ensuring that approval submissions are approved or rejected instead of failing. ### Required Editions
View supported editions for Flow Approval Processes.
## General If an orchestration run associated with a flow approval process encounters an error, it fails. This failure sets the status of the associated parent approval submission to Error. Unlike other orchestration runs, an orchestration run associated with a flow approval process can’t be resumed. When an orchestration run associated with a flow approval process fails, Salesforce sends an error email to either the admin who last modified the flow approval process or to the Apex exception email recipients. The error email provides details about the flow approval process, including the executed elements and all flows referenced by its steps. For an active flow approval process, the email also includes a link to view the failed orchestration run's details in Flow Builder. If a flow called by the orchestration run causes the failure, recipients receive two error emails: one for the flow approval process failure and one for the called flow's failure. To manage errors, configure fault paths for stages in your flow approval process. These paths define alternative actions to take if a stage or any step within it encounters an error, which helps minimize process failures. Design and debug your flow approval processes in a sandbox environment before deploying them to production, as a failed approval submission does not necessarily roll back all prior record changes. ## Unhandled Errors and Approval Submission Status An unhandled error occurs when an automation encounters a problem during execution, and no recovery mechanism exists. For an orchestration run associated with a flow approval process, an unhandled error occurs when a stage or step within a stage encounters an error, and the stage has no configured fault path.
Statuses Associated with Unhandled Errors
Associated item State status
Approval submission Any error occurred Error
Orchestration run Any error occurred Error
Stage run An orchestration run-level error occurred Discontinued
Stage run The stage or a step within the stage caused the error Error
Step run The step within the stage caused the error Error
Step run The step within the stage didn’t start before the error occurred Not Started
Step run The step within the stage was in progress when the error occurred Discontinued
Approval work item The approval work item had been completed before the error occurred
  • Approved
  • Rejected
Approval work item The approval work item had been assigned, but not completed before the error occurred Assigned
## Error Handling Strategies for Flow Approval Processes Error handling in a flow approval process primarily aims to minimize failures in associated orchestration runs so that parent approval submissions are approved or rejected. Use fault paths to manage errors from stages and steps. You can use an individual fault path or a centralized fault path in a flow approval process. Any fault path can contain decision elements and stage elements. The stage elements in a fault path can contain background steps and approval steps. A fault path can also use go to connectors. A go to connector in a fault path can connect to another element in the fault path, an element in another fault path, or an element in the main path of the flow approval process. Individual Fault Paths. Configure a separate fault path for each stage in a flow approval process. These individual paths contain elements and stages with steps that manage errors specific to each stage. This approach provides highly localized error resolution. For example, if a stage contains only one approval step, the fault path determines whether the approval step is approved or rejected. If the approval step is approved and no additional approvals are necessary, connect the decision outcome to the stage that runs final approval actions. If the approval step is approved, but more approvals are required, connect the decision outcome to the next flow approval process stage containing approval steps. If the approval step is rejected, connect the decision outcome to the stage that runs final rejection actions. Centralized Fault Path. Configure one central fault path that serves as a consolidated error handling mechanism. Typically, this approach starts with a decision element that evaluates variables and automatic output related to the orchestration run to identify the specific stage where the error occurred and what to do to address the failure. Connect the fault paths from other stages to the first decision element in the central fault path. This approach provides comprehensive error resolution. For example, in a multistage approval process, the centralized fault path begins with a decision element. If the status of the “Perform Initial Review” stage hasn’t been completed, the decision outcome’s path includes a stage with a background step that automatically notifies the submitter about the issue. Conversely, if the “Get Initial Financial Approval” step in the “Process Financial Approvals” stage failed, the decision outcome’s path includes a stage with two steps: a background step and an approval step. The background step notifies the finance department of the failure. The approval step assigns an alternate approval to the finance group. Because the finance approval is the last required approval in this approval process, this outcome path then connects to the decision element that determines whether to run final approval actions or final rejection actions. ## Avoiding Fault Path Auto-Approvals If a stage without a fault path or one of its steps fails, the orchestration run fails, and the status of the associated approval submission is set to Error. If a stage with a fault path or one of its steps fails, and the fault path runs without error, the status of the associated approval submission is either Approved or Rejected. The final status of the approval submission depends on the scenario. Approval Submission Outcomes | Error Scenario | Final Approval Submission Status | | --- | --- | | The stage where the error occurred has no configured fault path. | Error | | The stage where the error occurred has a configured fault path that runs without error. All completed approval work items are approved. | Approved | | The stage where the error occurred has a configured fault path that runs without error. At least one completed approval work item is rejected. | Rejected | | The stage where the error occurred has a configured fault path that runs without error. There are no completed approval work items. | Approved | To avoid automatically approving an approval submission with no completed approval work items, use these guidelines: - Configure fault paths for stages only when a previous stage contains at least 1 approval step. For example, a flow approval process starts with a stage containing only a background step that locks the record to be approved. Don’t configure a fault path for this stage. The most likely reason for this stage to fail is that the record is already locked. - Configure a fault path for the first stage that contains approval steps to determine whether any approval work items have been completed. In the decision outcome path where no approval work items have been completed, add a stage with an approval step. ## Error Handling Limitations - When an orchestration run associated with a flow approval process encounters an unhandled error, the orchestration run can’t be resumed. - There’s no way to reject an approval submission if a fault path finishes without an error and no approval work items have been completed. - No error handling can be added for orchestration-run level errors. - Debug details for a failed orchestration run can be viewed only within 14 days of the failure. - If an approval submission fails, Salesforce doesn’t necessarily roll back any record additions, changes, or deletions that occurred before the associated orchestration run failed. # Error Handling in Orchestrations Error handling manages unexpected issues that occur in stages during an orchestration run. Configure fault paths for stages to define recovery actions when stage errors occur, ensuring orchestrations complete successfully instead of failing. ### Required Editions
View supported editions for Flow Orchestration.
## General When an orchestration run encounters an error, the system sets its status to Error. Many errors that occur within stages are recoverable. For these errors, you have up to 14 days to fix the error and resume the orchestration run. If errors occur outside of stages, the orchestration run fails, and you can't resume it. See Resuming a Failed Orchestration in [Orchestration Run](https://help.salesforce.com/s/articleView?id=platform.orchestrator_orchestration_run.htm&release=264.0.0&type=5 "An orchestration run represents an instance of a running orchestration."). Resuming requires an administrator to fix the underlying flow or error and then resume the orchestration run. This approach differs from fault paths, which an orchestration designer configures at design time. Fault paths handle errors gracefully and provide recovery mechanisms or manual intervention steps for end users. When an orchestration run fails, Salesforce sends an error email to the admin who last modified the orchestration or to Apex exception email recipients. The error email provides details about the orchestration run, including which elements ran and which flows the steps referenced. For an active orchestration, the email also includes a link to view the failed orchestration run's details in Flow Builder. If a flow called by the orchestration causes the failure, recipients receive two error emails: one for the orchestration and one for the called flow. When a fault path handles an error and completes successfully, the orchestration doesn't send error notifications. However, you can add a background step to the fault path that notifies stakeholders when a failure occurs. To manage errors, configure fault paths for stages in your orchestration. If a stage or any step within it encounters an error, these paths define alternative actions to minimize process failures. Design and debug your orchestrations in a sandbox environment before deploying to production, because failed orchestrations don’t necessarily roll back all prior record changes. ## Unhandled Errors and Status Changes An unhandled error occurs when an orchestration run encounters a problem during execution and no recovery mechanism exists. For orchestrations, an unhandled error occurs when a stage or step encounters an error, and the stage has no configured fault path. Statuses Associated with Unhandled Errors | Item | Condition | Status | | --- | --- | --- | | Orchestration run | Any error occurred | Error | | Stage run | The stage was in progress when an orchestration run-level error occurred | Discontinued | | Stage run | The stage or a step within the stage caused the error | Error | | Step run | The step within the stage caused the error | Error | | Step run | The step within the stage didn't start before the error occurred | Not Started | | Step run | The step within the stage was in progress when the error occurred | Discontinued | ## Error Handling Strategies for Orchestrations Error handling in orchestrations manages failures so that business processes complete successfully or recover gracefully. Use fault paths to manage errors from stages and steps. You can use individual fault paths for targeted recovery or a centralized fault path for comprehensive error management. Fault paths are useful in scenarios where end users can provide manual intervention when the orchestration run encounters an error. For example, an external integration or API call fails because an endpoint is down. A fault path can include an interactive step where the assignee manually enters the required data. A fault path can be empty or contain decision elements and stage elements. Each stage in a fault path requires at least one step and can contain multiple steps. These steps include background steps, interactive steps, or a combination of both. Fault paths also support Go To connectors. A Go To connector links to another element in the same fault path, a different fault path, or the orchestration's main path. Individual Fault Paths. Configure a separate fault path for each stage in an orchestration. These individual paths contain elements and stages with steps that manage errors specific to each stage. This approach provides highly localized error resolution. For example, in an order processing orchestration, the inventory verification stage encounters an error due to a connection timeout. The fault path can rerun the verification step, send a notification to operations, or route to a manual review stage. Centralized Fault Path. Configure one central fault path that serves as a consolidated error handling mechanism. Typically, this approach starts with a decision element that evaluates variables and automatic output related to the orchestration run. The decision identifies the specific stage where the error occurred. The elements on the associated outcome path address the failure. Connect each stage's fault path to the first decision element in the central fault path. This approach provides comprehensive error resolution. ![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example For example, in a customer onboarding orchestration, the centralized fault path begins with a decision element. This decision evaluates which stage encountered an error and determines the appropriate recovery action. If the Create Customer Account stage status isn't `Completed`, the decision outcome's path includes a stage with a background step. This step notifies the account manager about the issue. If the Configure Service Access step in the Provision Systems stage fails, the decision outcome's path includes a stage with two steps. A background step creates a support ticket. An interactive step assigns system configuration to the IT team. After IT completes the configuration, the orchestration continues to the service activation stage. ## Error Handling Limitations - You can’t add error handling for orchestration-run level errors. - You can view debug details for a failed orchestration run only within 14 days of the failure. - A fault path containing only an End element handles errors by changing the orchestration run status to `Completed`. This approach suppresses the error without resolving it. Salesforce doesn't send error notification emails when the orchestration run status is Completed. However, the step and stage that originally encountered the error remain in Error status, even though the orchestration run status is Completed. # Error Recovery Options If transient errors occur, such as connectivity issues or errors in the event relay configurations, event relay resumes automatically after the connectivity issues are resolved or the configurations are fixed. The event relay attempts to resume sending events from the event bus from where it left off. In rare occasions, if it can't resume after the last relayed event, it uses the error recovery option to determine where to resume from. Specify the error recovery option when you create or edit the event relay in Setup. Choose one of these options. - Resume from the latest events received. This option skips sending events that were published during the error. This option is the default. - Resume from the earliest events stored in the event bus. This option sends new events and any other events less than 72 hours old. You can reprocess all stored events and catch up on missed events. Also, you can specify the error recovery option in Tooling API or Metadata API via the relayOption field in EventRelayConfig. When you create an event relay, add the relayOption field with the desired value in the EventRelayConfig POST request. Or you can update an event relay by performing a PATCH request for EventRelayConfig and supplying a value for relayOption. For more information about this field, see [EventRelayConfig](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_eventrelayconfig.htm) in the Tooling API Developer Guide and [EventRelayConfig](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_eventrelayconfig.htm) in the Metadata API Developer Guide. # Error: Deployment of the work items into the next stage failed This error occurs when deploying or promoting metadata components with unsupported special characters to a pipeline stage. The error text displays the component name and indicates that it wasn’t able to find the component in the zipped directory. To fix this error, replace the non-supported special characters with their URL-encoded versions. DevOps Center and its underlying technologies, such as Metadata API and Salesforce CLI, support these special characters: ``` /\^$#+?()|[]{}!@$&:’,” ``` If you try to promote a component with an unsupported special character, the promotion fails. From the pipeline, click **View Details** to view the error from the Activity History page. ![The error dialog indicating that the deployment failed due to component not found in zipped directory.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/unsupported_spec_char_error.png) To fix this error, first run a query to view the Submit Component record for the component name with the unsupported special character. Then substitute the unsupported character with its URL-encoded version. In this example, the problematic component is a page layout named `Layout:Recruiters(LTAM)ver2` that uses full-width parentheses, which are not supported characters. These characters are commonly used in East Asian languages, particularly in Chinese, Japanese, and Korean (CJK) scripts. 1. In the DevOps Center org, run a SOQL query to identify the Submit Component record associated with the component with the unsupported special character. ```sql SELECT id, sf_devops__Source_Component__c, sf_devops__File_Path__c, sf_devops__Change_Submission__r.sf_devops__Work_Item__r.Name FROM sf_devops__Submit_Component__c WHERE sf_devops__Source_Component__c = '' and sf_devops__Change_Submission__r.sf_devops__Work_Item__r.Name = '' ``` Substitute the name of the and with your specific details. In our example, the SOQL query looks like this: ``` SELECT id, sf_devops__Source_Component__c, sf_devops__File_Path__c, sf_devops__Change_Submission__r.sf_devops__Work_Item__r.Name FROM sf_devops__Submit_Component__c WHERE sf_devops__Source_Component__c = 'Layout:Recruiter__c-Recruiters(LTAM)ver2' AND sf_devops__Change_Submission__r.sf_devops__Work_Item__r.Name = 'WI-000129' ``` The query returns the file path name that contains the encoded version of the special characters. ![Developer Console after the SOQL query is run.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/soql_spec_char.png) 2. Update sf\_devops\_\_Source\_Component\_\_c to replace the special characters with its encoded version. In the sf\_devops\_\_File\_Path\_\_c field, copy the component name with the encoded special character (1), replace the non-encoded name in the sf\_devops\_\_Source\_Component\_\_c field (2). If using Developer Console as your query editor, you can double-click the fields when copying and pasting. ![Highlights the component name with encoded special characters in the File Path field, so you can replace the non-encoded special characters in the Source Component field.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/spec_char_paste.png) 3. Repeat to fix any other affected source components. 4. Save the changes. 5. Back in DevOps Center, try the promotion again. # Error: Promotion Stopped Due to New Events Dialog This error can occur if you attempt to promote work items but DevOps Center is processing pending events from the source control system. You sometimes see this dialog in combination with the “Too Many Callouts” error message. To fix this error, you perform a SOQL query to determine if event processing is continuing as expected or has stalled. 1. In DevOps Center, click the Home button. 2. Click the quick access menu (![Setup gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/resources-global/_corporate/images/gear.png)) then click **Developer Console**. In this example, the target stage is UAT. 1. Select the Query Editor tab. 2. Execute this SOQL query to list the current commit information that DevOps Center is processing. Substitute the name of your target stage and DevOps Center project name. ```html SELECT Id, Name, sf_devops__Branch__r.sf_devops__Remote_Reference__c, sf_devops__Branch__r.sf_devops__Remote_Reference_Date__c FROM sf_devops__Pipeline_Stage__c WHERE Name = 'UAT' and sf_devops__Pipeline__r.sf_devops__Project__r.Name = 'Recruiting App' ``` 3. Note the values in the sf\_devops\_Remote\_Reference\_\_c and sf\_devops\_Remote\_Reference\_Date\_\_c fields. 4. Attempt the promotion again. If the promotion is successful, you can continue with your work. If the promotion is unsuccessful, go to the next step. 5. In Developer Console, execute the query again. - If the values in the sf\_devops\_Remote\_Reference\_\_c and sf\_devops\_Remote\_Reference\_Date\_\_c fields changed, DevOps Center is processing the events correctly. Keep trying the promotion until all external events are processed. - If the values in the sf\_devops\_Remote\_Reference\_\_c and sf\_devops\_Remote\_Reference\_Date\_\_c fields didn’t change between executions, DevOps Center has encountered an error processing the events. Go to the next step. 3. In Pipeline Stages, click the dropdown menu in the target stage, then select **View Branch in Source Control**. In this example, the target stage is UAT. 4. In GitHub, find the unique ID (SHA) for the latest commit. 1. Click the Commits history icon, which is a clock next to the total number of commits for this branch. ![The GitHub UI, where you can click the Commits icon to view a list of commits.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/ts-github-commits-icon.jpg) The most recent SHA is listed first. 2. Click the Copy Full SHA icon. ![The Commits list in GitHub for the UAT branch. You can click the Copy icon to copy the SHA for later use.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/ts-github-commits-list.jpg) 3. Keep the SHA in your clipboard, or paste it in a text file to save it for use in the next step. 5. View the list of branches. 1. In DevOps Center, in the org URL, delete `sf_devops/DevOpsCenter.app` and replace it with `lightning/o/sf_devops__Branch__c/list`. ```html https://.lightning.force.com/lightning/o/sf_devops__Branch__c/list ``` 2. Find the branch record that corresponds to the target branch, for example, recruiting\_app\_uat. If you don’t see any branches or the repo contains many branches, create a list view to display your branches. To find the exact branch, include the branch name. ![Branches list view with branch name field added.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/ts-branches-list-view.jpg) 3. Delete the existing value for Remote Reference and paste the SHA that you copied. 4. Update the Remote Reference Date field to the current date and time. 5. Click **Save**. 6. Promote the work items. # Error: sf\_devops:Too many callouts: 101 When attempting a promotion, a red banner displays the “too many callouts” error message. If you also see the Promotion Stopped Due to New Events dialog, see [Error: Promotion Stopped Due to New Events Dialog](https://help.salesforce.com/s/articleView?id=platform.devops_center_troubleshooting_new_events_detected.htm&release=264.0.0&type=5 "This error can occur if you attempt to promote work items but DevOps Center is processing pending events from the source control system. You sometimes see this dialog in combination with the “Too Many Callouts” error message. To fix this error, you perform a SOQL query to determine if event processing is continuing as expected or has stalled.") instead for troubleshooting instructions. 1. In Pipeline Stages, click the dropdown menu in the target stage, then select **View Branch in Source Control**. In this example, the target stage is UAT. 2. In GitHub, find the unique ID (SHA) for the latest commit. 1. Click the Commits history icon, which is a clock next to the total number of commits for this branch. ![The GitHub UI, where you can click the Commits icon to view a list of commits.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/ts-github-commits-icon.jpg) The most recent SHA is listed first. 2. Click the Copy Full SHA icon. ![The Commits list in GitHub for the UAT branch. You can click the Copy icon to copy the SHA for later use.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/ts-github-commits-list.jpg) 3. Keep the SHA in your clipboard, or paste it in a text file to save it for use in the next step. 3. View the list of branches. 1. In DevOps Center, in the org URL, delete `sf_devops/DevOpsCenter.app` and replace it with `lightning/o/sf_devops__Branch__c/list`. ```html https://.lightning.force.com/lightning/o/sf_devops__Branch__c/list ``` 2. Find the branch record that corresponds to the target branch, for example, recruiting\_app\_uat. If you don’t see any branches or the repo contains many branches, create a list view to display your branches. To find the exact branch, include the branch name. ![Branches list view with branch name field added.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/ts-branches-list-view.jpg) 3. Delete the existing value for Remote Reference and paste the SHA that you copied. 4. Update the Remote Reference Date field to the current date and time. 5. Click **Save**. 4. Promote the work items. # Error: There was an internal data model error. Please reload the page... A work item indicates that it was externally merged but you didn’t externally merge it. When you attempt to complete the promotion, you see a red banner with the “internal data model” error message. Due to event processing delays, a duplicate Work Item Promote (WIP) record was erroneously created. ![Pipelines Stages tab showing that you can’t proceed until you complete the promotion when changes are merged outside of Lifecycle Center.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/pipeline-complete-promotion.png) Find and delete the duplicate Work Item Promote record. 1. In the Pipeline Stages view, note the affected work item number, for example, WI-000002. 2. Find the duplicate Work Item Promote record. 1. In Developer Console, select the Query Editor tab. 2. Enter this SOQL query, substituting the example work item number you’re trying to promote. In this example, line breaks were added for readability purposes. If you copy this query, remove the line breaks before running it. 3. Look for the record with a null status for `sf_devops_Status__r` (1) and a duplicate value for Merge\_Result/Remote\_Reference for `sf_devops_Merge_Result__c`, `sf_devops_Remote_Reference__c` (2). ![In the Query Results, copy the ID of the duplicated Work Item Promote record.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/devops_center/images/ts_dev_console_dup_wip.png) 3. To open the record, click to highlight the null record, then click **Open Detail Page** (3). 4. Delete the WIP record. 5. Back in Lifecycle Center, refresh the Pipeline Stages view to remove the External Merge message. Now you can promote your changes. # Error: Unable to Reauthenticate Bitbucket After Credential Changes Your Bitbucket connection with Lifecycle Center works, but when your team revokes tokens or modifies access configurations, the authentication fails. Lifecycle Center prompts you to reauthenticate and the Home page shows that you're logged out. To reconnect, you must reauthenticate. However, Lifecycle Center doesn't have a UI option to update or reauthenticate an existing Bitbucket connection. **Cause** Lifecycle Center stores Bitbucket authentication credentials in Named Credentials and External Credentials. When these credentials become invalid, there's no direct way to reauthenticate through the Lifecycle Center UI. **Action** Delete the existing credentials and reauthenticate to establish a new connection. 1. From **Setup**, enter Named Credentials in the Quick Find box, then select **Named Credentials**. 2. Find the `ALMDevopsBitbucket` named credential. 3. From the dropdown menu next to the credential, select **Delete**, and confirm the action. 4. Switch to the **External Credentials** tab. 5. Find the `ALMDevopsBitbucket` external credential. 6. From the dropdown menu next to the credential, select **Delete**, and confirm the action. 7. Return to Lifecycle Center and reauthenticate your Bitbucket connection. You can set up the Bitbucket connection with your updated credentials. See [Set Up Bitbucket as Your Source Control](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_bitbucket_as_source_control.htm&release=264.0.0&type=5 "Configure your Bitbucket Cloud repository to store project files and manage team access. Each Lifecycle Center pipeline requires its own Bitbucket Cloud repository as the single source of truth."). Your Bitbucket connection is reestablished with the new credentials. # Errors in the Process Builder The API names for criteria nodes and actions are created in the background. When you create or update processes, you can see error messages that reference those names to help you identify specifically where the problem occurred. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules.").
API Name Description
myVariable_current.field

field is the name of the field that’s referenced. myVariable_current refers to the field values that the record had when it started the process.

For example, myVariable_current.Id corresponds to the record’s field value for Id when the record started the process.

myVariable_old.field

field is the name of the field that’s referenced. myVariable_old refers to the most recent previous values of the record that started the process.

For example, myVariable_old.Id corresponds to the record’s field value for Id immediately before the record started the process.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png) Example ``` The element has an invalid reference to “myVariable_current.AnnualRevenue”. ``` myVariable\_current.AnnualRevenue refers to the value for the field AnnualRevenue when the record started the process. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Error or warning messages can refer to a “flow” instead of a “process”. Those messages still apply to your process. #### See Also - [Common Reasons Why Processes Fail](https://help.salesforce.com/s/articleView?id=platform.process_errors.htm&release=264.0.0&type=5 "Here are some common design problems that cause processes to fail.") # Essential Service Options in Backup & Recover for Dynamics From the Options tab, you can make specific configurations to optimize the Dynamics backup and tailor it to your business. ## General - Change the name and subtitle from the default names given when creating the backup service. - Change the time and day for automatic backups. ## Data Classification Select if Service contains production data. ## Blockchain Verify To enable blockchain verification, select Set this service to Blockchain Verify. After changing the General tab: click Save or click the three dots to select from: - Pause or Archive the Service - Delete the service and its backups. ## Retention Edit your retention policy. See [Dynamics Backup Retention Policies](https://help.salesforce.com/s/articleView?id=platform.br_o_microsoft_retention_policies.htm&release=264.0.0&type=5 "Retention policies help you meet requirements for keeping data backed up. You can adjust retention periods and retain backups indefinitely when needed for legal procedures."). ## API Consumption API Consumption allows you to control the limits for downloading files and using the bulk API separately. Before increasing the limit, we suggest checking the API consumption limit in your environment to make sure you're within the allowed API limit. If you get a warning for missing files and attachments, look at your API limits and increase them based on your organization's daily allowed API. ## Special Objects - Select Backup Knowledge Articles and Save. - To turn on Custom Big Objects, contact support. # Essential Service Options in Backup & Recover for Salesforce Configure and optimize your Salesforce backup services to meet your business needs. For example, you can schedule automatic backups for off-peak hours, pause or archive a service, or set retention policies to comply with regulations. ## General On the General tab, from the three dots menu in the top right, you can: - Pause or Archive the Service - Delete the service and its backups. In the General tab, you can: - Change the name and subtitle from the default names given when creating the backup service. - In the Authentication section you can: - Change the authenticated user - Update the custom domain - Re-authenticate the service - In the Schedule section you can: - Change the time and day for automatic backups. - In the Data Classification section you can: - Select if Service contains production data. Seeding uses this to identify non-production services that contain production data. Based on your user role, Data Protection mandates that seeding into such services includes anonymization as part of the job. - In the Blockchain Verify section you can: - Set this service to Blockchain Verify. ## Retention Edit your retention policy. See [Backup Retention Policies in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_retention_policies.htm&release=264.0.0&type=5 "Retention policies help you meet requirements for keeping Salesforce data backed up. You can adjust retention periods and retain backups indefinitely when needed for legal procedures."). ## Configure Files and Special Objects The name of this tab and the options available depend on your service type. In a Sandbox, the tab is called Files and Special Objects. In Data, it's called Special Objects. The Files section only appears in Sandbox Services. In this section you can: - Select to Include files in the backups of this sandbox (Default: On) In the Special Objects section you can: - Select Backup Knowledge Articles. - To turn on Custom Big Objects, contact support. - **[Archive a Service in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_archive_services.htm&release=264.0.0&type=5)** Preserve backup data after you migrate, decommission, or duplicate a Salesforce production or sandbox backup service instance. Archiving the service stops it from backing up new data. Access archived data for future restoration or data seeding. - **[Delete a Salesforce Sandbox Service in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_delete_services.htm&release=264.0.0&type=5)** Free up resources and storage space after a sandbox service is outdated or refreshed. Deleting a sandbox service permanently removes all backup data associated with it. - **[Pause a Salesforce Service in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_pause_services.htm&release=264.0.0&type=5)** Limit access to your data during proof of concept or testing periods. By pausing instead of archiving, you can specify when to resume backups and avoid losing backup coverage. - **[Reauthenticate Salesforce Services in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_reauthenticate_service.htm&release=264.0.0&type=5)** If you get a message about an inactive Authenticated User, a revoked token or an authentication error, you can restore access and functionality by reauthenticating the Salesforce Authenticated User. - **[Back Up a Refreshed Salesforce Sandbox in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_reauthenticate_sandbox.htm&release=264.0.0&type=5)** When you refresh a Salesforce sandbox, create a backup service for it. The refresh assigns a new org ID, so the original service no longer connects to the sandbox. - **[Backup Retention Policies in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_retention_policies.htm&release=264.0.0&type=5)** Retention policies help you meet requirements for keeping Salesforce data backed up. You can adjust retention periods and retain backups indefinitely when needed for legal procedures. - **[Backing Up Special Objects in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_special_objects.htm&release=264.0.0&type=5)** Backup & Recover excludes Knowledge Articles and custom big objects from backups by default. Review how each object type behaves before you add special objects to a backup. - **[Understand Supported Salesforce Objects](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_objects_considerations.htm&release=264.0.0&type=5)** Ensure your data is fully protected by reviewing which Salesforce objects are supported in backups. By default, backups include history, share, and feed objects. Configure backups to include knowledge articles or custom big objects. - **[Supported Salesforce Metadata Objects in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_objects_supported.htm&release=264.0.0&type=5)** See which Salesforce metadata objects you can include in your backup. - **[Unsupported Salesforce Metadata Objects in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_objects_unsupported.htm&release=264.0.0&type=5)** See which Salesforce metadata objects can't be backed up. - **[Backup Exclusions in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_exclusions_overview.htm&release=264.0.0&type=5)** Exclude items that you don't need in a Salesforce backup to protect data privacy or reduce the backup duration. - **[Manage Backup Exclusion Rules in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_manage_exclusion_rules.htm&release=264.0.0&type=5)** Create and verify rules to control your Salesforce backup content with backup exclusions. Select items that you don't want backed up and easily view them in one place with a clear audit trail. - **[Exclude Fields from a Backup in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_exclude_fields.htm&release=264.0.0&type=5)** Exclude noncritical fields from Salesforce backups to streamline the process and improve efficiency. Manage data privacy and compliance requirements by excluding sensitive data. - **[Tables That Can't Be Excluded in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_exclusions_forbidden_tables.htm&release=264.0.0&type=5)** Some tables can't be excluded from Salesforce backups. - **[Back Up History Tables in Backup & Recover for Salesforce](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_include_history.htm&release=264.0.0&type=5)** Include an object's field history in Salesforce backups. History tables capture and store historical data for each record, so you can track changes and understand the evolution of data over time. - **[Permissions Report in Backup & Recover for Salesforce FAQs](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_permission_report_faqs.htm&release=264.0.0&type=5)** The Permissions Report lets you know when your Salesforce authenticated user is missing permissions needed to back up data. Find answers to questions about Permissions Reports. - **[How Backup & Recover Uses Salesforce APIs](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_salesforce_apis.htm&release=264.0.0&type=5)** Backup & Recover uses Salesforce APIs for its backup and restore operations. The API calls that Backup & Recover makes don’t count against your org's API limits. - **[Smart Alerts for Salesforce – Overview](https://help.salesforce.com/s/articleView?id=platform.backup_recover_o_smart_alerts_overview.htm&release=264.0.0&type=5)** Backup & Recover Smart Alerts tell you about critical changes to your Salesforce SaaS data and metadata, such as deletions and corruptions. Configure alerts that align with your company's priorities and compliance requirements to reduce false positives and enhance data management. # Essential Service Options in Backup & Recover for ServiceNow From the Options tab, you can make specific configurations to optimize the ServiceNow backup and tailor it to your business. ## General - Change the name and subtitle from the default names given when creating the backup service. - Change the time and day for automatic backups. ## Data Classification Select if Service contains production data. ## Blockchain Verify To enable blockchain verification, select Set this service to Blockchain Verify. After changing the General tab: click Save or click the three dots to select from: - Pause or Archive the Service - Delete the service and its backups. ## Retention Edit your retention policy. See [ServiceNow Backup Retention Policies](https://help.salesforce.com/s/articleView?id=platform.br_o_servicenow_retention_policies.htm&release=264.0.0&type=5 "Retention policies help you meet requirements for keeping data backed up. You can adjust retention periods and retain backups indefinitely when needed for legal procedures."). ## API Consumption API Consumption allows you to control the limits for downloading files and using the bulk API separately. Before increasing the limit, we suggest checking the API consumption limit in your environment to make sure you're within the allowed API limit. If you get a warning for missing files and attachments, look at your API limits and increase them based on your organization's daily allowed API. ## Special Objects - Select Backup Knowledge Articles and Save. - To turn on Custom Big Objects, contact support. # Establish a Picklist Upper Bound Limit You can enforce an upper bound limit of inactive values on existing picklists. The limit is enforced on the inactive values of unrestricted, custom picklists whose numbers don’t exceed the allowable limit. By default, all new unrestricted picklists have an enforced limit of 4,000 inactive values. ### Required Editions
Available in: Salesforce Classic and Lightning Experience
Available in: All Editions
User Permissions Needed
To create or change custom fields: Customize Application
1. From **Setup**, in the Quick Find box, enter Picklist Settings, and then select **Picklist Settings**. 2. On the Picklist Settings page, click **Establish upper bound on existing picklists**. A query runs to identify picklists that have fewer than 4,000 inactive values. The limit is then enforced only on those picklists. A message appears to show the number of picklists that were bound to the limit, or that there are no unbound picklists that meet the limit. You can run the upper bound on existing picklists multiple times. For example, if you delete picklist values, you can potentially reduce the total number of values to be less than the limit. Admins or Salesforce can’t configure the limit of 4,000 inactive values. #### See Also - [Convert a Text Field to a Picklist Field](https://help.salesforce.com/s/articleView?id=platform.fields_converting_field_to_picklist.htm&release=264.0.0&type=5 "By default, an upper bound limit of 4,000 is applied to inactive unrestricted picklists for each field. If you exceed this limit when converting a text field to a picklist field, you get an error message.") # Estimate Wait Times When a customer joins a queue, Lobby Management can calculate and estimate their wait time. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
Greeters and customers can view and refresh the estimated wait time from these pages.
Persona Where to View Estimated Wait Times?
Greeters Lobby Management dashboard
Guest Users Self check-in experience
Authenticated Users

Self check-in experience

My Appointments page

# Evaluate Lifecycle Center in a Non-Production Org Lifecycle Center is available in all orgs from the App Launcher. To evaluate it without affecting your production org, access it from a Developer Edition (DE) org and connect non-production orgs as pipeline environments. Connecting non-production orgs keeps your evaluation separate from live business data. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
Not available in: Government Cloud Plus. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center is supported in orgs in the EU that aren't part of EU OZ, per standard product terms and conditions.
## Before You Start ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note If you're migrating from DevOps Center (Managed Package), evaluate in a separate org first. See [DevOps Center Managed Package Migration](https://help.salesforce.com/s/articleView?id=platform.devops_center_migrate_managed_package.htm&release=264.0.0&type=5 "Move selected DevOps Center (Managed Package) projects to Lifecycle Center."). Confirm these prerequisites before you select a configuration: - Sandbox license: Option 1 (recommended) requires a Developer or Developer Pro sandbox license. Use options 2 or 3 if you don't have one. - Source control account: Lifecycle Center requires GitHub or Bitbucket. Set up your account before you configure. See [Plan Your Setup](https://help.salesforce.com/s/articleView?id=platform.devops_center_plan_setup.htm&release=264.0.0&type=5 "Before you configure Lifecycle Center, plan how your team works and what your release process looks like. The decisions you make during setup, such as how many pipeline stages to create, which environments to connect, and which source control provider to use, shape how effectively Lifecycle Center works for your organization."). - Scratch orgs: Options 2 and 3 require Salesforce CLI and a Dev Hub org. ## Choose a Configuration Salesforce supports these configurations, listed in the recommended order. Use this table to select the best option for your situation. | Option | Pipeline and Release Environments | Development Environment | | --- | --- | --- | | 1 (Recommended) | Developer Edition orgs | Source-tracked Developer or Developer Pro sandbox | | 2 | Developer Edition orgs | Scratch org. Enable Dev Hub in the DE org to create scratch orgs. | | 3 | Scratch orgs | Scratch org. Enable Dev Hub in the DE org to create scratch orgs. | ## Considerations - Evaluation length: DE orgs and sandboxes don't expire as long as you log in regularly. Scratch orgs are temporary. The default is 7 days, with a 30-day maximum. - Scratch org allocations: A DE org as your Dev Hub limits you to 3 active (concurrent) scratch orgs and 6 per day. If your production org has Dev Hub enabled with allocations to spare, use that instead. - Realism: A source-tracked sandbox (option 1) mirrors your existing production configuration with no extra setup. ## About Each Org Type **Developer Edition Orgs** Developer Edition orgs provide free, non-expiring environments ideal for pipeline and release environments. Because DE orgs don't support source tracking, don't use them as development environments. - Sign up for as many DE orgs as needed for the release environment and pipeline stages. - Enable Dev Hub in the DE org if you plan to use scratch orgs. - Avoid using DE orgs as permanent Hub orgs. DE orgs have very low limits that impact the long-term use of Lifecycle Center. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note You can also use Trailhead Playgrounds for hands-on evaluation. A Trailhead Playground is a DE org with Trailhead-specific data and tools. If a Trailhead module hands-on challenge creates an org, use it as your evaluation environment. **Developer or Developer Pro Source-Tracked Sandboxes** Use a source-tracked sandbox for your development environment. It mirrors your production org's configuration and metadata with no extra setup. Choose a Developer sandbox for isolated testing or a Developer Pro sandbox if you require more storage, integration testing, or user training. For storage limits and refresh intervals, see [Sandbox Types and Templates](https://help.salesforce.com/s/articleView?id=platform.data_sandbox_environments.htm&type=5&language=en_US). - Both sandbox types include a copy of your production org's metadata. - Sandboxes don't expire as long as you log in regularly and refresh them periodically. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-devops_center-264-0-0-production-enus/166010c3-4c34-4087-92ad-aea917baf524/images/icon_note.png) Note You can't use sandboxes as the Lifecycle Center Hub org. See [Why Can't I Install DevOps Center in a Sandbox?](https://help.salesforce.com/s/articleView?id=platform.next_gen_devops_center_setup_considerations.htm&release=264.0.0&type=5 "Review these considerations before you set up Lifecycle Center."). **Scratch Orgs** Scratch orgs are temporary, source-tracked environments for development and pipeline testing. Unlike sandboxes, scratch orgs start completely empty. They contain only what you deploy from source control. Plan for additional time to provision data and configure your scratch org to match production. - Set scratch org duration to 30 days when you create the org to get the full evaluation period. The default duration is 7 days. - Configure a Dev Hub to create scratch orgs. Your Dev Hub edition determines your active scratch org limit. - Use built-in source tracking for development or pipeline use. - Create scratch orgs quickly using Salesforce CLI. For full setup steps, including the scratch org definition file, see [Access Lifecycle Center in a Scratch Org](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_install_scratch_org.htm&release=264.0.0&type=5 "Scratch orgs offer a temporary evaluation environment with a maximum duration of 30 days."). ## What to Try During Your Evaluation Focus your evaluation on the core change management workflow: creating a project, moving work items through a pipeline, and deploying to a release environment. **Follow a Guided Learning Path** Complete the [DevOps Center Setup Trailhead module](https://trailhead.salesforce.com/content/learn/modules/devops-center-setup) as your guided starting point to practice creating a project, building a pipeline, and assigning a work item. To evaluate Lifecycle Center from your team's perspective, see [Get Started with Lifecycle Center by Role](https://help.salesforce.com/s/articleView?id=platform.next_gen_devops_center_get_started_by_role.htm&release=264.0.0&type=5 "Lifecycle Center (formerly next-generation DevOps Center) supports four roles: admins, development team members, testing managers, and deployment managers. These roles collectively manage projects, code commits, quality gate rules, and pipeline promotions."). It maps the responsibilities and key tasks for admins, development team members, testing managers, and deployment managers. Try at least one role's core tasks during your evaluation. **Test These Scenarios** - Promote a stage. Create two work items and promote them together to test how Lifecycle Center handles concurrent work. - Review the audit trail. Check the activity history to confirm it meets your team's governance needs. - Test your integrations. If your team uses Jira, test the integration during evaluation. ## Know When You're Ready for Production You're ready for production when you can answer YES to these questions: - Does Lifecycle Center's pipeline model match your release process? - Can your admins use it without significant retraining? - Does it integrate with your source control provider? When you're ready to move to production, see [Get Started with Lifecycle Center](https://help.salesforce.com/s/articleView?id=platform.next_gen_devops_center_get_started.htm&release=264.0.0&type=5 "Lifecycle Center brings modern application lifecycle management and release management to your whole team. Because every change is captured in source control, you get a single source of truth for your team’s changes, so admins, developers, and release managers can collaborate. Follow this learning map to set up governed development environments, coordinate work across teams, validate quality, and deploy changes predictably from development to production.") for a complete setup and deployment learning map. - **[Access Lifecycle Center from a Developer Edition Org](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_install_de_org.htm&release=264.0.0&type=5)** Sign up for a Developer Edition (DE) org and access Lifecycle Center from the App Launcher to evaluate it in a non-production environment. - **[Access Lifecycle Center in a Scratch Org](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_install_scratch_org.htm&release=264.0.0&type=5)** Scratch orgs offer a temporary evaluation environment with a maximum duration of 30 days. #### See Also - [_Salesforce CLI Setup Guide_: Install Salesforce CLI](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_install_cli.htm) - [_Salesforce DX Developer Guide_: Enable Dev Hub Features in Your Org](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_setup_enable_devhub.htm) - [_Salesforce DX Developer Guide_: Scratch Orgs](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_scratch_orgs.htm) - [_Salesforce DX Developer Guide_: Enable Source Tracking in Sandboxes](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_setup_enable_source_tracking_sandboxes.htm) # Evaluation Flows for Flow Approval Processes When you need more than 10 requirements to control stage and step execution, use an evaluation flow. Select the Evaluation Flow tile in the New Automation window to create an evaluation flow. ### Required Editions
View supported editions for Flow Approval Processes.
## Variables in Evaluation Flows When you select the Evaluation Flow tile in the New Automation window, you create an evaluation flow that contains a predefined Boolean output variable named isOrchestrationConditionMet. Initialize isOrchestrationConditionMet to `false`. To indicate that the custom conditions are met, set isOrchestrationConditionMet to `true`. Evaluation flows return a value only for isOrchestrationConditionMet. Values for any other output variables are discarded. ## Evaluation Flow Execution Every time an approval step or an asynchronous background step within the current stage is completed, the orchestration run associated with a parent approval submission evaluates the conditions for that stage and its steps. To trigger an evaluation of conditions for the current stage and its steps, publish an orchestration event with `$Orchestration.Instance` of the orchestration run associated with the approval submission. The status of each stage or step determines which conditions are checked by the orchestration run associated with a parent approval submission. If the condition being checked relies on an evaluation flow, the evaluation flow runs. - When a stage is in progress, the orchestration run associated with the parent approval submission determines whether the stage can be completed. - For each step not started within the current stage, the orchestration run associated with the parent approval submission determines whether the step is ready to start. - For each in-progress approval step within the current stage, the orchestration run associated with a parent approval submission determines whether the step can be completed. ## Running Context of an Evaluation Flow Evaluation flows can be run only in system context without sharing and have access to all data # Evaluation Flows in Orchestrations When you need more than 3 requirements to control stage and step execution, use an evaluation flow. Select the Evaluation Flow tile in the New Flow window to create an evaluation flow. ### Required Editions
View supported editions for Flow Orchestration.
## Variables in Evaluation Flows When you select the Evaluation Flow tile in the New Flow window, you create an evaluation flow that contains a predefined Boolean output variable named isOrchestrationConditionMet. Initialize isOrchestrationConditionMet to false, and to indicate that the custom conditions are met, set isOrchestrationConditionMet to true. Evaluation flows only return a value for isOrchestrationConditionMet. Values for any other output variables are discarded. ## Evaluation Flow Execution Every time an asynchronous background step, an interactive step, or a MuleSoft step within the current stage is completed, the orchestration evaluates the conditions for that stage and its steps. To trigger an evaluation of conditions for the current stage and its steps, publish an orchestration event with $Orchestration.Instance The status of each stage or step determines which conditions the orchestration checks. If the condition being checked relies on an evaluation flow, the evaluation flow runs. - When a stage is in progress, the orchestration determines whether it can be completed. - For each not started step within the current stage, the orchestration determines whether the step is ready to start. - For each in progress interactive step within the current stage, the orchestration determines whether the step can be marked as completed. ## Running Context of an Evaluation Flow In API version 60.0 and later, evaluation flows can be run only in system context without sharing and have access to all data. In API version 58.0 and 59.0, evaluation flows always run in system context. In API version 57.0 and earlier, evaluation flows run as specified in the flow’s How to Run the Flow advanced option. #### See Also - [Trigger an Evaluation of Orchestration Stage and Step Conditions](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_trigger_stage_step_conditon_evaluation.htm&release=264.0.0&type=5 "Every time a step within the current stage completes, the orchestration evaluates the conditions for that stage and its steps. You can also publish an orchestration event from a flow to trigger an evaluation of orchestration stage and step conditions.") # Event Channels An event relay uses an event channel. A channel is a stream of events in the Salesforce event bus. A single channel can contain multiple types of platform events, including real-time event monitoring events, or change data capture events. Each event relay is associated with a unique channel that’s identified by its channel ID. Don’t reuse a channel for another event relay. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip To stream the same type of event to different AWS regions, create a separate channel for each AWS region, and then create an event relay for each channel. ## Custom Channels for Platform Events and Change Events Use a custom channel to group event messages from one or more events through channel members. For example, for platform events, if `MyEvent1__e` is a custom platform event defined in Salesforce, create a channel to receive event messages for `MyEvent1__e` if you add a channel member for `MyEvent1__e`. To receive event messages for another event on that channel, such as `MyEvent2__e`, add a channel member for `MyEvent2__e`. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip If you’re using a custom platform event, make sure that platform event is defined in Salesforce. For more information, see [Platform Event Fields](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_define_ui.htm) in the Platform Events Developer Guide. For the maximum number of custom channels that you can create for custom platform events and real-time event monitoring events, see [Common Platform Event Allocations](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_limits_common.htm) in the Platform Events Developer Guide. Similarly, for change data capture, you can create a custom channel to receive change event messages. If you create a channel for changes in one Salesforce object, such as `AccountChangeEvent`, the channel contains one member for `AccountChangeEvent`. To receive events for another Salesforce object, such as `LeadChangeEvent`, add another channel member. ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_tip.png) Tip Salesforce provides change events, so you don’t define them. For more information about creating custom channels, see [Create a Channel and Channel Members](https://help.salesforce.com/s/articleView?id=platform.ev_relay_create_channel_section.htm&release=264.0.0&type=5 "You can create a channel and add members by using Tooling API. A channel is a stream of events. It contains members that specify the type of events that can be received on the channel. A channel can contain a stream of platform events, including real-time event monitoring events, or change data capture events. For a channel of change data capture events, you can select the standard ChangeEvents channel instead of creating a custom channel."). For the maximum number of channels that you can create for change events, see [Default Change Event Allocations](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_allocations_default_allocations.htm) in the Change Data Capture Developer Guide. ## The Standard `ChangeEvents` Channel The predefined standard channel `ChangeEvents` includes all change events that correspond to the Salesforce objects that you select in Setup. You can select `ChangeEvents` from the channel’s dropdown in the event relay creation wizard. Before you can use the standard `ChangeEvents` channel, from Setup, select the objects that you want change events for in the Change Data Capture page. For more information, see [Select Objects for Change Notifications in the User Interface](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_select_objects.htm) in the Change Data Capture Developer Guide. ## Filtered Channels for Platform Events and Change Events Add a filter to a custom channel and send only events that match the filter criteria to Amazon EventBridge. By using a filtered channel, you reduce the volume of events relayed to Amazon EventBridge, process events efficiently, and decrease the consumption of the event delivery allocation. Event relay filtering is available for custom channels that reference custom platform events and change events but not for real-time event monitoring events. To add a filter to a platform event channel, see [Filter Your Stream of Platform Events with Custom Channels](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_filter_section.htm) in the Platform Events Developer Guide. To add a filter to a change data capture channel, see [Filter Your Stream of Change Events with Channels](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_filter_section.htm) in the Change Data Capture Developer Guide. ## Change Event Enrichment in Channels Change event messages include values for new and changed fields, but sometimes unchanged field values are needed for processing or replicating data. To enrich change events with one or more fields that are always present in the event message, create a custom channel with enriched fields. To learn how to add enrichment, see [Enrich Change Events with Extra Fields](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_enrich_intro.htm) in the Change Data Capture Developer Guide. # Event Integration with Amazon Eventbridge After creating the event relay in Salesforce, the event relay creates a partner event source in EventBridge. You associate the partner event source with an event bus. After you start the event relay in Salesforce, the event bus in EventBridge receives the events published and relayed from the Salesforce event bus. You can process the received events using AWS services. ![Event relay connection to a partner event source in Amazon EventBridge](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ev-relay-partner-event-source.png) For more information, see [Amazon EventBridge Partner Onboarding Guide](https://docs.aws.amazon.com/eventbridge/latest/onboarding/amazon_eventbridge_partner_onboarding_guide.html) in the AWS documentation. ## Process Events in Amazon EventBridge Using Rules When you publish an event to the Salesforce event bus, Salesforce relays the event to AWS using the connection that is set up through the event relay configuration. After events are received in Amazon EventBridge from Salesforce, you can process the received events in EventBridge using rules. Rules match incoming events in an event bus and assign them to targets. Use targets, such as AWS services, to perform actions on events. You can add one or more targets to a rule. With rules, you can filter on the payload so that you can send specific events to specific targets. For more information, see [Amazon EventBridge rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) and [Amazon EventBridge targets](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) in the AWS documentation. ![Amazon EventBridge rules can have one more targets to process events](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ev-relay-rules-targets.png) # Event Relay Integrate your real-time events with Amazon Web Services (AWS). Use Event Relay to send platform events and change data capture events from Salesforce to Amazon EventBridge. - **[Get Started](https://help.salesforce.com/s/articleView?id=platform.get_started.htm&release=264.0.0&type=5)** By using Event Relay in Salesforce with Amazon EventBridge in AWS, your Salesforce event-driven apps can use AWS services to process events or send events to third-party and SaaS integrations. You can also send platform events from AWS to Salesforce, where subscribers can process them using Salesforce Platform capabilities. - **[Relay Events from Salesforce to Amazon EventBridge](https://help.salesforce.com/s/articleView?id=platform.ev_relay_events_section.htm&release=264.0.0&type=5)** This section contains steps to create an event relay in Salesforce. - **[Event Relay Statuses and Options](https://help.salesforce.com/s/articleView?id=platform.ev_relay_manage.htm&release=264.0.0&type=5)** Check out information about event relay statuses and the error recovery option. - **[Send Events from AWS Back to Salesforce Using an API Destination](https://help.salesforce.com/s/articleView?id=platform.ev_relay_send_event_to_salesforce.htm&release=264.0.0&type=5)** An API destination is the target of a rule, and it enables you to route events to HTTP endpoints. Specifically, you can use an API destination to publish an event to Salesforce from EventBridge using REST API. # Event Relay Allocations Check out allocations related to the event relays that you can create and events relayed to Amazon EventBridge. Number of Event Relays The maximum number of event relays that you can create is 200. Events Delivered to Amazon EventBridge The maximum number of platform events and change events delivered to Amazon EventBridge in the last 24 hours across all event relays corresponds to your event allocations. The event delivery usage is counted when the event is delivered to Amazon EventBridge. It isn’t counted when the event is stored in the event bus before delivery. The event delivery allocations are common for platform events and change events. Also, they’re shared with CometD clients, Pub/Sub API clients, and empApi Lightning components. For more information, see [Platform Event Allocations](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_event_limits.htm) in the Platform Event Developer Guide and [Change Data Capture Allocations](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_allocations.htm) in the Change Data Capture Developer Guide. # Event Relay Considerations Keep these considerations in mind when using Event Relay. ## Event Relay on GovCloud Event Relay is available for customers using Salesforce Government Cloud orgs in civilian environments. GovCloud customers can configure event relay to send events to AWS GovCloud regions. You are responsible for configuring which data is transferred and for determining the data's destination. Depending on your choices, it's possible for data to leave the FedRAMP authorized environment. ## Deleting an Event Relay When you delete an event relay, its corresponding partner event source in Amazon EventBridge is deleted. The event bus that is associated with the partner event source in AWS isn’t affected. ## Event Relays Aren't Copied to Sandbox When you create, clone, or refresh a sandbox, event relays aren’t copied to sandbox. To test event relays in sandbox, recreate the event relays in your sandbox. ## Event Encryption with Platform Shield Encryption Starting in Summer ’23, Event Relay supports Salesforce orgs with Shield Platform Encryption enabled. You can send platform events and change data capture events encrypted at rest with Shield Platform Encryption to Amazon EventBridge. For more information about event encryption at rest with Shield Platform Encryption, see [Encrypting Platform Event Messages at Rest in the Event Bus](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_encryption.htm) in the Platform Events Developer Guide and [Change Events for Encrypted Salesforce Data](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_security_shield_encryption.htm) in the Change Data Capture Developer Guide. ## AWS Regions The Event Relay service is globally available and can connect Salesforce orgs to AWS accounts in default AWS regions. Event relay doesn't support opt-in AWS regions. For more information on AWS region availability, see the AWS [Regional availability reference](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-regional-availability). Customer understands and agrees that the Event Relay service processes data, including Customer Data, on Hyperforce (a Salesforce-controlled Amazon Web Services instance), and such processing can occur in a region outside of the region in which Customer’s Salesforce org is located. Processing occurs in these regions: - United States - European Union - Australia - India Events aren’t persisted or stored outside the region where your org is located. ## Impact of Salesforce Maintenance Activities Some Salesforce maintenance activities, such as an org migration to a new data center or instance refresh, reset the stream of stored platform events and change events. The stream reset results in the stored events no longer being available in the event bus. After org migration, event relays resume from the newly published events. Any events received during org migration or instance refresh aren’t forwarded to Amazon EventBridge. You can configure event relays with an error-recovery option to resume from the earliest events stored in the event bus after an unrecoverable error occurs. If an unrecoverable error occurs after the maintenance activity, and the event relay is configured with this option, it doesn’t resume from the events stored before the maintenance activity. It resumes from the latest events received and events stored after the maintenance activity. For more information, see [Error Recovery Options](https://help.salesforce.com/s/articleView?id=platform.ev_relay_error_recovery.htm&release=264.0.0&type=5 "If transient errors occur, such as connectivity issues or errors in the event relay configurations, event relay resumes automatically after the connectivity issues are resolved or the configurations are fixed. The event relay attempts to resume sending events from the event bus from where it left off. In rare occasions, if it can't resume after the last relayed event, it uses the error recovery option to determine where to resume from."). For instructions about mitigating the impact of Salesforce maintenance activities, see [How to Prepare for an Org Migration](https://help.salesforce.com/s/articleView?id=000334938&type=1&language=en_US) and [Instance Refresh Maintenance](https://help.salesforce.com/s/articleView?id=000335655&type=1&language=en_US). # Event Relay Execution Statuses You can run, pause, or stop the execution of an event relay. After you change the execution state, it can take several minutes for the new state to take effect. During this time, the event relay displays a transitional status in the UI. After the state change completes, the final status appears. ## Transitional Status and Final Status Because a state change happens asynchronously, changing the event relay state isn’t immediate and can take a short while. When the state change is in progress, the event relays list view and the event relay detail page show a transitional status. The transitional status is a visual indication that the state change is underway. Transitional statuses are available only in the UI and not in the API. For example, when you change the state of a stopped relay to Run, the status first changes to Starting… before it changes to Running. And when you change the state of a paused relay to Run, the status first changes to Resuming… before it changes to Running. This image shows a transitional status of Starting for one event relay and a final status of Paused, Running, and Stopped for the other event relays. ![Event relays list view shows one event relay starting](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ev-relay-list-paused-running.png) ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png) Note Changing the state from the Error state doesn’t cause a transitional status to appear. These are the possible transitional states. - Starting... - Resuming... - Pausing... - Stopping... The final statuses are listed in the next section. ## Running Status To start a stopped or paused event relay, set the event relay state to Run. ## Paused Status To pause the event relay and temporarily hold off sending events to Amazon EventBridge, set the event relay state to Pause. When you resume a paused event relay, the relay of events continues from where it left off. Stored events are relayed from the Salesforce event bus starting after the last relayed event, and new events. When the event relay is paused, its current state information is saved in the EventRelayFeedback Salesforce object. There can be a delay between when you set the state to Pause and when the event relay is paused. In this case, the saved state information corresponds to the state when the event relay was actually paused. ## Stopped Status To stop relaying events from Salesforce to Amazon EventBridge, change the event relay state to Stop. When you start a stopped event relay, new events published to the Salesforce event bus are delivered to Amazon EventBridge. Any events stored in the Salesforce event bus that were received after the relay was stopped and before it was started aren’t sent. When you stop an event relay, its current state information in EventRelayFeedback is deleted. ## Error Status The system sets the event relay status to Error if it encounters an error when attempting to run the event relay. Errors can be caused by configuration problems or connectivity issues to Amazon EventBridge. You can view the error in Setup or by querying EventRelayFeedback. For a list of error codes, see [EventRelayFeedback](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_eventrelayfeedback.htm) in the Object Reference for the Salesforce Platform. The system attempts to recover from the error periodically. When the system recovers from the error, the event relay resumes from where it left off and the status changes to Running or a status you select. In rare occasions, if the system can’t resume from where it left off, it uses the error recovery option to determine from where to relay events. For more information, see [Error Recovery Options](https://help.salesforce.com/s/articleView?id=platform.ev_relay_error_recovery.htm&release=264.0.0&type=5 "If transient errors occur, such as connectivity issues or errors in the event relay configurations, event relay resumes automatically after the connectivity issues are resolved or the configurations are fixed. The event relay attempts to resume sending events from the event bus from where it left off. In rare occasions, if it can't resume after the last relayed event, it uses the error recovery option to determine where to resume from."). # Event Relay Security Event relays send events to Amazon EventBridge securely using HTTP/1.1 with TLS. Event data is encrypted while in transit over the web. Salesforce is a registered partner of Amazon EventBridge and uses EventBridge Partner APIs to send events to Amazon EventBridge. As a registered partner of EventBridge, Salesforce creates partner event sources and streams events to EventBridge without the need for AWS account authentication. Event relays use only the AWS account ID and region, which are stored in named credentials. #### See Also - [_Amazon EventBridge Partner Onboarding Guide_](https://docs.aws.amazon.com/eventbridge/latest/onboarding/amazon_eventbridge_partner_onboarding_guide.html) - [Create a Named Credential for Event Relay Setup](https://help.salesforce.com/s/articleView?id=platform.ev_relay_create_named_credential.htm&release=264.0.0&type=5 "A named credential stores your AWS account information. You use the named credential later to set up an event relay. You can create a named credential in the Salesforce user interface in Setup.") # Event Relay Statuses and Options Check out information about event relay statuses and the error recovery option. - **[Event Relay Execution Statuses](https://help.salesforce.com/s/articleView?id=platform.ev_relay_status.htm&release=264.0.0&type=5)** You can run, pause, or stop the execution of an event relay. After you change the execution state, it can take several minutes for the new state to take effect. During this time, the event relay displays a transitional status in the UI. After the state change completes, the final status appears. - **[Edit an Event Relay and Change Its Status](https://help.salesforce.com/s/articleView?id=platform.ev_relay_edit_options.htm&release=264.0.0&type=5)** You can edit an event relay to change its status, label, and the error recovery option. - **[Error Recovery Options](https://help.salesforce.com/s/articleView?id=platform.ev_relay_error_recovery.htm&release=264.0.0&type=5)** If transient errors occur, such as connectivity issues or errors in the event relay configurations, event relay resumes automatically after the connectivity issues are resolved or the configurations are fixed. The event relay attempts to resume sending events from the event bus from where it left off. In rare occasions, if it can't resume after the last relayed event, it uses the error recovery option to determine where to resume from. - **[Monitoring Event Relays Using SOQL Queries](https://help.salesforce.com/s/articleView?id=platform.ev_relay_soql_queries.htm&release=264.0.0&type=5)** You can perform a SOQL query on the EventRelayFeedback Salesforce object to get information about an event relay, including its status, the date and time of the last relayed event, and any error message. The information contained in EventRelayFeedback is available in Setup, on the Event Relays page. # Event Relays in Setup An event relay is a set of event configurations and a connection to a partner event source in Amazon EvenBridge. An event relay streams events from the Salesforce event bus to EventBridge. You can create an event relay in Setup. This image shows a list of event relays set up for various event channels, in Setup, in the Event Relays page. ![Event relays list view in Setup](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ev-relay-running-paused-stopped.png) ## Event Relay Components An event relay includes your AWS account information and a Salesforce event channel that you set up. The event relay status indicates whether the relay is running or is in another state (1). The event channel is the stream of events in the Salesforce event bus to be relayed to EventBridge (2). An event channel contains members for the events to stream. The number of members a channel contains is shown in the event relays list (3). A named credential contains your AWS account and AWS region information where to relay the events (4). After you create an event relay, Salesforce creates a corresponding partner event source in EventBridge. ![Event relay components](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/event-relay-one-annotated-4-border.png) ## Monitor the Event Relay Execution in Setup Check your event relay's execution status, the date, and time of the last relayed event, and any error message. To view the status of all the event relays, check the Status column in the Event Relays page. ![The Status column shows in the event relays list view](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ev-relay-error-list-view.png) If the status is Error, you can view the error message on the event relay detail page by clicking the event relay. To get the timestamp of the last event relayed to Amazon EventBridge, click the event relay and check out the Last Relayed field. ![The Last Relayed field on the detail page contains the timestamp of the last relayed event](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/extend_click/images/ev-relay-last-relayed-field-annotated.png) # Event Studio Overview Salesforce Eventing encompasses Platform Events and Change Data Capture. Event Studio allows you to track existing event publishing and consumption activity on your Salesforce Event Bus based on event publishers and event subscribers. The Event Studio page demystifies event activity with a clear view into how events operate within your Salesforce org. It provides tools to assess the health of your org's eventing integrations and proactively identify and debug potential production issues. Event Publishers: These entities generate and send events onto the Salesforce Event Bus. Understand how various components, such as flows, Apex, and different API calls (Pub/ Sub, REST, Bulk, SOAP), contribute to your event publish entitlements. Event Subscribers: These entities listen for and consume events from the Event Bus. Monitor how external subscribers, such as Event Relays, Streaming API, Pub/Sub API, and Lightning Web Components count against your event delivery entitlements. You can also view delivery usage from the Apex internal subscriber. Note that Apex events don’t count against your delivery allocation. With visibility into your eventing ecosystem, you can, - Quickly spot anomalies such as publish spikes, slow subscribers, or clients caught in resubscribe loops, enabling timely debugging of production issues. - Gain a clear understanding of your usage against entitlements, which helps you manage resources better and facilitates clearer conversations about add-on licenses. - Have greater confidence and trust in eventing services. - **[View Event Publishers and Subscribers](https://help.salesforce.com/s/articleView?id=platform.event_studio_view.htm&release=264.0.0&type=5)** Track existing event publishing and consumption metrics on your Salesforce Event Bus based on event publishers and event subscribers. - **[Build with Events](https://help.salesforce.com/s/articleView?id=platform.build_with_events.htm&release=264.0.0&type=5)** Monitor the performance of your event subscribers. # Event Type, Size, and Features Check out what event types and features are supported with event relays. Event Relay supports these event types and maximum sizes. - Custom high-volume platform events - Real-time event monitoring events - Change data capture events - The maximum event message size that Salesforce supports for published and received events is 1 MB. - The maximum event message size that Amazon EventBridge supports for incoming and outgoing events is 256 KB. - If an event message larger than 256 KB is relayed from Salesforce to EventBridge, the event isn’t delivered to EventBridge. These event types aren’t supported. - Standard platform events - Standard-volume custom platform events These features aren’t supported with Event Relay. - Salesforce Private Connect - Developer Edition orgs with namespaces # Eventbrite Connector Connect to an external Eventbrite account. Perform tasks like creating events and retrieving attendees. Use Eventbrite as a data target (action). ### Required Editions
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses Bearer authentication. Bearer authentication sends a header named Authorization with a value of Bearer and a token with every request. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

Token

Enter the bearer token to use to authenticate the requests. For information about how to create the bearer token, refer to the external system's documentation.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Eventbrite actions are available in Flow Builder. - Cancel Event - Create Event - Create Ticket Class - Delete Event - Get Attendee By ID - Get Event By ID - Get Order By ID - Get Ticket Class By ID - List Attendees By Event - List Attendees By Organization - List Events By Organization - List Orders By Event - List Orders By Organization - List Organizations By User - List Ticket Classes Available For Event - List Ticket Classes By Event - List Your Organizations - Publish Event - Unpublish Event - Update Event - Update Ticket Class ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Events Overview Events enable you to add interactive and animated effects to the pages and page elements of your website. ### Required Editions
Available in: Salesforce Classic

Available for purchase in: Enterprise, Performance, and Unlimited Editions

Available (with limitations) in: Developer Edition

When an event occurs—say, when a user clicks an element on the page or when the page loads—you can specify what action (or series of actions) it should trigger. For example, when your home page loads, you could display a news bulletin popup that fades away after several seconds. Or when the user clicks a panel, you could expand the panel to reveal additional information or alter its style. The Events pane lists many common actions that you can trigger when an event occurs. Using the options here, you can specify that: When _\[this event\]_ occurs, trigger _\[this action\]_. - **[Create an Event](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_create.htm&release=264.0.0&type=5)** Use events to add interactive and animated effects to the pages and page elements of your website. - **[Available Events and Actions](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_available.htm&release=264.0.0&type=5)** Choose from several event triggers and actions when you create an event. #### See Also - [Create an Event](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_create.htm&release=264.0.0&type=5 "Use events to add interactive and animated effects to the pages and page elements of your website.") - [Available Events and Actions](https://help.salesforce.com/s/articleView?id=platform.siteforce_events_available.htm&release=264.0.0&type=5 "Choose from several event triggers and actions when you create an event.") - [Using Site.com Studio as a Site Administrator or Designer](https://help.salesforce.com/s/articleView?id=platform.siteforce_overview_studio.htm&release=264.0.0&type=5 "Site.com Studio provides a dedicated site-building environment for site administrators and designers.") # Everhour Connector (Beta) Connect to an external Everhour account. Perform tasks like creating time entries or retrieving current users. Use Everhour as a data target (action). ### Required Editions ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note This connector is a beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/?_ga=2.247987783.1372150065.1709219475-629000709.1639001992). Use of this beta service is at the Customer's sole discretion.
View supported editions.
This feature requires the MuleSoft for Flow: Integration add-on. Exceptions are segment-triggered flows, activation-triggered flows, and broadcast flows, which don't require the MuleSoft for Flow: Integration add-on. Professional Edition requires the API access add-on. To purchase an add-on, contact your Salesforce account executive.
MuleSoft for Flow: Integration features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You can edit or delete connections only in the Automation app. ## Connections Connect to a source or target system by using its standard connection or an existing external named credential. You can connect to multiple systems within a flow and reuse each connection. You can create connections in the [Integrations tab](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections.htm&release=264.0.0&type=5 "The Integrations tab includes a list of all the connections for your org.") or in Flow Builder. **Standard Connection** This system uses ApiKey authentication. ApiKey authentication connects to apps without explicitly defining a user. Add this key to all requests, and the cloud app identifies the origin of the request and completes the authorization. This system requires this credential information for its [connections](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5).
FIELD DESCRIPTION
Connection Name

Enter a unique connection name that helps you remember the details of this connection. Salesforce hides the credentials after you create the connection. Reuse connections as needed.

Anyone with the Manage Integration Connections permission can see and use all connections in the org.

ApiKey

Enter the API key to use to authenticate the requests.

URL

Enter the URL of your instance.

**Named Credential Connection** Select a pre-existing named credential from Setup to use for your external system connections. Before connecting to your external system with a named credential, first create or use an existing authenticated [named credential and external credential that is enabled for your users.](https://help.salesforce.com/s/articleView?id=xcloud.nc_named_creds_and_ext_creds.htm&type=5&language=en_US) To ensure a successful [connection](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for use in a flow, use only one principal for each named credential. - Use the same name for the named credential and its related objects, such as the external credential and external authentication identity providers. Labels for these objects can differ. - Assign the user creating the connection the required user permission for the principal. Without this permission, the connection test fails and the connection remains inactive. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important When you create a connection with an existing named credential, note these behaviors: - Manage the named credential’s read-only details in Setup, not the Integrations tab. On the Integrations tab, you can only edit the connection's Connection Name and Description. - Perform reconnections for the named credential in Setup. The Reconnect button isn’t visible on the Details page. - Delete associated named credentials in Setup. Deleting a connection doesn't remove the credential. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important To comply with [Federal Information Processing Standards (FIPS)](https://help.salesforce.com/s/articleView?id=ind.government_cloud_encryption_and_compliance.htm&language=en_US) standards, [Government Cloud](https://help.salesforce.com/s/articleView?id=ind.government_cloud_overview.htm&language=en_US) doesn't support OAuth 2.0 authentication for this connector. Create or use an existing [named credential](https://help.salesforce.com/s/articleView?id=platform.automate_ala_connections_create_connection.htm&release=264.0.0&type=5 "Select a named credential from Setup to use for your external system connections.") for authentication instead. ## Actions An action performs a specific task or operation within a target system. Use actions to automate tasks across different systems without manual intervention, based on conditions set in the flow. For more information about actions, refer to [Create a Flow with a Connector as an Action](https://help.salesforce.com/s/articleView?id=platform.automate_build_flow_esct_third_party_as_action.htm&release=264.0.0&type=5 "To integrate your flow with an external system, add MuleSoft for Flow: Integration connectors as actions to all existing flow types. You can add connectors to flows that trigger external system changes, records, schedules, Data Cloud-triggered flows, or autolaunched flows."). These Everhour actions are available in Flow Builder. - Create Time Entry - Delete Time Entry - Get Current User - Get Time Entries - Update Time Entry ![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png) Tip For more information about the API, see the external system's API documentation. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important For information about specific limitations for connections and third-party connectors, see [MuleSoft for Flow: Integration Limits & Considerations](https://help.salesforce.com/s/articleView?id=platform.automate_flow_considerations_mulesoft_for_flow_limits.htm&release=264.0.0&type=5 "When establishing connections to external systems, keep these limitations in mind."). # Evolve a Flow with Agentforce (Beta) Improve and modify your existing flows by using natural language in the Agentforce panel. Through conversational prompts, add new elements, update properties and conditions, and remove outdated components. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the Foundations or Agentforce 1 editions. To purchase, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Evolve a Flow with Agentforce is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/agreements/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/). Use of this pilot or beta service is at the Customer's sole discretion.
User Permissions Needed
To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: Manage Flow
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note You don't need to be an admin to have the Manage Flow permission. Ask your admin to add it to your profile or permission set. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Flow evolution with Agentforce supports record-triggered, screen flows, schedule-triggered flows, external system change-triggered flows, and flows that use connectors as actions. Creating and evolving external system change-triggered flows and flows that use connectors as actions requires specific MuleSoft for Flow user permissions and licenses. See [Create MuleSoft for Flow: Integration Flows with Agentforce](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_create_and_evolve_integration_flows_with_agentforce.htm&type=5&language=en_US). Flow evolution works with AI-generated flows, manually created flows, and previously saved flows, maintaining context throughout your modification session. ## Set Up Agentforce for Flow Evolution Complete these one-time setup steps before you use Agentforce to evolve flows. 1. Turn on [Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_enable.htm&type=5&language=en_US) in Setup. 2. Provision and turn on [Data 360](https://help.salesforce.com/s/articleView?id=data.c360_a_setup_provision.htm&type=5&language=en_US). 3. From Setup, in the Quick Find box, enter Agentforce Agents, select **Agentforce Agents**, and then turn on Agentforce. 4. From Setup, in the Quick Find box, enter Process Automation Settings, and then select **Process Automation Settings**. 5. Select **Agentforce flow automation (Beta)** and save the settings. 6. Open any flow in Flow Builder, click ![The Einstein icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_einstein.png), and click **Migrate to Agentforce**. ![The Migrate to Agentforce button in the Einstein panel](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_builder_migrate_to_agentforce.png) 7. In the Migrate to Agentforce window, click **Migrate**. ## Request Flow Modifications Open your flow in Flow Builder and describe the changes you want Agentforce to make. 1. Open the flow that you want to modify in Flow Builder. 2. Open the Agentforce panel if it's not visible. 3. In the Agentforce panel, describe the modification you want to make to your flow. Write clear, specific instructions about what you want to change. For example: - "Add a decision element to check if the opportunity stage is Closed Won" - "Update the email template used in the Send Email action" - "Remove the loop element that processes inactive accounts" - “Modify this flow to show the user an overview of the updated contact record and ask for confirmation before updating the email address” The Flow Builder canvas shows the modified flow. ![The Agentforce panel with the request for flow modification and the option to accept or reject the changes](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/automate_flow_build_evolve_screen_flow.png) ## Review and Validate the Evolved Flow Inspect the AI-generated changes on the Flow Builder canvas, and confirm that the flow works as expected before you activate it. A flow comparison view shows the differences between the previous and current versions. 1. Review the changes. To approve them, click **Accept Changes**. To request further modifications, click **Reject Changes**. 2. Test and validate your evolved flow. 1. Debug the flow to make sure that the modifications work as expected. 2. Check each modified element for accuracy and proper configuration. 3. When you're satisfied with the changes, save and activate the flow. # Example Document Processing Workflows Walk through end-to-end examples that combine document extraction with human review, from a single flow path to record-triggered flows with approval and orchestration. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the MuleSoft for Flow: IDP add-on. Professional Edition requires the API access add-on. To purchase, contact your Salesforce account executive.
Document processing features require Einstein generative AI turned on in Setup, and Data 360 provisioned and enabled for your org.
MuleSoft for Flow: IDP features used with Agentforce require the Foundations or Agentforce 1 edition. To purchase these editions, contact your Salesforce account executive.
- **[Review Contract Data and Update Records Example](https://help.salesforce.com/s/articleView?id=platform.automate_flow_task_example_contract_review_hitl.htm&release=264.0.0&type=5)** This example walks through a screen flow where a sales operations analyst reviews extracted contract data, corrects low-confidence values, then updates Contract and Opportunity records. - **[Process and Review Attached Documents Example](https://help.salesforce.com/s/articleView?id=platform.automate_flow_task_example_record_triggered_attachment_hitl.htm&release=264.0.0&type=5)** This example walks through a record-triggered flow that runs when a user attaches a document to a record. The flow extracts data, routes to an approval action and flow orchestration, then to a screen flow where the user reviews and corrects extracted values before the flow updates the record. # Example Instructions for Drafting Flows with Agentforce (Beta) Use Agentforce for Flow to create accurate draft flows by providing clear, detailed instructions about your requirements. Base your instructions on example patterns that describe when the flow starts and what actions it should take. ### Required Editions
Available in: Lightning Experience
View supported editions.
This feature requires the Foundations or Agentforce 1 editions. To purchase, contact your Salesforce account executive.
![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png) Note Draft a Flow with Agentforce is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/agreements/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/). Use of this pilot or beta service is at the Customer's sole discretion. Find a flow outcome that aligns with your goal and craft your instructions using the example instructions as a guide. | What You Want to Automate | When the Flow Starts | What the Flow Does | Example instructions | | --- | --- | --- | --- | | When a new lead comes in, create a task to remind the owner to call the lead in the next week. | When a record is created (a record-triggered flow) | Creates a record | Create a flow that starts when a lead is created and creates a task for the lead owner. The subject of the task is “Call new lead by next week.” | | Send an email to an account owner anytime a contact is added to their account. | When a record is created (a record-triggered flow) | Sends an email | Create a flow that sends an email notification to the account owner any time a new contact is added to the account. | | When an account owner is changed, update the owner of all related opportunities and contacts. | When a record is updated (a record-triggered flow) | Updates multiple related records | Create a flow that starts when an account owner is changed and automatically updates all an account’s opportunities and contacts. | | If the Status field of an applicant record has been left blank, update the field to New. | When a record is created or updated (a record-triggered flow) | Uses a custom object and a custom field, updates a record that meets the criteria | Create a flow that starts when an applicant record is created. If the applicant Status field is empty, set it to New. | | Every day, find contacts that have a missing phone number and update their description with a reminder to get the phone number at the next meeting. | On a specified day and time (a schedule-triggered flow) | Updates records that meet the criteria | Create a flow that runs every day at 8:00 AM and finds contacts with a blank Phone Number field and updates the description field to say "Get the contact's phone number at the next meeting." | | Each Wednesday, find opportunities that haven’t been updated in the last 30 days and send an email to their owners to remind them to update their opportunities. | On a specified day and time (a schedule-triggered flow) | Sends an email to a group of recipients | Create a flow that runs every Wednesday at 10:00 AM. The flow finds all opportunities that were created within the last 14 days and updates the Opportunity Next Step field to Assign Executive Sponsor. | | Collect information in a form and use that information to create a lead. | When a user clicks a button on a screen (a screen flow) | Creates a record by using information from a form | Create a flow that has a screen and collects a first name, last name, and email address. Then, the flow creates a lead with the information collected on the screen. | | Display a screen that shows support agents their open cases and allows them to upload a file to all those cases. | When a user clicks a button on a screen (a screen flow) | Shows information on a screen and allows user interaction | Create a screen flow that looks up and displays all open cases and allows a support agent to select a case and upload an image file as a file attachment. | | Create a corresponding case in Salesforce when a user creates a ticket in Zendesk. | When a new ticket is created in Zendesk. | The flow runs on a 5-minute schedule and checks Zendesk for new tickets using the my\_zendeskconnection connector. For each new Zendesk ticket, the flow creates a case in Salesforce. Zendesk Description maps to the Salesforce Case Description, and Zendesk Ticket ID maps to the Salesforce custom field Cust\_Zendesk\_Ticket\_Id. | When a user creates a ticket in Zendesk, create a case in Salesforce. Set the polling frequency for the trigger to 5 minutes. Map the Zendesk Description field to the Salesforce Case description field, and update the Salesforce custom field Cust\_Zendesk\_Ticket\_Id with the Zendesk ticket ID. Use the my\_zendeskconnection for the Zendesk connector. | #### See Also - [Best Practices for Drafting Flows with Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.flow_build_best_practices_and_considerations_for_einstein_for_flow.htm&release=264.0.0&type=5 "Get the best results when using Agentforce to build draft flows.") - [Draft a Flow with Agentforce (Beta)](https://help.salesforce.com/s/articleView?id=platform.flow_build_build_a_flow_with_einstein.htm&release=264.0.0&type=5 "Build your flow faster and easier by letting Agentforce help you get started.") - [Considerations for Agentforce-Drafted Flows and Formulas (Beta)](https://help.salesforce.com/s/articleView?id=platform.automate_flow_build_einstein_considerations.htm&release=264.0.0&type=5 "Supported functionality, usage requirements, and important limitations when using Agentforce to draft flows and formulas.") - [_Video_: Get to Know Einstein for Flow](https://salesforce.vidyard.com/watch/Wfhwp7gReQTATYZwdEF8Gk) - [_Salesforce Help_: About Einstein Generative AI](https://help.salesforce.com/s/articleView?id=ai.generative_ai_about.htm&type=5&language=en_US) # Example of How to Isolate Data Between Partners This example shows how to set up partners such that they’re unable to access each other’s data. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
## An Automotive Company and Its Stakeholders Dream Horse, an automotive company, uses Salesforce Scheduler to book customer appointments, such as booking test drives. Dream Horse now wants to set up Salesforce Scheduler for its dealerships (partner accounts): Chantilly Stables and Versailles Stables. Chantilly Stables has branches in Sacramento and San Francisco. Versailles Stables has branches in San Francisco and Boston. Let’s look at the stakeholders involved and their requirements. ![An image that shows Dream Horse, its partners and partner locations. It also shows all the stakeholders.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_1.png)
Dream Horse Stakeholder List and Dream Horse Stakeholder Requirements
Role Responsibilities Licenses Required
Salesforce Admin
  • Set up Experience Cloud flows
  • Administer Service Territories for initial setup
  • Set up data access policies for partners
—
Client Customer Care Agent
  • Manage skills for all contractors
  • Create accounts, leads, and opportunities for all the dealerships
  • Book and manage service appointments, such as booking test drives, for all the dealerships
Salesforce Platform, Salesforce CRM, or above
Dream Horse Partner Stakeholder List and Dream Horse Stakeholder Requirements
Role Responsibilities Licenses Required
Partner Customer Care Agent
  • Create accounts, leads, and opportunities for their own dealership
  • Manage skills and availability for their dealership Book and manage service appointments for their own dealership
  • Create appointment invitation links for partner users or contractors
Customer Community Plus, Partner Community, or above
Partner Territory Manager

Administer a partner branch (service territory):

  • View appointment records for their service territory
  • Create service territory member records by editing the service territory record and assigning resources (appointment attendees and assets) to the record
Customer Community Plus, Partner Community, or above
Partner Users or Contractors
  • View their dealership’s accounts, leads, and opportunities
  • Book and manage appointments
  • Manage their own skills
  • Manage their own shifts and absences.
  • Create appointment invitation links
  • Customer Community Plus, Partner Community, or above
  • Salesforce Scheduler add-on
Dream Horse Customer Types, Dream Horse Partners, and Dream Horse Partner Requirements
Role Responsibilities Licenses Required
Prospect (Guest user)
  • Book a service appointment with any partner from Dream Horse’s experience cloud site.
  • Book an appointment using a link.
Guest
Customer (Authenticated)
  • Book a service appointment with any partner from the Dream Horse’s experience cloud site.
  • Modify appointment details with any partner from the Dream Horse’s experience cloud site.
  • Book an appointment using a link
Customer Community Plus, Partner Community, or above
In this example, partner stakeholders have the Partner Community license. ## Experience Cloud Sites The Salesforce Admin at Dream Horse creates these Experience Cloud sites for different stakeholders. An Experience Cloud site for partners A site for partners' customer care agents and contractors who use the Inbound New Appointment flow to book appointments. In the Inbound New Appointment flow, the isOutboundCommunity flow variable is set to true and the IsInbound flow variable is set to false. The site is used by all the partners and the data available to the partners depends on their data access. An Experience Cloud site for customers A site for authenticated customers who use the Inbound New Appointment flow to book appointments. Customers can avail of services from all the dealerships and all their locations. An Experience Cloud site for guest users A site for guest users who use the Inbound New Guest Appointment flow to book appointments. Customers can avail of services from all the dealerships and all their locations. ## Permissions and Hierarchies The Salesforce admin of Dream Horse uses these permissions and hierarchies to ensure that all the users have only the required access. - Portal role hierarchy: To create a hierarchy for partner stakeholders such that users get access to data owned by or shared with users below them in the role hierarchy. - External Account Hierarchy: To make sure that a partner account has access to data from all its service territory accounts. - Manual sharing: To share records that are created by Dream Horse admin with portal roles. - Apex sharing: To provide access to shift records to the respective service resource. - The Resource Appointment Sharing setting: To share appointment records with the respective service resources. - Sharing rules: To share records with Dream Horse customer care agents (client customer care agents), guest users, and authenticated users. Set Up Portal Role Hierarchy Use portal role hierarchy to make sure that users who are above in the hierarchy have access to data owned by or shared with users below them in the hierarchy. Make sure that in the Settings for Digital Experiences, the number of partner roles is specified as 3. If you use Customer Community Plus licenses, make sure that the number of customer roles is 3. By default, Salesforce creates these roles: - Executive - Manager - User To ensure that partner users, contractors, and assistants can access only their own data and data that's shared with them, add them at the lowest level in the portal hierarchy. To ensure that territory managers can access only their own data and their team’s data, add territory managers above their team in the hierarchy. To ensure that partner customer care agents can access the data of all the employees across the service territory, add them above territory managers in the hierarchy. ![An image that shows the stakeholders at Dream Horse and its partners, and their portal roles.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_2.png) Set Up External Account Hierarchy To make sure that a partner account can access data from all its service territory accounts, use external account hierarchy. Before you set up an external account hierarchy, create an account for the parent company, Dream Horse. ![The account page of Dream Horse.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_3.png) Then, create partner accounts for Chantilly Stables and Versailles Stables with Dream Horse as the parent account. ![The account page of Chantilly Stables.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_4.png) And create accounts for each branch (service territory) with its dealership as their parent record. ![The account page of Chantilly Stables' San Francisco branch.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_5.png) For each dealership, create an external account hierarchy with the dealership as the parent record and its branches as the child records. For example, create an external account hierarchy with Chantilly Stables as the parent record and Chantilly Stables San Francisco and Chantilly Stables Sacramento as the child records. Also ensure that the hierarchy is active. ![The account hierarchy for Chantilly Stables and its branches.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_6.png) Provide Entity Access to the Client and Partners After you set up the portal-role hierarchy and the external-account hierarchy, records are automatically shared up the hierarchies. For stakeholders who are below in the hierarchies, manually share the records, such as branches (service territories) and appointment topics (work types). Here’s a table that lists the entities and the access required for different roles. We provide object access through user profiles and record access through sharing. The overall access depends on both the object access and the record access. Salesforce applies the most restrictive of these two accesses to determine the overall access.
Entity Admin Client Customer Care Agent Partner Customer Care Agent Partner Territory Manager Partner Users, Contractors, and Assistants
Service Territory (Object access) All Read/Edit Read Read/Edit Read
Service Territory (Record access) Owner Read/Write Read/Write Read/Write Read/Write
Service Territory (Overall access) Owner Read/Write Read Read/Write Read
Service Resource (Object access) All Read/Edit Read/Edit Read Read/Edit
Service Resource (Record access) Owner Read/Write Read/Write Read/Write Owner to their Service Resource record. Read only access to other contractors in their territory.
Service Resource (Overall access) Owner Read/Write Read/Write Read Owner to their Service Resource record. Read only access to other contractors in their territory.
Work Type Group and Work Type (Object access) All Read Read Read Read
Work Type Group and Work Type (Record access) Owner Read Read Read Read
Work Type Group and Work Type (Overall access) Owner Read Read Read Read
Operating Hours (Object access) All Read Read Read/Edit Read
Operating Hours (Overall access) Owner Read Read Read/Write Read
Account/Lead/Opportunity (Object access) All Read/Create/Edit Read/Create/Edit No access Read
Account/Lead/Opportunity (Record access) Owner Owner

Owner

Read/Write

Read Read
Account/Lead/Opportunity (Overall access) Owner Owner Read/Write No access Read
Service Appointment (Object access) All Read/Create/Edit/Delete Read/Create/Edit/Delete Read Read/Create/Edit
Service Appointment (Record access) Read/Write Read or Read/Write Read or Read/Write Read or Read/Write Read or Read/Write
Service Appointment (Overall access) Read/Write Read or Read/Write Read or Read/Write Read Read or Read/Write
Shift (Object access) All Read/Create/Edit/Delete Read Read/Create/Edit/Delete Read/Create/Edit/Delete
Shift (Record access) Read/Write Read/Write Read/Write Read/Write Owner to their shift record.
Shift (Overall access) Read/Write Read/Write Read Read/Write Owner to their shift record.
Here’s how you provide the required entity access for different client and partner stakeholders: - Set up manual sharing: Manually share each record with portal roles (Partner Executive, Partner Manager, and Partner User) and provide the necessary access. - Set up Apex managed sharing: Use Apex Managed Sharing to share Shift records with partner stakeholders. - Set up sharing rules: Set up sharing rules for each object to provide access to the client's customer care agents. - Enable the Resource Appointment Sharing setting: Enable the setting to automatically provide service appointment access to the service resources for whom the appointment is created. Set Up Manual Sharing Use manual sharing to share these records with portal roles: - Service territories - Service resources (users and assets) - Work type groups - Work types - Accounts, Leads, and Opportunities ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note We provide access to operating hours through the profile, eliminating the need for manually sharing operating hours. Instead of manually sharing individual records, you can manually share records in bulk by using Data Loader. For more information, see [Create manual sharing rules with Data Loader knowledge](https://help.salesforce.com/s/articleView?language=en_US&type=1&id=000326225). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note If a user transfers ownership of a record, Salesforce deletes any manual shares created by the original record owner, which can cause users to lose access. When account ownership is transferred, manual shares created by the original account owner on child records, such as opportunities and cases, are also deleted. For more information, see [Manual Sharing](https://help.salesforce.com/s/articleView?id=platform.granting_access_to_records.htm&type=5&language=en_US). Let’s look at a few examples. To share the San Francisco (CS) territory, add a manual share for Chantilly Stables San Francisco Partner Executive with the Role, Internal and Portal Subordinates type, and Read/Write access. ![An image that shows how to share the San Francisco (CS) territory.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_7.png) To share a service resource that belongs to San Francisco (CS), add a manual share for Chantilly Stables Partner Manager with the Role, Internal and Portal Subordinates type, and Read Only access. ![An image that shows how to share a service resource who belongs to the San Francisco (CS) territory.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_8.png) Set Up Apex Managed Sharing If you use shifts, when territory managers create shifts for service resources, you must provide access to shift records to the respective service resource. To provide access, use Apex Managed Sharing to programmatically define sharing rules. Here’s a sample Apex code that automatically shares shift records with the respective service resource. ``` trigger Shift_share_with_Contractor on Shift (after insert, after update) { if (trigger.isinsert) { for (Shift shift: trigger.new) { String srId = shift.ServiceResourceId; // if shift has no ServiceResource, then no need to share shift if (srId == null) { continue; } ServiceResource sr = [Select Id, RelatedRecordId from ServiceResource Where Id=:srId]; String userId = sr.RelatedRecordId; // if the user is owner, no need to create share row if (userId == shift.OwnerId) { continue; } // create a ShiftShare row ShiftShare shiftShare = new ShiftShare ( ParentId=shift.Id, // Shift Id AccessLevel='Edit', // AccessLevel - Read/Edit/All RowCause='Manual', // RowCause - Manual UserOrGroupId=userId // Id of the user/group ); insert shiftShare; } } else if (trigger.isupdate) { for(Shift shift: trigger.new) { Shift oldShift = trigger.oldMap.get(shift.Id); String prevSrId = oldShift.ServiceResourceId; String newSrId = shift.ServiceResourceId; // if service resource is changed if (prevSrId != newSrId) { // if previous Service Resource was present, remove the share row for that if (prevSrId != null) { ServiceResource prevSr = [Select Id, RelatedRecordId from ServiceResource Where Id=:prevSrId]; String prevUserId = prevSr.RelatedRecordId; // delete ShiftShare List shiftShare = [Select Id from ShiftShare Where ParentId=:shift.Id and UserOrGroupId=:prevUserId]; if (shiftShare.size() > 0) delete shiftShare; } // if Service Resource is updated, then create a share row if(newSrId != null) { ServiceResource newSr = [Select Id, RelatedRecordId from ServiceResource Where Id=:newSrId]; String userId = newSr.RelatedRecordId; // if the user is owner, no need to create share row if (userId == shift.OwnerId) { continue; } // create a ShiftShare row ShiftShare shiftShare = new ShiftShare ( ParentId=shift.Id, // Shift Id AccessLevel='Edit', // AccessLevel - Read/Edit/All RowCause='Manual', // RowCause - Manual UserOrGroupId=userId // Id of the user/group ); insert shiftShare; } } } } } ``` Enable the Resource Appointment Sharing Setting To make sure that service resources can access their appointments, enable Resource Appointment Sharing in Salesforce Scheduler Settings. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note Users who are above assigned service resources in the hierarchy automatically get access to service appointments of users who are below them in the hierarchy. ![The Resource Appointment Sharing setting enabled.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_9.png) If any appointments are created before you enable the setting, manually share those appointments with the respective service resources. Set Up Sharing Rules To share records with client customer care agents, create a role in Salesforce for client customer care agents. Then, create criteria-based sharing for each object to share all the records with the internal role. Let’s look at examples of how to share work type groups and shifts with all the client customer care agents. Before you create sharing rules, create a role called Dream Horse CCA and assign the role to all client customer care agents. Create sharing rules to share all the active work type groups with the Dream Horse CCA role. ![The work type rule to share all the active work type groups with the Dream Horse CCA role.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_10.png) Similarly, create sharing rules to share all shift records with the Dream Horse CCA role. ![The shift sharing rule to share all shift records with the Dream Horse CCA role.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_10_1.png) Provide Entity Access to Guest and Authenticated Users Using Sharing Rules To book appointments, provide guest and authenticated users access to all service territory, work type, work type group, service resource, and shift records. To provide access to guest users, create sharing rules of the type Guest user access, based on criteria to share records with the guest user of the experience cloud site. To provide access to authenticated users, create a public group that includes all the authenticated customers. And then, create sharing rules of type Based on criteria to share records with the public group that contains all the customers. ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_important.png) Important Add any new authenticated users to the group. Let’s look at some examples. Create sharing rules to share all the active work type groups with the guest user. ![The work type group sharing rule to share all the active work type groups with the guest user.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_11.png) Similarly, create sharing rules to share all shift records with the guest user. ![The shift sharing rule to share all shift records with the guest user.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_12.png) Create sharing rules to share all the active work type groups with the public group that contains all the customers. ![The work type group sharing rule to share all the active work type groups with the public group that contains all the customers.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_13.png) Similarly, create sharing rules to share all shift records with the public group that contains all the customers. ![The shift sharing to share all shift records with the public group that contains all the customers.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_isolate_data_between_partners_14.png) After completing the setup, Dream Horse and its stakeholders have the necessary access. And Dream Horse's dealerships can't access each others' data. #### See Also - [Share Service Appointments with Assigned Service Resources](https://help.salesforce.com/s/articleView?id=platform.ls_share_appnt_with_srvc_resources.htm&release=264.0.0&type=5 "When you enable the Resource Appointment Sharing setting, Scheduler automatically shares a newly created service appointment with all assigned service resources. This setting provides appropriate permissions to service resources to manage their service appointments.") # Example of Using Actions in Flow Consider a situation where you want to connect Salesforce to a credit service that has an API that’s managed in MuleSoft Anypoint Platform. The credit service retrieves the customer’s credit score, determines whether the customer qualifies for the credit service, and provides the payment terms. You want to extend the credit service to a Salesforce account so that you can view the payment terms in Salesforce. You can bring the credit service API into API Catalog, activate operations as actions, and then use the actions in a Salesforce flow. Here are more detailed steps for the example. After you sync the credit service API to API Catalog in Salesforce: - Find and select the credit service API‌ ‌in API Catalog in Salesforce. - Select the operations that you want to make available in Salesforce as invocable actions, and create connections for them. The create connection process automatically generates the credentials for invoking the API actions from within Salesforce automations. - Assign user permissions to the permission set created for the API’s connection. After you activate the invocable actions from API Catalog: - Create a flow by using the new credit service API category in Flow Builder. After the flow runs, the output contains the credit decision and, if applicable, payment terms. #### See Also - [End-to-end Example with Flow](https://help.salesforce.com/s/articleView?id=platform.enhanced_external_services_example_create_flow_end_to_end.htm&language=en_US) # Example of Using MuleSoft for Agentforce Consider a scenario where a fictitious company called Enchanted Entertainment wants to create a service agent to manage theme park reservations and experiences. They've developed APIs using MuleSoft Anypoint Platform to integrate with external systems. Now, they need to connect these APIs to their service agent. Here’s how API Catalog can help with that. Enchanted Entertainment can bring the theme park reservation API into API Catalog, activate operations as actions, and then use these actions in agent actions. The service agent can then seamlessly access and manage reservation data, ensuring a smooth and efficient customer experience. Watch the video to see MuleSoft for Agentforce: API Catalog in action. # Example Queries for Troubleshooting Access Issues Review these sample queries on returning information about users’ permissions or access. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
The available user and data management options vary according to which Salesforce edition you have.
![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_tip.png) Tip Setup with Agentforce can help you troubleshoot access issues more efficiently. For more information, see [Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_overview.htm&language=en_US) and [User Access Management in Setup with Agentforce](https://help.salesforce.com/s/articleView?id=xcloud.setup_agentforce_user_access.htm&language=en_US). ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-access-264-0-0-production-enus/a92be132-3cbc-412a-9262-130636120c14/images/icon_note.png) Note Most of the example queries for permissions use permission sets. However, these queries also work for profiles and permission set groups, because they have an associated permission set. For more information, see the "Profiles and Permission Set Groups" section. ## Object Permissions Return permission sets that have the Read object permission for cases enabled. ```sql SELECT ParentId,Parent.ProfileId,Parent.Name,Parent.PermissionSetGroupId FROM ObjectPermissions WHERE SobjectType = 'Case' AND PermissionsRead = true ``` Return permission sets that a user is assigned that grant the Read object permission for cases. ```sql SELECT AssigneeId,ExpirationDate,Id,IsActive,PermissionSetGroupId,PermissionSetId, PermissionSet.Name FROM PermissionSetAssignment WHERE PermissionSetId IN (SELECT ParentId FROM ObjectPermissions WHERE SobjectType = 'Case' AND PermissionsRead = true) AND AssigneeId = '005XXXXXXXXXXXXQAT' ``` ## Field Permissions Return field permissions associated with a permission set. ```sql SELECT Field,Id,ParentId,PermissionsEdit,PermissionsRead,SobjectType,SystemModstamp FROM FieldPermissions WHERE ParentId = '0PSXXXXXXXXXXXX' ``` Return permission sets that have a specific field permission enabled. ```sql SELECT Field,Id,ParentId,PermissionsEdit,PermissionsRead,SobjectType,SystemModstamp FROM FieldPermissions WHERE Field = 'Account.CustomerPriority__c' AND PermissionsEdit = true ``` Return the permission sets that a user is assigned that grant a specific field permission. ```sql SELECT AssigneeId,ExpirationDate,Id,IsActive,PermissionSetGroupId,PermissionSetId, PermissionSet.Name FROM PermissionSetAssignment WHERE PermissionSetId IN (SELECT ParentId FROM FieldPermissions WHERE Field = 'Account.CustomerPriority__c' AND PermissionsEdit = true) AND AssigneeId = '005XXXXXXXXXXXXQAT' ``` ## User Permissions Return the permission sets that a user is assigned that grant specified permissions. ```sql SELECT AssigneeId,ExpirationDate,Id,IsActive, PermissionSetGroupId,PermissionSetId, PermissionSet.Name,PermissionSet.PermissionsViewAllData, PermissionSet.PermissionsCustomizeApplication FROM PermissionSetAssignment WHERE AssigneeId = '005XXXXXXXXXXXXIAS' AND (PermissionSet.PermissionsViewAllData = true OR PermissionSet.PermissionsCustomizeApplication = true) ``` Return the user permissions that a user has when logged in as that user. ```sql SELECT FROM UserPermissionAccess // or specify permissions ``` ## Profiles and Permission Set Groups Each profile or permission set group has an associated permission set. You can first get the associated permission set ID for a profile or permission set group, then use this permission set ID in other queries. The two queries below can be modified for object permissions, user permissions, and access settings. Return permissions associated with a profile, using the associated permission set. ```sql #Get the profile's associated permission set SELECT Id from PermissionSet WHERE ProfileId = '00eXXXXXXXXXXXX' SELECT Field,Id,ParentId,PermissionsEdit,PermissionsRead, SobjectType,SystemModstamp FROM FieldPermissions WHERE ParentId = '0PSXXXXXXXXXXXXWAU' //ID of the associated permission set ``` Return permissions associated with a permission set group, using the associated permission set. ```sql #Get the permission set groups's associated permission set. SELECT Id from PermissionSet WHERE PermissionSetGroupId = '0PGXXXXXXXXXXXX' SELECT Field,Id,ParentId,PermissionsEdit,PermissionsRead, SobjectType,SystemModstamp FROM FieldPermissions WHERE ParentId = '0PSXXXXXXXXXXXXWAU' //ID of the associated permission set ``` ## Record Access Return whether a user has access to a record and what level of access is given. ```sql SELECT RecordId,HasReadAccess,HasEditAccess,HasDeleteAccess,HasTransferAccess,HasAllAccess,MaxAccessLevel FROM UserRecordAccess WHERE RecordId = '001XXXXXXXXXXXXIAC' AND UserId = '005XXXXXXXXXXXXQAT' ``` Return the users that have access to a specific account record. ```sql SELECT AccountAccessLevel,AccountId,CaseAccessLevel,ContactAccessLevel,Id,IsDeleted, LastModifiedById,LastModifiedDate,OpportunityAccessLevel,RowCause,UserOrGroupId FROM AccountShare WHERE AccountId = '001XXXXXXXXXXXXIAC' ``` Return whether the queried user has Read and Transfer access to a record, and the user’s maximum access level for the record. ```sql SELECT RecordId,HasReadAccess,HasTransferAccess,MaxAccessLevel FROM UserRecordAccess WHERE UserId = '005XXXXXXXXXXXXQAT' AND RecordId = '001XXXXXXXXXXXXIAC' //or Record IN [list of IDs] ``` Return all records that the queried user has Read access to. ```sql SELECT RecordId FROM UserRecordAccess WHERE UserId = '005XXXXXXXXXXXXQAT' AND RecordId IN [list of IDs] AND HasReadAccess = true ``` ## Access Settings (SetupEntityAccess) Access settings can be specified in permission sets and profiles and include Visualforce pages, Apex classes, and custom permissions. For more information, see [Permissions and Access Settings](https://help.salesforce.com/s/articleView?id=platform.permissions_about_users_access.htm&release=264.0.0&type=5 "User, object, and field permissions and access settings can be specified in profiles and permission sets. To use them effectively, understand the differences between profiles and permission sets.") in Salesforce Help and [SetupEntityAccess](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_setupentityaccess.htm) in the Object Reference for the Salesforce Platform Developer Guide. Return the permission sets that have the specified access setting enabled. ```sql SELECT Id,ParentId,SetupEntityId,SetupEntityType, SystemModstamp FROM SetupEntityAccess WHERE SetupEntityId = '0H4XXXXXXXXXXXX' //ID of Apex class, Visualforce page, etc. ``` Return the permission sets assigned to a user that have the specified access setting enabled. ```sql SELECT AssigneeId,ExpirationDate,Id,IsActive, PermissionSetGroupId,PermissionSetId, PermissionSet.Name FROM PermissionSetAssignment WHERE PermissionSetId IN (SELECT ParentId FROM SetupEntityAccess WHERE SetupEntityId = '0H4XXXXXXXXXXXX' ) AND AssigneeId = '005XXXXXXXXXXXXQAT' ``` #### See Also - [Troubleshooting User Access Issues and Insufficient Privileges Errors](https://help.salesforce.com/s/articleView?id=platform.admin_insufficient_privileges_flowchart.htm&release=264.0.0&type=5 "Review this guidance if you or one of your users is experiencing insufficient or unexpected access for an object, record, field, or feature in Salesforce.") - [Create a SOQL Query](https://help.salesforce.com/s/articleView?id=xcloud.admin_locales_soql.htm&type=5&language=en_US) # Example Simple Custom HTTP Integration in Agentforce Operations Walk through an end-to-end example of creating a custom HTTP integration that looks up city and state information for a US postal code, and then adding it to a blueprint as an automation task. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

Role or Access Needed
To manage integrations in Agentforce Operations: Admin role or Integration Admin role
To edit a blueprint in Agentforce Operations: Admin role, Creator role, or a user with Edit access for the blueprint
This example uses the at no additional cost Zippopotam.us API, which returns location information for a US postal code. Authentication isn't required. You create the integration and then add it to a blueprint so the lookup runs automatically when a workflow reaches that stage. The integration sends a GET request to `https://api.zippopotam.us/us/90210` and extracts the city name and state abbreviation from the response. #### See Also - [Create a Custom HTTP Integration in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_integrations_custom_http_create.htm&release=264.0.0&type=5 "Create a Custom HTTP integration to connect Agentforce Operations to an external API. Use Custom HTTP integrations to send or retrieve data during workflow execution.") - [Add a Custom HTTP Integration to a Blueprint in Agentforce Operations](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_integrations_custom_http_blueprint.htm&release=264.0.0&type=5 "Add a custom HTTP automation task to a blueprint stage to automatically send or retrieve data when a workflow reaches that stage.") ## Create the Postal Code Lookup Integration 1. In the navigation sidebar, click **Admin**. 2. Click the **Integrations** tab. 3. Click **Add integration**. 4. For Integration Type, select **Custom HTTP**. 5. For Name, enter Postal Code Lookup. 6. For Type, select **None**. This API requires no authentication. 7. For Base URL, enter https://api.zippopotam.us. 8. For Method, select **GET**. 9. For Path, enter /us/90210. 10. Leave Headers, Query parameters, and Body fields blank. 11. For HTTP Response, configure the values to extract from the API response. 1. Click **\+ Add value**. For the JSON Path expression, enter .places\[0\]\["place name"\]. Select the Agentforce Operations field to store the city name. For example, **City**. 2. Click **\+ Add value**. For the JSON Path expression, enter .places\[0\]\["state abbreviation"\]. Select the Agentforce Operations field to store the state abbreviation. For example, **State Abbreviation**. 12. Click **Next**. 13. For Health check, select **Disabled**. The Zippopotam.us API doesn't provide a health endpoint. 14. Click **Create**. The integration configuration window closes. 15. In the integration list, find your new integration. 16. Click the three-dot dropdown list next to the integration and select **Edit**. The integration configuration panel opens. 17. Open the **Test HTTP request** section and click **Test**. The test results show the city (Beverly Hills) and state abbreviation (CA) extracted from the response. Confirm that the extracted values appear in the fields you selected. 18. Close the integration configuration window. The Postal Code Lookup integration is complete available to use in blueprints. ## Add the Postal Code Lookup Integration to a Blueprint 1. [Create a blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_create_blueprint.htm&release=264.0.0&type=5 "Use AI to generate a blueprint by describing your process and optionally uploading supporting documents. You can also build a blueprint from scratch or import one from another workspace. Anyone with the Creator role can generate blueprints in Agentforce Operations.") or [edit an existing blueprint](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_blueprints_edit.htm&release=264.0.0&type=5 "Open an existing blueprint for editing to add stages, tasks, automations, or other changes."). 2. In the blueprint, in the stage where you want the lookup to run, click **\+ Automation**. 3. Point to **Custom HTTP** and select **Postal Code Lookup**. 4. For Start, select **When the stage starts**. 5. Click **Add**. The Postal Code Lookup automation task is added to the stage. When a workflow reaches this stage, Agentforce Operations automatically calls the postal code API and populates the city name and state abbreviation fields in the workflow. # Example Use Cases The examples in this section demonstrate typical External Services workflows. ### Required Editions
Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
## Connect to a credit service. To illustrate how External Services work, let’s say you want to connect Salesforce to an external credit service. The credit service determines if credit can be extended to a Salesforce account. You also want to know the payment terms. First, you create a Named Credential by supplying a URL and authentication settings for the credit service. Salesforce uses these items to make callouts to the external service. With External Services, you then select whether you get your API spec from Mulesoft Anypoint Platform, or from an API spec provided elsewhere. To register an API spec: - Enter a URL (or endpoint) to the location of the hosted OpenAPI specification (”API spec”) for the external service, or provide (paste in) the complete schema from the API spec. For Mulesoft, provide your credentials and select the API spec. - Select the operations from the schema you want to make available in Salesforce as invocable actions, and complete the registration. External Services walks you through it so that you don’t directly touch the API. You can also skip writing Apex code to make the callout. After you’ve registered your new external service, use a Salesforce point-and-click automation tool, such as Flow Builder or Einstein Bots. Create a flow using the External Service type for flow actions automatically generated from your External Services registration. When the flow runs, the output contains the credit decision and, if applicable, payment terms. ## Automatically add a new org user to external applications. Another use case involves saving time when you add new users to an org. For instance, you want new users to automatically become collaborators for all external org-related applications. Create a flow using inputs such as user ID, which you can define in your API spec’s schema. Then you add triggers in your flow. When a user is created, the triggers engage and add the new user as a collaborator to your other applications. ## Send alerts to an external application with Apex. If your business logic requires more tailored processing needs, you can easily extend the reach of your Apex logic to external integrations conforming to OpenAPI specifications. You can extend Apex with synchronous or asynchronous calls to a registered external service. In one use case, a detailed alert is sent to a third-party application if an urgent case is opened. # Example: How Codey Outfitters Uses External Change Data Capture The fictitious company, Codey Outfitters, distributes outdoor equipment from local small businesses to outdoor enthusiasts around the world. The company handles all logistics, such as complying with import laws for each state and country. Over the years, Codey Outfitters has acquired different IT systems to manage orders, shipments, inventory, and billing. It uses Salesforce CRM to manage its customer base and the suppliers whose items it sells. Codey Outfitters wants to provide customers with a one-stop shopping portal where they can see price changes on the gear. When the inventory is updated, Codey Outfitters wants the change notifications sent to its Salesforce org. Salesforce then performs business logic to determine whether the updates include price changes that are valuable to customers based on their order history. Customers can see or be notified about relevant deals on their Codey Outfitters portal. Let’s see how Codey Outfitters sets up and uses external change data capture to accomplish these goals. - **[Set Up the External Data Source and the External Object](https://help.salesforce.com/s/articleView?id=platform.external_object_change_tracking_example_setup.htm&release=264.0.0&type=5)** Codey Outfitters has an OData 4.0 service for its inventory. The company connects its Salesforce org to the inventory by creating an external data source called Gear Inventory and creating an external object called Products. - **[Monitor External Change Data Capture](https://help.salesforce.com/s/articleView?id=platform.external_object_change_tracking_example_monitor.htm&release=264.0.0&type=5)** With external change data capture enabled, Codey Outfitters’ org polls the external system every 30 minutes. To monitor the tracking status, it queries the BackgroundOperation object. Codey Outfitters prefers to run SOQL queries in the Query Editor of the Developer Console, but you can use your preferred tool. - **[Subscribe to Changes with Streaming API](https://help.salesforce.com/s/articleView?id=platform.external_object_change_tracking_example_streaming_api.htm&release=264.0.0&type=5)** When Codey Outfitters runs its Bayeux client, the client subscribes to Streaming API on the products publication channel. - **[React to Changes with Apex Triggers](https://help.salesforce.com/s/articleView?id=platform.external_object_change_tracking_example_create_triggers.htm&release=264.0.0&type=5)** To automate your business with external change events, use Apex triggers. # Example: How Salesforce Scheduler Determines Available Time Slots This example shows how Salesforce Scheduler populates time slots, how scheduled appointments affect time slots, and how events, such as Salesforce Calendar events, affect time slots. ### Required Editions
Available in: Lightning Experience.
Available in: Enterprise and Unlimited Editions
## Settings That Affect Time Slots Here are the sample values of fields and settings that affect the time slots: - Availability Start Time: 8:30 AM (for Monday) - Availability End Time: 6:00 PM (for Monday) - Appointment Start Time Interval: 60 minutes ![An image that shows the Scheduling Policy details including Appoinment Start Time Interval.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_example_of_how_time_slots_are_determined_1.png) - Block Time Before Appointment: 45 minutes - Block Time After Appointment: 15 minutes - Estimated Duration: 120 minutes ![An image that shows the Work Type settings including Block Time Before Appointment, Block Time After Appointment, and Estimated Duration.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_example_of_how_time_slots_are_determined_2.png) ## Time Slots Available by Default Based on the settings, these time slots are generated. ![An image that shows the time slots available by default.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_example_of_how_time_slots_are_determined_3.png) | Time Slot Number | Start Time | End Time | | --- | --- | --- | | 1 | 10:00 AM | 12:00 PM | | 2 | 11:00 AM | 01:00 PM | | 3 | 12:00 PM | 02:00 PM | | 4 | 01:00 PM | 03:00 PM | | 5 | 02:00 PM | 04:00 PM | | 6 | 03:00 PM | 05:00 PM | Here’s how Salesforce Scheduler determines the start time of the first time slot when a value isn’t set for the Block Time Before Appointment field: 1. Salesforce Scheduler identifies Minutes Past the Hour of Availability Start Time. In this example, the Availability Start Time is 8:30 AM, so Minutes Past the Hour of Availability Start Time is 30. 2. Salesforce Scheduler checks the value of Minutes Past the Hour of Availability Start Time modulo Appointment Start Time Interval (Minutes Past the Hour of Availability Start Time % Appointment Start Time Interval). In this example, it’s 30%60 = 30. 3. As the modulo value isn’t 0, Salesforce uses this formula to calculate the Start Time of the first time slot: ``` Start Time = Availability Start Time + (Appointment Start Time Interval - (Minutes Past the Hour of Availability Start Time % Appointment Start Time Interval)) ``` ``` Start Time = 8:30 AM + (60 - (30%60)) = 8:30 AM + 30 Minutes = 9:00 AM. ``` Here’s how Salesforce Scheduler determines the start time of the next time slots: ``` Start Time = Start Time of Previous Slot + Appointment Start Time Interval ``` So, the next time slots start at 10:00 AM, 11:00 AM, 12:00 PM, and so on. As a value is set for the Block Time Before Appointment field, Salesforce Scheduler doesn’t show time slots that meet this criteria: ``` Time Slot Start Time < Availability Start Time + Block Time Before Appointment ``` ``` Time Slot Start Time < 8:30 AM + 45 Minutes (9:15 AM) ``` So, Salesforce Scheduler doesn’t show any time slots that start before 9:15 AM. Here’s how Salesforce Scheduler determines the end time of the time slots. ``` End Time = Start Time + Duration ``` In this example, as the Duration is 120 minutes, the time slots end 120 minutes after their start time. Also, the sum of Last Time Slot End Time and Block Time After Appointment (5:00 PM + 15 Minutes = 5:15 PM) is less than Operating Hours End Time. ## Time Slots Available When There’s a Scheduled Appointment When concurrent scheduling is disabled and an appointment is scheduled from 12:00 PM to 2:00 PM, here’s the list of available time slots. ![An image that shows avaialbe time slots after an appointment is scheduled for 12:00 PM to 02:00 PM.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_example_of_how_time_slots_are_determined_4.png) | Time Slot Number | Start Time | End Time | | --- | --- | --- | | 1 | 03:00 PM | 05:00 PM | The other time slots that meet either of these criteria are no longer available: - `Time Slot End Time > 12:00 PM - 45 Minutes - 15 Minutes (11:00 AM)` - `Time Slot Start Time < 2:00 PM + 45 Minutes + 15 Minutes (3:00 PM)` ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/images/icon_note.png) Note In this case, the scheduled appointment and the appointment that’s being scheduled belong to the same work type. So, Block Time Before Appointment and Block Time After Appointment are same for both the appointments. When concurrent scheduling is enabled with the Maximum Appointments value set as 3 and an appointment is scheduled from 12:00 PM to 2:00 PM, here’s the list of available time slots. ![An image that shows avaialbe time slots after an appointment is scheduled for 12:00 PM to 02:00 PM.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-scheduler-264-0-0-production-enus/0530be2f-891f-4263-a0d7-96ddca56a717/scheduler/images/ls_example_of_how_time_slots_are_determined_5.png) | Time Slot Number | Start Time | End Time | | --- | --- | --- | | 1 | 12:00 PM | 02:00 PM | | 2 | 03:00 PM | 05:00 PM | As only one appointment is scheduled for the 12:00 PM to 2:00 PM time slot, the time slot is still available for two more appointments. # Examples of Classic Approval History Reports See sample reports to learn how you can obtain approval history data. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Try [Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals.htm&release=264.0.0&type=5 "As your company grows, so does the complexity of your approvals, often requiring input from multiple people in different departments across different time zones. This complexity can mean that you spend more time waiting for each person to complete their review in the right order. Flow Approval Processes helps you coordinate multistep reviews that involve users, systems, and conditional paths."), a modern alternative to Classic Approval Processes. This new feature provides a more flexible, user-friendly flow-based interface, and it can trigger on record changes, supporting Apex extensibility and detailed logging for compliance and audit trails. It supports dynamic routing based on data and business rules, unlike Classic Approval Processes, which are tied to specific objects and offer limited support for processes by using conditions. With Flow Approval Processes, you can monitor submitted records and quickly identify bottlenecks, giving you unprecedented visibility into approval workflows. And, like Classic Approval Processes, Flow Approval Processes don’t consume automation credits or orchestration runs. ## Report Example: Opportunity Approvals Submitted Within a Date Range This sample report displays classic approval process instances that were submitted within a specified date range (1) for the Opportunity object (2). The results are sorted by status (3) and include the last actor (4), submitted date (5), completed date (6), record name (7), classic approval process instance ID (8), and classic approval process name (9). ![Sample classic approval history report for the Opportunity object](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/approval_history_report_example_oppty_date_range.png) ## Report Example: Approvals—Elapsed Times This sample report displays all classic approval process instances (1) and groups results by the classic approval process name (2). The results include the record name (3), classic approval process instance ID (4), status (5), submitted date (6), elapsed minutes (7), and completed date (8). ![Sample classic approval history report for all process instances grouped by approval process name](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/approval_history_report_all_grouped_by_name.png) ## Report Example: Approval Steps—Elapsed Times This sample report displays all classic approval process instances (1) and groups results by classic approval process name (2) and record name (3). The results are sorted by step name (4) and include step status (5), step start date (6), step elapsed minutes (7), step completed date (8), and classic approval process instance ID (9). ![Sample classic approval history report for all process instances and step info](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/approval_history_report_all_steps.png) Notice that the previous sample report doesn't include the approvers for each step and the elapsed time for each approval request. To get this information, run a SOQL query by using the classic approval process instance ID from the report. The following sample SOQL query obtains the ActorID (user or queue that received the approval request) and the ElapsedTimeInHours (elapsed time since the approval request was sent) for the first pending step in the report. ```sql SELECT ActorId,ElapsedTimeInHours FROM ProcessInstanceWorkitem where processInstanceId = '04gD0000000LvIV' ``` ![Sample SOQL query and results](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/approval_history_report_soql_query_supplement.png) The sample query has only one result, and you can view that approver's user profile page by appending the resulting ActorID to the organization's base URL (https://MyDomainName.my.salesforce.com/005D00000015vGGIAY), which gets redirected to the user profile page. ![User profile page after redirect](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/approval_history_report_user_profile_page.png) #### See Also - [Classic Approval Process History Reports](https://help.salesforce.com/s/articleView?id=platform.approval_history_reports.htm&release=264.0.0&type=5 "If you create a custom report type for classic approval process instances, users can view the historical details of completed and in-progress classic approval processes and their individual steps.") # Examples of Processes See how Process Builder can make automating your business processes super easy. ### Required Editions
Available in: both Salesforce Classic (not available in all orgs) and Lightning Experience
Available in: Essentials, Professional, Enterprise, Performance, Unlimited, and Developer Editions
![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_important.png) Important Support and updates for Process Builder have ended as of December 31, 2025. This means that support won't be provided for any process and bugs in the Process Builder product won't be fixed. See [Workflow Rules & Process Builder End of Support](https://help.salesforce.com/s/articleView?id=001096524&type=1&language=en_US). After December 31, 2025, existing processes continue to run, and you can activate, deactivate, and edit them; however, we recommend using Flow Builder. To migrate existing processes, plan your [switch to Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow_learning_map.htm&release=264.0.0&type=5 "Flow Builder combines the capabilities of workflow rules and Process Builder in a single point-and-click tool, making it easier to create a triggered process. If you created triggered processes with workflow rules or Process Builder, use the Migrate to Flow tool to move them to Flow Builder. Start by migrating and testing in a sandbox environment before moving your new flows to production.") and use the [Migrate to Flow](https://help.salesforce.com/s/articleView?id=platform.flow_migrate_to_flow.htm&release=264.0.0&type=5 "Use the Migrate to Flow tool to convert your Process Builder processes and workflow rules into Flow Builder, including scheduled actions. The tool also supports partial migration of processes for most actions.") tool. For new automations, create flows in [Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow.htm&release=264.0.0&type=5 "Automation reduces repetitive work and helps your team complete tasks faster and more accurately. With Flow Builder, you can build simple or complex automations, forms, and guided experiences with no code. You can add forms to Salesforce pages and Experience sites, and launch flows using buttons, record triggers, or schedules."). - **[Opportunity Management Process Example](https://help.salesforce.com/s/articleView?id=platform.process_example.htm&release=264.0.0&type=5)** This example automates a single business process by using the Process Builder instead of workflow rules. - **[Printer Management Process Example](https://help.salesforce.com/s/articleView?id=platform.process_example_event.htm&release=264.0.0&type=5)** The example demonstrates how you can use Process Builder to subscribe to and evaluate a platform event. - **[Managing Documents Process Example](https://help.salesforce.com/s/articleView?id=platform.process_example_quip.htm&release=264.0.0&type=5)** This example uses Process Builder to manage documents in Salesforce. The example moves a document to a shared folder in Quip whenever the record that the document is associated with is created or updated. This process ensures that the documents associated with a Salesforce record object are always available to users who have access to the shared folder. # Examples of Searching within Dynamics Backups Review examples of specific searches that help you locate data within your Dynamics backup services. ## Search for a File (Attachment) Based on a Keyword 1. From the Type dropdown list, select Attachments. Follow the on-screen instructions, and enter the search term you are looking for. The Find in Attachments job searches for files in the entire backup history. 2. All the files containing the keyword in either the title or in the body, are displayed. Click on the title to download a file. # Examples of Searching within Salesforce Backups Review examples of specific searches that help you locate data within your backup services. ## Search for Multiple Fields in Accounts 1. From the Type dropdown list, select Records. 2. Enter the name of the Search term (for example, Record ID) 3. In the Backups section, select either Single Backup (if you know which one) or Backup Range (if you know the range of dates), or All Backups (if you don’t know when it was backed up). 4. In the Objects section, select Specific Objects, and select Accounts from the dropdown list. 5. Click the filter icon and select Accounts 6. If you select the Field, Operator and Value you can use the logic operator OR to search for multiple values. Alternatively if all the Fields have a common prefix you can use starts with as the operator. ## Search for All Contacts in an Account 1. From the Type dropdown list, select Records. 2. Enter the name of the Search term (for example, the company name). 3. In the Backups section, select either Single Backup (if you know which one) or Backup Range (if you know the range of dates), or All Backups (if you don’t know when it was backed up). 4. In the Objects section, select Specific Objects, and select Contacts from the dropdown list. ## Search for All Versions of a Record in the Past 30 Days 1. From the Type dropdown list, select Records. 2. In the Backups section, select Backup Range and define the range of dates for the previous 30 days. 3. In the Objects section, select Specific Objects, and select the RecordID you are looking for (or enter the name of the Account or Contact and so on), and continue to follow the on-screen steps. 4. Click on Downloads and select All Versions. From the zip file, extract the .csv files. There is a separate .csv file for each instance of the record appearing showing all the changes across the files. ## Search for and Download Account Objects and their ContentVersion Objects 1. From the Type dropdown list, select Records. 2. Enter the name of the Search term (for example, the company name). 3. In the Backups section, select either Single Backup (if you know which one) or Backup Range (if you know the range of dates), or All Backups (if you don’t know when it was backed up). 4. In the Objects section, select Specific Objects, and select Accounts and ContentVersions objects from the dropdown list. 5. Check the Enable and download of all related files checkbox. 6. On the results page, click Downloads and select All Versions/All latest. Extract the file and open the extracted folder. In that folder, open the ContentVersion folder. The download will include all ContentVersion objects related to the found Account objects. ## Search for a File Based on a Keyword 1. From the Type dropdown list, select Attachments. Follow the on-screen instructions, and enter the search term you are looking for. The Find in Attachments job searches for files in the entire backup history. 2. All the files containing the keyword in either the title or in the body, are displayed. Click on the title to download a file. # Examples of Searching within ServiceNow Backups Review examples of specific searches that help you locate data within your ServiceNow backup services. ## Search for a File (Attachment) Based on a Keyword 1. From the Type dropdown list, select Attachments. Follow the on-screen instructions, and enter the search term you are looking for. The Find in Attachments job searches for files in the entire backup history. 2. All the files containing the keyword in either the title or in the body, are displayed. Click on the title to download a file. # Examples of Using API Actions in Salesforce After you sync your APIs in API Catalog and activate operations as actions, use them in agents, flows, and Apex code. See the examples for ideas on how to use actions to customize your Salesforce org with clicks. - **[Example of Using MuleSoft for Agentforce](https://help.salesforce.com/s/articleView?id=platform.api_catalog_use_api_actions_in_agent_actions.htm&release=264.0.0&type=5)** Consider a scenario where a fictitious company called Enchanted Entertainment wants to create a service agent to manage theme park reservations and experiences. They've developed APIs using MuleSoft Anypoint Platform to integrate with external systems. Now, they need to connect these APIs to their service agent. Here’s how API Catalog can help with that. - **[Example of Using Actions in Flow](https://help.salesforce.com/s/articleView?id=platform.api_catalog_use_api_actions_in_flow.htm&release=264.0.0&type=5)** Consider a situation where you want to connect Salesforce to a credit service that has an API that’s managed in MuleSoft Anypoint Platform. The credit service retrieves the customer’s credit score, determines whether the customer qualifies for the credit service, and provides the payment terms. You want to extend the credit service to a Salesforce account so that you can view the payment terms in Salesforce. # Examples of Using the Log Inspector Here are some of the ways you can use the Log Inspector to diagnose and solve problems. ## Tracing the Path of Execution Scenario: You’ve opened a debug log in the Log Viewer. What are some of the ways to step through the information? - In the Execution Log panel, select **Executable** to filter out all non-executable steps, including cumulative limits information. - In the Execution Overview panel, click the Executed Units tab to view the aggregate values of different types of operations in the request. For example, you can view the number of DML operations or the different methods by the type of method. - Click the Limits tab to view the governor limits used by this operation. ## Viewing `System.Debug` Statements Scenario: You’ve added a number of `System.Debug` statements to your code to track a request's progress. How do you find them using the Log Viewer? - In the Execution Log panel, select **Filter**. - Enter DEBUG (upper-case) in the entry box. Only the lines containing the string DEBUG are shown in your request display. ## Updating the Source Code Scenario: After you run your request, you notice an Apex code error in the debug log. What's the easiest way to edit your Apex code? - From the Source panel, select the line of code. - Click **Open**. The class or trigger opens in a new Log Viewer tab. ## Tracking DML in a Request Scenario: Your request contains many DML statements in different locations. How can you tell how many times DML is executed in a request? Here are two techniques for drilling into a debug log to examine the actual DML executed during the course of a request: - In the Execution Log panel, select **Filter**, then type DML. All items in the request that contain DML anywhere in either the event or details display. - In the Execution Overview panel, click the Executed Units tab and disable all other types of execution, except for DML. The buttons are toggles—click once to filter that type of operation **out** of the list. Click again to disable the filter. To view only the DML, click **Methods**, **Queries**, **Workflow**, **Callouts**, **Validations**, **Triggers** and **Visualforce Pages**. - The details of the DML operation show the kind of object that was affected, and the specific operation performed—insert, update, and so on. You can also view the number of times a DML statement was executed, the number of rows, and so on. - If you click a DML request item in the Executed Units tab, the Execution Log filters out all other parts of the request and displays only that DML statement. You can also use these procedures for looking up and filtering queries. ## Evaluating the Performance of a Visualforce Page Scenario: You have a Visualforce page and an Apex controller that executes SOQL queries. How do you analyze the performance of your page and find out which code unit took the most time? How do you determine how many queries are performed in the request? How do you verify how close you are getting to governor limits? - In the Stack Tree panel, look for the name of the Visualforce page. The top level has the format /apex/pagename. The first node under that shows the actual execution of the page. Open that node to see when the controller was initialized. - Continue to open nodes to explore the calling of methods and how long each method took. When you click an item in the Stack Tree panel, the Execution Log panel displays that portion of the debug log, the **Source** panel refreshes to display the appropriate source code, and the Variables panel shows the variables that are in context. - In the Execution Overview panel, click the Executed Units tab to view statistics of your code that include execution time in milliseconds and heap size in bytes. The Cnt column shows the number of times a certain code unit has been executed. If a code unit was executed more than once, the sum, average, maximum, and minimum run times are updated. Similarly, if a query is executed more than once, the display is updated to summarize the aggregate numbers of returned rows. You can filter out code units by clicking the buttons on the bottom that correspond to the code units you want to omit from the view. ![Executed Units tab in the Log Inspector](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_system_log_executed_units_tab.png) - Click the Limits tab to verify the applicable limits, and how close your request is to each applicable limit. The Total Available column shows the governor limits allowed for your organization per type of operation. The Request Total column shows the total number of requests performed. The Used So Far column shows the number of requests consumed at the point of execution you selected in the stack trace or execution log. - Click the Timeline tab to see a visual display of the executed code units broken up by the type of code unit, in addition to the total and percentage of execution time for each type of code unit. The timeline lets you quickly find out which parts of the request took the longest. Select a time interval at the bottom of the summary section to increase or decrease the period displayed in the timeline. ![Timeline tab in the Log Inspector](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/extend_code/images/code_dev_console_system_log_timeline_tab.png) In this example, database requests took the most time (56.95%). They are followed by the Visualforce page. The least amount of time was spent on Apex code. Also, Visualforce pages and Apex code were executed first and last, while database operations were carried out between them. ## Viewing a Complex Process Scenario: Your process is complex, and includes several Apex classes and triggers, workflow, and validation rules. What are some of the best ways to step through or filter the resulting debug log? - The Stack section contains a tree structure illustrating the execution path of all the top level items in the request. Use this to see the hierarchy of items as they execute. - Use the **Filter** entry box in the execution log. For example, if you’re interested in trigger-specific events, click **Filter** and enter trigger. Only the lines in the debug log that contain the word trigger display in the execution log section. - Limit the scope of the Execution Log tab to a specific selected unit of execution by selecting **This Frame**. For example, if you select a line that contains `CODE_UNIT_STARTED` in the execution log, and then click **This Frame**, the execution log displays only the items in the request that occur between `CODE_UNIT_STARTED` and its associated `CODE_UNIT_ENDED`. ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_note.png) Note When **This Frame** is selected, the Execution Log only displays the items that are contained in that frame, not any lower level operations. For example, if a trigger calls a class, only the trigger operations display in the Execution Log, not the class operations. # Examples of Validation Rules Review examples of validation rules for various types of apps that you can use and modify for your own purposes. Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record. ### Required Editions
Available in: both Salesforce Classic and Lightning Experience
Available in: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, Developer, and Database.com Editions
User Permissions Needed
To view field validation rules: View Setup and Configuration
To define or change field validation rules: Customize Application
Use the following samples for validation rules in Salesforce and Salesforce AppExchange apps, including: - **[Sample Account Address Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_account_address.htm&release=264.0.0&type=5)** Rules to maintain valid account addresses. - **[Sample Account Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_account.htm&release=264.0.0&type=5)** Validation rule examples for numeric account numbers, account number length, and annual revenue range. - **[Sample Call Center Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_callcenter.htm&release=264.0.0&type=5)** Validation rules for requiring a conditional description, preventing cases from being reset, restricting case status, and more. - **[Sample Experience Cloud Site Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_community.htm&release=264.0.0&type=5)** Validation rule examples for various use cases, like preventing offensive language in questions, replies, ideas, and idea comments. - **[Sample Contact Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_contact.htm&release=264.0.0&type=5)** Validation rules for various use cases, like requiring fields for mailing address, mailing street, and ZIP code. - **[Sample Cross Object Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_cross_object.htm&release=264.0.0&type=5)** Examples for three validation rules on opportunity products. - **[Sample Date Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_date.htm&release=264.0.0&type=5)** Examples for date validation rules. For example, how to validate that the value of a custom field is a weekday, a Saturday or Sunday, that a custom date field contains a date within the current month and year, and more. - **[Sample Number Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_number.htm&release=264.0.0&type=5)** Examples for how to validate that users can't save a time card record with more than 40 hours in a work week, numbers can't be negative, and even or odd numbers. - **[Sample Opportunity Management Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_oppty_mgmt.htm&release=264.0.0&type=5)** Examples for Examples for how to validate custom fields and other fields on opportunities. - **[Sample Quote Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_quote.htm&release=264.0.0&type=5)** An example on how to validate a quote. - **[Sample User, Role, and Profile Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_userroleprofile.htm&release=264.0.0&type=5)** Examples on how to validate custom user, role, and profile fields. - **[Miscellaneous Sample Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_other.htm&release=264.0.0&type=5)** Examples for how to validate certain number formats for credit card numbers or drivers licences. #### See Also - [Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_about_field_validation.htm&release=264.0.0&type=5 "Improve the quality of your data using validation rules. Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record.") - [Define Validation Rules](https://help.salesforce.com/s/articleView?id=platform.fields_defining_field_validation_rules.htm&release=264.0.0&type=5 "Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record. A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True” or “False”. Validation rules also include an error message to display to the user when the rule returns a value of “True” due to an invalid value.") # Excel Agent (Beta) in Agentforce Operations Use the Excel Agent (beta) as an automation engine in Agentforce Operations. Upload a spreadsheet to drive formula-based calculations, or pass CSV files for row-level operations across tabular data. ### Required Editions
License Required

This feature is a workspace that’s external to your Salesforce org and requires an Agentforce Operations license.

To purchase an Agentforce Operations license, contact your Salesforce account executive.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-agentforce_operations-264-0-0-production-enus/dce314e6-0a31-4a8b-98f7-3d2a3fd02ee2/images/icon_note.png) Note This feature is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/agreements/) or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/). Use of this pilot or beta service is at the Customer's sole discretion. ## What the Excel Agent Does The Excel Agent supports two types of tasks: formula-based calculations by using Excel spreadsheets, and row-level operations on tabular data from CSV files. For both task types, the agent generates a calculation audit workbook (.xlsx) that documents how it completed the task. For formula-based tasks, the agent runs the task's **Share information** field values through Excel spreadsheet formulas. It extracts the results into the task's **Request information** fields. For tabular-data tasks, the agent processes the CSV file from an upstream task through the Excel Agent task's **Share information** fields. Operations can include filtering rows or adding calculated columns. The agent stores tabular results as a **Request information** document field. It can also store individual values in single-value fields. ## When to Use the Excel Agent The Excel Agent is best when your task already involves Excel spreadsheets or CSV files. Assign a task to the Excel Agent to apply existing spreadsheet logic or process CSV files without rewriting that work as task instructions. Configure a formula-based task when you have an Excel spreadsheet with formulas that do the calculation work. For example, if you have a supplier risk scoring spreadsheet with weighted formulas, upload it and let the Excel Agent handle the math. Use the tabular-data approach when an upstream task produces a CSV file that requires row-level processing. For example, filter a list of purchase orders or add a calculated total column. The Excel Agent stores the results as a new CSV file. It can also store individual values in single-value fields. ## Limitations - For formula-based tasks that use an uploaded Excel file, only .xlsx files are supported in the **Documents** field. The .xls, .numbers, and .csv formats are not supported. - For formula-based tasks, upload the Excel file directly to the task's **Documents** field. You can't pass a dynamic Excel file through a **Share information** field. - The agent can't insert documents, signatures, or data sources into the Excel file. - **[Formula-Based Tasks with the Excel Agent (Beta)](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agents_excel_formula_based_tasks.htm&release=264.0.0&type=5)** In formula-based tasks, the Excel Agent uses an existing or generated Excel file to calculate results from stored field values of upstream tasks. The agent stores the results in the task's output fields when Agentforce Operations runs a workflow based on the blueprint. - **[Tabular Data Tasks with the Excel Agent (Beta)](https://help.salesforce.com/s/articleView?id=platform.automate_afsc_ai_agents_excel_tabular_data_tasks.htm&release=264.0.0&type=5)** In tabular-data tasks, the Excel Agent processes a CSV file from an upstream task and stores tabular results as a CSV file. It can also store individual values, such as a total or count, in single-value fields. # Exclude Fields from a Backup in Backup & Recover for Salesforce Exclude noncritical fields from Salesforce backups to streamline the process and improve efficiency. Manage data privacy and compliance requirements by excluding sensitive data. You can select multiple fields to exclude from the backup. 1. From the Backup tab, select the service you want to exclude fields from. 2. Go to the **Permissions Report**. 3. Select checkboxes for specific fields, or select all fields by selecting the checkbox in the header row. 4. Click **Exclude**. 5. In the confirmation window, click **Save**. # Exclude Metadata from the Changes List When retrieving changes from your development environment, you likely have files or metadata types that you want to exclude from committing to the source control repository. You can exclude individual files or all files in a specific directory with a .forceignore file. DevOps Center provides you the ability to view information about these ignored files but they don’t show up in the changes list. If the project repository was created using the provided repository template, your project already includes a .forceignore file. This file was likely modified to ensure it contains all the files and metadata types your team wants to exclude when pulling changes from its development environments. If the project was created using Salesforce CLI or some other method, we recommend that you check this file into the source control system. If you’re familiar with using Salesforce CLI outside of DevOps Center, we honor excluding metadata when running any of the commands to deploy or retrieve metadata, such as `sf project deploy start` or `sf project retrieve start`. Some common files and metadata that are often excluded: - package.xml - Profiles - App menu and app switcher - Settings - Object translations - LWC configuration files - Tests See [Salesforce Help: Determine What Metadata Types to Ignore During Development](https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_forceignore.htm&type=5&language=en_US) for sample syntax and considerations when updating the .forceignore file. #### See Also - [_Salesforce DX Developer Guide_: How to Exclude Source When Syncing or Converting](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm) # Exclude Metadata with the .forceignore File Use the .forceignore file to exclude files or metadata types that you don’t want to commit to the source control or deploy to the target org in your release pipeline. This file makes sure that DX Inspector and Lifecycle Center don’t push or pull unnecessary files, such as IDE configuration files, local test data, or specific profiles, from the development environment. ### Required Editions
Available in: Lightning Experience in Professional (API access required), Enterprise, Performance, Unlimited, and Developer Editions
Not Available in: Government Cloud Plus. Contact your Salesforce account executive for more details.
Not available in: EU Operating Zone. EU Operating zone is a special paid offering that provides an enhanced level of data residency commitment. Lifecycle Center is supported in orgs in the EU that aren’t part of EU OZ, per standard product terms and conditions.
During the commit process, DX Inspector reads the .forceignore file and excludes matching files and metadata from the source control repository and the work item. Lifecycle Center reads the file during promotion to identify and exclude the metadata types and files, preventing their deployment. ## Considerations When Creating the .forceignore File - If you used our template to create the repository, update the .forceignore file for your project requirements. - If you’re adding the .forceignore file to an existing repository, place the file in the root folder of your Salesforce DX project directory. - While you can create the .forceignorefile anytime, we recommend creating it when you build your pipeline so it’s in place from the start. - Configure the file in the main branch associated with your release environment before activating your pipeline. This step copies the files to new branches. - When you build your pipeline, if Lifecycle Center creates the repository and branches, each stage branch inherits the .forceignore file from the main branch. If you connect an existing repository or reuse existing branches, add a .forceignore file manually if it’s not available. - Work item feature branches use the file version from the first pipeline stage branch. - After you activate the pipeline, Lifecycle Center applies the file rules when pulling or promoting changes. ## Sample .forceignore Syntax The.forceignore file structure is similar to the .gitignore structure. Each line in the file contains a pattern corresponding to the files that you want to exclude, such as LWC configuration files, JSON files, or tests. This sample file contains common files and folders that developers want to exclude at the time of a commit or promotion. The syntax is different for the promote (deploy) and pull (retrieve) operations. For example, to exclude all profiles when promoting changes, use `**/profiles/**`. To exclude all profiles when pulling changes, use `*.profile`. See [How to Exclude Source When Syncing](https://help.salesforce.com/s/articleView?id=platform.deploy_metadata_and_data_to_target_org.htm&language=en_US). ``` # List files or folders below to ignore them when deploying and retrieving changes # Standard metadata package.xml # These metadata files are ignored when promoting (deploying) **/appMenus/** **/appSwitcher/** **/fieldRestrictionRules/** **/objectTranslations/** **/profiles/** **/profilePasswordPolicy/** **/profileSessionSetting/** **/settings/** **/sharingRules/** **/AuthProvider/** # These metadata files are ignored when pulling (retrieving) *.settings *.appMenu *.appSwitcher *.rule *.objectTranslation *.profile *.profilePasswordPolicy *.profileSessionSetting *.sharingRules *.AuthProvider # LWC configuration files **/jsconfig.json **/.eslintrc.json # LWC Jest **/__tests__/** ``` ## Considerations When Updating the .forceignore File - Update the .forceignore file in the main branch of your pipeline repository. - If you have multiple Lifecycle Center pipelines, update the file in each pipeline repository. - If the pipeline is already in use, changes don’t apply to existing branches automatically. To apply them everywhere, make the change in a work item and promote that work item. That way, Lifecycle Center applies the updated .forceignore file across the pipeline branches as you promote. #### See Also - [Commit Changes to Source Repository](https://help.salesforce.com/s/articleView?id=platform.devops_center_commit_changes.htm&release=264.0.0&type=5 "Commit changes to your source repository directly from the Change Management tab. After you make the changes, decide which changes to include for the work item and commit them to the Lifecycle Center project’s source control repository.") # Exclude Multiple Tables from a ServiceNow Backup Omit certain tables from the backup process to optimize performance, reduce backup duration, and avoid overloading the ServiceNow instance. Exclude various tables from backups, such as those that are non-critical, hold system data, or have restricted access. From the Permissions Report page, you can select multiple tables together to exclude from the backup. 1. Select the checkbox to the left of the row of the tables or, to select all the available tables, check the checkbox to the left of the Item Type column. 2. Click Exclude. The "Exclude from backup?" confirmation window appears. 3. Click Save. # Excluding Attachments for ServiceNow Create a Backup Exclusion rule to exclude attachments or limit the number of attachments downloaded per daily scheduled backup. If you create a Backup Exclusion rule to exclude the Attachment group of tables, you will not see the Attachments section in the Options tab. In the Options menu, you can limit the number of attachments downloaded per daily scheduled backup. A warning is displayed on your backups until all attachments are downloaded. We continue attempting to download the attachments until we have successfully downloaded the number of attachments equal to the limit, or until all attachments are downloaded. For example, if we are downloading 100 attachments and the last 5 fail with errors, we download the next 5 (100-105) until we have 100 successful attachments. Attachments with no file name are skipped and don't show as errors in the UI. # Execute a Seeding Job for Salesforce After your seeding template is built, you can use it in a seeding job to copy (seed) data into a Salesforce sandbox or into a Salesforce production org. You can do this directly from the Template Builder tab. If the Seed... button isn't available in the Template Builder tab, contact your administrator to grant you the required permission. To execute seeding jobs, the Seeding application requires that the authenticated user, which the application uses to perform its tasks in Salesforce, is granted certain Salesforce permissions. For the list of these required permissions, see [Salesforce Authenticated User Permission Requirements for Seeding](https://help.salesforce.com/s/articleView?id=platform.seeding_o_auth_user_perms.htm&release=264.0.0&type=5 "In a Salesforce data environment, the Seeding application uses an authenticated user to access production and sandbox orgs. Authenticated users require specific permissions to perform tasks such as building templates that define subsets of related data to extract from a source org. And then using those templates to seed sandboxes with identical data structures."). Before executing a seeding job: - Publish the seeding template that you're planning to use for the seeding job, in case that seeding template includes any recently added updates. - Create a Salesforce sandbox. The application imposes limits on the number of object records that can be seeded. When a record limit is exceeded during data retrieval from the seeding source, the seeding job is canceled. The limits imposed per seeding job, are: - For seeding into a sandbox: - Maximum number of records can't exceed 20M - Maximum number of ContentVersion records cannot exceed 50K - Exceeding either one of these two limits results in seeding job cancellation. - For seeding into a Production org: - Maximum number of records can't exceed 10K When seeding from a backup, the maximum supported size of each backed-up object is 250GB. At the beginning of each seeding job, the Seeding application verifies the backup size of each object included in the seeding template. If there are object backups that exceed 250GB in size, the seeding job fails. The Seeding application reports these objects and their backup size in the seeding job’s Seeding Report, which is found in the Recent Seeds tab. 1. In the Template Builder tab, click **Seed**. The