Marathon Creative · Automation System

Roadmap at a glance

Every manual step removed is capacity gained — the whole system mapped against the goal of 250 shoots/month.

v1.21.0 Updated Aug 21, 2026 Goal 250 shoots / month 19 modules live
20
Live
1
In progress
19
Queued / planned
9
Ideas

Build queue

in order — top of the stack first
1
Rotate the GHL location key
Standing first move before any new CRM work — a new build wired to a key that is about to change breaks the day it rotates. Four places: Hub .env, keys.env, the droplet, the n8n credential. Blocks pitch capture and the rest of Tier 1.
~30 min · blocks Tier 1
2
Route n8n failures somewhere a human reads
Re-scoped down on evidence: the 189-failure fire is out (zero nudge failures in the last 7 days). What's left is ~10 a week, all overnight, and nobody is told about any of them. This is the routing, not the causes.
~1-2 hrs
3
Leave-window Tier 1
Pitch capture, Day 0 onboarding, weekly leadership digest, quote aging alerts. Jacob's leave may already have started, so all four are late — the digest matters most while he's out, and Day 0 is hard-blocked on his email copy.
~5 hrs · after key rotation
4
Custom order alert
An order that matches no package config currently goes through silently and wrong. This flags it for review instead. Nothing blocking it — the smallest real win on the list.
~1 hr · unblocked
5
Contact Enricher CE-2 — write-back
The enricher reads 2,300 CRM contacts but can't save a single correction. Fields and decisions have been in hand since 07-22, so the only thing missing is the controlled write-back itself.
~4-6 hrs
6
Dispatch Phase D — route optimizer
The board catches bad routing today; Phase D proposes a better order of stops. Suggest-only with guardrails — the system never writes back to Aryeo. First of the three next phases (D → B → E).
~5 hrs
7
Print system Phase −1 — CRM test battery
The whole print rebuild rests on assumptions about contact-scoped CRM events and chained triggers that have never been tested. This battery proves or kills the design before ten sessions get spent on it. Gates Phase 2.
~1 session · gates the rebuild
8
Delete the staged redesign copies
The Hub redesign left statblock.js / upload-model.js / issue-module.js in redesign-staging/ next to the copies grafted into worker.js. Harmless until they drift, then it's unclear which is real.
~15 min · cleanup
9
Notepad as an in-page sheet, not its own page
Opening the notepad mid-shoot takes the photographer off the shoot brief and strips the Directions / Wrap buttons, leaving no way onward but the browser back button. Philip hit this during a shoot. It should slide up over the brief, the way "Something's wrong with my day" already does. A stopgap shipped 2026-08-14 so nobody is stranded meanwhile.
~1 session · field fix

Waiting on you

built & ready — needs your hand

Action items

These are blocking progress or verification — clearing them unlocks the next builds.

Jacob — onboarding email copy — Emails 1–5 exist only inside his own Claude session, never saved anywhere shared. Blocks the client-onboarding build.
"Still working" — button or text reply? — photographers running long have no way to say so. Button ~3 hrs; real text replies ~6 hrs.
Add a "cancelled" status in ClickUp — browser-only, no API path. Needed before cancels can be recorded properly.
Rotate GHL key — new location key into hub .env, keys.env, droplet, n8n cred.
Kill Zapier — replace delivery step with a GHL opportunity trigger.
Aryeo calendar cutover — Aryeo copying shoots onto photographer calendars is the source of the stale-entry problem above.
Hub access revocation — no way to switch someone off; an offboarded phone keeps working up to 30 days.

The system

by function · color = status

Marathon Shoot System

n8n core
Module 1 — Shoot IntakeAryeo webhook → ClickUp + Calendar + Dropbox + Drive
Live
Shoot mutation engine — reschedule / cancel / reassignAll six records move together; folder, every photographer's calendar, board
Live
Module 2 — Editor DeliveryOnedotpix email → Edited Files channel
Live
Module 3 — Client Edit RequestsReply → match task → edits-requested
Live
Module 5 — Photo Cull PipelineHands-off auto-cull + gallery v2; waits for drone and ground shots
Live
Module 4 — Retainer / Misc IntakeR1 live — booking form, one job per shoot, multiple photographers
Live
Module 4 — R4: Hub Intake + Misc Shoot TypeBook a shoot from inside the Hub; new Misc type says what it is and how many videos
Built

