CC-479: Scheduled Jobs Management

Enhancement: Scheduled Job Management Now Available in Settings Tab

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.

What's Changed?

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.

Post Installation Note: Rescheduling Scheduled Jobs

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.

CC-480: Pre-load Template on Appointment Service not pre-loading template

Fix: Participant Note Template Now Preloads Correctly When Creating Notes from Appointments

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.

What's Changed?

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.

CC-515: Unavailability Validation Rules

Enhancement: New Unavailability Validation Rules

The following 3 Validation Rules were configured for the existing Unavailability object:

1. 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
)

2. 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)
)
)

3. 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'))
)

CC-517: Manage Appointment > Quick Complete > Travel Management recording incorrect Duration/Quantity for TSE and Delivery Activity

Fix: Travel Time Breakdown Now Calculates Accurate Duration and Quantity in Quick Complete and Timesheet Entries


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).

What was the Issue?

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.

What's Changed?

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.

OEM-459: Resource Hours Fields - Remove default values and change field length

Fix: Improved Data Integrity for Resource Weekly and Daily Hour Fields


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.

What's Changed?

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
)
Post Installation Scripts
If you require assistance with installing or running any script, please contact Maica Support for guidance.

View Code

View Code

View Code

View Code

View Code