Solution 05: PrecisionParts Global Manufacturing
AI-Generated Content — Use for Reference Only
This content is AI-generated and has only been validated by AI review processes. It has NOT been reviewed or validated by certified Salesforce CTAs or human subject matter experts. Do not rely on this content as authoritative or completely accurate. Use it solely as a reference point for your own study and preparation. Always verify architectural recommendations against official Salesforce documentation.
Worked Solution
This is a reference solution for Scenario 05: PrecisionParts Global Manufacturing. Attempt the scenario paper first before reviewing. Use the 9 Essential Artifacts and Five-Finger Method as your framework.
Assumptions
- Budget authority for MuleSoft as part of the $4.5M Phase 1 investment
- Hyperforce available in the EU (Frankfurt) for data residency
- Experience Cloud for dealer portal (not custom-built)
- AWS IoT Core / Timestream remains system of record for raw sensor data
- MuleSoft Anypoint replaces SAP PI/PO as middleware
- China PIPL addressed via cross-border security assessment (not a separate org) given 580-user scale and “One PPG” mandate
Key Architectural Decisions
AD-1: Single Org with Hyperforce (EU Data Residency)
Decision: Single Salesforce org on Hyperforce with EU (Frankfurt) data residency.
I chose single org because it directly supports the “One PPG” mandate — unified global dealer view, consolidated pipeline, single territory management. Hyperforce Frankfurt satisfies GDPR. Global users access the same org with acceptable CRM latency. MuleSoft’s EU Runtime Plane must be explicitly configured for strict GDPR data processing compliance.
Rejected multi-org because it would require cross-org data sync for global dealer groups, duplicate the product catalog, triple SAP integration complexity, and make the global dealer health score nearly impossible in real-time. Adds $1-2M ongoing integration cost the budget cannot absorb.
China PIPL: Requires a security assessment for cross-border transfer, not mandatory in-country storage. PPG completes the standard government assessment and implements field-level encryption on Chinese PII. Fallback: Chinese Hyperforce region in Phase 2 (low-probability risk for B2B manufacturer with no consumer PII).
AD-2: External Data Lake for IoT + Summarized Data in Salesforce
Decision: Keep raw IoT data in AWS Timestream. Push daily/weekly aggregates into Salesforce custom objects for CRM correlation.
I chose external storage because 210M sensor readings/year far exceeds Salesforce storage economics and query limits. Platform storage alone would exceed $500K/year. Timestream handles time-series queries natively with 90-day hot / 2-year warm retention matching PPG’s policy.
CRM pattern: MuleSoft pulls hourly/daily aggregates from Timestream into Equipment Health Summary records. Dashboard widgets show equipment status; automated alerts create Cases on threshold breaches. Deep analysis via embedded Grafana dashboard through an LWC iframe.
AD-3: MuleSoft Anypoint as Unified Middleware + Experience Cloud Dealer Portal
Decision: MuleSoft replaces SAP PI/PO; Experience Cloud (PRM licenses) powers the global dealer portal.
MuleSoft consolidates all integration through one platform — pre-built SAP S/4HANA connectors (OData + RFC/BAPI), Salesforce connector for bidirectional sync, and Anypoint MQ for async messaging. Eliminates dual-middleware complexity and addresses PI/PO end-of-life risk.
Experience Cloud natively inherits Salesforce sharing rules for dealer isolation, supports 7 languages, integrates with the product catalog, and avoids custom portal maintenance. PRM licenses for 8,000 dealers are cost-effective vs. full CRM licenses. Portal features include CPQ tier-based pricing, Flow-driven order submission with SAP validation, near-real-time order status, CSV bulk upload, and document downloads.
Product catalog data model: 4-level hierarchy (Family > Line > Group > SKU) with 25 universal fields on Product, family-specific attributes via key-value child records, and a self-referential Supersedes__c lookup. Nightly Apex job traverses supersession chains to populate Current_Replacement__c.
Critical Diagrams
System Landscape
graph TB
subgraph Legend
direction LR
NEW["🟢 NEW - Being Built"]
KEEP["⚪ KEEPING - No Changes"]
RETIRE["🔴 RETIRING - Decommissioning"]
INT["🟠 INTEGRATION LAYER"]
end
subgraph Salesforce["Salesforce (Hyperforce - Frankfurt)"]
SC["🟢 NEW: Sales Cloud — 1,240 users"]
EC["🟢 NEW: Experience Cloud — 8,000 dealers"]
CPQ["🟢 NEW: CPQ — Tier pricing"]
SVC["🟢 NEW: Service Cloud — Warranty"]
IoT["🟢 NEW: Equipment Health Summaries"]
CRM_A["🟢 NEW: CRM Analytics"]
DC["🟢 NEW: Data Cloud"]
end
subgraph Mule["MuleSoft Anypoint"]
API["🟢 NEW: API Gateway"]
SAP_C["🟢 NEW: SAP Connector"]
IOT_C["🟢 NEW: AWS Connector"]
end
subgraph External["External Systems"]
SAP_ERP["⚪ KEEP: SAP S/4HANA — Finance, Mfg, OTC"]
TS["⚪ KEEP: AWS IoT Core + Timestream — 210M/yr"]
SPO["⚪ KEEP: SharePoint Online — 2.4 TB docs"]
M365["⚪ KEEP: Microsoft 365"]
WD["⚪ KEEP: Workday HR"]
end
subgraph Retiring["Legacy Systems"]
DYN["🔴 RETIRE: MS Dynamics CRM 2016 — US"]
SAP_CRM["🔴 RETIRE: SAP CRM 7.0 — Germany"]
CN_CRM["🔴 RETIRE: Custom CRM — China"]
PORTAL["🔴 RETIRE: Legacy Java Dealer Portal — US"]
PIPO["🔴 RETIRE: SAP PI/PO Middleware"]
PBI["🔴 RETIRE: Power BI — US"]
SAC["🔴 RETIRE: SAP Analytics Cloud — Germany"]
end
EC -->|"REST real-time orders"| API
SC -->|"REST real-time opp sync"| API
API --> SAP_C -->|"OData + RFC/BAPI real-time + batch"| SAP_ERP
API --> IOT_C -->|"Batch hourly/daily aggregates"| IoT
IOT_C -.->|"REST on-demand raw query"| TS
DC -.->|"Connect — cross-system analytics"| CRM_A
Order Placement Flow (60-Second SLA)
sequenceDiagram
participant Dealer as Dealer Portal
participant SF as Salesforce
participant Mule as MuleSoft
participant SAP as SAP S/4HANA
Dealer->>SF: Submit order
SF->>SF: Validate tier pricing (CPQ)
SF->>Mule: Sync — order payload
par Credit + Inventory
Mule->>SAP: Credit check (RFC/BAPI)
SAP-->>Mule: Credit status
and
Mule->>SAP: ATP check (OData)
SAP-->>Mule: Availability
end
alt All pass
Mule->>SAP: Create sales order
SAP-->>Mule: Confirmation
Mule-->>SF: Order confirmed
SF-->>Dealer: SAP order #
else Fail
Mule-->>SF: Order held + reason
SF-->>Dealer: Contact rep
end
Data Model / ERD
erDiagram
Account ||--o{ Contact : "has contacts"
Account ||--o{ Dealer_Tier__c : "tier assignment"
Account ||--o{ Order : "places orders"
Account }o--|| Account : "parent (global dealer group)"
Order ||--|{ OrderItem : "contains line items"
OrderItem }o--|| Product2 : "references SKU"
Product2 }o--|| Product2 : "Supersedes__c (self-ref)"
Product2 ||--o{ Product_Attribute__c : "key-value attrs"
Product2 }o--|| Product_Family__c : "belongs to family"
Product_Family__c ||--o{ Product_Line__c : "contains lines"
Product_Line__c ||--o{ Product_Group__c : "contains groups"
Product_Group__c ||--o{ Product2 : "contains SKUs"
Account ||--o{ Case : "warranty claims"
Case }o--|| Order : "related order"
Case }o--|| Product2 : "defective part"
Order }o--|| Blanket_Order__c : "release against blanket"
Account ||--o{ Territory_Assignment__c : "rep-to-dealer"
Equipment_Health__c }o--|| Account : "plant equipment"
Account {
string OWD "Private"
string Volume "8,000 dealer + global groups"
string Note "Hierarchy for global dealer groups"
}
Contact {
string OWD "Controlled by Parent"
string Volume "35,000"
string Note "GDPR + PIPL field encryption"
}
Order {
string OWD "Private"
string Volume "4.2M migrated + 5,800/day"
string LDV "LDV [LDV] - archive >3yr to Big Object"
}
OrderItem {
string OWD "Controlled by Parent"
string Volume "25.2M migrated + ~30K/day"
string LDV "LDV [LDV] - archive with parent Order"
}
Product2 {
string OWD "Public Read Only"
string Volume "150,000 active SKUs"
string LDV "LDV [LDV] - index Part_Number + Supersedes"
}
Product_Attribute__c {
string OWD "Controlled by Parent"
string Volume "6M+ (150K x 45-80 attrs)"
string LDV "LDV [LDV] - key-value pattern for flexibility"
}
Product_Family__c {
string OWD "Public Read Only"
string Volume "200 families"
}
Product_Line__c {
string OWD "Public Read Only"
string Volume "1,500 lines"
}
Product_Group__c {
string OWD "Public Read Only"
string Volume "8,000 groups"
}
Dealer_Tier__c {
string OWD "Private"
string Volume "8,000 active"
string Note "Platinum/Gold/Silver/Bronze"
}
Case {
string OWD "Private"
string Volume "87K migrated + ongoing"
string Note "Warranty claims - approval tiers"
}
Blanket_Order__c {
string OWD "Private"
string Volume "2,000 active"
string Note "6-12 month committed qty"
}
Territory_Assignment__c {
string OWD "Private"
string Volume "2,400 assignments"
string Note "Annual territory carve"
}
Equipment_Health__c {
string OWD "Private"
string Volume "Aggregates only - raw in Timestream"
string Note "Daily/hourly summaries from IoT"
}
LDV Strategy
- Orders + Line Items: Archive records older than 3 years to Big Objects (
Archived_Order__b,Archived_Line_Item__b) for 7-year retention. Active set: ~6M orders + 36M line items in standard objects. - Product Catalog (150K SKUs): Custom indexes on Part_Number__c, Supersedes__c, and Current_Replacement__c. Skinny tables on Product_Attribute__c (skinny tables are not available on Product2 — only on Account, Contact, Opportunity, Lead, Case, and custom objects). Nightly batch for supersession chain traversal.
- Product Attributes (6M+ key-value records): Async SOQL for bulk queries. Composite API for bulk attribute updates during catalog turnover (30% annual churn).
- IoT Data (210M/yr): Stays in AWS Timestream. Only daily/hourly aggregates flow into Equipment_Health__c (~500K records/year).
Role Hierarchy
graph TB
subgraph Internal["Internal Users — 1,240 Sales Cloud Licenses"]
CEO[CEO]
CFO[CFO]
VP_SALES[VP Sales — Global View]
VP_QUALITY[VP Quality — Unlimited Warranty Approval]
CHL[Channel Leadership x5 — Global View All Regions]
RD_US[US Regional Director x4]
RD_EMEA[EMEA Regional Director]
RD_APAC[APAC Regional Director]
AM_US[US Area Manager x28]
AM_EMEA[EMEA Area Manager x12]
AM_APAC[APAC Area Manager x8]
TR_US[US Territory Rep x180]
TR_EMEA[EMEA Territory Rep x120]
TR_APAC[APAC Territory Rep x60]
CAM[Corporate Account Mgr — All Regions]
PM_US[US Plant Manager]
PM_EMEA[EMEA Plant Manager]
PM_APAC[APAC Plant Manager]
RM_Q[Regional Quality Manager — $25K Approval]
PLA[Plant-Level Adjuster — $5K Approval]
CEO --> VP_SALES & VP_QUALITY & CFO
VP_SALES --> CHL
CHL --> RD_US & RD_EMEA & RD_APAC & CAM
RD_US --> AM_US --> TR_US
RD_EMEA --> AM_EMEA --> TR_EMEA
RD_APAC --> AM_APAC --> TR_APAC
VP_QUALITY --> RM_Q --> PLA
VP_SALES --> PM_US & PM_EMEA & PM_APAC
end
subgraph Portal["Dealer Portal — 8,000 Experience Cloud PRM Licenses"]
DG[Dealer Group Principal — Global view across subsidiaries]
DA[Dealer Admin — Own account + sub-users]
DU[Dealer User — Own orders only]
DG --> DA --> DU
end
OWD Summary
| Object | OWD | Justification |
|---|---|---|
| Account | Private | Dealers see only own account; reps see assigned dealers only |
| Contact | Controlled by Parent | Follows Account sharing; GDPR/PIPL encrypted fields |
| Order | Private | Dealer isolation; regional team scoping |
| Order Item | Controlled by Parent | Follows Order sharing |
| Product2 | Public Read Only | All users need catalog visibility for ordering |
| Case (Warranty) | Private | Approval tiers: plant ($5K), regional ($25K), VP (unlimited) |
| Equipment_Health__c | Private | Plant managers see own plant only; cross-plant by permission |
| Dealer_Tier__c | Private | Tier-specific pricing; no cross-dealer visibility |
| Territory_Assignment__c | Private | Managed by channel leadership during territory carve |
Key Sharing Mechanisms:
- Regional team scoping: Criteria-based sharing rules on Account/Order by Region__c field
- Corporate Account Managers: “Global View” permission set granting cross-region read access
- Channel Leadership (5 users): Role hierarchy rollup gives global visibility
- Dealer portal: Sharing sets tie portal user to Account; each dealer sees own data only
- IoT cross-plant access: Permission set for plant managers needing multi-plant view
Integration Architecture
flowchart LR
subgraph SF["Salesforce (Hyperforce Frankfurt)"]
SC["🟢 Sales Cloud"]
EC["🟢 Experience Cloud"]
CPQ_SF["🟢 CPQ"]
SVC_SF["🟢 Service Cloud"]
CRMA["🟢 CRM Analytics"]
end
subgraph Mule["🟢 MuleSoft Anypoint (EU Runtime)"]
GW_API["API Gateway"]
SAP_CONN["SAP Connector"]
IOT_CONN["AWS Connector"]
WD_CONN["Workday Connector"]
AMQ["Anypoint MQ"]
end
subgraph Ext["External Systems"]
SAP_SYS["⚪ SAP S/4HANA"]
AWS_IOT["⚪ AWS IoT Core + Timestream"]
SPO_SYS["⚪ SharePoint Online"]
WD_SYS["⚪ Workday HR"]
M365_SYS["⚪ Microsoft 365"]
EDI_SYS["⚪ EDI Logistics"]
end
EC -->|"REST sync — order payload<br/>OAuth 2.0 / Real-time / ~5,800 orders/day"| GW_API
SC -->|"REST sync — opp + account sync<br/>OAuth 2.0 / Real-time / ~2,000 events/day"| GW_API
CPQ_SF -->|"REST sync — pricing validation<br/>OAuth 2.0 / Real-time / per order"| GW_API
SVC_SF -->|"REST sync — warranty claims<br/>OAuth 2.0 / Real-time / ~100/day"| GW_API
GW_API --> SAP_CONN
SAP_CONN -->|"OData — ATP + order status<br/>OAuth 2.0 / Polling 5 min / 9,200 peak/day"| SAP_SYS
SAP_CONN -->|"RFC/BAPI — credit check + SO create<br/>Basic Auth / Sync / <60s SLA"| SAP_SYS
SAP_CONN -->|"OData CDC — catalog delta sync<br/>OAuth 2.0 / Near-real-time / ~1,200 SKU changes/day"| SAP_SYS
SAP_CONN -.->|"IDoc — nightly full catalog reconciliation<br/>Batch / 150K SKUs"| SAP_SYS
GW_API --> IOT_CONN
IOT_CONN -->|"REST — hourly/daily aggregates<br/>IAM Auth / Batch / 576K readings/day"| AWS_IOT
GW_API --> WD_CONN
WD_CONN -->|"REST — employee sync<br/>OAuth 2.0 / Nightly batch / 2,800 employees"| WD_SYS
SF -.->|"Files Connect — document access<br/>OAuth 2.0 / On-demand / 2.4 TB"| SPO_SYS
SAP_CONN -.->|"EDI — logistics status<br/>AS2 / Batch / ~3,000 shipments/day"| EDI_SYS
AMQ -.->|"Async retry queue<br/>Failed orders + catalog errors"| GW_API
CRMA -->|"MuleSoft data replication<br/>Batch nightly / cross-system analytics"| GW_API
Migration Strategy
flowchart TB
subgraph Phase0["Phase 0: Data Stewardship Sprint (Weeks 1-4)"]
P0A[Profile all 3 CRMs — field mapping<br/>340+ Dynamics fields, SAP CRM, China CRM]
P0B[Define match keys<br/>Tax ID + normalized address + phone]
P0C[Chinese character normalization<br/>Preserve simplified Chinese + transliterated versions]
P0D[Identify 1,200 known duplicates<br/>Build golden record rules]
P0A --> P0B --> P0C --> P0D
end
subgraph Phase1["Phase 1: Reference Data (Weeks 5-6)"]
P1A[Migrate product catalog<br/>150K SKUs with 4-level hierarchy]
P1B[Migrate supersession chains<br/>4-5 revision deep lookups]
P1C[Load product documentation<br/>320K files — link to SKUs]
P1A --> P1B --> P1C
end
subgraph Phase2["Phase 2: Account Deduplication (Weeks 7-10)"]
P2A[Extract accounts from all 3 CRMs<br/>8,000 dealers across systems]
P2B[Run matching algorithm<br/>Tax ID + address + phone]
P2C[Manual stewardship review<br/>1,200 duplicate clusters]
P2D[Create golden dealer records<br/>Preserve all source IDs for audit]
P2A --> P2B --> P2C --> P2D
end
subgraph Phase3["Phase 3: Transactional Data (Weeks 11-16)"]
P3A[Migrate 3 years order history<br/>4.2M orders + 25.2M line items — Bulk API]
P3B[Migrate warranty claims<br/>87K cases with order + part linkage]
P3C[Re-link orders to golden dealer records<br/>Preserve original dealer ID for audit trail]
P3D[Validate referential integrity<br/>Order → Dealer → Product cross-checks]
P3A --> P3B --> P3C --> P3D
end
subgraph Phase4["Phase 4: Parallel Run + Legacy Retirement (Weeks 17-24)"]
P4A[Parallel run — Legacy Java Portal + Experience Cloud<br/>Phased dealer migration by region]
P4B[Validate: reconcile orders in both systems]
P4C[Region-by-region cutover<br/>US first, then EMEA, then APAC]
P4D[Retire legacy CRMs<br/>Archive to Big Objects for 7-year retention]
P4A --> P4B --> P4C --> P4D
end
Phase0 --> Phase1 --> Phase2 --> Phase3 --> Phase4
Migration Tools: Salesforce Data Loader for reference data, Bulk API 2.0 for transactional volumes, MuleSoft batch jobs for ongoing delta sync during parallel-run period. Migration_Error__c staging object captures all record-level failures with source system + record ID for remediation.
Identity & SSO Flow
sequenceDiagram
participant User as Internal User<br/>(Sales Rep / Corp Mgr)
participant Browser as Browser
participant AD as Active Directory<br/>(Microsoft Entra ID)
participant SF as Salesforce<br/>(Hyperforce Frankfurt)
User->>Browser: Navigate to Salesforce
Browser->>AD: Redirect (SP-initiated SSO)
AD->>AD: Authenticate (MFA via Authenticator)
AD->>Browser: SAML 2.0 Assertion
Browser->>SF: POST SAML to ACS URL
SF->>SF: Match Federation ID → User record
SF->>Browser: Session Cookie + Redirect to Home
sequenceDiagram
participant Dealer as Dealer Portal User
participant Browser as Browser
participant SF as Salesforce<br/>(Experience Cloud)
Dealer->>Browser: Navigate to Dealer Portal
Browser->>SF: Login page (Experience Cloud)
SF->>SF: Username/Password + MFA (Email OTP)
SF->>Browser: Session Cookie + Portal Home
Internal users (1,240): SAML 2.0 SP-initiated SSO with Microsoft Entra ID (Azure AD). PPG already uses Microsoft 365 globally, making Entra ID the natural IdP. MFA enforced via Microsoft Authenticator. Federation ID mapped to employee ID for all three regions.
Dealer portal users (8,000): Experience Cloud native login with email-based MFA. Dealers are external parties across 45 countries — SSO via a shared corporate IdP is not feasible. Self-registration with admin approval during onboarding. High-volume dealers (200 accounts) can optionally federate via their own corporate IdP using SAML Connected Apps.
Integration Error Handling
| Integration | Pattern | Retry Strategy | Dead Letter Queue | Monitoring | Fallback |
|---|---|---|---|---|---|
| SAP Order Validation (credit + ATP) | Sync REST via MuleSoft | 3 retries: 1s, 5s, 30s exponential backoff | Failed orders → MuleSoft DLQ → Order_Error__c staging object | Alert on > 5 failures/min or latency > 45s; PagerDuty to integration team | Order held with “Pending Validation” status; dealer sees “order received, confirming shortly” |
| SAP Order Status Polling | Near-real-time polling (5 min) | 3 retries per poll cycle with 1s, 5s, 30s backoff | Unprocessed status changes → Anypoint MQ DLQ | Stale order alert if no status update > 30 min; dashboard monitor | Last known status displayed with “as of” timestamp; manual SAP lookup available |
| SAP Product Catalog Sync (CDC + nightly) | CDC delta + nightly full reconciliation | CDC: retry on next event; Nightly: full re-run on failure | Failed catalog records → Catalog_Sync_Error__c with SKU + error detail | Reconciliation mismatch report; alert if delta > 50 SKUs differ | Portal shows “pricing may not reflect latest changes” banner; CSR can look up SAP pricing manually |
| IoT → Equipment Health Summaries | Batch hourly/daily via MuleSoft | Batch re-run on failure; individual reading failures logged and skipped | Failed aggregations → S3 error bucket + Anypoint MQ DLQ | Alert if > 2 consecutive batch failures; CloudWatch alarm on Timestream query errors | Dashboard shows “last updated” timestamp; plant managers fall back to Grafana direct access |
| Legacy CRM Migration (one-time) | Bulk API batch loads | Record-level retry for failures; batch re-run for systemic errors | Migration_Error__c staging object with source system + record ID | Daily migration progress dashboard; error rate threshold alerts | Parallel-run with legacy systems continues until migration verified |
SAP Circuit Breaker
The MuleSoft SAP connector implements a circuit breaker pattern: after 10 consecutive failures within 60 seconds, the circuit opens and all new order validation requests are queued in Anypoint MQ rather than sent to SAP. The circuit half-opens after 120 seconds, testing with a single request. This protects SAP from request storms during outages and prevents the 60-second SLA from cascading into portal timeouts.
Requirements Addressed
- Unified dealer view — Single org with Account hierarchy + global permission sets (Reqs 1, 2, 5)
- Dealer self-service portal — Experience Cloud PRM with 7-language support, CPQ tier pricing, bulk CSV upload (Reqs 8, 9, 10, 11, 12)
- 60-second order SLA — Synchronous MuleSoft SAP validation with parallel credit + ATP checks (Reqs 13, 14)
- Product catalog with hierarchy — 4-level custom object model with supersession chains and key-value attributes (Reqs 16, 12)
- IoT data architecture — External AWS Timestream with summarized aggregates in Salesforce (Reqs 19, 31)
- Regional data isolation — OWD Private, sharing rules per region, GDPR/PIPL field-level encryption (Reqs 22, 23, 24)
- Mobile with offline — Salesforce Mobile with Briefcase for intermittent connectivity (Req 3)
- 3-CRM migration with dedup — Pre-migration stewardship, tax ID + address match key, Chinese character preservation (Reqs 17, 18, 21)
- Reporting and analytics — CRM Analytics for CEO dashboard, Data Cloud for cross-system supply chain correlation (Reqs 28, 29, 30)
Governance & DevOps
flowchart LR
DEV_CHI[Developer Sandbox x4<br/>Chicago Team] --> SIT[SIT — Partial Copy<br/>SAP Test Connection]
DEV_HYD[Developer Sandbox x2<br/>Hyderabad Team] --> SIT
FB1[Feature Branch<br/>ERP Integration] --> SIT
FB2[Feature Branch<br/>Portal Features] --> SIT
SIT --> UAT[UAT — Full Copy<br/>8K Dealer Data + 150K SKUs]
UAT --> PROD[Production<br/>Hyperforce Frankfurt]
Branching Strategy
Trunk-based with short-lived feature branches. The main branch represents production. Feature branches (max 1 week) are created for each user story. The two distributed teams (Chicago 8 + Hyderabad 4) work on separate feature branches and merge to main via pull request with mandatory code review.
main— production-ready, protected branchfeature/*— short-lived branches per user story (ERP integration, portal features, catalog sync)hotfix/*— emergency fixes cherry-picked tomain, then merged back to active feature branches- Quarterly release branches cut from
mainfor release stabilization aligned with SAP maintenance windows
Sandbox Strategy
| Sandbox Type | Count | Purpose |
|---|---|---|
| Developer | 6 | 4 for Chicago team, 2 for Hyderabad. Individual developer work. |
| Developer Pro | 2 | Complex Apex development requiring more data (catalog testing, order validation logic) |
| Partial Copy | 1 | SIT environment with SAP test instance connection. Representative subset of dealer/product data. |
| Full Copy | 1 | UAT with full production data replica — 8,000 dealers, 150K SKUs, order history. Refreshed quarterly before release. |
Testing Strategy
ERP integration testing is the highest priority given the 60-second order SLA and 5-minute status sync requirements.
- Apex unit tests: >80% code coverage target (above 75% minimum). All SAP callout classes use
HttpCalloutMockwith realistic response payloads including error scenarios (credit hold, ATP unavailable, SAP timeout). - Integration testing (SIT): End-to-end order validation against SAP test instance. Load testing: simulate 9,200 peak orders/day (384/hour) to validate the 60-second SLA. MuleSoft API contract tests triggered on any SAP connector version change.
- Supply chain data validation: Automated reconciliation scripts verify product catalog counts, pricing accuracy, and supersession chain integrity between SAP and Salesforce after every sync cycle.
- UAT: Business stakeholders from all 3 regions validate dealer portal workflows, tier-based pricing, multi-language support, and reporting. 2-week UAT cycle before each quarterly release.
- Regression: Automated Selenium tests for critical portal workflows (order placement, catalog search, warranty claims). Run on every deployment to SIT and UAT.
CoE / Governance
Center of Excellence led by a Salesforce Platform Owner in Chicago, reporting to the CIO.
- Post-go-live ownership: CoE maintains the platform with 2 full-time admins + 2 developers. MuleSoft integration team (2 developers) handles SAP connector maintenance and monitoring.
- Change management: All changes follow Salesforce DX source-driven development. CAB approval required for production deployments (meets every other Wednesday per Req 34). Emergency hotfix process bypasses CAB with CIO + IT Director sign-off.
- Release cadence: Quarterly releases aligned to SAP maintenance windows. Experience Cloud updates deployed independently via rolling updates for zero-downtime dealer portal.
- SAP coordination: Joint SAP-Salesforce release calendar. SAP API contract changes require 4-week advance notice and regression testing in SIT before Salesforce release proceeds.
Risk Assessment
| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
| China PIPL security assessment denied | Low | High | Pre-engage legal counsel; fallback to Chinese Hyperforce region in Phase 2 |
| 60-second order SLA breached at peak (9,200 orders/day) | Medium | High | MuleSoft horizontal scaling; SAP ATP optimization; circuit breaker with queued retry |
| 150K SKU catalog sync performance | Medium | Medium | Delta-only sync via CDC; nightly full reconciliation; index Part_Number and Supersedes fields |
| Dealer deduplication across 3 CRMs (1,200 duplicates) | High | Medium | Pre-migration data stewardship sprint; Duplicate Management Rules; match on tax ID + address |
Domain Scoring Notes
D1 System Architecture (HEAVY): Judges want clear org strategy justification. Single-org-with-Hyperforce must address all three regions with GDPR/PIPL callouts. Licensing: Sales Cloud Enterprise (1,240), Experience Cloud PRM (8,000 dealers), Service Cloud for warranty. Mobile: Salesforce Mobile with offline briefcase for field reps with intermittent connectivity.
D3 Data (HEAVY): Must explicitly handle 210M IoT records externally — storing in Salesforce is a red flag. Product catalog must show 4-level hierarchy, supersession chain, and attribute flexibility. Migration: 3 CRMs with dedup, 4.2M orders (25.2M line items), 87K warranty claims, Chinese character preservation. Big Objects for archived legacy data (7-year retention).
D5 Integration (MEDIUM): Dual SAP patterns: synchronous (order validation, credit check via RFC/BAPI) and near-real-time polling (order status every 5 minutes via OData). MuleSoft replacing PI/PO as strategic platform consolidation.
D2 Security (MEDIUM): OWD Private on Account/Order/Case; sharing rules for regional teams; “Global View” permission set for corporate account managers. Warranty approval via entitlements ($5K/$25K/unlimited tiers).
D6 Dev Lifecycle (LIGHT): Two-team setup (Chicago 8 + Hyderabad 4) needs scratch org development with CI/CD. Quarterly releases aligned to SAP maintenance windows. Environments: Dev, SIT (SAP test connection), UAT (representative dealer/product data), Production. Zero-downtime deployment for Experience Cloud via rolling updates.
Reporting Approach
CRM Analytics for the CEO monthly dashboard and dealer health scores (D1 heavy). Cross-system supply chain reporting (CRM + SAP data) via MuleSoft-powered data replication into CRM Analytics datasets — NOT direct SAP queries from reports. Rebate calculation automated via scheduled Apex + CRM Analytics dashboard replacing the 3-person x 4-day Excel process.
What Would Fail
Recommending multi-org without quantifying cost. Judges will probe: “How do you show a global dealer view across orgs? How do you sync the product catalog? What is the cross-org integration cost?” Without strong answers, this collapses.
Putting IoT data in Salesforce. 210M records/year in Big Objects or custom objects is a storage and performance disaster. This is an external data lake problem with summarized data flowing into Salesforce.
Ignoring the 60-second order SLA. Requires synchronous SAP integration for credit and inventory checks. Batch/async processing for order submission misses a hard requirement. The parallel credit + inventory check pattern is the key.
Generic “we’ll migrate the data” without addressing deduplication. The 1,200 known duplicates across 3 CRMs require a specific dedup strategy. Judges will ask: “What is your match key? How do you handle Chinese character records? How do you preserve historical order-to-dealer linkages during merge?”
Not addressing legacy portal coexistence. You cannot flip 3,200 US dealers overnight. The solution must include a parallel-run period with the legacy Java portal and a phased dealer migration plan.
Scoring Rubric
| Criterion | Weight | What Judges Look For |
|---|---|---|
| Org Strategy & System Architecture | 25% | Single-org justification with Hyperforce data residency. GDPR and PIPL addressed specifically. Licensing model for 2,800 internal + 8,000 external users. Mobile offline strategy for intermittent connectivity |
| Data Architecture & LDV | 25% | IoT data kept external (not in Salesforce). Product catalog 4-level hierarchy with supersession chains. Key-value attribute model for 45-80 attributes per SKU. Big Objects for archived orders. Migration plan with 3-CRM deduplication and Chinese character preservation |
| Integration Depth | 20% | Dual SAP patterns (synchronous RFC/BAPI for 60-second order SLA + near-real-time OData for 5-minute status). MuleSoft replacing PI/PO with clear justification. Circuit breaker for SAP outages. Error handling per integration endpoint |
| Security & Portal Design | 15% | OWD Private with regional sharing rules. Dealer portal isolation via sharing sets. GDPR/PIPL field-level encryption. Tier-based pricing visibility. Warranty approval tiers ($5K/$25K/unlimited) |
| Trade-off Articulation | 15% | WHY single org over multi-org (quantified). WHY IoT stays external (storage cost). WHY MuleSoft replaces PI/PO. Legacy portal coexistence plan with phased dealer migration |
This is a personal study site for Salesforce CTA exam preparation. Built with AI assistance. Not affiliated with Salesforce.