Download OrgFlow

Try OrgFlow completely free for 2 months, with no limits. No strings attached. No credit card required.

The same download and binaries are used for both trial and paid licenses.

x86 (32-bit)x64 (64-bit)
Installer package (.msi)
ZIP archive

Run the downloaded .msi file to install OrgFlow on your computer.

OrgFlow is not yet signed. When running the .msi installer, you may see warnings about running an unrecognized app or installing software from an unknown publisher. We plan to start signing our binaries and installer with a publisher certificate in the future.

By downloading and using OrgFlow you are agreeing to our End User License Agreement.

x64 (64-bit)
Installer package (.pkg)
ZIP archive

OrgFlow runs on both Intel and Apple Silicon processors.

To use the installer package:

  1. Right-click on the downloaded .pkg file and select Open from the context menu
  2. Click the Open button in the dialog box

Right-clicking is necessary because OrgFlow is not yet signed or notarized by Apple. We plan to start signing and notarizing our binaries and installer with a publisher certificate in the future.

By downloading and using OrgFlow you are agreeing to our End User License Agreement.

x64 (64-bit)
ZIP archive

Either add the orgflow executable to your PATH variable, or always run OrgFlow from the extracted directory.

By downloading and using OrgFlow you are agreeing to our End User License Agreement.

Docker images for OrgFlow can be found here:
https://hub.docker.com/r/orgflow/cli

To run OrgFlow in a Docker container interactively:

$ docker run --interactive --tty --rm orgflow/cli
$ orgflow --help

Please see our docs for more advanced Docker scenarios.

We currently publish Linux-based Docker images only. To run OrgFlow in a Docker container on Windows, your system must be configured to use Linux containers.

By downloading and using OrgFlow you are agreeing to our End User License Agreement.

OrgFlow for GitHub Actions:
https://github.com/marketplace/actions/orgflow-salesforce-devops-for-github

You are not required to use our actions in order to use OrgFlow in your GitHub Actions workflows, but they do a lot of heavy lifting for you and ensure OrgFlow is configured and invoked in a way that ensures an optimal experience in GitHub Actions.

See our demo template repository for complete sample workflows and a guided tutorial.

Our setup action downloads, installs and configures OrgFlow in your GitHub Actions workflow using a single step:

steps:
  # Download and install latest version
  - uses: orgflow-actions/setup@v1
    with:
      license-key: ${{ secrets.ORGFLOW_LICENSEKEY }}
    env:
      ORGFLOW_ACCEPTEULA: "true"
  # Run any OrgFlow command
  - run: orgflow stack:list

By installing and using OrgFlow in GitHub Actions you are agreeing to our End User License Agreement.

Frequently Asked Questions

Yes, OrgFlow requires a valid license key to run. The first time you run an OrgFlow command, you’ll be asked to either provide a valid license key or request a trial license key.

If you already have a paid subscription, enter the license key you received when starting your subscription.

To request a trial license key, simply provide your email address when prompted. A trial license key will be issued and sent to the email address provided. No credit card or other billing information is required. A trial license key lets you use OrgFlow completely free for 2 months, with no limits. To continue to use OrgFlow after your trial license expires, visit our pricing page to find the right subscription plan for your team.

A trial license key entitles you to use OrgFlow for free for 2 months (also for production/commercial use) with an unlimited number of stacks and orgs. This is essentially equivalent with our Enterprise plan, except without the SLA for technical support. We will provide technical support to you during your trial period, but without a guaranteed SLA or response time.

Download OrgFlow from this page and get started. The first time you run an OrgFlow command, you’ll be asked to either provide a valid license key or request a trial license key.

To request a trial license key, simply provide your email address when prompted. A trial license key will be issued and sent to the email address provided. No credit card or other billing information is required. A trial license key lets you use OrgFlow completely free for 2 months, with no limits.

No, you only need to provide a valid email address to which the free 2-month trial license should be sent.

Whether you have a paid subscription or want to try OrgFlow for free, you download the product from this page. The same download and binaries are used for both trial and paid licenses.

To use OrgFlow, you also need:

  • a Salesforce account (see below for more information on supported Salesforce editions).
  • a Git repository, either one offered by a commercial provider (such as GitHub, Azure DevOps or Bitbucket) or a self-hosted one that you set up and manage yourself. OrgFlow supports any standard Git repository.

