Skip to content

start_outbound_chat_contact async

start_outbound_chat_contact(
    source_endpoint: Endpoint,
    destination_endpoint: Endpoint,
    instance_id: InstanceId,
    segment_attributes: SegmentAttributes,
    contact_flow_id: ContactFlowId,
    *,
    config_overrides: Optional[AsyncConnectClientConfig] = None,
    attributes: Optional[Attributes] = None,
    chat_duration_in_minutes: Optional[ChatDurationInMinutes] = None,
    participant_details: Optional[ParticipantDetails] = None,
    initial_system_message: Optional[ChatMessage] = None,
    initial_templated_system_message: Optional[TemplatedMessageConfig] = None,
    related_contact_id: Optional[ContactId] = None,
    supported_messaging_content_types: Optional[SupportedMessagingContentTypes] = None,
    client_token: Optional[ClientToken] = None,
) -> StartOutboundChatContactResponse

Initiates a new outbound SMS or WhatsApp contact to a customer. Response of this API provides the ContactId of the outbound SMS or WhatsApp contact created.

SourceEndpoint only supports Endpoints with CONNECT_PHONENUMBER_ARN as Type and DestinationEndpoint only supports Endpoints with TELEPHONE_NUMBER as Type. ContactFlowId initiates the flow to manage the new contact created.

This API can be used to initiate outbound SMS or WhatsApp contacts for an agent, or it can also deflect an ongoing contact to an outbound SMS or WhatsApp contact by using the StartOutboundChatContact Flow Action.

For more information about using SMS or WhatsApp in Connect Customer, see the following topics in the Connect Customer Administrator Guide:

