본문 바로가기
이노자일

상담 예약 버튼을 만든 뒤에야 보인 것들

비하인드 더 빌드수정 5분 읽기이노자일

핵심 요약

시간을 고르는 화면만으로 예약 과정이 끝나는 것은 아니었습니다. 고객이 약속을 안심하고 기다릴 수 있도록 일정 차단, 확정과 취소 안내, 캘린더 등록과 전날 알림을 연결하며 확인한 내용을 기록했습니다.

상담 예약 화면을 처음 만들었을 때는 고객이 날짜와 시간을 고르고 연락처를 남기면 충분하다고 생각했습니다. 요청은 잘 접수됐고 관리자 화면에도 들어왔습니다.

그런데 직접 예약해 보니 그다음이 비어 있었습니다. 지금 고른 시간이 확정된 것인지, 일정이 바뀌면 어떻게 되는지, 상담 전날까지 무엇을 기다려야 하는지 고객은 알기 어려웠습니다.

예약을 받는 화면은 있었지만 약속을 운영하는 과정은 아직 없었던 셈입니다.

상담을 예약한 고객과 약속을 확인하는 운영자가 하나의 흐름으로 이어지는 모습

예약 가능한 시간은 실제 일정과 같아야 했습니다

운영하다 보면 상담을 받을 수 없는 날이 생깁니다. 연휴처럼 며칠을 비워야 할 때도 있고 외부 일정 때문에 특정 요일의 오후만 막아야 할 때도 있습니다.

예약 화면과 실제 일정이 다르면 고객은 고를 수 있는 시간을 골랐는데 다시 조정을 요청받게 됩니다. 작은 불편처럼 보여도 첫 만남을 앞둔 고객에게는 서비스의 신뢰를 판단하는 경험이 될 수 있습니다.

그래서 기간과 요일, 시간을 조합해 상담이 어려운 구간을 정할 수 있게 했습니다. 하루 전체를 받을 수 없는 날은 선택 화면에서 아예 제외하고 그만큼 다음 평일을 보여 줬습니다. 선택할 수 없는 날짜를 흐리게 늘어놓는 것보다 실제로 고를 수 있는 시간을 보여 주는 편이 낫다고 보았습니다.

이미 예약 화면을 열어 둔 사이 운영자가 일정을 막는 경우도 생각했습니다. 고객 화면에 시간이 남아 있더라도 제출하는 순간 최신 일정을 다시 확인합니다. 같은 시간을 다른 사람이 먼저 예약한 경우도 이때 한 번 더 확인합니다.

화면에 보이는 상태와 실제로 저장되는 상태가 어긋나지 않게 하는 일이었습니다.

이미 잡힌 약속은 시스템이 대신 취소하지 않았습니다

새로 막은 시간에 기존 상담이 들어 있을 수도 있습니다. 이 경우 예약을 자동으로 지우지 않고 운영자에게 겹치는 일정과 시간을 보여 주도록 했습니다.

고객은 그 약속을 위해 이미 시간을 비워 두었을 수 있습니다. 운영 편의를 위해 시스템이 조용히 취소해 버리기보다, 상황을 확인한 사람이 고객에게 설명하고 시간을 다시 맞추는 것이 옳다고 판단했습니다.

자동화가 편리해도 고객과 한 약속을 바꾸는 판단까지 맡길 필요는 없었습니다.

요청과 확정을 구분해 알려 주었습니다

고객이 시간을 고르면 먼저 접수 안내가 갑니다. 운영자가 일정을 확인해 확정하면 다시 확정 메일을 보냅니다. 확정 안내 메일에는 구글 캘린더에 바로 추가할 수 있는 링크와 일정 파일을 넣었습니다. 취소할 때는 취소 안내와 다시 예약할 수 있는 주소를 보냅니다.

운영자의 실수도 고려했습니다. 확정이나 취소 버튼을 누르면 고객에게 메일이 발송된다는 사실을 먼저 보여 주고, 같은 상태를 다시 저장했을 때는 같은 메일이 반복해서 나가지 않도록 했습니다.

상담을 확정할지는 사람이 결정하고, 결정한 내용을 빠뜨리지 않고 전달하는 일은 시스템이 맡습니다.

상담 전날에는 한 번 더 알립니다. 대상은 확정된 약속만으로 정했습니다. 아직 확정하지 않은 요청에도 알림이 가면 고객이 일정이 잡힌 것으로 오해할 수 있기 때문입니다. 같은 약속에 알림이 두 번 발송되지 않도록 발송 기록도 함께 남깁니다.

예약 요청에서 일정 확인, 확정 안내와 전날 알림까지 이어지는 상담 운영 흐름

캘린더에는 필요한 만큼만 연결했습니다

처음에는 구글 계정을 직접 연결하는 방식을 떠올렸습니다. 하지만 지금의 상담량을 생각하면 별도의 인증 정보와 연동 오류까지 관리하는 방식은 지나쳤습니다.

고객에게는 확정 메일에서 자신의 캘린더에 일정을 넣을 수 있게 하고, 운영자는 상담 일정을 구글 캘린더에서 구독해 볼 수 있게 했습니다. 캘린더에서 예약 내용을 직접 고치면 사이트에도 반영되는 양방향 연동은 하지 않았습니다.