We do not provide Salesforce accounts and Git repositories as part of our services.

OrgFlow uses the Metadata API to connect to your Salesforce orgs, in order to flow metadata changes between Salesforce and your Git repository.

OrgFlow supports any Salesforce org where the Metadata API is available, including:

  • Enterprise Edition
  • Unlimited Edition
  • Performance Edition
  • Developer Edition
  • Professional Edition with the Web Services API add-on enabled

OrgFlow requires:

  • An operating system supported by .NET 6.0. Please refer to Microsoft's documentation on supported releases for each OS.
  • Git version 2.25 or later.

When running OrgFlow from our Docker images, all requirements are already provided by the images.

Visit our support page to get in touch with us for technical support.

Our installer packages and binaries are not yet digitally signed or notarized.

  • On Windows, when running the .msi installer package you may see warnings about running an unrecognized app or installing software from an unknown publisher.
  • On macOS, specific steps are necessary (see installation instructions for macOS above) when running the .pkg installer package, in order to bypass Gatekeeper in macOS Catalina or later.

We plan to start signing and notarizing our binaries and installer packages with a publisher certificate in the future.

Not currently. However, installation through Homebrew will be provided in the near future.

Not currently. Installation through Windows package managers such as Chocolatey or winget may be provided in the future. If this feature is important to you, please reach out to us at support@orgflow.io.

Not currently. Installation through Linux distro package managers may be provided in the future. If this feature is important to you, please reach out to us at support@orgflow.io.

Change Log

VersionRelease notes
1.8.1 (2022-10-01)

Fixes and improvements

  • 2851 - Fixes an issue where Salesforce authentication prompts could appear multiple time during a command.
  • Fixes an issue where JSON output of md:stats would fail.
  • Improves command start-up time by parallizing update, Git, and license checks.
  • Improves normalization of the Object Translation type to reduce merge conflicts.
  • Improves progress output during env:list.
1.8.0 (2022-09-04)

Introducing Environment Tags

Tags are arbitrary name/value pairs that you can set on the environments in your OrgFlow stack. Their meaning and use are completely up to you and the processes and pipelines you build around them.

Tags are a simple but powerful new automation feature of OrgFlow. They allow you to develop automation that treats environments differently without having to hard-code environment names. Instead, you can set different tags on different environments and base your automation logic on those tags.

See our documentation on environment tags for more details.

New features and functionality

  • 2540 - env:tags:set allows you to set tags on environments (docs)
  • 2541 - env:tags:delete allows you to delete tags from environments (docs)
  • 2845 - env:list has a new --withTags argument to filter environments based on tags, and a new --useRegex argument to use regular expression syntax in tag values
  • 2846 - env:list has a new --nameOnly argument to print only environment names

Fixes and improvements

  • 2844 - Fixes an issue where the CLI would retry indefinitely on transient errors when calling licensing service instead of falling back to using a cached verification token
1.7.2 (2022-08-20)

Fixes and improvements

  • Improves cancellation behavior when CLI receives SIGTERM without preceding SIGINT (improves compatibility with Azure Pipelines)
1.7.1 (2022-07-21)

Fixes and improvements

  • Fixes an issue that prevented the CLI from checking for available updates
1.7.0 (2022-07-20)

New features and functionality

  • 2652 - env:flowout and env:flowmerge commands now support an --allOrNothing option to ensure that either all detected changes are deployed successfully, or nothing at all (see documentation for more information)

Fixes and improvements

  • Fixes an issue where current prompts and messages would sometimes appear to be printed too far up the terminal window
1.6.1 (2022-06-16)

Fixes and improvements

  • 2839 - Enhanced Salesforce domains are now fully supported. When a "my" domain is configured as the base sign-in URL on the stack, sandbox sign-in URLs will now be correctly inferred. Example: for company Acme and sandbox BETA, sign-in URL will be inferred to either Acme--BETA.my.salesforce.com or Acme--BETA.sandbox.my.salesforce.com depending on whether enhanced domains for sandboxes were enabled at the time of create/refresh.
1.6.0 (2022-05-27)

Introducing Snapshots and Rollback

