← 블로그 목록

정기 확인 전화 자동화 — 구독·결제·예약 리마인더 AI 통화

구독 갱신·결제 예정·예약 D-1 같은 정기 알림을 ClawOps 070 + AI 자동 전화로 처리. 이메일·SMS 보다 도달률 높고 대화형 confirm 가능.

정기 확인 전화 자동화 — 구독·결제·예약 리마인더 AI 통화

이메일·SMS 리마인더는 안 봄. 사람이 전화 걸기엔 너무 많음. ClawOps 070 + AI 가 매일 자동으로 정기 확인 콜 — 도달률 높고 대화형으로 즉시 confirm/취소까지.

0. 활용 예

  • SaaS 구독 만료 D-7 알림
  • 정기 결제 카드 만료 D-3 알림
  • 의료/미용 예약 D-1 확인 콜
  • 학원 등록 D-7 자동 콜
  • 부동산 계약 만료 D-30 알림

1. 크론 잡 — D-1 예약 confirm

# scripts/reminder_d1.py
import datetime
from zoneinfo import ZoneInfo
from clawops import ClawOps

client = ClawOps()

def run_d1_reminders():
    tomorrow = datetime.datetime.now(ZoneInfo("Asia/Seoul")) + datetime.timedelta(days=1)
    appointments = db.execute(
        "SELECT * FROM appointments WHERE date = ? AND status = 'confirmed'",
        (tomorrow.strftime("%Y-%m-%d"),),
    ).fetchall()
    
    for appt in appointments:
        client.calls.create(
            to=appt['phone'], from_=KOREA_070,
            agent_id=REMINDER_AGENT_ID,     # 콘솔에서 만든 예약확인 에이전트
            call_context={                  # 이번 통화에만 적용되는 지시
                "instruction": D1_REMINDER_PROMPT.format(
                    name=appt['name'],
                    clinic="OOO 치과",
                    date=appt['date'],
                    time=appt['time'],
                    appointment_id=appt['id'],
                ),
                "variables": {
                    "appointmentId": appt['id'],
                    "name": appt['name'],
                    "date": appt['date'],
                    "time": appt['time'],
                },
            },
        )

D1_REMINDER_PROMPT = """
당신은 {clinic} 의 예약 확인 직원입니다.

# 목적
내일({date} {time}) {name} 님의 예약을 확인합니다.

# 첫 발화
"안녕하세요, {clinic} 입니다. {name} 님 내일 {time} 예약 확인 전화드렸어요. 
예정대로 오실 수 있으실까요?"

# 절차
- 응답이 "네/올게요" → confirm_attendance tool → 정중히 인사 + hang_up
- "시간 바꿀게요" → request_reschedule tool, 가능 시간 받기
- "취소" → mark_cancel tool + 사유 받기
- 통화 안 받음 → 자동으로 voicemail 메모 + 다음 시도

# 규칙
- 짧게 (90초 이내)
- 한국어
- 변경·취소 사유 캐묻지 말 것 ("알겠습니다" 후 처리)
"""

2. tools

AI가 통화 중에 예약을 확정·변경·취소하려면 자사 시스템을 도구로 붙여야 합니다. 매니지드 에이전트는 MCP 서버로 연결합니다. 도구를 MCP 서버로 노출해 두고, 콘솔의 에이전트 상세 → 「도구」탭에서 서버 주소를 등록하면 통화 중 AI가 호출합니다.

# 예약 관리 MCP 서버 (자사 인프라에서 실행)
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("clinic-appointments")

@mcp.tool()
def confirm_attendance(appointment_id: int) -> str:
    """예약을 확정 처리한다."""
    db.execute("UPDATE appointments SET reminded_at = ? WHERE id = ?",
               (time.time(), appointment_id))
    return "예약을 확정했습니다."

@mcp.tool()
def request_reschedule(appointment_id: int, preferred_date: str, preferred_time: str) -> str:
    """희망 일시로 리스케줄 요청을 접수한다."""
    db.execute("INSERT INTO reschedule_requests (apt_id, date, time) VALUES (?, ?, ?)",
               (appointment_id, preferred_date, preferred_time))
    notify_slack(f"리스케줄: 예약 {appointment_id}{preferred_date} {preferred_time}")
    return "리스케줄 요청을 접수했습니다."

@mcp.tool()
def mark_cancel(appointment_id: int, reason: str = "") -> str:
    """예약을 취소하고 사유를 남긴다."""
    db.execute("UPDATE appointments SET status = 'cancelled', cancel_reason = ? WHERE id = ?",
               (reason, appointment_id))
    return "예약을 취소했습니다."

appointment_id는 발신할 때 call_context.variables로 넘긴 값을 AI가 그대로 사용합니다. 도구 설명(docstring)은 AI가 언제 그 도구를 부를지 판단하는 근거이므로, 짧더라도 목적이 드러나게 씁니다.

3. 통화 예시 (정상 confirm)

AI: "안녕하세요, OOO 치과입니다. 김OOO 님 내일 오후 3시 예약 확인 전화드렸어요. 
    예정대로 오실 수 있으실까요?"
환자: "네, 갈게요."
AI: "네 감사합니다. 5분 전 도착 부탁드릴게요. 내일 뵙겠습니다."
[hang_up]

4. 통화 예시 (취소)

AI: "안녕하세요, OOO 치과입니다. 김OOO 님 내일 오후 3시 예약 확인..."
환자: "아 죄송한데 일이 생겨서 못 갈 것 같아요."
AI: "알겠습니다, 그럼 예약 취소해드릴게요. 다음에 다시 일정 잡고 싶으실 때 언제든 전화 주세요. 감사합니다."
[hang_up]

5. 구독 갱신 D-7 리마인더 — 결제 confirm

RENEWAL_PROMPT = """
당신은 OOO 구독서비스의 갱신 안내원입니다.

# 목적
{name} 님의 구독이 {expiry_date} 만료됩니다. 갱신 의사 확인.

# 첫 발화
"안녕하세요, OOO 입니다. {name} 님 구독이 {expiry_date} 만료 예정이라 알려드려요. 
계속 이용하실 거면 자동 갱신 처리해드릴까요?"

# 절차
- "네/계속" → confirm_renewal → 다음 결제일 안내 + hang_up
- "취소" → mark_cancel_subscription + 사유 받기 (선택)
- "나중에" → schedule_followup (며칠 후 다시 콜)

# 규칙
- 60초 이내
- 가격 인상 정보 안내 (있다면 한 줄)
- 결제 카드 정보 받지 말 것 (사이트로 안내)
"""

6. 비용

  • ClawOps Individual ₩19,000/월 (월 100건 리마인더 30-50분)
  • 일 100 콜 이상은 Business ₩99,000/월

7. 효과

  • 예약 no-show 율 -30~50%
  • 구독 갱신 confirm 율 ↑
  • 이메일·SMS 대비 도달률 2-3x

다음 단계

이전 글

학원 AI 상담 전화 만들기 — 학기·시간·비용 안내 + 상담 예약 자동화

ClawOps AI 전화 API로 시작하기

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