N8N 영수증 처리 Workflow 실습 1번에서 SLACK 을 TELEGRAM 으로 바꿔보기

소개

0920일 오프모임에서 make와 n8n실습시간에,
사용자와의 인터랙션 부분을 안드로이드폰과 슬랙을 이용하는 부분이
인상적이었습니다.

텔레그램도 사용자와 교감을 나누기 좋은 툴인듯 하여,
n8n실습 첫번째 workflow의 가장 앞단과 가장 뒷단 노드만
텔레그램으로 바꾸어 보는 것을 목표로 실습해 보았습니다.

사례글을 빨리써야 한 주가 편하다는 건 다 아시죠~

진행방법

n8n 워크플로우 작업보다는,
telegram에서의 사전 준비 작업이 더 생소하고, 더 많고(슬랙보다는 더 적어요~)해서
이 부분을 먼저 시작해봅니다.

LLM들에게 물어보기

n8n에 telegram을 연동하고 싶어, telegram에서 사전에 준비해야 할 사항들 중 꼭 필요한 것들에 대해서만 자세히 알려줘.
  • ChatGPT는 너무 장황하게 많이 알려주려고 함.

  • Claude/Gemini가 적당히 잘 알려줌. --> 적당히 섞어서 정리

Telegram 설치

  • PC 및 핸드폰에 설치

  • 회원가입 및 로그인

Telegram Bot 생성

  • 텔레그램에서는 환경설정도 챗팅 느낌으로 진행하면 되기 때문에, 느낌적인 느낌이 쉽습니다.

  • 좌측 패널에서 BotFather 선택 클릭. 반드시 공식봇(이름옆에 체크박스 있는)을 선택해야 함.

    우측 화면 제일 하단에 "Start" 버튼 클릭 또는, 메시지 입력 창에서 /start
    - 사용할 수 있는 명령어들 목록을 보여줌

    전화에 문자 메시지의 스크린 샷

  • 봇생성명령 : /newbot

  • 두 가지 답을 해 줘야 함.

- Alright, a new bot. How are we going to call it? Please choose a name for your bot.
  ==> 사용자에게 표시되는 이름, - 한글, 영어, 숫자, 공백, 특수문자 모두 사용 가능, 중복 허용 (다른 봇과 같은 이름 가능), 언제든지 변경 가능
  
- Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
  ==> 
- 봇의 **고유 식별자/주소**
- 반드시 'bot'으로 끝나야 함
- 영어 소문자, 숫자, 언더바(_)만 사용 가능
- 전 세계에서 유일해야 함 (중복 불가)
- 변경하려면 BotFather를 통해서만 가능

API용 Token 확인

  • 정상적으로 봇이 생성되면 HTTP API 를 보여줌.

    다니엘은 새로운 봇을 축하합니다

새로만든 봇 확인

  • 검색창에서 방금 만든 봇 이름 입력 후 검색 / 오른쪽 start 버튼 클릭

    Mac의 채팅 창의 스크린 샷

UserID 확인

  • 왼쪽 패널에서 userinfobot 클릭

  • 오른쪽 메시지 창에 아무말이나 입력

  • Id를 알려줌 : 텔레그램에서의 나만의 고유값

WorkFlow

  • 맨 앞의 Slack(Trigger)와 맨 마지막의 Slack(Send a Message)를 Telegram으로 변경 하면 될 줄 알았는데,

  • 파일정보 가져오는 HttpRequest와 파일다운로드하는 HttpRequest도 Telegram API를 이용하게 변경함.

  • 앞에 3개, 뒤에 1개 노드만 변경함.

  • 배포된 공식 workflow가 아닌, 제가 실습시간에 작성했던 workflow 라서, 조금 다를 수 있음을 유의하세요..

Telegram Trigger

  • 새로운 Tool을 연결할 때 Credential 설정하는 건 이제 자동(?)입니다. +Create new credential클릭

  • Telegram에서 만들었던, Token을 입력합니다.

  • 간단테스트 Execute Step 실행

  • Telegram에서 영수증 이미지 전송

  • 수신된 결과 확인

파일정보 가져오는 HttpRequest 노드 변경

Method: GET
URL : https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getFile
Authentication
: None
Send Query Parameters 켜기
file_id : {{ $json.message.photo.last().file_id }} --> 반드시 제일 마지막꺼!! 썸네일이 작고 해상도가 낮으면 AI가 인식을 못함

파일다운로드 HttpRequest 노드 변경

url : https://api.telegram.org/file/bot<YOUR_BOT_TOKEN>/{{ $json.result.file_path }}
authentication : None

Send message

  • ChatID: 자신의 telegram Id

  • Text : 최종적으로 텔레그램에 보낼 메시지.

