Skip to Content
레시피예약 접수 → 캘린더

예약 접수 → 캘린더 등록

네이버 스마트플레이스처럼 UpServe에 전용 연동이 없는 예약 채널도 에이전트가 다룰 수 있습니다. 브라우저를 직접 열어 예약 목록을 확인하고, 새 예약만 골라 구글 캘린더에 넣습니다.

이 레시피의 핵심은 “예약을 옮겨 적는 일”이 아니라 “이미 옮긴 예약을 두 번 넣지 않는 것”입니다.

무엇이 결과인가요

  • 정해진 주기마다 에이전트가 예약 화면을 확인합니다.
  • 새로 들어온 예약만 구글 캘린더에 일정으로 등록합니다.
  • 등록한 예약은 기록해 두어 다음 실행에서 중복으로 넣지 않습니다.
  • 취소·변경된 예약이 있으면 알려줍니다.

켜야 할 것

에이전트 설정 탭에서 아래를 준비합니다.

구분항목이 레시피에서 하는 일
스킬Google Calendar Integration일정 등록·조회·수정·삭제
도구웹 브라우저예약 화면 열기 (로그인이 필요하므로 HTTP 요청으로는 안 됩니다)
도구파일 읽기 / 파일 쓰기이미 등록한 예약 번호를 기록·대조
도구스케줄 생성확인 주기를 에이전트가 직접 등록

Google Calendar는 스킬 탭의 연동  서브탭에서 로그인 한 번으로 연결합니다.

1단계: 예약 화면에 로그인하기

네이버 스마트플레이스 같은 채널은 로그인이 필요합니다. 비밀번호를 에이전트에게 알려주지 마세요. 대신 화면을 넘겨받아 사용자가 직접 로그인하는 방식을 씁니다.

시스템 프롬프트에 이렇게 적어둡니다.

예약 화면에 접근할 때 로그인이 필요하면, 비밀번호를 묻지 말고 화면을 사용자에게 넘겨 직접 로그인하도록 요청한다. 로그인이 끝나면 이어서 진행한다.

에이전트가 로그인 화면을 만나면 화면 제어권을 잠시 사용자에게 돌려줍니다. 사용자가 직접 로그인하고 “완료”를 누르면 에이전트가 이어서 작업합니다. 이 방식은 에이전트가 비밀번호를 아예 다루지 않아 더 안전합니다.

세션이 유지되는 동안에는 다시 묻지 않지만, 로그인이 풀리면 다시 요청합니다. 사용자가 자리에 없을 때 로그인이 풀리면 그 회차는 넘어갑니다 — 이건 정상 동작이며, 다음 회차에 다시 시도합니다.

2단계: 시스템 프롬프트 작성

역할: 예약 접수 담당. 확인 대상: - 네이버 스마트플레이스 예약 관리 화면 매 실행마다 할 일: 1. 예약 화면을 열어 오늘 이후의 예약 목록을 확인한다. 2. bookings/registered.md 를 읽어 이미 등록한 예약 번호 목록을 가져온다. - 파일이 없으면 빈 목록으로 시작한다. 3. 목록에 없는 예약만 골라 구글 캘린더에 일정으로 등록한다. - 제목: "[예약] 고객명 / 인원" - 시작·종료: 예약 시각 기준 - 설명: 연락처, 요청사항, 예약 번호 4. 등록에 성공한 예약 번호를 bookings/registered.md 에 추가한다. 5. 이미 등록했던 예약이 취소·변경되었으면 캘린더 일정도 맞춰 고치고, 사용자에게 그 건만 알린다. 6. 새 예약도 변경도 없으면 아무 메시지도 보내지 않는다. 주의: 예약 번호가 중복 등록 방지의 유일한 기준이다. 번호를 기록하지 못한 경우 그 예약은 등록하지 않고 사용자에게 알린다.

중요한 부분은 셋입니다.

  • 예약 번호를 기준으로 대조 — 고객 이름이나 시각으로 대조하면 동명이인·시간 변경에서 중복이 생깁니다.
  • 기록 실패 시 등록하지 않기 — “등록은 했는데 기록을 못 한” 상태가 가장 위험합니다. 다음 실행에서 같은 예약이 또 들어갑니다.
  • 변화 없으면 침묵 — 매 회차마다 “새 예약 없음”이 오면 알림이 의미를 잃습니다.

