updateContactAttributes method

Future<void> updateContactAttributes({
  1. required Map<String, String> attributes,
  2. required String initialContactId,
  3. required String instanceId,
})

Creates or updates the contact attributes associated with the specified contact.

You can add or update attributes for both ongoing and completed contacts. For example, you can update the customer's name or the reason the customer called while the call is active, or add notes about steps that the agent took during the call that are displayed to the next agent that takes the call. You can also update attributes for a contact using data from your CRM application and save the data with the contact in Amazon Connect. You could also flag calls for additional analysis, such as legal review or identifying abusive callers.

Contact attributes are available in Amazon Connect for 24 months, and are then deleted.

Important: You cannot use the operation to update attributes for contacts that occurred prior to the release of the API, September 12, 2018. You can update attributes only for contacts that started after the release of the API. If you attempt to update attributes for a contact that occurred prior to the release of the API, a 400 error is returned. This applies also to queued callbacks that were initiated prior to the release of the API but are still active in your instance.

May throw InvalidRequestException. May throw InvalidParameterException. May throw ResourceNotFoundException. May throw InternalServiceException.

Parameter attributes : The Amazon Connect attributes. These attributes can be accessed in contact flows just like any other contact attributes.

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

Parameter initialContactId : The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.

Parameter instanceId : The identifier of the Amazon Connect instance.

Implementation

Future<void> updateContactAttributes({
  required Map<String, String> attributes,
  required String initialContactId,
  required String instanceId,
}) async {
  ArgumentError.checkNotNull(attributes, 'attributes');
  ArgumentError.checkNotNull(initialContactId, 'initialContactId');
  _s.validateStringLength(
    'initialContactId',
    initialContactId,
    1,
    256,
    isRequired: true,
  );
  ArgumentError.checkNotNull(instanceId, 'instanceId');
  _s.validateStringLength(
    'instanceId',
    instanceId,
    1,
    100,
    isRequired: true,
  );
  final $payload = <String, dynamic>{
    'Attributes': attributes,
    'InitialContactId': initialContactId,
    'InstanceId': instanceId,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/contact/attributes',
    exceptionFnMap: _exceptionFns,
  );
}