현대의 디지털 환경에서 자동화는 생산성을 극대화하고 반복적인 작업을 줄이는 데 필수적인 역할을 합니다. 여러 자동화 도구 중 n8n은 오픈 소스 워크플로 자동화 도구로서, Synology NAS에 Docker를 이용해 설치가 가능하여 Zapier와 같은 유료 자동화 도구에 대한 효율적이고 비용 효과적인 대안을 제공합니다. 본 글에서는 Synology NAS에서 n8n을 활용하여 텔레그램 메시지를 자동으로 전송하는 워크플로우를 구성하는 방법을 소개합니다. 이 과정을 통해 사용자는 자신의 데이터를 직접 관리하면서 필요한 작업을 자동으로 수행할 수 있는 능력을 갖추게 됩니다. 이 글은 텔레그램 봇 생성에서부터 메시지 전송까지의 전 과정을 단계별로 안내하여, 누구나 쉽게 따라 할 수 있도록 구성되어 있습니다.
노코드 자동화(Automation)툴에 대해 관심이 있으시다면 Zapier의 대안에 대한 글을 확인해 보시기 바랍니다.
텔레그램 봇 생성 및 n8n으로 자동화 구성하기
봇 생성 및 n8n 연동 인증 토큰 얻기
- Telegram: Contact @BotFather 로 이동하여 BotFather와의 대화를 시작합니다. 이 과정은 텔레그램 자동화의 첫걸음으로, 간단한 명령어 입력으로 봇을 생성할 수 있습니다.
/newbot
명령어를 입력한 뒤, 시스템의 지시에 따라 봇의 name과 username을 설정합니다. 이때, username은 유일해야 하며bot
으로 끝나야 합니다.
– name: 표시되는 이름으로 편한 이름으로 설정하면 됨
– username: 유니크한 값이어야 하며bot
으로 끝나게 설정해야 함
- 생성된 토큰을 안전하게 복사하여 보관합니다. 이 토큰은 n8n 워크플로우에서 텔레그램 봇과의 연동을 위해 필요합니다.
- BotFather 채팅방에서
/mybots
입력하여 생성된 봇 리스트를 확인합니다. - 방금 생성한 봇을 선택하면 토큰을 확인하거나 설정을 할 수 있습니다.
- 이때
@[봇이름]
을 선택하면 채팅방에 입장할 수 있습니다. - 채팅을 시작하고 아무 메세지나 입력해 봅니다.
Chat ID 확인하기
n8n과 텔레그램을 연동하기 위해 Chat ID를 확인해야 합니다.
- 웹브라우저 주소창에 다음과 같이 입력하고 실행합니다.
형식:
https://api.telegram.org/bot[앞서 확인한 토큰값]]/getUpdates
예:
https://api.telegram.org/bot6377236902:AAHzguhvob4flqlu_Ahb3gI28PzKJV2-ocw/getUpdates
결과 값을 확인하면 다음과 같음 "from":{id:<숫자>,
<숫자> 부분이 Chat ID
입니다.
{"ok":true,"result":[{"update_id":143771220, "message":{"message_id":1,"from":{"id":24559757,"is_bot":false,"first_name":"...
테스트 메세지 보내기
텔레그램 봇이 정상적으로 작동하는지 확인하기 위해, 다음 형식의 URL을 사용하여 테스트 메시지를 전송해 봅니다:
형식:
https://api.telegram.org/bot[봇토큰]/sendmessage?chat_id=[챗아이디]&text=[보낼메시지]
예:
https://api.telegram.org/bot6377236902:AAHzguhvob4flqlu_Ahb3gI28PzKJV2-ocw/sendmessage?chat_id=24559757&text=hi
결과: 성공적으로 전송되는 것을 확인하였습니다.
{ "ok": true, "result": { "message_id": 7, "from": { "id": 6377236902, "is_bot": true, "first_name": "n8n_test", "username": "n8nTest2024_bot" }, "chat": { "id": 24559757, "first_name": "first_name", "last_name": "last_name", "type": "private" }, "date": 1707965836, "text": "hi" } }
칵테일 추천 기능 만들어보기
랜덤으로 칵테일 정보를 가져오는 URL에서 칵테일 정보를 가져와 이미지를 봇채팅방에 전송하는 간단한 기능을 구현해 보겠습니다.
Manual Trigger 노드
- n8n 워크플로우의 시작점으로
Manual
트리거를 추가합니다. 이 트리거는Test Workflow
를 선택하여 워크플로우를 수동으로 시작할 수 있게 해 줍니다.
HTTP Request 노드
- Manual Trigger 노드 옆 +를 클릭해서 HTTP Request 노드를 추가합니다.
- URL값을 설정하고
Test step
을 클릭하여 노드를 실행합니다.- URL:
https://www.thecocktaildb.com/api/json/v1/1/random.php
- URL:
- OUTPUT에서 실행결과를 확인할 수 있습니다.
Telegram 노드
- Telegram 노드를 추가하여 “Send a photo message” 옵션을 선택합니다.
- Credential to connect with 항목에서 드롭다운 메뉴선택한 후 Create New Credential을 클릭합니다.
- 앞서 발급받은 토큰을 사용하여 봇과 연결합니다.
- Operation 항목에서 Send Photo 선택합니다.
- 이전에 확인한 Chat ID를 입력합니다.
- Photo 항목
– 화면의 왼쪽에는 이전 HTTP Request 의 출력값을 확인할 수 있습니다.
– Schema 탭을 선택한 상태에서strDirnkThumb
항목을 찾아 Photo값 입력창에 드래그 합니다.
- Add Filed 를 클릭하고 Caption을 추가한 후
strDrink
항목을 찾아 드래드하여 값을 입력합니다. Test step
을 클릭하여 내 텔레그램에 메세지가 정상적으로 수신되는 지 확인합니다.- 텔레그램 메신져에서 다음과 같은 메세지를 확인할 수 있습니다.
- 구현이 완료된 워크플로우 입니다.
정리
이 글을 통해 automation툴인 n8n을 활용한 텔레그램 자동화의 기초를 배우고, 실제로 간단한 메시지 전송부터 HTTP Request를 활용하는 기능까지 구현해 보았습니다. n8n을 이용하면 복잡한 코딩 지식 없이도 강력한 자동화 솔루션을 구축할 수 있습니다. 지금 바로 n8n을 활용해 텔레그램 자동화 프로젝트를 시작해 보세요. 자세한 설정 방법과 더 많은 자동화 아이디어가 필요하다면, n8n 공식 문서 를 확인해 보시기 바랍니다.