3단계: 확인 주기 정하기

채팅에서 부탁합니다.

30분마다 예약 화면을 확인해서 새 예약을 캘린더에 넣어줘.

에이전트가 자기 스케줄을 등록합니다. 승인 카드가 뜨면 한 번 눌러주세요.

주기는 예약이 들어오는 빈도에 맞춥니다. 하루 몇 건이라면 1~2시간도 충분합니다. 주기가 짧을수록 SU가 비례해 늘어납니다.

한 에이전트가 동시에 가질 수 있는 활성 스케줄은 최대 5개입니다.

4단계: 첫 실행으로 확인하기

다음 주기를 기다리지 말고 직접 돌려봅니다.

지금 한 번 예약 화면을 확인해줘.

첫 실행에서는 기존 예약이 한꺼번에 캘린더에 들어갈 수 있습니다. 그게 싫다면 먼저 이렇게 시켜 기준선을 만들어 두세요.

지금 있는 예약들은 등록하지 말고, 번호만 기록해서 기준선으로 잡아줘.

다듬기

  • 광고 성과까지 맡기기 — 같은 에이전트에게 “매주 월요일에 광고 리포트를 확인해서 전환이 낮은 키워드를 정리해줘”라고 추가하면, 같은 로그인 세션으로 광고 화면도 함께 봅니다. 다만 입찰가를 실제로 바꾸는 것은 승인을 받고 하도록 지시해 두세요.
  • 캘린더 나누기 — “예약은 ‘매장 예약’ 캘린더에만 넣어줘”처럼 지정할 수 있습니다.
  • 알림 톤 — “당일 예약은 바로 알려주고, 그 외에는 조용히 등록만 해줘”.

다음 단계


고급 (Advanced)

중복 등록이 생기는 실제 경로

중복은 대부분 “캘린더 등록은 성공했는데 기록 파일 쓰기는 실패한” 사이의 틈에서 생깁니다. 완전히 없앨 수는 없지만 줄일 수 있습니다.

  1. 한 건 등록 → 즉시 기록을 반복하게 합니다. 여러 건을 모아 마지막에 한 번 기록하면 중간 실패 시 전부 중복됩니다.
  2. 시스템 프롬프트에 “캘린더에 같은 예약 번호가 이미 있는지 검색해 본 뒤 등록”을 추가합니다. 설명란에 예약 번호를 넣어 두었다면 캘린더 검색으로 대조할 수 있습니다. 기록 파일이 유실돼도 이 방어선이 남습니다.

기록 파일은 어디에 저장되나요

bookings/registered.md처럼 상대 경로로 저장한 파일은 그 에이전트의 개인 메모리 영역에 남고, 다음 실행에서 같은 경로로 다시 읽힙니다. 같은 팀의 다른 에이전트는 볼 수 없습니다.

예약이 계속 쌓이면 파일이 길어집니다. “지난 30일치만 남기고 오래된 건 지워줘”를 지시에 넣어두면 알아서 정리합니다.

전용 연동이 없는 채널 일반론

이 레시피는 스마트플레이스뿐 아니라 로그인 뒤에만 보이는 모든 관리 화면에 그대로 적용됩니다. 판단 기준은 하나입니다.

  • 로그인 없이 볼 수 있는 페이지 → HTTP 요청(가볍고 쌈)
  • 로그인이 필요하거나 클릭·스크롤이 필요한 화면 → 웹 브라우저 + 화면 넘기기

연동 허브 에 있는 서비스(구글·Notion·GitHub·Slack·Linear 등)는 이런 과정 없이 로그인 한 번으로 연결됩니다. 목록에 없는 서비스만 위 방식이 필요합니다.

비용 메모

  • 웹 브라우저는 HTTP 요청보다 호출당 비용이 큽니다. 확인 주기를 짧게 잡으면 비용이 빠르게 올라갑니다.
  • 변화가 없을 때 답장하지 않도록 지시해 두면 회차당 응답 생성 비용이 줄어듭니다.
  • 예약 화면 확인은 판단이 단순한 편이라 기본 등급인 Standard로 충분합니다. Ultra로 올릴 이유가 거의 없는 작업입니다.