Setting Up the AWS Connect Integration in Level AI

Last updated: August 27, 2026

This guide walks through connecting an Amazon Connect (AWS Connect) account to Level AI, configuring how conversations are imported, validating a sample, and enabling the ingestion pipeline.

Before you start, have ready:

Documentation: https://level-ai-knowledge-base.help.usepylon.com/articles/5964477566-amazon-connect-contact-center-integration?lang=en

  • AWS IAM credentials (access key and secret) with read access to the Connect recording and transcript buckets

  • The S3 bucket name(s), region(s), and folder prefixes where Connect writes CTRs, recordings, and Contact Lens transcripts

  • The list of CTR attributes you want used for filtering, timestamps, and language detection

  • Salesforce connection details, if you plan to enrich conversations with Salesforce Case fields


1. Navigate to the Integration

  1. Go to Settings.

  2. Open Integrations.

  3. Select the CCaaS & CRM category.

  4. Click AWS Connect.

You land on the AWS Connect Integration page, which lists all connected accounts under AWS Connect Account Management.


2. Authentication and Account Setup

On the AWS Connect Integration page, click Add Account and provide the required credentials so Level AI can read from your AWS Connect storage.

Required credentials

Field

Required

What to enter

Access Key

Yes

IAM access key ID with read access to the Connect S3 bucket(s)

Secret Access Key

Yes

Secret key paired with the access key above

Bucket Name

Yes

S3 bucket holding CTR records and call recordings

Region

Yes

AWS region of the bucket above (for example, us-east-1)

Folder Prefix

Optional

Path prefix inside the bucket if CTRs/recordings live under a subfolder

Transcript Folder Prefix

Optional

Path prefix for Contact Lens transcript files

Transcript Bucket Name

Optional

Set only if transcripts are written to a different bucket than recordings

Transcript Bucket Region

Optional

Region of the transcript bucket, if different

After saving, the account appears under Connected Accounts. At this stage the account is connected but not yet fully configured — click the account (or use the kebab menu and choose Configure) to open the three-step setup wizard:

1 Configurations → 2 Import sample → 3 Review & Enable

Newly added accounts are named sequentially (Account 1, Account 2, and so on) and can be renamed later.


3. Step 1 — Configurations

This step defines what gets imported and how each conversation is interpreted.

3.1 Channels

Enable channels (required) Select the conversation channels to import from AWS Connect, such as call and chat. The configuration blocks that follow apply per channel, so a chat-only setup will only need the chat sections.

3.2 Call configuration

AWSConnect field which maps to Salesforce Case The field name in the CTR attributes that contains the Salesforce Case ID for a call. Example: contactid.

Salesforce Case filter field The Case column in Salesforce used to match values coming from the CTR field above. Defaults to Id. If Connect writes the contact ID into a custom Salesforce field, use that instead — for example Auto_Amazon_Connect_Contact_ID__c.

Salesforce Case Fields for Call List of Salesforce Case fields to fetch and attach as custom fields on the call conversation. Example: Language__c.

Include Calls Without Recording Off by default. Turn this on if you want calls with no recording URL to still be ingested as metadata-only conversations. Leave it off when audio and transcription are required for every conversation.

Agent Channel (required) The audio channel carrying the agent's voice. Options: mono, stereo_left, stereo_right. Getting this wrong swaps agent and customer speakers in the transcript, so confirm it against a sample recording.

Call convo created timestamp The CTR attribute used to set the conversation creation timestamp. Example: initiationtimestamp.

Call filter Filter that decides which calls are imported. Build it with condition rows of Field name → Operator → Value(s), and combine rows using the Or / And toggle. Use + Add to add another condition to a group, and + Add Group to nest a group with its own logic.

Typical use is limiting ingestion to specific queues or business units, for example:

  • attributes_identified_... In [NA Afterpay Merchant, UK Clearpay Merchant, ANZ Afterpay Merchant]

  • Or queue_name In [NA Afterpay Merchant, UK Clearpay Merchant, ANZ Afterpay Merchant]

Leave the filter empty to import all calls in scope.

3.3 Chat configuration

