updateContactRoutingData method

Future<void> updateContactRoutingData({
  1. required String contactId,
  2. required String instanceId,
  3. int? queuePriority,
  4. int? queueTimeAdjustmentSeconds,
  5. RoutingCriteriaInput? routingCriteria,
})

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,
  );
}