Partner Account Entities in the Beacon Ecosystem
This guide explains the data structures and operational roles of the Account, User, Domain, and Login entities within the Social Signal Beacon ecosystem. Partners use these entities via the Partner API to provision client accounts in one shot or manage specific child resources fine-grained.
1. Account Entity (Composite Aggregate)
The Account entity (PartnerAccount) is the primary composite resource representing a partner's client account. It unites the root client identity (_id), business profile (company), associated login credentials (logins), tracking domain configurations (domains), and aggregate KPI metrics (metrics) into a single hydrated object.
Canonical Schema (PartnerAccount)
| Field | Type | Description |
|---|---|---|
_id |
string |
Account ID: The unique identifier for the client account (e.g., SDLR_D10000). Maps 1-to-1 to User ID. |
pid |
string |
Partner ID: The reselling partner who owns this account. |
company |
string (optional) |
Name of the client business. |
status |
enum |
Lifecycle status (pending, active, suspended, archived). |
logins |
array[PartnerLogin] (optional) |
List of login credentials mapped to this account (when ?expand=logins is requested). |
domains |
array[PartnerDomain] (optional) |
List of domain configurations registered under this account (when ?expand=domains is requested). |
metrics |
PartnerSummaryMetrics (optional) |
Combined traffic, lead match, and credit balance summary across all account domains (when ?expand=metrics is requested). |
2. User Entity
The User entity represents a partner's client account. It functions as the root container for identity, overall subscription plan state, API keys, and fallback event handling logic.
Canonical Schema (PartnerUser)
| Field | Type | Description |
|---|---|---|
_id |
string |
User Client ID: The unique identifier for the user account (e.g., user_123). |
pid |
string |
Partner ID: The reselling partner who owns/provisioned this client. |
email |
string |
Primary contact and authentication email for the user. |
company |
string (optional) |
Name of the client's business/dealership. |
status |
enum |
Lifecycle state: pending, active, suspended, or archived. |
domains |
array[string] |
List of active domains registered to this user account. |
defaultVisitFlow |
object (optional) |
Fallback programmatic Hono flow template to run on visitor traffic. |
defaultLeadFlow |
object (optional) |
Fallback flow template to execute when a lead match is resolved. |
Operational Role in Beacon
- Quota & Billing: Houses the billing parameters and holds credit pools.
- Logical Fallbacks: If a domain does not specify custom pipelines (
visitFlow/leadFlow), the system falls back to the User'sdefaultVisitFlowanddefaultLeadFlowconfiguration. - Access Control: Contains the API key used by the client for direct integrations.
2. Domain Entity
The Domain entity represents a single website hostname registered under a client User. It controls script enablement, visit matching criteria, credit allocations, and third-party CRM integration coordinates.
Canonical Schema (PartnerDomain)
| Field | Type | Default | Description |
|---|---|---|---|
_id |
string |
- | User Client ID: Links the domain configuration back to the parent User record. |
domain |
string |
- | Domain Name: Clean host URL (e.g., dealername.com, parsed of subpaths/protocols). |
pid |
string |
- | Partner ID matching the parent user. |
enablement |
boolean |
false |
Indicates whether beacon script event tracking is active. |
status |
enum |
active |
Lifecycle status: pending, active, suspended, or archived. |
collectLeads |
boolean |
false |
Read-only flag: Indicates if lead matching is currently authorized and running. |
instantCredits |
integer |
0 |
One-time credits allocated for identity lookup operations (only values of 0 or 10 are accepted; other values default to 0). |
weeklyCredits |
integer |
0 |
Recurring credits automatically refilled each week. |
monthlyCredits |
integer |
0 |
Recurring credits automatically refilled each month (must be one of: 0, 75, 250, 1000, 2500). |
minVisitsToMatch |
integer |
2 |
Minimum visitor visit-count threshold to trigger lead matching. |
visitFlow |
object |
null |
Programmatic flow template executed immediately on a new visitor hit. |
leadFlow |
object |
null |
Programmatic flow template executed once a visitor's identity is resolved (matched). |
metadata |
object |
{} |
Key-value settings for third-party endpoints (e.g. CRM credentials). |
Operational Role in Beacon
- Traffic Validation: When the script makes a request to the edge endpoint
/api/v2/beacon/event, the gateway verifies thedomainis active and hasenablement: true. - Visit Filtering: The
minVisitsToMatchsetting filters out casual single-page bounces. The visitor profile must register at least this many visits before the edge initiates a lead resolution query. - Credit Ingress: Resolving a lead consumes credits. The lookup checks the domain's combined credit balances (
instantCredits+ recurring balances) before initiating the match. - Delivery Integration: The
leadFlowdefines where resolved leads are sent (e.g., pushed to CRM webhooks, dispatched to Slack, or emailed).
3. Login Credential Entity
The Login Credential entity (PartnerLogin) maps email addresses and salted passwords to specific User Client IDs (_id). It controls access credentials for partner sub-users logging into dashboard interfaces.
Canonical Schema (PartnerLogin)
| Field | Type | Description |
|---|---|---|
email |
string |
Primary login email address. |
_id |
string |
Target User Client ID under the partner account. |
pid |
string |
Partner ID: The reselling partner who owns this user. |
type |
enum |
Identity role type (user, partner, admin). Defaults to user. |
4. Interaction Flow Overview
The diagram below details how the User, Domain, and Beacon services interact during visitor event processing:
sequenceDiagram
autonumber
actor Visitor as Eyeball/Visitor
participant Edge as Edge Gateway (ssedge)
participant KV as BRecord Cache (KV)
participant Engine as FlowRunner (ssmono)
participant CRM as Partner CRM / Email
Visitor->>Edge: Hits website (sends Beacon Event)
Edge->>KV: Look up Domain (enablement & status)
KV-->>Edge: Returns Domain configuration
Edge->>KV: Look up Parent User (status & credentials)
KV-->>Edge: Returns User record
alt Validation Fails (Disabled/Suspended)
Edge-->>Visitor: 204 No Content (Drop Silent)
else Validation Succeeds
Edge->>KV: Log Visit & Increment Visit Count
alt Visits < minVisitsToMatch
Edge-->>Visitor: 200 OK (Awaiting Threshold)
else Visits >= minVisitsToMatch
Edge->>Engine: Trigger Lead Resolution (consume credit)
Engine->>Engine: Run Domain.leadFlow (or User.defaultLeadFlow)
Engine->>CRM: Deliver formatted lead payload
Edge-->>Visitor: 200 OK (Lead Pushed)
end
end