본문으로 건너뛰기
n8n.io 인기 템플릿 해부 · 2/40시리즈 보기 →

n8n 텔레그램 AI 비서 만들기 — 음성으로 물어도 이메일·일정을 찾아주는 Angie

· 약 7분
Datapopcorn CEO / AI automation educator
이 글과 연결된 글 보기
7편 · 21개 연결
100%
n8n 텔레그램 AI 비서 만들기 — 음성으로 물어도 이메일·일정을 찾아주는 Angien8n 워크플로우 자동복구 템플릿 — AI가 승인 없이 운영 워크플로우를 직접 고친다n8n Calendly 링크 자동생성 — 웹훅 요청 하나로 1회용 예약 링크 만들기n8n 고객 온보딩 자동화 — HubSpot 등록과 이메일 드립 시퀀스, AI 없이 만들기폼 제출 한 번으로 서버에 Docker 앱을 배포하는 n8n 워크플로우 — Hostinger 공식 템플릿, 셀프호스팅과 유료 VPS 둘 다 필요n8n Jamf 패치 관리 자동화 — 슬랙으로 받는 소프트웨어 컴플라이언스 리포트n8n으로 반복업무 자동화 포트폴리오 만들기

드래그로 이동 · 휠/두 손가락으로 확대 · 방향키로 글 선택 · 0으로 맞춤. 실선: 본문 링크, 점선: 시리즈·주제의 대표 연결.

표시된 글 7편 목록
전체 글 연결 탐색

n8n.io 공식 템플릿 마켓플레이스에 공개된 워크플로우를 가져오면, 텔레그램에 음성이나 텍스트로 말을 걸었을 때 이메일·일정·할 일·연락처를 찾아 답하는 개인 비서 "Angie"를 만들 수 있습니다.

이 템플릿 하나로 보여줄 수 있는 것​

면접에서 "AI 에이전트 만들어본 적 있어요?"라는 질문을 받으면 대부분 챗봇 화면 하나를 떠올립니다. 이 템플릿은 그보다 한 단계 더 구체적으로 답할 수 있게 해줍니다. "텔레그램으로 음성이나 텍스트를 보내면, AI 에이전트가 이메일·캘린더·할 일 DB 중 필요한 곳을 스스로 찾아가 답을 만들어주는 개인 비서를 구성해봤습니다"라고 말할 수 있습니다.

문장 하나지만 안에 들어간 역량은 세 가지입니다.

  • 음성 입력 분기 처리 — If 노드로 들어온 메시지가 음성인지 텍스트인지 먼저 가르고, 음성이면 Speech-to-Text로 변환해 이후 로직은 텍스트 하나로 통일한 경험
  • 여러 도구를 가진 AI 에이전트 설계 — 이메일, 캘린더, 데이터베이스 두 곳을 각각 별도 도구로 붙여, 에이전트가 질문 내용에 따라 필요한 도구만 골라 호출하게 만든 경험
  • 외부 데이터베이스 연동 — Airtable과 비슷한 오픈소스 서비스 Baserow에 저장된 할 일·연락처 데이터를 n8n에서 조회해본 경험

이 세 가지는 텔레그램 비서뿐 아니라 사내 슬랙 봇, 고객 상담 챗봇, 음성 메모 정리 도구처럼 "여러 정보원을 오가며 자연어로 답하는" 유형의 AI 기능 전부에 그대로 쓰입니다.

이 템플릿은 무엇인가​

이 워크플로우는 데이터팝콘이 만든 게 아닙니다. n8n 공식 템플릿 마켓플레이스(n8n.io/workflows)에 Angie, personal AI assistant with Telegram voice and text라는 이름으로 공개된 템플릿이고, 제작자는 Derek Cheung입니다. 카테고리는 Personal Productivity와 AI Chatbot으로 등록돼 있어서, 개인용 비서를 만들 때 참고할 대표 사례로 자주 소개됩니다.

공식 설명에 따르면 이 템플릿은 텔레그램을 통해 동작하는 개인 AI 비서 "Angie"를 만듭니다. 매일의 이메일을 요약하고, 캘린더 일정을 조회하고, 다가오는 할 일을 알려주고, 연락처 정보를 찾아주는 네 가지 기능을 갖췄고, 사용자는 이 모든 요청을 음성이나 텍스트 중 편한 방식으로 보낼 수 있습니다.

