/ LP Automation Pipeline Internal
Landing Pages — Automation

LP Automation Pipeline

Brief form → Claude copy → GitHub PR → Cloudflare Pages preview
⚠️
Currently in testing

The pipeline is built but not yet confirmed working end-to-end. Use this guide to understand the system. Teddi will update this banner when it's live.

1

Overview

The LP automation pipeline replaces the old WordPress + Elementor workflow. You fill in a brief form and within 10 minutes get a live Cloudflare Pages preview URL with a complete landing page — copy written by Claude, layout from the MM template, branded to the client.

You then review the copy, upload the logo and hero image, add the conversion tracking tags, and merge the PR. Cloudflare Pages auto-deploys in ~30 seconds.

Target: Brief form submitted → live preview URL in under 10 minutes.
2

How it works

📋
You submit the brief form
Business details, campaign details (service, suburb, selling points, reviews), and brand colours/fonts.
Cloudflare Worker receives the brief
The React form POSTs JSON to the mm-lp-pipeline Worker with an authentication header.
🤖
Claude writes the copy
The Worker calls Claude (Sonnet) with the MM copy prompt. Claude generates 17 sections of copy — headline, hero subtext, services, checklist items, benefit cards, how it works steps, reviews headline, FAQ, CTAs.
🔧
Template is populated
The Worker fetches the MM template from GitHub and replaces all placeholders with the generated copy and your brand details.
📁
GitHub repo + PR created
The Worker creates a new client repo (mm-lp-[clientslug]) if it doesn't exist, creates a branch (lp/[service]-[suburb]), commits the HTML, and opens a PR with a review checklist.
💬
Slack notification sent
You get a message in the MM Slack channel with the Cloudflare Pages preview URL and a link to the PR.
You review and merge
Upload logo and hero image, add GA4 and Google Ads tags, review copy, then merge the PR. Cloudflare Pages deploys in ~30 seconds.
3

The brief form

The brief form is a 3-step React app. Access it at: mm-lp-brief.mechanicmarketing.co ↗

Step 1 — Business details

  • Business name, phone number, address
  • Domain (e.g. performanceplus.net.au)
  • Client slug — short, lowercase, no spaces (e.g. performance-plus). Used as the repo name.
  • Google Maps embed URL and directions URL

Step 2 — Campaign details

  • Service (e.g. "Car Servicing") and suburb (e.g. "Queanbeyan")
  • 3 selling points — what makes this client different
  • 3 real customer reviews (name + review text)
  • GA4 Measurement ID (e.g. G-XXXXXXX)
  • Primary CTA preference — Call or Form

Step 3 — Brand details

  • 5 brand colours with live preview panel
  • Heading font and body font (Google Fonts names)
⚠️
The client slug must be unique — it becomes the GitHub repo name. If a repo already exists with that slug, the Worker will commit to it rather than create a new one. Double-check before submitting.
4

After you submit

You'll get a Slack message in the MM channel within a few minutes. It contains:

  • The Cloudflare Pages preview URL — open it to review the page
  • A link to the GitHub PR — this is where you'll merge when ready

If you don't get a Slack message within 5 minutes, something went wrong. Check the Worker logs or flag to Teddi.

5

Your job before merging

The pipeline generates the copy and structure. Before you merge the PR, you need to:

1
Review the copy — read every section. Claude gets the structure right but may need tone adjustments or suburb-specific details. Edit directly in the PR's index.html file.
2
Upload the logo — add the client logo file to the repo and update the src in the header. Accepted formats: SVG, PNG, WebP.
3
Upload the hero image — a real workshop or team photo makes a big difference. Add it to the repo and update the hero img src.
4
Add GA4 tag — the GA4 Measurement ID should be in the form, but verify it's in the <head> of the page.
5
Add Google Ads conversion tag — get the Conversion ID and label from the client's Google Ads account and add to the page.
6
Final visual check — open the preview URL in mobile and desktop. Check hero, CTAs, colours, map, reviews, FAQ.
7
Merge the PR — Cloudflare Pages deploys automatically in ~30 seconds.
6

Template block order

The MM template has a fixed block order. You can show/hide blocks by commenting them out in the HTML — don't delete them.

#BlockNotes
1HEAD / METATitle, description, GTM, fonts
2HEADERSticky, logo + phone. Already has sticky CTA per Josh's rule.
3TRUST BAR4 trust items, secondary brand colour background
4HERO A — Call CTADefault hero. Swap to Hero B for form-primary clients.
5HERO B — Form CTACommented out by default
6SERVICES3-column card grid
7SERVICE CHECKLIST8–12 items, 2-col grid with checkmarks
8BENEFIT CARDS4–6 cards, dark background
9HOW IT WORKS3-step process, numbered circles
10WHY CHOOSE USPrimary brand colour background
11MID-PAGE CTA STRIPSecondary brand colour background
12ABOUTSplit layout, optional owner photo
13FAQPure CSS accordion, first item open by default
14SERVICE AREAMap embed + fallback link
15REVIEWS3 review cards
16FOOTER CTAPrimary brand colour background
17FOOTERSecondary colour, "Powered by MM" line
7

Troubleshooting

ProblemWhat to check
No Slack message after 5 minutesFlag to Teddi — check Worker logs in Cloudflare dashboard
Preview URL returns 404Cloudflare Pages may not be connected to the repo yet. Flag to Teddi.
Copy looks wrong or genericEdit directly in the PR file before merging. Minor edits are expected.
Brand colours look offCheck the CSS variables in the :root block of index.html. Update hex values if the form submission had an error.
Map not showingThe Google Maps embed URL in the brief may have been invalid. Replace the iframe src with a fresh embed URL from Google Maps.
ℹ️
For anything not covered here, the full pipeline technical documentation is at mm-lp-brief.mechanicmarketing.co/guide ↗