Make.com vs n8n

Visual Mapping for Marketing Automation

graph LR
    A[Make.com Scenario] --> B[Router Node]
    B --> C1[Whale Path]
    B --> C2[VIP Path]
    B --> C3[New Customer]
    
    D[n8n Workflow] --> E[Switch Node]
    E --> F1[Whale Path]
    E --> F2[VIP Path]
    E --> F3[New Customer]
    
    style A fill:#e0e7ff
    style D fill:#fce4ec
                    
Feature Make.com n8n
Interface Drag-and-drop modules Node-based canvas
Code in nodes Code module (limited) Function node (full JS/Python)
Self-hosting No (cloud only) Yes (Docker/npm)
Enterprise scale Good Better (more control)

You know Make.com deeply. n8n is the same logic, different UI + more code-friendly.

n8n Interface Walkthrough

Left Panel: Nodes Palette

  • Trigger nodes (Webhook, Schedule)
  • Action nodes (HTTP, Function, Code)
  • Flow nodes (Switch, Merge, Loop)
  • 3rd party integrations (AWeber, HubSpot)

Center: Canvas

  • Drag-and-drop nodes
  • Connect with lines
  • Double-click to configure
  • Test each node individually

Right Panel: Config

  • Node-specific settings
  • JSON editor for advanced
  • Test data input/output
  • Error handling options

Same concepts as Make.com: Trigger → Logic → Action. Just different UI.

Rebuilding WagerBird Flow in n8n

graph TD
    A[Stripe Webhook] --> B[HTTP Request: Lookup Customer]
    B --> C[Switch Node: Check Buyer Type]
    C -->|Whale| D1[AWeber: Add to Whale List]
    C -->|VIP| D2[AWeber: Add to VIP Drip]
    C -->|Repeated| D3[AWeber: Add to Retention]
    C -->|New| D4[HubSpot: Create Contact + AWeber]
    
    D1 --> E[Slack: Notify Whale Purchase]
    D2 --> F[Wait 2 Days] --> D2
    
    style A fill:#e0e7ff
    style C fill:#fce4ec
    style D1 fill:#d1fae5
                    

Your WagerBird Make.com router logic, recreated in n8n:

// In n8n Function node (JavaScript)
const items = $input.all();
const results = [];

for (const item of items) {
    const purchase = item.json;
    
    if (purchase.amount > 100) {
        results.push({ json: { ...purchase, segment: 'whale' }});
    } else if (purchase.history_count > 5) {
        results.push({ json: { ...purchase, segment: 'vip' }});
    }
    // ... more logic
}

return results;

Code Nodes: JavaScript in n8n

Make.com "Code" module vs n8n "Function" node — same concept, more power in n8n.

// This is what you'll write in n8n Function nodes
// Similar to Make.com's Code module, but pure JavaScript

const items = $input.all();
const threshold = 0.50;

// Transform campaign data (like your RPE calculations)
const processed = items.map(item => {
    const revenue = item.json.revenue || 0;
    const clicks = item.json.clicks || 1;
    const rpe = revenue / clicks;
    const fatigue_score = (item.json.peak_ctr - item.json.current_ctr) / item.json.peak_ctr;
    
    return {
        json: {
            ...item.json,
            rpe: Math.round(rpe * 100) / 100,
            fatigue_score: Math.round(fatigue_score * 100),
            needs_pause: fatigue_score < -0.30
        }
    };
});

return processed;

This is different from Make.com: more code-heavy, but same data transformation logic you already understand.

Exercise: Rebuild Your Stripe Router in n8n

Goal

Recreate your WagerBird 4-way Stripe → AWeber/HubSpot sync in n8n instead of Make.com.

Steps

  1. Set up n8n cloud account (free tier: https://app.n8n.cloud)
  2. Create workflow: "WagerBird Stripe Sync"
  3. Add Webhook node (copy your Stripe webhook URL)
  4. Add HTTP Request node: GET customer from Google Sheets API
  5. Add Switch node: Check buyer type (Whale/VIP/Repeated/New)
  6. Add HTTP Request nodes: POST to AWeber API (4 paths)
  7. Add HTTP Request node: POST to HubSpot API (for New customers)
  8. Test with sample Stripe payload

Claude Code Prompt

"Generate n8n JSON export for this flow:
Stripe webhook → Switch (check amount + history) → 
  Whale (> $100): AWeber API call
  VIP (>5 purchases): AWeber API call  
  Repeated: AWeber API call
  New: HubSpot + AWeber API calls