n8n 설치나 기본 노드 조작법은 n8n으로 반복업무 자동화 포트폴리오 만들기에 정리돼 있으니, 이 글은 이 템플릿의 구조 자체에 집중합니다.

구조 — Trigger / Task / Target​

공식 문서의 "How it works"를 데이터팝콘 방식인 Trigger/Task/Target 세 칸으로 정리하면 이렇습니다. 이 템플릿의 핵심은 입력 형식(음성/텍스트)이 갈라졌다가 AI 에이전트 하나로 다시 합쳐지고, 그 에이전트가 도구 네 개 중 필요한 것만 골라 쓴다는 점입니다.

  • Trigger — Telegram Trigger가 들어오는 메시지 이벤트를 수신하며 파이프라인을 시작합니다.
  • Task — If 노드가 메시지를 음성/텍스트로 나누고, 음성이면 음성 파일을 가져와 OpenAI Speech to Text로 텍스트로 바꿉니다. 두 경로 모두 결국 AI 어시스턴트(Angie)로 모이고, 여기서 이메일 조회, 캘린더 조회, 할 일 조회, 연락처 조회라는 네 개 도구 중 질문에 맞는 것을 골라 호출합니다.
  • Target — 에이전트가 도구 호출 결과를 근거로 만든 답변을 다시 Telegram으로 보내 사용자에게 전달합니다.

공식 페이지의 노드 미리보기 칩에는 "If, Edit Fields (Set), Telegram, +5 more"라고만 표시돼 있어서, 실제 캔버스에는 위 다이어그램보다 데이터 형태를 다듬는 Edit Fields(Set) 노드 같은 중간 단계가 더 있을 가능성이 있습니다. 이 글은 공식 "How it works" 설명에 나온 흐름까지만 근거로 다루고, 그 이상의 세부 배선은 단정하지 않습니다.

만들기​

공식 페이지에는 번호가 매겨진 Setup 가이드 대신 "How it works" 설명만 있어서, 이 흐름을 그대로 만든다면 거쳐야 할 단계로 재구성했습니다.

1. 텔레그램 봇 크리덴셜 연결​

Telegram Trigger 노드가 메시지를 받으려면 텔레그램 봇 크리덴셜이 먼저 연결돼 있어야 합니다. 이 봇이 곧 Angie가 되고, 사용자는 이 봇과의 대화창에 음성이나 텍스트를 보내는 것으로 요청을 시작합니다.

2. If 노드로 음성·텍스트 분기​

들어온 메시지가 음성인지 텍스트인지를 If 노드로 가릅니다. 공식 설명은 "시스템이 들어온 메시지가 음성인지 텍스트인지 판단한다"고만 되어 있어, 실제 조건식이 무엇을 검사하는지는 명시돼 있지 않지만, 텔레그램 메시지에 음성 파일이 첨부됐는지 여부를 기준으로 갈리는 구조로 이해하면 됩니다.

3. 음성이면 텍스트로 변환​

음성으로 분기된 경우, 음성 파일을 가져온 뒤 OpenAI의 Speech to Text API로 텍스트로 바꿉니다. 이 단계에는 OpenAI API 크리덴셜이 필요합니다. 변환이 끝나면 텍스트로 들어온 요청과 똑같은 형태가 되어 다음 단계로 넘어갑니다. 음성과 텍스트라는 서로 다른 입력을 이 시점에서 하나로 합쳐두는 덕분에, 뒤에 이어지는 에이전트 로직은 입력 형식을 신경 쓸 필요가 없어집니다.

4. AI 어시스턴트(Angie)로 전달​

텔레그램 요청이 AI 어시스턴트로 넘어갑니다. 여기서부터가 이 템플릿의 핵심으로, 에이전트가 질문 내용을 보고 아래 도구 중 필요한 것만 호출합니다.

5. 도구 네 개 연결 — 이메일 · 캘린더 · 할 일 · 연락처​

