We have a managed package let's call it ABC. The requirement is that we want to setup demo orgs for clients but setting up the org with ABC + customization as per client needs for a demo takes up a lot of time.

We'd like to build a package of sorts that will allow us to modify it and then we store it all to a repo which can then be later used for a similar client demo.

Now, I was thinking if I could use the managed package code to create unlocked packages without a namespace (maybe?). Is this the correct approach if not, what is the best way to achieve this?

  • 1
    I can't answer the unlocked package aspect. However, using the same code base with and without a namespace is mostly possible (assuming the code base doesn't include namespace usage), but there are behavioural differences that might trip you up. For example, field sets included in the code base will allow any fields to be added when outside a namespace but only the "permitted fields" when packaged with a namespace. An alternative is to use SFDX and do customer demos based on scratch orgs, using some form of data loader. Note that this may expose your IP.
    – Phil W
    Commented Jul 1, 2020 at 7:20
  • 1
    @PhilW don't want to expose my IP. Might stick with packages.
    – d_k
    Commented Jul 1, 2020 at 9:05

1 Answer 1


Disclaimer: I am on the CumulusCI team at Salesforce.org Release Engineering.

This is one of the core use cases for CumulusCI, which is a free and open source build and orchestration tool on top of Salesforce DX.

"Configuration packs" that extend managed packages can be constructed as individual CumulusCI repos, each of which depends upon your managed package or packages, and which then deploys one or more bundles of metadata (and optionally data as well) on top of it to tailor the scratch org or other org for a specific type of demo. You can maintain an arbitrary number of such configuration packs in different repos, without modifying the underlying metadata of your application. CumulusCI can then deploy the entire pack, including the underlying managed package(s), into the org of your choice.

This approach is very similar to what's demonstrated in the final module of Build Applications with CumulusCI on Trailhead (I'm a co-author), CumulusCI for Post-Install Configurations. That module shows how to build a configuration pack on top of the managed Nonprofit Success Pack packages.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .