Flow Reference¶
CumulusCI’s suite of standard flows are grouped into various categories depending on their intended purpose.
Org Setup¶
These are the primary flows for doing full setup of an org. They typically include a flow from the Dependency Management group, a flow from either the Deployment or Install / Uninstall group, and a flow from the Post-Install Configuration group.
- [04/18/25 17:16:47] Optional dependencies are missing. Handling high volumes of
records for the ‘select’ functionality will be significantly slower, as optimizations for this feature are currently disabled. To enable optimized performance, install all required dependencies using: pip install –upgrade cumulusci[select]
dev_org¶
Description: Set up an org as a development environment for unmanaged metadata
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) flow: deploy_unmanaged
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx" and not org_config.scratch
1) task: unschedule_apex
2) task: update_package_xml
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3) task: deploy
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3.1) task: deploy
when: project_config.project__source_format == "sfdx" and org_config.scratch
4) task: uninstall_packaged_incremental
when: project_config.project__source_format != "sfdx" or not org_config.scratch
5) task: snapshot_changes
3) flow: config_dev
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
4) task: snapshot_changes
dev_org_beta_deps¶
Description: This flow is deprecated. Please use dev_org instead.
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) flow: deploy_unmanaged
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx" and not org_config.scratch
1) task: unschedule_apex
2) task: update_package_xml
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3) task: deploy
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3.1) task: deploy
when: project_config.project__source_format == "sfdx" and org_config.scratch
4) task: uninstall_packaged_incremental
when: project_config.project__source_format != "sfdx" or not org_config.scratch
5) task: snapshot_changes
3) flow: config_dev
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
dev_org_namespaced¶
Description: Set up a namespaced scratch org as a development environment for unmanaged metadata
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) flow: deploy_unmanaged
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx" and not org_config.scratch
1) task: unschedule_apex
2) task: update_package_xml
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3) task: deploy
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3.1) task: deploy
when: project_config.project__source_format == "sfdx" and org_config.scratch
4) task: uninstall_packaged_incremental
when: project_config.project__source_format != "sfdx" or not org_config.scratch
5) task: snapshot_changes
3) flow: config_dev
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
4) task: snapshot_changes
install_beta¶
Description: Install and configure the latest beta version
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) task: install_managed_beta
3) flow: config_managed
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
4) task: snapshot_changes
install_prod¶
Description: Install and configure the latest production version
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) task: install_managed
3) flow: config_managed
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
4) task: snapshot_changes
qa_org¶
Description: Set up an org as a QA environment for unmanaged metadata
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) flow: deploy_unmanaged
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx" and not org_config.scratch
1) task: unschedule_apex
2) task: update_package_xml
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3) task: deploy
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3.1) task: deploy
when: project_config.project__source_format == "sfdx" and org_config.scratch
4) task: uninstall_packaged_incremental
when: project_config.project__source_format != "sfdx" or not org_config.scratch
5) task: snapshot_changes
3) flow: config_qa
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
4) task: snapshot_changes
qa_org_2gp¶
Description: Set up an org as a QA environment using a second-generation package
Flow Steps
1) flow: install_2gp_commit
1) task: github_package_data
2) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
3) task: install_managed
2) flow: config_qa
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
3) task: snapshot_changes
qa_org_unlocked¶
Description: Set up an org as a QA environment using an unlocked package
Flow Steps
1) flow: install_unlocked_commit
1) task: github_package_data
2) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
3) task: install_managed
2) flow: config_qa
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
3) task: snapshot_changes
regression_org¶
Description: Simulates an org that has been upgraded from the latest release of to the current beta and its dependencies, but deploys any unmanaged metadata from the current beta.
Flow Steps
1) flow: install_regression
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) task: install_managed
3) task: install_managed_beta
2) flow: config_regression
1) flow: config_managed
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
3) task: snapshot_changes
Dependency Management¶
These flows deploy dependencies (base packages and unmanaged metadata) to a target org environment.
beta_dependencies¶
Description: This flow is deprecated. Please use the dependencies flow and set the include_beta option on the first task, update_dependencies. Deploy the latest (beta) version of dependencies to prepare the org environment for the package metadata
Flow Steps
1) task: update_dependencies
2) task: deploy_pre
dependencies¶
Description: Deploy dependencies to prepare the org environment for the package metadata
Flow Steps
1) task: update_dependencies
2) task: deploy_pre
Deployment¶
These flows deploy the main package metadata to a target org environment.
deploy_packaging¶
Description: Process and deploy the package metadata to the packaging org
Flow Steps
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx"
1) task: unschedule_apex
2) task: create_managed_src
3) task: update_package_xml
4) task: deploy
5) task: revert_managed_src
6) task: uninstall_packaged_incremental
deploy_unmanaged¶
Description: Deploy the unmanaged metadata from the package
Flow Steps
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx" and not org_config.scratch
1) task: unschedule_apex
2) task: update_package_xml
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3) task: deploy
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3.1) task: deploy
when: project_config.project__source_format == "sfdx" and org_config.scratch
4) task: uninstall_packaged_incremental
when: project_config.project__source_format != "sfdx" or not org_config.scratch
5) task: snapshot_changes
deploy_unmanaged_ee¶
Description: Deploy the unmanaged metadata from the package to an Enterprise Edition org
Flow Steps
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx"
1) task: unschedule_apex
2) task: update_package_xml
3) task: create_unmanaged_ee_src
4) task: deploy
5) task: revert_unmanaged_ee_src
6) task: uninstall_packaged_incremental
unmanaged_ee¶
Description: Deploy the unmanaged package metadata and all dependencies to the target EE org
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) flow: deploy_unmanaged_ee
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx"
1) task: unschedule_apex
2) task: update_package_xml
3) task: create_unmanaged_ee_src
4) task: deploy
5) task: revert_unmanaged_ee_src
6) task: uninstall_packaged_incremental
Install / Uninstall¶
These flows handle package installation and uninstallation in particular scenarios.
install_2gp_commit¶
Description: Install the 2GP package for the current commit
Flow Steps
1) task: github_package_data
2) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
3) task: install_managed
install_prod_no_config¶
Description: Install but do not configure the latest production version
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) task: install_managed
3) task: deploy_post
install_regression¶
Description: Install the latest beta dependencies and upgrade to the latest beta version from the most recent production version
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) task: install_managed
3) task: install_managed_beta
install_unlocked_commit¶
Description: Install the unlocked package for the current commit
Flow Steps
1) task: github_package_data
2) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
3) task: install_managed
uninstall_managed¶
Description: Uninstall the installed managed version of the package. Run this before install_beta or install_prod if a version is already installed in the target org.
Flow Steps
1) task: uninstall_post
2) task: uninstall_managed
Post-Install Configuration¶
These flows perform configuration after the main package has been installed or deployed.
config_apextest¶
Description: Configure an org to run apex tests after package metadata is deployed
Flow Steps
1) task: deploy_post
2) task: update_admin_profile
config_dev¶
Description: Configure an org for use as a dev org after package metadata is deployed
Flow Steps
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
config_managed¶
Description: Configure an org for use after the managed package has been installed.
Flow Steps
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
config_packaging¶
Description: Configure packaging org for upload after package metadata is deployed
Flow Steps
1) task: update_admin_profile
config_qa¶
Description: Configure an org for use as a QA org after package metadata is deployed
Flow Steps
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
config_regression¶
Description: Configure an org for QA regression after the package is installed
Flow Steps
1) flow: config_managed
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
Continuous Integration¶
These flows are designed to be run automatically by a continuous integration (CI) system in response to new commits. They typically set up an org and run Apex tests.
ci_beta¶
Description: Install the latest beta version and runs apex tests from the managed package
Flow Steps
1) flow: install_beta
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) task: install_managed_beta
3) flow: config_managed
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
4) task: snapshot_changes
2) task: run_tests
ci_feature¶
Description: Prepare an unmanaged metadata test org and run Apex tests. Intended for use against feature branch commits.
Flow Steps
0.5) task: github_parent_pr_notes
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) flow: deploy_unmanaged
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx" and not org_config.scratch
1) task: unschedule_apex
2) task: update_package_xml
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3) task: deploy
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3.1) task: deploy
when: project_config.project__source_format == "sfdx" and org_config.scratch
4) task: uninstall_packaged_incremental
when: project_config.project__source_format != "sfdx" or not org_config.scratch
5) task: snapshot_changes
3) flow: config_apextest
1) task: deploy_post
2) task: update_admin_profile
4) task: run_tests
5) task: github_automerge_feature
when: project_config.repo_branch and project_config.repo_branch.startswith(project_config.project__git__prefix_feature)
ci_feature_2gp¶
Description: Install as a managed 2gp package and run Apex tests. Intended for use after build_feature_test_package.
Flow Steps
1) flow: install_2gp_commit
1) task: github_package_data
2) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
3) task: install_managed
2) flow: config_apextest
1) task: deploy_post
2) task: update_admin_profile
3) task: run_tests
ci_feature_beta_deps¶
Description: This flow is deprecated. Please use ci_feature instead.
Flow Steps
0.5) task: github_parent_pr_notes
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) flow: deploy_unmanaged
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx" and not org_config.scratch
1) task: unschedule_apex
2) task: update_package_xml
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3) task: deploy
when: project_config.project__source_format != "sfdx" or not org_config.scratch
3.1) task: deploy
when: project_config.project__source_format == "sfdx" and org_config.scratch
4) task: uninstall_packaged_incremental
when: project_config.project__source_format != "sfdx" or not org_config.scratch
5) task: snapshot_changes
3) flow: config_apextest
1) task: deploy_post
2) task: update_admin_profile
4) task: run_tests
5) task: github_automerge_feature
when: project_config.repo_branch and project_config.repo_branch.startswith(project_config.project__git__prefix_feature)
ci_master¶
Description: Deploy the package metadata to the packaging org and prepare for managed package version upload. Intended for use against main branch commits.
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) flow: deploy_packaging
0) task: dx_convert_from
when: project_config.project__source_format == "sfdx"
1) task: unschedule_apex
2) task: create_managed_src
3) task: update_package_xml
4) task: deploy
5) task: revert_managed_src
6) task: uninstall_packaged_incremental
3) flow: config_packaging
1) task: update_admin_profile
ci_release¶
Description: Install a production release version and runs tests from the managed package
Flow Steps
1) flow: install_prod
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) task: install_managed
3) flow: config_managed
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data
4) task: snapshot_changes
2) task: run_tests
Release Operations¶
These flows are used to release new package versions.
build_feature_test_package¶
Description: Create a 2gp managed package version
Flow Steps
1) task: update_package_xml
when: project_config.project__source_format != "sfdx"
2) task: create_package_version
build_unlocked_test_package¶
Description: Create an Unlocked package version
Flow Steps
1) task: update_package_xml
when: project_config.project__source_format != "sfdx"
2) task: create_package_version
3) task: promote_package_version
release_2gp_beta¶
Description: Upload and release a beta 2gp managed package version
Flow Steps
1) task: create_package_version
2) task: github_release
3) task: github_release_notes
4) task: github_automerge_main
release_2gp_production¶
Description: Promote the latest beta 2gp managed package version and create a new release in GitHub
Flow Steps
1) task: promote_package_version
2) task: github_release
3) task: github_release_notes
release_beta¶
Description: Upload and release a beta version of the metadata currently in packaging
Flow Steps
1) task: upload_beta
2) task: github_release
3) task: github_release_notes
4) task: github_automerge_main
release_production¶
Description: Upload and release a production version of the metadata currently in packaging
Flow Steps
1) task: upload_production
2) task: github_release
3) task: github_release_notes
release_unlocked_beta¶
Description: Upload and release a beta 2gp unlocked package version
Flow Steps
1) task: create_package_version
2) task: github_release
3) task: github_release_notes
4) task: github_automerge_main
release_unlocked_production¶
Description: Promote the latest beta 2GP unlocked package version and create a new release in GitHub
Flow Steps
1) task: promote_package_version
2) task: github_release
3) task: github_release_notes
Other¶
This is a catch-all group for any flows without a designated “group” attribute in cumulusci.yml
.
push_upgrade_org¶
Description:
Flow Steps
1) flow: dependencies
1) task: update_dependencies
2) task: deploy_pre
2) task: install_managed
3) task: update_dependencies
4) task: install_managed_beta
5) flow: config_qa
1) task: deploy_post
2) task: update_admin_profile
90) task: load_sample_data