Analyse et optimisation de la page de destination avec le système d'agent Claude 4

Avancé

Ceci est uncontenant 24 nœuds.Utilise principalement des nœuds comme Set, Code, Gmail, FormTrigger, HttpRequest. Analyse et optimisation de pages de destination avec le système d'agents Claude 4

Prérequis
  • Compte Google et informations d'identification Gmail API
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Clé API Anthropic

Catégorie

-
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "nodes": [
    {
      "id": "37802015-cc2f-4d43-8e1e-aef2dded5757",
      "name": "Soumission du formulaire",
      "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": "Initialiser les 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": "Récupérer le HTML de la page",
      "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": "Extraire les éléments de la page",
      "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": "Modèle Design Critic",
      "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": "Modèle Copywriter",
      "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": "Modèle SEO Specialist",
      "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": "Modèle Growth Strategist",
      "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": "Agent 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": "Agent 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": "Agent 3 : SEO & Technique",
      "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": "Agent 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": "Formater le rapport email",
      "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": "Envoyer le rapport email",
      "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": "Vue d'ensemble du workflow",
      "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": "Section Formulaire",
      "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": "Section Scraping",
      "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": "Info Agent 1",
      "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": "Info Agent 2",
      "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": "Info Agent 3",
      "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": "Info Agent 4",
      "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": "Section Email",
      "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": "6652677e-f99b-4413-aa77-0c873585680e",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "e618ef54-48a8-4ec8-9ea1-5f13da5c13a6": {
      "main": [
        [
          {
            "node": "cd78cefa-76e9-4238-b47d-9ab09ac86a31",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6652677e-f99b-4413-aa77-0c873585680e": {
      "main": [
        [
          {
            "node": "98167b63-508a-4728-a05b-32904dc80519",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "df38cf0a-46aa-4809-8dc4-51ab15850274": {
      "ai_languageModel": [
        [
          {
            "node": "cfd48ca9-5cea-40d4-9fca-7a846659d8dd",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "06598f25-cf72-4735-901a-2b127ab72eff": {
      "main": [
        [
          {
            "node": "31e31d74-9817-4ef2-86a3-5fb6e6a3c06b",
            "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": "98167b63-508a-4728-a05b-32904dc80519",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "cd78cefa-76e9-4238-b47d-9ab09ac86a31": {
      "main": [
        [
          {
            "node": "cfd48ca9-5cea-40d4-9fca-7a846659d8dd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cfd48ca9-5cea-40d4-9fca-7a846659d8dd": {
      "main": [
        [
          {
            "node": "6652677e-f99b-4413-aa77-0c873585680e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "620861fa-3cfc-467f-a4f4-eaf6dd4e6ff6": {
      "ai_languageModel": [
        [
          {
            "node": "ea6867b0-33ea-4e3f-990c-7b7e41bf7f1b",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "98167b63-508a-4728-a05b-32904dc80519": {
      "main": [
        [
          {
            "node": "ea6867b0-33ea-4e3f-990c-7b7e41bf7f1b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ea6867b0-33ea-4e3f-990c-7b7e41bf7f1b": {
      "main": [
        [
          {
            "node": "06598f25-cf72-4735-901a-2b127ab72eff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds24
Catégorie-
Types de nœuds9
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34