Update a Shift Hour
Purpose
To update the shift hours for your organization through an API.
Request Details
Request URL
{api-domain}/crm/{version}/settings/business_hours/shift_hours
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
X-CRM-ORG:{your_org_id}
Scope
scope=ZohoCRM.settings.business_hours.ALL
(or)
scope=ZohoCRM.settings.business_hours.UPDATE
Sample Request
Copiedcurl "https://www.zohoapis.com/crm/v4/settings/business_hours/shift_hours"
-X PUT
-d "@update.json"
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"
-H "X-CRM-ORG:{your_org_id}"
Input JSON
- idstring, mandatory
The unique ID of the shift hours you want to update. Use the Get Shift Hours API to get this ID.
- timezonestring
Represents the time zone you want to set the shift hours for.
- namestring
The name of the shift hours. Must not contain these special characters: ~ , ` , # , % , & , + , = , [ , ] , { , } , | , ; , < , > , ^
- shift_daysJSON array
The days of the week you want to set the shift hours for. Note that you can set shift timing only on the days your business operates on.
- week_starts_onstring
The day of the week your business starts. The possible values include Sunday through Saturday.
- same_as_everydayBoolean
Represents whether the shift hours are the same everyday. When this value is false, the JSON array custom_timing becomes mandatory. When this value is true, the JSON array daily_timing becomes mandatory.
- custom_timingJSON array, mandatory when same_as_everyday is false
Contains the following keys in every JSON object of the array:
_delete - To delete a particular custom timing of the shift on a business day. The value for this key is null.
days - string - The day of the week that has a custom time for the shift. Example: "days":"Monday".
shift_timing - JSON array - The shift timing on that day in the HH:MM format. For example: "shift_timing":["10:00","17:00"].
- break_hoursJSON array
Contains the following keys in every JSON object of the array:
_delete - To delete a particular break hour in a shift. The value for this key is null.
same_as_everyday - Boolean - true represents that the break hours are the same everyday and daily_timing is mandatory. When this value is false, the custom_timing array becomes mandatory.
break_days - JSON array - The days of the week break hours are allowed.
daily_timing(when same_as_everyday is true) - JSON array - The break timing on that day in the HH:MM format. For example: "daily_timing":["10:00","10:30"]. Note that break hours cannot exceed two hours per day, and a day can have only two breaks.
custom_timing(when same_as_everyday is false) - JSON array - The break timing on a day in the HH:MM format. For example: "custom_timing":["11:00","01:00"]. Note that break hours cannot exceed two hours per day, and a day can have only two breaks.
days - string - The day of the shift the custom break timing applies to.
- holidaysJSON array, optional
Use this array to associate an existing holiday or create a new holiday while creating a shift hour.
This array must contain the following keys:name - string, mandatory - The unique name of the holiday. Note that the special characters ~ , ` , # , % , & , + , = , [ , ] , { , } , | , ; , < , > , ^ are not allowed.
date - string, mandatory - The date in the YYYY-MM-DD format that the holiday falls on.
id - string, mandatory when you want to associate an existing holiday - The unique ID of the holiday you have already created. Pass the ID of the holiday from the Get Holidays API.
_delete - mandatory when you want to delete a holiday from the shift - The value null deletes the holiday from that shift.
- usersJSON array
The ID of the user who you want to assign these shift hours to. Use the key effective_from to assign this shift to the user on this date. The format is YYYY-DD-MM.
When you do not specify this key, the user gets assigned to the shift immediately.
Input JSON
Copied{
"shift_hours": [
{
"id":"3652397000011137072",
"holidays": [
{
"id": "3652397000011137047",
"_delete": null
}
],
"users": [
{
"id": "554023000002209087"
}
]
}
]
}
Possible Errors
- INVALID_DATAHTTP 400
Reasons:
One or more of these data is invalid - shift timing, timezone, break timing, effective from date.
The input contains more than two break hour timings.
The input contains more than seven shift days or break days.
The shift name contains the special characters ~ , ` , # , % , & , + , = , [ , ] , { , } , | , ; , < , > , ^.
The break hours overlap.
The break hours fall outside the shift hours.
The effective from date is not greater than the current date.
Resolution:
Refer to the "details" key in the response for the API name of the field that has the error in the input. - MANDATORY_NOT_FOUNDHTTP 400
You have not specified the ID of the shift hour you want to update in the input.
Resolution: ID of the shift hour is mandatory. - DEPENDENT_FIELD_MISSINGHTTP 400
You have not specified one or more of the dependent fields.
Resolution:For custom shift hours, days is mandatory.
When same_as_everyday=true, daily_timing is mandatory.
When same_as_everyday=false, custom_timing is mandatory.
Refer to the sample input for the structure of each of these keys.
- NOT_ALLOWEDHTTP 400
You are trying to set shift hours before setting up business hours for your org.
Resolution: You can add shift hours only after you add business hours. - NOT_ALLOWEDHTTP 400
You are trying to set break hours for more than two hours.
Resolution: Each shift can have a break timing of a maximum of two hours. - INVALID_URL_PATTERNHTTP 404
Please check if the URL trying to access is a correct one
Resolution: The request URL specified is incorrect. Specify a valid request URL. Refer to the request URL section above. - OAUTH_SCOPE_MISMATCHHTTP 401
You do not have the right scope to access this API.
Resolution: Create new token with ZohoCRM.settings.business_hours.ALL or ZohoCRM.settings.business_hours.UPDATE scopes.
Sample Response
Copied{
"shift_hours": [
{
"code": "SUCCESS",
"details": {
"id": "3652397000011137072"
},
"message": "Shift Hours updated successfully.",
"status": "success"
}
]
}