B2B accounts: golden records and hierarchy
A B2B go-to-market rarely targets one contact at a time — it targets the organization the contacts belong to. Orbit models that organization as a first-class account: every distinct group your SDK identifies becomes an account entity with a golden record, a member roster, and a place in a parent/child hierarchy. This page defines that entity; the CDP segments guide shows how to build audiences from it, and the CDP event model defines the underlyinggroup events the entity is projected from.
Section 1 — What an account entity is
An account materializes from the Segment-compatiblegroup call. When your
SDK (or the /api/v1/cdp/group ingest endpoint) sends a group event with a
groupId and a traits bag, each distinct non-empty groupId becomes one
account:
group call you have sent for that groupId: the most recent meaningful
value per trait wins. A later call that omits a field never erases an
established value — blanks and nulls never overwrite — so partial updates
are safe. The entity is a read-side projection over the event stream described
in The CDP event model: there is nothing extra
to ingest, no separate table to keep in sync, and the record recomputes from
your events on every read.
Membership is explicit: the contacts a group call associates with the
groupId (once identity resolution has bound them — see
Identity resolution) are that account’s
members, with first-seen and last-seen times per member.
Read the entities:
- Dashboard — Audience → Accounts: the ranked account list, with golden-record and member drill-down.
- API —
GET /api/v1/cdp/accounts/profilesfor the list (sortable bymembers,events,recent,created,name, orgroup_id; filter withmin_members; search by name or id withq) andGET /api/v1/cdp/accounts/profile?group_id=<id>for one account’s golden traits, members, parent, and children. Both are read-only.
Section 2 — Parent/child hierarchy
Accounts nest. Set a parent trait on the child account — any ofparent_group_id, parent_account_id, or parent_account (snake_case or
camelCase both resolve) — and Orbit treats the child as sitting under that
parent. The parent is read off the golden record, so the most recent
meaningful parent value you sent is the one in effect.
The detail response (GET /api/v1/cdp/accounts/profile?group_id=<id>)
returns both directions:
parent_group_id— this account’s parent, ornullfor a hierarchy root.children— the accounts whose latest parent trait points back at this one.
Section 3 — Access: owner, admin, developer
The golden record and member roster carry PII-bearing group traits and contact rows, so the surface is gated the same way as the contact profile: both the dashboard view and the API endpoints require the owner, admin, or developer role with thecontacts:read scope. Other roles receive a
403; the dashboard does not render the view for them either. Grant access by
assigning one of those roles — there is no separate accounts permission to
toggle.
Section 4 — Accounts versus Account Scores
The two surfaces under Audience complement each other but key differently and answer different questions:
Scores rank accounts; profiles define them. An account can exist as a profile
(someone sent a
group call) without a score (no scored contacts share its
company name), and a scored company can have no explicit profile (you never
sent a group call for it). When you use both, send group calls with a
name or company trait that matches the company attribute on member
contacts — the two views then describe the same organizations.
Section 5 — Using accounts in segmentation
Account entities feed the same audience machinery contacts feed:- Locate the accounts you care about. Query
GET /api/v1/cdp/accounts/profiles?min_members=5&sort=membersfor the established organizations, or browse Audience → Accounts and note thegroup_idvalues. - Collect the member contact ids. The account detail response lists them
with join and last-seen times; filter by hierarchy level with
parent_group_idor thechildrenarray. - Build the segment. Create a segment over those contacts in Audience → Segments (see CDP segments) with whatever behavioral conditions the campaign needs — event activity, lifecycle stage, or computed traits — and activate it like any other audience.
Cross-references
- The CDP event model — the
groupevents the entity is projected from. - CDP segments — building audiences from account members; includes the Account Scores ranking.
- Identity resolution — how group events bind to member contacts.
- CDP API reference — endpoint-level detail for the Account Scores endpoints.