---
sourceDocument: Australia Enable AI
sourceDocumentLink: https://www.servicenow.com/docs/r/intelligent-experiences

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia Enable AI

ft:clusterId :

    - platai

bundleId :

    - platai

workflow :

    - Platform


---

# Integrate voice assistant with Amazon Connect

# Integrate ServiceNow voice assistant with Amazon Connect {#ariaid-title1}

Release version: Australia  
Updated June 9, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 6 minutes to read  
Enable users to get support from AI voice agents by integrating a ServiceNow voice assistant with Amazon Connect.

## Before you begin

* Create a voice assistant. See [Create an AI voice assistant](https://www.servicenow.com/docs/wuDnVaIDsOTK1B7SuSztBw "Create an AI voice assistant to enable natural, conversational voice interactions between users and AI voice agents.") for more information.
* Access to your Amazon Connect instance with permissions to create Lambda functions, configure contact flows, and manage Identity and Access Management (IAM) roles.

Role required: sn_aia.admin

## About this task

Connect your Amazon Connect contact center to a ServiceNow voice assistant using the Public Switched
Telephone Network (PSTN) communication channel. When a call arrives, Amazon Connect
invokes a Lambda function that retrieves a PSTN number from the ServiceNow Call Context API and transfers the call to the
voice assistant. After the voice assistant handles the interaction, the Lambda
function retrieves the interaction context and routes the call to a queue or ends
the call.

## Procedure

1. Navigate to AllConversational InterfacesAssistant DesignerAssistants.
2. Find the voice assistant that you want to connect to Amazon Connect and select Edit.
3. Select the Settings tab.
4. Select Communication channels from the guided setup navigation.
5. In the Provider application field, select the provider application to deploy the voice assistant to.
6. Select the Telephony provider tab.
7. From the Communication channels dropdown, select Public Switched Telephone Network (PSTN).
8. From the CCaaS provider dropdown, select Amazon Connect.  
   The following read-only fields are generated in the Call context service section. Copy and save these values --- you will need
   them to configure the integration on the Amazon Connect side.
   {#integrate-voice-service-with-amazon-connect__table_amazon_connect_form_fields__entry__2}

   | Field | Description |
   |-|-|
   | Transfer method | Read-only. Set to BYE for Amazon Connect. |
   | Call context API | Read-only. The URL that Amazon Connect uses to send call context data to the voice assistant. Copy this value for use as the `call_context_api_path` and `voice_service_host_name` Lambda environment variables. |
   | Client ID | Read-only. Generated client ID for OAuth2 authentication. Copy this value for use in the AWS Parameter Store setup. |
   | Client Secret | Read-only. Generated client secret for OAuth2 authentication. Copy this value for use in the AWS Parameter Store setup. |
   [Table 1. Amazon Connect configuration fields]

   {#integrate-voice-service-with-amazon-connect__table_amazon_connect_form_fields} Figure 1. Amazon Connect integration configuration

   Also note the voice service `sys_id`, which you can find in
   the URL when viewing the voice service record. You will need this value in
   the Amazon Connect configuration steps.  
   Note:  
   The Call Context API uses client credentials OAuth 2.0 with the Client ID and Client Secret generated here. For details about OAuth request parameters, including access token and refresh token support, see [OAuth API request
   parameters](https://www.servicenow.com/docs/access?context=r_OAuthAPIRequestParameters&version=australia&pubname=australia-platform-security&ft:locale=en-US).
9. Enable context data persistence for the voice service.
   1. Navigate to `sys_now_assist_deployment_config_attributes.list` and check whether a `persist_context_data` attribute exists for your voice service.
   2. If the attribute exists, open it and set Value to <kbd class="ph userinput">true</kbd>.  
      This setting allows the Lambda function to retrieve interaction context data from ServiceNow after the voice assistant completes the call.Figure 2. Setting persist_context_data to true
   3. If the attribute does not exist, navigate to `sys_now_assist_deployment_config.list`, open your voice assistant's deployment configuration record, and copy its `sys_id`.  
      To copy the `sys_id`, right-click the record header bar and select Copy sys_id.
   4. Navigate to `sys_now_assist_deployment_config_attributes.list`, click New, set Deployment Configuration to the `sys_id` you copied, Name to <kbd class="ph userinput">persist_context_data</kbd>, and Value to <kbd class="ph userinput">true</kbd>, then click Submit.

   When `persist_context_data` is enabled, the voice assistant saves the session context as an `interaction_context` record named `bot_context_data` after each call. For details about the stored fields, see [Bot context data](https://www.servicenow.com/docs/7VSETfxdARbd21h~xai8xg "Reference information for AI voice agents.").
10. In your AWS account, create the Lambda function that connects Amazon Connect to the voice assistant.
    1. From the AWS console, create a new Lambda function.
    2. In the Lambda function code editor, replace the default handler code with the Lambda function code.  
       See [Amazon Connect Lambda function code](https://www.servicenow.com/docs/7VSETfxdARbd21h~xai8xg#voice-agent-reference__section_amazon_connect_lambda).
    3. Set the following environment variables on the Lambda function.  
       {#integrate-voice-service-with-amazon-connect__table_lambda_env_vars__entry__2}

       | Variable | Value |
       |-|-|
       | `call_context_api_path` | The path portion of the ServiceNow call context URL --- the part of the URL after `.com`. |
       | `now_instance_host_name` | The ServiceNow instance URL, without the `https://` prefix. |
       | `now_instance_name` | The name portion of your ServiceNow instance URL. For example, <kbd class="ph userinput">myinstance</kbd>, not <kbd class="ph userinput">myinstance.service-now.com</kbd>. |
       | `ssm_oauth_path` | The base path for OAuth credentials in AWS Parameter Store: `/com.servicenow.cti/<sn-instance-id>`. For example: <kbd class="ph userinput">/com.servicenow.cti/a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4</kbd>. |
       | `voice_service_host_name` | The hostname from the ServiceNow call context URL. |
       [Table 2. Lambda environment variables]

       {#integrate-voice-service-with-amazon-connect__table_lambda_env_vars}  
       Note:  
       Both `call_context_api_path` and `voice_service_host_name` are derived from the Call Context API URL in the voice service configuration. `voice_service_host_name` uses the hostname portion of that URL, and `call_context_api_path` uses the path portion after `.com`. For example, for a Call Context API URL of `https://instance.service-now.com/api/v1/call-context`, set `voice_service_host_name` to <kbd class="ph userinput">instance.service-now.com</kbd> and `call_context_api_path` to <kbd class="ph userinput">/api/v1/call-context</kbd>.
       Figure 3. Lambda environment variables
    4. Grant your Amazon Connect instance permission to invoke the Lambda function.  
       In the Amazon Connect console, navigate to your instance, select
       Flows, and under AWS Lambda, add the Lambda function with the Invoke
       Lambda use case. Confirm the policy was added in the Lambda console
       under ConfigurationPermissions.
       Figure 4. Adding a Lambda function in Amazon Connect
    5. Replace the Lambda execution role permissions policy with the Identity and Access Management (IAM) policy.  
       See [Amazon Connect Lambda Identity and Access Management (IAM) policy](https://www.servicenow.com/docs/7VSETfxdARbd21h~xai8xg#voice-agent-reference__section_amazon_connect_iam_policy).

       In the Lambda console, navigate to ConfigurationPermissionsExecution Role and replace the existing permissions policy. Replace
       `<region>`,
       `<account-id>`, and
       `<lambda-function-name>` with your
       values.
    6. Create a CloudWatch log group for the Lambda function.  
       In the AWS console, navigate to CloudWatchLog Management. If no log group exists for your Lambda function, create one named `/aws/lambda/<your_Lambda_name>`.
    7. Create the OAuth credentials in AWS Parameter Store.  
       From the AWS console, navigate to Parameter Store and create the
       following parameters using SecureString as
       the type.
       {#integrate-voice-service-with-amazon-connect__table_param_store__entry__2}

       | Name | Value |
       |-|-|
       | `/com.servicenow.cti/<sn-instance-id>/<voice-service-id>/client_id` Where `sn-instance-id` is the value of the `instance_id` system property (to find this value, navigate to `sys_properties.list` and search for `instance_id`), and `voice-service-id` is the voice service `sys_id`. | Client ID from the ServiceNow voice service configuration. |
       | `/com.servicenow.cti/<sn-instance-id>/<voice-service-id>/client_secret` Where `sn-instance-id` is the value of the `instance_id` system property (to find this value, navigate to `sys_properties.list` and search for `instance_id`), and `voice-service-id` is the voice service `sys_id`. | Client Secret from the ServiceNow voice service configuration. |
       [Table 3. Parameter Store entries]

       {#integrate-voice-service-with-amazon-connect__table_param_store} Figure 5. Confirmed OAuth parameters in AWS Parameter Store  
       Note:  
       For example, if your `instance_id` property value is <kbd class="ph userinput">a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4</kbd> and your voice service `sys_id` is <kbd class="ph userinput">b5c6d7e8b5c6d7e8b5c6d7e8b5c6d7e8</kbd>, create parameters named <kbd class="ph userinput">/com.servicenow.cti/a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4/b5c6d7e8b5c6d7e8b5c6d7e8b5c6d7e8/client_id</kbd> and <kbd class="ph userinput">/com.servicenow.cti/a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4/b5c6d7e8b5c6d7e8b5c6d7e8b5c6d7e8/client_secret</kbd>.
    8. Add the AWS PowerTools layer to the Lambda function.  
       In the Lambda console, navigate to the Lambda function and select Layers. Add the AWS layer `AWSLambdaPowertoolsTypeScriptV2`, version 2.33.0 or later.
11. Import and configure the Amazon Connect contact flow.
    1. In your Amazon Connect instance, create a new contact flow by importing the Voice AI inbound flow JSON.  
       See [Amazon Connect Voice AI inbound flow](https://www.servicenow.com/docs/7VSETfxdARbd21h~xai8xg#voice-agent-reference__section_amazon_connect_contact_flow).

       In the Amazon Connect console, navigate to RoutingFlows, select Create flow, then use
       the import option. Replace all placeholder values with your own before
       importing.
       Figure 6. Imported Voice AI inbound contact flow
    2. In both AWS Lambda function blocks, set the function ARN to your Lambda and set the `voice_service_id` parameter to the voice service `sys_id`.  
       Figure 7. Configuring an AWS Lambda function block
    3. Save and publish the contact flow.  
       Note:  
       When Amazon Connect transfers the call to ServiceNow, the contact flow must pass the original caller's phone number as the caller ID. Verify that your contact flow is configured to preserve the original caller ID during the transfer, not the Amazon Connect transfer number.
       Figure 8. Transfer to phone number block settings
12. Associate a phone number with the contact flow.
    1. In the Amazon Connect service dashboard, navigate to ChannelsPhone numbers.
    2. Claim a new number or select an existing number to associate with the contact flow.  
       Associating a phone number with the contact flow enables incoming calls to be routed through the voice assistant.

## Result

Amazon Connect is connected to your ServiceNow voice
assistant. Incoming calls routed through Amazon Connect are handled by the AI voice
agent, which responds with a greeting and processes the caller's requests. When
call handling is complete, the contact flow routes the caller to a queue or ends the
call.

## What to do next

Test the integration by placing a call through your Amazon Connect phone number and
verifying that the voice assistant responds correctly. Review the CloudWatch logs
for the Lambda function to troubleshoot any connection issues.

*[\>]: and then


