← 블로그 목록2. 가게 컨텍스트 (
유즈케이스2026-06-01
식당 AI 예약 전화 만들기 — 예약·메뉴·영업시간 자동 응대 (월 19,000원)
식당 AI 예약 전화 만들기 — 예약·메뉴·영업시간 자동 응대 (월 19,000원)
전화로 예약 받는 식당이라면, 영업 중에 전화 받느라 서빙 끊기고 영업 외에는 예약을 놓친다. ClawOps 070 + AI 로 24시간 예약·메뉴·영업시간 안내를 자동 응대. 월 19,000원으로 가능.
0. 사전 준비
- ClawOps 가입 (https://claw-ops.com, 무료)
- Python 3.10+
- 가게 정보 (메뉴/영업시간/예약 정책)
1. 070 발급 + AI Agent 시작
from clawops import ClawOps
from clawops.agent import ClawOpsAgent, OpenAIRealtime
client = ClawOps()
number = client.numbers.create()
print(f"이 070 번호를 가게 입구·네이버 플레이스·인스타에 노출: {number.phone_number}")
2. 가게 컨텍스트 (store.json)
{
"name": "OOO 식당",
"type": "한식",
"address": "서울시 강남구 OOO로 123",
"hours": "11:30-22:00 (브레이크 15:00-17:00, 일요일 휴무)",
"tables": [
{"size": 2, "count": 6},
{"size": 4, "count": 8},
{"size": 6, "count": 3}
],
"menu_summary": "한정식 코스 (런치 2.5만원, 디너 4.5만원), 단품 1.2-2만원, 와인 페어링 +3만원",
"reservation_policy": "예약은 2시간 전까지, no-show 시 다음 예약 거절",
"parking": "지하 주차 2시간 무료",
"kid_friendly": true,
"wheelchair_accessible": false
}
3. AI Agent system prompt 자동 생성
import json
store = json.load(open("store.json"))
SYSTEM_PROMPT = f"""
당신은 {store['name']} ({store['type']}) 의 예약 담당 직원입니다.
# 가게 정보
- 주소: {store['address']}
- 영업: {store['hours']}
- 메뉴 요약: {store['menu_summary']}
- 주차: {store['parking']}
- 아이 동반: {'가능' if store['kid_friendly'] else '불가'}
- 휠체어: {'가능' if store['wheelchair_accessible'] else '불가'}
# 좌석
{json.dumps(store['tables'], ensure_ascii=False)}
# 예약 정책
{store['reservation_policy']}
# 행동 규칙
- 짧게, 친절하게, 한국어로만 응대
- 예약 요청시: 날짜, 시간, 인원 받기 → 가능 여부 답변
- 가능하면 예약자 성함 + 연락처 받고 hang_up
- 메뉴/영업/주차 같은 단순 문의면 답변 후 hang_up
- 알 수 없는 질문 (혈자이 점심 메뉴 변경, 단체 예약 50명 등) 은
"사장님께 확인 후 연락드린다" 후 끝내고 transcript 에 메모
# 절대 금지
- 가격 흥정 수락
- 영업시간 외 예약 받기
- 휴무일 예약 받기
- 결제 정보 받기
"""
4. 예약 가능 확인 — 자체 캘린더 연동
import datetime
from zoneinfo import ZoneInfo
# 예약 데이터 (SQLite/Postgres 등)
import sqlite3
db = sqlite3.connect("reservations.db")
def check_availability(date: str, time: str, party_size: int) -> bool:
"""동시 좌석 점유 체크."""
dt = datetime.datetime.fromisoformat(f"{date}T{time}").astimezone(ZoneInfo("Asia/Seoul"))
# 휴무일·영업시간 외 체크
if dt.weekday() == 6: # 일요일
return False
if not (11 <= dt.hour < 22 and not (15 <= dt.hour < 17)):
return False
# 인원 수용 가능 체크
booked = db.execute(
"SELECT SUM(party_size) FROM reservations WHERE date = ? AND ABS(strftime('%s', time) - strftime('%s', ?)) < 5400",
(date, time),
).fetchone()[0] or 0
capacity = sum(t["size"] * t["count"] for t in store["tables"])
return booked + party_size <= capacity
def create_reservation(date, time, party_size, name, phone):
db.execute(
"INSERT INTO reservations (date, time, party_size, name, phone) VALUES (?, ?, ?, ?, ?)",
(date, time, party_size, name, phone),
)
db.commit()
5. tool 등록 후 serve
import asyncio
agent = ClawOpsAgent(
from_=number.phone_number,
session=OpenAIRealtime(
system_prompt=SYSTEM_PROMPT,
language="ko",
voice="marin",
),
)
# 도구는 @agent.tool 로 등록 (async, 문자열 반환)
@agent.tool
async def check_availability_tool(date: str, time: str, party_size: int) -> str:
"""가게 예약 가능 여부 확인. date=YYYY-MM-DD, time=HH:MM."""
ok = check_availability(date, time, party_size)
return "가능" if ok else "불가"
@agent.tool
async def create_reservation_tool(date: str, time: str, party_size: int, name: str, phone: str) -> str:
"""예약 확정. AI 가 예약 가능 확인 후 호출."""
create_reservation(date, time, party_size, name, phone)
return f"예약 확정. 예약번호 R{int(datetime.datetime.now().timestamp())}"
asyncio.run(agent.serve())
6. 통화 예시 (실제 대화 흐름)
손님: "여보세요, 내일 저녁 7시 4명 자리 있나요?"
AI: "내일 저녁 7시 4명, 확인해드리겠습니다. 잠시만요... 네, 가능하시네요.
예약자 성함과 연락처 알려주시겠어요?"
손님: "김OOO, 010-1234-5678 입니다."
AI: "네 김OOO 님, 내일 7시 4명으로 예약 확정해드렸습니다.
예약번호 R1234567 이고, 변경 필요하시면 이 번호로 다시 전화 주시면 됩니다.
감사합니다."
[hang_up]
7. 통화 결과 → Slack 또는 SMS 확인
# webhook 으로 통화 요약 완료 이벤트 받기
# ClawOps webhook 은 application/x-www-form-urlencoded, 필드는 PascalCase
import json
@app.route("/clawops-event", methods=["POST"])
def on_event():
if request.form.get("Event") == "summary.completed":
# SummaryJson 은 직렬화된 문자열 → JSON.parse
summary = json.loads(request.form.get("SummaryJson") or "{}")
# 점주한테 Slack/SMS 알림
notify_owner(f"예약 통화: {summary.get('coreSummary')}")
8. 비용 (월 100건 예약 기준)
- ClawOps Individual ₩19,000/월 (수신 1,000분 포함 = 평균 통화 1분 × 100건 OK)
- OpenAI Realtime 통화 시간만큼 (~₩100-200/분)
- 합계 월 약 ₩40,000-50,000
9. 확장 — 외국인 손님 대응
# OpenAI Realtime 은 멀티링구얼이라, 기본 language 만 지정하고
# 다국어 전환은 system_prompt 로 지시합니다.
session=OpenAIRealtime(
system_prompt="기본 한국어. 손님이 영어/일본어/중국어로 시작하면 그 언어로 응대.",
language="ko",
)
한국 식당이 외국인 관광객 받기 좋아짐.
다음 단계
관련 글 더 보기
유즈케이스
견적 문의 전화 자동 응대 AI — 인바운드 lead qualification 자동화
광고/마케팅으로 들어오는 견적 문의 전화를 AI 가 1차 응대해서 회사명·연락처·예산·일정 받아 영업팀 lead 큐로. 영업 시간외 100% 응대.
유즈케이스부재중 전화 자동 응대 AI — 영업시간 외 24시간 메모·콜백 자동화
영업시간 외 전화에 AI 가 응답하고 용건·연락처 받아 다음 영업일에 자동 callback 큐로 처리. 부재중 손실 0.
유즈케이스본인인증 받는 AI 전화 만들기 — DTMF + 음성 동의로 ARS 대체
한국 070 인바운드 + DTMF + 음성 동의로 본인인증을 한 통화에 끝내는 가이드. 기존 ARS 대비 자연스러움 + 자동 동의 수집 + 컴플라이언스.
유즈케이스정기 확인 전화 자동화 — 구독·결제·예약 리마인더 AI 통화
구독 갱신·결제 예정·예약 D-1 같은 정기 알림을 ClawOps 070 + AI 자동 전화로 처리. 이메일·SMS 보다 도달률 높고 대화형 confirm 가능.
유즈케이스학원 AI 상담 전화 만들기 — 학기·시간·비용 안내 + 상담 예약 자동화
어학원·입시학원·취미학원 — 070 + AI 로 커리큘럼·반편성·수강료·상담 일정 자동 응대. 카운셀러 인건비 절감 + 24시간 응답률 100%.