CRM sub-account created from a template at signup

A new builder gets their own CRM sub-account created through the agency API with the template snapshot loaded, so their pipeline and stages exist before anyone logs in.

What it is

createSubAccountLocation posts to the agency locations endpoint with the business details, the owner's prospect info, and a snapshot id. The snapshot is the only API-supported way to get the sales pipeline and its stages into a fresh sub-account. Snapshot loads are asynchronous, so getSnapshotPushStatus is polled before reading pipelines. listSnapshots lets the operator pick or verify the template.

Also called: agency API · snapshot · new location · provisioning the CRM

See it
CRM sub-account created from a template at signup
New lead 3
Marlin Hoover
$27k
Delia Yoder
$41k
Sutter Kline
$40k
Contacted 4
Sutter Kline
$26k
Ronan Petsch
$64k
Ivy Brubaker
$63k
Estimate 4
Ivy Brubaker
$55k
Gideon Alt
$41k
Marlin Hoover
$55k
Sold 2
Marlin Hoover
$75k
Delia Yoder
$77k
Provisioning checklist: 'Sub-account created' → 'Template snapshot pushed (in progress → complete)' → 'Pipeline mapped'. Sample data — no customer information appears here.
How it works
  1. 1Signup or operator provisioning calls createSubAccountLocation with name, address, timezone and prospect info.
  2. 2The snapshot id (env default or explicit) is included on the create.
  3. 3The returned location id is stored on the organizations row.
  4. 4getSnapshotPushStatus is polled until the snapshot has landed.
  5. 5The connect step then finds the pipeline and maps stages by name.
Why we built it

Recorded in the module header: 'SNAPSHOT: pass GHL_AGENCY_SNAPSHOT_ID (env) or input.snapshotId to load our template snapshot into the new location at creation — this is the only API-supported way to get the Sales pipeline (+ stages) into a fresh sub-account. Snapshot loads are ASYNC on GHL's side; use getSnapshotPushStatus() to verify before reading pipelines.'

The problem
  • A fresh sub-account had no pipeline or stages until someone built them by hand.
  • Reading pipelines before the async snapshot landed returned nothing.
Sound familiar?
What you get
Every new builder starts from the same known-good template.
Provisioning is automatic and repeatable.
Snapshot status is checkable rather than guessed.
What's inside

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →