Análisis y optimización de páginas de aterrizaje con el sistema de agente Claude 4

Avanzado

Este es unautomatización que contiene 24 nodos.Utiliza principalmente nodos como Set, Code, Gmail, FormTrigger, HttpRequest. Análisis y optimización de landing pages con el sistema de agentes de Claude 4

Requisitos previos
  • Cuenta de Google y credenciales de API de Gmail
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Clave de API de Anthropic

Categoría

-
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "nodes": [
    {
      "id": "37802015-cc2f-4d43-8e1e-aef2dded5757",
      "name": "Form Submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -816,
        544
      ],
      "webhookId": "lp-analyzer-form-001",
      "parameters": {
        "options": {},
        "formTitle": "Free Landing Page Audit - By Evervise",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Landing Page URL",
              "placeholder": "https://yourwebsite.com/landing-page",
              "requiredField": true
            },
            {
              "fieldLabel": "What's your industry?",
              "placeholder": "e.g., SaaS, E-commerce, Real Estate, Coaching"
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Primary goal of this page",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Generate Leads"
                  },
                  {
                    "option": "Drive Sales"
                  },
                  {
                    "option": "Get Sign-ups"
                  },
                  {
                    "option": "Book Appointments"
                  },
                  {
                    "option": "Download Resource"
                  },
                  {
                    "option": "Other"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldLabel": "Current conversion rate (if known)",
              "placeholder": "e.g., 2.5% or 'I don't know'"
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Biggest frustration with current page",
              "placeholder": "e.g., Low conversions, high bounce rate, unclear messaging"
            },
            {
              "fieldType": "email",
              "fieldLabel": "Your Email",
              "placeholder": "your@email.com",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Get a $2,000 professional landing page audit in 90 seconds. Powered by 4 AI specialists who analyze design, copy, SEO, and conversion strategy."
      },
      "typeVersion": 2.3
    },
    {
      "id": "8b45a002-5364-43bf-a709-f32a7fd7a93d",
      "name": "Initialize Variables",
      "type": "n8n-nodes-base.set",
      "position": [
        -576,
        544
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "url",
              "name": "landing_page_url",
              "type": "string",
              "value": "={{ $json['Landing Page URL'] }}"
            },
            {
              "id": "industry",
              "name": "industry",
              "type": "string",
              "value": "={{ $json[\"What's your industry?\"] || 'General' }}"
            },
            {
              "id": "goal",
              "name": "primary_goal",
              "type": "string",
              "value": "={{ $json['Primary goal of this page'] }}"
            },
            {
              "id": "conv_rate",
              "name": "current_conversion",
              "type": "string",
              "value": "={{ $json['Current conversion rate (if known)'] || 'Unknown' }}"
            },
            {
              "id": "frustration",
              "name": "biggest_frustration",
              "type": "string",
              "value": "={{ $json['Biggest frustration with current page'] || 'Not specified' }}"
            },
            {
              "id": "email",
              "name": "user_email",
              "type": "string",
              "value": "={{ $json['Your Email'] }}"
            },
            {
              "id": "timestamp",
              "name": "analysis_timestamp",
              "type": "string",
              "value": "={{ new Date().toISOString() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "62118bdb-a453-4ef1-ab38-1a0f8444eb52",
      "name": "Fetch Page HTML",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -304,
        464
      ],
      "parameters": {
        "url": "={{ $json.landing_page_url }}",
        "options": {
          "timeout": 10000,
          "response": {
            "response": {
              "neverError": true,
              "fullResponse": true
            }
          }
        }
      },
      "typeVersion": 4.1,
      "continueOnFail": true
    },
    {
      "id": "cd78cefa-76e9-4238-b47d-9ab09ac86a31",
      "name": "Extract Page Elements",
      "type": "n8n-nodes-base.code",
      "position": [
        -112,
        464
      ],
      "parameters": {
        "jsCode": "// Extract key HTML elements for analysis\nconst html = $json.body || '';\nconst url = $('Initialize Variables').item.json.landing_page_url;\n\n// Extract title\nconst titleMatch = html.match(/<title[^>]*>([^<]+)<\\/title>/i);\nconst pageTitle = titleMatch ? titleMatch[1].trim() : 'No title found';\n\n// Extract meta description\nconst metaDescMatch = html.match(/<meta[^>]*name=[\"']description[\"'][^>]*content=[\"']([^\"']+)[\"']/i);\nconst metaDescription = metaDescMatch ? metaDescMatch[1] : 'No meta description';\n\n// Extract headings\nconst h1Matches = html.match(/<h1[^>]*>([^<]+)<\\/h1>/gi) || [];\nconst h1s = h1Matches.map(h => h.replace(/<[^>]*>/g, '').trim()).slice(0, 5);\n\nconst h2Matches = html.match(/<h2[^>]*>([^<]+)<\\/h2>/gi) || [];\nconst h2s = h2Matches.map(h => h.replace(/<[^>]*>/g, '').trim()).slice(0, 10);\n\n// Extract CTAs (buttons and links with common CTA text)\nconst ctaPattern = /(get started|buy now|sign up|subscribe|download|learn more|contact|book|try|start|join)/gi;\nconst buttonMatches = html.match(/<button[^>]*>([^<]+)<\\/button>/gi) || [];\nconst linkMatches = html.match(/<a[^>]*>([^<]+)<\\/a>/gi) || [];\nconst allCTAs = [...buttonMatches, ...linkMatches]\n  .map(cta => cta.replace(/<[^>]*>/g, '').trim())\n  .filter(text => ctaPattern.test(text))\n  .slice(0, 10);\n\n// Count forms\nconst formCount = (html.match(/<form/gi) || []).length;\n\n// Check for common frameworks/tools\nconst hasReact = html.includes('react');\nconst hasBootstrap = html.includes('bootstrap');\nconst hasTailwind = html.includes('tailwind');\nconst hasGA = html.includes('google-analytics') || html.includes('gtag');\nconst hasFBPixel = html.includes('facebook');\n\n// Extract word count (rough estimate)\nconst textContent = html.replace(/<script[^>]*>.*?<\\/script>/gi, '')\n  .replace(/<style[^>]*>.*?<\\/style>/gi, '')\n  .replace(/<[^>]*>/g, ' ')\n  .replace(/\\s+/g, ' ')\n  .trim();\nconst wordCount = textContent.split(/\\s+/).length;\n\n// Check mobile viewport\nconst hasMobileViewport = html.includes('viewport');\n\n// Extract images\nconst imgMatches = html.match(/<img[^>]*>/gi) || [];\nconst imageCount = imgMatches.length;\nconst hasAltTags = imgMatches.filter(img => /alt=[\"'][^\"']+[\"']/i.test(img)).length;\n\nreturn {\n  url: url,\n  page_title: pageTitle,\n  meta_description: metaDescription,\n  h1_headings: h1s,\n  h2_headings: h2s,\n  cta_buttons: allCTAs,\n  form_count: formCount,\n  word_count: wordCount,\n  image_count: imageCount,\n  images_with_alt: hasAltTags,\n  has_mobile_viewport: hasMobileViewport,\n  detected_tech: {\n    react: hasReact,\n    bootstrap: hasBootstrap,\n    tailwind: hasTailwind,\n    google_analytics: hasGA,\n    facebook_pixel: hasFBPixel\n  },\n  html_preview: html.substring(0, 3000),\n  analysis_ready: true\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "df38cf0a-46aa-4809-8dc4-51ab15850274",
      "name": "Design Critic Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        256,
        768
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-5-20250929",
          "cachedResultName": "Claude Sonnet 4.5"
        },
        "options": {
          "topP": 0.9,
          "temperature": 0.4
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "rFsH3A7ko19Tb8xL",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "f7ea425f-fe5e-48d8-be60-3fee1d52e5fe",
      "name": "Copywriter Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        704,
        768
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-5-20250929",
          "cachedResultName": "Claude Sonnet 4.5"
        },
        "options": {
          "topP": 0.9,
          "temperature": 0.5
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "rFsH3A7ko19Tb8xL",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "ddb9e4b0-27b6-4521-bf94-a7cf93a049be",
      "name": "SEO Specialist Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        1088,
        800
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-5-20250929",
          "cachedResultName": "Claude Sonnet 4.5"
        },
        "options": {
          "topP": 0.85,
          "temperature": 0.3
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "rFsH3A7ko19Tb8xL",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "620861fa-3cfc-467f-a4f4-eaf6dd4e6ff6",
      "name": "Growth Strategist Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        1488,
        768
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-5-20250929",
          "cachedResultName": "Claude Sonnet 4.5"
        },
        "options": {
          "topP": 0.95,
          "temperature": 0.6
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "rFsH3A7ko19Tb8xL",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "cfd48ca9-5cea-40d4-9fca-7a846659d8dd",
      "name": "Agente 1: Design Critic",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        288,
        528
      ],
      "parameters": {
        "text": "=Landing Page Data:\n- URL: {{ $('Extract Page Elements').item.json.url }}\n- Industry: {{ $('Initialize Variables').item.json.industry }}\n- Goal: {{ $('Initialize Variables').item.json.primary_goal }}\n- Title: {{ $('Extract Page Elements').item.json.page_title }}\n- H1 Headings: {{ JSON.stringify($('Extract Page Elements').item.json.h1_headings) }}\n- CTA Buttons: {{ JSON.stringify($('Extract Page Elements').item.json.cta_buttons) }}\n- Form Count: {{ $('Extract Page Elements').item.json.form_count }}\n- Image Count: {{ $('Extract Page Elements').item.json.image_count }}\n- Images with Alt Tags: {{ $('Extract Page Elements').item.json.images_with_alt }}\n- Mobile Viewport: {{ $('Extract Page Elements').item.json.has_mobile_viewport }}\n- Detected Tech: {{ JSON.stringify($('Extract Page Elements').item.json.detected_tech) }}\n\nAnalyze this landing page from a DESIGN and USER EXPERIENCE perspective.\n\nProvide detailed feedback on:\n1. Visual hierarchy and layout\n2. CTA design and placement\n3. Use of whitespace\n4. Color scheme effectiveness\n5. Mobile responsiveness indicators\n6. Trust signals (testimonials, badges, etc.)\n7. Above-the-fold content\n8. Overall design cohesion\n\nScore each area 0-10 and provide specific improvement recommendations.",
        "options": {
          "systemMessage": "You are a senior UX/UI designer and conversion optimization expert with 15+ years experience analyzing landing pages.\n\nYou evaluate pages based on:\n- Visual hierarchy (F-pattern, Z-pattern)\n- CTA prominence and clarity\n- Color psychology for the industry\n- Trust indicators and social proof placement\n- Mobile-first design principles\n- Whitespace and breathing room\n- Professional polish vs. amateur mistakes\n\nOutput your analysis in this structure:\n\n📊 DESIGN SCORES (0-10 each):\n- Visual Hierarchy: X/10\n- CTA Design: X/10  \n- Mobile Responsiveness: X/10\n- Trust Signals: X/10\n- Professional Polish: X/10\n\n🎨 KEY FINDINGS:\n[3-5 bullet points of main design issues or strengths]\n\n🔥 CRITICAL DESIGN FLAWS:\n[List any deal-breaker design problems]\n\n✨ QUICK WINS:\n[3-5 easy design improvements that would have immediate impact]\n\n💡 ADVANCED RECOMMENDATIONS:\n[Bigger picture design strategy suggestions]\n\nBe specific, honest, and constructive. Reference actual elements from the page data provided."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "6652677e-f99b-4413-aa77-0c873585680e",
      "name": "Agente 2: Copywriter",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        688,
        528
      ],
      "parameters": {
        "text": "=Landing Page Data:\n- URL: {{ $('Extract Page Elements').item.json.url }}\n- Industry: {{ $('Initialize Variables').item.json.industry }}\n- Goal: {{ $('Initialize Variables').item.json.primary_goal }}\n- Title: {{ $('Extract Page Elements').item.json.page_title }}\n- Meta Description: {{ $('Extract Page Elements').item.json.meta_description }}\n- H1 Headings: {{ JSON.stringify($('Extract Page Elements').item.json.h1_headings) }}\n- H2 Headings: {{ JSON.stringify($('Extract Page Elements').item.json.h2_headings) }}\n- CTA Buttons: {{ JSON.stringify($('Extract Page Elements').item.json.cta_buttons) }}\n- Word Count: {{ $('Extract Page Elements').item.json.word_count }}\n\nAnalyze this landing page from a COPYWRITING and MESSAGING perspective.\n\nProvide detailed feedback on:\n1. Headline effectiveness (does it hook attention?)\n2. Value proposition clarity\n3. Benefit vs. feature focus\n4. Emotional triggers and persuasion\n5. CTA copy (is it compelling?)\n6. Overall message clarity\n7. Voice and tone for the industry\n8. Scannability and readability\n\nScore each area 0-10 and provide specific copy improvements.",
        "options": {
          "systemMessage": "You are a world-class copywriter and conversion expert specializing in landing pages.\n\nYou evaluate copy based on:\n- Headline formulas (curiosity, benefit, urgency)\n- Value proposition clarity (can a 5-year-old understand it?)\n- Benefits-focused language vs. feature-dumping\n- Emotional triggers (fear, desire, curiosity, belonging)\n- CTA psychology (action-oriented, value-driven)\n- Readability (Flesch score, sentence length)\n- Voice & tone match to audience\n- Objection handling\n\nOutput your analysis in this structure:\n\n📊 COPY SCORES (0-10 each):\n- Headline Impact: X/10\n- Value Proposition Clarity: X/10\n- Benefit Focus: X/10\n- CTA Effectiveness: X/10\n- Overall Persuasiveness: X/10\n\n✍️ KEY FINDINGS:\n[3-5 bullet points of main copy issues or strengths]\n\n🚨 CRITICAL COPY PROBLEMS:\n[List any messaging deal-breakers]\n\n⚡ QUICK COPY FIXES:\n[3-5 easy rewrites that would boost conversions]\n\n🎯 REWRITE SUGGESTIONS:\n[Provide specific headline and CTA alternatives]\n\n💬 MESSAGING STRATEGY:\n[Overall approach to improve persuasion]\n\nBe specific and provide actual rewrite examples. Reference the goal and industry context."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "98167b63-508a-4728-a05b-32904dc80519",
      "name": "Agente 3: SEO & Technical",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1088,
        528
      ],
      "parameters": {
        "text": "=Landing Page Data:\n- URL: {{ $('Extract Page Elements').item.json.url }}\n- Title: {{ $('Extract Page Elements').item.json.page_title }}\n- Meta Description: {{ $('Extract Page Elements').item.json.meta_description }}\n- H1 Count: {{ $('Extract Page Elements').item.json.h1_headings.length }}\n- Word Count: {{ $('Extract Page Elements').item.json.word_count }}\n- Image Count: {{ $('Extract Page Elements').item.json.image_count }}\n- Images with Alt: {{ $('Extract Page Elements').item.json.images_with_alt }}\n- Mobile Viewport: {{ $('Extract Page Elements').item.json.has_mobile_viewport }}\n- Has Analytics: {{ $('Extract Page Elements').item.json.detected_tech.google_analytics }}\n\nAnalyze this landing page from an SEO and TECHNICAL perspective.\n\nProvide detailed feedback on:\n1. Title tag optimization\n2. Meta description quality\n3. Heading structure (H1, H2 hierarchy)\n4. Image optimization (alt tags)\n5. Mobile-friendliness\n6. Page speed indicators\n7. Analytics tracking\n8. Technical SEO basics\n\nScore each area 0-10 and provide specific technical improvements.",
        "options": {
          "systemMessage": "You are a technical SEO expert and web performance specialist.\n\nYou evaluate pages based on:\n- On-page SEO fundamentals\n- Title tag best practices (50-60 chars, keyword placement)\n- Meta description optimization (150-160 chars)\n- Proper heading hierarchy\n- Image optimization (alt tags, lazy loading)\n- Mobile-first indexing requirements\n- Core Web Vitals\n- Analytics and tracking setup\n- Accessibility standards\n\nOutput your analysis in this structure:\n\n📊 SEO & TECHNICAL SCORES (0-10 each):\n- Title Tag Optimization: X/10\n- Meta Description: X/10\n- Heading Structure: X/10\n- Image Optimization: X/10\n- Mobile Readiness: X/10\n- Technical Health: X/10\n\n🔍 KEY FINDINGS:\n[3-5 bullet points of main SEO/technical issues]\n\n⚠️ CRITICAL SEO ISSUES:\n[List any red flags that hurt rankings]\n\n⚡ QUICK TECHNICAL WINS:\n[3-5 easy fixes for immediate SEO improvement]\n\n🛠️ TECHNICAL RECOMMENDATIONS:\n[Deeper technical improvements]\n\n📈 SEO STRATEGY:\n[Overall approach to improve search visibility]\n\nBe specific and actionable. Provide exact character counts for meta elements."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "ea6867b0-33ea-4e3f-990c-7b7e41bf7f1b",
      "name": "Agente 4: Growth Strategist",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1488,
        528
      ],
      "parameters": {
        "text": "=Original Request:\n- Industry: {{ $('Initialize Variables').item.json.industry }}\n- Goal: {{ $('Initialize Variables').item.json.primary_goal }}\n- Current Conversion: {{ $('Initialize Variables').item.json.current_conversion }}\n- Biggest Frustration: {{ $('Initialize Variables').item.json.biggest_frustration }}\n\nDesign Analysis:\n{{ $('Agent 1: Design Critic').item.json.output }}\n\nCopy Analysis:\n{{ $('Agent 2: Copywriter').item.json.output }}\n\nSEO Analysis:\n{{ $('Agent 3: SEO & Technical').item.json.output }}\n\nAs the growth strategist, synthesize all analyses and provide:\n1. Overall landing page grade (A+ to F) with explanation\n2. Top 5 priorities ranked by impact\n3. Estimated conversion lift potential\n4. Strategic recommendations\n5. Comprehensive score card across all dimensions\n\nBe brutally honest but constructive.",
        "options": {
          "systemMessage": "You are a growth strategist and conversion rate optimization (CRO) expert who synthesizes design, copy, and technical insights into actionable business strategy.\n\nYour job is to:\n- Assign an overall grade (A+ to F) based on all agent feedback\n- Prioritize improvements by ROI (impact vs. effort)\n- Estimate realistic conversion lift potential\n- Provide strategic, business-focused recommendations\n- Create a balanced scorecard\n\nOutput your analysis in this EXACT structure:\n\n🎯 OVERALL LANDING PAGE GRADE\n━━━━━━━━━━━━━━━━━━━━━━━━━━━\nGrade: [A+, A, A-, B+, B, B-, C+, C, C-, D, F]\nScore: X/100\n\n[2-3 sentence explanation of the grade]\n\n📊 COMPREHENSIVE SCORECARD\n━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\nDesign & UX: X/10\n[Brief justification]\n\nCopywriting & Messaging: X/10\n[Brief justification]\n\nSEO & Technical: X/10\n[Brief justification]\n\nConversion Potential: X/10\n[Brief justification]\n\nMobile Experience: X/10\n[Brief justification]\n\nTrust & Credibility: X/10\n[Brief justification]\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n🔥 TOP 5 PRIORITIES (Ranked by Impact)\n━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n1. [Priority 1]\n   Impact: [High/Medium/Low] | Effort: [Easy/Medium/Hard]\n   Expected Lift: X-Y%\n   [Why this matters]\n\n2. [Priority 2]\n   Impact: [High/Medium/Low] | Effort: [Easy/Medium/Hard]\n   Expected Lift: X-Y%\n   [Why this matters]\n\n[... continue for all 5]\n\n📈 CONVERSION LIFT POTENTIAL\n━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\nConservative Estimate: +X%\nRealistic Target: +Y%\nOptimistic Scenario: +Z%\n\n[2-3 sentences explaining the basis for these estimates]\n\n💪 KEY STRENGTHS\n━━━━━━━━━━━━━━━━━━━━━━━━━━━\n• [Strength 1]\n• [Strength 2]\n• [Strength 3]\n\n⚠️ CRITICAL WEAKNESSES\n━━━━━━━━━━━━━━━━━━━━━━━━━━━\n• [Weakness 1]\n• [Weakness 2]\n• [Weakness 3]\n\n🚀 STRATEGIC RECOMMENDATIONS\n━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n[3-5 paragraphs of strategic, high-level recommendations that tie everything together]\n\n💡 NEXT STEPS\n━━━━━━━━━━━━━━━━━━━━━━━━━━━\n1. [Immediate action item]\n2. [Short-term improvement]\n3. [Long-term strategy]\n\nBe honest but motivating. Focus on business outcomes, not just metrics."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "06598f25-cf72-4735-901a-2b127ab72eff",
      "name": "Format Correo electrónico Report",
      "type": "n8n-nodes-base.code",
      "position": [
        1808,
        528
      ],
      "parameters": {
        "jsCode": "// Format the comprehensive email report\nconst designAnalysis = $('Agent 1: Design Critic').item.json.output;\nconst copyAnalysis = $('Agent 2: Copywriter').item.json.output;\nconst seoAnalysis = $('Agent 3: SEO & Technical').item.json.output;\nconst strategyAnalysis = $('Agent 4: Growth Strategist').item.json.output;\n\nconst userData = $('Initialize Variables').item.json;\nconst pageData = $('Extract Page Elements').item.json;\n\n// Extract grade and score from strategy analysis\nconst gradeMatch = strategyAnalysis.match(/Grade:\\s*([A-F][+-]?)/i);\nconst grade = gradeMatch ? gradeMatch[1] : 'N/A';\n\nconst scoreMatch = strategyAnalysis.match(/Score:\\s*(\\d+)\\/100/i);\nconst score = scoreMatch ? scoreMatch[1] : '0';\n\n// Determine grade color\nconst getGradeColor = (grade) => {\n  if (grade.startsWith('A')) return '#28a745';\n  if (grade.startsWith('B')) return '#17a2b8';\n  if (grade.startsWith('C')) return '#ffc107';\n  if (grade.startsWith('D')) return '#fd7e14';\n  return '#dc3545';\n};\n\nconst gradeColor = getGradeColor(grade);\n\n// Format sections for email\nconst formatSection = (content, title, icon, color) => {\n  return `\n    <div style=\"margin: 30px 0; padding: 20px; background: #f8f9fa; border-left: 4px solid ${color}; border-radius: 4px;\">\n      <h2 style=\"margin: 0 0 15px 0; color: ${color}; font-size: 20px;\">${icon} ${title}</h2>\n      <div style=\"white-space: pre-line; line-height: 1.8; color: #333;\">${content}</div>\n    </div>\n  `;\n};\n\nconst emailHtml = `\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<style>\n  body { \n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n    line-height: 1.6; \n    color: #333; \n    background: #f5f5f5; \n    margin: 0;\n    padding: 0;\n  }\n  .container { \n    max-width: 800px; \n    margin: 0 auto; \n    background: white;\n  }\n  .header { \n    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n    color: white; \n    padding: 40px 30px; \n    text-align: center;\n  }\n  .header h1 { \n    margin: 0; \n    font-size: 32px; \n    font-weight: 700;\n  }\n  .header p { \n    margin: 10px 0 0 0; \n    opacity: 0.95;\n    font-size: 16px;\n  }\n  .grade-banner {\n    background: white;\n    text-align: center;\n    padding: 40px 20px;\n    border-bottom: 2px solid #e9ecef;\n  }\n  .grade-circle {\n    width: 180px;\n    height: 180px;\n    border-radius: 50%;\n    border: 8px solid ${gradeColor};\n    display: inline-flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    margin-bottom: 20px;\n  }\n  .grade-letter {\n    font-size: 72px;\n    font-weight: 700;\n    color: ${gradeColor};\n    line-height: 1;\n  }\n  .grade-score {\n    font-size: 20px;\n    color: #6c757d;\n    margin-top: 5px;\n  }\n  .content { \n    padding: 30px;\n  }\n  .cta-box {\n    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n    color: white;\n    padding: 40px;\n    text-align: center;\n    margin: 40px 0;\n    border-radius: 8px;\n  }\n  .cta-box h2 {\n    margin: 0 0 15px 0;\n    font-size: 28px;\n  }\n  .cta-box p {\n    margin: 0 0 25px 0;\n    font-size: 18px;\n    opacity: 0.95;\n  }\n  .cta-button {\n    display: inline-block;\n    background: white;\n    color: #667eea;\n    padding: 15px 40px;\n    text-decoration: none;\n    border-radius: 6px;\n    font-weight: 700;\n    font-size: 18px;\n    transition: transform 0.2s;\n  }\n  .cta-button:hover {\n    transform: translateY(-2px);\n  }\n  .footer { \n    background: #2c3e50;\n    color: white;\n    padding: 30px;\n    text-align: center;\n  }\n  .footer p {\n    margin: 10px 0;\n    opacity: 0.9;\n  }\n  .footer a {\n    color: #3498db;\n    text-decoration: none;\n  }\n  @media only screen and (max-width: 600px) {\n    .header h1 { font-size: 24px; }\n    .grade-circle { width: 150px; height: 150px; }\n    .grade-letter { font-size: 60px; }\n    .content { padding: 20px; }\n  }\n</style>\n</head>\n<body>\n<div class=\"container\">\n  <!-- Header -->\n  <div class=\"header\">\n    <h1>🎯 Your Landing Page Audit</h1>\n    <p>Professional analysis from 4 AI specialists</p>\n    <p style=\"font-size: 14px; margin-top: 15px; opacity: 0.8;\">${new Date().toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })}</p>\n  </div>\n  \n  <!-- Grade Banner -->\n  <div class=\"grade-banner\">\n    <div class=\"grade-circle\">\n      <div class=\"grade-letter\">${grade}</div>\n      <div class=\"grade-score\">${score}/100</div>\n    </div>\n    <h2 style=\"margin: 0; color: #2c3e50;\">Landing Page: ${pageData.page_title}</h2>\n    <p style=\"color: #6c757d; margin: 10px 0 0 0;\">${userData.landing_page_url}</p>\n    <p style=\"color: #6c757d; margin: 5px 0 0 0;\">Industry: ${userData.industry} | Goal: ${userData.primary_goal}</p>\n  </div>\n  \n  <!-- Content -->\n  <div class=\"content\">\n    <!-- Strategic Overview -->\n    ${formatSection(strategyAnalysis, 'Strategic Overview & Score Card', '🚀', '#667eea')}\n    \n    <!-- Design Analysis -->\n    ${formatSection(designAnalysis, 'Design & User Experience Analysis', '🎨', '#e74c3c')}\n    \n    <!-- Copy Analysis -->\n    ${formatSection(copyAnalysis, 'Copywriting & Messaging Analysis', '✍️', '#3498db')}\n    \n    <!-- SEO Analysis -->\n    ${formatSection(seoAnalysis, 'SEO & Technical Analysis', '🔍', '#2ecc71')}\n    \n    <!-- CTA Box -->\n    <div class=\"cta-box\">\n      <h2>Want Us To Fix It For You?</h2>\n      <p>Our team of experts can implement all these recommendations and boost your conversions.</p>\n      <a href=\"https://evervise.com/landing-page-optimization\" class=\"cta-button\">Get a Custom Quote →</a>\n      <p style=\"font-size: 14px; margin-top: 20px;\">Or book a free 30-minute strategy call</p>\n    </div>\n    \n    <!-- What's Next -->\n    <div style=\"background: #fff3cd; padding: 25px; border-left: 4px solid #ffc107; border-radius: 4px; margin: 30px 0;\">\n      <h3 style=\"margin: 0 0 15px 0; color: #856404;\">📋 What To Do With This Report</h3>\n      <ol style=\"margin: 0; padding-left: 20px; color: #856404;\">\n        <li style=\"margin: 10px 0;\"><strong>Start with Quick Wins:</strong> Implement the easy improvements first for immediate results</li>\n        <li style=\"margin: 10px 0;\"><strong>Prioritize by Impact:</strong> Focus on the TOP 5 PRIORITIES listed in the strategic overview</li>\n        <li style=\"margin: 10px 0;\"><strong>Track Results:</strong> Measure conversion rate before and after each change</li>\n        <li style=\"margin: 10px 0;\"><strong>Need Help?</strong> Our team can handle all implementation and testing for you</li>\n      </ol>\n    </div>\n    \n    <!-- Page Stats -->\n    <div style=\"background: #f8f9fa; padding: 20px; border-radius: 8px; margin: 30px 0;\">\n      <h3 style=\"margin: 0 0 15px 0; color: #495057;\">📊 Page Statistics</h3>\n      <div style=\"display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px;\">\n        <div>\n          <strong>Total Words:</strong> ${pageData.word_count.toLocaleString()}<br>\n          <strong>CTAs Found:</strong> ${pageData.cta_buttons.length}<br>\n          <strong>Forms:</strong> ${pageData.form_count}\n        </div>\n        <div>\n          <strong>Images:</strong> ${pageData.image_count}<br>\n          <strong>With Alt Tags:</strong> ${pageData.images_with_alt}<br>\n          <strong>Mobile Viewport:</strong> ${pageData.has_mobile_viewport ? 'Yes ✅' : 'No ❌'}\n        </div>\n      </div>\n    </div>\n  </div>\n  \n  <!-- Footer -->\n  <div class=\"footer\">\n    <h3 style=\"margin: 0 0 15px 0; color: white;\">Evervise - Digital Marketing & Automation Experts</h3>\n    <p>This audit was automatically generated by our AI-powered landing page analyzer.</p>\n    <p>We specialize in landing page optimization, automation, and digital transformation.</p>\n    <p style=\"margin-top: 25px;\">\n      <a href=\"https://evervise.com\">Visit Our Website</a> | \n      <a href=\"https://evervise.com/contact\">Contact Us</a> | \n      <a href=\"https://evervise.com/services\">Our Services</a>\n    </p>\n    <p style=\"font-size: 12px; margin-top: 25px; opacity: 0.7;\">\n      © ${new Date().getFullYear()} Evervise. All rights reserved.\n    </p>\n  </div>\n</div>\n</body>\n</html>\n`;\n\nreturn {\n  email_html: emailHtml,\n  email_subject: `🎯 Your Landing Page Grade: ${grade} (${score}/100) - ${pageData.page_title}`,\n  user_email: userData.user_email,\n  grade: grade,\n  score: score,\n  url: userData.landing_page_url,\n  timestamp: userData.analysis_timestamp\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "31e31d74-9817-4ef2-86a3-5fb6e6a3c06b",
      "name": "Send Correo electrónico Report",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2048,
        528
      ],
      "webhookId": "f9ff0b16-ca94-48ba-9ad7-a34cdfaa221b",
      "parameters": {
        "sendTo": "={{ $json.user_email }}",
        "message": "={{ $json.email_html }}",
        "options": {},
        "subject": "={{ $json.email_subject }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "bq6dHs6Lgfuy6wjr",
          "name": "Sofia Wagner"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "db412da7-45fa-44ba-b364-c7f728a44ffa",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1296,
        320
      ],
      "parameters": {
        "color": 6,
        "width": 380,
        "height": 448,
        "content": "## 📋 WORKFLOW OVERVIEW\n**AI Landing Page Analyzer & Optimizer**\n\n⏱️ **Performance:**\n- Avg completion: 60-90 seconds\n- 4 AI agents working in parallel\n- Cost per analysis: ~$0.15-0.25\n\n🎯 **Conversion Funnel:**\n- Free: Full audit report\n- Paid Tier 1 ($297): We fix it\n- Paid Tier 2 ($997): Fix + A/B testing\n- Enterprise: Full optimization program\n\n💡 **Optimization Ideas:**\n- Add screenshot capture (UrlBox API)\n- Generate visual mockups (v2)\n- A/B test different email formats\n- Track which recommendations get implemented"
      },
      "typeVersion": 1
    },
    {
      "id": "b718f132-5650-4c65-a8dd-d8674e7c1972",
      "name": "Form Section",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -832,
        128
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 348,
        "content": "## 📝 FORM INTAKE\n**User submits landing page for audit**\n\n✨ **Customization Options:**\n- Add company size field\n- Add budget/pricing tier selector\n- Require phone for high-intent leads\n- Add \"How did you hear about us?\"\n\n🎨 **Design Tips:**\n- Keep it simple (6 fields max)\n- Use dropdown for goal (reduces friction)\n- Make conversion rate optional\n- Email is the only hard requirement"
      },
      "typeVersion": 1
    },
    {
      "id": "b1eb9a2c-e5db-44e0-9a23-e266b83eb083",
      "name": "Scraping Section",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        -16
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 412,
        "content": "## 🌐 WEB SCRAPING\n**Extracts page content for analysis**\n\n⚙️ **What It Does:**\n- Fetches HTML of landing page\n- Extracts headings, CTAs, forms\n- Counts images and checks alt tags\n- Detects mobile viewport\n- Identifies frameworks/tools\n\n💡 **Enhancement Ideas:**\n- Add screenshot capture (UrlBox/Puppeteer)\n- Extract CSS for color analysis\n- Check page load speed\n- Scan for broken links\n- Use Apify Crawler or Crawl4AI(also provided below) - You can use raw output for those"
      },
      "typeVersion": 1
    },
    {
      "id": "fb53207e-ce36-46a3-92bb-102041ad396e",
      "name": "Agente 1 Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 336,
        "height": 452,
        "content": "## 🤖 AGENT 1: Design Critic\n**UX/UI analysis expert**\n\n🎨 **Focus Areas:**\n- Visual hierarchy\n- CTA placement & design\n- Whitespace usage\n- Trust signals\n- Mobile responsiveness\n\n⚙️ **Model Settings:**\n- Temperature: 0.4 (balanced)\n- Creative but consistent\n\n📊 **Output:**\n- 5 design scores (0-10)\n- Critical flaws\n- Quick wins\n- Advanced recommendations"
      },
      "typeVersion": 1
    },
    {
      "id": "6fd26a4d-3303-48dc-b458-b8bdf7bf8caf",
      "name": "Agente 2 Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        624,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 452,
        "content": "## 🤖 AGENT 2: Copywriter\n**Messaging & persuasion expert**\n\n✍️ **Focus Areas:**\n- Headline effectiveness\n- Value proposition clarity\n- Benefits vs features\n- CTA copy strength\n- Emotional triggers\n\n⚙️ **Model Settings:**\n- Temperature: 0.5 (creative)\n- Great for copy ideas\n\n📊 **Output:**\n- 5 copy scores (0-10)\n- Rewrite suggestions\n- Specific alternatives\n- Messaging strategy"
      },
      "typeVersion": 1
    },
    {
      "id": "2b7122a0-1ff0-4e87-b95d-bf7488651475",
      "name": "Agente 3 Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 500,
        "content": "## 🤖 AGENT 3: SEO Specialist\n**Technical & search optimization**\n\n🔍 **Focus Areas:**\n- Title tag optimization\n- Meta description\n- Heading structure\n- Image optimization\n- Mobile-friendliness\n- Analytics tracking\n\n⚙️ **Model Settings:**\n- Temperature: 0.3 (precise)\n- Technical accuracy critical\n\n📊 **Output:**\n- 6 technical scores (0-10)\n- Critical SEO issues\n- Quick technical wins\n- SEO strategy"
      },
      "typeVersion": 1
    },
    {
      "id": "61323126-f5c4-44a1-878f-ff9bcd96adde",
      "name": "Agente 4 Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 360,
        "height": 500,
        "content": "## 🤖 AGENT 4: Growth Strategist\n**Synthesis & strategic recommendations**\n\n🚀 **Responsibilities:**\n- Assign overall grade (A-F)\n- Create comprehensive scorecard\n- Rank top 5 priorities\n- Estimate conversion lift\n- Strategic recommendations\n\n⚙️ **Model Settings:**\n- Temperature: 0.6 (strategic thinking)\n- Balances all inputs\n\n📊 **Output:**\n- Overall grade & score (/100)\n- 6-dimension scorecard\n- Prioritized action items\n- Conversion lift estimates\n- Strategic roadmap"
      },
      "typeVersion": 1
    },
    {
      "id": "9be846cb-17df-456e-b824-fbcb0f0d5b99",
      "name": "Correo electrónico Section",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2256,
        352
      ],
      "parameters": {
        "color": 7,
        "width": 340,
        "height": 468,
        "content": "## 📧 EMAIL DELIVERY\n**Beautiful HTML report**\n\n🎨 **Email Includes:**\n- Grade banner with score\n- All 4 agent analyses\n- Comprehensive scorecard\n- Page statistics\n- Clear CTA to paid services\n\n💡 **Customization:**\n- Add calendar booking link\n- Segment by score (A/B get different CTA)\n- Include video explanation\n- Add social proof\n\n📊 **Track:**\n- Email open rate\n- CTA click rate\n- Conversion to paid"
      },
      "typeVersion": 1
    },
    {
      "id": "e618ef54-48a8-4ec8-9ea1-5f13da5c13a6",
      "name": "Scrape single URL",
      "type": "@apify/n8n-nodes-apify.apify",
      "position": [
        -304,
        624
      ],
      "parameters": {
        "url": "={{ $('Initialize Variables').item.json.landing_page_url }}",
        "operation": "Scrape single URL"
      },
      "credentials": {
        "apifyApi": {
          "id": "gH6V2jP74FDZnpKe",
          "name": "Apify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "349d5b3b-b8c6-4802-8d83-8144ab4b4128",
      "name": "Crawl4AI",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -304,
        848
      ],
      "parameters": {
        "url": "Crawl4AIInstanceLink/crawl",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"urls\": [\"{{ $('Initialize Variables').item.json.landing_page_url }}\"],\n  \"browser_config\": {\n    \"params\": { \"headless\": true }\n  },\n  \"priority\": 10,\n  \"crawler_config\": {\n    \"type\": \"CrawlerRunConfig\",\n    \"params\": { \"cache_mode\": \"bypass\" },\n    \"max_pages\":10,\n    \"max_depth\":2\n  }\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "tR2mchCCFunmDNxj",
          "name": "EthScan"
        }
      },
      "typeVersion": 4.2
    }
  ],
  "connections": {
    "349d5b3b-b8c6-4802-8d83-8144ab4b4128": {
      "main": [
        [
          {
            "node": "cd78cefa-76e9-4238-b47d-9ab09ac86a31",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "62118bdb-a453-4ef1-ab38-1a0f8444eb52": {
      "main": [
        [
          {
            "node": "cd78cefa-76e9-4238-b47d-9ab09ac86a31",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "37802015-cc2f-4d43-8e1e-aef2dded5757": {
      "main": [
        [
          {
            "node": "8b45a002-5364-43bf-a709-f32a7fd7a93d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f7ea425f-fe5e-48d8-be60-3fee1d52e5fe": {
      "ai_languageModel": [
        [
          {
            "node": "Agent 2: Copywriter",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "e618ef54-48a8-4ec8-9ea1-5f13da5c13a6": {
      "main": [
        [
          {
            "node": "cd78cefa-76e9-4238-b47d-9ab09ac86a31",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Agent 2: Copywriter": {
      "main": [
        [
          {
            "node": "Agent 3: SEO & Technical",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "df38cf0a-46aa-4809-8dc4-51ab15850274": {
      "ai_languageModel": [
        [
          {
            "node": "Agent 1: Design Critic",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Format Email Report": {
      "main": [
        [
          {
            "node": "Send Email Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8b45a002-5364-43bf-a709-f32a7fd7a93d": {
      "main": [
        [
          {
            "node": "62118bdb-a453-4ef1-ab38-1a0f8444eb52",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ddb9e4b0-27b6-4521-bf94-a7cf93a049be": {
      "ai_languageModel": [
        [
          {
            "node": "Agent 3: SEO & Technical",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "cd78cefa-76e9-4238-b47d-9ab09ac86a31": {
      "main": [
        [
          {
            "node": "Agent 1: Design Critic",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Agent 1: Design Critic": {
      "main": [
        [
          {
            "node": "Agent 2: Copywriter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "620861fa-3cfc-467f-a4f4-eaf6dd4e6ff6": {
      "ai_languageModel": [
        [
          {
            "node": "Agent 4: Growth Strategist",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Agent 3: SEO & Technical": {
      "main": [
        [
          {
            "node": "Agent 4: Growth Strategist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Agent 4: Growth Strategist": {
      "main": [
        [
          {
            "node": "Format Email Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos24
Categoría-
Tipos de nodos9
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34