Amazon Connect语音/聊天流关联邮件通知流配置求助
Amazon Connect 语音/聊天流关联邮件通知流(SNS+Lambda)全流程步骤
1. 创建邮件通知专用联系流
- 登录Amazon Connect控制台,进入「联系流」页面,新建自定义通用联系流
- 在流里添加核心模块:
- 先加「设置联系属性」模块,用来读取主流程(语音/聊天)传过来的Lex数据(比如意图名称、客户输入的slot值)
- 再添加「调用Lambda函数」模块,绑定你已创建的Lambda函数,把刚才读取到的联系属性作为输入参数传给Lambda
- 可选加「设置日志」模块,记录数据流转细节,方便后续排障
2. 关联邮件通知流到现有语音/聊天流
- 打开已配置好的呼入语音流或聊天流
- 在客户触发Lex意图并完成输入确认的节点之后,插入「转移到联系流」模块,选择刚创建的邮件通知流
- 关键:在转移之前,必须把Lex收集到的所有关键数据(比如
lex_intent_name、customer_issue)通过「设置联系属性」存为全局联系属性,否则邮件通知流拿不到数据
3. 配置Lambda对接SNS实现定向邮件通知
- 在Lambda函数里,从
event.Details.ContactData.Attributes中提取Connect传递过来的Lex数据 - 编写逻辑:根据Lex意图类型或者客户输入的内容,匹配对应的坐席邮箱(比如售后意图对应售后坐席,订单意图对应订单坐席)
- 调用SNS的
publish接口,把组装好的通知内容发送到你的SNS主题——提前让对应坐席用邮箱订阅这个主题 - 示例Python代码片段:
import boto3 sns_client = boto3.client('sns') TARGET_SNS_TOPIC = "你的SNS主题ARN" def lambda_handler(event, context): # 提取Connect传递的Lex数据 contact_attrs = event['Details']['ContactData']['Attributes'] intent_name = contact_attrs.get('lex_intent', '未知意图') customer_input = contact_attrs.get('customer_input', '无输入内容') # 意图与坐席邮箱映射 intent_agent_map = { "售后咨询": "support_agent@yourcompany.com", "订单查询": "order_agent@yourcompany.com" } target_email = intent_agent_map.get(intent_name, "default_agent@yourcompany.com") # 组装通知内容 msg_content = f"客户触发Lex意图:{intent_name}\n客户输入内容:{customer_input}" msg_subject = f"新客户请求:{intent_name}" # 发送SNS通知 sns_client.publish( TopicArn=TARGET_SNS_TOPIC, Message=msg_content, Subject=msg_subject, MessageAttributes={ 'email': {'DataType': 'String', 'StringValue': target_email} } ) return {"statusCode": 200, "message": "通知已发送"}
- 权限配置:给Lambda的IAM角色添加
SNS:Publish权限,限定到你的目标SNS主题,遵循最小权限原则
4. 全流程验证
- 测试呼入或聊天流程,触发目标Lex意图并输入测试数据
- 查看Lambda的CloudWatch日志,确认数据是否正常接收和处理
- 检查对应坐席的邮箱,确认是否收到SNS发送的邮件通知
- 若失败,优先排查:联系属性是否正确传递、Lambda权限是否到位、SNS订阅是否验证通过
内容的提问来源于stack exchange,提问作者Shpresim Musliu
相关产品推荐
相关产品推荐

