Service automation transforms manual tasks into orchestrated workflows—from intake forms to fulfillment—delivering consistency, scalability, and speed. A Service Process combines Data (records) and Metadata (code and configuration). Migrating a process from Sandbox to Production typically requires manual export and deployment of interdependent components—an error-prone and time-consuming approach that can compromise tested configurations.
This plugin automates the extraction and deployment of Service Process, ensuring faster, safer deployments where the validated golden copy is exactly what reaches Production.
- Service Process Attributes (anchor, custom, context)
- Intake Flow
- Fulfillment Flow
- Preprocessor (Apex class must already exist in the target org)
Prerequisite: All other dependencies (e.g., Apex used in flows, Unified Catalog context definition allowlisting) must already exist in the target org.
- Install and authenticate the Salesforce CLI.
- Ensure your target org supports the Service Process API (minimum API version 66.0).
sf plugins install @salesforce/plugin-service-automationTo install a specific version:
sf plugins install @salesforce/[email protected]After installation, use the sf service-process topic:
# List Service Processes in an org
sf service-process list -o YOUR_ORG_ALIAS
# Retrieve a Service Process zip to an org
sf service-process retrieve -i 01txx0000008ABC -o devSandbox -d ./sp-artifacts
# Deploy a retrieved Service Process zip to an org
sf service-process deploy -z ./service-process.zip -o prodDeploy a Unified Catalog Service Process into a Salesforce org.
USAGE
$ sf service-process deploy -o <value> -z <value> [--json] [--flags-dir <value>] [--api-version <value>] [--link-intake]
[--link-fulfillment]
FLAGS
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
configuration variable is already set.
-z, --input-zip=<value> (required) Path to the ZIP file that contains the Service Process metadata to deploy.
--api-version=<value> Override the api version used for api requests made by this command
--link-fulfillment Link an existing fulfillment artifact instead of deploying one.
--link-intake Link an existing intake flow instead of deploying a new one.
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Deploy a Unified Catalog Service Process into a Salesforce org.
A Unified Catalog Service Process defines a service automation workflow consisting of attributes, intake flows,
fulfillment flows, and preprocessors.
Use this command to deploy a Service Process packaged as a ZIP file (typically generated by the `service-process
retrieve` CLI command) into a target Salesforce org.
This command deploys supported Service Process metadata, including:
- Service Process Attributes (anchor, custom, context)
- Intake flow
- Fulfillment flow
- Preprocessor reference
All other dependencies must already exist in the target org. Examples of these dependencies include:
- Apex classes used in flows
- Apex classes referenced by the preprocessor
- Unified Catalog context definition allowlisting
If any required dependency is missing in the org, the deployment fails.
EXAMPLES
Deploy a Service Process from a ZIP file to an org with alias "prod":
$ sf service-process deploy --input-zip ./service-process.zip --target-org prod
Deploy while linking an existing intake flow:
$ sf service-process deploy --input-zip ./service-process.zip --target-org prod --link-intake
Deploy while linking existing intake and fulfillment artifacts:
$ sf service-process deploy --input-zip ./service-process.zip --target-org prod --link-intake --link-fulfillment
FLAG DESCRIPTIONS
-z, --input-zip=<value> Path to the ZIP file that contains the Service Process metadata to deploy.
You typically generate this ZIP file with the `service-process retrieve` CLI command. The ZIP file contains the
Service Process definition and supported metadata.
--link-fulfillment Link an existing fulfillment artifact instead of deploying one.
When specified, the command links an existing fulfillment artifact (flow or flow orchestrator) in the target org
instead of deploying the fulfillment flow from the ZIP file.
--link-intake Link an existing intake flow instead of deploying a new one.
When specified, the command links the existing intake flow in the target org instead of deploying the intake flow
from the ZIP file.
See code: src/commands/service-process/deploy.ts
List the available Unified Catalog Service Processes in a Salesforce org.
USAGE
$ sf service-process list -o <value> [--json] [--flags-dir <value>] [--api-version <value>] [--limit <value>]
FLAGS
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
configuration variable is already set.
--api-version=<value> Override the api version used for api requests made by this command
--limit=<value> [default: 1000] Maximum number of Service Processes to return.
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
List the available Unified Catalog Service Processes in a Salesforce org.
A Unified Catalog Service Process defines a service automation workflow consisting of attributes, intake flows,
fulfillment flows, and preprocessors.
Use this command to list Unified Catalog Service Process records from the specified org and display their **Name** and
**Id** in a human-readable table.
To ensure predictable performance and avoid excessively large output, the command limits the number of records
returned. If the maximum limit is reached, the results are truncated and a warning is displayed.
Use the `--limit` flag to control the maximum number of Service Processes returned.
EXAMPLES
List the available Service Processes in the org with alias "devSandbox"; use the default limit:
$ sf service-process list --target-org devSandbox
List up to 100 Service Processes:
$ sf service-process list --target-org devSandbox --limit 100
FLAG DESCRIPTIONS
--limit=<value> Maximum number of Service Processes to return.
Allowed range is 1–2000. Default is 1000.
See code: src/commands/service-process/list.ts
Retrieve a Unified Catalog Service Process from a Salesforce org.
USAGE
$ sf service-process retrieve -i <value> -o <value> [--json] [--flags-dir <value>] [-d <value>] [--api-version
<value>]
FLAGS
-d, --output-dir=<value> Directory where the retrieved Service Process artifacts and the generated ZIP file
are written. If not specified, artifacts are written to `./service-process`.
-i, --service-process-id=<value> (required) ID of the Unified Catalog Service Process to retrieve from the source
org.
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
configuration variable is already set.
--api-version=<value> Override the api version used for api requests made by this command
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Retrieve a Unified Catalog Service Process from a Salesforce org.
A Unified Catalog Service Process defines a service automation workflow consisting of attributes, intake flows,
fulfillment flows, and preprocessors.
Use this command to retrieve a Unified Catalog Service Process from the specified Salesforce org and package it into a
ZIP file. You can then deploy this ZIP file to another org.
The command downloads the Service Process definition, identifies supported dependent metadata, retrieves those
components, and bundles everything into a deployable artifact.
Supported metadata retrieved by this command includes:
- Service Process Attributes (anchor, custom, context)
- Intake flow
- Fulfillment flow
- Preprocessor reference
Other dependencies, such as Apex classes used by flows or preprocessors, aren't retrieved and must already exist in
the target org before deployment.
EXAMPLES
Retrieve a Service Process using its ID from the org with alias "devSandbox":
$ sf service-process retrieve --service-process-id 0SPxx0000008ABC --target-org devSandbox
Retrieve a Service Process and write the artifacts to a custom directory:
$ sf service-process retrieve --service-process-id 0SPxx0000008ABC --target-org devSandbox --output-dir \
./sp-artifacts
See code: src/commands/service-process/retrieve.ts
Report issues at Salesforce CLI issues.