Marketing Engine — Help Guide

Complete guide to setting up and using the Marketing Engine platform.

1. What is Marketing Engine?

Marketing Engine is your central hub for managing all marketing across Little East Hampton (wall art & homewares) and CareAid Supplies (disability & aged care products).

It automates:

  • Email recovery — Abandoned cart emails, welcome series, post-purchase flows
  • Google Shopping — Product feed sync, title optimisation, disapproval alerts
  • Ad budget protection — Alerts when campaigns overspend or underspend
  • Performance tracking — Sessions, revenue, ad spend, ROAS in one view
  • Weekly reports — AI-written performance summary every Monday
  • Health monitoring — Alerts if any service goes down

Your two businesses:

  • 🎨 Little East Hampton (LEH) — littleeasthampton.com.au — WooCommerce
  • CareAid Supplies — careaidsupplies.com.au — Shopify

Key URLs

Dashboardhttp://54.66.74.4
n8n (automations)http://54.66.74.4:5678
Supabase (database)Go to supabase.com → your project

2. Initial Setup (10 Steps)

Follow these steps in order. Each step tells you exactly where to go and what to do.

1

Create Supabase Project (Database)

This is where all your data lives — sessions, revenue, email stats, ad performance.

Go to: https://supabase.com

  1. Click "Start your project" → Sign up with GitHub or email
  2. Click "New Project"
  3. Project name: marketing-engine
  4. Database password: choose something strong and save it somewhere safe
  5. Region: Southeast Asia (Singapore) — closest to Sydney
  6. Plan: Free
  7. Click "Create new project" — wait about 1 minute

What to copy (Settings → API):

  • Project URL — looks like https://abcdefg.supabase.co
  • anon public key — long string starting with eyJ...
  • service_role key — click "Reveal" to see it, also starts with eyJ...
2

Run Database Migrations

Creates all the tables the system needs.

Go to: Supabase Dashboard → SQL Editor (left sidebar, looks like a database icon)

  1. Click "New query"
  2. Open the file deploy/all-migrations.sql from the project folder
  3. Copy the entire contents and paste into the SQL editor
  4. Click "Run" (or Ctrl+Enter)
  5. You should see "Success. No rows returned" — this is normal

How to verify: Go to Table Editor (left sidebar) — you should see tables like businesses, email_flows, ad_campaigns, etc. The businesses table should have 2 rows (LEH and CareAid).

3

Connect Dashboard to Supabase

Tell the dashboard where the database is.

Give the 3 Supabase values (from Step 1) to your developer/Claude. They will update the server configuration. You don't need to do anything technical here.

What happens: The file .env.local on the server gets updated with your Supabase URL and API keys. The dashboard is restarted and now shows real data.

4

Create Google Cloud Project

This gives the system access to Google Analytics, Search Console, and Ads.

Go to: https://console.cloud.google.com

  1. Sign in with the Google account that owns your GA4 and Ads accounts
  2. Click the project dropdown (top-left) → "New Project"
  3. Project name: Marketing Engine
  4. Click "Create"
  5. Go to APIs & Services → Library
  6. Search for and Enable each of these:
    • Google Analytics Data API
    • Google Search Console API
    • Google Ads API
    • Content API for Shopping
    • PageSpeed Insights API
  7. Go to APIs & Services → Credentials
  8. Click "Create Credentials" → OAuth Client ID
  9. Application type: Web application
  10. Authorized redirect URI: http://54.66.74.4:5678/rest/oauth2-credential/callback
  11. Save the Client ID and Client Secret

What to save:

  • Google OAuth Client ID
  • Google OAuth Client Secret
5

Connect Google Analytics (GA4)

So the system can track sessions, revenue, and conversions.

Go to: https://analytics.google.com

  1. Click the gear icon (Admin) at bottom-left
  2. Under each property (LEH and CareAid), note the Property ID (a number like 123456789)
  3. Go to n8n: http://54.66.74.4:5678
  4. Settings → Credentials → Add credential → Google Analytics OAuth2 API
  5. Paste your Client ID and Client Secret from Step 4
  6. Click "Sign in with Google" — authorise access

What to save:

  • GA4 Property ID for LEH
  • GA4 Property ID for CareAid
6

Create Klaviyo Account (Email Automation)

This sends your abandoned cart emails, welcome series, and post-purchase flows.

