동적 변수는 특정 통화에서 에이전트에 데이터를 삽입할 수 있도록 해주는 특수 문법입니다.
이를 통해 대화의 핵심 흐름을 유지하면서도 에이전트의 응답을 개인화할 수 있습니다. 동적 변수는 인사말을 맞춤화하거나, 특정 정보를 참조하거나, 상황에 따라 응답을 조정하는 데 적합합니다.


1. 사용 가능한 영역

동적 변수는 다음과 같은 영역에서 사용할 수 있습니다:

  • 프롬프트
  • 첫 메시지

2. 동적 변수 추가 및 테스트

1

프롬프트에 동적 변수 추가

동적 변수는 중괄호({{ }})로 둘러싸인 자리 표시자입니다. 예를 들어:

"안녕하세요 {{user_name}}님, 최근 {{product_name}} 상품을 구매하신 것으로 확인됩니다. 오늘 어떻게 도와드릴까요?"
2

동적 변수 테스트

배포 전에 대시보드에서 동적 변수를 테스트합니다. 테스트를 통해 동적 변수의 올바른 작동을 확인할 수 있습니다.

테스트 프리셋에서 설정한 동적 변수는 웹에서 테스트 용도로만 사용됩니다. 실제 인바운드 콜의 경우 다음 스텝을 참조하여 인바운드 웹훅 서버를 구성하시기 바랍니다.

3

프로덕션에 구현

대시보드에서 [웹훅 설정] 탭의 인바운드 웹훅 URL 필드를 사용하여 웹훅 URL을 설정합니다. 웹훅은 다음과 같은 payload로 POST 요청을 처리하도록 구성합니다:

{
  "call_from": "+821012345678",
  "call_to": "+827087652143"
}

응답 json에 동적 변수를 반환합니다:

{
  "user_name": "김철수",
  "product_name": "아이폰 16 프로"
}

Tip: payload는 고정값으로 변경할 수 없으며, 응답 json은 사용하는 동적변수에 맞게 수정 가능합니다. 응답 json의 key값이 프롬프트의 동적변수와 일치하면 자동으로 채워집니다.

프롬프트: "안녕하세요 {{user_name}}님, 오늘 어떻게 도와드릴까요?"
결과: "안녕하세요 김철수님, 오늘 어떻게 도와드릴까요?"

3. 예외 상황

동적 변수에 값이 할당되지 않은 경우, 출력에서 변수가 그대로 유지됩니다.

프롬프트: "안녕하세요 {{user_name}}님, 오늘 어떻게 도와드릴까요?"
결과: "안녕하세요 {{user_name}}님, 오늘 어떻게 도와드릴까요?"

이는 누락된 변수가 빈 문자열로 대체되거나 오류가 발생하는 대신 원래 형태({{변수이름}})로 표시됨을 의미합니다.


4. 웹훅 서버 설정 방법

자체 서버를 구축하여 웹훅을 처리할 수 있습니다. Python FastAPI나 Node.js 등을 사용할 수 있습니다.

# Python FastAPI
from fastapi import FastAPI, Request

app = FastAPI()

@app.post("/check-caller")
async def check_caller(post_body: dict):
    try:
        if post_body["call_from"] == "+821012345678":
            return {"user_name": "김철수", "product_name": "아이폰 16 프로"}
        elif post_body["call_from"] == "+821087654321":
            return {"user_name": "손예진", "product_name": "갤럭시 Z 폴드 6"}
        else:
            return {}
    except Exception as err:
        print(f"웹훅 오류: {err}")
        return {}

도움이 필요하신가요?