A collection of easy-to-digest Agent Script examples. Each recipe demonstrates how to build a specific agent behaviour in the fewest lines of script possible while following best practices. From "Hello World" interactions to sophisticated agent transitions, there's a recipe for that!
Make sure to review the following prerequisites before installing the app.
Important
This project requires Salesforce CLI with version 2.113.6 or greater.
Install the Salesforce CLI or, check that your installed CLI version is greater than 2.113.6 by running sf -v in a terminal.
If you need to update the Salesforce CLI, either run sf update or npm install --global @salesforce/cli depending on how you installed the CLI.
-
Einstein: Enable Einstein in your org. From Setup, search for Einstein Setup in Quick Find. Click on that entry and turn on the Einstein toggle.
-
Agentforce: Enable Agentforce in your org. From Setup, search for Agentforce in Quick Find. Click on Agentforce Agents, and turn on the Agentforce toggle.
Prompt Template Manager: Assign yourself the Prompt Template Manager permission set. You can either do this from Setup or with the Salesforce CLI by running this command:
sf org assign permset -n EinsteinGPTPromptTemplateManagerIf you don't have an org yet, you can sign up for a free Developer Edition Org.
Important
Make sure to start from a brand-new environment to avoid conflicts with previous work you may have done.
-
Clone this repository:
git clone https://github.com/trailheadapps/agent-script-recipes cd agent-script-recipes -
Authorize your Developer Edition org and provide it with an alias (agent-script-recipes in the command below):
sf org login web -s -a agent-script-recipes
-
Deploy the app to your org:
sf project deploy start -d force-app
-
Assign the
Agent_Script_Recipes_DataandAgent_Script_Recipes_Apppermission sets to the default user:sf org assign permset -n Agent_Script_Recipes_Data sf org assign permset -n Agent_Script_Recipes_App
-
Import some sample data:
sf data import tree --plan data/data-plan.json
-
(Service Agent recipes) Install npm dependencies. This is required for the setup script that creates and configures the agent user:
npm install
-
(Service Agent recipes) Create the agent user and prepare the service agent metadata for deployment. Service Agents (unlike Employee Agents) require a
default_agent_user— an org-specific user that the agent runs as. This script creates that user and injects it into all.agentfiles underforce-app-service/:npm run setup:service-agent
If deploying to a specific org (not your default), pass the target org alias:
npm run setup:service-agent -- --target-org my-org-alias
-
(Service Agent recipes) Deploy the service agent metadata:
sf project deploy start --source-dir force-app-service
-
(Service Agent recipes) Assign the required permission sets to the agent user so the service agent can access recipe data:
sf org assign permset -n Agent_Script_Recipes_Data --on-behalf-of <agent-username> sf org assign permset -n Customer_Service_Agent_Data --on-behalf-of <agent-username>
Replace
<agent-username>with the username printed by thesetup:service-agentscript in the previous step. -
Open your org with the Agentforce Studio app displayed:
sf org open -p "/lightning/n/standard-AgentforceStudio"
Tip
Agentforce Studio can be reached from the App Launcher. From there, click View All then select the Agentforce Studio app.
Note
What is a Service Agent? Unlike Employee Agents (which run as the logged-in user), Service Agents are external-facing agents that run under a dedicated agent user. This user is org-specific, which is why the npm run setup:service-agent step is needed to dynamically create and configure it before deployment.
This repository contains several files that are relevant if you want to integrate modern web development tools into your Salesforce development processes or into your continuous integration/continuous deployment processes.
Prettier is a code formatter used to ensure consistent formatting across your code base. To use Prettier with Visual Studio Code, install this extension from the Visual Studio Code Marketplace. The .prettierignore and .prettierrc files are provided as part of this repository to control the behavior of the Prettier formatter.
ESLint is a popular JavaScript linting tool used to identify stylistic errors and erroneous constructs. To use ESLint with Visual Studio Code, install this extension from the Visual Studio Code Marketplace. The .eslintignore file is provided as part of this repository to exclude specific files from the linting process in the context of Lightning Web Components development.
This repository also comes with a package.json file that makes it easy to set up a pre-commit hook that enforces code formatting and linting by running Prettier and ESLint every time you git commit changes.
To set up the formatting and linting pre-commit hook:
- Install Node.js if you haven't already done so
- Run
npm installin your project's root folder to install the ESLint and Prettier modules (Note: Mac users should verify that Xcode command line tools are installed before running this command.)
Prettier and ESLint will now run automatically every time you commit changes. The commit will fail if linting errors are detected. You can also run the formatting and linting from the command line using the following commands (check out package.json for the full list):
npm run lint
npm run prettier