updateContactRoutingData method
Updates routing priority and age on the contact (QueuePriority and QueueTimeAdjustmentInSeconds). These properties can be used to change a customer's position in the queue. For example, you can move a contact to the back of the queue by setting a lower routing priority relative to other contacts in queue; or you can move a contact to the front of the queue by increasing the routing age which will make the contact look artificially older and therefore higher up in the first-in-first-out routing order. Note that adjusting the routing age of a contact affects only its position in queue, and not its actual queue wait time as reported through metrics. These properties can also be updated by using the Set routing priority / age flow block.
May throw AccessDeniedException.
May throw InternalServiceException.
May throw InvalidActiveRegionException.
May throw InvalidParameterException.
May throw ResourceConflictException.
May throw ResourceNotFoundException.
May throw ThrottlingException.
Parameter contactId :
The identifier of the contact in this instance of Connect Customer.
Parameter instanceId :
The identifier of the Connect Customer instance. You can find
the instance ID in the Amazon Resource Name (ARN) of the instance.
Parameter queuePriority :
Priority of the contact in the queue. The default priority for new
contacts is 5. You can raise the priority of a contact compared to other
contacts in the queue by assigning them a higher priority, such as 1 or 2.
Parameter queueTimeAdjustmentSeconds :
The number of seconds to add or subtract from the contact's routing age.
Contacts are routed to agents on a first-come, first-serve basis. This
means that changing their amount of time in queue compared to others also
changes their position in queue.
Parameter routingCriteria :
Updates the routing criteria on the contact. These properties can be used
to change how a contact is routed within the queue.
Implementation
Future<void> updateContactRoutingData({
required String contactId,
required String instanceId,
int? queuePriority,
int? queueTimeAdjustmentSeconds,
RoutingCriteriaInput? routingCriteria,
}) async {
_s.validateNumRange(
'queuePriority',
queuePriority,
1,
9223372036854775807,
);
final $payload = <String, dynamic>{
if (queuePriority != null) 'QueuePriority': queuePriority,
if (queueTimeAdjustmentSeconds != null)
'QueueTimeAdjustmentSeconds': queueTimeAdjustmentSeconds,
if (routingCriteria != null) 'RoutingCriteria': routingCriteria,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri:
'/contacts/${Uri.encodeComponent(instanceId)}/${Uri.encodeComponent(contactId)}/routing-data',
exceptionFnMap: _exceptionFns,
);
}