Se connecter

효율적인 화실 운영을 위한 자동화 시도

최슬기
운영하는 화실이 공동운영 체제라 효율적인 시스템 구축이 필요했어.
그 중 제일 먼저 필요한 건 현재 업무 공백이 발생하는 '네이버 예약 관리 정비'
구체적인 문제 상황은, 현재 화실에서 사용하는 네이버 예약 원데이 시스템이야. 상품을 결제하고 당일까지 환불이 가능해서, 빈번한 당일 취소가 발생해서 선생님들이 많은 불편함을 겪었어.
그에 대한 대책으로 예약금을 받고, 리마인드 알림 문자를 여러 번 보내기로 합의했어. 그러다 보니 예약 시 즉각 대응의 필요성이 대두되었어...그러나 공동 운영이라 업무 분담이 모호하여 자동화를 시도해 보려고 해!
목표는 네이버 예약이 들어오면,
1.
즉각 확인, 예약금 1만원 입금 부탁 문자
2.
예약 확정 문자
3.
예약 전날 리마인드 문자
이렇게 보내는 거야! 그리고 이 업무는 모두 대시보드에서 관리/공유되는데, 이건 발전시켜서 서비스로 만들어보려구.
아직 클로드가 익숙치 않아서, 우선 네이버 예약이 들어오면 구글 스프레드시트에 예약자 정보가 바로 업데이트 될 수 있도록 세팅 먼저 해 봤어.
클로드 코드와 함께 한 순서는
먼저 네이버 예약 알림을 지메일로 받아
자동화를 도와주는 Make 서비스를 통해 지메일에 온 알림을 확인해
구글 시트와 연결해서 바로 확인할 수 있게 만들어
처음에는 아무것도 안되다가 테스트 예약을 반복해서 갈수록 하나 둘 씩 되더라고...ㅎ
이제 클로드로 문자 3개를 만들었어.
import os
import hmac
import hashlib
import time
import uuid
import requests
from dotenv import load_dotenv
load_dotenv()
STUDIO_NAME     = os.environ["STUDIO_NAME"]
BANK_NAME       = os.environ["BANK_NAME"]
BANK_ACCOUNT    = os.environ["BANK_ACCOUNT"]
BANK_HOLDER     = os.environ["BANK_HOLDER"]
API_KEY         = os.environ["COOLSMS_API_KEY"]
API_SECRET      = os.environ["COOLSMS_API_SECRET"]
SENDER_PHONE    = os.environ["SENDER_PHONE"]
def _auth_header() -> dict:
    timestamp = str(int(time.time()))
    salt = uuid.uuid4().hex[:8]
    signature = hmac.new(
        API_SECRET.encode(),
        (timestamp + salt).encode(),
        hashlib.sha256,
    ).hexdigest()
    return {
        "Authorization": (
            f"HMAC-SHA256 apiKey={API_KEY},"
            f" date={timestamp},"
            f" salt={salt},"
            f" signature={signature}"
        ),
        "Content-Type": "application/json",
    }
def send_sms(to_phone: str, message: str) -> dict:
    payload = {
        "message": {
            "to": to_phone,
            "from": SENDER_PHONE,
            "text": message,
        }
    }
    response = requests.post(
        "https://api.coolsms.co.kr/messages/v4/send",
        headers=_auth_header(),
        json=payload,
        timeout=10,
    )
    response.raise_for_status()
    return response.json()
def confirmation_message(customer_name: str, date: str, time_slot: str) -> str:
    return (
        f"[{STUDIO_NAME}] 예약 확인 안내\n\n"
        f"안녕하세요, {customer_name}님!\n"
        f"{date} {time_slot} 원데이 클래스 예약이 접수되었습니다.\n\n"
        f"─────────────────\n"
        f"예약금 1만원을 아래 계좌로 입금해 주세요.\n\n"
        f"은행: {BANK_NAME}\n"
        f"계좌번호: {BANK_ACCOUNT}\n"
        f"예금주: {BANK_HOLDER}\n\n"
        f"◎ 예약금 미입금 시 예약이 자동 취소됩니다.\n"
        f"◎ 당일 취소 및 노쇼의 경우 예약금은 환불되지 않습니다.\n"
        f"─────────────────\n"
        f"궁금한 점은 언제든지 문의해 주세요.\n"
        f"{STUDIO_NAME} 드림"
    )
def deposit_confirmed_message(customer_name: str, date: str, time_slot: str) -> str:
    return (
        f"[{STUDIO_NAME}] 예약이 확정되었습니다 :)\n\n"
        f"{customer_name}님, 예약금 입금이 확인되었습니다.\n"
        f"{date} {time_slot} 원데이 클래스가 확정되었습니다.\n\n"
        f"당일 편한 복장으로 오시면 됩니다.\n"
        f"궁금한 점은 언제든지 문의해 주세요.\n\n"
        f"{STUDIO_NAME} 드림"
    )
def reminder_message(customer_name: str, date: str, time_slot: str) -> str:
    return (
        f"[{STUDIO_NAME}] 내일 수업 안내\n\n"
        f"{customer_name}님, 안녕하세요!\n"
        f"내일 {date} {time_slot} 원데이 클래스가 예정되어 있습니다.\n\n"
        f"편한 복장으로 오시면 됩니다.\n"
        f"참석이 어려우신 경우 미리 알려주시면 감사하겠습니다.\n\n"
        f"{STUDIO_NAME} 드림"
    )
최종 목표는 문자 전송이야!
계속 막히고 나한텐 이것도 너무너무 어려워서 우선 여기까지만 해서 공유할게!!
(++ 새벽 3시, 클로드를 더 알아가면서 만든 파일 구조 추가. 나는 여기서 모듈2를 만들고 있어)
Clauders
'Clauders' 구독하기
사이트를 구독하면 새 포스트 등 최신 업데이트를 알림과 메일로 가장 먼저 받아보실 수 있습니다.
Slashpage에 가입하고 'Clauders'을 구독하세요!
구독
6
👍
5
R
Rony 3
오 대박이다! 우리 부모님도 한옥스테이 운영하면서 요런 시스템의 어려움이 있는데, 자동화 해드리고 싶거든! 나중에 케이스 스터디 겸 커피챗 하고싶다!
👍
1
최슬기
오 좋아! 나도 언어 공부에 관심 많은데 인상깊게 봤어 ㅎㅎ 커피챗 완전 재밌을 거 같아!!
S
Shawn 션
오! 너무 흥미롭다. 화이팅!
최슬기
응원 고마워!! 열심히 해서 꼭 완성 해 볼게!!!ㅎㅎㅎ
👍
1
윤태섭
와 리얼 사례다
make 가 잘 해놓은 프로세스도. make → claude 로 해서 다 이전하는것도 가능할거같고,
공용 대시보드 진짜 좋은거같아. 이메일로 다 처리를 하는구나. 나도 이런 사례 궁금했었어.
유사한 예약 서비스를 베타 런칭했었는데, 네이버예약이랑 어떻게 연동하지? 고민했었는데 여기 답이 있었네
👍
1
최슬기
와우 태섭의 프로젝트에서 내가 배울 게 엄청 많은 거 같아!
맞아 사실 궁극적으로 화실에 특화된 예약/회원관리 시스템을 만들고 싶어 ㅎㅎ 현재는 스튜디오메이트를 사용 중인데, 그게 필라테스 같은 운동 서비스에 특화 된 거 같아서 아쉬운 점이 많아... 열심히 하다보면 되겠지!!ㅜㅜ
Voir plus de commentaires récents