How workflow templates work and how to use them.
Workflows are YAML templates that define step-by-step marketing processes. Each workflow chains multiple MCP tool calls in the correct order, handles dependencies, and produces a formatted summary.
They live in the workflows/ directory.
| Template | File | Use Case |
|---|---|---|
| Client Tracking | client-tracking.yaml |
Weekly/monthly check-in: GSC, health, rankings, GBP, LLM |
| SEO Onboarding | seo-onboarding.yaml |
New client: project, audit, brand vault, keywords, content |
| Monthly SEO | monthly-seo.yaml |
Existing client: suggestions, schema, indexing, content |
| GBP Optimization | gbp-optimization.yaml |
First-time GBP profile cleanup |
| GBP Monthly | gbp-monthly.yaml |
Monthly GBP: reviews, posts, automation |
| PPC Launch | ppc-launch.yaml |
Google Ads campaign setup and activation |
| Authority Building | authority-building.yaml |
Press releases, cloud stacks, digital PR |
| LLM Visibility | llm-visibility.yaml |
AI search monitoring and sentiment analysis |
Every workflow YAML has the same structure:
# Header
template: workflow-name
version: "1.0"
description: "What this workflow does"
# Client info — fill in per client
client: ""
domain: ""
period: ""
status: pending
# IDs — discovered or filled as steps complete
ids:
project_id: ""
# ...
# Configuration — workflow-specific settings
config:
setting_1: ""
# ...
# Steps — the actual workflow
steps:
- id: 1
name: "Step Name"
tool: tool_name
operations:
- op: operation_name
params:
key: "{{variable}}"
output_key: ids.some_id
status: pending
depends_on: []
# Results — filled after execution
results: []Templates use {{variable}} syntax for dynamic values:
{{domain}}— client's domain{{ids.project_id}}— a discovered ID{{config.setting}}— a configuration value
Steps declare dependencies with depends_on:
- id: 3
depends_on: [1, 2] # Wait for steps 1 and 2 before runningSteps without dependencies can run in parallel.
Steps that iterate over a list use repeat:
- id: 7
repeat: "{{config.articles_to_generate}}"
operations:
- op: create_content_instance
# ... runs once per articleOptional steps use condition:
- id: 7
condition: "{{config.create_landing_pages}}"
# Only runs if create_landing_pages is trueSteps can store results in two ways:
output_key: ids.project_id— store a single ID for later stepsoutput: variable_name— store complex output data
The easiest way — just use the corresponding command:
/run-tracking → client-tracking.yaml (weekly/monthly performance check-in)
/run-seo → seo-onboarding.yaml or monthly-seo.yaml
/run-gbp → gbp-optimization.yaml or gbp-monthly.yaml
/run-ppc → ppc-launch.yaml
/run-pr → authority-building.yaml
/run-visibility → llm-visibility.yaml
The command will ask you the right questions and fill in the template automatically.
-
Copy the template:
cp workflows/seo-onboarding.yaml plans/acme-corp-2026-03.yaml
-
Fill in client info, IDs, and config
-
Execute steps in order, following
depends_onchains -
Record results in the
resultsarray
For ongoing clients, create a plan file per month:
plans/
acme-corp/
2026-01.yaml (January — onboarding)
2026-02.yaml (February — monthly maintenance)
2026-03.yaml (March — monthly + GBP)
This gives you a history of all work done per client.
All workflows produce summaries using this format:
✅ {Client Name} — {Workflow Name} · {Period}
{emoji} {Step Label} {count/result} [View →](dashboard_url)
{emoji} {Step Label} {count/result} [View →](dashboard_url)
...
{total} actions completed · {failed} failed
Rules:
- Always use emoji + label + count/outcome + link
- Links must be clickable markdown
- Never show raw UUIDs — use names and dashboard links
- Status line at the bottom always
SEO Onboarding:
1. Project → 2. Audit → 3. Pillars → 4. Brand Vault → 5. Keywords → 6. Topical Map → 7. Articles
(4 can run parallel to 5; 7 depends on both 4 and 6)
Monthly SEO:
1. Issues → 2. Suggestions ─┐
3. Schemas ──├→ (parallel after 1)
4. Indexing ──┘
5. Topical Map → 6. Articles
7. Content Grader (independent)
GBP Optimization:
1. Load Location → 2. Recommendations → 3. Categories ─┐
4. Services ──├→ 6. Deploy
5. Attributes ──┘
PPC Launch:
1. Business → 2. Products → 3. Approve → 4. Keywords → 5. Send to Ads → 6. Activate
(strictly sequential — each step depends on the previous)
Authority Building:
1. Press Release → 2. Distribute ──┐
3. Cloud Stack → 4. Publish ──├→ 6. Monitor Backlinks
5. Digital PR Campaign ──┘
LLM Visibility:
1. Brand Overview ─┐
2. Sentiment ──├→ (all can run in parallel)
3. Prompt Sims ──┤
4. SERP Analysis ──┘
5. Export (optional, after all)
- Always run
/my-accountfirst to discover IDs before starting a workflow - Don't skip steps — later steps depend on output from earlier ones
- Poll async tasks — audit creation, content generation, and keyword clustering are all async
- Save your plan files — they're a record of all work done for each client