associateContactWithUser method

Future<void> associateContactWithUser({
  1. required String contactId,
  2. required String instanceId,
  3. required String userId,
})

Associates a queued contact with an agent.

Use cases

Following are common uses cases for this API:

  • Programmatically assign queued contacts to available users.
  • Leverage the IAM context key connect:PreferredUserArn to restrict contact association to specific preferred user.
Important things to know
  • Use this API with chat, email, and task contacts. It does not support voice contacts.
  • Use it to associate contacts with users regardless of their current state, including custom states. Ensure your application logic accounts for user availability before making associations.
  • It honors the IAM context key connect:PreferredUserArn to prevent unauthorized contact associations.
  • It respects the IAM context key connect:PreferredUserArn to enforce authorization controls and prevent unauthorized contact associations. Verify that your IAM policies are properly configured to support your intended use cases.
  • The service quota Queues per routing profile per instance applies to manually assigned queues, too. For more information about this quota, see Connect Customer quotas in the Connect Customer Administrator Guide.
Endpoints: See Connect Customer endpoints and quotas.

May throw AccessDeniedException. May throw InternalServiceException. May throw InvalidParameterException. May throw InvalidRequestException. 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 userId : The identifier for the user. This can be the ID or the ARN of the user.

Implementation

Future<void> associateContactWithUser({
  required String contactId,
  required String instanceId,
  required String userId,
}) async {
  final $payload = <String, dynamic>{
    'UserId': userId,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri:
        '/contacts/${Uri.encodeComponent(instanceId)}/${Uri.encodeComponent(contactId)}/associate-user',
    exceptionFnMap: _exceptionFns,
  );
}