Go to: https://www.klaviyo.com/sign-up

  1. Sign up for a free account
  2. Create your account — you can use one account for both businesses using separate lists, or two separate accounts
  3. Go to Settings → API Keys
  4. Copy your Private API Key (starts with pk_)
  5. Connect to your stores:
    • CareAid (Shopify): In Klaviyo → Integrations → Shopify → Connect
    • LEH (WooCommerce): In WordPress admin → Plugins → Install "Klaviyo" plugin → Enter API key
  6. In n8n: Settings → Credentials → Add → HTTP Header Auth
    • Name: Klaviyo
    • Header Name: Authorization
    • Header Value: Klaviyo-API-Key pk_your_key_here

What to save:

  • Klaviyo Private API Key
7

Connect Shopify (CareAid Supplies)

So the system can read products for the Google Shopping feed.

Go to: Your Shopify Admin → Settings → Apps and sales channels → Develop apps

  1. Click "Create an app"
  2. App name: Marketing Engine
  3. Click "Configure Admin API scopes"
  4. Enable these scopes:
    • read_products
    • read_orders
    • read_customers
    • read_inventory
  5. Click "Install app"
  6. Copy the Admin API access token (starts with shpat_)
  7. In n8n: Add credential → Shopify API → paste token

What to save: Shopify Admin API access token

8

Connect WooCommerce (Little East Hampton)

So the system can read products for the Google Shopping feed.

Go to: WordPress Admin → WooCommerce → Settings → Advanced → REST API

  1. Click "Add key"
  2. Description: Marketing Engine
  3. User: Your admin user
  4. Permissions: Read
  5. Click "Generate API key"
  6. Copy both:
    • Consumer Key (starts with ck_)
    • Consumer Secret (starts with cs_)
  7. In n8n: Add credential → WooCommerce API → paste both keys + store URL

What to save: Consumer Key + Consumer Secret

9

Set Up Slack Alerts (Optional but Recommended)

Get instant alerts on your phone when something goes wrong.

