YogiAI
高级
这是一个Other, AI领域的自动化工作流,包含 31 个节点。主要使用 Set, Code, SplitOut, HttpRequest, GoogleSheets 等节点,结合人工智能技术实现智能自动化。 通过LINE获取每日锻炼计划和富媒体消息
前置要求
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (31)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "2DzQ1FH11S3Gp6wn",
"meta": {
"instanceId": "558d88703fb65b2d0e44613bc35916258b0f0bf983c5d4730c00c424b77ca36a",
"templateCredsSetupCompleted": true
},
"name": "YogiAI",
"tags": [],
"nodes": [
{
"id": "2afc390e-d774-4db4-a52f-138f13837646",
"name": "Azure OpenAI 聊天模型2",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
1040,
0
],
"parameters": {
"model": "4o",
"options": {
"temperature": 0.8
}
},
"credentials": {
"azureOpenAiApi": {
"id": "5AjoWhww5SQi2VXd",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "529d9ed9-3ae5-41cb-983e-874aa37ee1c7",
"name": "YogaLog",
"type": "n8n-nodes-base.googleSheets",
"position": [
2240,
-100
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $('Trigger 2130 YogaPosesToday').first().json.timestamp }}",
"JSON": "={{ $('CombineAll').item.json.LineBody }}",
"Text": "={{ $('RewritePosesToday').item.json.text }}"
},
"schema": [
{
"id": "Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Text",
"type": "string",
"display": true,
"required": false,
"displayName": "Text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "JSON",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "JSON",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Date"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 325576327,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk/edit#gid=325576327",
"cachedResultName": "YogaLog"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk/edit?usp=drivesdk",
"cachedResultName": "SerenityAI"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "TKSdrVOdpgxWBVk8",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "d491b5c3-31ab-49b2-abc3-8c2a67cf9571",
"name": "Azure OpenAI 聊天模型3",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
2360,
120
],
"parameters": {
"model": "4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "5AjoWhww5SQi2VXd",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "3b1ebdcb-9e6b-437c-8f51-944218c0c276",
"name": "自动修复输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
"position": [
2520,
80
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "3fc67522-501c-4e43-bf9d-b367d57ad4f9",
"name": "Azure OpenAI 聊天模型1",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
2540,
120
],
"parameters": {
"model": "4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "5AjoWhww5SQi2VXd",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "19bd208b-a5c5-47b3-a2cc-e92a71444be7",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2640,
220
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"yogaPoses\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"sequence\": { \"type\": \"integer\" },\n \"name\": { \"type\": \"string\" }\n },\n \"required\": [\"sequence\", \"name\"],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\"yogaPoses\"]\n}"
},
"typeVersion": 1.2
},
{
"id": "2bf3f3d3-84c7-4fd4-b1b9-8c0fb7df44b1",
"name": "AI 代理",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2400,
-60
],
"parameters": {
"text": "=You'll change this into properly format of JSON without having emoji. You'll also make sure the name is matched the data in googlesheet\n\n {{ $json.Text }}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "fa3fc89e-54d8-4706-af59-72dbd80fbef4",
"name": "PosesDatabase1",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
2480,
220
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1104924292,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk/edit#gid=1104924292",
"cachedResultName": "Yoga"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk/edit?usp=drivesdk",
"cachedResultName": "SerenityAI"
},
"descriptionType": "manual",
"toolDescription": "Yoga Poses Database to read\n"
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "TKSdrVOdpgxWBVk8",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "ff7bd540-c89b-43d1-bb07-bb060a6b4ba6",
"name": "YogaLog2",
"type": "n8n-nodes-base.googleSheets",
"position": [
2980,
20
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $('Trigger 2130 YogaPosesToday').first().json.timestamp }}",
"Pose": "={{ $json.name }}",
"Sequence": "={{ $json.sequence }}"
},
"schema": [
{
"id": "Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sequence",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Sequence",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Pose",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Pose",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Date"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2060471945,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk/edit#gid=2060471945",
"cachedResultName": "YogaLog2"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk/edit?usp=drivesdk",
"cachedResultName": "SerenityAI"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "TKSdrVOdpgxWBVk8",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "f649c5b9-fad1-412c-8389-ed53b95e5583",
"name": "拆分输出",
"type": "n8n-nodes-base.splitOut",
"position": [
2740,
-120
],
"parameters": {
"options": {},
"fieldToSplitOut": "output.yogaPoses"
},
"typeVersion": 1
},
{
"id": "8194e695-fa9e-4555-9da5-b7dbdc1b0e4a",
"name": "触发器2130 YogaPosesToday",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-200,
-20
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 21,
"triggerAtMinute": 30
}
]
}
},
"typeVersion": 1.2
},
{
"id": "3b5706d8-4968-4b9c-a255-7d1f806d85dc",
"name": "Azure OpenAI聊天模型5",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
1340,
180
],
"parameters": {
"model": "4o",
"options": {
"temperature": 0.9
}
},
"credentials": {
"azureOpenAiApi": {
"id": "5AjoWhww5SQi2VXd",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "acee6e43-f094-4f30-bffb-6c56b0425327",
"name": "获取姿势名称",
"type": "n8n-nodes-base.googleSheets",
"position": [
40,
-20
],
"parameters": {
"options": {
"dataLocationOnSheet": {
"values": {
"range": "B18:D28",
"rangeDefinition": "specifyRangeA1"
}
}
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2035276041,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk/edit#gid=2035276041",
"cachedResultName": "NotePad"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s_yzDNbbtXhfoOKUlmBHwhgWkR2FuoiKz4WQOu4tQmk/edit?usp=drivesdk",
"cachedResultName": "SerenityAI"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "TKSdrVOdpgxWBVk8",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "6be3a88c-4e0f-44e6-97c1-eafa13230ae7",
"name": "WritePosesToday",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1120,
-160
],
"parameters": {
"text": "=Let's calm down and focus on these poses today.\n\n{{ $('Code').item.json.poseNamesOnly }}\n\nhave a great practice!",
"messages": {
"messageValues": [
{
"message": "=You're experienced yoga instructor. You'll say the topic and asking the student to focus on practice today. You'll later give the yoga poses list for practicing today. You will also include related pose or variation from the list. You'll make sure to include all the poses from the list.\n"
}
]
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 1.5
},
{
"id": "8d9cdf4c-a432-44ff-a0a3-133fbc8e9daa",
"name": "RewritePosesToday",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1180,
60
],
"parameters": {
"text": "={{ $json.text }}",
"messages": {
"messageValues": [
{
"message": "=You'll format and add emoji before the poses name to make it chat-friendly to send via Line. You will only return the message to be sent.\n\nIf the message is too long, you'll split by ====== to 3 messages\n"
}
]
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 1.5
},
{
"id": "2e419654-1f83-48df-8ac0-9ec621444cc2",
"name": "Azure OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
480,
100
],
"parameters": {
"model": "4o",
"options": {
"temperature": 0.9
}
},
"credentials": {
"azureOpenAiApi": {
"id": "5AjoWhww5SQi2VXd",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "ad1bf966-114e-4bb8-abff-f5768e907aff",
"name": "WriteJSONflex",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
580,
-80
],
"parameters": {
"text": "={{ $json.outputText }}",
"messages": {
"messageValues": [
{
"message": "=You are JSON parser, you'll write JSON in this format for all the row in 'GetPoseName' You'll notice the differnet between uri and url.\n\n{\n\"type\": \"bubble\",\n\"hero\": {\n\"type\": \"image\",\n\"url\": \"https://pocketyoga.com/assets/images/thumbnails146/SupineAngle-tn146.png \", \n\"size\": \"full\",\n\"aspectRatio\": \"20:13\",\n\"aspectMode\": \"fit\",\n\"action\": {\n\"type\": \"uri\",\n\"uri\": \"https://pocketyoga.com/pose/SupineAngle \"\n}\n},\n\"body\": {\n\"type\": \"box\",\n\"layout\": \"vertical\",\n\"contents\": [\n{\n\"type\": \"text\",\n\"text\": \"Supine Angle (supta konasana)\",\n\"size\": \"lg\",\n\"wrap\": true,\n\"action\": {\n\"type\": \"message\",\n\"label\": \"action\",\n\"text\": \"Supine Angle (supta konasana)\"\n}\n}\n]\n}\n},\n{\n\"type\": \"bubble\",\n\"hero\": {\n\"type\": \"image\",\n\"url\": \"https://pocketyoga.com/assets/images/thumbnails146/SupineAngle-tn146.png \",\n\"size\": \"full\",\n\"aspectRatio\": \"20:13\",\n\"aspectMode\": \"fit\",\n\"action\": {\n\"type\": \"uri\",\n\"uri\": \"https://pocketyoga.com/pose/SupineAngle \"\n}\n},\n\"body\": {\n\"type\": \"box\",\n\"layout\": \"vertical\",\n\"contents\": [\n{\n\"type\": \"text\",\n\"text\": \"Supine Angle (supta konasana)\",\n\"size\": \"lg\",\n\"wrap\": true,\n\"action\": {\n\"type\": \"message\",\n\"label\": \"action\",\n\"text\": \"Supine Angle (supta konasana)\"\n}\n}\n]\n}\n}"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 1.5
},
{
"id": "1e6af9e5-675d-4d9a-aba6-304d218ea138",
"name": "结构化输出解析器1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
780,
220
],
"parameters": {
"jsonSchemaExample": "[\n {\n \"type\": \"bubble\",\n \"hero\": {\n \"type\": \"image\",\n \"url\": \"https://pocketyoga.com/assets/images/thumbnails146/SupineAngle-tn146.png\",\n \"size\": \"full\",\n \"aspectRatio\": \"20:13\",\n \"aspectMode\": \"fit\",\n \"action\": {\n \"type\": \"uri\",\n \"uri\": \"https://pocketyoga.com/pose/SupineAngle\"\n }\n },\n \"body\": {\n \"type\": \"box\",\n \"layout\": \"vertical\",\n \"contents\": [\n {\n \"type\": \"text\",\n \"text\": \"Supine Angle (supta konasana)\",\n \"size\": \"lg\",\n \"wrap\": true,\n \"action\": {\n \"type\": \"message\",\n \"label\": \"action\",\n \"text\": \"Supine Angle (supta konasana)\"\n }\n }\n ]\n }\n },\n {\n \"type\": \"bubble\",\n \"hero\": {\n \"type\": \"image\",\n \"url\": \"https://pocketyoga.com/assets/images/thumbnails146/SupineAngle-tn146.png\",\n \"size\": \"full\",\n \"aspectRatio\": \"20:13\",\n \"aspectMode\": \"fit\",\n \"action\": {\n \"type\": \"uri\",\n \"uri\": \"https://pocketyoga.com/pose/SupineAngle\"\n }\n },\n \"body\": {\n \"type\": \"box\",\n \"layout\": \"vertical\",\n \"contents\": [\n {\n \"type\": \"text\",\n \"text\": \"Supine Angle (supta konasana)\",\n \"size\": \"lg\",\n \"wrap\": true,\n \"action\": {\n \"type\": \"message\",\n \"label\": \"action\",\n \"text\": \"Supine Angle (supta konasana)\"\n }\n }\n ]\n }\n }\n]"
},
"typeVersion": 1.2
},
{
"id": "5559c5b9-6c2c-4adb-9544-79be3f1f85d1",
"name": "自动修复输出解析器1",
"type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
"position": [
680,
80
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "2335f74e-3fe6-4720-bb88-1bbda320ae8b",
"name": "Azure OpenAI聊天模型6",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
640,
200
],
"parameters": {
"model": "4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "5AjoWhww5SQi2VXd",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "83d02971-bdf6-4c45-b705-f2f49fa49525",
"name": "Azure OpenAI聊天模型4",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
1780,
200
],
"parameters": {
"model": "4o",
"options": {
"temperature": 0.5
}
},
"credentials": {
"azureOpenAiApi": {
"id": "5AjoWhww5SQi2VXd",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "5e5c1c11-cf3d-47f4-91ce-14d7e3f493fb",
"name": "代码",
"type": "n8n-nodes-base.code",
"position": [
240,
-20
],
"parameters": {
"jsCode": "const items = $input.all();\n\nlet outputText = \"\";\nlet poseNamesList = []; // New list to store only PoseNames\n\nitems.forEach(item => {\n const { PoseName, uri, url } = item.json;\n outputText += `Name: ${PoseName}\\nuri: ${uri}\\nurl: ${url}\\n\\n`;\n poseNamesList.push(PoseName); // Add PoseName to the list\n});\n\nreturn [\n {\n json: {\n outputText, // Original formatted text\n poseNamesOnly: poseNamesList.join('\\n') // New: PoseNames as text list\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "864e2fbb-a9dc-43ba-918e-0197821de598",
"name": "Line推送Flex Bubble",
"type": "n8n-nodes-base.httpRequest",
"position": [
1980,
-80
],
"parameters": {
"url": "https://api.line.me/v2/bot/message/push",
"method": "POST",
"options": {},
"jsonBody": "={{ $json.text }}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "yiPG7xPwvDzsY0Qd",
"name": "Line @511dizji"
}
},
"retryOnFail": false,
"typeVersion": 4.2
},
{
"id": "91e50734-8899-4d23-9a4f-ce637d9e5ed1",
"name": "CombineAll",
"type": "n8n-nodes-base.set",
"position": [
1640,
-100
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "9c82e62c-dfbc-4b09-899d-f4d1581e1c15",
"name": "LineBody",
"type": "string",
"value": "={\n \"to\": \"Ue9cc622e33e5333e3784298412ec9aed\",\n \"messages\": [\n {\n \"type\": \"text\",\n \"text\": \"{{ $json.text.replaceAll(\"\\n\",\"\\\\n\").replaceAll(\"\\n\",\"\").removeMarkdown().removeTags().replaceAll('\"',\"\") }}\"\n },\n {\n \"type\": \"flex\",\n \"altText\": \"Yoga Poses Images\",\n \"contents\": {\n \"type\": \"carousel\",\n \"contents\": [ {{ $('WriteJSONflex').all().flatMap(item => JSON.stringify(item.json.output)).join(',') }}\n\n ] \n }\n }\n ]\n}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "dc6d5dfe-66ad-49ca-b246-ee52f270269d",
"name": "修复JSON",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1720,
120
],
"parameters": {
"text": "=Fix this JSON\n\n{{ $json.LineBody }}",
"messages": {
"messageValues": [
{
"message": "=You are JSON formatter, You'll fix the JSON and return only the JSON that has been fixed. Do not explain or write anything else"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 1.5
},
{
"id": "a062cf06-f438-4d1e-9c0c-d2fc00f40071",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-300,
-380
],
"parameters": {
"color": 5,
"width": 260,
"height": 240,
"content": "## YogiAI"
},
"typeVersion": 1
},
{
"id": "8d2184a9-af30-4b1e-826b-69a8f37d8256",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
-320
],
"parameters": {
"color": 4,
"width": 400,
"height": 500,
"content": "## 获取数据"
},
"typeVersion": 1
},
{
"id": "6d688a1c-90aa-4c3a-a868-946c61cec7cf",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
440,
-320
],
"parameters": {
"color": 2,
"width": 540,
"height": 660,
"content": "## 为图片编写FlexMessage"
},
"typeVersion": 1
},
{
"id": "e5b92f32-e282-49cd-8084-68e380572ee9",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1000,
-320
],
"parameters": {
"color": 2,
"width": 540,
"height": 660,
"content": "## 编写今日姿势文本"
},
"typeVersion": 1
},
{
"id": "38cc9d2f-be2c-4448-9746-5d533108df7c",
"name": "便签 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1600,
-320
],
"parameters": {
"color": 3,
"width": 540,
"height": 660,
"content": "## 合并结果并通过Line推送"
},
"typeVersion": 1
},
{
"id": "b88d6f78-ce54-4b83-b009-e4e22e518c7c",
"name": "便签 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2200,
-320
],
"parameters": {
"color": 6,
"width": 1020,
"height": 660,
"content": "## 将数据写回Log和Log2"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"timezone": "Asia/Bangkok",
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1"
},
"versionId": "8d3482ff-25e6-479f-a33b-b33d1aeb51fc",
"connections": {
"Code": {
"main": [
[
{
"node": "WriteJSONflex",
"type": "main",
"index": 0
}
]
]
},
"YogaLog": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Fix JSON": {
"main": [
[
{
"node": "Line Push with Flex Bubble",
"type": "main",
"index": 0
}
]
]
},
"YogaLog2": {
"main": [
[]
]
},
"Split Out": {
"main": [
[
{
"node": "YogaLog2",
"type": "main",
"index": 0
}
]
]
},
"CombineAll": {
"main": [
[
{
"node": "Fix JSON",
"type": "main",
"index": 0
}
]
]
},
"Get PoseName": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"WriteJSONflex": {
"main": [
[
{
"node": "WritePosesToday",
"type": "main",
"index": 0
}
]
]
},
"PosesDatabase1": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"WritePosesToday": {
"main": [
[
{
"node": "RewritePosesToday",
"type": "main",
"index": 0
}
]
]
},
"RewritePosesToday": {
"main": [
[
{
"node": "CombineAll",
"type": "main",
"index": 0
}
]
]
},
"Azure OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "WriteJSONflex",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Azure OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "Auto-fixing Output Parser",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Azure OpenAI Chat Model2": {
"ai_languageModel": [
[
{
"node": "WritePosesToday",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Azure OpenAI Chat Model3": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Azure OpenAI Chat Model4": {
"ai_languageModel": [
[
{
"node": "Fix JSON",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Azure OpenAI Chat Model5": {
"ai_languageModel": [
[
{
"node": "RewritePosesToday",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Azure OpenAI Chat Model6": {
"ai_languageModel": [
[
{
"node": "Auto-fixing Output Parser1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Auto-fixing Output Parser",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Auto-fixing Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "Auto-fixing Output Parser1",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Auto-fixing Output Parser1": {
"ai_outputParser": [
[
{
"node": "WriteJSONflex",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Line Push with Flex Bubble": {
"main": [
[
{
"node": "YogaLog",
"type": "main",
"index": 0
}
]
]
},
"Trigger 2130 YogaPosesToday": {
"main": [
[
{
"node": "Get PoseName",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 其他, 人工智能
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
宠物店 4
🐶 宠物店预约 AI 代理
If
Set
Code
+41
187 节点Bruno Dias
人工智能
AI 代理餐厅 [模板]
🤖 WhatsApp、Instagram 和 Messenger 的 AI 餐厅助手
If
N8n
Set
+37
239 节点Amanda Benks
其他
自动化新闻到简报AI代理v13
AI新闻研究团队:24/7简报自动化,含Perplexity引用
Set
Code
Gmail
+15
37 节点Derek Cheung
产品
感恩罐提醒
基于AI的LINE感恩提醒工作流程
Set
Http Request
Schedule Trigger
+3
9 节点lin@davoy.tech
其他
博客WordPress复制销售
使用GPT-4、Perplexity AI和WordPress自动化SEO博客内容创建
Set
Code
Notion
+16
39 节点LukaszB
人工智能