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 Chat Model2",
"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 Chat Model3",
"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 Chat Model1",
"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": "Trigger 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 Chat Model5",
"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": "Get PoseName",
"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 Chat Model",
"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 Chat Model6",
"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 Chat Model4",
"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 Push with 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": "Fix 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\n\nThis YogiAI is to provide daily reminder and pose of the day to the user via Line Push Message\n\nThe data will be generated from GoogleSheet Weighted Random Poses and Push to your Line at the scheduled time\n\n"
},
"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": "## Get the Data\nThis is to get the data from GoogleSheet \n\nIn the range we got, we'll have PosesName, uri (image link), and url (link when clicked) \n\nThe sample is here \nhttps://docs.google.com/spreadsheets/d/1eqLJsUL_QkOMy_qPzNCrUCZdx36asC8P1i3PowTQqLY/edit?usp=sharing\n\nThe data is from https://pocketyoga.com/pose/\n\n***YOU SHOULD UPDATE IT WITH YOUR OWN DATA***"
},
"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": "## Write FlexMessage for Images\n\nTo send the information in Line, we need to write a JSON for Flex Message meaning that it can slides to show the images of the pose\n\nWe use auto-parser here to make sure the JSON followed the required format\n\nhttps://developers.line.biz/en/docs/messaging-api/using-flex-messages/\n\nYou can also use https://developers.line.biz/flex-simulator/?status=success to simulate the format "
},
"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": "## Write Text for Poses today \n\nThis node we want to have user friendly text such as with emojis, etc. So, we give Azure OpenAI the poses of today and ask it to rewrie"
},
"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": "## Combine the result and push it via Line\n\n1) We used 'Edit Field' to combine all the output\n(Hint: you can have input_txt and output_txt to debug your script here)\n2) To make sure that our JSON is proper, we asked AI to fix it again. \n3) Use Line Push >> Please replace \"to\" to your own UID and create the header authorization with the channel you have\n\nhttps://developers.line.biz/en/docs/messaging-api/sending-messages/\n"
},
"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": "## Write back the data into Log and Log2 \n\nWe used log2 to count how many time we send each poses and weighted this back into the 'Yoga' Sheet to make the random more random ;)\n\nTo put the data back, we also want to extract from the output and split it out to put back to google sheet"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"timezone": "Asia/Bangkok",
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1"
},
"versionId": "8d3482ff-25e6-479f-a33b-b33d1aeb51fc",
"connections": {
"Code": {
"main": [
[
{
"node": "ad1bf966-114e-4bb8-abff-f5768e907aff",
"type": "main",
"index": 0
}
]
]
},
"529d9ed9-3ae5-41cb-983e-874aa37ee1c7": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"dc6d5dfe-66ad-49ca-b246-ee52f270269d": {
"main": [
[
{
"node": "864e2fbb-a9dc-43ba-918e-0197821de598",
"type": "main",
"index": 0
}
]
]
},
"ff7bd540-c89b-43d1-bb07-bb060a6b4ba6": {
"main": [
[]
]
},
"Split Out": {
"main": [
[
{
"node": "ff7bd540-c89b-43d1-bb07-bb060a6b4ba6",
"type": "main",
"index": 0
}
]
]
},
"91e50734-8899-4d23-9a4f-ce637d9e5ed1": {
"main": [
[
{
"node": "dc6d5dfe-66ad-49ca-b246-ee52f270269d",
"type": "main",
"index": 0
}
]
]
},
"acee6e43-f094-4f30-bffb-6c56b0425327": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"ad1bf966-114e-4bb8-abff-f5768e907aff": {
"main": [
[
{
"node": "6be3a88c-4e0f-44e6-97c1-eafa13230ae7",
"type": "main",
"index": 0
}
]
]
},
"fa3fc89e-54d8-4706-af59-72dbd80fbef4": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"6be3a88c-4e0f-44e6-97c1-eafa13230ae7": {
"main": [
[
{
"node": "8d9cdf4c-a432-44ff-a0a3-133fbc8e9daa",
"type": "main",
"index": 0
}
]
]
},
"8d9cdf4c-a432-44ff-a0a3-133fbc8e9daa": {
"main": [
[
{
"node": "91e50734-8899-4d23-9a4f-ce637d9e5ed1",
"type": "main",
"index": 0
}
]
]
},
"2e419654-1f83-48df-8ac0-9ec621444cc2": {
"ai_languageModel": [
[
{
"node": "ad1bf966-114e-4bb8-abff-f5768e907aff",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"3fc67522-501c-4e43-bf9d-b367d57ad4f9": {
"ai_languageModel": [
[
{
"node": "Auto-fixing Output Parser",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"2afc390e-d774-4db4-a52f-138f13837646": {
"ai_languageModel": [
[
{
"node": "6be3a88c-4e0f-44e6-97c1-eafa13230ae7",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"d491b5c3-31ab-49b2-abc3-8c2a67cf9571": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"83d02971-bdf6-4c45-b705-f2f49fa49525": {
"ai_languageModel": [
[
{
"node": "dc6d5dfe-66ad-49ca-b246-ee52f270269d",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"3b5706d8-4968-4b9c-a255-7d1f806d85dc": {
"ai_languageModel": [
[
{
"node": "8d9cdf4c-a432-44ff-a0a3-133fbc8e9daa",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"2335f74e-3fe6-4720-bb88-1bbda320ae8b": {
"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": "ad1bf966-114e-4bb8-abff-f5768e907aff",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"864e2fbb-a9dc-43ba-918e-0197821de598": {
"main": [
[
{
"node": "529d9ed9-3ae5-41cb-983e-874aa37ee1c7",
"type": "main",
"index": 0
}
]
]
},
"8194e695-fa9e-4555-9da5-b7dbdc1b0e4a": {
"main": [
[
{
"node": "acee6e43-f094-4f30-bffb-6c56b0425327",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 기타, 인공지능
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
반려동물 가게 4
🐶 펫 샵 예약 AI 대리자
If
Set
Code
+
If
Set
Code
187 노드Bruno Dias
인공지능
AI 대리인 레스토랑 [템플릿]
🤖 WhatsApp, 인스타그램, 메신저의 AI 레스토랑 도우미
If
N8n
Set
+
If
N8n
Set
239 노드Amanda Benks
기타
자동화 뉴스-브리핑 AI 에이전트 v13
AI 뉴스 연구 팀: 24/7 브리핑 자동화, Perplexity 인용 포함
Set
Code
Gmail
+
Set
Code
Gmail
37 노드Derek Cheung
제품
감사 항아리 알림
AI 기반 LINE 감사 알림 워크플로우
Set
Http Request
Schedule Trigger
+
Set
Http Request
Schedule Trigger
9 노드lin@davoy.tech
기타
블로그 WordPress 복제 판매
GPT-4, Perplexity AI 및 WordPress를 사용한 SEO 블로그 콘텐츠 생성 자동화
Set
Code
Notion
+
Set
Code
Notion
39 노드LukaszB
인공지능