<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Manasa Reddy</title>
    <description>The latest articles on DEV Community by Manasa Reddy (@manasa_reddy_f5fa74ca4b70).</description>
    <link>https://dev.to/manasa_reddy_f5fa74ca4b70</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3542497%2Fcd5aac66-1fce-42b0-8691-2e2c6df6a572.png</url>
      <title>DEV Community: Manasa Reddy</title>
      <link>https://dev.to/manasa_reddy_f5fa74ca4b70</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manasa_reddy_f5fa74ca4b70"/>
    <language>en</language>
    <item>
      <title>Embedding Native Amazon Q Agent Assistance into a Custom Amazon Connect CCP</title>
      <dc:creator>Manasa Reddy</dc:creator>
      <pubDate>Tue, 28 Jul 2026 07:35:58 +0000</pubDate>
      <link>https://dev.to/manasa_reddy_f5fa74ca4b70/embedding-native-amazon-q-agent-assistance-into-a-custom-amazon-connect-ccp-3mln</link>
      <guid>https://dev.to/manasa_reddy_f5fa74ca4b70/embedding-native-amazon-q-agent-assistance-into-a-custom-amazon-connect-ccp-3mln</guid>
      <description>&lt;p&gt;Amazon Connect allows organizations to build completely customized Contact Control Panels (CCPs). Whether it's adding CRM integrations, internal dashboards, or custom workflows, many companies replace the default CCP with their own web application.&lt;/p&gt;

&lt;p&gt;But there's one question I kept hearing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Can we still use the native Amazon Q Agent Assistance experience inside a custom CCP?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer is &lt;strong&gt;yes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In this article, I'll walk through the architecture and implementation approach we used to embed the AWS-managed Amazon Q experience directly into a custom Contact Control Panel without recreating any AI functionality ourselves.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Challenge
&lt;/h2&gt;

&lt;p&gt;Many organizations build a custom CCP to integrate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CRM systems&lt;/li&gt;
&lt;li&gt;Customer information&lt;/li&gt;
&lt;li&gt;Internal business tools&lt;/li&gt;
&lt;li&gt;Custom workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, once you move away from the standard CCP, agents still expect access to Amazon Q Agent Assistance.&lt;/p&gt;

&lt;p&gt;Rather than opening another browser tab or creating a separate application, we wanted Amazon Q to feel like part of the same workspace.&lt;/p&gt;




&lt;h2&gt;
  
  
  Solution Overview
&lt;/h2&gt;

&lt;p&gt;Instead of rebuilding Amazon Q, we embedded the &lt;strong&gt;native AWS-managed Amazon Q interface&lt;/strong&gt; alongside our custom CCP.&lt;/p&gt;

&lt;p&gt;The custom application simply hosts both experiences while Amazon Connect continues to manage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Contact context&lt;/li&gt;
&lt;li&gt;Amazon Q Agent Assistance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps the solution lightweight while allowing agents to access AI-powered assistance without leaving the customer interaction.&lt;/p&gt;




&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1vqyo9tmcr04wlez4634.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1vqyo9tmcr04wlez4634.png" alt="Amazon Q Native CCP Architecture" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The solution follows a simple architecture:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Agents access the application through &lt;strong&gt;Amazon CloudFront&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;CloudFront serves a static web application hosted in &lt;strong&gt;Amazon S3&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The application loads the custom Contact Control Panel (CCP) in the browser.&lt;/li&gt;
&lt;li&gt;The authenticated Amazon Connect session initializes the CCP.&lt;/li&gt;
&lt;li&gt;The same authenticated session loads the native Amazon Q experience.&lt;/li&gt;
&lt;li&gt;During supported customer interactions, Amazon Q retrieves relevant information from configured enterprise knowledge sources.&lt;/li&gt;
&lt;li&gt;Agents can seamlessly switch between the CCP and Amazon Q without leaving the application.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway:&lt;/strong&gt; The application never manages Amazon Q itself. It simply provides a place for the native AWS-managed experience to run.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why This Approach?
&lt;/h2&gt;

&lt;p&gt;Keeping Amazon Q as an AWS-managed component offers several advantages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Minimal Custom Code
&lt;/h3&gt;

&lt;p&gt;The application only initializes the Amazon Q experience instead of implementing AI features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Native Experience
&lt;/h3&gt;

&lt;p&gt;Agents receive the same interface and functionality available in the standard Amazon Connect experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shared Authentication
&lt;/h3&gt;

