Loading

Revenue Cloud Advanced Approvals: Cannot deploy or package Flow Orchestration with User, Group, or Queue assignee type

Publish Date: May 26, 2026
Description

This article explains why a Flow Orchestration approval step configured with an assignee type of User, Group, or Queue cannot be deployed or included in a managed package, and how to adjust the configuration so the orchestration can be deployed successfully across orgs.

When an Approval Designer creates an approval step in a Flow Orchestration and selects an assignee type of User, Group, or Queue (including Public Groups), the orchestration can be saved and activated successfully in the source org. However, when the same orchestration is deployed to another org or included in a managed package, deployment fails with the warning: “You can't package an orchestration that contains a step with assignee type set to User, Group, or Queue.”

This limitation exists because Salesforce does not allow hard-coded User, Group, or Queue record IDs inside a packaged orchestration. These IDs are not portable across orgs, and even Public Groups are treated as Group-based references under this restriction. As a result, any orchestration step that directly references these assignee types becomes non-deployable in managed packages.

Resolution

Reconfigure each blocked approval step to use the Resource assignee type with a text variable that holds the username, Group API name, or Queue API name at runtime. The Resource assignee type replaces the older User Resource, Group Resource, and Queue Resource types and is the only assignee model supported for deployment and packaging.

  1. Open the Flow Orchestration in Setup > Process Automation > Flows, then open the orchestration that contains the blocked approval step.
  2. In the orchestration, select the approval step that currently uses User, Group, or Queue as the assignee type.
  3. In the step's Assignee section, change Assignee Type from User, Group, or Queue to Resource.
  4. In the Manager column of the toolbox, click New Resource and create a Text variable. Name it to match what the step needs to resolve (for example, ApproverUserName, ApproverGroupApiName, or ApproverQueueApiName). Set Data Type to Text and select Available for input and Available for output.
  5. Set the variable's default value to one of the following exact strings, not a record ID:
  6. For a User assignee: the Username [Username] of the approver, for example approver@example.com.
  7. For a Public Group assignee: the Group API name [DeveloperName] of the Public Group, for example Deal_Desk.
  8. For a Queue assignee: the Queue API name [DeveloperName] of the Queue.
  9. In the approval step, set Assignee Resource to the new text variable.
  10. If the assignee value must be computed at runtime (for example, the manager of the Last Modified By user), add a Background Step before the approval step that runs an autolaunched flow. In that flow, use Get Records on the User [User] object to retrieve the target user, then assign the Username [Username] field to the text variable. Do not use the $User global variable — it evaluates to the Automated Process User in system context and approval steps cannot be assigned to the system user.
  11. Save and activate the orchestration.
  12. Deploy or package the orchestration: Setup > Deploy > Outbound Change Sets, or Setup > Package Manager for managed packages. Confirm no warning about hard-coded User, Group, or Queue assignees appears.
  13. Confirm the issue is resolved by deploying the change set or installing the package in the target org, submitting a record for approval, and verifying that the assigned approver receives the approval work item in the Approvals app.

Note: This restriction is by design in Flow Orchestration. A Public Group is treated as a Group, so selecting a Public Group as the assignee type also triggers the warning. Storing the API name (DeveloperName) in a text resource — not the 15- or 18-character record ID — is the supported pattern, because API names are portable across orgs while record IDs are not.

Additional Resources

Advanced Approvals

Knowledge Article Number

005385087

 
Loading
Salesforce Help | Article