1. Target_Account__c formula narrowing — surface to RevOps BEFORE deploy
The Path T PR narrowed Target_Account__c from OR(NOT(A), NOT(B)) (true for every non-blank status) to AND(non-blank, ISPICKVAL("Active Target Account")). Any existing report, list view, or dashboard filtered on Target_Account__c = true will return fewer rows after deploy. Inventory and notify owners.
2. Sales Engagement enablement
Confirm Sales Engagement is enabled in staging (modern ActionCadenceTracker model). Build the production ActionCadence for non-Target outbound, then wire its Id into Routing_Config.Default.NonTarget_Cadence_Id. Assign the Sales Engagement Basic PSL (99 free seats) to the user context the routing Flow runs under.
3. Trigger-gate permission set
Assign the Routing_Trigger_Users permission set (grants the Trigger_Routing custom permission) to the HubSpot sync user. The gate is default-deny — a user without this PSL gets no routing at all. This PSL is also the preferred rollback: unassigning it stops routing for that user immediately, no deploy required.
4. Pool user and triage owner
Routing_Config.Default needs production Ids for Prospecting_Pool_User_Id__c (service account that holds unowned Accounts) and Unrouted_Triage_Owner_Id__c (the Id of the Routing_Triage queue — deployed from force-app/main/default/queues/Routing_Triage.queue-meta.xml; confirm the queue Id in staging after deploy before wiring it in).
5. RevOps: Routing_Exception__c queue, tab, and list views — required before go-live
Triage in v3 uses Routing_Exception__c records (auto-number RX-{0000}) owned by the Routing_Triage queue — not admin Tasks. Before go-live: (a) confirm the Routing_Triage queue is deployed and RevOps team members are queue members; (b) verify the Routing_Exception__c App tab exists; (c) build list views for Open and Investigating statuses filtered to the queue. Sales reps must never see triage items in their Task lists.
6. Account_Status__c backfill
Per project memory, Account_Status__c initial values ride the HubSpot → Salesforce production data load. There is no standalone Apex backfill. Confirm the data load includes this mapping before flipping the gate.
7. HubSpot → Contact.AccountId is required
The pre-route data-quality gate rejects Contacts with null AccountId. HubSpot owns Contact → Account matching. Verify the integration is populating AccountId before routing goes live.
8. Tests must pass with ≥85% coverage
4 Apex classes in source: ContactRouter, ContactRouterTest, RotationService, RotationServiceTest. Run the full suite as part of the pipeline validation step (--test-level RunLocalTests). Tests must use System.runAs with a user whose Profile lacks Bypass_Automation; a dedicated bypass-path test must assert no routing occurred.