AI 경쟁자 분석을 사용하여 브랜드 입력에서 AEO 전략 생성
고급
이것은Market Research, Multimodal AI분야의자동화 워크플로우로, 25개의 노드를 포함합니다.주로 Set, Code, Wait, Gmail, Merge 등의 노드를 사용하며. Firecrawl、Gemini와 OpenAI를 사용하여 답변 엔진 최적화 전략 생성
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
- •Google Gemini API Key
사용된 노드 (25)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "KKe195nI9HsFACnH",
"meta": {
"instanceId": "e46a00fdf674c6a717d1781ab876c72daac39cdddf1349ff176b416ee5840ee5"
},
"name": "Generate AEO strategy from brand input using AI competitor analysis",
"tags": [],
"nodes": [
{
"id": "0ed4c268-0c17-4518-ab09-9d535c90f319",
"name": "스티커 노트 - 주요 설명",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
-240
],
"parameters": {
"color": 4,
"width": 526,
"height": 1756,
"content": "## 🎯 AEO Strategy Generator with AI Competitor Analysis\n\n### What This Workflow Does\nThis workflow automatically generates a comprehensive Answer Engine Optimization (AEO) strategy by:\n1. **Collecting brand information** via a web form\n2. **Identifying top 3 competitors** using AI analysis\n3. **Scraping competitor content** to understand their positioning\n4. **Generating a custom AEO strategy** based on competitive intelligence\n5. **Delivering results via email** as a formatted report\n\n### Who It's For\n- **Digital marketers** optimizing for AI search engines (ChatGPT, Perplexity, etc.)\n- **SEO agencies** offering AEO services to clients\n- **Brand strategists** analyzing competitive positioning\n- **Content teams** creating AI-optimized content strategies\n\n### Requirements\n- **Google Gemini API key** (for competitor analysis)\n- **OpenAI API key** (for strategy generation)\n- **Firecrawl API key** (for web scraping)\n- **Gmail account** (for sending results)\n\n### Setup Instructions\n\n1. **Configure API Credentials**\n - Add your Google Gemini API credentials\n - Add your OpenAI API credentials \n - Add your Firecrawl API key in the HTTP nodes\n - Add your Gmail credentials\n\n2. **Customize the Form**\n - Edit the form trigger to match your branding\n - Deploy the webhook to get your form URL\n\n3. **Test the Workflow**\n - Submit a test form with a real brand\n - Check email delivery\n - Review the generated strategy\n\n### How to Customize\n\n- **Change AI Models**: Swap Google Gemini or OpenAI for other LLM providers\n- **Modify Competitor Count**: Edit the AI prompt to find more/fewer competitors\n- **Add More Data Sources**: Include social media, reviews, or G2 data\n- **Change Output Format**: Modify the email template or export to Google Docs\n- **Add Slack/Discord**: Replace Gmail with team notifications\n\n### Workflow Steps\n\n**Step 1**: User fills out form with brand details\n**Step 2**: AI agent identifies top 3 direct competitors\n**Step 3**: Firecrawl scrapes target brand website\n**Step 4**: Firecrawl scrapes competitor websites in parallel \n**Step 5**: AI generates comprehensive AEO strategy\n**Step 6**: Results sent via email\n\n---\n\n💡 **Pro Tip**: For best results, ensure the brand website has clear product/service information for the AI to analyze."
},
"typeVersion": 1
},
{
"id": "279c4e93-95e1-4428-aedd-750b68927399",
"name": "스티커 노트 - 1단계",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
64
],
"parameters": {
"color": 7,
"width": 325,
"height": 237,
"content": "## 📋 Step 1: Collect Brand Information\n\nUsers submit a form with:\n- Brand Name\n- Website URL\n- Niche (B2B/D2C/B2C)\n- Product Type\n- Email for delivery\n\nThe form trigger creates a webhook that captures these inputs for processing."
},
"typeVersion": 1
},
{
"id": "4de0225e-771b-4f35-a17b-fb5bfa3b7a22",
"name": "스티커 노트 - 2단계",
"type": "n8n-nodes-base.stickyNote",
"position": [
928,
48
],
"parameters": {
"color": 7,
"width": 342,
"height": 283,
"content": "## 🔍 Step 2: AI Competitor Analysis\n\nGoogle Gemini AI analyzes the brand and identifies the top 3 direct competitors based on:\n- Product/service overlap (40%)\n- Market position (30%)\n- Digital presence (20%)\n- Geographic overlap (10%)\n\nOutputs competitor names and URLs in structured JSON format."
},
"typeVersion": 1
},
{
"id": "f8367873-eff8-495f-892d-f4aaa16bb682",
"name": "스티커 노트 - 3단계",
"type": "n8n-nodes-base.stickyNote",
"position": [
1808,
-32
],
"parameters": {
"color": 7,
"width": 324,
"height": 298,
"content": "## 🌐 Step 3: Web Scraping\n\nFirecrawl API scrapes:\n- **Target brand website** (main URL)\n- **All 3 competitor websites** (in parallel)\n\nExtracts:\n- Product descriptions\n- Value propositions \n- Target audience info\n- Key messaging\n- Content themes"
},
"typeVersion": 1
},
{
"id": "5a353a4a-0cfd-4ec7-b668-9fe0ec95271b",
"name": "스티커 노트 - 4단계",
"type": "n8n-nodes-base.stickyNote",
"position": [
2528,
32
],
"parameters": {
"color": 7,
"width": 359,
"height": 319,
"content": "## 🤖 Step 4: AEO Strategy Generation\n\nOpenAI GPT-4 analyzes:\n- Brand positioning vs competitors\n- Content gaps and opportunities\n- Answer Engine optimization tactics\n\nGenerates:\n- 15+ specific AEO recommendations\n- Content topics to create\n- Optimization priorities\n- Competitive advantages to emphasize"
},
"typeVersion": 1
},
{
"id": "58c0c777-dde6-41c4-bde8-55450b0e5705",
"name": "스티커 노트 - 5단계",
"type": "n8n-nodes-base.stickyNote",
"position": [
2976,
48
],
"parameters": {
"color": 7,
"width": 329,
"height": 283,
"content": "## 📧 Step 5: Deliver Results\n\nFormatted HTML email sent to the provided address containing:\n- Executive summary\n- Competitor analysis\n- Detailed AEO strategy\n- Action items\n- Next steps\n\nCustomize the email template in the \"Format Email Content\" node."
},
"typeVersion": 1
},
{
"id": "a8a45e17-5938-4167-9e84-b070649059b0",
"name": "폼 트리거 - 브랜드 입력",
"type": "n8n-nodes-base.formTrigger",
"position": [
528,
400
],
"webhookId": "a64db0c8-c687-43dd-b46a-df6fc2454fc2",
"parameters": {
"options": {},
"formTitle": "AEO Strategy Generator",
"formFields": {
"values": [
{
"fieldLabel": "Brand Name",
"requiredField": true
},
{
"fieldLabel": "Website Link",
"requiredField": true
},
{
"fieldLabel": "Niche (D2C or B2C)",
"requiredField": true
},
{
"fieldLabel": "Product Type",
"requiredField": true
},
{
"fieldType": "email",
"fieldLabel": "Email",
"requiredField": true
}
]
},
"formDescription": "Get a custom Answer Engine Optimization strategy for your brand"
},
"typeVersion": 2.3
},
{
"id": "191a4c85-8ce1-467a-9f92-f86f2d39a711",
"name": "설정 - 브랜드 변수",
"type": "n8n-nodes-base.set",
"position": [
736,
400
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "80848d3f-22bc-4c16-9309-3165054f66dd",
"name": "brand_name",
"type": "string",
"value": "={{ $json[\"Brand Name\"] }}"
},
{
"id": "d2c3fef9-7935-479b-8b7c-cdb188616fca",
"name": "website_url",
"type": "string",
"value": "={{ $json[\"Website Link\"] }}"
},
{
"id": "eac20759-a54c-4f9f-9812-9a8188f3a6e4",
"name": "niche",
"type": "string",
"value": "={{ $json[\"Niche (D2C or B2C)\"] }}"
},
{
"id": "8bc6c9de-ec31-476c-9480-0dada0b85933",
"name": "product_type",
"type": "string",
"value": "={{ $json[\"Product Type\"] }}"
},
{
"id": "ea2ce803-7470-4f46-924b-f44bd493e513",
"name": "user_email",
"type": "string",
"value": "={{ $json.Email }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0e752e80-d0e4-409c-935c-1c60c3c35ba8",
"name": "AI 에이전트 - 경쟁사 식별",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
896,
400
],
"parameters": {
"text": "=# AI Agent Prompt: Competitor Identification\n\n## SYSTEM PROMPT (Role Definition)\n\nYou are a competitive intelligence analyst with expertise in market research and brand positioning. Your specialty is identifying direct and indirect competitors across various industries, with a focus on digital presence and market overlap.\n\nYou have deep knowledge of:\n- Market segmentation and positioning\n- Business model analysis\n- Product/service categorization\n- Competitive landscape mapping\n- Digital marketing and AEO strategies\n\n## USER PROMPT (Task Instructions)\n\n### INPUT DATA:\n- **Brand Name**: {{ $json.brand_name }}\n- **Website URL**: {{ $json.website_url }}\n- **Niche**: {{ $json.niche }}\n- **Product Type**: {{ $json.product_type }}\n\n### YOUR TASK:\nIdentify the **top 3 direct competitors** for this brand based on the following criteria:\n\n#### ANALYSIS CRITERIA:\n1. **Product/Service Overlap** (40% weight)\n - Similar offerings or solutions\n - Comparable target audience\n - Overlapping use cases\n\n2. **Market Position** (30% weight)\n - Similar market segment (enterprise, mid-market, SMB, consumer)\n - Comparable pricing tier\n - Similar brand maturity\n\n3. **Digital Presence** (20% weight)\n - Active in the same channels\n - Competing for similar search terms\n - Similar content strategy\n\n4. **Geographic Overlap** (10% weight)\n - Operating in same regions\n - Same language markets\n\n#### COMPETITOR SELECTION RULES:\n✅ **DO select competitors that:**\n- Offer substantially similar products/services\n- Target the same customer segment\n- Would appear in comparison searches\n- Customers would realistically choose between\n\n❌ **DO NOT select:**\n- Companies in completely different industries\n- Vastly different price points (budget vs. luxury)\n- Different business models (B2B vs. B2C)\n- Generic technology providers (unless that's what the brand is)\n\n### RESEARCH PROCESS:\n1. Analyze the brand's core offering and positioning\n2. Consider their target market and customer profile\n3. Identify companies solving similar problems\n4. Prioritize by relevance and market overlap\n5. Verify each competitor has an active digital presence\n\n### OUTPUT FORMAT (JSON):\n\nReturn your response in this exact JSON structure:\n\n```json\n{\n \"brand_analyzed\": \"Brand Name\",\n \"industry_category\": \"Brief industry classification\",\n \"competitors\": [\n {\n \"rank\": 1,\n \"company_name\": \"Competitor Name\",\n \"website_url\": \"https://www.competitor.com\",\n \"reasoning\": \"2-3 sentence explanation\",\n \"overlap_percentage\": 85,\n \"key_similarities\": [\n \"Similarity 1\",\n \"Similarity 2\",\n \"Similarity 3\"\n ],\n \"differentiators\": [\n \"Differentiator 1\",\n \"Differentiator 2\"\n ]\n },\n {\n \"rank\": 2,\n \"company_name\": \"Competitor Name 2\",\n \"website_url\": \"https://www.competitor2.com\",\n \"reasoning\": \"Explanation for #2 ranking\",\n \"overlap_percentage\": 75,\n \"key_similarities\": [\n \"Similarity 1\",\n \"Similarity 2\",\n \"Similarity 3\"\n ],\n \"differentiators\": [\n \"Differentiator 1\",\n \"Differentiator 2\"\n ]\n },\n {\n \"rank\": 3,\n \"company_name\": \"Competitor Name 3\",\n \"website_url\": \"https://www.competitor3.com\",\n \"reasoning\": \"Explanation for #3 ranking\",\n \"overlap_percentage\": 70,\n \"key_similarities\": [\n \"Similarity 1\",\n \"Similarity 2\",\n \"Similarity 3\"\n ],\n \"differentiators\": [\n \"Differentiator 1\",\n \"Differentiator 2\"\n ]\n }\n ],\n \"analysis_notes\": \"Brief note about the competitive landscape\",\n \"alternative_competitors\": [\n \"Company Name 4\",\n \"Company Name 5\"\n ]\n}\n```\n\n### IMPORTANT REQUIREMENTS:\n\n1. **URL Accuracy**: All competitor URLs must be valid and active\n2. **Relevance**: Only include true competitors, not loosely related companies\n3. **Recency**: Prioritize currently active competitors (not defunct companies)\n4. **Verification**: Ensure each company actually competes in the same space\n5. **Objectivity**: Base rankings on factual overlap, not brand size alone\n\n### QUALITY CHECKLIST:\n\nBefore submitting, verify:\n- ✅ All 3 competitors are truly comparable\n- ✅ Website URLs are complete and valid (include https://)\n- ✅ Overlap percentages are realistic and justified\n- ✅ Reasoning is specific, not generic\n- ✅ JSON is properly formatted\n- ✅ No placeholder text\n\nProvide the top 3 competitors in the exact JSON format specified above.",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "f81b4735-21b0-4a80-8f73-38f4557a3c86",
"name": "Google Gemini 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
896,
576
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "KtAMOYdbcKc3zjad",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "cf7e1394-a9cd-4a8d-bd74-09d9548a40f6",
"name": "경쟁사 데이터 파싱",
"type": "n8n-nodes-base.code",
"position": [
1200,
400
],
"parameters": {
"jsCode": "// Parse the AI response to extract competitor data\nconst response = $input.first().json.output;\n\n// Try to extract JSON from the response\nlet competitors;\ntry {\n // Try to parse directly\n competitors = JSON.parse(response);\n} catch (e) {\n // Try to extract JSON from markdown code blocks\n const jsonMatch = response.match(/```json\\n([\\s\\S]*?)\\n```/);\n if (jsonMatch) {\n competitors = JSON.parse(jsonMatch[1]);\n } else {\n // Try to find JSON object in the text\n const objMatch = response.match(/\\{[\\s\\S]*\\}/);\n if (objMatch) {\n competitors = JSON.parse(objMatch[0]);\n } else {\n throw new Error('Could not extract JSON from response');\n }\n }\n}\n\n// Extract competitor URLs and names\nconst competitorData = competitors.competitors.map(comp => ({\n competitor_name: comp.company_name,\n competitor_url: comp.website_url,\n overlap_percentage: comp.overlap_percentage,\n reasoning: comp.reasoning\n}));\n\n// Return structured data\nreturn [\n {\n json: {\n brand_name: $input.first().json.brand_name,\n website_url: $input.first().json.website_url,\n niche: $input.first().json.niche,\n product_type: $input.first().json.product_type,\n user_email: $input.first().json.user_email,\n competitor_urls: competitorData.map(c => c.competitor_url),\n competitors: competitorData\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "0140d35c-e081-430c-aed3-4815e3a52237",
"name": "분할 - 개별 경쟁사",
"type": "n8n-nodes-base.splitOut",
"position": [
1408,
400
],
"parameters": {
"options": {},
"fieldToSplitOut": "=competitors"
},
"typeVersion": 1
},
{
"id": "b3db184b-1c3e-4703-8379-d17254c2366d",
"name": "대상 브랜드 웹사이트 스크레이핑",
"type": "n8n-nodes-base.httpRequest",
"position": [
1600,
512
],
"parameters": {
"url": "https://api.firecrawl.dev/v2/extract",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $json.website_url }}"
},
{
"name": "schema",
"value": "={\"type\": \"object\", \"properties\": {\"company_name\": {\"type\": \"string\"}, \"products_services\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}, \"value_proposition\": {\"type\": \"string\"}, \"target_audience\": {\"type\": \"string\"}, \"key_features\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}, \"pricing_info\": {\"type\": \"string\"}, \"content_themes\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}}}"
}
]
},
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "385a6108-353f-44a9-9a8f-a6f55daf569d",
"name": "경쟁사 웹사이트 스크레이핑",
"type": "n8n-nodes-base.httpRequest",
"position": [
1600,
272
],
"parameters": {
"url": "https://api.firecrawl.dev/v2/extract",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $json.competitor_url }}"
},
{
"name": "schema",
"value": "={\"type\": \"object\", \"properties\": {\"company_name\": {\"type\": \"string\"}, \"products_services\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}, \"value_proposition\": {\"type\": \"string\"}, \"target_audience\": {\"type\": \"string\"}, \"key_features\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}, \"pricing_info\": {\"type\": \"string\"}, \"content_themes\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}}}"
}
]
},
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "LDYdFaVICj6n2wNn",
"name": "openrouter nano ban"
}
},
"typeVersion": 4.2
},
{
"id": "bed46dcf-aee6-4879-b068-b8b100160ce3",
"name": "대기 - 브랜드 스크레이핑",
"type": "n8n-nodes-base.wait",
"position": [
1808,
512
],
"webhookId": "ca9c7a99-925e-4366-9f3b-55b07f5a21ee",
"parameters": {
"amount": 60
},
"typeVersion": 1.1
},
{
"id": "c23479c5-e0f2-4feb-8b12-8b79ff85dd9a",
"name": "대기 - 경쟁사 스크레이핑",
"type": "n8n-nodes-base.wait",
"position": [
1808,
272
],
"webhookId": "f93e3c85-cda2-4887-8743-e7370f0bde21",
"parameters": {
"amount": 60
},
"typeVersion": 1.1
},
{
"id": "08b3d94d-09ed-4d86-a356-60456c919f80",
"name": "브랜드 작업 ID 추출",
"type": "n8n-nodes-base.code",
"position": [
2032,
512
],
"parameters": {
"jsCode": "// Get the Firecrawl job ID from the response\nconst jobId = $input.first().json.id;\n\nreturn [{\n json: {\n job_id: jobId,\n url: $input.first().json.url\n }\n}];"
},
"typeVersion": 2
},
{
"id": "7270bad6-0347-4561-86dc-c0dab6cfaa26",
"name": "경쟁사 작업 ID 추출",
"type": "n8n-nodes-base.code",
"position": [
2032,
272
],
"parameters": {
"jsCode": "// Get the Firecrawl job ID from the response\nconst jobId = $input.first().json.id;\n\nreturn [{\n json: {\n job_id: jobId,\n competitor_url: $input.first().json.url\n }\n}];"
},
"typeVersion": 2
},
{
"id": "d384d46d-070e-4050-b4ec-8e030977b869",
"name": "브랜드 스크레이핑 결과 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
2256,
512
],
"parameters": {
"url": "=https://api.firecrawl.dev/v2/extract/{{ $json.job_id }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "LDYdFaVICj6n2wNn",
"name": "openrouter nano ban"
}
},
"typeVersion": 4.2
},
{
"id": "76447198-f178-4626-a09f-a2470cf49fe7",
"name": "경쟁사 스크레이핑 결과 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
2256,
272
],
"parameters": {
"url": "=https://api.firecrawl.dev/v2/extract/{{ $json.job_id }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "9b15dc04-383b-453a-b39a-a19800199793",
"name": "브랜드 및 경쟁사 데이터 병합",
"type": "n8n-nodes-base.merge",
"position": [
2496,
400
],
"parameters": {
"mode": "combine",
"options": {}
},
"typeVersion": 3
},
{
"id": "b8077839-85da-444a-ac4a-193524034086",
"name": "AI 에이전트 - AEO 전략 생성",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2672,
400
],
"parameters": {
"text": "=# AEO Strategy Generation Prompt\n\n## Context\nYou are an Answer Engine Optimization (AEO) specialist helping brands optimize their content for AI-powered search engines like ChatGPT, Perplexity, Google SGE, and Bing Chat.\n\n## Input Data\n\n### Target Brand:\n{{ $json.brand_data }}\n\n### Competitor Analysis:\n{{ $json.competitor_data }}\n\n## Your Task\n\nGenerate a comprehensive AEO strategy report that includes:\n\n### 1. Executive Summary\n- Brief overview of the brand's current positioning\n- Key competitive advantages\n- Top 3 AEO opportunities\n\n### 2. Competitive Analysis\n- How competitors are positioning themselves\n- Content gaps we can exploit\n- Unique angles the brand can take\n\n### 3. AEO Strategy Recommendations (15+ specific tactics)\n\nProvide actionable recommendations in these categories:\n\n**Content Optimization:**\n- Specific topics to create content around\n- Question-answer formats to implement\n- Long-tail keywords and phrases\n\n**Structural Improvements:**\n- Schema markup suggestions\n- FAQ sections to add\n- How-to content opportunities\n\n**Authority Building:**\n- Expert quotes and citations to include\n- Statistics and data points to reference\n- Case studies or examples to showcase\n\n**Answer Engine Targeting:**\n- Specific queries the brand should optimize for\n- Natural language patterns to incorporate\n- Featured snippet opportunities\n\n### 4. Content Priority Matrix\nList 10 content pieces to create, ranked by:\n- Search volume potential\n- Competitive advantage\n- Implementation ease\n\n### 5. Next Steps\n- Immediate actions (Week 1)\n- Short-term goals (Month 1)\n- Long-term strategy (Quarter 1)\n\n## Output Format\n\nProvide a well-structured, detailed report in HTML format with:\n- Clear headings and subheadings\n- Bullet points for easy scanning\n- Specific, actionable recommendations\n- No generic advice\n\nMake it professional, comprehensive, and immediately actionable.",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "32df1cb1-1242-4ba5-be35-7a33560e7623",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2688,
544
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"typeVersion": 1
},
{
"id": "796cd127-53c0-4d44-a4c6-47cfa1f54583",
"name": "이메일 내용 형식화",
"type": "n8n-nodes-base.code",
"position": [
2976,
400
],
"parameters": {
"jsCode": "// Format the AEO strategy as HTML email\nconst strategy = $input.first().json.output;\nconst brandName = $input.first().json.brand_name || 'Your Brand';\nconst userEmail = $input.first().json.user_email;\n\nconst htmlEmail = `\n<!DOCTYPE html>\n<html>\n<head>\n <style>\n body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; max-width: 800px; margin: 0 auto; padding: 20px; }\n h1 { color: #2c3e50; border-bottom: 3px solid #3498db; padding-bottom: 10px; }\n h2 { color: #34495e; margin-top: 30px; }\n h3 { color: #7f8c8d; }\n ul { padding-left: 20px; }\n li { margin-bottom: 8px; }\n .highlight { background-color: #f1c40f; padding: 2px 6px; border-radius: 3px; }\n .section { background-color: #ecf0f1; padding: 15px; border-radius: 5px; margin: 20px 0; }\n .footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid #bdc3c7; font-size: 0.9em; color: #7f8c8d; }\n </style>\n</head>\n<body>\n <h1>🎯 AEO Strategy Report for ${brandName}</h1>\n \n <div class=\"section\">\n <p><strong>Generated:</strong> ${new Date().toLocaleDateString()}</p>\n <p>This report contains a comprehensive Answer Engine Optimization (AEO) strategy based on competitive analysis and AI-powered insights.</p>\n </div>\n \n ${strategy}\n \n <div class=\"footer\">\n <p>This report was generated automatically by the AEO Optimization Workflow.</p>\n <p>For questions or support, contact your workflow administrator.</p>\n </div>\n</body>\n</html>\n`;\n\nreturn [{\n json: {\n to: userEmail,\n subject: `AEO Strategy Report: ${brandName}`,\n html: htmlEmail,\n brand_name: brandName\n }\n}];"
},
"typeVersion": 2
},
{
"id": "cf8cd495-37a7-4b93-b18c-bbf6b62d1622",
"name": "Gmail을 통한 이메일 전송",
"type": "n8n-nodes-base.gmail",
"position": [
3152,
400
],
"webhookId": "15f6662d-e964-476a-99e6-d84d3b12cdea",
"parameters": {
"sendTo": "={{ $json.to }}",
"message": "={{ $json.html }}",
"options": {},
"subject": "={{ $json.subject }}"
},
"typeVersion": 2.1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "53263ef0-fd57-450d-bcbe-f262c65de866",
"connections": {
"32df1cb1-1242-4ba5-be35-7a33560e7623": {
"ai_languageModel": [
[
{
"node": "b8077839-85da-444a-ac4a-193524034086",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"08b3d94d-09ed-4d86-a356-60456c919f80": {
"main": [
[
{
"node": "d384d46d-070e-4050-b4ec-8e030977b869",
"type": "main",
"index": 0
}
]
]
},
"796cd127-53c0-4d44-a4c6-47cfa1f54583": {
"main": [
[
{
"node": "cf8cd495-37a7-4b93-b18c-bbf6b62d1622",
"type": "main",
"index": 0
}
]
]
},
"cf7e1394-a9cd-4a8d-bd74-09d9548a40f6": {
"main": [
[
{
"node": "0140d35c-e081-430c-aed3-4815e3a52237",
"type": "main",
"index": 0
}
]
]
},
"191a4c85-8ce1-467a-9f92-f86f2d39a711": {
"main": [
[
{
"node": "0e752e80-d0e4-409c-935c-1c60c3c35ba8",
"type": "main",
"index": 0
}
]
]
},
"bed46dcf-aee6-4879-b068-b8b100160ce3": {
"main": [
[
{
"node": "08b3d94d-09ed-4d86-a356-60456c919f80",
"type": "main",
"index": 0
}
]
]
},
"d384d46d-070e-4050-b4ec-8e030977b869": {
"main": [
[
{
"node": "9b15dc04-383b-453a-b39a-a19800199793",
"type": "main",
"index": 0
}
]
]
},
"f81b4735-21b0-4a80-8f73-38f4557a3c86": {
"ai_languageModel": [
[
{
"node": "0e752e80-d0e4-409c-935c-1c60c3c35ba8",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"7270bad6-0347-4561-86dc-c0dab6cfaa26": {
"main": [
[
{
"node": "76447198-f178-4626-a09f-a2470cf49fe7",
"type": "main",
"index": 0
}
]
]
},
"a8a45e17-5938-4167-9e84-b070649059b0": {
"main": [
[
{
"node": "191a4c85-8ce1-467a-9f92-f86f2d39a711",
"type": "main",
"index": 0
}
]
]
},
"385a6108-353f-44a9-9a8f-a6f55daf569d": {
"main": [
[
{
"node": "c23479c5-e0f2-4feb-8b12-8b79ff85dd9a",
"type": "main",
"index": 0
}
]
]
},
"c23479c5-e0f2-4feb-8b12-8b79ff85dd9a": {
"main": [
[
{
"node": "7270bad6-0347-4561-86dc-c0dab6cfaa26",
"type": "main",
"index": 0
}
]
]
},
"b3db184b-1c3e-4703-8379-d17254c2366d": {
"main": [
[
{
"node": "bed46dcf-aee6-4879-b068-b8b100160ce3",
"type": "main",
"index": 0
}
]
]
},
"76447198-f178-4626-a09f-a2470cf49fe7": {
"main": [
[
{
"node": "9b15dc04-383b-453a-b39a-a19800199793",
"type": "main",
"index": 1
}
]
]
},
"9b15dc04-383b-453a-b39a-a19800199793": {
"main": [
[
{
"node": "b8077839-85da-444a-ac4a-193524034086",
"type": "main",
"index": 0
}
]
]
},
"0e752e80-d0e4-409c-935c-1c60c3c35ba8": {
"main": [
[
{
"node": "cf7e1394-a9cd-4a8d-bd74-09d9548a40f6",
"type": "main",
"index": 0
}
]
]
},
"b8077839-85da-444a-ac4a-193524034086": {
"main": [
[
{
"node": "796cd127-53c0-4d44-a4c6-47cfa1f54583",
"type": "main",
"index": 0
}
]
]
},
"0140d35c-e081-430c-aed3-4815e3a52237": {
"main": [
[
{
"node": "b3db184b-1c3e-4703-8379-d17254c2366d",
"type": "main",
"index": 0
},
{
"node": "385a6108-353f-44a9-9a8f-a6f55daf569d",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 시장 조사, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
WordPress 블로그 자동화 프로페셔널 에디션(심층 연구) v2.1 마켓
GPT-4o, Perplexity AI 및 다국어 지원을 사용한 SEO 최적화 블로그 생성 자동화
If
Set
Xml
+
If
Set
Xml
125 노드Daniel Ng
콘텐츠 제작
제 작업流程5
Gemini AI, 네트워크 검색 및 PDF 배달 기반의 전면적인 연구 보고서 생성기
Set
Code
Html
+
Set
Code
Html
102 노드Hichul
콘텐츠 제작
OpenAI와 Firecrawl로 제품 URL에서 AI 생성 Meta 광고 캠페인 생성
OpenAI와 Firecrawl을 통해 제품 URL로 AI 생성 Meta 광고 캠페인 생성
If
Set
Code
+
If
Set
Code
40 노드Adam Crafts
콘텐츠 제작
GPT-4o, RunwayML, ElevenLabs의 AI 여행 영상 생성기(소셜 미디어용)
GPT-4o, RunwayML, ElevenLabs 소셜 미디어 애플리케이션
Set
Code
Wait
+
Set
Code
Wait
36 노드Mohan Gopal
콘텐츠 제작
주제 사냥꾼 템플릿
사용자 Gemini를 통해 Reddit, YouTube, X에서 내용 전략 보고서 생성
If
Set
Code
+
If
Set
Code
34 노드Sheryl
시장 조사