지피터스 여러분의 멱살을 잡아드려요 (feat. 멱살봇 프로젝트 👊)

소개

  • 지피터스 멤버들에게 스터디를 더 잘 참여하도록(?) 멱살을 부여잡아주는(?) 멱살봇을 만들고자 함

  • 여행가J님이 멤버들 한 명 한 명 톡방에서 멘션하고, 출석 안하면 전화해서 왜 안왔냐고 하면서 웃으면서 멱살캐리(?) 하셔서 멤버들의 참여율이 높았음

  • 희망자에 한해 멱살을 대신 잡아드려요

진행 방법

어떤 채널이 가장 좋을까?

  • 멤버에게 알림을 주면서도, 멤버의 입력(인증?)을 받아야 하므로 일방형 채널은 쓰지 않기

    • ex) 문자로 알림만 주면, 멤버가 인증할 수 없음

  • 이메일은 묻혀서 잘 안볼 것 같음

  • 카톡은 API 제공을 안하므로 불가능 → 텔레그램이면 어떨까?

  • 버블로 UI 구현하기?

결론 - 일단 텔레그램!

워크플로 초안

  • 멤버가 전화번호, 수강스터디, 스터디요일, 텔레그램 ID 입력 후 강도 (상,중,하), 톤(강하게, 부드럽게) 선택하여 폼 제출

    • 강하게 → 설마 안하시게요? 실망이에요. 이런느낌이고

    • 부드럽게 → 하실 수 있어요! 이거 한 번 읽어봐요!! 해볼 수 있죠? 아자아자 화이팅! 이런 느낌

  • 미리 기획된 독촉 항목이 필요하다

    • 아침 → 사례글 1개 보내주기 (읽고 댓글남기세요. 이 사례는 “이 포인트”로 읽으세요)

    • 점심 → 댓글 안남긴 사람한테 재촉하기 (댓글 남기세요. 화장실 가서 똥 싸는 척 하면서 사례글 읽고 댓글 남기세요)

    • 퇴근 후 → 퇴근 잘 하셨나요? 이제 사례글 쓰러 가야죠.

    • 스터디 요일 2일 전 → 사례글 썼나요? 설마 이번 주 안 써요…?

    • 스터디 요일 당일 → 오늘 좋은 발표 나눠주실거죠? 발표 꼭 하실거죠? 엥 설마 안하시게요….?

  • 관리자 화면도 필요?

    • 닿이 아침마다 보내줄 사례글 선발해서 올리기

멤버들 반응 살피기

얻은 인사이트

  • 왠지 최소 5명 이상은 원할 것 같다

  • 멱살 강도를 초반에 선택하게끔 하면 좋겠다 (엄하게 vs 부드럽게 / 잦은 빈도 vs 가끔)

  • 대시보드? 처럼 함께 달리는 게 시각적으로 보이면 좋겠다

클로드와 기획 구체화

  1. 멤버에게 기본 정보 (텔레그램 chat_id, 이름, 스터디명, 스터디요일 등)를 받는 UI가 필요 → 버블

  2. 그 데이터를 저장해둘 곳이 필요(DB) → 버블

  3. 특정 요일, 시간에 트리거 되어야 함 → n8n 스케줄링

  4. 매일 다른 멘트가 나가야 함 → n8n에서 LLM 사용

  5. 관리자가 사례글 DB를 쌓아야 함 → 버블

검은 화면에 한국어 텍스트 스크린샷

클로드와 워크플로 설계 구체화

텔레그램 챗봇 만들기

  • 클로드에게 물어가면서 했어요

  • @BotFather 을 검색해서 /start (대화시작)

  • /newbot -> myeoksal_bot 차례로 입력하여 새로운 봇을 생성

아이폰의 문자 메시지 스크린샷

버블 DB 설계하기

'스터디' 데이터 설계

  • 목표 -> 스터디 별 목표에 따른 독려 메시지, 과제 추천 등을 해주기 위함

  • 요일 -> n8n에서 스케줄링 할 때 오늘의 요일과 스터디의 요일을 비교하도록

버블 UI 설계

(참고) 텔레그램 나만의 Chat_id 얻는 법

  • @raw_info_bot 을 검색해서 RawDataBot 을 선택

  • /start 입력하면 내 고유 chat_id를 받을 수 있음

    • 이 chat_id 만 있으면 특정 봇이 나한테 메시지를 보낼 수 있음

버블에서 API를 외부로 쏴주기 + N8N에서 버블 노드 설정하기

  • 멤버가 버블에서 버튼을 클릭하면 n8n 워크플로가 트리거 되어야 함

  • 내 버블 앱에서 API key를 생성하기

  • 참고) 버블에서 API를 쏘는 거는 유료 버전 필요 (외부 API를 받는 거는 무료도 가능)

  • 버블 API 설정 따라하기

  • n8n에서 버블 노드 커넥션 설정하기

N8N 설계

버블 워크플로 설계

멱살 잡히러가기 버튼을 누르면

  • 멤버 create

  • 멤버가 입력한 chat_id와 name을 임시저장소 (custom state)에 저장해둠

    • 회원가입 구조가 아니기 때문에, 멤버 입력값을 다음 화면에서 불러오기 위해

  • 텔레그램 실행되고 멱살봇 채팅이 열림

  • 채팅 Start 누르면 비로소 멱살봇이 멤버에게 메시지를 보낼 수 있게 됨

  • 아래 이미지처럼 테스트 사례글 받기 버튼 누르면, n8n 워크플로가 웹훅으로 트리거됨!

    • 테스트 사례글 한 개가 날아옴

버블 API 연결

향후 계획

  • 멤버가 등록할 때 강도와 빈도를 선택하는 UI 추가

  • 일단 특정 시간이 되면 등록한 멤버 전체에게 사례글이 발송되도록 구현이 되어있음

    • 멤버의 응답(과제인증 등)에 따른 조건 처리한 워크플로 설계

  • LLM 또는 AI agent를 써서 멤버의 선택(강도, 빈도)에 따른 각기 다른 멘트로 텔레그램 채팅이 발송되도록 처리

으아 사례는 진작에 만들었는데 겨우 급하게? 사례글 씁니다..

다음 번 고도화해서 올게요ㅜ

7
5개의 답글

👉 이 게시글도 읽어보세요