오류 발생 : AI AGNET 노드에서 영수증 텍스트 추출이 안됨.

  • Telegram 연동은 성공인데, 이상하게 텔레그램에서 보낸 이미지는 AI가 인식을 못하네요.(영수증 값 추출 실패)

    • 확인해 보니, 텔레그램으로 부터 이미지 파일 다운로드 할 때 MimeType이 Application/octet-stream 으로 설정되어 전송됨

      참고로) 슬랙에서 다운로드 할 경우에는 MimeType이 "image/png" 였음.
      **MimeType**
      인터넷을 통해 주고받는 파일의 종류를 알려주는 공식적인 '꼬리표(Tag)',

      브라우저나 서버 같은 인터넷 프로그램들은 이 MIME type을 보고 데이터의 종류를 정확히 파악하고 어떻게 처리할지 결정

      응답을 보내는 서버가 결정하는 값.

    • 오류해결 : 이러 저런 테스트 / 삽질 해 보다가, LLM 모델 교체

      • OpenAI Chat Model : gpt-4.1.mini ==> 안됨

      • Gemini Chat Mode : gemini 2.5 pro ==> 정상동작!!

최종 테스트

  • 추출한 텍스트가 텔레그램에 잘 도착함을 확인

최종 Workflow

주의 사항

  • Telegram Trigger를 여러 Workflow에서 사용할 경우, 오동작이 발생할 수도 있음.

결과와 배운점

  • LLM이 다 잘하지는 않는다. 잘 하는 영역의 LLM들 성격 분류 및 식별 필요

제공사

모델 (예시)

모달리티

n8n에서 강점/잘 맞는 일

주 역할(추천)

비고

OpenAI

GPT-4o

Text + Vision

툴콜(Function/Tool Calling) 안정, 스크린샷/이미지 이해

플래너/툴 라우터, 비전 기반 UI·표 읽기, 고품질 답변

복잡한 에이전트 플래닝에 적합

OpenAI

gpt-4o-mini

Text (+ 일부 멀티모달)

빠르고 저렴, 포맷 보정·요약·태깅에 강함

대량 요약·정규화, JSON 포맷터, 초안 생성

트래픽 많은 워크플로우 전처리

Google

Gemini 2.5 Pro

Text + Vision + Audio

긴 문서/표 추론, 함수호출 우수

심층 요약·추론, 복잡한 추출, 멀티모달 분석

장문 처리와 구조화에 강함

Google

Gemini 2.5 Flash

Text + Vision

저지연·저비용, 대량 처리 최적

라이트 요약/분류, 템플릿 채움, 태깅

실시간 응답형 에이전트 전단

Anthropic

Claude 3.5 Sonnet

Text + Vision(이미지)

논리 전개·도구 사용·코드 이해 강함

플래너/평가자, 고난도 RAG 응답, 코드 리뷰

안전성·일관성으로 평판 좋음

Anthropic

Claude 3.5 Haiku

Text

빠르고 경제적, 정보 추출·정리 특화

정보 추출/정규화, 라이트 요약, 분류

Sonnet 전 단계 필터용으로 굿

Cohere

Command R+

Text

RAG 특화(검색 결과 종합), JSON 구조화

RAG 합성기, 스키마 기반 출력, FAQ 생성

검색/벡터검색과 찰떡궁합

Mistral

Mistral Large

Text

균형형 범용, 유럽 리전 선호

범용 생성/요약, 툴콜, 분류

라이선스/데이터 경로 선호 시

Mistral (오픈)

Mixtral 8x7B Instruct

Text

저비용 대비 성능 준수

대량 요약/태깅, 보조 생성

품질↔비용 균형 과제들

Meta (로컬/호스팅)

Llama 3.1 70B Instruct

Text

오픈계 상위, 온프레미스 선택지

사내 데이터 처리, 요약/생성, 라이트 추론

Ollama/OpenRouter 등으로 연결

Meta (로컬)

Llama 3.1 8B / 3.2 Vision

Text (+Vision)

경량·저비용, 라이트 멀티모달

경량 분류/규칙화, 간단 비전 추출

엣지/개인 서버에 적합

Microsoft

Phi-3/3.5 Mini

Text

초경량·초저비용, 포맷/정규화 탁월

포맷터/밸리데이터, 규칙 검사

전처리·후처리에 특히 좋음

  • 노드들 이름 영문으로 잘 짓기 습관!!

  • 설계 후 Workflow 작성하기!! 노드 순서가 바뀌거나 중간에 뭐가 끼어 들면.. ㅠㅠ..

  • 다양한 툴들에 도전!! 하다 보면 감이 쌓여요~

더 해 볼 것

  • 텔레그램에서 이미지 전송이 아닌 일반 텍스트가 입력될 경우, 위 workflow는 오류가 발생!!

  • Telgram Trigger 이후에 전송된 메시지가 텍스트인지, 이미지인지 식별해서
    분기 / 오류처리 해야하는거 잊지 마세요!! 해 보세요~~

도움 받은 글

  • 댕댕이멍멍님의 n8n 실습 교안, 타이칸님의 make 실습 교안

2
4개의 답글

👉 이 게시글도 읽어보세요