Introduction to OrgFlow
OrgFlow is a DevOps tool that adds modern version control, deployment, and automation practices to the Salesforce platform.
It helps you and your team effectively manage environments, deployments, metadata changes, automated testing, and metadata backups.
Feature overview
OrgFlow provides all the functionality you need to build, manage, automate and operate a full end-to-end Salesforce DevOps process for the vast majority of scenarios. For very advanced and customized use cases, OrgFlow is designed to be flexible and extensible, so you can script, automate, integrate and compose it into wider overall Salesforce DevOps workflows.
Here are some things you can do with OrgFlow:
- Manage your workspace and its members
- Manage your Salesforce environments
- Continuously sync your Salesforce orgs with branches in your Git repository
- Enjoy a granular version history and continuous backup of your Salesforce metadata
- Flow metadata changes between environments
- Detect and resolve merge conflicts
- Roll back Salesforce environments to an earlier point in time
- Run Apex tests
- Run recurring DevOps operations unattended using schedules
- Use an intuitive web-based UI for day-to-day operations
- Use a cross-platform CLI for scripting and automation
- Securely store and share encrypted Git and Salesforce credentials
- Integrate OrgFlow with your favorite CI/CD platform
- Manage Salesforce upgrades and API versions
Architecture overview
OrgFlow consists of three parts — OrgFlow Web, OrgFlow CLI, and OrgFlow Cloud — which play different roles for different purposes, and work together to provide all of OrgFlow's functionality. OrgFlow integrates with, and coordinates between, your Salesforce environments, your Git repository and (optionally) your CI/CD platform, to enable full end-to-end true Git-based DevOps for Salesforce, as illustrated in this diagram:
OrgFlow Web
OrgFlow Web is the main entry point to OrgFlow.
It is a web application that allows you to access the full power of OrgFlow from within a web browser. When you run Salesforce DevOps workloads from within OrgFlow Web, all metadata processing (such as retrieving and deploying metadata, detecting changes, and committing to Git) is performed on our infrastructure.
This makes OrgFlow Web a low-code to no-code solution with a very low barrier of entry, and not much of a learning curve. There's nothing to download and install — all you need is a web browser.
OrgFlow CLI
OrgFlow CLI enables more advanced or technical use cases for OrgFlow.
It is a cross-platform command line tool, available for macOS, Windows and Linux, that you can download and run on devices and infrastructure outside of OrgFlow's domain. As a command line tool, OrgFlow CLI allows you to script, automate, integrate and orchestrate bigger overall processes. Think of it as an optional companion that you can use alongside OrgFlow Web.
When you use OrgFlow CLI, all metadata processing is performed locally on the device where you are running it.
This makes OrgFlow CLI a pro-code solution, ideal for scenarios with strict security and compliance requirements, or when you simply want to integrate and compose OrgFlow into a wider overall DevOps process. For example, you could run the OrgFlow CLI in a third-party CI/CD platform (such as GitHub Actions) to validate the deployment and Apex test coverage of pull requests before they are merged.
OrgFlow Cloud
OrgFlow Cloud is what we call all the behind-the-scenes backend services and infrastructure that power OrgFlow.
It is a collection of cloud services that do things like store all your workspace data, execute jobs that you start from OrgFlow Web, send email alerts, and keep track of the state of all your environments.
As a user you won't really interact with OrgFlow Cloud directly, but both OrgFlow Web and OrgFlow CLI use it behind the scenes to enable the kind of seamless, stateful coordination of your Salesforce orgs and the branches in your Git repository that gives OrgFlow its magic.
Salesforce and Git
These are the only two things that you need to bring yourself.
If you're reading this you probably already have a Salesforce org. You might already have a Git repository too, but if not, you'll need to create one. OrgFlow supports any standard Git repository so long as it can be accessed from our infrastructure. This includes any commercial Git provider such as GitHub, Azure Repos, GitLab, Bitbucket and so on, as well as self-hosted repositories that you might be running on internal infrastructure.
You can even use a Git repository that is not accessible to the public Internet, but then you will need to use the OrgFlow CLI to run your workloads on a device that can connect to the repository.
Git at the core
In other Salesforce DevOps tools boasting Git version control features, Git is often treated as an external and optional nicety — just another source or target for metadata comparisons or copy/paste change migrations. OrgFlow is different because it makes Git a core and required component of your Salesforce DevOps workflow.
By making Git a core component at the center of all metadata operations, OrgFlow is able to leverage its power to provide some things that are conspicuously missing from Salesforce's built-in change management and deployment story:
- Automatic change detection in all Salesforce orgs (not just for Developer sandboxes with source tracking enabled)
- Branching and merging of your metadata codebase to allow development in temporary isolation, followed by controlled integration and deployment
- Pull requests to enable collaborative peer review and automated validation of changes
- Conflict detection and resolution to ensure that changes never silently overwrite other changes
- Metadata backup with full point-in-time rollback capabilities
- Version history that shows exactly what was changed, when and by whom — line by line, all the way back to when you started using OrgFlow
In OrgFlow, there are no direct org-to-org comparisons or deployments. Instead, each Salesforce org is paired up with, and continuously kept in sync with, a backing Git branch, and metadata changes are flowed between orgs by merging between their Git branches.
This means there are no copy/paste semantics in any part of OrgFlow's change management — every change is always done using some form of Git merge, and there is never any risk of changes made in one place inadvertently overwriting (clobbering) those made in another place.
For example, if the same line in the same metadata component was changed in different ways in two different orgs, and you flow changes from one org to the other, this is detected by Git and raised as a merge conflict. Some merge conflicts can be intelligently resolved by OrgFlow, because it possesses a degree of semantic understanding of Salesforce metadata structure that Git does not. Other conflicts must be resolved by a user in your workspace — but OrgFlow provides the tools to make this easy and efficient.
It's important to point out that, even though it plays a central role, your Git repository is never hidden or abstracted away from you, and OrgFlow never takes full ownership or requires exclusive control of your repository. Your Git repository remains fully in your control, you are encouraged to commit and push changes to it as you see fit, and OrgFlow is designed to gracefully integrate your commits with its own.
Start for free
Each OrgFlow subscription includes a limited amount of free resources. This allowance should be enough to get you up and running, and use OrgFlow to run Salesforce DevOps for a small team.
Additional resources are available on a Pay-as-you-go basis, so you can scale up gradually as your operations grow.
Learn more
See our quick start guide if you want to dive right in.
If you want some more background, read about some core concepts or explore the OrgFlow CLI.
If you're feeling curious about how OrgFlow can work within the context of an external CI/CD platform, we have a demo repo for GitHub Actions that can give you an idea and some inspiration (though we'd only recommend this once you already have a solid understanding of some of the more basic things).