CumulusCI configuration for fully automated Nonprofit Cloud scratch org setup
Forgive me for the terrible pun. I can’t resist.
One of the challenges of learning (or teaching!) the new Salesforce Nonprofit Cloud is that the best way to understand it is to get your hands on it. Trial orgs are helpful, but they’re fixed snapshots - and once you’ve made a mess of one, you can’t easily rewind and start fresh.
So I put together something to support my own exploration and development on top of NPC: a repeatable, automated way to spin up a clean Nonprofit Cloud scratch org with core features enabled. Think of it as a DIY “NPC trial org,” but disposable, totally under your control and set up with a single command, no manual configuration.
This project isn’t affiliated with Salesforce, and it’s still very much a work in progress, but it’s already useful for exploration, demos, and hands-on learning.

With a single command, you can create a scratch org that has:
Grantmaking is on deck next but requires a few extra setup steps that I’m still ironing out.
Under the hood, the project uses CumulusCI to configure the org and deploy metadata. If you’ve never touched CCI before, start here. There is a bit of one-time setup, but the instructions in the docs walk you through everything.
Once you’ve installed CumulusCI, creating an org is as simple as:
cci org scratch dev explore --default
or:
cci flow run dev_org
Then open your shiny new org with:
cci org browser
There’s also a flow for people who want to try out the Volunteer Management Quick Start package from Salesforce Solution Engineering:
cci flow run volunteer_quick_start_org
This one deploys metadata that overwrites some standard configuration, so please don’t run it against anything you care about—scratch orgs only!
Right now, the org comes with feature enablement and configuration, but not much in the way of sample data. And Nonprofit Cloud is so much easier to explore with meaningful records—donors, volunteers, job positions, program participants, payments, allocations, all the good stuff.
If you love building sample data sets (or you have strong opinions about what a good NPC data model looks like), I’d love your help. Contributions, issues, and ideas are all welcome.
You can check out the project here: npc-exploration
I hope this is helpful for anyone doing discovery, learning NPC for the first time, or trying to understand how all the platform pieces fit together. And if you spot ways to make it better or want to contribute some data, reach out anytime.