Skip to main content

How can we ensure that case SLAs, including entitlements and milestones, are calculated based on each customer's local business hours, given that our customers are located across multiple time zones worldwide?

1 answer
  1. Oct 6, 10:00 AM

    Hi Shruti, 

     

    The key mechanism: Business Hours in Salesforce is its own record type (Setup → Business Hours), and each one can be set to a specific region/timezone. Entitlement Processes and Milestones both have a Business Hours field, but they follow a documented fallback hierarchy: if a Milestone doesn't specify its own Business Hours, it uses the Entitlement Process's Business Hours; if the Entitlement Process doesn't specify one either, it falls back to whatever Business Hours is set directly on the Case record. 

     

    That fallback is exactly what makes a single entitlement process work across time zones — official guidance explicitly notes you can "use the same entitlement process for cases with different business hours" by leaning on this. 

     

    Recommended setup: 

    1. Create one Business Hours record per region/timezone your customers are in (e.g., "US Business Hours," "EMEA Business Hours," "APAC Business Hours"), each with the correct local hours and timezone. 

    2. Add a field on Account (or use an existing region/timezone field) that identifies which Business Hours applies to that customer. 

    3. Set Case.BusinessHoursId automatically based on the Account's region — via a before-save Flow on Case create, or an Assignment/Escalation Rule, pulling the correct Business Hours record from the Account. 

    4. Leave Business Hours blank on the Entitlement Process and on individual Milestones. That way, one entitlement process/milestone set serves every customer globally, but each case's SLA countdown runs against the Business Hours actually assigned to that case — so milestone targets, warnings, and violations are all calculated in the customer's own local business hours automatically. 

     

    One caveat worth flagging to your team: time-triggered milestone actions (warning/violation emails, field updates tied to a time trigger) don't honor business hours — they run on a flat 24-hour clock regardless of the case's assigned Business Hours. Only the milestone Target Date/Time Remaining calculations themselves respect business hours, not the triggered actions around them. If your warning/escalation emails need to also respect local hours, that logic needs to be built separately (e.g., in a scheduled Flow that checks current time against the case's Business Hours before sending). 

     

    Reference:

    https://help.salesforce.com/s/articleView?language=en_US&id=service.customize_supporthours.htm&type=5

0/9000