Go to: https://api.slack.com/messaging/webhooks

  1. Create a Slack workspace (or use existing)
  2. Create a channel called #marketing-alerts
  3. Go to Slack App Directory → search "Incoming Webhooks"
  4. Add to your workspace → choose #marketing-alerts channel
  5. Copy the Webhook URL (starts with https://hooks.slack.com/services/...)
  6. In n8n: Settings → Variables → Add SLACK_WEBHOOK_URL

Alternative: If you don't use Slack, alerts will still show on the dashboard Alerts page. Slack just gives you mobile push notifications.

10

Connect Google Ads & Merchant Center

For Shopping feed management and ad budget monitoring.

Google Ads:

  1. Go to https://ads.google.com
  2. Note your account IDs (format: xxx-xxx-xxxx) for both businesses
  3. Apply for API access: Google Ads API dev token
  4. This takes 1-3 business days for Google to approve

Google Merchant Center:

  1. Go to https://merchants.google.com
  2. Create accounts for both businesses (or use existing)
  3. Link each Merchant Center account to its Google Ads account
  4. Note the Merchant IDs

Note: Google Ads API approval takes a few days. Everything else works without it. Shopping feed and budget monitoring will activate once approved.

+

Optional: Email for Weekly Reports (SendGrid)

If you want the Monday weekly report emailed to you (not just on the dashboard).

Go to: https://signup.sendgrid.com

  1. Create a free account (100 emails/day free)
  2. Go to Settings → API Keys → Create API Key
  3. Name: Marketing Engine
  4. Permissions: Mail Send only
  5. Copy the API key
  6. In n8n: Add credential → SendGrid API → paste key

Not required. Weekly reports are saved to the database and visible on the dashboard. SendGrid just adds email delivery.

+

Final: Import & Activate Workflows in n8n

Turn on the automations.

Go to: http://54.66.74.4:5678

  1. FIRST: Change the default password (Settings → Personal)
  2. Import each workflow: Workflows → Import from File → select JSON files from /opt/n8n/workflows/
  3. Open each workflow → link the correct credentials (Supabase, Google, Klaviyo, etc.)
  4. Test each workflow manually once (click "Execute Workflow")
  5. If it works → toggle "Active" to ON

Activation order:

  1. global_health_check — every 5 minutes
  2. global_ga4_daily_pull — 6am daily
  3. global_klaviyo_performance_sync — 7am daily
  4. global_shopping_feed_sync — 5am daily
  5. global_budget_pacing — 9pm daily
  6. global_weekly_report — Monday 7am

3. Using the Dashboard

URL: http://54.66.74.4

Pages

PageWhat It ShowsWhen to Check
Dashboard (All)Both businesses side by side — KPIs, healthDaily morning check
Dashboard → LEHLEH detail — email flows, ad campaigns, shopping feedWhen investigating an issue
Dashboard → CareAidCareAid detail — same modulesWhen investigating an issue
Email tabAll email flows: status, sends, opens, clicks, revenueWeekly review
Ads tabCampaigns, spend, ROAS, CTR, budget alertsDaily or when alerted
Shopping tabProduct feed: approved/disapproved/pending itemsWhen alerted about disapprovals
AlertsAll active alerts across both businessesWhen you see the red badge
HealthAPI connection status — is everything working?If dashboard shows no data
HelpThis guideAnytime

KPI Tiles Explained

TileWhat It MeansGood vs Bad
Sessions TodayHow many people visited the website todayGreen = more than yesterday. Red = less.
Revenue TodayTotal sales in dollars todayGreen = up. Red = down.
Ad Spend TodayHow much Google Ads spent todayCompare to revenue — spend should be less.
ROAS (7-day)Return on Ad Spend — for every $1 spent on ads, how much revenueAbove 3.0 = good. Below 2.0 = investigate.
Email Revenue (7d)Revenue from email campaigns in last 7 daysShould grow over time as flows activate.

4. Using n8n (Automation Hub)

URL: http://54.66.74.4:5678

n8n is the automation engine that runs all the background tasks. You generally don't need to touch it daily — it runs on autopilot.

When to Check n8n

  • If the dashboard shows stale data (no updates for >24 hours)
  • If you get a Slack alert about a workflow failure
  • If you want to manually trigger a report early

Common Tasks in n8n

TaskHow
Check if workflows are runningWorkflows tab → look for green "Active" toggles
See recent executionsClick a workflow → Executions tab → shows history with pass/fail
Manually run a workflowOpen workflow → click "Execute Workflow" button
Fix a failed workflowExecutions → click the failed one → see which step failed and the error message
Update an API credentialSettings → Credentials → find and edit the credential

5. Email Automation (Klaviyo)

Klaviyo handles all customer-facing emails. The Marketing Engine monitors performance and feeds data into the dashboard.

Active Email Flows

FlowWhat It DoesTriggered By
Abandoned Cart3 emails: reminder (1hr), social proof (24hr), discount (72hr)Customer adds to cart but doesn't buy
Welcome Series5 emails over 12 days: intro, bestsellers, guide, reviews, urgencyNew email signup
Post-Purchase5 emails: confirmation, shipping, tips, review request, cross-sellCustomer makes a purchase
SMS Cart Recovery1 SMS at 30 minutes after cart abandonCart abandon (before email)
NDIS RenewalCareAid only: reminder when NDIS plan is nearing renewal10 months after purchase

You manage flows in Klaviyo (not in n8n or the dashboard). The dashboard only shows performance metrics. To edit email content, timing, or create new flows → log into Klaviyo.

6. Google Ads & Shopping

The system monitors ad performance and protects your budget. You manage campaigns in Google Ads directly.

What the System Does Automatically

  • Shopping feed sync: Products from Shopify/WooCommerce synced to Google Merchant Center daily at 5am
  • Title optimisation: Product titles reformatted for better Shopping performance
  • Budget pacing: Daily check at 9pm — alerts if campaigns under or overspending
  • Auto-pause: If a campaign exceeds 150% of daily budget, it gets paused automatically
  • Performance reports: Weekly summary with ROAS, spend, conversions

Budget Alert Types

AlertWhat It MeansAction
UnderpacingCampaign is spending too slowly (30%+ behind)Check ad approval status, keyword bids
OverpacingCampaign spending too fast (20%+ ahead)Review if clicks are converting
Threshold 70/90/100%Monthly budget nearing limitDecide if you want to increase or let it cap
Auto-PauseCampaign exceeded 150% daily budget — paused automaticallyCheck Google Ads for issue, resume manually

7. Alerts & Monitoring

Alert Severity Levels

LevelMeaningResponse Time
CRITICALSite down, budget auto-paused, API completely failedCheck immediately
HIGHTraffic dropped 30%+, product disapprovals, delivery issuesCheck within a few hours
MEDIUMBudget threshold reached, open rate decliningCheck within 24 hours
LOWAPI degraded performance, non-urgent informationalCheck at next review

8. Weekly Reports

Every Monday at 7am AEST, the system automatically generates a performance report for each business.

What's in the Report

  • Sessions this week vs last week
  • Revenue this week vs last week
  • Ad spend and ROAS
  • Email performance (sends, opens, clicks, revenue)
  • AI commentary — 3 sentences: what changed, why, what to do next

Reports are saved in the database and visible on the dashboard. If SendGrid is configured, they're also emailed to you.

9. Daily Operations (What You Do)

Total time needed: 10-15 minutes per day

Morning Routine (5 minutes)

  1. Open the dashboard: http://54.66.74.4
  2. Check both businesses — are KPIs green or red?
  3. Check Alerts page — any new alerts?
  4. If everything is green, you're done

Monday Routine (10 minutes)

  1. Read the weekly report (dashboard or email)
  2. Note the AI recommendations
  3. Check Klaviyo for email flow performance
  4. Check Google Ads for any campaign issues

Monthly Routine (30 minutes)

  1. Review ad budgets — approve next month's spend
  2. Check Shopping feed for persistent disapprovals
  3. Review email flow performance — any flows underperforming?
  4. Review overall ROAS — are ads profitable?

When You Get an Alert

AlertWhat to Do
Site downCheck the website in your browser. If it's down, contact your hosting provider.
Traffic dropCheck GA4 directly — is it a tracking issue or real drop? Check if ads are paused.
Budget alertOpen Google Ads — check campaign performance. Adjust budget if needed.
Shopping disapprovalOpen Merchant Center — fix the product data issue. Common: missing images, price mismatch.
Email bounce spikeOpen Klaviyo — check if a list was imported with bad addresses. Clean the list.
API downCheck Health page — which service? Usually temporary. If persists >1 hour, check the service status page.

10. Troubleshooting

ProblemSolution
Dashboard shows "No businesses configured"Supabase is not connected. Check that .env.local on the server has the correct Supabase URL and keys. Restart the dashboard.
Dashboard shows all zerosData hasn't been pulled yet. Check n8n — are the workflows active? Run the GA4 daily pull manually.
n8n login page won't loadSSH into the server and run: cd /opt/n8n && docker compose restart
Dashboard won't loadSSH into the server and run: pm2 restart marketing-dashboard
Workflow shows "Error" in n8nClick the workflow → Executions → click the failed run → read the error. Usually a credential issue or API rate limit.
Emails not sendingCheck Klaviyo directly — the Marketing Engine monitors emails but doesn't send them. Issue is in Klaviyo.
Shopping feed products disapprovedOpen Google Merchant Center → Products → Diagnostics. Fix the listed issues (usually image, price, or description problems).
Server SSH not workingCheck AWS Lightsail console — is the instance running? Try restarting it from the console.

Useful SSH Commands

# Connect to server

ssh -i ~/.ssh/id_ed25519 ubuntu@54.66.74.4

# Restart dashboard

pm2 restart marketing-dashboard

# View dashboard logs

pm2 logs marketing-dashboard --lines 50

# Restart n8n

cd /opt/n8n && docker compose restart

# View n8n logs

cd /opt/n8n && docker compose logs --tail 50

# Check everything is running

pm2 status && docker ps

Need Help?

Contact your developer or open Claude and describe the issue. Include:

  • What you were trying to do
  • What error you see (screenshot if possible)
  • Which business it affects (LEH or CareAid)

Complete Requirements Checklist

ServiceRequired?CostWhat It Does
SupabaseRequiredFreeDatabase — stores all data
Google Cloud ProjectRequiredFreeAPI access for GA4, GSC, Ads
Google Analytics (GA4)RequiredFreeTraffic and revenue tracking
KlaviyoRequiredFree tierEmail automation (cart recovery, etc.)
Shopify API (CareAid)RequiredFree (existing)Product feed for Shopping
WooCommerce API (LEH)RequiredFree (existing)Product feed for Shopping
Google Ads APIRecommendedFree (1-3 day approval)Ad performance + budget monitoring
Google Merchant CenterRecommendedFreeShopping feed management
SlackOptionalFreeMobile push alerts
SendGridOptionalFree (100/day)Email delivery for weekly reports
Claude APIOptional$20-80/moAI commentary on weekly reports