Operational Intelligence

visibility + routing
Marathon Hub (PWA)OTP login, role dashboard, dark mode
Live
Sprintbot — Automation AccountAll auto-posts (n8n + Hub + skills) post as the bot, not Hector
Live
Contact Enricher (CE-1)Pace CRM cleanup — shared queue, read-only
Live
Contact Enricher CE-2 / CE-3Controlled write-back + monthly queue
Queued
Dispatch Board — Phase ADaily board + flag engine; a shoot booked to two photographers now reaches both
Live
Upload SLA Tracker (WF5)9pm deadline watcher
Live
Shoot Tracker (ST-1/2/3/4)Check-ins + reminder texts live on real SMS; leave-by avoids tolls
Live
Dispatch Phases D → B → ERoute optimizer, booking guard, per-shooter
Priority
Daily Production AlertField-time + orphan + wind risk
Queued
Delivery SLA WatcherUnfulfilled shoots, 9am check
Queued
Editor Turnaround MonitorMissing editor returns
Queued
Drive File Mover (utility)Move/trash by ID webhook
Queued

GHL Integrations

messaging
Phase 1.3 — Delivery TextClient SMS on listing delivered
Live
Payment AlertTeam SMS on payment (verify next real one)
Live
Phase 1.2 — Custom Order AlertFlag orders with no package match
Queued
Print Order EscalationPaid invoice → rush print task
Queued

Business Intelligence

reporting
Weekly Capacity ForecastPace vs 250/mo, unbooked slots
Queued
Shoot Volume DashboardLive pace-to-goal artifact
Queued

Pace CRM & Leave Window

Jacob's Aug plan
Pitch CaptureSource workflow + Sales Follow-Ups + skill rollout
Tier 1
Weekly Leadership DigestMonday summary to Jacob + Taylor (absorbs Weekly Business Report)
Tier 1
Quote Aging AlertsQuoted > 7 days → nudge Taylor
Tier 1
Pipeline Standard + DeliverabilityCanonical stages, source fields, A2P / SPF / DKIM / DMARC
Queued
Nurture BaselineSpeed-to-lead, missed-call text-back, reviews
Queued
Marathon Client Portal (Track B — production-data client login)Read-only portal.marathonhq.app for shoots/content/deliverables — sibling to the A4 GHL dashboard
Live
Client Dashboard + Client RolePilot on 1–2 retainer sub-accounts
Queued
Retainer Snapshot v1The $95/mo product — piloted on Next Leg Transport
Queued
Track C WatchersRenewal radar, touchpoint monitor, report SLA, health score
Veto pending

Growth Systems

revenue + onboarding
Client Day-Before ReminderEvening-before shoot SMS
Queued
Overdue Payment AlertPast-due follow-up to Taylor
Queued
New Agent / Team UpsellTeam-created webhook → offer
Queued
Retainer Onboarding (M5)Plan written — Day 0–10 automation
Planned
GHL → ClickUp Deal BridgeDeal closes → folder + onboarding task
Planned
Print Job System (5 phases)Board fields + 12 suppliers already built; spec still to write
Queued

Future & Ideas

not yet scoped
Proposal / Quote GeneratorJacob's ASAP call — spec first, leave-window Tier 2
Tier 2
Social Media Content PipelineHunter's calendar → captions
Idea
Agent On-Camera ConfirmationCinematic — Philip's ask
Idea
Claude-Powered Service DetectionReplace regex with reasoning
Idea
Real Estate Feed (Aryeo)Shares cull Phase 2 stack
Planning
Builder Connect App · Employee Records · LoopNet · GeminiStrategic — parked
Idea
Live in production In progress / needs fix Queued / planned Idea / not scoped

Source of truth: ROADMAP.md + Session_17_Handoff.md. This map mirrors the roadmap file — when an item ships, the file updates and this can be regenerated.