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
| Dashboard | http://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.
Create Supabase Project (Database)
This is where all your data lives — sessions, revenue, email stats, ad performance.
Go to: https://supabase.com
- Click "Start your project" → Sign up with GitHub or email
- Click "New Project"
- Project name:
marketing-engine - Database password: choose something strong and save it somewhere safe
- Region: Southeast Asia (Singapore) — closest to Sydney
- Plan: Free
- 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...
Run Database Migrations
Creates all the tables the system needs.
Go to: Supabase Dashboard → SQL Editor (left sidebar, looks like a database icon)
- Click "New query"
- Open the file
deploy/all-migrations.sqlfrom the project folder - Copy the entire contents and paste into the SQL editor
- Click "Run" (or Ctrl+Enter)
- 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).
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.
Create Google Cloud Project
This gives the system access to Google Analytics, Search Console, and Ads.
Go to: https://console.cloud.google.com
- Sign in with the Google account that owns your GA4 and Ads accounts
- Click the project dropdown (top-left) → "New Project"
- Project name:
Marketing Engine - Click "Create"
- Go to APIs & Services → Library
- 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
- Go to APIs & Services → Credentials
- Click "Create Credentials" → OAuth Client ID
- Application type: Web application
- Authorized redirect URI:
http://54.66.74.4:5678/rest/oauth2-credential/callback - Save the Client ID and Client Secret
What to save:
- Google OAuth Client ID
- Google OAuth Client Secret
Connect Google Analytics (GA4)
So the system can track sessions, revenue, and conversions.
Go to: https://analytics.google.com
- Click the gear icon (Admin) at bottom-left
- Under each property (LEH and CareAid), note the Property ID (a number like
123456789) - Go to n8n: http://54.66.74.4:5678
- Settings → Credentials → Add credential → Google Analytics OAuth2 API
- Paste your Client ID and Client Secret from Step 4
- Click "Sign in with Google" — authorise access
What to save:
- GA4 Property ID for LEH
- GA4 Property ID for CareAid
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
- Sign up for a free account
- Create your account — you can use one account for both businesses using separate lists, or two separate accounts
- Go to Settings → API Keys
- Copy your Private API Key (starts with
pk_) - Connect to your stores:
- CareAid (Shopify): In Klaviyo → Integrations → Shopify → Connect
- LEH (WooCommerce): In WordPress admin → Plugins → Install "Klaviyo" plugin → Enter API key
- In n8n: Settings → Credentials → Add → HTTP Header Auth
- Name:
Klaviyo - Header Name:
Authorization - Header Value:
Klaviyo-API-Key pk_your_key_here
- Name:
What to save:
- Klaviyo Private API Key
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
- Click "Create an app"
- App name:
Marketing Engine - Click "Configure Admin API scopes"
- Enable these scopes:
read_productsread_ordersread_customersread_inventory
- Click "Install app"
- Copy the Admin API access token (starts with
shpat_) - In n8n: Add credential → Shopify API → paste token
What to save: Shopify Admin API access token
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
- Click "Add key"
- Description:
Marketing Engine - User: Your admin user
- Permissions: Read
- Click "Generate API key"
- Copy both:
- Consumer Key (starts with
ck_) - Consumer Secret (starts with
cs_)
- Consumer Key (starts with
- In n8n: Add credential → WooCommerce API → paste both keys + store URL
What to save: Consumer Key + Consumer Secret
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
- Create a Slack workspace (or use existing)
- Create a channel called
#marketing-alerts - Go to Slack App Directory → search "Incoming Webhooks"
- Add to your workspace → choose
#marketing-alertschannel - Copy the Webhook URL (starts with
https://hooks.slack.com/services/...) - 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.
Connect Google Ads & Merchant Center
For Shopping feed management and ad budget monitoring.
Google Ads:
- Go to https://ads.google.com
- Note your account IDs (format:
xxx-xxx-xxxx) for both businesses - Apply for API access: Google Ads API dev token
- This takes 1-3 business days for Google to approve
Google Merchant Center:
- Go to https://merchants.google.com
- Create accounts for both businesses (or use existing)
- Link each Merchant Center account to its Google Ads account
- 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
- Create a free account (100 emails/day free)
- Go to Settings → API Keys → Create API Key
- Name:
Marketing Engine - Permissions: Mail Send only
- Copy the API key
- 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
- FIRST: Change the default password (Settings → Personal)
- Import each workflow: Workflows → Import from File → select JSON files from
/opt/n8n/workflows/ - Open each workflow → link the correct credentials (Supabase, Google, Klaviyo, etc.)
- Test each workflow manually once (click "Execute Workflow")
- If it works → toggle "Active" to ON
Activation order:
global_health_check— every 5 minutesglobal_ga4_daily_pull— 6am dailyglobal_klaviyo_performance_sync— 7am dailyglobal_shopping_feed_sync— 5am dailyglobal_budget_pacing— 9pm dailyglobal_weekly_report— Monday 7am
3. Using the Dashboard
URL: http://54.66.74.4
Pages
| Page | What It Shows | When to Check |
|---|---|---|
| Dashboard (All) | Both businesses side by side — KPIs, health | Daily morning check |
| Dashboard → LEH | LEH detail — email flows, ad campaigns, shopping feed | When investigating an issue |
| Dashboard → CareAid | CareAid detail — same modules | When investigating an issue |
| Email tab | All email flows: status, sends, opens, clicks, revenue | Weekly review |
| Ads tab | Campaigns, spend, ROAS, CTR, budget alerts | Daily or when alerted |
| Shopping tab | Product feed: approved/disapproved/pending items | When alerted about disapprovals |
| Alerts | All active alerts across both businesses | When you see the red badge |
| Health | API connection status — is everything working? | If dashboard shows no data |
| Help | This guide | Anytime |
KPI Tiles Explained
| Tile | What It Means | Good vs Bad |
|---|---|---|
| Sessions Today | How many people visited the website today | Green = more than yesterday. Red = less. |
| Revenue Today | Total sales in dollars today | Green = up. Red = down. |
| Ad Spend Today | How much Google Ads spent today | Compare to revenue — spend should be less. |
| ROAS (7-day) | Return on Ad Spend — for every $1 spent on ads, how much revenue | Above 3.0 = good. Below 2.0 = investigate. |
| Email Revenue (7d) | Revenue from email campaigns in last 7 days | Should grow over time as flows activate. |
4. Using n8n (Automation Hub)
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
| Task | How |
|---|---|
| Check if workflows are running | Workflows tab → look for green "Active" toggles |
| See recent executions | Click a workflow → Executions tab → shows history with pass/fail |
| Manually run a workflow | Open workflow → click "Execute Workflow" button |
| Fix a failed workflow | Executions → click the failed one → see which step failed and the error message |
| Update an API credential | Settings → 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
| Flow | What It Does | Triggered By |
|---|---|---|
| Abandoned Cart | 3 emails: reminder (1hr), social proof (24hr), discount (72hr) | Customer adds to cart but doesn't buy |
| Welcome Series | 5 emails over 12 days: intro, bestsellers, guide, reviews, urgency | New email signup |
| Post-Purchase | 5 emails: confirmation, shipping, tips, review request, cross-sell | Customer makes a purchase |
| SMS Cart Recovery | 1 SMS at 30 minutes after cart abandon | Cart abandon (before email) |
| NDIS Renewal | CareAid only: reminder when NDIS plan is nearing renewal | 10 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
| Alert | What It Means | Action |
|---|---|---|
| Underpacing | Campaign is spending too slowly (30%+ behind) | Check ad approval status, keyword bids |
| Overpacing | Campaign spending too fast (20%+ ahead) | Review if clicks are converting |
| Threshold 70/90/100% | Monthly budget nearing limit | Decide if you want to increase or let it cap |
| Auto-Pause | Campaign exceeded 150% daily budget — paused automatically | Check Google Ads for issue, resume manually |
7. Alerts & Monitoring
Alert Severity Levels
| Level | Meaning | Response Time |
|---|---|---|
| CRITICAL | Site down, budget auto-paused, API completely failed | Check immediately |
| HIGH | Traffic dropped 30%+, product disapprovals, delivery issues | Check within a few hours |
| MEDIUM | Budget threshold reached, open rate declining | Check within 24 hours |
| LOW | API degraded performance, non-urgent informational | Check 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)
- Open the dashboard: http://54.66.74.4
- Check both businesses — are KPIs green or red?
- Check Alerts page — any new alerts?
- If everything is green, you're done
Monday Routine (10 minutes)
- Read the weekly report (dashboard or email)
- Note the AI recommendations
- Check Klaviyo for email flow performance
- Check Google Ads for any campaign issues
Monthly Routine (30 minutes)
- Review ad budgets — approve next month's spend
- Check Shopping feed for persistent disapprovals
- Review email flow performance — any flows underperforming?
- Review overall ROAS — are ads profitable?
When You Get an Alert
| Alert | What to Do |
|---|---|
| Site down | Check the website in your browser. If it's down, contact your hosting provider. |
| Traffic drop | Check GA4 directly — is it a tracking issue or real drop? Check if ads are paused. |
| Budget alert | Open Google Ads — check campaign performance. Adjust budget if needed. |
| Shopping disapproval | Open Merchant Center — fix the product data issue. Common: missing images, price mismatch. |
| Email bounce spike | Open Klaviyo — check if a list was imported with bad addresses. Clean the list. |
| API down | Check Health page — which service? Usually temporary. If persists >1 hour, check the service status page. |
10. Troubleshooting
| Problem | Solution |
|---|---|
| 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 zeros | Data hasn't been pulled yet. Check n8n — are the workflows active? Run the GA4 daily pull manually. |
| n8n login page won't load | SSH into the server and run: cd /opt/n8n && docker compose restart |
| Dashboard won't load | SSH into the server and run: pm2 restart marketing-dashboard |
| Workflow shows "Error" in n8n | Click the workflow → Executions → click the failed run → read the error. Usually a credential issue or API rate limit. |
| Emails not sending | Check Klaviyo directly — the Marketing Engine monitors emails but doesn't send them. Issue is in Klaviyo. |
| Shopping feed products disapproved | Open Google Merchant Center → Products → Diagnostics. Fix the listed issues (usually image, price, or description problems). |
| Server SSH not working | Check 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
| Service | Required? | Cost | What It Does |
|---|---|---|---|
| Supabase | Required | Free | Database — stores all data |
| Google Cloud Project | Required | Free | API access for GA4, GSC, Ads |
| Google Analytics (GA4) | Required | Free | Traffic and revenue tracking |
| Klaviyo | Required | Free tier | Email automation (cart recovery, etc.) |
| Shopify API (CareAid) | Required | Free (existing) | Product feed for Shopping |
| WooCommerce API (LEH) | Required | Free (existing) | Product feed for Shopping |
| Google Ads API | Recommended | Free (1-3 day approval) | Ad performance + budget monitoring |
| Google Merchant Center | Recommended | Free | Shopping feed management |
| Slack | Optional | Free | Mobile push alerts |
| SendGrid | Optional | Free (100/day) | Email delivery for weekly reports |
| Claude API | Optional | $20-80/mo | AI commentary on weekly reports |