Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article demonstrates how you can configure the auto-close duration of a conversation using the Web API.
Important
Duration-based automatic closure of conversations isn't supported for records that are configured for unified routing. When you delete a routed record, the associated queue item is deleted. The live work item or conversation is also deleted as part of the clean-up process.
Use the following GET request to fetch all the configuration records that have been defined out of the box.
Request
GET [Organization URI]/api/data/v9.1/msdyn_occhannelstateconfigurations
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Response
{
"@odata.context":"[Organization URI]/api/data/v9.1/$metadata#msdyn_occhannelstateconfigurations",
"value":[
{
"@odata.etag":"W/\"1379367\"",
"_organizationid_value":"11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"msdyn_name":"Live Chat - Open",
"statecode":0,
"statuscode":1,
"_msdyn_occhannelconfigurationid_value":"836717fd-5578-e911-8196-000d3af7d71e",
"msdyn_autocloseliveworkitemafter":20,
"modifiedon":"2019-10-01T13:41:51Z",
"_modifiedby_value":"d6e088ce-8866-4b3d-8ea2-150ad72e2b79",
"msdyn_ocliveworkitemstate":0,
"msdyn_showconfirmationonsessionclose":false,
"versionnumber":1379367,
"msdyn_occhannelstateconfigurationid":"6283ab63-5778-e911-8196-000d3af7d71e",
"createdon":"2019-10-01T13:41:51Z",
"_createdby_value":"d6e088ce-8866-4b3d-8ea2-150ad72e2b79",
"_modifiedonbehalfby_value":null,
"importsequencenumber":null,
"overriddencreatedon":null,
"_createdonbehalfby_value":null,
"utcconversiontimezonecode":null,
"timezoneruleversionnumber":null
},
{
"@odata.etag":"W/\"1379368\"",
"_organizationid_value":"11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"msdyn_name":"Live Chat - Active",
"statecode":0,
"statuscode":1,
"_msdyn_occhannelconfigurationid_value":"836717fd-5578-e911-8196-000d3af7d71e",
"msdyn_autocloseliveworkitemafter":null,
"modifiedon":"2019-10-01T13:41:51Z",
"_modifiedby_value":"d6e088ce-8866-4b3d-8ea2-150ad72e2b79",
"msdyn_ocliveworkitemstate":1,
"msdyn_showconfirmationonsessionclose":true,
"versionnumber":1379368,
"msdyn_occhannelstateconfigurationid":"e2737c9a-5778-e911-8196-000d3af7d71e",
"createdon":"2019-10-01T13:41:51Z",
"_createdby_value":"d6e088ce-8866-4b3d-8ea2-150ad72e2b79",
"_modifiedonbehalfby_value":null,
"importsequencenumber":null,
"overriddencreatedon":null,
"_createdonbehalfby_value":null,
"utcconversiontimezonecode":null,
"timezoneruleversionnumber":null
},
]
}
The msdyn_name attribute in the msdyn_occhannelstateconfiguration entity mentions the channel and state of the conversation. Learn about conversation states in Understand conversation states in Omnichannel for Customer Service.
You can make a GET request to the msdyn_occhannelconfiguration entity to fetch all the existing channel records. For each of these channels, you can see its state when you query the msdyn_occhannelstateconfiguration entity.
Make a PATCH request to the msdyn_occhannelstateconfiguration entity record and update the value of the msdyn_autocloseliveworkitemafter attribute.
PATCH [Organization URI]/api/data/v9.1/msdyn_occhannelstateconfigurations(6283ab63-5778-e911-8196-000d3af7d71e)
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
{
"msdyn_autocloseliveworkitemafter":5
}
Here's a sample code for updating existing records in the msdyn_occhannelstateconfigurations entity:
var data =
{
"msdyn_autocloseliveworkitemafter": 2
}
// update the record
Xrm.WebApi.updateRecord("msdyn_occhannelstateconfiguration", "6283ab63-5778-e911-8196-000d3af7d71e", data).then(
function success(result) {
console.log("Auto close time updated");
},
function (error) {
console.log(error.message);
}
);
Note
The value for the msdyn_autocloseliveworkitemafter attribute is in minutes. If you want to provide a value that is in days, you have to convert it into minutes. For example, 1 day is 24 x 60 = 1,440 minutes.
The conversation closes automatically if the value of the msdyn_autocloseliveworkitemafter attribute is greater than the value of the createdon attribute.
If the conversation is in the wrap-up state—that is, the customer service representative (service representative or representative) resolved the issue and can now perform some post-conversation steps to close the conversation—then the conversation is closed if the value of the msdyn_autocloseliveworkitemafter attribute is greater than the value of the wrapupinitiatedon attribute.
Important
The decision to close a conversation based on the values of the msdyn_autocloseliveworkitemafter and createdon attributes is made when a scheduled job runs, and not when the PATCH Web API request is run.
Configure automatic closure of Wrap-up state for live chat
The default time for automatically closing a live chat that's in Wrap-up state is 15 minutes. The value is defined in the msdyn_autocloseliveworkitemafter attribute that you can programmatically change to suit your business needs.
The value defined for the Block capacity for wrap-up field in the workstream overrides the value specified in the msdyn_autocloseliveworkitemafter attribute, if it's more than the value for the msdyn_autocloseliveworkitemafter attribute. For example, if you set the value for blocking representative's capacity as 15 minutes and the msdyn_autocloseliveworkitemafter attribute as 10 minutes, a conversation in Wrap-up state occupies capacity for 15 minutes and is eligible for automatic closure only after 15 minutes.
Next steps
Update an entity using Web API