So this task was related to my previous recurring Milestone blog. The client I was dealing with was a company based in the UK but had customers all over the world. To best serve them and to align the company with their new SLA’s they would need all of the time zones they use in Salesforce as Business Hours. I thought it would be best to bulk upload every time zone that Salesforce recognizes and then let them assign to their customers as they see fit.
The first thing I did was extract some existing Business Hours using the Data Loader. This would give me a good idea of the kind of format I would need. The below is what I got, pretty straight forward. (I’ve removed Tues-Friday for ease of viewing!)
NAME – The name you want to assign to a particular time zone.
ISACTIVE – Whether this particular timezone can be used or not.
ISDEFAULT – Only one default can be active at any one time, this is the timezone a case will default to if there is none selected.
MONDAYSTARTTIME/ENDTIME – The ISO format for entering time that Salesforce uses.
TIMEZONESIDKEY – The text string ID that Salesforce uses to assign a particular timezone.
This is the format you will need to prepare your data in for upload. I managed to find all of the TIMEZONESIDKEY that Salesforce use somewhere on the Internet but I will post them here ready for you to copy and paste into excel.
So I first went ahead really happy with my excel spreadsheet creation and tried to upload everything with the Salesforce Dataloader, in short, don’t, it doesn’t work. For some unknown reason the Dataloader just hates everything about the fact you are trying to mass upload into the BusinessHours object. Everytime I tried I got the nonsensical error of “Monday Start: value not of required type: 08:00:00.000Z”, I tried all the different variations of this ISO time format to no avail which just frustrated me even further, this is the exact format I extracted from Salesforce! So clearly it is of required type!
After a few hours of research I found out that only 3rd party data loaders like dataloader.io and Workbench do the trick. I still can’t workout why and frankly I’m not too bothered! If you haven’t had any exposure to the likes of dataloader.io or workbench, they are cloud, browser based dataloaders and I’ve included links to them at the bottom of this page.
I personally used dataloader.io as I’ve used it before when the Dataloader was acting buggy (Probably going to start using it less and less now!).
Results – It worked! There were a few errors with uploading a few business hours but these were created manually. It was not a huge deal anyway as my client just needed the ≈24 or so time zones in the system. I’ve included a link to the CSV file that I used to upload these business hours as its pretty easy just to change the start and end times if you have a similar requirement to mine. Happy uploading!