Parameters:

  • instance_id (InstanceId) –

    The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

  • segment_attributes (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:SMS and connect:WhatsApp.

  • attributes (Optional[Attributes], default: None ) –

    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.

  • contact_flow_id (ContactFlowId) –

    The identifier of the flow for the call. To see the ContactFlowId in the Connect Customer console user interface, on the navigation menu go to Routing, Contact 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/123ec456-a007-89c0-1234-xxxxxxxxxxxx

  • chat_duration_in_minutes (Optional[ChatDurationInMinutes], default: None ) –

    The total duration of the newly started chat session. If not specified, the chat session duration defaults to 25 hour. The minimum configurable time is 60 minutes. The maximum configurable time is 10,080 minutes (7 days).

  • related_contact_id (Optional[ContactId], default: None ) –

    The unique identifier for an Connect Customer contact. This identifier is related to the contact starting.

  • supported_messaging_content_types (Optional[SupportedMessagingContentTypes], default: None ) –

    The supported chat message content types. Supported types are:

    • text/plain

    • text/markdown

    • application/json, application/vnd.amazonaws.connect.message.interactive

    • application/vnd.amazonaws.connect.message.interactive.response

    Content types must always contain text/plain. You can then put any other supported type in the list. For example, all the following lists are valid because they contain text/plain:

    • [text/plain, text/markdown, application/json]

    • [text/markdown, text/plain]

    • [text/plain, application/json, application/vnd.amazonaws.connect.message.interactive.response]

  • client_token (Optional[ClientToken], default: None ) –

    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. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned.

Raises:

Source code in docs_src/capo_connect/_services/async_connect.py
async def start_outbound_chat_contact(
    self,
    source_endpoint: "capo_connect.types.endpoint.Endpoint",
    destination_endpoint: "capo_connect.types.endpoint.Endpoint",
    instance_id: "capo_connect.types.instance_id.InstanceId",
    segment_attributes: "capo_connect.types.segment_attributes.SegmentAttributes",
    contact_flow_id: "capo_connect.types.contact_flow_id.ContactFlowId",
    *,
    config_overrides: Optional[AsyncConnectClientConfig] = None,
    attributes: Optional["capo_connect.types.attributes.Attributes"] = None,
    chat_duration_in_minutes: Optional[
        "capo_connect.types.chat_duration_in_minutes.ChatDurationInMinutes"
    ] = None,
    participant_details: Optional[
        "capo_connect.types.participant_details.ParticipantDetails"
    ] = None,
    initial_system_message: Optional[
        "capo_connect.types.chat_message.ChatMessage"
    ] = None,
    initial_templated_system_message: Optional[
        "capo_connect.types.templated_message_config.TemplatedMessageConfig"
    ] = None,
    related_contact_id: Optional["capo_connect.types.contact_id.ContactId"] = None,
    supported_messaging_content_types: Optional[
        "capo_connect.types.supported_messaging_content_types.SupportedMessagingContentTypes"
    ] = None,
    client_token: Optional["capo_connect.types.client_token.ClientToken"] = None,
) -> "capo_connect.types.start_outbound_chat_contact_response.StartOutboundChatContactResponse":
    """<p>Initiates a new outbound SMS or WhatsApp contact to a customer. Response of this API provides the <code>ContactId</code> of the outbound SMS or WhatsApp contact created.</p> <p> <b>SourceEndpoint</b> only supports Endpoints with <code>CONNECT_PHONENUMBER_ARN</code> as Type and <b>DestinationEndpoint</b> only supports Endpoints with <code>TELEPHONE_NUMBER</code> as Type. <b>ContactFlowId</b> initiates the flow to manage the new contact created.</p> <p>This API can be used to initiate outbound SMS or WhatsApp contacts for an agent, or it can also deflect an ongoing contact to an outbound SMS or WhatsApp contact by using the <a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_StartOutboundChatContact.html">StartOutboundChatContact</a> Flow Action.</p> <p>For more information about using SMS or WhatsApp in Connect Customer, see the following topics in the <i>Connect Customer Administrator Guide</i>:</p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/connect/latest/adminguide/setup-sms-messaging.html">Set up SMS messaging</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/connect/latest/adminguide/sms-number.html">Request an SMS-enabled phone number through Amazon Web Services End User Messaging SMS</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/connect/latest/adminguide/whatsapp-integration.html">Set up WhatsApp Business messaging</a> </p> </li> </ul>

    Args:
        instance_id: <p>The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.</p>
        segment_attributes: <p>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.</p> <ul> <li> <p>Attribute keys can include only alphanumeric, <code>-</code>, and <code>_</code>.</p> </li> <li> <p>This field can be used to show channel subtype, such as <code>connect:SMS</code> and <code>connect:WhatsApp</code>.</p> </li> </ul>
        attributes: <p>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.</p>
        contact_flow_id: <p>The identifier of the flow for the call. To see the ContactFlowId in the Connect Customer console user interface, on the navigation menu go to <b>Routing, Contact Flows</b>. Choose the flow. On the flow page, under the name of the flow, choose <b>Show additional flow information</b>. The ContactFlowId is the last part of the ARN, shown here in bold:</p> <ul> <li> <p>arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/<b>123ec456-a007-89c0-1234-xxxxxxxxxxxx</b> </p> </li> </ul>
        chat_duration_in_minutes: <p>The total duration of the newly started chat session. If not specified, the chat session duration defaults to 25 hour. The minimum configurable time is 60 minutes. The maximum configurable time is 10,080 minutes (7 days).</p>
        related_contact_id: <p>The unique identifier for an Connect Customer contact. This identifier is related to the contact starting.</p>
        supported_messaging_content_types: <p>The supported chat message content types. Supported types are:</p> <ul> <li> <p> <code>text/plain</code> </p> </li> <li> <p> <code>text/markdown</code> </p> </li> <li> <p> <code>application/json, application/vnd.amazonaws.connect.message.interactive</code> </p> </li> <li> <p> <code>application/vnd.amazonaws.connect.message.interactive.response</code> </p> </li> </ul> <p>Content types must always contain <code>text/plain</code>. You can then put any other supported type in the list. For example, all the following lists are valid because they contain <code>text/plain</code>:</p> <ul> <li> <p> <code>[text/plain, text/markdown, application/json]</code> </p> </li> <li> <p> <code>[text/markdown, text/plain]</code> </p> </li> <li> <p> <code>[text/plain, application/json, application/vnd.amazonaws.connect.message.interactive.response]</code> </p> </li> </ul>
        client_token: <p>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 <a href="https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/">Making retries safe with idempotent APIs</a>. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned.</p>

    Raises:
        capo_connect.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient permissions to perform this action.</p>
        capo_connect.errors.conflict_exception.ConflictException: <p>Operation cannot be performed at this time as there is a conflict with another operation or contact state.</p>
        capo_connect.errors.internal_service_exception.InternalServiceException: <p>Request processing failed because of an error or failure with the service.</p>
        capo_connect.errors.invalid_request_exception.InvalidRequestException: <p>The request is not valid.</p>
        capo_connect.errors.limit_exceeded_exception.LimitExceededException: <p>The allowed limit for the resource has been exceeded.</p>
        capo_connect.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource was not found.</p>
        capo_connect.errors.throttling_exception.ThrottlingException: <p>The throttling limit has been exceeded.</p>
        capo_connect.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_connect.types.start_outbound_chat_contact_request.StartOutboundChatContactRequest]",
    ) -> AsyncOperationResponse[
        "capo_connect.types.start_outbound_chat_contact_response.StartOutboundChatContactResponse"
    ]:
        import capo_connect._operations.amazon_connect_service.start_outbound_chat_contact

        (
            output,
            http_response,
        ) = await capo_connect._operations.amazon_connect_service.start_outbound_chat_contact.async_start_outbound_chat_contact(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("StartOutboundChatContact")
    )
    input_: capo_connect.types.start_outbound_chat_contact_request.StartOutboundChatContactRequest = {
        "source_endpoint": source_endpoint,
        "destination_endpoint": destination_endpoint,
        "instance_id": instance_id,
        "segment_attributes": segment_attributes,
        "contact_flow_id": contact_flow_id,
    }
    if attributes is not None:
        input_["attributes"] = attributes
    if chat_duration_in_minutes is not None:
        input_["chat_duration_in_minutes"] = chat_duration_in_minutes
    if participant_details is not None:
        input_["participant_details"] = participant_details
    if initial_system_message is not None:
        input_["initial_system_message"] = initial_system_message
    if initial_templated_system_message is not None:
        input_["initial_templated_system_message"] = (
            initial_templated_system_message
        )
    if related_contact_id is not None:
        input_["related_contact_id"] = related_contact_id
    if supported_messaging_content_types is not None:
        input_["supported_messaging_content_types"] = (
            supported_messaging_content_types
        )
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output