SalesOS

Developer orgs and change sets

Free, separate organizations with sample data for building and testing against the platform, and change sets that promote what you built back to the org you came from.

A developer org is a separate SalesOS organization for building and testing integrations, actions, hooks, workflows and metadata without touching real data. Promote the result with a change set or with metadata as code.

Create one

Any active user with a verified email can own up to three developer orgs. Create one under Settings → Developer → Developer orgs, with salesos devorg create "<name>", or:

POST /v1/developer-orgs   {"name": "Integration playground"}

The new org is seeded with realistic sample accounts, contacts, leads, deals, quotes with line items, activities and tasks (all on .example domains), and shows a "Developer org — not for production data" banner. It is linked to the org you created it from, which is where its change sets go.

CodeStatusMeaning
EMAIL_NOT_VERIFIED403Verify your email address first
DEVELOPER_ORG_LIMIT403You already own three, or a record limit was reached (below)

What you get

  • On any plan: the core CRM (leads, contacts, accounts, deals, documents, quotes, orders, analytics), API access (API keys, GraphQL, OAuth apps, custom actions, before-save hooks, named credentials, custom events, metadata), webhooks, workflows and flows, custom fields and objects, validation rules, and import, export and the Bulk API. Other features follow your own plan.
  • Email is delivered only to the developer who created the org; mail to anyone else is skipped.
  • Limits: 3 members and 5,000 records per object.
  • Lifetime: an org nobody uses for 60 days gets a warning email to its creator and may be deleted after 90 days (and at least 7 days after the warning). Any use resets the clock. GET /v1/developer-orgs shows each org's deletesAt.

Switch in and out

Open switches your session into the developer org; the banner's Leave developer org switches back. The same over the API or CLI:

POST   /v1/developer-orgs/{id}/open     # session now acts in the developer org
POST   /v1/developer-orgs/leave         # back to your home org
GET    /v1/developer-orgs/current       # is the session org a developer org?
DELETE /v1/developer-orgs/{id}          # delete it and all its data now
salesos devorg open <id>
salesos devorg leave

These routes are session only: API keys and OAuth tokens can't reach /v1/developer-orgs. Sign the CLI in with salesos login --email. You only ever see and manage developer orgs you own.

Change sets

A change set copies definitions from a developer org to the org it was created from. It never copies records or signing secrets.

  1. From the source org (switch back first), choose Settings → Developer → Developer orgs → Promote and pick components. This creates a draft change set.
  2. An org owner or admin of the source org validates it, then deploys it under Sandbox.
GET  /v1/developer-orgs/{id}/components
POST /v1/developer-orgs/{id}/change-sets   {"name": "Credit check", "components": [{"type": "BEFORE_SAVE_HOOK", "id": "…"}]}
POST /v1/sandboxes/{sandboxId}/change-sets/{setId}/validate
POST /v1/sandboxes/change-sets/{setId}/deploy

Creating a change set from any org other than the source org is 403 WRONG_ORGANIZATION.

Change sets use the same engine as metadata deploys, so they carry the same component types and follow the same rules:

  • Components are matched in the target by stable keys (an apiName, or object plus name), never by id. See the type table.
  • Validation checks that every reference resolves in the target (a workflow's custom action or function, a hook's custom object, a layout's fields and profile), that endpoint URLs are allowed, and whether each component will be created or updated.
  • Deployment applies everything in dependency order in one transaction: any error rolls the whole change set back.
  • New custom actions, hooks, after-save triggers and functions arrive off, with new secrets; new workflows arrive as drafts; a named credential that needs a secret arrives inactive.
  • Existing components are updated in place and keep their secret and on/off state. Nothing is deleted. To delete, use a metadata deploy with an explicit destructive list.

For repeatable promotion from source control or CI, use salesos metadata deploy instead: pull from the developer org, commit, and deploy to production with tests.

On this page