高级WooCommerce产品对账与同步
高级
这是一个CRM, Multimodal AI领域的自动化工作流,包含 31 个节点。主要使用 If, Code, Merge, Slack, WooCommerce 等节点。 使用Google Gemini AI和BrowserAct同步WooCommerce库存并创建产品
前置要求
- •Slack Bot Token 或 Webhook URL
- •Google Sheets API 凭证
- •Google Gemini API Key
使用的节点 (31)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "xWJadnVEYEmfvsH5",
"meta": {
"instanceId": "88804d8e264d231c18413147cc92e4245b20ae7b97d774bad847556f645c8192",
"templateCredsSetupCompleted": true
},
"name": "高级 WooCommerce 产品对账与同步",
"tags": [],
"nodes": [
{
"id": "359efd1f-8b53-4856-aa26-48103897473d",
"name": "获取多个产品",
"type": "n8n-nodes-base.wooCommerce",
"position": [
256,
-144
],
"parameters": {
"options": {
"search": "={{ $json.Name }}"
},
"operation": "getAll"
},
"credentials": {
"wooCommerceApi": {
"id": "LwI8wvOrr3sPSHLk",
"name": "WooCommerce account"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "5d014a7c-5952-41de-8be2-08435144fab4",
"name": "更新产品",
"type": "n8n-nodes-base.wooCommerce",
"onError": "continueErrorOutput",
"position": [
944,
-160
],
"parameters": {
"imagesUi": {},
"resource": "product",
"operation": "update",
"productId": "={{ $json.id }}",
"metadataUi": {},
"dimensionsUi": {},
"updateFields": {
"regularPrice": "={{ $('BrowserAct JSON Breakdown').item.json.Price }}",
"stockQuantity": "={{ $('BrowserAct JSON Breakdown').item.json.Quantity }}"
}
},
"credentials": {
"wooCommerceApi": {
"id": "LwI8wvOrr3sPSHLk",
"name": "WooCommerce account"
}
},
"typeVersion": 1
},
{
"id": "f3091026-476d-48e7-8768-0015c03564a1",
"name": "获取产品库存数据",
"type": "n8n-nodes-browseract-workflows.browserAct",
"onError": "continueErrorOutput",
"position": [
-512,
-80
],
"parameters": {
"workflowId": "58839712632662919",
"runMaxWaitTime": 900,
"inputParameters": {
"parameters": [
{
"name": "Target_Url",
"value": "={{ $json[\"Inventory page\"] }}"
}
]
},
"additionalFields": {
"saveBrowserData": true
},
"runPollingInterval": 30
},
"credentials": {
"browserActApi": {
"id": "AzKMhR2eAlOjzDiJ",
"name": "BrowserAct account"
}
},
"typeVersion": 1
},
{
"id": "16539d4b-2817-4dc2-abac-2c58bc3ad5d8",
"name": "Google Gemini 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
736,
240
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "U1olizkBYhp4g9AB",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "e7b713db-9a9b-41e1-accd-2c7a3fe6b737",
"name": "发送消息",
"type": "n8n-nodes-base.slack",
"position": [
-512,
-240
],
"webhookId": "650d7b5e-b7d3-4df3-b5dd-01471dd0a6de",
"parameters": {
"text": "The product syncing process finished.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09LWT82KHN",
"cachedResultName": "new_product_added"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "5rQCkyObBqbHIbZA",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "60842653-3eec-4b3f-a80a-cf8cf3da97d7",
"name": "创建产品",
"type": "n8n-nodes-base.wooCommerce",
"onError": "continueErrorOutput",
"position": [
960,
48
],
"parameters": {
"name": "={{ $('BrowserAct Json Breakdown').item.json.Name }}",
"imagesUi": {},
"resource": "product",
"operation": "create",
"metadataUi": {},
"dimensionsUi": {},
"additionalFields": {
"sku": "=SKU_{{ $('BrowserAct Json Breakdown').item.json.Name }}",
"description": "={{ $json.output }}",
"manageStock": true,
"regularPrice": "={{ $('BrowserAct Json Breakdown').item.json.Price}}",
"stockQuantity": "={{ $('BrowserAct Json Breakdown').item.json.Quantity }}"
}
},
"credentials": {
"wooCommerceApi": {
"id": "LwI8wvOrr3sPSHLk",
"name": "WooCommerce account"
}
},
"typeVersion": 1
},
{
"id": "8b95853a-0792-4c73-bbfe-07c8921844e5",
"name": "合并",
"type": "n8n-nodes-base.merge",
"position": [
1392,
16
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "358f3506-7b05-48e8-9e75-d9315c22b90e",
"name": "添加缺失产品",
"type": "n8n-nodes-browseract-workflows.browserAct",
"onError": "continueErrorOutput",
"position": [
336,
64
],
"parameters": {
"workflowId": "58839211174254215",
"runMaxWaitTime": 900,
"inputParameters": {
"parameters": [
{
"name": "Product_Name",
"value": "={{ $('BrowserAct JSON Breakdown').item.json.Name }}"
},
{
"name": "Supplier_Link",
"value": "https://www.digikey.co.uk/en/"
}
]
},
"additionalFields": {},
"runPollingInterval": 30
},
"credentials": {
"browserActApi": {
"id": "AzKMhR2eAlOjzDiJ",
"name": "BrowserAct account"
}
},
"typeVersion": 1
},
{
"id": "7de632a3-0a8e-483e-95b0-5751bb738968",
"name": "当点击\"执行工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1088,
-96
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1384104c-8f59-459a-a563-f814fa395e91",
"name": "便签 - 介绍",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
96
],
"parameters": {
"width": 672,
"height": 560,
"content": "## 立即试用!"
},
"typeVersion": 1
},
{
"id": "6e2da3a0-7637-427e-9b54-c2c30032cc91",
"name": "便签 - 使用方法",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
384
],
"parameters": {
"width": 528,
"height": 264,
"content": "## 使用方法"
},
"typeVersion": 1
},
{
"id": "82e23aaf-ceca-4015-9136-bf23ff035997",
"name": "便签 - 需要帮助",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
224
],
"parameters": {
"width": 336,
"height": 152,
"content": "### 需要帮助?"
},
"typeVersion": 1
},
{
"id": "9d902298-8b60-4646-abaf-e7383878b6ff",
"name": "便签 - 输入与抓取循环",
"type": "n8n-nodes-base.stickyNote",
"position": [
-848,
-432
],
"parameters": {
"color": 6,
"width": 624,
"height": 176,
"content": "### 📋 1. 输入与抓取循环"
},
"typeVersion": 1
},
{
"id": "14b77e15-d220-4687-b260-1679b1d7649f",
"name": "便签 - 产品处理循环",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
-400
],
"parameters": {
"color": 5,
"width": 560,
"height": 200,
"content": "### 🔄 2. 产品处理循环与更新现有产品"
},
"typeVersion": 1
},
{
"id": "7b291eaf-c4a1-46fd-9083-cf7e81a57ff0",
"name": "便签 - 创建新产品",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
368
],
"parameters": {
"color": 4,
"width": 480,
"height": 216,
"content": "### ✨ 4. 创建新产品(如果缺失)"
},
"typeVersion": 1
},
{
"id": "bd5c0de3-4b7a-4f31-9d78-3dda3bcd1c2b",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-176
],
"parameters": {
"color": 5,
"width": 1184,
"height": 208,
"content": ""
},
"typeVersion": 1
},
{
"id": "f75b433a-1c8c-458b-aecf-879a6881f23d",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
112,
48
],
"parameters": {
"color": 4,
"width": 976,
"height": 304,
"content": ""
},
"typeVersion": 1
},
{
"id": "06d9505d-d672-469e-b0d0-36fdf1a5abd9",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-960,
-240
],
"parameters": {
"color": 6,
"width": 848,
"height": 320,
"content": ""
},
"typeVersion": 1
},
{
"id": "7535c929-96b9-451e-bf9e-c6a6b440d6b3",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1104,
48
],
"parameters": {
"color": 3,
"height": 208,
"content": ""
},
"typeVersion": 1
},
{
"id": "98d804e1-f59d-4020-844c-d7e04b86a57c",
"name": "便签 - 创建新产品1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1104,
272
],
"parameters": {
"color": 3,
"height": 104,
"content": "✅ 4. 错误处理"
},
"typeVersion": 1
},
{
"id": "b5cb6c9a-edc9-4aef-9750-e95985d80e34",
"name": "发送错误 2",
"type": "n8n-nodes-base.slack",
"position": [
544,
224
],
"webhookId": "650d7b5e-b7d3-4df3-b5dd-01471dd0a6de",
"parameters": {
"text": "An error has occurred inside the Second BrowserAct node.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09LWT82KHN",
"cachedResultName": "new_product_added"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "5rQCkyObBqbHIbZA",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "b5d687e7-5781-4b29-b96e-a1cff88d6dea",
"name": "发送错误",
"type": "n8n-nodes-base.slack",
"position": [
1184,
96
],
"webhookId": "650d7b5e-b7d3-4df3-b5dd-01471dd0a6de",
"parameters": {
"text": "Error Occur on Updating Or Creating Data",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09LWT82KHN",
"cachedResultName": "new_product_added"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "5rQCkyObBqbHIbZA",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "d4812931-1bca-4892-9133-88c36e1558e5",
"name": "循环处理供应商",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-720,
-96
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "703e314d-8e2a-4bec-90ee-76397090591e",
"name": "循环处理产品",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-64,
-96
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "b6239845-f5f7-4bfa-9c69-89508b96793c",
"name": "发送 BrowserAct 错误",
"type": "n8n-nodes-base.slack",
"position": [
-288,
80
],
"webhookId": "650d7b5e-b7d3-4df3-b5dd-01471dd0a6de",
"parameters": {
"text": "An error has occurred inside the first BrowserAct node.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C09LWT82KHN",
"cachedResultName": "new_product_added"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "5rQCkyObBqbHIbZA",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "e7b9c737-521c-4b52-bc41-7bb63b92a3eb",
"name": "检查类别",
"type": "n8n-nodes-base.if",
"position": [
160,
80
],
"parameters": {
"options": {
"ignoreCase": true
},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "013b4904-dd59-4fe7-90c9-a1fbbd3cab83",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('Loop Over Products').item.json.Category }}",
"rightValue": "={{ $item(\"0\").$node[\"Get Suppliers & Links\"].json[\"Product Type\"] }}"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "59f6c99e-fffc-48d6-beb2-8c08c34d40e3",
"name": "检查产品可用性",
"type": "n8n-nodes-base.if",
"position": [
544,
-144
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "657542ba-f1ec-43ef-be60-9c3600b0dd99",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": ""
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "fdbbae9a-fad8-4180-9e8b-b3a9013eace9",
"name": "BrowserAct JSON 解析",
"type": "n8n-nodes-base.code",
"position": [
-288,
-96
],
"parameters": {
"jsCode": "// Get the JSON string using the exact path provided by the user.\nconst jsonString = $input.first().json.output.string;\n\nlet parsedData;\n\n// Check if the string exists before attempting to parse\nif (!jsonString) {\n // Return an empty array or throw an error if no string is found\n // Throwing an error is usually better to stop the workflow if data is missing.\n throw new Error(\"Input string is empty or missing at the specified path: $input.first().json.output.string\");\n}\n\ntry {\n // 1. Parse the JSON string into a JavaScript array of objects\n parsedData = JSON.parse(jsonString);\n} catch (error) {\n // Handle JSON parsing errors (e.g., if the string is malformed)\n throw new Error(`Failed to parse JSON string: ${error.message}`);\n}\n\n// 2. Ensure the parsed data is an array\nif (!Array.isArray(parsedData)) {\n throw new Error('Parsed data is not an array. It cannot be split into multiple items.');\n}\n\n// 3. Map the array of objects into the n8n item format { json: object }\n// Each element in this array will be treated as a new item by n8n, achieving the split.\nconst outputItems = parsedData.map(item => ({\n json: item,\n}));\n\n// 4. Return the new array of items\nreturn outputItems;"
},
"typeVersion": 2
},
{
"id": "68ac7520-266b-45d1-b4ef-888cde19c635",
"name": "BrowserAct JSON 解析",
"type": "n8n-nodes-base.code",
"position": [
512,
48
],
"parameters": {
"jsCode": "// Get the JSON string using the exact path provided by the user.\nconst jsonString = $input.first().json.output.string;\n\nlet parsedData;\n\n// Check if the string exists before attempting to parse\nif (!jsonString) {\n // Return an empty array or throw an error if no string is found\n // Throwing an error is usually better to stop the workflow if data is missing.\n throw new Error(\"Input string is empty or missing at the specified path: $input.first().json.output.string\");\n}\n\ntry {\n // 1. Parse the JSON string into a JavaScript array of objects\n parsedData = JSON.parse(jsonString);\n} catch (error) {\n // Handle JSON parsing errors (e.g., if the string is malformed)\n throw new Error(`Failed to parse JSON string: ${error.message}`);\n}\n\n// 2. Ensure the parsed data is an array\nif (!Array.isArray(parsedData)) {\n throw new Error('Parsed data is not an array. It cannot be split into multiple items.');\n}\n\n// 3. Map the array of objects into the n8n item format { json: object }\n// Each element in this array will be treated as a new item by n8n, achieving the split.\nconst outputItems = parsedData.map(item => ({\n json: item,\n}));\n\n// 4. Return the new array of items\nreturn outputItems;"
},
"typeVersion": 2
},
{
"id": "5b2bbcd8-551a-4ad5-bd8a-c8c9a08cd4f8",
"name": "创建 HTML 数据表",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
688,
48
],
"parameters": {
"text": "=input : {{ $json.Product_Attributes }}\n\nsend data to ouput like this \n\n\"Output\": \"data\"\n",
"options": {
"systemMessage": "You are an AI assistant specialized in data transformation. Your task is to convert input text containing product specifications into a specific HTML `<table>` format. You must follow the instructions precisely to replicate the target HTML structure.\n\n**Task:**\nConvert the provided key-value text into an HTML table, matching the exact structure, tags, and CSS classes from the target specification.\n\n**Instructions:**\n\n1. **Parse Input:** The input is a block of plain text with key-value pairs separated by a colon (`:`) and a newline.\n\n2. **Generate Table:**\n\n * Start with `<table id=\"product-attributes\" class=\"MuiTable-root mui-css-1ssfo\">`.\n * Add a `<tbody class=\"MuiTableBody-root mui-css-1xnox0e\">`.\n\n3. **Generate Rows (`<tr>`):**\n\n * Create a `<tr class=\"MuiTableRow-root mui-css-c9pui3\">` for each of the attributes listed above, in that order.\n * Each row must contain specific `<td>` cells as defined below.\n\n4. **Generate Cells (`<td>`):**\n\n * **Cell 1: Attribute Name (Key)**\n\n * Wrap the key (e.g., \"Mfr\", \"Series\") in this structure:\n\n <!-- end list -->\n\n ```html\n <td class=\"MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium tss-css-my7fuh-tableCellBold mui-css-4ro0k3\">\n <div class=\"tss-css-8y8kah-tableCellBreak\">[ATTRIBUTE_NAME]</div></td>\n ```\n\n * **Cell 2: Attribute Value**\n\n * Start with this structure:\n\n <!-- end list -->\n\n ```html\n <td class=\"MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium tss-css-110lnqa-tableCell mui-css-4ro0k3\">\n <div class=\"tss-css-1agxsdl-tableCellDescription\">\n </div></td>\n ```\n\n * **Value Formatting (Content):**\n * **For `Category`:** If the value contains a comma (`,`), split the value by the comma. Wrap each part in its own `<div>` and `<a>` tag like this (using `#` for `href`):\n ```html\n <div><a class=\"tss-css-yusyu7-anchor\" href=\"#\" rel=\"opener\">[Part 1]</a></div>\n <div><a class=\"tss-css-yusyu7-anchor\" href=\"#\" rel=\"opener\">[Part 2]</a></div>\n ```\n * **For `Mfr`, `Series`, `Power (Watts)`, `Base Product Number`:** Wrap the value in an `<a>` tag like this (using `#` for `href`):\n ```html\n <a class=\"tss-css-yusyu7-anchor\" href=\"#\" rel=\"opener\" data-testid=\"product-attributes-link\">[VALUE]</a>\n ```\n * **For ALL OTHER attributes:** Wrap the value in a `<div>` tag like this:\n ```html\n <div class=\"tss-css-tsu9t4-packageName\">[VALUE]</div>\n ```\n\n * **Cell 3: Empty/Action Cell**\n\n * **For the `Category` row:** Use this *exact* cell:\n ```html\n <td class=\"MuiTableCell-root MuiTableCell-body MuiTableCell-alignRight MuiTableCell-sizeMedium tss-css-my7fuh-tableCellBold print-hide mui-css-115xzy4\" data-testid=\"attributes-table-search-column\"><div class=\"MuiFormGroup-root tss-css-1kh0d0a-tableCellHeadDescription mui-css-1h7anqn\" role=\"radiogroup\"></div></td>\n ```\n * **For the `Base Product Number` row:** **DO NOT** add this third cell. This row only has two `<td>` cells.\n * **For ALL OTHER rows:** Use this *exact* cell:\n ```html\n <td class=\"MuiTableCell-root MuiTableCell-body MuiTableCell-alignRight MuiTableCell-sizeMedium tss-css-1vs9p76-tableCellCheckBox print-hide mui-css-115xzy4\" data-testid=\"attributes-table-search-column\"><div class=\"tss-css-8y8kah-tableCellBreak\"><div></div></div></td>\n ```\n\n5. **Finalize:**\n\n * Close the table with `</tbody>` and `</table>`.\n * **Crucially: Only output the final HTML code.** \nDo not include any other text, explanations, or markdown formatting (like \\`\\`\\`html) around your response.\n\nremove any \"\\n\" before sending to output\n"
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "fde001d3-f383-47ea-a38c-3f86ebb1a886",
"name": "获取供应商和链接",
"type": "n8n-nodes-base.googleSheets",
"position": [
-928,
-96
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TeICFGUZisbOwkrOiDzObI2nW5smNErlmK5ncGER1wY/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1TeICFGUZisbOwkrOiDzObI2nW5smNErlmK5ncGER1wY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TeICFGUZisbOwkrOiDzObI2nW5smNErlmK5ncGER1wY/edit?usp=drivesdk",
"cachedResultName": "Product Suppliers"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "wAMAqU43zjVjlpuA",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "4733f40a-31cf-4065-85e4-b79b2336d974",
"connections": {
"Merge": {
"main": [
[
{
"node": "Loop Over Products",
"type": "main",
"index": 0
}
]
]
},
"Send Error": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 2
}
]
]
},
"Create a product": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
],
[
{
"node": "Send Error",
"type": "main",
"index": 0
}
]
]
},
"Update a product": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Error",
"type": "main",
"index": 0
}
]
]
},
"Get many products": {
"main": [
[
{
"node": "Check for Product availability",
"type": "main",
"index": 0
}
]
]
},
"Check the Category": {
"main": [
[
{
"node": "Add Missing Product",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Over Products",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Products": {
"main": [
[
{
"node": "Loop Over Suppliers",
"type": "main",
"index": 0
}
],
[
{
"node": "Get many products",
"type": "main",
"index": 0
}
]
]
},
"Add Missing Product": {
"main": [
[
{
"node": "BrowserAct Json Breakdown",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Error 2",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Suppliers": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Product Stock Data",
"type": "main",
"index": 0
}
]
]
},
"Get Suppliers & Links": {
"main": [
[
{
"node": "Loop Over Suppliers",
"type": "main",
"index": 0
}
]
]
},
"Get Product Stock Data": {
"main": [
[
{
"node": "BrowserAct JSON Breakdown",
"type": "main",
"index": 0
}
],
[
{
"node": "Send BrowserAct Error",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Create the HTML Data Table",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"BrowserAct JSON Breakdown": {
"main": [
[
{
"node": "Loop Over Products",
"type": "main",
"index": 0
}
]
]
},
"BrowserAct Json Breakdown": {
"main": [
[
{
"node": "Create the HTML Data Table",
"type": "main",
"index": 0
}
]
]
},
"Create the HTML Data Table": {
"main": [
[
{
"node": "Create a product",
"type": "main",
"index": 0
}
]
]
},
"Check for Product availability": {
"main": [
[
{
"node": "Update a product",
"type": "main",
"index": 0
}
],
[
{
"node": "Check the Category",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Get Suppliers & Links",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 客户关系管理, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用 BrowserAct 和 Gemini 查找并筛选有资金支持的线索
通过 BrowserAct 和 Gemini 查找并筛选有资金支持的潜在客户
If
Code
Merge
+9
29 节点Madame AI Team | Kai
潜在客户开发
使用BrowserAct实现电商店铺新品自动监控
使用BrowserAct和Slack警报监控Shopify店铺新品
If
Code
Merge
+6
24 节点Madame AI Team | Kai
市场调研
使用BrowserAct和Slack的实时MAP执行和价格违规警报
Google表格、BrowserAct和Slack的实时MAP执行和价格违规警报
If
Code
Merge
+6
20 节点Madame AI Team | Kai
市场调研
从任何网站抓取并导入产品到 Shopify(含变体和图片)(针对鞋类优化 - NIKE 到 Shopify)
使用 BrowserAct 抓取并导入鞋类产品到 Shopify(含变体和图片)
Set
Code
Merge
+9
25 节点Madame AI Team | Kai
杂项
Product Hunt 发布监控器 (producthunt.com)
使用 BrowserAct 和 Gemini AI 抓取并总结 Product Hunt 反馈
Slack
Google Sheets
Manual Trigger
+6
23 节点Madame AI Team | Kai
市场调研
GitHub 用户活动与数据抓取器(数据丰富引擎)
使用 BrowserAct 抓取详细 GitHub 个人资料到 Google Sheets
Set
Code
Merge
+7
30 节点Madame AI Team | Kai
潜在客户开发
工作流信息
难度等级
高级
节点数量31
分类2
节点类型12
作者
Madame AI Team | Kai
@madame-aiI’m a PhD in Physics turned AI enthusiast, passionate about uncovering how AI is transforming content creation, business, and daily life.
外部链接
在 n8n.io 查看 →
分享此工作流