Node 6: AI Change Analysis

OpenAI Configuration:

Model: gpt-4 Temperature: 0.2 (for consistent analysis) Max Tokens: 800 System Prompt: "You are a competitive intelligence analyst..."

Optimized Prompt:

`You are a competitive intelligence analyst. Compare two web page versions and identify significant business changes. Rate significance 1-10 and provide analysis.

Focus on:

Format: SIGNIFICANCE: [1-10] CHANGE_TYPE: [pricing/product/strategic/content/none] SUMMARY: [Brief description]
IMPACT: [Business impact] ACTION: [Recommended response]`

Why This Works:


Node 7: Parse Analysis Results

Code Node - Result Parser:

const analysis = $input.first().json.choices[0].message.content;

// Extract significance score
const significanceMatch = analysis.match(/SIGNIFICANCE:\\s*(\\d+)/i);
const significance = significanceMatch ? parseInt(significanceMatch[1]) : 0;

// Extract other fields
const changeTypeMatch = analysis.match(/CHANGE_TYPE:\\s*([^\\n]+)/i);
const summaryMatch = analysis.match(/SUMMARY:\\s*([^\\n]+)/i);
const impactMatch = analysis.match(/IMPACT:\\s*([^\\n]+)/i); 
const actionMatch = analysis.match(/ACTION:\\s*([^\\n]+)/i);

return [{
  json: {
    ...($('Create URL List').first().json),
    significance_score: significance,
    change_type: changeTypeMatch ? changeTypeMatch[1].trim() : 'unknown',
    summary: summaryMatch ? summaryMatch[1].trim() : 'No summary',
    impact: impactMatch ? impactMatch[1].trim() : 'No impact analysis',
    action: actionMatch ? actionMatch[1].trim() : 'No action specified',
    full_analysis: analysis,
    timestamp: new Date().toISOString(),
    current_content: $('Fetch Current Page').first().json.data?.substring(0, 5000) || 'No content'
  }
}];

What This Accomplishes: