We’ve introduced a powerful new Scheduled Jobs Management interface in the Client Care Settings tab, allowing Admins to view, configure, and run all system jobs directly from the UI.
This replaces the previous dependency on the job being submitted by a system user like Maica or Maica Client Care, which recently led to failures due to permission changes in Salesforce’s scheduled job execution model.
New Scheduled Jobs Tab in Settings: A new UI panel under Client Care Settings displays a list of core scheduled jobs. This includes each job’s name, description, schedule, status, and actions for enabling, disabling, and executing the job.
Run Now Functionality: Each job now has a Run Now button, which triggers the batch job on demand. This replaces the previous Sync Now label to better reflect that not all jobs involve data syncing.
Enable All / Disable All Button: A new toggle button group allows Admins to enable or disable all jobs at once, streamlining bulk management.
Improved Job Visibility and Flexibility: Admins can now manage job scheduling (e.g., time of day or frequency) via this tab instead of relying on post-install logic or hardcoded values.
Support for Frequency-Based Scheduling: Jobs configured to run every X minutes or hours now display their execution frequency clearly (e.g., “Every 2 hours”). Time-based jobs show scheduled time only when applicable, eliminating irrelevant fields.
Running Mode and Error Handling Improvements: All SOQL queries related to job management now run in the context of the user who is scheduling/running the job, avoiding permission issues.
If Scheduled Jobs were not rescheduled during the update, admins must take manual action.
To do so, go to Setup → Scheduled Jobs and ensure all Maica jobs are submitted by an admin user who has a Maica license assigned (not the Maica: Client Delivery / Management / Care user, which is a managed automation user).If jobs are still assigned to the automation user, go to Maica Settings → Scheduled Jobs and re-schedule the corresponding jobs under a valid admin user.
We resolved an issue where Participant Note Templates marked with Pre-load Template = TRUE were not being automatically applied when creating new Notes from the Manage Appointment modal. This resulted in users seeing a blank note field even when a default template had been configured.
Pre-load Logic Restored for Participant Note Templates: When an Appointment Service has a related Participant Note Template and the Pre-load Template checkbox is checked: The system now automatically pre-fills the Note with the template content when creating a new Participant Note. This applies even if other Notes already exist for that Appointment.
Updated Behaviour in the Manage Notes Modal: If the user opens the Manage Notes modal and there are no existing Notes → A new Note is created and preloaded by default. If the user clicks the + button to add a new Note → The template is also applied, assuming the Pre-load flag is TRUE and the Template is active.
This behaviour now mimics the expected behaviour from previous components.
Active Templates Only: The system now checks that the Participant Note Template is active before applying it. This avoids preloading deprecated or inactive templates unintentionally.
Improved UI Feedback: When a new Participant Note is saved, then the newly saved Note is now expanded by default in the accordion view for easier access and review. This enhances user clarity and reduces clicks when reviewing notes.
Legacy Logic Cleanup: Old logic related to Participant Note from Quick Complete was removed, as those components no longer display a Notes step. Legacy logic for Complete Appointment and Check-Out was preserved, as those paths still use older flows.
The following 3 Validation Rules were configured for the existing Unavailability object:
Unavailable To Date Cannot Be Before Unavailable From Date
Rule Name: VAL_UNAVAILABILITY_0001
Error Message: The Unavailable To date cannot be before the Unavailable From date
Error Condition Formula:
AND(
NOT(ISBLANK(maica_cc__Unavailable_From__c)),
NOT(ISBLANK(maica_cc__Unavailable_To__c)),
maica_cc__Unavailable_From__c > maica_cc__Unavailable_To__c
)
Unavailable To / Unavailable From Cannot Be Changed if Status is Approved
Rule Name: VAL_UNAVAILABILITY_0003
Error Message: Unavailable From and Unavailable To cannot be changed when the Status is Approved.
Error Condition Formula:
AND(
ISPICKVAL(maica_cc__Status__c, 'Approved'),
OR(
ISCHANGED(maica_cc__Unavailable_From__c),
ISCHANGED(maica_cc__Unavailable_To__c)
)
)
Status Cannot Be Changed Once Approved
Rule Name: VAL_UNAVAILABILITY_0004
Error Message: Status cannot be changed once it has been set to Approved.
Error Condition Formula:
AND(
ISPICKVAL(PRIORVALUE(maica_cc__Status__c), 'Approved'),
NOT(ISPICKVAL(maica_cc__Status__c, 'Approved'))
)
We resolved an issue where using the Manage Travel feature via Quick Complete or the Appointment modal would occasionally record inaccurate Duration and Quantity values in the resulting Delivery Activities and Timesheet Entries—especially when travel time was unevenly split between Before and After segments (e.g. 40 mins before, 20 mins after).
When splitting travel time (e.g. 66% Before, 33% After), the system encountered rounding errors due to the way decimal values were handled.
Salesforce’s native round() function uses banker’s rounding (rounding to the nearest even number), which resulted in incorrect totals in some scenarios.
As a result, Delivery Activity Quantity and Timesheet Entry Duration did not accurately reflect the sum of travel segments, leading to potential discrepancies in billing and payroll.
Custom Rounding Logic Implemented: A new custom rounding method has replaced the use of Math.round() to ensure more consistent and predictable rounding, especially for split travel durations like 33% / 66%. This ensures that travel breakdowns always sum correctly to the total travel time input by the user.
Accurate Quantity and Duration Values: The system now reliably calculates: Delivery Activity Quantity (in hours or minutes depending on the Support Item) and Timesheet Entry Duration (in minutes). Ensures the values match the original total travel time entered by the user, regardless of how it is split.
Tested Across Entry Points: Fix applies to: Quick Complete modal, Manage Appointment > Travel Management, and Recurring and individual Appointments.
We have updated several fields on the Resource object to improve flexibility, prevent misleading defaults, and ensure validation rules are applied correctly. These changes support more accurate configuration of minimum and maximum hours for Resources.
Removed Default Values of Zero: The following fields no longer default to 0, allowing Admins to leave them intentionally blank when no limit or minimum applies: Daily Hours Limit, Weekly Hours Limit, Weekly Hours Minimum.
Increased Field Length for Hour Fields: The field length for both Weekly Hours Limit and Weekly Hours Minimum has been increased to 3 digits, allowing values up to 999 hours if needed. This ensures compatibility with future scenarios (e.g., non-standard shift environments).
Updated Validation Rule for Minimum vs Limit Comparison: A new validation rule was added to ensure data consistency when both values are populated (Rule criteria below). This prevents cases where a minimum is greater than or equal to the maximum, which would block shift assignments and raise conflicts.
Updated Validation Rule Criteria:
AND(
TEXT(maica_cc__Resource_Type__c) = "Resource",
NOT(ISBLANK(maica_cc__Weekly_Hours_Minimum__c)),
NOT(ISBLANK(maica_cc__Weekly_Hours_Limit__c)),
maica_cc__Weekly_Hours_Minimum__c > 0,
maica_cc__Weekly_Hours_Limit__c > 0,
maica_cc__Weekly_Hours_Minimum__c >= maica_cc__Weekly_Hours_Limit__c
)