&lt;p&gt;No additional login flow is required because Amazon Q uses the existing authenticated Amazon Connect session.&lt;/p&gt;

&lt;h3&gt;
  
  
  Easier Maintenance
&lt;/h3&gt;

&lt;p&gt;As Amazon Q receives new features and improvements, the application automatically benefits without requiring UI updates.&lt;/p&gt;




&lt;h2&gt;
  
  
  Implementation Highlights
&lt;/h2&gt;

&lt;p&gt;The implementation was intentionally simple.&lt;/p&gt;

&lt;p&gt;The custom CCP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initializes the Amazon Connect CCP.&lt;/li&gt;
&lt;li&gt;Adds a dedicated &lt;strong&gt;Amazon Q&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Creates a responsive container for Amazon Q.&lt;/li&gt;
&lt;li&gt;Uses environment-aware configuration to support multiple Amazon Connect instances.&lt;/li&gt;
&lt;li&gt;Maintains accessibility and responsive layouts for agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the application is a static web application, deployment is straightforward using &lt;strong&gt;Amazon S3&lt;/strong&gt; and &lt;strong&gt;Amazon CloudFront&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Security Considerations
&lt;/h2&gt;

&lt;p&gt;Security remains largely unchanged from a standard Amazon Connect deployment.&lt;/p&gt;

&lt;p&gt;Since authentication is handled by Amazon Connect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS credentials are never stored in the browser.&lt;/li&gt;
&lt;li&gt;Existing IAM permissions continue to apply.&lt;/li&gt;
&lt;li&gt;Approved application origins control where the CCP can be embedded.&lt;/li&gt;
&lt;li&gt;Amazon Q respects the permissions configured within Amazon Connect.&lt;/li&gt;
&lt;li&gt;Enterprise knowledge sources remain protected behind existing AWS security controls.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Benefits for Contact Center Agents
&lt;/h2&gt;

&lt;p&gt;Embedding Amazon Q directly into the CCP provides several operational benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster access to enterprise knowledge during live interactions.&lt;/li&gt;
&lt;li&gt;Reduced context switching between applications.&lt;/li&gt;
&lt;li&gt;A consistent agent experience.&lt;/li&gt;
&lt;li&gt;Lower training effort.&lt;/li&gt;
&lt;li&gt;Improved productivity.&lt;/li&gt;
&lt;li&gt;Better first-contact resolution through quicker access to relevant information.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;p&gt;A few design decisions made the implementation much simpler.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep Amazon Q Native
&lt;/h3&gt;

&lt;p&gt;Avoid recreating the interface or duplicating functionality already provided by AWS.&lt;/p&gt;

&lt;h3&gt;
  
  
  Separate Responsibilities
&lt;/h3&gt;

&lt;p&gt;The CCP should manage customer interactions, while Amazon Q focuses on knowledge assistance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Design for Multiple Environments
&lt;/h3&gt;

&lt;p&gt;Supporting development, testing, and production becomes much easier with environment-aware configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prioritize Responsive Layouts
&lt;/h3&gt;

&lt;p&gt;Agents often resize their browser windows, so both the CCP and Amazon Q should remain usable across different screen sizes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;One of the biggest advantages of Amazon Connect is its flexibility. You can build a fully customized Contact Control Panel without sacrificing native AWS capabilities like Amazon Q Agent Assistance.&lt;/p&gt;

&lt;p&gt;By embedding the AWS-managed Amazon Q experience into a custom CCP, organizations can provide agents with AI-powered knowledge assistance while keeping the application lightweight, secure, and easy to maintain.&lt;/p&gt;

&lt;p&gt;Rather than rebuilding AI features, let Amazon Q handle the intelligence while you focus on creating a seamless, productive agent experience.&lt;/p&gt;




&lt;p&gt;If you're building custom experiences on top of Amazon Connect, I'd love to hear how you're extending your agent workspace. Feel free to share your thoughts or questions in the comments!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>amazonconnect</category>
      <category>genai</category>
      <category>ccp</category>
    </item>
    <item>
      <title>Escaping the Containment Trap: Building Agentic Contact Centers with Amazon Connect and Bedrock</title>
      <dc:creator>Manasa Reddy</dc:creator>
      <pubDate>Wed, 29 Apr 2026 04:06:23 +0000</pubDate>
      <link>https://dev.to/manasa_reddy_f5fa74ca4b70/escaping-the-containment-trap-building-agentic-contact-centers-with-amazon-connect-and-bedrock-341o</link>
      <guid>https://dev.to/manasa_reddy_f5fa74ca4b70/escaping-the-containment-trap-building-agentic-contact-centers-with-amazon-connect-and-bedrock-341o</guid>
      <description>&lt;p&gt;If you look at the operational dashboards of most modern contact centers, the metrics often paint a comforting picture: high containment rates and deflected calls. But beneath the surface of those green dashboards, customer trust is quietly draining away.&lt;/p&gt;

&lt;p&gt;This is the "&lt;strong&gt;Containment Trap.&lt;/strong&gt;"&lt;/p&gt;

&lt;p&gt;Organizations frequently design contact flows to trap callers in automated loops, heavily weighting their KPIs toward reducing cost-per-contact. While the math might look favorable to finance, it forces repeat contacts, frustrates users seeking nuanced help, and ultimately degrades the brand experience.&lt;/p&gt;

&lt;p&gt;It is time to shift our architectural mindset from containment to resolution.&lt;/p&gt;

&lt;p&gt;With the latest capabilities introduced to Amazon Connect—specifically its native synergy with generative AI—we can build systems that optimize for intelligent handoffs. By integrating Amazon Connect with Amazon Bedrock and leveraging the Model Context Protocol (MCP), cloud engineers can deploy an Agentic AI workflow that respects the user's time.&lt;/p&gt;

&lt;p&gt;Here is a breakdown of how to engineer this solution at scale.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgd8slk8lb4jmywv5qh9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgd8slk8lb4jmywv5qh9.png" alt=" " width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Moving from Static Routing to Agentic Routing&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Traditional IVRs rely on rigid, decision-tree contact flows. If a user's intent doesn't perfectly match a pre-defined slot, they hit a dead end. By placing Amazon Bedrock at the front of the queue, we can analyze the customer's intent dynamically using natural language. The critical difference here is self-awareness: if the AI agent determines it cannot resolve the issue with high confidence, it immediately initiates a context-rich handoff to a human queue.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;The Power of the Model Context Protocol (MCP)&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Intelligent routing is only half the battle; the agent needs data. MCP is the game-changer for this architecture. It allows the Connect AI agent to securely and seamlessly query your external enterprise systems of record (like a DynamoDB table or a third-party CRM). The AI fetches the exact transaction history before the handoff. When the human agent accepts the call, they aren't asking, "How can I help you today?" They already have the complete context, the user's recent actions, and the likely resolution path on their screen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Automating the Wrap-Up&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
The efficiency gains shouldn't stop when the call connects. Post-call documentation (After Call Work) is a massive drain on operational efficiency. Implementing Connect’s AI-powered case summarization means key details, customer sentiment, and required action items are automatically captured, structured, and logged back into the system of record.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Securing the Pipeline with Infrastructure as Code&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Because this architecture spans multiple advanced AWS services—from Connect queues to Bedrock integrations and custom Lambda logic—environment consistency is paramount. This entire pipeline must be provisioned systematically. Using Terraform to define these resources ensures that your staging environments perfectly mirror production, and updates to the AI logic can be deployed via standard CI/CD pipelines.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To make this concrete, here is how you provision the integration layer using Terraform. This snippet ensures your Connect instance can securely trigger the intelligence routing logic while adhering to the principle of least privilege for Bedrock model invocation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight terraform"&gt;&lt;code&gt;&lt;span class="c1"&gt;# 1. IAM Role for the Integration Lambda&lt;/span&gt;
&lt;span class="k"&gt;resource&lt;/span&gt; &lt;span class="s2"&gt;"aws_iam_role"&lt;/span&gt; &lt;span class="s2"&gt;"connect_bedrock_integration_role"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"connect-bedrock-mcp-role"&lt;/span&gt;

  &lt;span class="nx"&gt;assume_role_policy&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;jsonencode&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="nx"&gt;Version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;
    &lt;span class="nx"&gt;Statement&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
      &lt;span class="nx"&gt;Action&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"sts:AssumeRole"&lt;/span&gt;
      &lt;span class="nx"&gt;Effect&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Allow"&lt;/span&gt;
      &lt;span class="nx"&gt;Principal&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;Service&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"lambda.amazonaws.com"&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}]&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# 2. Granting Lambda Permission to Invoke Bedrock Models&lt;/span&gt;
