전제 조건
1단계 — Telegram 봇 생성
1
@BotFather 열기
Telegram을 열고 @BotFather와 대화를 시작합니다.
2
새 봇 생성
/newbot 명령을 보내고 지시를 따릅니다:3
봇 토큰 복사
BotFather가 봇 토큰이 포함된 성공 메시지로 응답합니다 —
123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ와 같습니다. 복사하여 안전하게 저장하세요.2단계 — EK에 토큰 추가
- 워크플로우 빌더
- 에이전트 빌더
- 워크플로우에서 Telegram 툴킷 단계를 추가합니다.
- 연결 선택 → 연결 만들기를 클릭합니다.
- 연결 이름을 입력하고 봇 토큰을 붙여넣습니다.
- 저장을 클릭합니다.
토큰 관리
봇 토큰은 봇의 마스터 키입니다. 공유하지 마세요, 공개 레포지토리에 커밋하지 마세요, 또는 클라이언트 측 코드에서 노출하지 마세요.
- @BotFather에게 메시지를 보냅니다
/mybots를 보냅니다- 봇을 선택합니다
- API Token → 현재 토큰 폐기를 탭합니다
사용 가능한 도구
트리거 — New Message
누군가가 Telegram 봇에 메시지를 보낼 때마다 자동으로 워크플로우를 시작합니다. 설정:1
트리거 추가
New Message 트리거를 워크플로우의 첫 번째 단계로 추가합니다. 트리거 구성 패널에서
/tool-webhook/{workflow-id} URL을 복사합니다.2
웹훅 등록
Register Webhook 단계를 사용하여 Telegram에게 해당 URL로 메시지를 전달하도록 요청합니다. 한 번만 실행하세요 — 아래 웹훅 등록을 참조하세요.
3
테스트
봇에 테스트 메시지를 보냅니다. 워크플로우가 실행되고 모든 메시지 데이터가 변수로 사용 가능합니다.
메시징 작업
Send Text Message
봇에서 모든 Telegram 채팅으로 텍스트 메시지를 보냅니다. 핵심 입력:
다운스트림 단계에서 출력 참조:
- 메시지 ID (이후 편집 또는 삭제에 필요):
{{ step.output.message_id }} - 채팅 ID:
{{ step.output.chat_id }}
Send Media
Telegram 채팅에 사진, 동영상, 스티커 또는 애니메이션 GIF를 보냅니다. 핵심 입력:Media URL이나 Media ID가 모두 제공되지 않으면 단계가 오류를 반환합니다. URL은 공개적으로 접근 가능해야 합니다 — 로컬 또는 프라이빗 URL은 작동하지 않습니다.
Edit Message Text
봇이 이전에 보낸 메시지의 텍스트를 업데이트합니다. 핵심 입력:
예시 사용 사례: 먼저 “요청을 처리하고 있습니다…”를 보냅니다. 워크플로우 로직을 실행합니다. 그런 다음 최종 결과로 해당 메시지를 편집합니다 — 사용자는 두 개가 아닌 하나의 메시지를 보게 됩니다.
Delete Message
채팅에서 메시지를 삭제합니다. 핵심 입력:봇은 채팅에서 관리자가 아닌 한 자체 메시지만 삭제할 수 있습니다. Telegram은 또한 시간 제한을 부과합니다 — 48시간이 지난 메시지는 일반적으로 봇이 삭제할 수 없습니다.
채팅 및 구성원 작업
Get Chat Info
채팅에 대한 메타데이터를 가져옵니다. 핵심 입력:
다운스트림 단계에서 값 참조:
- 채팅 제목:
{{ step.output.title }} - 설명:
{{ step.output.description }} - 초대 링크:
{{ step.output.invite_link }}
Get Chat Member
채팅에서 특정 사용자를 조회하고 구성원 상태와 역할을 반환합니다. 핵심 입력:
다운스트림 단계에서 값 참조:
- 상태:
{{ step.output.status }} - 사용자 이름:
{{ step.output.username }}
creator, administrator, member, restricted, left, kicked
예시 사용 사례: {{ step.output.status }}를 확인합니다 — left 또는 kicked와 같으면 메시지 전송을 건너뛰고 대신 오류를 처리합니다.
Create Invite Link
그룹 또는 채널의 새 초대 링크를 생성합니다.봇은 대상 채팅에서 “사용자 초대” 권한이 있는 관리자여야 합니다.
다운스트림 단계에서 링크 참조:
- 초대 URL:
{{ step.output.invite_link }}
출력의
expire_date는 ISO 형식이 아닌 unix 타임스탬프(정수 초)입니다. 채팅이 새 구성원에게 관리자 승인을 요구하는 경우 creates_join_request는 true가 됩니다.