AWSConnect field which maps to Salesforce Case CTR attribute containing the Salesforce Case ID for a chat. Example: case_id.

Salesforce Case filter field Salesforce Case column used to match the value above. Defaults to Id.

Salesforce Case Fields for Chat Salesforce Case fields to fetch and add as custom fields on chat conversations. Leave blank if no enrichment is needed.

Transcript Timezone Timezone used to parse timestamps inside transcript files. Example: MST7MDT.

Metadata Timezone Timezone used to parse timestamps in metadata/CTR records. Example: PST8PDT. This can legitimately differ from the transcript timezone — set each to match what the source files actually emit.

Chat convo created timestamp CTR attribute used to set the chat conversation creation timestamp. Example: created_at.

Chat filter Same builder as the call filter (Field name → Operator → Field Value, with + Add and + Add Group). Leave empty to import all chats.

3.4 Cross-channel session stitching

Custom external session ID field (call and chat) A custom key used as the External Session ID so a customer's journey can be tied together across channels. Example: attributes_caseid. Pick a value that is present on both call and chat records, otherwise stitching will be partial.

3.5 Language detection and translation

Language is detected from CTR data. Use dot notation for nested fields, for example attributes.callerlanguage. Flattened keys such as attributes_callerlanguage will not work. If no rule matches, the conversation defaults to English.

Enable non-english language translation Turn this on to add per-language detection rules. Each row maps a language to a source field and a match condition:

Language

Source field

Operator

Value

English

contactlens.conversationCharacteristics...

Contains

en

Spanish

contactlens.conversationCharacteristics...

Starts with

es

French

contactlens.conversationCharacteristics...

Starts with

fr

Japanese

contactlens.conversationCharacteristics...

Starts with

ja

Use Add language to append more rows, and the x at the end of a row to remove one. Order matters when rules could overlap — keep Contains rules narrow enough that they do not swallow other locales.

3.6 Salesforce Integration

Shows the current Salesforce connection state. When linked, the panel displays Salesforce Connection Active along with the Account ID, and Change Account lets you point the integration at a different Salesforce org. A live connection is required for any of the Salesforce Case field mappings above to resolve.

3.7 Custom field handling

Drop Custom Fields Field names to exclude from custom fields. Use this to keep sensitive or noisy CTR attributes out of Level AI.

Extra Flat CTR Keys Additional top-level CTR keys to include as custom fields. Only keys with string or integer values are supported.

Extra Nested CTR Keys Additional nested CTR keys to flatten with a prefix. Only one level of nesting is supported.


4. Step 2 — Import Sample

Before enabling continuous ingestion, pull a limited batch of conversations to validate the configuration.

  1. Choose a timeframe: Last 6 hours, Last 12 hours, or Last 24 hours. Aim for a window that yields roughly 100–200 conversations — pick a wider window for low-volume tenants.

  2. Tick I have verified all configurations. The Import sample button stays disabled until this is checked.

  3. Click Import sample.


5. Step 3 — Review & Enable

While the sample import runs, the wizard shows Sample conversations import in progress. Allow up to 2 hours, then open the Conversations tab and verify the imported sample against the checklist:

  • Agent assignment is correct — the right agent is attributed to each conversation, and agent/customer audio channels are not swapped.

  • Redaction in call transcripts (if applicable) is working — sensitive values are masked as expected.

  • Metadata is accurate — call ID, queue name, agent info, timestamps, and custom fields all carry correct values.


6. Managing a Connected Account

Return to Settings → Integrations → CCaaS & CRM → AWS Connect to see all connected accounts. Each row has a kebab (three-dot) menu with:

  • Configure — reopen the setup wizard to review or update configurations. Use this for ongoing changes such as adding a channel, adjusting filters, or adding a language rule.

  • Rename — give the account a meaningful label (for example, the Connect instance or business unit) instead of the default Account 1.

  • Disconnect — remove the AWS Connect account and stop ingestion for it. This tears down the connection, so use it only when the source is being decommissioned or the credentials are being replaced.

Add Account on the same page connects an additional AWS Connect account. Each account carries its own credentials and its own configuration set, which is the right approach when a tenant has multiple Connect instances, buckets, or regions.