Channable, Relevance AI, Merchant API를 사용하여 Google Shopping Feed를 최적화합니다.
고급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 19개의 노드를 포함합니다.주로 If, Code, Slack, Aggregate, ItemLists 등의 노드를 사용하며. Channable, Relevance AI, Merchant API를 사용하여 Google Shopping Feed를 최적화합니다.
사전 요구사항
- •Slack Bot Token 또는 Webhook URL
- •대상 API의 인증 정보가 필요할 수 있음
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "04fd795d32aabb18b913b4a3350b5cd0e9313a422ea0e7bdac0da2fb76cac9f7",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "34eafce0-026c-416e-99b8-fd6d012d758f",
"name": "Daily Trigger - 오전 6시",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "Triggers daily at 6 AM for feed optimization before Merchant Center sync",
"position": [
-4200,
460
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 6 * * *"
}
]
}
},
"typeVersion": 1
},
{
"id": "698d4143-e209-4c81-94ce-01094c4b1f14",
"name": "제품 피드 가져오기",
"type": "n8n-nodes-base.httpRequest",
"notes": "Retrieves product feed. Can replace with your e-commerce platform API endpoint.",
"position": [
-4000,
460
],
"parameters": {
"url": "={{$env.CHANNABLE_API_URL}}/companies/{{$env.CHANNABLE_COMPANY_ID}}/projects/{{$env.CHANNABLE_PROJECT_ID}}/feeds/{{$env.FEED_ID}}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "luTyM3gZSgwhM8i0",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "a88adbdf-2712-42cb-afe0-328f84038941",
"name": "데이터 품질 검사",
"type": "n8n-nodes-base.code",
"notes": "Validates: GTINs, images, categories, pricing, title/description length. Assigns quality score.",
"position": [
-3800,
460
],
"parameters": {
"jsCode": "// Data quality checks for Shopping feed\n\nconst items = $input.all();\nconst qualityIssues = [];\nconst validProducts = [];\n\nitems.forEach(item => {\n const product = item.json;\n const issues = [];\n \n // Check for missing GTIN\n if (!product.gtin || product.gtin === '') {\n issues.push('Missing GTIN');\n }\n \n // Check image\n if (!product.image_link || product.image_link === '') {\n issues.push('Missing image link');\n }\n \n // Check for missing category\n if (!product.google_product_category || product.google_product_category === '') {\n issues.push('Missing Google product category');\n }\n \n // Check for pricing errors\n const price = parseFloat(product.price);\n if (isNaN(price) || price <= 0) {\n issues.push('Invalid price');\n }\n \n // Check title length (30-150 chars optimal)\n const title = product.title || '';\n if (title.length < 30) {\n issues.push('Title too short (recommend 30-150 chars)');\n }\n if (title.length > 150) {\n issues.push('Title too long (max 150 chars)');\n }\n \n // Check for missing description\n if (!product.description || product.description.length < 160) {\n issues.push('Description missing or too short (recommend 160-500 chars)');\n }\n \n // Check availability\n if (!product.availability || !['in stock', 'out of stock', 'preorder', 'backorder'].includes(product.availability.toLowerCase())) {\n issues.push('Invalid availability status');\n }\n \n // Quality score\n const maxIssues = 7;\n const qualityScore = Math.round(((maxIssues - issues.length) / maxIssues) * 100);\n \n const result = {\n ...product,\n quality_score: qualityScore,\n quality_issues: issues,\n needs_optimization: issues.length > 0\n };\n \n if (qualityScore < 80) {\n qualityIssues.push(result);\n } else {\n validProducts.push(result);\n }\n});\n\nreturn {\n total_products: items.length,\n products_with_issues: qualityIssues.length,\n valid_products: validProducts.length,\n all_products: [...validProducts, ...qualityIssues]\n};"
},
"typeVersion": 2
},
{
"id": "4ba2eb7c-ce9d-4219-8adb-823f0e14dac8",
"name": "제목 최적화",
"type": "n8n-nodes-base.httpRequest",
"notes": "CORRECTED: Uses /trigger with tool ID. Optimizes title: Brand + Type + Features + Attributes. Max 150 chars.",
"position": [
-3400,
460
],
"parameters": {
"url": "={{$env.RELEVANCE_AI_API_URL}}/tools/{{$env.RELEVANCE_TOOL_TITLE_OPTIMIZER_ID}}/trigger",
"method": "POST",
"options": {},
"jsonBody": "={\n \"params\": {\n \"current_title\": \"{{$json.title}}\",\n \"category\": \"{{$json.google_product_category}}\",\n \"brand\": \"{{$json.brand}}\",\n \"color\": \"{{$json.color}}\",\n \"size\": \"{{$json.size}}\",\n \"material\": \"{{$json.material}}\"\n }\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "luTyM3gZSgwhM8i0",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "f505b7a4-9bb9-44fd-8ecd-ddfe94a4926d",
"name": "설명 생성",
"type": "n8n-nodes-base.httpRequest",
"notes": "CORRECTED: Uses /trigger with tool ID. Generates 300-400 char benefit-focused description.",
"position": [
-3200,
460
],
"parameters": {
"url": "={{$env.RELEVANCE_AI_API_URL}}/tools/{{$env.RELEVANCE_TOOL_DESCRIPTION_ID}}/trigger",
"method": "POST",
"options": {},
"jsonBody": "={\n \"params\": {\n \"product_title\": \"{{$json.optimized_title || $json.title}}\",\n \"product_features\": \"{{$json.description}}\",\n \"category\": \"{{$json.google_product_category}}\"\n }\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "luTyM3gZSgwhM8i0",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "a74d968c-c188-47fa-86da-448382eeaea9",
"name": "커스텀 라벨 할당",
"type": "n8n-nodes-base.code",
"notes": "Assigns 5 custom labels for segmented bidding: margin, performance, seasonality, stock, category",
"position": [
-3000,
460
],
"parameters": {
"jsCode": "// Assign custom labels for campaign segmentation\n\nconst product = $input.item.json;\nconst price = parseFloat(product.price);\nconst cost = parseFloat(product.cost || 0);\n\n// Calculate margin\nconst margin = cost > 0 ? ((price - cost) / price) * 100 : 0;\n\n// Custom Label 0: Margin Tier\nlet marginTier = 'low';\nif (margin > 40) marginTier = 'high';\nelse if (margin > 25) marginTier = 'mid';\n\n// Custom Label 1: Performance\nlet performanceLabel = 'standard';\nif (product.sales_rank && product.sales_rank < 100) {\n performanceLabel = 'bestseller';\n} else if (product.created_date && new Date(product.created_date) > new Date(Date.now() - 30*24*60*60*1000)) {\n performanceLabel = 'new';\n} else if (product.availability === 'limited stock') {\n performanceLabel = 'clearance';\n}\n\n// Custom Label 2: Seasonality\nconst month = new Date().getMonth() + 1;\nlet seasonality = 'evergreen';\nif ([11, 12].includes(month)) seasonality = 'holiday';\nelse if ([6, 7, 8].includes(month)) seasonality = 'summer';\nelse if ([3, 4, 5].includes(month)) seasonality = 'spring';\n\n// Custom Label 3: Stock Level\nlet stockLevel = 'in-stock';\nif (product.quantity) {\n const qty = parseInt(product.quantity);\n if (qty === 0) stockLevel = 'out-of-stock';\n else if (qty < 10) stockLevel = 'low-stock';\n else if (qty > 100) stockLevel = 'high-stock';\n}\n\n// Custom Label 4: Category\nconst category = product.google_product_category || product.product_type || 'uncategorized';\nconst categoryShort = category.split('>')[0].trim().toLowerCase().replace(/\\s+/g, '-');\n\nreturn {\n ...product,\n optimized_title: $input.item.json.optimized_title || product.title,\n optimized_description: $input.item.json.optimized_description || product.description,\n custom_label_0: marginTier,\n custom_label_1: performanceLabel,\n custom_label_2: seasonality,\n custom_label_3: stockLevel,\n custom_label_4: categoryShort,\n margin_percent: margin.toFixed(2)\n};"
},
"typeVersion": 2
},
{
"id": "bc0cc114-262f-4594-a4d2-793926ab1e54",
"name": "제품 통합",
"type": "n8n-nodes-base.aggregate",
"notes": "Combines all optimized products",
"position": [
-2800,
460
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "1116b030-6b5d-40c0-b871-7fea79fb7c46",
"name": "제품 상태 확인 (NEW API)",
"type": "n8n-nodes-base.httpRequest",
"notes": "CORRECTED: Uses NEW Merchant API to list products and check for issues. PageSize now supports up to 1000.",
"position": [
-2240,
460
],
"parameters": {
"url": "=={{$env.MERCHANT_API_URL}}/{{$env.MERCHANT_ACCOUNT_ID}}/products",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleApi"
},
"typeVersion": 4.2
},
{
"id": "3ea2945d-d376-4c72-9aed-c7da9529c772",
"name": "제품 문제 분석",
"type": "n8n-nodes-base.code",
"notes": "CORRECTED: Parses NEW Merchant API response format for issues",
"position": [
-2040,
460
],
"parameters": {
"jsCode": "// Monitor for disapprovals and quality issues\n\nconst items = $input.all();\nconst products = items[0]?.json?.products || [];\nconst disapprovals = [];\nconst warnings = [];\n\nproducts.forEach(product => {\n // Check for issues in NEW Merchant API format\n if (product.issues && product.issues.length > 0) {\n product.issues.forEach(issue => {\n if (issue.severity === 'error' || issue.applicability === 'DISAPPROVED') {\n disapprovals.push({\n product_id: product.offerId,\n product_title: product.title,\n issue: issue.description || issue.detail,\n severity: 'CRITICAL'\n });\n } else if (issue.severity === 'warning') {\n warnings.push({\n product_id: product.offerId,\n product_title: product.title,\n issue: issue.description || issue.detail,\n severity: 'WARNING'\n });\n }\n });\n }\n});\n\nreturn {\n total_products_checked: products.length,\n disapprovals: disapprovals,\n warnings: warnings,\n disapproval_count: disapprovals.length,\n warning_count: warnings.length,\n check_timestamp: new Date().toISOString()\n};"
},
"typeVersion": 2
},
{
"id": "7766d9c2-5967-4984-a9ff-5448b19fd51d",
"name": "IF 승인 거부 발견됨",
"type": "n8n-nodes-base.if",
"notes": "Check if any critical disapprovals exist",
"position": [
-1840,
460
],
"parameters": {
"options": {},
"conditions": {
"number": [
{
"value1": "={{$json.disapproval_count}}",
"value2": 0,
"operation": "larger"
}
]
}
},
"typeVersion": 2
},
{
"id": "7ad9791b-2c14-4fee-bac2-b35ce882745d",
"name": "알림 - 승인 거부",
"type": "n8n-nodes-base.slack",
"notes": "Sends alert if disapprovals found",
"position": [
-1380,
380
],
"webhookId": "affe0e89-ef4a-4813-9a51-d6e096a7d774",
"parameters": {
"text": "=🚨 *Merchant Center Disapprovals Alert*\n\n*Total Disapprovals:* {{$json.disapproval_count}}\n*Total Warnings:* {{$json.warning_count}}\n\n*Critical Issues:*\n{{$json.disapprovals.slice(0,10).map(d => `• Product: ${d.product_title} (${d.product_id})\\n Issue: ${d.issue}`).join('\\n\\n')}}\n\n*Action Required:* Review and fix disapproved products in Merchant Center.\n\n*Timestamp:* {{$json.check_timestamp}}",
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "e7d48164-e460-4f7e-bf8d-53f99df36e1e",
"name": "성공 요약",
"type": "n8n-nodes-base.slack",
"notes": "Sends daily summary of feed optimization",
"position": [
-1380,
580
],
"webhookId": "84c5cd8c-521b-4982-81ca-fe0e7d24dff0",
"parameters": {
"text": "=✅ *Shopping Feed Optimization Complete*\n\n📊 *Summary:*\n• Total Products Processed: {{$node['Aggregate Products'].json.length}}\n• Products with Quality Issues: {{$node['Data Quality Checks'].json.products_with_issues}}\n• Disapprovals: {{$json.disapproval_count}}\n• Warnings: {{$json.warning_count}}\n\n🎯 *Optimizations Applied:*\n• Titles optimized for SEO\n• Descriptions enhanced\n• Custom labels assigned for segmented bidding\n\n*API Used:* NEW Merchant API (merchantapi.googleapis.com)\n*Next optimization:* Tomorrow 6 AM\n*Timestamp:* {{$now.toISO()}}",
"otherOptions": {}
},
"typeVersion": 2.1
},
{
"id": "7d1494bd-00c4-4aee-bda2-1f7a88e70109",
"name": "Merchant Center에 업로드 (Content API v2.1)",
"type": "n8n-nodes-base.httpRequest",
"notes": "CRITICAL CORRECTION: Uses NEW Merchant API (merchantapi.googleapis.com) instead of deprecated Content API. Endpoint: /products:insert. Max 1000 products per batch.",
"position": [
-2440,
460
],
"parameters": {
"url": "=={{$env.MERCHANT_API_URL}}/{{$env.MERCHANT_ACCOUNT_ID}}/products",
"method": "POST",
"options": {
"batching": {
"batch": {
"batchSize": 1000
}
}
},
"jsonBody": "={\n \"productId\": \"{{$json.id}}\",\n \"contentLanguage\": \"en\",\n \"targetCountry\": \"US\",\n \"channel\": \"online\",\n \"offerId\": \"{{$json.id}}\",\n \"title\": \"{{$json.optimized_title}}\",\n \"description\": \"{{$json.optimized_description}}\",\n \"link\": \"{{$json.link}}\",\n \"imageLink\": \"{{$json.image_link}}\",\n \"price\": {\n \"value\": \"{{$json.price}}\",\n \"currency\": \"{{$json.currency || 'USD'}}\"\n },\n \"availability\": \"{{$json.availability}}\",\n \"brand\": \"{{$json.brand}}\",\n \"gtin\": \"{{$json.gtin}}\",\n \"condition\": \"{{$json.condition || 'new'}}\",\n \"googleProductCategory\": \"{{$json.google_product_category}}\",\n \"productTypes\": [\"{{$json.product_type}}\"],\n \"customLabel0\": \"{{$json.custom_label_0}}\",\n \"customLabel1\": \"{{$json.custom_label_1}}\",\n \"customLabel2\": \"{{$json.custom_label_2}}\",\n \"customLabel3\": \"{{$json.custom_label_3}}\",\n \"customLabel4\": \"{{$json.custom_label_4}}\"\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleApi"
},
"typeVersion": 4.2
},
{
"id": "0f405975-1874-4a86-8f6e-8cadac48922d",
"name": "제품 분할1",
"type": "n8n-nodes-base.itemLists",
"notes": "Splits the 'all_products' array from Data Quality Checks into individual product items for further processing (Relevance AI optimization, labeling, etc).",
"position": [
-3600,
460
],
"parameters": {
"options": {},
"fieldToSplitOut": "all_products"
},
"typeVersion": 3
},
{
"id": "0fdb96fb-cbfc-4a0e-b5cc-adf8f6d4c35f",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-5060,
340
],
"parameters": {
"width": 640,
"height": 300,
"content": "# 🛍️ Google Shopping Feed Optimization with Relevance AI + Google Merchant API\n\nAutomates your Google Shopping product feed optimization.\nUses Relevance AI to enhance titles/descriptions, adds custom labels, and syncs optimized products daily to Merchant Center."
},
"typeVersion": 1
},
{
"id": "58d75113-8d09-4dbe-93d4-7f61f6a2c51f",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-4240,
680
],
"parameters": {
"width": 820,
"height": 220,
"content": "## 🟨 Stage 1 — Workflow Start\n\n| 🕓 Daily Trigger – 6 AM | 📦 Get Product Feed | 🔍 Data Quality Checks | ✂️ Split Products |\n|--------------------------|--------------------|------------------------|------------------|\n| Runs automatically every morning.<br>Starts 6 AM daily to refresh and optimize the feed before Merchant Center sync. | Fetches product data from Channable (or your e-commerce API). | Checks for missing GTINs, titles, prices, and descriptions.Calculates a quality score for each item. | Prepares each product for AI optimization by splitting the feed into individual items. |\n"
},
"typeVersion": 1
},
{
"id": "e474c0ae-303d-4038-b395-4288c83b1d30",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3420,
160
],
"parameters": {
"width": 680,
"height": 240,
"content": "## 🟨 Stage 2 — AI Optimization Stage\n\n| 🧠 Optimize Title | 📝 Generate Description | 🏷️ Assign Custom Labels | 📊 Aggregate Products |\n|------------------|-------------------------|-------------------------|----------------------|\n| AI-powered title optimizer using Relevance AI.Improves clarity and SEO.e.g., “Running Shoes” → “Nike Air Zoom Men’s Running Shoes – Size 42”. | AI-generated 300–400 char benefit-focused descriptions via Relevance AI. | Adds five campaign segmentation labels (margin, performance, seasonality, stock, category). | Combines all optimized products back into a single feed ready for upload. |"
},
"typeVersion": 1
},
{
"id": "4653db9a-6b15-4882-a55a-717e010fb0bc",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2660,
760
],
"parameters": {
"width": 1220,
"height": 220,
"content": "## 🟨 Stage 3 — Merchant Center Sync\n\n| 🚀 Upload to Merchant Center (API v2.1) | 🔁 Check Product Status (NEW API) | ⚠️ Analyze Product Issues | 🚦 IF Disapprovals Found |\n|-----------------------------------------|----------------------------------|---------------------------|--------------------------|\n| Publishes optimized feed in batches (max 1000) using the new Merchant API (`merchantapi.googleapis.com`). | Verifies upload results by listing live products and checking for warnings or errors. | Detects disapprovals and warnings from Merchant API responses and groups them by severity. | Routes workflow based on disapprovals – alerts team if issues exist or sends success summary otherwise. |"
},
"typeVersion": 1
},
{
"id": "fe61502c-d105-4610-a3fd-f6b1786ce661",
"name": "스티키 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
400
],
"parameters": {
"width": 440,
"height": 240,
"content": "## 🟨 Stage 4 — Notifications\n\n| 🚨 Alert – Disapprovals | ✅ Success Summary |\n|--------------------------|--------------------|\n| Immediate Slack alert listing disapproved products and issues requiring review. | Posts daily Slack summary with total products, issues, and confirmation of successful optimization. |\n"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"4ba2eb7c-ce9d-4219-8adb-823f0e14dac8": {
"main": [
[
{
"node": "f505b7a4-9bb9-44fd-8ecd-ddfe94a4926d",
"type": "main",
"index": 0
}
]
]
},
"0f405975-1874-4a86-8f6e-8cadac48922d": {
"main": [
[
{
"node": "4ba2eb7c-ce9d-4219-8adb-823f0e14dac8",
"type": "main",
"index": 0
}
]
]
},
"698d4143-e209-4c81-94ce-01094c4b1f14": {
"main": [
[
{
"node": "a88adbdf-2712-42cb-afe0-328f84038941",
"type": "main",
"index": 0
}
]
]
},
"bc0cc114-262f-4594-a4d2-793926ab1e54": {
"main": [
[
{
"node": "7d1494bd-00c4-4aee-bda2-1f7a88e70109",
"type": "main",
"index": 0
}
]
]
},
"a88adbdf-2712-42cb-afe0-328f84038941": {
"main": [
[
{
"node": "0f405975-1874-4a86-8f6e-8cadac48922d",
"type": "main",
"index": 0
}
]
]
},
"a74d968c-c188-47fa-86da-448382eeaea9": {
"main": [
[
{
"node": "bc0cc114-262f-4594-a4d2-793926ab1e54",
"type": "main",
"index": 0
}
]
]
},
"34eafce0-026c-416e-99b8-fd6d012d758f": {
"main": [
[
{
"node": "698d4143-e209-4c81-94ce-01094c4b1f14",
"type": "main",
"index": 0
}
]
]
},
"f505b7a4-9bb9-44fd-8ecd-ddfe94a4926d": {
"main": [
[
{
"node": "a74d968c-c188-47fa-86da-448382eeaea9",
"type": "main",
"index": 0
}
]
]
},
"7766d9c2-5967-4984-a9ff-5448b19fd51d": {
"main": [
[
{
"node": "7ad9791b-2c14-4fee-bac2-b35ce882745d",
"type": "main",
"index": 0
}
],
[
{
"node": "e7d48164-e460-4f7e-bf8d-53f99df36e1e",
"type": "main",
"index": 0
}
]
]
},
"3ea2945d-d376-4c72-9aed-c7da9529c772": {
"main": [
[
{
"node": "7766d9c2-5967-4984-a9ff-5448b19fd51d",
"type": "main",
"index": 0
}
]
]
},
"1116b030-6b5d-40c0-b871-7fea79fb7c46": {
"main": [
[
{
"node": "3ea2945d-d376-4c72-9aed-c7da9529c772",
"type": "main",
"index": 0
}
]
]
},
"7d1494bd-00c4-4aee-bda2-1f7a88e70109": {
"main": [
[
{
"node": "1116b030-6b5d-40c0-b871-7fea79fb7c46",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Claude 3.5, Channable, Relevance AI를 사용하여 구글 광고 문구 자동 생성
사용하여 Claude 3.5, Channable 및 Relevance AI로 구글 광고 문구 자동 생성
If
Set
Code
+
If
Set
Code
19 노드Nikan Noorafkan
콘텐츠 제작
Channable 피드와 Relevance AI를 사용한 Google 광고 카피 최적화 자동화
Channable 피드와 Relevance AI를 사용한 Google 광고 카피 최적화 자동화
Code
Slack
Http Request
+
Code
Slack
Http Request
16 노드Nikan Noorafkan
콘텐츠 제작
OpenAI, Ahrefs 및 다중 플랫폼 통합을 사용한 자동화된 콘텐츠 마케팅 인텔리전스
OpenAI, Ahrefs 및 다중 플랫폼 연동을 사용한 자동화된 콘텐츠 마케팅 인텔리전스
If
Set
Code
+
If
Set
Code
21 노드Nikan Noorafkan
시장 조사
콘텐츠생성기 v3
AI驱动블로그자동화:사용GPT-4생성并게시SEO기사至WordPress및Twitter
If
Set
Code
+
If
Set
Code
144 노드Jay Emp0
콘텐츠 제작
Groq, Gemini, Slack 승인 시스템을 사용한 RSS에서 Medium 자동 게시
Groq, Gemini 및 Slack 승인 시스템을 통한 RSS에서 Medium 발행 자동화 워크플로
If
Set
Code
+
If
Set
Code
41 노드ObisDev
콘텐츠 제작
WordPress 블로그 자동화 프로페셔널 에디션(심층 연구) v2.1 마켓
GPT-4o, Perplexity AI 및 다국어 지원을 사용한 SEO 최적화 블로그 생성 자동화
If
Set
Xml
+
If
Set
Xml
125 노드Daniel Ng
콘텐츠 제작
워크플로우 정보
난이도
고급
노드 수19
카테고리2
노드 유형8
저자
Nikan Noorafkan
@nikkannooraHey, I’m Nikan Noorafkan — a creator passionate about building smart, automated workflows that drive business outcomes. With a background in performance marketing, user acquisition, and retention strategies, I use n8n to connect data, automate repetitive tasks, and scale growth across the funnel.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유