Your contract renewal workflow automation issue stems from three configuration problems that need to be addressed in sequence:
1. Workflow Trigger Configuration - Date Calculation Logic
The trigger condition ‘Contract Expiry Date - 30 days’ doesn’t work properly in scheduled workflows in OCX 23B. The workflow engine doesn’t evaluate this as a relative date comparison. You need to reconfigure the trigger logic:
Navigate to Workflow Engine → Your Renewal Workflow → Trigger Conditions
Replace the current trigger with a proper date range filter:
- Remove: ‘Contract Expiry Date - 30 days’
- Add: ‘End_Date_c >= TODAY() AND End_Date_c <= TODAY() + 30’
- Add secondary condition: ‘Status_c != Pending Renewal’
- Add tertiary condition: ‘Renewal_Notification_Sent_c = FALSE’
The second and third conditions prevent the workflow from processing the same contract multiple times. You’ll need to add a checkbox field ‘Renewal_Notification_Sent_c’ to your Contract object to track which contracts have already been processed.
2. Scheduled Process Setup - Execution Frequency and Scope
Your scheduled process needs proper configuration to run reliably:
Go to Workflow Engine → Scheduled Processes → Contract Renewal Workflow
Verify these settings:
- Execution Frequency: Daily at 6 AM (before business hours)
- Record Selection: ‘Active Contracts Only’ (Status = Active or Current)
- Batch Size: 50 contracts per execution (prevents timeout on large volumes)
- Execution User: System Administrator account (ensures full permissions)
- Enable Logging: Check ‘Log all executions’ for troubleshooting
The critical setting is the Record Selection scope. If this isn’t configured, the scheduled process might not query any records at all, even though the workflow itself is active. The execution must explicitly query for contracts matching your date criteria.
3. Contract Expiry Field Mapping - Data Type and Accessibility
Verify that your expiry date field is properly configured for workflow automation:
Navigate to Setup → Objects → Contract → Fields → End_Date_c
Check these properties:
- Field Type: Must be ‘Date’ (not Text, Formula, or DateTime)
- Required: Should be checked (ensures all contracts have expiry dates)
- Indexed: Should be enabled (improves workflow query performance)
- API Accessible: Must be enabled for workflow engine to read it
If End_Date_c is a Formula field or Text field, the workflow engine cannot perform date arithmetic on it. You’ll need to either change the field type to Date, or create a new Date field and migrate the data.
Complete Implementation Steps:
-
Create tracking field: Setup → Objects → Contract → New Field
- Name: Renewal_Notification_Sent_c
- Type: Checkbox
- Default: Unchecked
-
Update workflow trigger conditions with proper date range logic
-
Configure scheduled process with daily execution and correct record selection
-
Verify End_Date_c field type is Date and indexed
-
Add workflow action to set Renewal_Notification_Sent_c = TRUE after successful execution
-
Test with a contract where End_Date_c = TODAY() + 25 (within 30-day window)
-
Monitor scheduled process execution log the next day to confirm it runs
Testing and Validation:
Create a test contract to validate the fix:
- Set End_Date_c to 25 days from today
- Set Status to ‘Active’
- Ensure Renewal_Notification_Sent_c is unchecked
- Wait for next scheduled execution (or trigger manually)
- Verify workflow creates renewal opportunity and updates contract status
- Confirm Renewal_Notification_Sent_c is now checked
Handling Missed Renewals:
For contracts that already passed their 30-day window without triggering the workflow:
- Create a one-time data fix workflow
- Query contracts where End_Date_c < TODAY() + 30 AND Status = Active AND Renewal_Notification_Sent_c = FALSE
- Manually execute the renewal workflow on these contracts
- This catches up on missed renewals while your automated process is being fixed
Monitoring and Maintenance:
Set up ongoing monitoring to prevent future issues:
- Schedule weekly report of contracts expiring in next 45 days
- Compare report against workflow execution log to ensure all contracts are processed
- Set up alert if scheduled process fails to execute
- Review execution log monthly for any silent failures
By addressing the trigger condition logic, scheduled process configuration, and field mapping, your contract renewal workflow will reliably trigger 30 days before expiry dates.
This draft is based on general Oracle CX Cloud knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.