Snapshots automatically save copies of important state data about your Git repository and Salesforce metadata at key points, to allow an environment to later be rolled back to one of those points. Snapshots are automatically created after every successful inbound and outbound flow (starting from version 1.5.0).

Rollback allows you to roll back Salesforce metadata (in your Git branch and your Salesforce org) to match the state it was in at the time a snapshot was taken.

New features and functionality

  • 2813 - env:snapshot:list allows you to list all the snapshots for a given environment
  • 2814 - env:rollback allows you to roll back the metadata for a given environment to match the state it was in at the point of the target snapshot
  • 2818 - env:snapshot:delete allows you to delete snapshots from a given environment

Fixes and improvements

  • 2812 - The output of the env:flowin, env:flowout, and env:flowmerge commands now include any snapshot numbers that were created
1.5.0 (2022-05-13)

Snapshots

Starting with this release, snapshots are saved after successful inbound and outbound flows.

New features and functionality

  • 2834 - Adds --waitForLock argument to allow waiting for locked environments to be released (applies to env:flowin, env:flowout, env:flowmerge, env:create and env:delete commands)
  • 2810 - Inbound flow now creates a snapshot after successful completion
  • 2810 - Outbound flow now creates a snapshot after successful completion

Fixes and improvements

  • 2667 - CLI now continuously prints test failures to STDERR during deployments and test runs
  • 2672 - CLI now prints a link to the corresponding test execution UI in Salesforce when executing Apex tests
  • 2820 - env:flowout and env:flowmerge commands now print each deployment attempt to STDERR regardless of --output argument
  • 2821 - env:flowout and env:flowmerge commands now print result details to STDOUT even if flow is unsuccessful
  • 2822 - When using --output=json and STDOUT is redirected, pretty results are now also printed to STDERR for better observability
  • 2829 - env:flowmerge command now pushes merge result to remote only if outbound flow was successful
1.4.1 (2022-04-12)

Fixes and improvements

  • Fixes issue in env:flowout and env:flowmorge commands where --jUnitTo could not be specified if --testLevel was not also specified
  • Fixes issue in env:flowmorge command where --testLevel=runSpecifiedTests and --tests could not be specified together
  • Fixes various UX issues around progress display
  • 2231 - Fixes issue where locally saved credential files could be orphaned when a stack is deleted
  • 2623 - Fixes issue where some instances of your license key might not get correctly masked in log files
  • 2625 - Improves jUnit output files to better comply with the expected schema
  • 2797 - Fixes issue where an outbound flow might fail to exclude nested components
  • 2806 - Fixes issue where inbound flow could record incorrect environment parity hashes in the state store
1.4.0 (2022-03-24)

New features and functionality

  • 2387 - Adds support for cancellation via several additional POSIX signals (SIGINT, SIGQUIT, SIGHUP, SIGTERM) to maximize compatibility with different hosting environments
  • 2387 - Adds support for faster deployment cancellation via the ORGFLOW_DEPLOYMENTS__ENABLEFASTCANCELLATION environment variable for cases where the host imposes time limits on cancellation, e.g. build agents

Fixes and improvements

  • 2679 - Fixes issue where env:create and sb:create commands would not include the sandbox name in the output
  • 2771 - Fixes issue where inbound excluded components might be recorded incorrectly in the state store
  • 2783 - Fixes issue where interactive exclude could fail after submitting selection
  • 2794 - Improves rollback logic during env:flowmerge in cases where the merged branch could not be pushed to the remote repo
  • 2795 - Improves env:flowmerge command output to include failed tests
  • 2796 - Fixes issue where env:flowout and env:flowmerge commands would print "validation-only" on a non-validation only deployment, and vice versa
1.3.1 (2022-02-25)

Fixes and improvements

  • 2770 - Fixes issue where time token in log file paths would not be correctly substituted
  • 2788 - Fixes issue where CLI could sometimes fail with exit code 7 when many instances were started simultaneously
  • 2790 - Fixes issue CLI download packages for Windows were missing required dependency Microsoft.Azure.Cosmos.ServiceInterop.dll
1.3.0 (2022-02-01)

New features and functionality

  • 2459 - Adds ability for Git credentials to be saved locally on the current device
  • 2764 - Adds ability to specify the format of warning and error messages