구독 일정은 바로 나타나지 않을 수 있습니다. 시험했을 때는 약 한 시간 뒤에 보였지만 갱신 시점은 구글이 정하므로 언제나 같은 시간을 기대할 수는 없습니다. 실시간 반영이 꼭 필요한 규모가 된다면 그때 연동 방식을 다시 검토할 수 있습니다.

지금 필요한 범위와 나중에 필요할 가능성을 구분하니 기능을 무겁게 만들지 않고도 운영에 쓸 수 있었습니다.

실제 메일함에서 처음부터 끝까지 확인했습니다

개발 화면에서 ‘발송 성공’이라고 표시되는 것과 고객의 메일함에 실제로 도착하는 것은 다른 문제입니다. 운영 사이트에서 시험 상담을 접수하고, 확정하고, 취소하면서 각 단계의 메일을 직접 받아 봤습니다.

접수 확인과 운영자 알림, 확정 안내, 취소 안내가 모두 도착했습니다. 확정해 둔 상담에는 전날 오전 9시에 알림도 왔습니다. 확정 메일에 넣은 일정 파일은 메일함에서 날짜와 시간이 담긴 일정 카드로 표시됐고 한국 시간도 어긋나지 않았습니다.

코드가 실행됐다는 기록보다 고객이 실제로 받는 화면을 확인하는 과정이 더 중요했습니다. 메일 제목이 알아보기 쉬운지, 시간이 맞는지, 다음 행동을 찾을 수 있는지도 함께 볼 수 있었기 때문입니다.

만들고 나니 제안서에서 볼 항목도 달라졌습니다

홈페이지 제작 제안서에는 ‘상담 예약 기능’이라는 한 줄이 들어가곤 합니다. 저희가 직접 만들어 보니 그 한 줄 안에 들어갈 수 있는 범위가 생각보다 넓었습니다.

고객이 시간을 선택하는 데서 끝나는지, 운영자가 가능한 시간을 관리할 수 있는지, 요청과 확정을 구분하는지, 일정 변경을 고객에게 어떻게 알리는지에 따라 실제 운영 경험이 달라집니다. 메일이 발송됐다는 기록만 확인하는지, 실제 받은 편지함과 캘린더까지 점검하는지도 살펴볼 만했습니다.

모든 사이트에 직접 만든 예약 시스템이 필요한 것은 아닙니다. 상담량이 많거나 여러 담당자의 일정을 함께 관리한다면 검증된 예약 서비스를 쓰는 편이 나을 수 있습니다. 반대로 상담 정보가 고객 관리 흐름과 긴밀하게 이어지고 안내 방식을 세밀하게 정해야 한다면 직접 구성하는 이유가 생깁니다.

어느 방식을 고르든 예약 화면의 모양보다 그 뒤에서 약속이 어떻게 관리되는지를 먼저 확인하는 편이 좋았습니다.

아직 남아 있는 범위

현재 고객이 직접 예약을 취소하는 기능은 없습니다. 일정 변경이 필요하면 문의를 받아 운영자가 처리합니다. 전날 오전 9시가 지난 뒤 확정한 다음 날 상담에는 전날 알림이 나가지 않습니다. 구글 캘린더 구독도 실시간이 아니며 캘린더에서 고친 내용을 사이트로 가져오지는 않습니다.

지금 운영 규모에서는 이 범위로 시작했습니다. 실제 상담이 늘면서 같은 불편이 반복되는 지점을 확인한 뒤 다음 기능을 정할 생각입니다.

예약 기능을 완성하며 가장 오래 남은 것은 기능의 수가 아니었습니다. 고객이 시간을 고른 순간부터 상담이 시작되는 순간까지, 약속이 끊기지 않고 이어지는지가 더 중요했습니다.

자주 묻는 질문

별도의 예약 서비스를 사용하는 편이 더 낫지 않나요?
상담량이 많거나 여러 사람의 캘린더를 실시간으로 맞춰야 한다면 전문 예약 서비스가 효율적일 수 있습니다. 필요한 안내 방식과 고객 관리 흐름이 분명하다면 직접 구성하는 방법도 있습니다. 기능 이름보다 실제 운영 조건을 먼저 비교하는 것이 좋았습니다.
예약을 신청하면 바로 확정된 것인가요?
아닙니다. 고객이 시간을 선택하면 먼저 예약 요청으로 접수되고 운영자가 일정을 확인한 뒤 확정 안내를 보냅니다. 확정 전 요청과 확정된 약속이 섞이지 않도록 구분했습니다.
자동 메일이 잘못 발송될 가능성은 없나요?
확정과 취소는 운영자가 판단한 뒤 실행합니다. 실행 전에는 고객에게 메일이 발송된다는 안내를 보여 주며 같은 상태를 다시 저장해도 같은 안내가 반복해서 발송되지 않도록 했습니다.

관련 글

내 프로젝트, 시작해도 될까?

요구사항·예산·리스크·AI 활용, 개발 전 준비사항을 약 3분 동안 점검해 드려요.

3분 무료 진단 시작

12문항 응답 후 이름·이메일·현재 단계를 입력하면 결과를 확인할 수 있어요.

자주 듣는 이야기 — “개발사가 아니라 비즈니스 파트너를 만난 기분.”