Linkup 네트워크 검색, GPT-4.1, Mistral 음성을 통합한 Telegram 질문 응답 로봇을 구축합니다.
고급
이것은자동화 워크플로우로, 21개의 노드를 포함합니다.주로 If, Set, Switch, Telegram, HttpRequest 등의 노드를 사용하며. Linkup 네트워크 검색, GPT-4.1, Mistral 음성을 통합한 Telegram 질문 응답 로봇을 구축합니다.
사전 요구사항
- •Telegram Bot Token
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
사용된 노드 (21)
카테고리
-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"nodes": [
{
"id": "c1fbf4de-ddf2-450d-b09c-d07025d643f5",
"name": "Telegram 트리거",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
240,
544
],
"webhookId": "cce06804-3cd5-4dff-a90a-ed4ce49b0b04",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "GQHcQvX9GizW5ai3",
"name": "Duv Brain Telegram"
}
},
"typeVersion": 1.1
},
{
"id": "f2e6b66d-8c5f-44fc-9bcf-34d48a7d8cd3",
"name": "사용자 확인?",
"type": "n8n-nodes-base.if",
"position": [
464,
544
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fae16f10-e497-47ea-92ec-741f54cedd62",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.message.from.username }}",
"rightValue": "<Replace with your Telegram username>"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "d4b2699d-bff8-424c-a8e9-3879fbcb2a6a",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2256,
560
],
"parameters": {
"text": "={{ $json.final_user_message }}",
"options": {
"systemMessage": "=You are a helpful assistant that answers the user based on web-search.\n\nWhenever the user query requires getting insights from the web (most queries except empty queries like \"hi\"), call the tool \"Web search\" with a question to have it output an answer based on AI web search.\n\nProvide sources of the main insights.\n\nAnswer considring that this conversation happens on Telegram - adapt your style/format to that platform."
},
"promptType": "define"
},
"typeVersion": 1.8
},
{
"id": "49ca5d84-ebac-41db-a961-f6c66d75a468",
"name": "심플 메모리",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
2272,
816
],
"parameters": {
"sessionKey": "={{ $('Telegram Trigger').item.json.message.from.username }}",
"sessionIdType": "customKey",
"contextWindowLength": 7
},
"typeVersion": 1.3
},
{
"id": "1cad1569-ebc5-4446-8a8d-898cbfcebbbf",
"name": "스티키 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
880,
272
],
"parameters": {
"color": 2,
"width": 873,
"height": 293,
"content": "# Process Audio"
},
"typeVersion": 1
},
{
"id": "21b52da1-5a08-4f7b-9b83-56ec4b12fe07",
"name": "오디오 파일 가져오기",
"type": "n8n-nodes-base.telegram",
"position": [
976,
400
],
"webhookId": "aa1f75c8-2c80-4fab-be6c-b4120381181d",
"parameters": {
"fileId": "={{ $('Telegram Trigger').item.json.message.voice.file_id }}",
"resource": "file",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "GQHcQvX9GizW5ai3",
"name": "Duv Brain Telegram"
}
},
"typeVersion": 1.2
},
{
"id": "05bf3117-933d-4a17-bee7-ca26b454abc7",
"name": "메시지 라우터",
"type": "n8n-nodes-base.switch",
"position": [
688,
512
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "audio",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b5d9f703-2a1b-4942-906c-7a7d1404a4d7",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $('Telegram Trigger').item.json.message.voice }}",
"rightValue": ""
}
]
},
"renameOutput": true
},
{
"outputKey": "text",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "342f0883-d959-44a2-b80d-379e39c76218",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $('Telegram Trigger').item.json.message.text }}",
"rightValue": ""
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra"
}
},
"typeVersion": 3.2
},
{
"id": "a0c3018c-0e5e-4184-9586-422fdb5aa16f",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
2400,
768
],
"parameters": {
"color": 6,
"width": 336,
"height": 368,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Linkup web search\n\nReplace the API key placeholder with your linkup.so API key, or store it as a credential to reuse it easily in other workflows."
},
"typeVersion": 1
},
{
"id": "93107652-cd00-4d85-9eb7-2d42276e76a1",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1904,
768
],
"parameters": {
"color": 5,
"width": 336,
"height": 368,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## AI model\n\nThe core AI model of your agent. Connect your OpenAI API key or switch to your favorite LLM provider."
},
"typeVersion": 1
},
{
"id": "4a1bde4f-df6e-45b5-a91c-613e5673848f",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2192,
320
],
"parameters": {
"color": 4,
"width": 352,
"height": 400,
"content": "## The agent\n\nThis agent will distribute the relevant questions to the Linkup tool via the \"Web search\" tool. Feel free to provide more context in its system message and add instructions when it comes to the format or style of responses?"
},
"typeVersion": 1
},
{
"id": "4f0fbc4e-55af-4b3e-b187-fab5231442ab",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2032,
832
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "dMiSy27YCK6c6rra",
"name": "Duv's OpenAI"
}
},
"typeVersion": 1.2
},
{
"id": "469db785-dad8-4f46-ae4e-a73936d5c063",
"name": "Telegram 응답",
"type": "n8n-nodes-base.telegram",
"position": [
2832,
560
],
"webhookId": "7ac3dfe6-5df8-4791-8765-2234d475c22d",
"parameters": {
"text": "={{ $json.output }}",
"chatId": "={{ $('Telegram Trigger').item.json.message.from.id }}",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "GQHcQvX9GizW5ai3",
"name": "Duv Brain Telegram"
}
},
"typeVersion": 1.2
},
{
"id": "d8484fa4-6147-49f5-a4cf-549a9b9c609c",
"name": "스티키 노트6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1200,
288
],
"parameters": {
"color": 7,
"width": 265,
"height": 261,
"content": "### AI transcription\n\nYou can replace with another model like OpenAI's."
},
"typeVersion": 1
},
{
"id": "b99a6e1e-d26a-405f-a9ad-68a3f9108734",
"name": "스티키 노트7",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
304
],
"parameters": {
"color": 3,
"width": 265,
"height": 405,
"content": "### Make this bot private\n\nTelegram bots are public by default, so we're adding a filter here based on your unique Telegram username. Change the value to ensure only your messages can go through, or delete this step to make it 100% public"
},
"typeVersion": 1
},
{
"id": "95bd10b8-242f-4947-a763-4fe69c507285",
"name": "스티키 노트8",
"type": "n8n-nodes-base.stickyNote",
"position": [
896,
592
],
"parameters": {
"color": 2,
"width": 873,
"height": 293,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n# Process text"
},
"typeVersion": 1
},
{
"id": "48d77137-bc1a-4ae2-8b03-48ddcd17c4cf",
"name": "오디오에서 메시지 준비",
"type": "n8n-nodes-base.set",
"position": [
1568,
400
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "bffc2c1f-990e-4396-b59a-ab82b843e061",
"name": "preset_user_message",
"type": "string",
"value": "={{ $json.choices[0].message.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "8a59c1a6-4b6c-4356-a083-33f2f8cb7651",
"name": "텍스트에서 메시지 준비",
"type": "n8n-nodes-base.set",
"position": [
1280,
672
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b37b48ba-8fef-4e6c-bbca-73e6c2e1e0a8",
"name": "preset_user_message",
"type": "string",
"value": "={{ $('Telegram Trigger').item.json.message.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "edc01d56-b1de-4e22-b8f8-60540d53434c",
"name": "사용자 메시지 통합",
"type": "n8n-nodes-base.set",
"position": [
1872,
560
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7db97ffc-b1eb-422e-8bb1-90eea55c7aa2",
"name": "final_user_message",
"type": "string",
"value": "={{ $json.preset_user_message }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "27a2b573-bbe5-47b6-a7ab-57c41a566d07",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
208,
-400
],
"parameters": {
"width": 880,
"height": 544,
"content": "# **AI Web Search Telegram Agent with Linkup & GPT-4.1 (text + voice)**\n\n**Summary:** A Telegram bot that answers questions using **Linkup** AI web search. Accepts text and voice (transcribed via **Mistral** by default) and uses an LLM agent that calls the **Web search** tool.\n\n**How it works (short):**\n1. **Telegram Trigger** → Detects text or voice via **Message Router**.\n2. Voice: **Get Audio File** → **Mistral transcribe** → prepare text.\n3. **AI Agent** calls **Web search** (Linkup) when web knowledge is needed and sends answers via **Telegram answer**.\n\n**How to use / Setup:**\n1. Create a Linkup account at [linkup.so](https://linkup.so) and get your **API Key**.\n2. In the **Web search** node, go to the \"Headers\" section and replace the placeholder API key with your actual key in the `Authorization` field.\n3. Add credentials: **Telegram API**, **OpenAI (or LLM)**, **Mistral Cloud**.\n4. (Optional) Edit **Myself?** to set your Telegram username for private testing or delete it to make the bot public.\n5. Activate the workflow and message your bot in Telegram.\n\n**Bold nodes to configure:** **Telegram Trigger**, **Web search**, **OpenAI Chat Model**, **Mistral transcribe**, **Myself?**\n\n*A template created by Guillaume Duvernay*"
},
"typeVersion": 1
},
{
"id": "0e9b76b5-1d89-49f2-924f-53325a6a8507",
"name": "웹 검색",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
2544,
832
],
"parameters": {
"url": "https://api.linkup.so/v1/search",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "q",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters0_Value', `The query for AI web-search`, 'string') }}"
},
{
"name": "depth",
"value": "standard"
},
{
"name": "outputType",
"value": "sourcedAnswer"
},
{
"name": "includeImages",
"value": "false"
},
{
"name": "includeInlineCitations",
"value": "false"
}
]
},
"toolDescription": "Call this tool when web-search base is required to answer the user query.",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer <your Linkup API key>"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "853eea91-4385-46bd-aaf7-5f910d6afbd6",
"name": "Mistral 음성 텍스트 변환",
"type": "n8n-nodes-base.httpRequest",
"position": [
1280,
400
],
"parameters": {
"url": "https://api.mistral.ai/v1/audio/transcriptions",
"method": "POST",
"options": {
"redirect": {
"redirect": {}
}
},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "model",
"value": "voxtral-mini-2507"
},
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"nodeCredentialType": "mistralCloudApi"
},
"credentials": {
"mistralCloudApi": {
"id": "vakRnCmKyOQFpdEk",
"name": "Mistral Cloud account"
}
},
"typeVersion": 4.2
}
],
"connections": {
"f2e6b66d-8c5f-44fc-9bcf-34d48a7d8cd3": {
"main": [
[
{
"node": "05bf3117-933d-4a17-bee7-ca26b454abc7",
"type": "main",
"index": 0
}
]
]
},
"d4b2699d-bff8-424c-a8e9-3879fbcb2a6a": {
"main": [
[
{
"node": "469db785-dad8-4f46-ae4e-a73936d5c063",
"type": "main",
"index": 0
}
]
]
},
"0e9b76b5-1d89-49f2-924f-53325a6a8507": {
"ai_tool": [
[
{
"node": "d4b2699d-bff8-424c-a8e9-3879fbcb2a6a",
"type": "ai_tool",
"index": 0
}
]
]
},
"49ca5d84-ebac-41db-a961-f6c66d75a468": {
"ai_memory": [
[
{
"node": "d4b2699d-bff8-424c-a8e9-3879fbcb2a6a",
"type": "ai_memory",
"index": 0
}
]
]
},
"21b52da1-5a08-4f7b-9b83-56ec4b12fe07": {
"main": [
[
{
"node": "853eea91-4385-46bd-aaf7-5f910d6afbd6",
"type": "main",
"index": 0
}
]
]
},
"05bf3117-933d-4a17-bee7-ca26b454abc7": {
"main": [
[
{
"node": "21b52da1-5a08-4f7b-9b83-56ec4b12fe07",
"type": "main",
"index": 0
}
],
[
{
"node": "8a59c1a6-4b6c-4356-a083-33f2f8cb7651",
"type": "main",
"index": 0
}
]
]
},
"c1fbf4de-ddf2-450d-b09c-d07025d643f5": {
"main": [
[
{
"node": "f2e6b66d-8c5f-44fc-9bcf-34d48a7d8cd3",
"type": "main",
"index": 0
}
]
]
},
"4f0fbc4e-55af-4b3e-b187-fab5231442ab": {
"ai_languageModel": [
[
{
"node": "d4b2699d-bff8-424c-a8e9-3879fbcb2a6a",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"853eea91-4385-46bd-aaf7-5f910d6afbd6": {
"main": [
[
{
"node": "48d77137-bc1a-4ae2-8b03-48ddcd17c4cf",
"type": "main",
"index": 0
}
]
]
},
"edc01d56-b1de-4e22-b8f8-60540d53434c": {
"main": [
[
{
"node": "d4b2699d-bff8-424c-a8e9-3879fbcb2a6a",
"type": "main",
"index": 0
}
]
]
},
"8a59c1a6-4b6c-4356-a083-33f2f8cb7651": {
"main": [
[
{
"node": "edc01d56-b1de-4e22-b8f8-60540d53434c",
"type": "main",
"index": 0
}
]
]
},
"48d77137-bc1a-4ae2-8b03-48ddcd17c4cf": {
"main": [
[
{
"node": "edc01d56-b1de-4e22-b8f8-60540d53434c",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
음성과 텍스트 Telegram 어시스턴트(LOOKIO RAG와 GPT-4.1) 생성
Lookio RAG와 GPT-4.1을 사용하여 음성과 텍스트 Telegram 어시스턴트를 만듭니다.
If
Set
Switch
+
If
Set
Switch
21 노드Guillaume Duvernay
Bitget AI 트레이딩 에이전트
Telegram을 통해 GPT-4o-mini AI 에이전트를 사용한 Bitget 현물 거래 자동화
Set
Code
Crypto
+
Set
Code
Crypto
156 노드Don Jayamaha Jr
AI 자동화 및 에이전트 구축 및 판매
构建与판매AI자동화与스마트体
If
Set
Wait
+
If
Set
Wait
74 노드NICKYAI
기타
AI이메일分诊与GPT-4警报系统及Telegram알림
AI이메일分诊与GPT-4警报系统及Telegram알림
If
Set
Gmail
+
If
Set
Gmail
104 노드Peter Joslyn
지원
AI视频생성기 - OpenAI、ElevenLabs与Telegram YouTube게시
통합OpenAI、ElevenLabs并통해Telegram게시至YouTube의AI视频생성기
If
Set
Wait
+
If
Set
Wait
68 노드FRANK LIN
영업
牙科预约
AI驱动의牙科预约系统,통합Telegram、Google日历및表格
If
Set
Switch
+
If
Set
Switch
53 노드Aziz B