← 블로그 목록
유즈케이스2026-06-03

부재중 전화 자동 응대 AI — 영업시간 외 24시간 메모·콜백 자동화

부재중 전화 자동 응대 AI — 영업시간 외 24시간 메모·콜백 자동화

영업시간 외 전화는 대부분 다음날까지 놓침. 음성 안내 ARS 는 사용자 이탈률 높음. ClawOps 070 + AI 가 자연스럽게 받고 용건·연락처 받아 다음 영업일에 자동 callback 큐로.

0. 활용 예

  • 식당·카페·미용실 야간 예약 문의
  • 병원·치과 야간 응급 외 문의
  • B2B 영업팀 해외 시차 클라이언트
  • 1인 사업자 외출 중 통화

1. 영업시간 분기 webhook

ClawOps 는 인바운드 콜 시 webhook 으로 application/x-www-form-urlencoded 파라미터(From/To/CallId 등)를 POST 하고, 핸들러는 VoiceML(XML)로 응답한다. 영업중에는 <Dial> 로 사람에게 연결, 야간에는 <Connect><Stream> 으로 AI 가 실시간 응대한다.

from flask import request, Response

@app.route("/voice-route", methods=["POST"])
def voice_route():
    import datetime
    from zoneinfo import ZoneInfo
    now = datetime.datetime.now(ZoneInfo("Asia/Seoul"))
    business_hours = 9 <= now.hour < 18 and now.weekday() < 5

    if business_hours:
        # 영업중 — 사람 상담사에게 전환
        xml = """<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Dial timeout="20" action="https://your-server.com/dial-status">
    <Number>07012340001</Number>
  </Dial>
</Response>"""
    else:
        # 영업외 — AI 가 실시간 응대 (WebSocket 핸들러에서 STT/LLM/TTS, save_voicemail 로직)
        xml = """<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Connect>
    <Stream url="wss://your-server.com/after-hours"/>
  </Connect>
</Response>"""

    return Response(xml, mimetype="application/xml")

system_prompt·save_voicemail 같은 AI 응대 로직은 <Stream> 이 연결되는 WebSocket 핸들러(아래 § 2·§ 3) 안에 둔다. VoiceML 은 "AI 로 보낸다"는 라우팅만 담당한다.

2. system prompt — 자연스럽고 짧게

AFTER_HOURS_PROMPT = """
당신은 OOO 회사의 야간 안내원입니다.
지금은 영업시간 외(평일 18시 이후 또는 주말)입니다.

# 첫 발화
"안녕하세요, OOO 회사입니다. 지금은 영업시간이 아니어서 AI 가 우선 메모받겠습니다.
용건 짧게 말씀해주시면 영업 첫 시간에 직접 연락드릴게요."

# 받아야 할 정보
1. 이름
2. 연락처 (전화 안 받은 사람한테 다시 걸 번호)
3. 용건 1-2 문장
4. (가능하면) 선호 callback 시간대

# 다 받았으면
- save_voicemail tool 호출 → DB 저장 + Slack 알림
- 정중히 안내: "메모 잘 받았습니다, 영업일 09시부터 순서대로 연락드릴게요. 감사합니다."
- hang_up

# 규칙
- 한국어, 짧게 (전체 통화 2분 이내)
- 응급 의심시 (의료 통증, 사고, 화재 등) → 119 안내 후 즉시 종료
- 메모만 받기. 가격·예약 확정·법적 답변 금지
"""

3. save_voicemail tool

from clawops.agent import ClawOpsAgent, OpenAIRealtime

agent = ClawOpsAgent(
    from_=number.phone_number,
    session=OpenAIRealtime(system_prompt=AFTER_HOURS_PROMPT, language="ko", voice="marin"),
)

@agent.tool
async def save_voicemail(name: str, phone: str, reason: str, preferred_callback_time: str = "") -> str:
    """야간 메모 저장 + 영업일 첫 시간 callback 큐 추가."""
    db.execute(
        "INSERT INTO callbacks (name, phone, reason, preferred_time, status) "
        "VALUES (?, ?, ?, ?, 'pending')",
        (name, phone, reason, preferred_callback_time),
    )
    # Slack 알림 (사장/매니저 채널)
    notify_slack(
        f"🌙 야간 메모: {name}({phone})\n"
        f"용건: {reason}\n"
        f"선호 시간: {preferred_callback_time or '미명시'}"
    )
    return "메모를 저장했습니다."

4. 영업일 첫 시간 callback 큐 실행

크론 또는 fly cron 으로 매일 09:00 KST:

# scripts/morning_callback.py
import datetime
from zoneinfo import ZoneInfo

def run_morning_callbacks():
    now = datetime.datetime.now(ZoneInfo("Asia/Seoul"))
    if now.weekday() >= 5: return  # 주말은 skip
    
    pending = db.execute(
        "SELECT * FROM callbacks WHERE status = 'pending' ORDER BY created_at"
    ).fetchall()
    
    for cb in pending:
        # 사람 상담사 + AI 1차 안내 둘 다 가능
        # AI 가 먼저 callback 해서 용건 확인
        client.calls.create(
            to=cb['phone'], from_=number.phone_number,
            ai={
                "provider": "openai",
                "model": "gpt-realtime",
                "api_key": "sk-...",
                "language": "ko",
                "messages": [
                    {
                        "role": "system",
                        "content": f"""
당신은 OOO 회사 직원입니다. 어젯밤 {cb['name']} 님이 메모 남기셨어요:
"{cb['reason']}"

지금 callback 드린 것입니다. 다음 흐름:
1. "어젯밤 메모 주셔서 callback 드렸습니다. 지금 통화 가능하실까요?"
2. 가능하면 → 용건 자세히 듣고 답변 가능 범위 답변. 복잡하면 담당자 연결 약속.
3. 불가능하면 → 다시 편한 시간 받고 hang_up.
""",
                    }
                ],
            },
        )
        db.execute("UPDATE callbacks SET status = 'called' WHERE id = ?", (cb['id'],))

5. 통화 예시 (야간)

손님: "여보세요?"
AI: "안녕하세요, OOO 회사입니다. 지금은 영업시간 외라 AI 가 우선 메모받겠습니다. 
    용건 짧게 말씀해주시면 영업 첫 시간에 직접 연락드릴게요."
손님: "내일 아침에 예약 변경하려고요. 김OOO, 010-1234-5678 입니다. 
    원래 11시 예약을 14시로 옮기고 싶어요."
AI: "김OOO 님, 11시→14시 예약 변경 요청 메모해드렸어요. 
    내일 09시부터 담당자가 순서대로 연락드릴 거예요. 감사합니다."
[hang_up]

다음날 09시: callback 큐 자동 실행, 사람 직원이 받음.

6. 비용 / 효과

  • ClawOps Individual ₩19,000/월
  • 영업외 시간 응답률 100% → 신규 예약/문의 손실 0
  • 다음날 callback 자동화로 직원 부담 ↓

다음 단계

관련 글 더 보기

ClawOps AI 전화 API로 시작하기

070 번호 발급부터 AI 음성 통화까지, REST API 몇 줄이면 됩니다.