LeanX

실전 ③: 텔레그램 Q&A 봇

BotFather로 텔레그램 봇을 발급받고, Telegram 트리거로 메시지를 받아 AI 에이전트가 답을 만들고 다시 텔레그램으로 응답하는, 대화 기억까지 갖춘 Q&A 챗봇을 완성합니다.

마지막 실전 프로젝트입니다. 텔레그램에서 말을 걸면 AI가 답해 주는 나만의 Q&A 봇을 만듭니다. 지금까지 배운 웹훅(3강), 인증(5강), AI 에이전트(6강)가 모두 등장하는 종합 프로젝트입니다. 완성하면 24시간 일하는 안내 데스크 직원이 생기는 셈입니다.

전체 설계도

워크플로우 흐름

Telegram Trigger (메시지 수신)
  → AI Agent (Chat Model + 시스템 프롬프트 + Memory)
  → Telegram (답변 전송, 원래 대화방으로)

준비: 텔레그램 봇 발급받기

텔레그램 봇은 BotFather라는 공식 봇에게 신청해서 만듭니다. 봇들의 출생신고를 담당하는 관공서라고 생각하면 됩니다. 신고가 끝나면 API 토큰(봇의 주민등록증)을 발급해 줍니다.

봇 생성과 워크플로우 조립

  1. 텔레그램 앱에서 BotFather를 검색해 대화를 시작하고 /newbot 명령을 보냅니다.
  2. 봇의 표시 이름과 아이디(반드시 bot으로 끝나야 함, 예: mycafe_qa_bot)를 정하면 API 토큰을 받습니다. 이 토큰은 비밀번호이니 복사만 하고 아무 데도 공개하지 마세요.
  3. n8n 새 워크플로우에 'Telegram Trigger' 노드를 추가하고, 새 Credential을 만들어 토큰을 붙여넣습니다. 트리거 대상은 'Message'로 설정합니다.
  4. 그 뒤에 'AI Agent' 노드를 연결합니다. 프롬프트 입력을 표현식으로 바꿔 트리거에서 넘어온 message.text 값을 넣습니다.
  5. Chat Model 소켓에 사용할 모델을 연결하고, 아래 예시처럼 System Message를 작성합니다.
  6. Memory 소켓에 'Simple Memory'를 추가합니다. Session ID를 표현식으로 message.chat.id 값으로 지정하면, 대화방별로 기억이 분리되어 여러 사용자가 동시에 써도 섞이지 않습니다.
  7. 마지막으로 'Telegram' 노드('Send Message' 동작)를 추가합니다. Chat ID에는 트리거의 message.chat.id를 표현식으로 넣고, Text에는 AI Agent의 output을 넣습니다.
  8. 'Listen for test event' 상태에서 텔레그램으로 봇에게 말을 걸어 전체 흐름을 테스트합니다.
  9. 답이 잘 오면 Active를 켭니다. 이제 봇이 24시간 응답합니다.

Q&A 봇 시스템 프롬프트 예시

당신은 온라인 클래스 '주말 베이킹 스쿨'의 텔레그램 안내 봇입니다.

[아는 정보]
- 수업: 매주 토요일 오전 10시~12시, 강남 스튜디오
- 수강료: 4주 과정 20만 원, 1회 체험 6만 원
- 환불: 시작 7일 전까지 전액, 이후 50%
- 준비물: 앞치마만 지참 (재료와 도구는 제공)

[규칙]
- 답변은 3문장 이내로 짧고 친근하게, 존댓말로 합니다.
- 위 정보에 없는 질문은 지어내지 말고 "운영자님께 전달해 드릴게요. 010-0000-0000으로 문의하셔도 됩니다"라고 답합니다.
- 수업과 무관한 질문에는 정중히 안내 범위가 아니라고 말합니다.

Session ID를 대화방 ID(chat.id)로 지정하는 것이 이 레슨의 숨은 핵심입니다. 이 설정이 없으면 모든 사용자의 대화가 하나의 기억에 뒤섞여, A님의 질문 맥락이 B님 답변에 끼어드는 사고가 납니다.

봇 토큰이 유출되면 누구나 내 봇을 조종할 수 있습니다. 토큰은 반드시 n8n Credential에만 저장하고, 유출이 의심되면 BotFather에서 /revoke 명령으로 즉시 재발급하세요. 또한 AI 응답에는 모델 비용이 들므로, 공개 봇이라면 사용량 한도를 미리 확인해 두세요.

한 단계 업그레이드 아이디어

  • 구글 시트를 Tools로 연결해 실시간 잔여 좌석을 조회해서 답하게 하기
  • 봇이 답하지 못한 질문을 시트에 기록해 FAQ를 계속 보강하기
  • '상담원 연결' 키워드가 오면 Slack으로 운영자를 호출하는 IF 분기 추가하기
  • Simple Memory를 Postgres 기반 메모리로 바꿔 재시작 후에도 대화 기록 유지하기

수고하셨습니다! 코스를 마치며

10개의 레슨을 통해 트리거와 노드, 웹훅, 핵심 노드 5종, 인증, AI 에이전트, 그리고 실전 자동화 3종(메일 분류, 주간 리포트, Q&A 봇)까지 완주했습니다. 이제 여러분의 반복 업무 하나를 골라 '트리거는 무엇이고, 판단은 누가 하고, 결과는 어디로 보낼까?'를 그려 보세요. 그 그림이 곧 다음 워크플로우입니다.