mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-30 03:09:50 +08:00
9.1 KiB
9.1 KiB
Party Model (Industry Cloud) Data Model Template
Pre-built data model for Salesforce Party Model used in Industry Clouds (Financial Services Cloud, Health Cloud, etc.) using flowchart LR format with color coding.
Objects Included
| Object | Type | Description |
|---|---|---|
| Account | STD | Person or Business accounts |
| Contact | STD | Individual contacts |
| AccountContactRelation | STD | Account-Contact junction (ACR) |
| AccountContactRole | STD | Role-based relationship |
| ContactContactRelation | Managed | Contact-to-Contact relationships |
| AccountAccountRelation | Managed | Account-to-Account relationships |
Query Org Metadata (Recommended)
Enrich diagram with live org data:
python3 ../../scripts/query-org-metadata.py \
--objects Account,Contact,AccountContactRelation,AccountContactRole \
--target-org myorg
Mermaid Template (Preferred)
Left-to-right flowchart with color coding.
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
%% ═══════════════════════════════════════════════════════════════
%% PARTY MODEL (INDUSTRY CLOUD) DATA MODEL
%% LEGEND: LK = Lookup (-->), MD = Master-Detail (==>)
%% Colors: Blue = Standard, Orange = Custom, Green = External
%% ═══════════════════════════════════════════════════════════════
%% Core Party Objects
Account["Account<br/>(count)"]
Contact["Contact<br/>(count)"]
%% Standard Relationships
ACR["AccountContactRelation<br/>(count)"]
ACRole["AccountContactRole<br/>(count)"]
%% Industry Cloud Extensions (Managed)
CCR["ContactContactRelation<br/>(count)"]
AAR["AccountAccountRelation<br/>(count)"]
%% Standard Account-Contact
Account -->|"LK"| Contact
Account -->|"LK"| ACR
Contact -->|"LK"| ACR
%% Opportunity Roles
Account -->|"LK"| ACRole
Contact -->|"LK"| ACRole
%% Contact-to-Contact (FSC/Health)
Contact -->|"LK"| CCR
Contact -->|"RelatedContact"| CCR
%% Account-to-Account (FSC/Health)
Account -->|"LK"| AAR
Account -->|"RelatedAccount"| AAR
%% Standard Objects - Sky Blue
style Account fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Contact fill:#bae6fd,stroke:#0369a1,color:#1f2937
style ACR fill:#bae6fd,stroke:#0369a1,color:#1f2937
style ACRole fill:#bae6fd,stroke:#0369a1,color:#1f2937
style CCR fill:#bae6fd,stroke:#0369a1,color:#1f2937
style AAR fill:#bae6fd,stroke:#0369a1,color:#1f2937
Key Concepts
Person Accounts vs Business Accounts
| Type | RecordType | IsPersonAccount |
|---|---|---|
| Business | Business_Account | false |
| Person | Person_Account | true |
Person Accounts merge Account + Contact into single record.
AccountContactRelation (ACR)
- Indirect relationship between Account and Contact
- Enables many-to-many Account↔Contact
- Has
Rolesmulti-select picklist IsDirectflag indicates primary relationship
Industry Cloud Extensions
| Object | Cloud | Purpose |
|---|---|---|
| ContactContactRelation | FSC, Health | Family/household relationships |
| AccountAccountRelation | FSC, Health | Business relationships |
| FinancialAccount | FSC | Financial accounts |
| HealthCloudGA__EhrPatient__c | Health | Patient records |
Person Account Model
Shows Person Account relationships:
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
PersonAccount["Account<br/>(IsPersonAccount=true)"]
ACR["AccountContactRelation"]
CCR["ContactContactRelation"]
PersonAccount -->|"Indirect ACR"| ACR
PersonAccount -->|"Person-to-Person"| CCR
style PersonAccount fill:#bae6fd,stroke:#0369a1,color:#1f2937
style ACR fill:#bae6fd,stroke:#0369a1,color:#1f2937
style CCR fill:#bae6fd,stroke:#0369a1,color:#1f2937
Financial Services Cloud Extension
%%{init: {"flowchart": {"nodeSpacing": 50, "rankSpacing": 80}} }%%
flowchart LR
Account["Account<br/>(count)"]
Contact["Contact<br/>(count)"]
FinAcct["FinancialAccount<br/>(count)"]
FinAcctRole["FinancialAccountRole<br/>(count)"]
CCR["ContactContactRelation<br/>(count)"]
Account -->|"LK"| FinAcct
FinAcct ==>|"MD"| FinAcctRole
Contact -->|"LK"| FinAcctRole
Contact -->|"LK"| CCR
%% Standard - Sky Blue
style Account fill:#bae6fd,stroke:#0369a1,color:#1f2937
style Contact fill:#bae6fd,stroke:#0369a1,color:#1f2937
%% FSC Managed - Orange (treated as custom)
style FinAcct fill:#fed7aa,stroke:#c2410c,color:#1f2937
style FinAcctRole fill:#fed7aa,stroke:#c2410c,color:#1f2937
style CCR fill:#fed7aa,stroke:#c2410c,color:#1f2937
ASCII Fallback
┌─────────────────────────────────────────────────────────────────────────────┐
│ PARTY MODEL (INDUSTRY CLOUD) DATA MODEL (L→R) │
│ Legend: LK = Lookup (-->), MD = Master-Detail (==>) │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────┐ ┌──────────────────────────┐
│ ACCOUNT │──────────── LK ─────────────>│ ACCOUNT_CONTACT_RELATION │
│ (count) │ │ (count) │
└──────┬───────┘ └────────────┬─────────────┘
│ │
│ LK │ LK
▼ │
┌──────────────┐ │
│ CONTACT │<─────────────────────────────────────────┘
│ (count) │
└──────┬───────┘
│
│ LK (both sides)
▼
┌──────────────────────────┐
│ CONTACT_CONTACT_RELATION │ (FSC/Health Cloud)
│ (count) │
└──────────────────────────┘
┌──────────────┐ ┌──────────────────────────┐
│ ACCOUNT │──────────── LK ─────────────>│ ACCOUNT_ACCOUNT_RELATION │
│ (parent) │ │ (count) │
└──────────────┘ └──────────────────────────┘
▲ │
└───────────────── RelatedAccount ──────────────────┘
Key Relationships Summary
| Parent | Child | Type | Behavior |
|---|---|---|---|
| Account | Contact | LK | Primary account |
| Account | AccountContactRelation | LK | Indirect relationships |
| Contact | AccountContactRelation | LK | Indirect relationships |
| Account | AccountContactRole | LK | Opportunity roles |
| Contact | AccountContactRole | LK | Opportunity roles |
| Contact | ContactContactRelation | LK | Person-to-person |
| Account | AccountAccountRelation | LK | Business-to-business |
Limits & Considerations
| Limit | Value |
|---|---|
| ACR per Account | No hard limit |
| ACR per Contact | No hard limit |
| Roles per ACR | Multi-select (limited by picklist size) |
| Person Account fields | Merged Account + Contact fields |
Industry Cloud Packages
| Cloud | Key Objects |
|---|---|
| Financial Services | FinancialAccount, FinancialAccountRole, Securities, Holdings |
| Health Cloud | CarePlan, CareProgram, EhrPatient, Medication |
| Manufacturing | SalesAgreement, RebateProgram, VisitPlan |
| Consumer Goods | RetailStore, StoreProduct, Promotion |
Best Practices
- Use
flowchart LR- Left-to-right flow for readability - Keep objects simple - Name + record count only
- Replace
(count)placeholders - With actual counts from query - Add LDV indicator - For objects >2M records:
LDV[~4M] - Color code object types - Blue=Standard, Orange=Custom/Managed, Green=External