&lt;span class="k"&gt;resource&lt;/span&gt; &lt;span class="s2"&gt;"aws_iam_policy"&lt;/span&gt; &lt;span class="s2"&gt;"bedrock_invoke_policy"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;name&lt;/span&gt;        &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"BedrockInvokeModelPolicy"&lt;/span&gt;
  &lt;span class="nx"&gt;description&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Allows Lambda to invoke Bedrock for intent analysis and MCP routing"&lt;/span&gt;

  &lt;span class="nx"&gt;policy&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;jsonencode&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="nx"&gt;Version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;
    &lt;span class="nx"&gt;Statement&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
      &lt;span class="nx"&gt;Effect&lt;/span&gt;   &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Allow"&lt;/span&gt;
      &lt;span class="nx"&gt;Action&lt;/span&gt;   &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s2"&gt;"bedrock:InvokeModel"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s2"&gt;"bedrock:InvokeModelWithResponseStream"&lt;/span&gt;
      &lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="c1"&gt;# Scoped down to the specific foundational model (e.g., Claude 3)&lt;/span&gt;
      &lt;span class="nx"&gt;Resource&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"arn:aws:bedrock:*::foundation-model/anthropic.claude-3-sonnet-*"&lt;/span&gt; 
    &lt;span class="p"&gt;}]&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;resource&lt;/span&gt; &lt;span class="s2"&gt;"aws_iam_role_policy_attachment"&lt;/span&gt; &lt;span class="s2"&gt;"bedrock_attach"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;role&lt;/span&gt;       &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;aws_iam_role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;connect_bedrock_integration_role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;
  &lt;span class="nx"&gt;policy_arn&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;aws_iam_policy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bedrock_invoke_policy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arn&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# 3. The MCP Integration Lambda Function&lt;/span&gt;
&lt;span class="k"&gt;resource&lt;/span&gt; &lt;span class="s2"&gt;"aws_lambda_function"&lt;/span&gt; &lt;span class="s2"&gt;"mcp_routing_logic"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;filename&lt;/span&gt;         &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"mcp_logic.zip"&lt;/span&gt;
  &lt;span class="nx"&gt;function_name&lt;/span&gt;    &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"ConnectAgenticRouting"&lt;/span&gt;
  &lt;span class="nx"&gt;role&lt;/span&gt;             &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;aws_iam_role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;connect_bedrock_integration_role&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arn&lt;/span&gt;
  &lt;span class="nx"&gt;handler&lt;/span&gt;          &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"index.handler"&lt;/span&gt;
  &lt;span class="nx"&gt;runtime&lt;/span&gt;          &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"python3.12"&lt;/span&gt;
  &lt;span class="nx"&gt;timeout&lt;/span&gt;          &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# 4. Allowing Amazon Connect to trigger the Lambda&lt;/span&gt;
&lt;span class="k"&gt;resource&lt;/span&gt; &lt;span class="s2"&gt;"aws_lambda_permission"&lt;/span&gt; &lt;span class="s2"&gt;"allow_connect"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;statement_id&lt;/span&gt;  &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"AllowExecutionFromConnect"&lt;/span&gt;
  &lt;span class="nx"&gt;action&lt;/span&gt;        &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"lambda:InvokeFunction"&lt;/span&gt;
  &lt;span class="nx"&gt;function_name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;aws_lambda_function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mcp_routing_logic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;function_name&lt;/span&gt;
  &lt;span class="nx"&gt;principal&lt;/span&gt;     &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"connect.amazonaws.com"&lt;/span&gt;
  &lt;span class="nx"&gt;source_arn&lt;/span&gt;    &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;aws_connect_instance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;main_contact_center&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arn&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# 5. Associating the Lambda directly with the Connect Instance&lt;/span&gt;
&lt;span class="k"&gt;resource&lt;/span&gt; &lt;span class="s2"&gt;"aws_connect_lambda_function_association"&lt;/span&gt; &lt;span class="s2"&gt;"bedrock_integration"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;instance_id&lt;/span&gt;  &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;aws_connect_instance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;main_contact_center&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;
  &lt;span class="nx"&gt;function_arn&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;aws_lambda_function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mcp_routing_logic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arn&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When we build systems optimized for resolution rather than deflection, everyone wins. The AI handles the heavy lifting of data gathering, humans step in when empathy and complex judgment are required, and the customer experiences a frictionless journey.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>amazonconnect</category>
      <category>amazonbedrock</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