1.2.5 (2022-01-28)

Fixes and improvements

  • 2703 - Fixes issue where stack:create would not commit any metadata if --archivePath began with a /
  • 2745 - Fixes issue where env:flowout and env:flowmerge would not return the correct exit code if there were any test failures during a check-only deployment
  • 2762 - Fixes issue where stack:create could delete a pre-existing stack with the same name
1.2.3 (2021-12-15)

Fixes and improvements

  • 2708 - Fixes issue where sb:list --output=json incorrectly labelled a property in the output
  • 2709 - Fixes issue where env:flowin --output=json could fail when printing output
1.2.2 (2021-12-08)

Fixes and improvements

  • 2666 - Fixes issue where UserCriteria metadata might not be normalized as expected
  • 2669 - Fixes issue where reading or writing user data could conflict with concurrent processes
  • 2673 - Fixes issue where auth:key:save --clear would require a valid encryption key

Other notes

This release also moves the CLI from .NET 5 to .NET 6. This change should not impact you, but it may be worth while noting that the orgflow/cli Docker image is now built upon the dotnet/aspnet:6.0 image (as opposed to the dotnet/aspnet:5.0 image).

1.2.1 (2021-11-24)

Fixes and improvements

  • 2280 - Fixes issue where conflict resolution during inbound flow could result in missing commits in Git repository
  • 2599 - Adds more detailed diagnostic logging during inbound flows
  • 2626 - Fixes issue where env:test and tool:test JSON outputs did not contain information about test classes executed
  • 2627 - Fixes issue where env:create would throw an exception when using JSON output format
  • 2628 - Fixes issue where stack:create include prompt would incorrently require at least one selection
  • 2629 - Changes sb:list JSON output to be an array
  • 2630 - env:delete no longer deletes the sandbox or branch by default
  • 2649 - Improves tabular output format of stack:list
  • 2650 - stack:create output now contains more information about the created stack
  • Improves memory efficiency during metadata ZIP file extraction
1.1.2 (2021-10-25)

Fixes and improvements

  • 2598 - Fixes issue where log file paths could include invalid characters
  • 2612 - Fixes issue where stack:create could fail if stderr or stdinput was redirected
  • 2613 - Fixes issue where md:gitcommit would always print output in the 'pretty' format
  • 2614 - Fixes issue where md:retrieve would always print output in the 'pretty' format
  • 2615 - Fixes issue where stack:create could generate incorrect include specs
1.1.1 (2021-10-20)

Fixes and improvements

  • 2596 - Fixes issue where undeployable component records could be corrupted during an outbound flow
1.1.0 (2021-10-14)

New features and functionality

  • 2565 - Adds ability to output test results in JUnit format to env:flowmerge
  • 2573 - Adds tokenization to log file paths

Fixes and improvements

  • 2232 - Adds masking of sensitive values to logging
  • 2410 - Updates Salesforce Connected App information
  • 2416 - Updates --include argument on stack:create to allow multiple selection
  • 2420 - Fixes issue where env:test might not use stored Salesforce credentials (if any)
  • 2448, 2449, 2450, 2451 - Improves metric collection for product improvement and troubleshooting
  • 2485 - Removes outdated information from Windows installer
  • 2498 - Fixes issue where an exception could be thrown during the deployment process
  • 2514 - Fixes issue where stack:create could prompt for values that have already been provided
  • 2547 - Fixes issue where auth:git:save could fail if no password is provided
  • 2551 - Fixes issue where env:create could create an invalid environment record in the state store
  • 2552 - Fixes issue where Windows installer could suggest an incorrect installation folder
1.0.4 (2021-09-17)

Fixes and improvements

  • 2386 - Improves normalization engine to support conditional filtering, and updates normalization rules for Global Value Sets to support inactive value normalization
  • 2486 - Updates text in macOS installer dialogs
  • 2498 - Fixes issue where undeployable folderized components would cause failure during env:flowout
  • 2511 - Fixes issue where env:unlock would incorrectly require an encryption key
  • 2513 - Fixes issue where stack:delete could fail if console input was redirected
1.0.3 (2021-08-28)

First public release 🎉

Icon For Arrow-up