Flow Name: [I2C] Manage Recurring PAC Contribution Subscriptions¶
Last Updated: 2025-07-01 Source Code: I2C_Manage_Recurring_PAC_Contribution_Subscriptions.flow-meta.xml
API Name: I2C_Manage_Recurring_PAC_Contribution_Subscriptions Status: Active Type: Custom Trigger: ChargentTransaction creation/update (async after commit) when recurring PAC transaction is approved
Business Purpose¶
Creates and updates PAC contribution subscriptions when recurring ChargentTransactions are processed, mapping payment frequencies to correct PAC products and maintaining subscription records that reflect the latest transaction data.
Process Flow¶
- Transaction Type Detection: Identifies Monthly, Quarterly, or Annual PAC transactions based on ChargentOrder payment frequency
- Product SKU Mapping: Assigns appropriate PAC product SKU:
- Monthly: "P-PAC-998"
- Quarterly: "P-PAC-997"
- Annual: "P-PAC-032"
- Product and Order Lookups: Retrieves PAC product details, ChargentOrder, and related OrderItem
- Subscription Management:
- Existing Subscription: Updates dates and relationships, sets previous to "Expired"
- New Subscription: Creates with calculated start/end dates and grace period
- Date Calculations: Uses formulas for start date (last transaction), end date (next payment), and grace period
- Error Handling: Includes fault paths for subscription creation/update failures
📊 Click to view Process Flow Diagram
flowchart TD
Start([Start: ChargentTransaction creation/update (async after commit) when recurring PAC transaction is approved]) --> Lookup[Lookup Related Data]
Lookup --> Found{Data<br/>Found?}
Found -->|No| End([End])
Found -->|Yes| Calculate[Calculate/Determine Values]
Calculate --> Update[Update Records]
Update --> End
style Start fill:#e1f5ff
style Lookup fill:#f0e1ff
style Found fill:#fff4e1
style Calculate fill:#e1ffe1
style Update fill:#ffe1e1
style End fill:#e1f5ff
Key Business Rules¶
- Only processes approved recurring PAC transactions (ChargentOrders_Recurring_Pac__c = true)
- Requires record change to meet criteria (prevents unnecessary processing)
- Maps three payment frequencies to specific hardcoded SKU codes
- Grace period calculated as end date + grace period value (default 30 days)
- Creates new subscription if no existing active subscription found for account/product/frequency
Dependencies¶
- ChargentOrders__Transaction__c with recurring and approval status fields
- ChargentOrders__ChargentOrder__c with payment frequency and PAC recurring flag
- Product2 with PAC contribution SKU codes and GracePeriod__c field
- Subscription__c custom object with multiple relationship fields
- OrderItem relationship for PAC products
Changes¶
Flow description indicates this creates/updates PAC Contribution Subscriptions for new transactions to ensure subscriptions reflect latest transaction data.
⚠️ Pre-Go-Live Concerns¶
CRITICAL - Fix Before Go-Live¶
- Hardcoded values that should be configurable: PAC product SKU codes "P-PAC-998", "P-PAC-997", "P-PAC-032" are hardcoded
- Missing null checks on required operations: No validation that required lookups return data before using in formulas
- Flows that modify critical business data without validation: Updates subscription dates using formulas without validating calculation results
HIGH - Address Soon After Go-Live¶
- Complex nested lookups and decision trees without comprehensive error handling
- Testing logic present in flow (Decision_6 with hardcoded test value "swefgw2et23252")
- Missing validation that ChargentOrder and Product relationships exist
- Grace period calculation could fail if product field is null
MEDIUM - Future Enhancement¶
- Remove testing logic from production flow (Decision_6 and test conditions)
- Replace hardcoded SKU codes with custom metadata or settings
- Add comprehensive validation of all lookup results
- Implement proper error handling for all record operations
- Add audit logging for subscription creation/updates
LOW - Monitor¶
- Monitor for subscription creation/update failures
- Track accuracy of date calculations and grace period assignments
- Validate PAC product mapping accuracy
Maintenance Notes¶
HIGH COMPLEXITY FLOW with critical PAC contribution functionality. Contains testing logic that should be removed before production. Multiple hardcoded values create maintenance risks. Essential for PAC billing accuracy. Requires thorough testing and cleanup of development artifacts.