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
)