Amazon Connect에서 에이전트가 시작한 WhatsApp 메시지

발행: (2026년 2월 26일 오전 10:44 GMT+9)
10 분 소요
원문: Dev.to

Source: Dev.to

고객 지원 담당자가 한 번의 클릭으로 Agent Workspace에서 WhatsApp 템플릿 메시지를 보낼 수 있도록 하는 방법을 배워보세요. Amazon Connect 콘솔을 떠나지 않고 WhatsApp 발신 커뮤니케이션을 자동화하고 간소화하려는 팀에 이상적입니다.

왜 할까요?

  • 프로액티비티: 에이전트가 데스크톱에서 직접 고객에게 연락할 수 있습니다.
  • 오류 없음: 번호를 복사‑붙여넣기 하거나 수동 템플릿을 사용할 필요가 없습니다.
  • 완전한 통합: 모든 것이 Contact Flows, Lambda 함수 및 양식(Connect View)으로 오케스트레이션됩니다.

일반 흐름

  1. Contact Flow는 고객 정보(이름, 전화번호 등)를 가져오기 위해 Lambda get_customer_data를 호출합니다.
    • 선택 사항: Customer Profile 블록을 사용하여 Customer Profiles에서 데이터를 검색합니다.
  2. 흐름은 에이전트 워크스페이스에 사전 채워진 데이터가 포함된 **양식(View)**을 표시합니다.
  3. 에이전트는 정보를 검토/편집하고 보내기를 클릭합니다.
  4. 두 번째 Lambda(send_whatsapp_message)가 AWS End User Messaging Social을 통해 템플릿 메시지를 전송합니다.

사전 요구 사항

요구 사항상세
WhatsApp Business 계정 (WABA)새 계정을 만들거나 기존 계정을 AWS로 마이그레이션합니다. 단계는 여기에서 확인하세요.
Meta BusinessAWS End User Messaging Social에 계정을 연결하려면 필요합니다.
전화번호SMS/음성 인증을 받을 수 있어야 하며 WhatsApp에 추가되어 있어야 합니다. ⚠️ 개인 번호를 사용하지 마세요.
Amazon Connect 인스턴스없으시면 공식 가이드를 따라 생성하세요.
INSTANCE_ID콘솔이나 ARN에서 찾을 수 있습니다: arn:aws:connect:::instance/INSTANCE_ID.
WhatsApp 메시지 템플릿End User Messaging에서 생성 (번호와 동일한 리전).
AWS CDK인프라를 배포하기 위해 사용합니다.
AWS Systems Manager Parameter Store템플릿 구성을 저장하기 위해 사용합니다.

초기 설정

  1. config.py를 편집하고 INSTANCE_ID를 입력하세요

    INSTANCE_ID = ""
  2. 리포지토리를 복제하세요

    git clone https://github.com/aws-samples/sample-whatsapp-end-user-messaging-connect-chat.git
    cd sample-whatsapp-end-user-messaging-connect-chat/agent-initiated-whatsapp
  3. CDK로 배포
    리포지토리에 포함된 CDK 배포 가이드를 따르세요.

AWS Systems Manager (SSM) 매개변수

/whatsapp_template/config 매개변수를 귀하의 설정으로 업데이트합니다:

{
  "message": {
    "messaging_product": "whatsapp",
    "to": "PHONE_NUMBER",
    "recipient_type": "individual",
    "type": "template",
    "template": {
      "name": "nombre_de_tu_plantilla",
      "language": { "code": "en_US" },
      "components": [
        {
          "type": "body",
          "parameters": []
        }
      ]
    }
  },
  "META_API_VERSION": "v23.0",
  "ORIGINATION_PHONE_NUMBER_ID": ""
}

필드 설명

매개변수설명
template.nameEnd User Messaging에서 만든 WhatsApp 템플릿 이름.
template.language.code언어 코드 (예: en_US).
ORIGINATION_PHONE_NUMBER_IDAWS End User Messaging Social의 전화번호 ID.
META_API_VERSIONMeta API 버전 (기본값 v23.0).

Amazon Connect 설정

뷰 (Form)

접속: https://.my.connect.aws/views

  • enviarWhatsAppForm007 를 찾습니다.
  • 이 폼은 에이전트가 데이터를 검토하고 메시지를 보낼 때 사용합니다.
  • WhatsApp 필드는 번호를 숨기기 위해 password 로 설정되어 있습니다 (연락처 속성을 통해서도 가져올 수 있습니다).

Contact Flow

  • 플로우 SendWhatsAppGuideFlow007 로 이동합니다.

a) 첫 번째 블록 Invoke AWS Lambda function

  • GetCustomerData 를 포함하는 Lambda를 선택합니다.

  • 모의 함수 예시 (실제 로직으로 교체하세요):

    def lambda_handler(event, context):
        return {
            "fullName": "Juan Pérez",
            "phoneNumber": "+XXXXXXXX",
            "input4": "Entregado",
            "input3": "Puzzle 1000 piezas",
            "input2": "P12345",
            "input1": "Juan",
        }
  • 이 모의를 데이터 소스 (Customer Profiles, DynamoDB, 외부 API 등) 로 교체하세요.

  • Confirm 를 클릭합니다.

b) 블록 Show view

  • enviarWhatsAppForm007 를 선택합니다.

  • 값 매핑 (Lambda에서 폼 필드로):

    폼 필드JSON 매핑
    fullName$.External.fullName
    whatsappNumber$.External.phoneNumber
    input1input4$.External.input1$.External.input4
  • Confirm 를 클릭합니다.

