startEmailContact method
- required String destinationEmailAddress,
- required InboundEmailContent emailMessage,
- required EmailAddressInfo fromEmailAddress,
- required String instanceId,
- InboundAdditionalRecipients? additionalRecipients,
- List<
EmailAttachment> ? attachments, - Map<
String, String> ? attributes, - String? clientToken,
- String? contactFlowId,
- String? description,
- String? name,
- Map<
String, Reference> ? references, - Map<
String, SegmentAttributeValue> ? segmentAttributes,
Creates an inbound email contact and initiates a flow to start the email contact for the customer. Response of this API provides the ContactId of the email contact created.
May throw AccessDeniedException.
May throw IdempotencyException.
May throw InternalServiceException.
May throw InvalidRequestException.
May throw ResourceNotFoundException.
May throw ServiceQuotaExceededException.
May throw ThrottlingException.
Parameter destinationEmailAddress :
The email address associated with the Connect Customer instance.
Parameter emailMessage :
The email message body to be sent to the newly created email.
Parameter fromEmailAddress :
The email address of the 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 additionalRecipients :
The additional recipients address of the email.
Parameter attachments :
List of S3 presigned URLs of email attachments and their file name.
Parameter attributes :
A custom key-value pair using an attribute map. The attributes are
standard Connect Customer attributes, and can be accessed in flows just
like any other contact attributes.
There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.
Parameter clientToken :
A unique, case-sensitive identifier that you provide to ensure the
idempotency of the request. If not provided, the Amazon Web Services SDK
populates this field. For more information about idempotency, see Making
retries safe with idempotent APIs.
Parameter contactFlowId :
The identifier of the flow for initiating the emails. To see the
ContactFlowId in the Connect Customer admin website, on the navigation
menu go to Routing, Flows. Choose the flow. On the flow
page, under the name of the flow, choose Show additional flow
information. The ContactFlowId is the last part of the ARN, shown here
in bold:
arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx
Parameter description :
A description of the email contact.
Parameter name :
The name of a email that is shown to an agent in the Contact Control Panel
(CCP).
Parameter references :
A formatted URL that is shown to an agent in the Contact Control Panel
(CCP). Emails can have the following reference types at the time of
creation: URL | NUMBER | STRING |
DATE. EMAIL | EMAIL_MESSAGE
|ATTACHMENT are not a supported reference type during email
creation.
Parameter relatedContactId :
The contactId that is related to this contact. Linking emails together by
using RelatedContactID copies over contact attributes from
the related email contact to the new email contact. All updates to
user-defined attributes in the new email contact are limited to the
individual contact ID. There are no limits to the number of contacts that
can be linked by using RelatedContactId.
Parameter segmentAttributes :
A set of system defined key-value pairs stored on individual contact
segments using an attribute map. The attributes are standard Connect
Customer attributes. They can be accessed in flows.
Attribute keys can include only alphanumeric, -, and _.
This field can be used to show channel subtype, such as
connect:Guide.
Implementation
Future<StartEmailContactResponse> startEmailContact({
required String destinationEmailAddress,
required InboundEmailContent emailMessage,
required EmailAddressInfo fromEmailAddress,
required String instanceId,
InboundAdditionalRecipients? additionalRecipients,
List<EmailAttachment>? attachments,
Map<String, String>? attributes,
String? clientToken,
String? contactFlowId,
String? description,
String? name,
Map<String, Reference>? references,
String? relatedContactId,
Map<String, SegmentAttributeValue>? segmentAttributes,
}) async {
final $payload = <String, dynamic>{
'DestinationEmailAddress': destinationEmailAddress,
'EmailMessage': emailMessage,
'FromEmailAddress': fromEmailAddress,
'InstanceId': instanceId,
if (additionalRecipients != null)
'AdditionalRecipients': additionalRecipients,
if (attachments != null) 'Attachments': attachments,
if (attributes != null) 'Attributes': attributes,
'ClientToken': clientToken ?? _s.generateIdempotencyToken(),
if (contactFlowId != null) 'ContactFlowId': contactFlowId,
if (description != null) 'Description': description,
if (name != null) 'Name': name,
if (references != null) 'References': references,
if (relatedContactId != null) 'RelatedContactId': relatedContactId,
if (segmentAttributes != null) 'SegmentAttributes': segmentAttributes,
};
final response = await _protocol.send(
payload: $payload,
method: 'PUT',
requestUri: '/contact/email',
exceptionFnMap: _exceptionFns,
);
return StartEmailContactResponse.fromJson(response);
}