공식 설명에 나온 도구 구성은 다음과 같습니다.

  • Get Email — Gmail API로 최근 이메일을 날짜 기준으로 필터링해 가져옵니다. Gmail 크리덴셜 연결이 필요합니다.
  • Get Calendar — 지정한 날짜의 일정을 조회합니다. 어떤 캘린더 서비스와 연동하는지는 공식 설명에 구체적으로 나와 있지 않아서, 템플릿을 가져온 뒤 실제 노드가 어떤 서비스를 가리키는지 확인이 필요합니다.
  • Get Tasks — Baserow(오픈소스 Airtable 대안) 데이터베이스에서 할 일 목록을 가져옵니다. Baserow 계정과 API 크리덴셜이 필요합니다.
  • Get Contacts — 역시 Baserow에서 연락처 정보를 가져옵니다.

네 가지 모두 별도 도구로 붙어 있기 때문에, 에이전트는 "오늘 일정 알려줘"라는 질문에는 캘린더 도구만 부르고 "김철수 연락처 좀"이라는 질문에는 연락처 도구만 부르는 식으로 동작합니다.

6. 응답 생성 후 텔레그램으로 전송​

에이전트가 도구 호출 결과를 바탕으로 답변을 만들면, 마지막 노드가 그 답을 다시 사용자의 텔레그램 대화창으로 보냅니다.

주의할 점 · 제약​

공식 텍스트에서 확인할 수 있는 제약과 미리 알아둘 점은 세 가지입니다.

  • 연동해야 할 외부 서비스가 다섯 곳 — 텔레그램, OpenAI(음성 인식), Gmail, 캘린더 서비스, Baserow까지 계정과 크리덴셜을 각각 준비해야 합니다. 지금까지 다룬 다른 템플릿보다 처음 설정에 손이 많이 가는 편입니다.
  • 캘린더 서비스가 명시되지 않았다 — "Get Calendar"가 어떤 캘린더 제품과 연동하는지는 공식 설명에 나와 있지 않습니다. 템플릿을 가져온 뒤 해당 노드를 열어 실제 서비스를 확인하고, 자신이 쓰는 캘린더에 맞게 크리덴셜을 다시 연결해야 할 수 있습니다.
  • 노드 미리보기가 설명보다 많다 — 공식 페이지의 노드 칩은 "If, Edit Fields (Set), Telegram, +5 more"로, "How it works" 문장에는 등장하지 않는 Edit Fields(Set) 같은 노드가 더 있다는 뜻입니다. 텍스트 설명만으로 전체 배선을 완전히 재현하기는 어려우니, 실제로 만들 때는 템플릿을 임포트해 캔버스에서 세부 연결을 직접 확인하는 편이 정확합니다.

포트폴리오·면접 포인트​

포트폴리오에는 텔레그램에 음성 메시지 하나, 텍스트 메시지 하나를 각각 보내고 Angie가 답하는 장면 두 개를 캡처해두면 됩니다. 같은 질문("오늘 일정 뭐 있어?")을 음성과 텍스트로 각각 보내 똑같은 답이 돌아오는 걸 보여주면, 두 입력이 같은 로직으로 수렴한다는 걸 한눈에 증명할 수 있습니다.

면접에서는 "왜 음성과 텍스트를 굳이 나눠서 처리했나요?"라는 질문이 나올 수 있습니다. 답은 이렇습니다. 사용자는 손이 바쁠 때는 음성으로, 조용한 자리에서는 텍스트로 말을 걸고 싶어 하는데, 입력 형식에 따라 에이전트 로직을 두 벌 만들 필요는 없기 때문에 앞단에서 미리 텍스트로 통일해뒀다고 설명할 수 있습니다. 도구를 하나의 에이전트에 여러 개 붙인 이유도 같은 맥락으로, 사용자가 "이메일 확인 명령어"와 "일정 확인 명령어"를 따로 외울 필요 없이 자연어로 물으면 에이전트가 알아서 적절한 도구를 고르게 하기 위해서입니다. 노드 이름을 나열하는 대신 이런 설계 이유를 설명할 수 있으면, 템플릿을 그대로 따라 만든 사람과 구조를 이해한 사람이 갈립니다.

다음 액션​

다음 편에서는 같은 마켓플레이스에서 데이터베이스와 직접 대화하는 AI 템플릿을 다룹니다. 이번 편에서 에이전트가 이메일·캘린더·Baserow 같은 도구를 골라 호출했다면, 다음 편은 그 도구 자리에 SQL 데이터베이스 하나를 통째로 놓고 자연어로 질의하는 구조라, "에이전트가 무엇을 도구로 삼는가"라는 같은 질문을 다른 대상으로 한 번 더 보게 됩니다.