c) 두 번째 블록 Invoke AWS Lambda function

  • SendWhatsappMessage 를 포함하는 Lambda를 선택합니다 (ARN 사용).

  • 이 Lambda는 SSM 파라미터 설정을 읽고, 폼 값을 추출하여 메시지를 보냅니다:

    import json
    import boto3
    
    ssm = boto3.client('ssm')
    eums = boto3.client('eums')   # End User Messaging Social client (pseudocódigo)
    
    def lambda_handler(event, context):
        # 1️⃣ Obtener configuración de la plantilla desde SSM
        param = ssm.get_parameter(Name='/whatsapp_template/config')
        config = json.loads(param['Parameter']['Value'])
    
        # 2️⃣ Extraer datos del contacto (atributos)
        contact_attrs = event['Details']['ContactData']['Attributes']
        config['message']['to'] = contact_attrs.get('whatsappNumber')
        # rellenar parámetros del cuerpo si los hay
        # ...
    
        # 3️⃣ Enviar mensaje vía EUMS
        response = eums.send_message(**config['message'])
        return response
  • Confirm 를 클릭합니다.

최종 단계별 안내

  1. CDK를 사용하여 인프라를 배포합니다.
  2. SSM 파라미터를 템플릿 설정으로 업데이트합니다.
  3. Amazon Connect에서 뷰 enviarWhatsAppForm007구성합니다.
  4. 비즈니스 로직에 맞게 Lambda (GetCustomerDataSendWhatsappMessage)를 수정합니다.
  5. Contact Flow SendWhatsAppGuideFlow007의 해당 블록에 Lambda를 연결합니다.
  6. 테스트: Agent Workspace를 열고, 연락을 시작한 뒤, 양식이 사전 채워지는지와 클릭 한 번으로 메시지가 전송되는지 확인합니다.

유용한 리소스

  • GitHub 리포지토리
  • AWS End User Messaging Social 문서
  • WhatsApp 템플릿 생성 가이드 (EUMS 콘솔에서)
  • AWS CDK – Getting Started

Lambda 코드

def da_handler(event, context):
    # SSM Parameter Store에서 템플릿 구성을 로드합니다.
    config = get_ssm_parameter(CONFIG_PARAM_NAME)
    message_payload = config["message"]

    # 연락처 속성에서 양식 값을 추출합니다.
    attributes = event["Details"]["ContactData"]["Attributes"]
    phone_number = attributes.get("phoneNumber")

    # input1..input4에서 템플릿 매개변수를 구성합니다.
    template_params = build_template_parameters(
        attributes, ["input1", "input2", "input3", "input4"]
    )

    # AWS End User Messaging Social을 사용하여 전송합니다.
    response = social_client.send_whatsapp_message(
        originationPhoneNumberId=origination_phone_number_id,
        message=bytes(json.dumps(message_payload), "utf-8"),
        metaApiVersion=meta_api_version,
    )
    return {"result": "OK", "messageId": response.get("messageId", "")}

노트: 저장하려면 Confirm을 누르세요. 그런 다음 SavePublish를 클릭하여 연락 흐름을 게시합니다.

Amazon Connect 보기 설정

  1. Amazon Connect 보기로 이동
    https://.my.connect.aws/views

  2. Guide 유형 보기 생성.

  3. 캔버스에 Connect Application 구성 요소를 끌어다 놓기.

    • 배포된 연락 흐름 SendWhatsAppGuideFlow007contactFlowId 를 설정합니다.
  4. 보기에 이름을 지정하고 Publish 를 클릭.

워크스페이스 생성

  1. Amazon Connect 워크스페이스로 이동
    https://.my.connect.aws/workspaces

  2. ‘Add new workspace’를 클릭하고 다음을 입력

    • 이름
    • 설명
    • 제목
  3. 필요한 사용자 또는 라우팅 프로필에 이 워크스페이스를 할당합니다.

  4. 새 페이지 추가

    • Set page with custom page slug 사용
    • 이전 단계에서 만든 보기(‘Connect Application’ 컴포넌트가 포함된)를 선택
    • 예시와 같이 사용자 정의 슬러그 사용:
    /page/send_whatsapp
  5. 페이지를 저장합니다.

  6. Agent Workspace 상단 탐색 바에서 사용자 지정 워크스페이스를 선택합니다.

이제 에이전트는 사용자 지정 페이지로 이동하여 WhatsApp 템플릿 메시지를 고객에게 보내는 가이드를 사용할 수 있습니다.

에이전트 작업 흐름

  • 맞춤 페이지를 열면 Connect Application이 표시되어 연락 흐름을 실행합니다.
  • 흐름은 고객 데이터 Lambda에서 미리 로드된 값이 포함된 양식을 보여줍니다.
  • 에이전트가 양식을 검토하고 수정한 뒤 전송합니다.
  • 전송 시 WhatsApp 전송 Lambda가 양식의 모든 매개변수와 함께 호출되어 최종 메시지를 전달합니다.

솔루션 확장을 위한 아이디어

  • 고객 데이터 Lambda를 Amazon Connect Customer Profiles 또는 DynamoDB에 연결합니다.
  • 양식에 추가 검증을 추가합니다.
  • 에이전트가 선택할 수 있는 여러 WhatsApp 템플릿을 지원합니다.
  • 템플릿의 변수 수에 따라 입력 필드 수를 동적으로 포함합니다.

추가 자료

  • [프로젝트 저장소]
  • [템플릿 생성 가이드]
  • [전제 조건 가이드]
  • [CDK 배포 가이드]
0 조회
Back to Blog

관련 글

더 보기 »