Search and read all files related to:
1. GHL (GoHighLevel) — E:\genesis-system\GHL\ directory — list and read all
2. Extendly — search for any files mentioning "Extendly" across E:\genesis-system\
3. Website Factory — E:\genesis-system\Sunaiva\website_factory\ and E:\genesis-system\Sunaiva\talking-widget\site-factory\ — list and read all
4. Any "snapshot" files — search for "snapshot" in filenames across E:\genesis-system\
5. E:\genesis-system\GHL_MODULES\ — list and read all
6. E:\genesis-system\RECEPTIONISTAI\research\ — list and read all files
7. Search for "MCTB" or "missed call text back" in file content across E:\genesis-system\
8. Search for "review generator" or "review automation" in file content

Return:
- Full GHL directory structure and key file contents
- Extendly snapshot details (what's included, how it's configured)
- Website factory templates and capabilities
- MCTB implementation details
- Review generator/automation details
- Any existing GHL pipeline configurations

This is for building a TradiesVoice product suite with GHL as the backend.


I'll conduct a comprehensive audit of GHL, Extendly, Website Factory, and related components. Let me start with parallel searches across the key directories.


wsl.exe -e python3 /mnt/e/genesis-system/.claude/hooks/auto_respawn.py


wsl.exe -e python3 /mnt/e/genesis-system/.claude/hooks/observability_logger.py


wsl.exe -e python3 /mnt/e/genesis-system/.claude/hooks/session_heartbeat.py


wsl.exe -e python3 /mnt/e/genesis-system/.claude/hooks/thinking_block_monitor.py


wsl.exe -e python3 /mnt/e/genesis-system/.claude/hooks/weekly_usage_tracker.py


E:\genesis-system\GHL\workflows\GHL_WORKFLOW_SPECS.md
E:\genesis-system\GHL\modules\widget_embed.html
E:\genesis-system\GHL\modules\review_generator.py
E:\genesis-system\GHL\modules\mctb.py


E:\genesis-system\Sunaiva\talking-widget\site-factory\templates\Hero.jsx.template
E:\genesis-system\Sunaiva\talking-widget\site-factory\site_factory.js


Found 58 files
E:\genesis-system\KNOWLEDGE_GRAPH\lightrag_index\kv_store_full_docs.json
E:\genesis-system\KNOWLEDGE_GRAPH\entities\deep_think_entities.jsonl
E:\genesis-system\.claude\rules\GLOBAL_GENESIS_RULES.md
E:\genesis-system\Credentials\Genesis Credentials additions.txt
E:\genesis-system\core\youtube_kg_builder.py
E:\genesis-system\KNOWLEDGE_GRAPH\entities\ghl_mastery_timeline.md
E:\genesis-system\KNOWLEDGE_GRAPH\entities\nick_pontes_ghl_kb.jsonl
E:\genesis-system\.claude\skills\registry.json
E:\genesis-system\reports\DT_GOLD_3_GHL_SAAS_PRO_2026_02_21_RESPONSE_2026_02_21.md
E:\genesis-system\reports\DT_GOLD_3_GHL_SAAS_PRO_2026_02_21_RAW.json
E:\genesis-system\prompts\DT_GOLD_3_GHL_SAAS_PRO_2026_02_21.md
E:\genesis-system\plans\MISSION_CONTROL.md
E:\genesis-system\hive\progress\FORGE_MCP_CAPABILITIES_REPORT.md
E:\genesis-system\BUNKER_MANUAL_ACTIVATION_CHECKLIST.md
E:\genesis-system\Research reports\GEORGE_BUNKER_PARTNERSHIP_RESEARCH.md
E:\genesis-system\Research reports\GHL_MARKETPLACE_AUDIT_PHASE1.md
E:\genesis-system\Research reports\REVIEW_WIDGET_RESEARCH.md
E:\genesis-system\RECEPTIONISTAI\onboarding\GHL_IMPLEMENTATION_GUIDE.md
E:\genesis-system\RECEPTIONISTAI\onboarding\EXTENDLY_SNAPSHOT_ANALYSIS.md
E:\genesis-system\GENESIS_CONSTITUTION.md
E:\genesis-system\plans\GENESIS_OVERNIGHT_EVOLUTION_AUDIT.md
E:\genesis-system\tools\extendly_knowledge_absorber.py
E:\genesis-system\tools\agent_computer_use.py
E:\genesis-system\skills\extendly_tradie_skill.py
E:\genesis-system\plans\GENESIS_QUANTUM_MASTER_PROMPT.md
E:\genesis-system\plans\GENESIS_QUICK_START_v2.md
E:\genesis-system\plans\Claude chat\GENESIS_SESSION_2026-01-03_DOMAIN_STRATEGY.md
E:\genesis-system\Voice Agency Launch\AI Voice Agency Launch Strategy.md
E:\genesis-system\RECEPTIONISTAI\MASTER_PRD_RECEPTIONISTAI.md
E:\genesis-system\RECEPTIONISTAI\PHASE1_STATUS.md
E:\genesis-system\RECEPTIONISTAI\EXECUTION_PLAN.md
E:\genesis-system\RALPH WIGGUM\GHL_TOTAL_MASTERY_PRD.md
E:\genesis-system\RALPH WIGGUM\GHL_SKILLS_PRD.md
E:\genesis-system\RALPH WIGGUM\GHL_TOTAL_DOMINATION_PRD.md
E:\genesis-system\RALPH WIGGUM\AIVA_CAPABILITY_ASCENSION_MASTER_PRD.md
E:\genesis-system\RALPH WIGGUM\AIVA_ASCENSION_MASTER_PRD.md
E:\genesis-system\KNOWLEDGE_GRAPH\relationships.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\entities\ghl_marketplace_ai_strategy.json
E:\genesis-system\KNOWLEDGE_GRAPH\entities\ghl\ghl_marketplace_apps.json
E:\genesis-system\KNOWLEDGE_GRAPH\entities\ghl\extendly_small_business_snapshot.json
E:\genesis-system\KNOWLEDGE_GRAPH\entities\extendly_tradie_snapshot.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\creator_mind\network\recommended_resources.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\creator_mind\network\people_network.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\creator_mind\evolution\open_questions.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\creator_mind\conversations_archive.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\creator_mind\analysis\conversation_analyses.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\axioms\ghl_axioms.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\MARKET_PATHWAYS.md
E:\genesis-system\KNOWLEDGE_GRAPH\GHL_MASTERY_ACCESS.md
E:\genesis-system\Credentials\MASTER_CREDENTIALS.md
E:\genesis-system\Research reports\Tradie Revenue Recovery Suite Strategy.md
E:\genesis-system\Research reports\GHL AI Synthetic Employee Strategy.md
E:\genesis-system\Research reports\Tradie SaaS AEO_GEO Automation Stack.md
E:\genesis-system\Research reports\White Label Platforms For Agency Scaling.md
E:\genesis-system\Research reports\SaaS Growth and Customer Acquisition Strategy.md
E:\genesis-system\Research reports\The Tradie Revenue Recovery Suite_ Strategic Roadmap.md
E:\genesis-system\Research reports\GTM Strategy for AI Revenue Recovery.md
E:\genesis-system\Research reports\AI Voice Agency Launch Strategy.md


Found 124 files
E:\genesis-system\.claude\agents\MANIFEST.md
E:\genesis-system\qa_reports\sunaiva_qa_report.md
E:\genesis-system\.claude\rules\GLOBAL_GENESIS_RULES.md
E:\genesis-system\KNOWLEDGE_GRAPH\entities\ghl_mastery_timeline.md
E:\genesis-system\GHL_MODULES\mctb\MCTB_WORKFLOW.md
E:\genesis-system\AGILEADAPT\domains\DOMAIN_REVENUE_PROJECTION.md
E:\genesis-system\AGILEADAPT\domains\DOMAIN_INVENTORY.md
E:\genesis-system\GHL_MODULES\review_generator\PRICING_SHEET.md
E:\genesis-system\GHL_MODULES\review_generator\SNAPSHOT_SPEC.md
E:\genesis-system\GHL_MODULES\mctb_widget\README.md
E:\genesis-system\GHL_MODULES\review_generator\README.md
E:\genesis-system\Research reports\OPENCLAW_DEEP_RESEARCH_2026.md
E:\genesis-system\hive\GENESIS_CONNECT_MISSIONS.md
E:\genesis-system\Research reports\WORKFLOW_TO_SKILL_ARCHITECTURE.md
E:\genesis-system\reports\DT_GOLD_3_GHL_SAAS_PRO_2026_02_21_RESPONSE_2026_02_21.md
E:\genesis-system\prompts\DT_GOLD_3_GHL_SAAS_PRO_2026_02_21.md
E:\genesis-system\prompts\DT_GOLD_2_DOMAIN_PORTFOLIO_2026_02_21.md
E:\genesis-system\prompts\DT_BROWSER_SUPREMACY_2026_02_21.md
E:\genesis-system\plans\DOMAIN_EMPIRE_EXECUTION_PLAN.md
E:\genesis-system\plans\GENESIS_COMPENDIUM_BLUEPRINT.md
E:\genesis-system\hive\progress\session_56_handoff.md
E:\genesis-system\hive\DEEP_THINK_MASTER_REPORT.md
E:\genesis-system\hive\progress\KG_CRYSTALLISATION_COMPLETE.md
E:\genesis-system\plans\MISSION_CONTROL.md
E:\genesis-system\plans\BROWSER_AUTOMATION_DEPLOYMENT.md
E:\genesis-system\.claude\skills\browser-use-mastery.md
E:\genesis-system\plans\PRD_ADVANCED_BROWSER_USE.md
E:\genesis-system\hive\progress\FORGE_MCP_CAPABILITIES_REPORT.md
E:\genesis-system\hive\HIVE_STRUCTURE.md
E:\genesis-system\hive\progress\gemini_audit_session44.md
E:\genesis-system\Research reports\WORLDOFAI_AUTO_CLAUDE_AUTONOMOUS_CODING_INTEL.md
E:\genesis-system\Research reports\WORLDOFAI_QWEN35_INTEL.md
E:\genesis-system\Research reports\CLAY_LAWRENCE_VIDEO_INTELLIGENCE.md
E:\genesis-system\Research reports\GEORGE_BUNKER_PARTNERSHIP_RESEARCH.md
E:\genesis-system\Research reports\GHL_MARKETPLACE_AUDIT_PHASE1.md
E:\genesis-system\Research reports\REVIEW_WIDGET_RESEARCH.md
E:\genesis-system\RECEPTIONISTAI\onboarding\GHL_IMPLEMENTATION_GUIDE.md
E:\genesis-system\RECEPTIONISTAI\onboarding\EXTENDLY_SNAPSHOT_ANALYSIS.md
E:\genesis-system\hive\COWORK_PROTOCOL.md
E:\genesis-system\hive\JULES_TASK_BATCH_MAX_COMPUTE.md
E:\genesis-system\hive\BATTLE_PLAN_MAX_COMPUTE.md
E:\genesis-system\.claude\skills\session-persistence\SKILL.md
E:\genesis-system\SESSION_25_COMPLETION_SUMMARY.md
E:\genesis-system\prompts\TAPESTRY_CONDENSED.md
E:\genesis-system\prompts\DEEP_THINK_RADIAL_ARMS_INDEX.md
E:\genesis-system\plans\SESSION_CONTINUITY_TAPESTRY_IMPLEMENTATION.md
E:\genesis-system\prompts\DEEP_THINK_DT15_TEMPORAL_SESSION_TIMETRAVEL.md
E:\genesis-system\prompts\DEEP_THINK_SESSION_CONTINUITY_TAPESTRY.md
E:\genesis-system\prompts\DEEP_THINK_DT9_DISTRIBUTED_SYSTEMS_CONTINUITY.md
E:\genesis-system\plans\ENTERPRISE_AI_TRANSFORMATION_STRATEGY.md
E:\genesis-system\plans\OPENCLAW_VPS_DEPLOYMENT.md
E:\genesis-system\plans\RLM_DEPLOYMENT_PLAN.md
E:\genesis-system\plans\BROWSER_SUPREMACY_ARCHITECTURE.md
E:\genesis-system\Sunaiva\talking-widget\sales\GHL_DOMAIN_DEPLOYMENT_PLAN.md
E:\genesis-system\Research reports\DOMAIN_PORTFOLIO_AUDIT.md
E:\genesis-system\hive\SWARM_MISSIONS_WAVE2.md
E:\genesis-system\plans\BROWSER_AGENT_TEST_PIPELINE.md
E:\genesis-system\Youtube Transcripts\Claude Plugins Give You Superpowers - Heres How to Unlock Them (Rick Mulready).md
E:\genesis-system\Research reports\VISUAL_COMMAND_CENTRE_RESEARCH.md
E:\genesis-system\Research reports\BROWSER_USE_OPTIMAL_STRATEGY.md
E:\genesis-system\Research reports\OPENCLAW_AGENT_FOUNDATION_RESEARCH.md
E:\genesis-system\AUTO_RESPAWN_README.md
E:\genesis-system\AUTO_RESPAWN_IMPLEMENTATION_SUMMARY.md
E:\genesis-system\hive\GENESIS_KG_MAP.md
E:\genesis-system\plans\SESSION_CRASH_POSTMORTEM.md
E:\genesis-system\Research reports\YOUTUBE_EZvizvqT9g4_ANALYSIS.md
E:\genesis-system\plans\DOMAIN_EMPIRE_LAUNCH_STRATEGY.md
E:\genesis-system\Conversations\clawdtalk_conversation_extracted.md
E:\genesis-system\RECEPTIONISTAI\widget\TEST_CHECKLIST.md
E:\genesis-system\Research reports\TALKING_WIDGET_VIDEO_ohMe1L9gChs.md
E:\genesis-system\Research reports\GEMINI_API_SKILL_YOUTUBE_ANALYSIS.md
E:\genesis-system\Research reports\Agentic OS Blueprint Research Synthesis.md
E:\genesis-system\protocols\RECEPTIONISTAI_TESTING_PROTOCOL.md
E:\genesis-system\plans\RECEPTIONISTAI_PRE_MORTEM.md
E:\genesis-system\plans\PRODUCTION_HARDENING_PLAN.md
E:\genesis-system\Conversations\google_admin_plans_extracted.md
E:\genesis-system\Research reports\GEMINI_ULTRA_UNTAPPED_POTENTIAL.md
E:\genesis-system\Conversations\gemini_ultra_plan_features_extracted.md
E:\genesis-system\plans\CAPACITY_MAXIMIZATION_SPRINT.md
E:\genesis-system\plans\GENESIS_OVERNIGHT_EVOLUTION_AUDIT.md
E:\genesis-system\plans\JULES_DEEPMIND_INTEGRATION.md
E:\genesis-system\Research reports\BROWSER_USE_RESEARCH.md
E:\genesis-system\protocols\RESEARCH_FIRST_PROTOCOL.md
E:\genesis-system\protocols\NAMP_PROTOCOL.md
E:\genesis-system\plans\DOMAIN_MAPPING.md
E:\genesis-system\plans\GENESIS_QUANTUM_MASTER_PROMPT.md
E:\genesis-system\plans\GENESIS_QUICK_START_v2.md
E:\genesis-system\plans\Claude chat\Creatordashboard.ai Conversation.md
E:\genesis-system\plans\Claude chat\GENESIS_SESSION_2026-01-03_DOMAIN_STRATEGY.md
E:\genesis-system\Voice Agency Launch\AI Voice Agency Launch Strategy.md
E:\genesis-system\TRADIE_VOICE_AI_PACKAGE.md
E:\genesis-system\REVENUE LAUNCH CONTEXT\genesis_sovereign_meta_prompt.md
E:\genesis-system\REVENUE LAUNCH CONTEXT\FLORIDA_24HR_BLITZ_V4_FINAL.md
E:\genesis-system\REVENUE LAUNCH CONTEXT\FLORIDA_24HR_BLITZ_V2.md
E:\genesis-system\RECEPTIONISTAI\PHASE1_STATUS.md
E:\genesis-system\RECEPTIONISTAI\EXECUTION_PLAN.md
E:\genesis-system\RALPH WIGGUM\TRADIE_CHATBOTS_GHL_PRD.md
E:\genesis-system\RALPH WIGGUM\GHL_TOTAL_MASTERY_PRD.md
E:\genesis-system\RALPH WIGGUM\GHL_SKILLS_PRD.md
E:\genesis-system\RALPH WIGGUM\GHL_TOTAL_DOMINATION_PRD.md
E:\genesis-system\RALPH WIGGUM\DOMAIN_REVENUE_SUMMARY_PRD.md
E:\genesis-system\RALPH WIGGUM\AIVA_CAPABILITY_ASCENSION_MASTER_PRD.md
E:\genesis-system\RALPH WIGGUM\AIVA_ASCENSION_MASTER_PRD.md
E:\genesis-system\KNOWLEDGE_GRAPH\claude_conversations\ponte_ai_employees_marketplace.md
E:\genesis-system\KNOWLEDGE_GRAPH\GHL_MASTERY_ACCESS.md
E:\genesis-system\AIVA_CORE\AUTONOMY_LEVELS.md
E:\genesis-system\AIVA\status\component_inventory.md
E:\genesis-system\.claude\agents\l4-executive.md
E:\genesis-system\Sunaiva\ai-memory\mcp\HANDOFF.md
E:\genesis-system\Research reports\Tradie Revenue Recovery Suite Strategy.md
E:\genesis-system\Research reports\GHL AI Synthetic Employee Strategy.md
E:\genesis-system\Research reports\GHL Knowledge Graph Implementation Plan.md
E:\genesis-system\Research reports\neuromorphic-agency-architecture.md
E:\genesis-system\Research reports\Tradie SaaS AEO_GEO Automation Stack.md
E:\genesis-system\Research reports\White Label Platforms For Agency Scaling.md
E:\genesis-system\Research reports\SaaS Growth and Customer Acquisition Strategy.md
E:\genesis-system\Research reports\GENESIS_REVENUE_ENGINE_PRD.md
E:\genesis-system\Research reports\GTM Strategy for AI Revenue Recovery.md
E:\genesis-system\Research reports\AI Voice Agency Launch Strategy.md
E:\genesis-system\swarms\genesis-goose\documentation\docs\mcp\jetbrains-mcp.md
E:\genesis-system\swarms\genesis-goose\documentation\docs\mcp\firecrawl-mcp.md
E:\genesis-system\swarms\genesis-goose\documentation\docs\mcp\browserbase-mcp.md
E:\genesis-system\swarms\genesis-goose\documentation\blog\2025-12-10-stop-ai-agent-unwanted-changes\index.md
E:\genesis-system\swarms\genesis-goose\documentation\blog\2025-04-08-vibe-code-responsibly\index.md


Found 80 files
E:\genesis-system\KNOWLEDGE_GRAPH\lightrag_index\kv_store_full_docs.json
E:\genesis-system\KNOWLEDGE_GRAPH\entities\deep_think_entities.jsonl
E:\genesis-system\plans\ARCHITECTURE_MAPS_RLM_INGESTION_PRD.md
E:\genesis-system\KNOWLEDGE_GRAPH\entities\rlm_digestion_2026_02_23.jsonl
E:\genesis-system\RECEPTIONISTAI\clients\george_bunker_fnq.md
E:\genesis-system\KNOWLEDGE_GRAPH\entities\ghl_mastery_timeline.md
E:\genesis-system\MEMORY.md
E:\genesis-system\KNOWLEDGE_GRAPH\entities\genesis_phase_two_2026_02_23.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\entities\nick_pontes_ghl_kb.jsonl
E:\genesis-system\GHL_MODULES\GHL_MODULES_OVERVIEW.md
E:\genesis-system\RECEPTIONISTAI\clients\george_onboarding_checklist.md
E:\genesis-system\GHL_MODULES\widget\WIDGET_EMBED_GUIDE.md
E:\genesis-system\GHL_MODULES\mctb\sms_templates.md
E:\genesis-system\GHL_MODULES\mctb\MCTB_WORKFLOW.md
E:\genesis-system\GHL\modules\mctb.py
E:\genesis-system\KNOWLEDGE_GRAPH\entities\n8n_nervous_system_2026_02_23.jsonl
E:\genesis-system\AGILEADAPT\website\index_copy.md
E:\genesis-system\core\n8n_trigger.py
E:\genesis-system\n8n\WORKFLOW_INDEX.md
E:\genesis-system\scripts\kimi_swarm_activated.py
E:\genesis-system\n8n\README.md
E:\genesis-system\AGILEADAPT\BRAND_BIBLE.md
E:\genesis-system\n8n\workflows\lead_nurture_mctb.json
E:\genesis-system\KNOWLEDGE_GRAPH\entities\session_80_ctm_2026_02_23.jsonl
E:\genesis-system\GHL_MODULES\mctb_widget\ghl_mctb_deploy.py
E:\genesis-system\GHL_MODULES\mctb_widget\PRICING_SHEET.md
E:\genesis-system\GHL_MODULES\mctb_widget\MCTB_SNAPSHOT_SPEC.md
E:\genesis-system\GHL_MODULES\mctb_widget\README.md
E:\genesis-system\RECEPTIONISTAI\strategy\AIVA_VERTICAL_FLEET_ARCHITECTURE.md
E:\genesis-system\hive\GENESIS_CONNECT_MISSIONS.md
E:\genesis-system\RECEPTIONISTAI\modules\README.md
E:\genesis-system\protocols\TELNYX_VOICEBOT_SETUP_SOP.md
E:\genesis-system\deploy\audit.html
E:\genesis-system\deploy\bunker-demo\audit.html
E:\genesis-system\KNOWLEDGE_GRAPH\entities\genesis_compendium_epochs_3_9.jsonl
E:\genesis-system\Conversations\gemini_chat_8e2a6293b063b7fe_RAW.md
E:\genesis-system\Conversations\gemini_chat_8e2a6293b063b7fe_CLEAN.md
E:\genesis-system\KNOWLEDGE_GRAPH\entities\deep_think_synthesis_2026_02_19.jsonl
E:\genesis-system\plans\GEORGE_DEMO_PRD_BETA.md
E:\genesis-system\KINAN_5MIN_GHL_ACTION_REQUIRED.md
E:\genesis-system\hive\progress\HERMES_GHL_SETUP_REPORT.md
E:\genesis-system\hive\progress\george_demo_gemini_report.md
E:\genesis-system\hive\progress\gemini_audit_session44.md
E:\genesis-system\hive\RECEPTIONISTAI_SWARM_REPORT_2026-02-18.md
E:\genesis-system\GHL_ACTIVATION_SUMMARY.md
E:\genesis-system\BUNKER_MANUAL_ACTIVATION_CHECKLIST.md
E:\genesis-system\RECEPTIONISTAI\GHL_2MIN_MANUAL_SETUP.md
E:\genesis-system\scripts\ghl_setup.py
E:\genesis-system\BUNKER_FNQ_GHL_AUDIT_2026-02-18.md
E:\genesis-system\RECEPTIONISTAI\GEORGE_DEMO_CHECKLIST.md
E:\genesis-system\RECEPTIONISTAI\marketing\localsearch_poach_sequences.md
E:\genesis-system\Research reports\CLAY_LAWRENCE_VIDEO_INTELLIGENCE.md
E:\genesis-system\RECEPTIONISTAI\website\BUILD_COMPLETE.md
E:\genesis-system\RECEPTIONISTAI\website\products.html
E:\genesis-system\RECEPTIONISTAI\website\js\slider.js
E:\genesis-system\Research reports\GEORGE_BUNKER_CURRENT_STATE.md
E:\genesis-system\Research reports\GEORGE_BUNKER_PARTNERSHIP_RESEARCH.md
E:\genesis-system\Research reports\GHL_MARKETPLACE_AUDIT_PHASE1.md
E:\genesis-system\RECEPTIONISTAI\website\PHASE1_CHANGES.md
E:\genesis-system\RECEPTIONISTAI\website-full-v1\audit.html
E:\genesis-system\Research reports\PHONE_NUMBER_STRATEGY_DEEP_DIVE.md
E:\genesis-system\KNOWLEDGE_GRAPH\axioms\dt25v2_composable_pricing.jsonl
E:\genesis-system\Research reports\NICK_PONTE_REVENUE_PLAYBOOK_EXTRACTION.md
E:\genesis-system\KNOWLEDGE_GRAPH\axioms\cycle_21_report.md
E:\genesis-system\KNOWLEDGE_GRAPH\axioms\alpha_evolve_cycle_21.jsonl
E:\genesis-system\plans\GEORGE_BUNKER_MONDAY_DEMO.md
E:\genesis-system\TRADIES\BUNKER FINAL\bunker-fnq-audit.html
E:\genesis-system\protocols\RESEARCH_FIRST_PROTOCOL.md
E:\genesis-system\RALPH WIGGUM\TRADIE_CHATBOTS_GHL_PRD.md
E:\genesis-system\RALPH WIGGUM\TIER1_RECEPTIONIST_GHL_PRD.md
E:\genesis-system\RALPH WIGGUM\GHL_SKILLS_PRD.md
E:\genesis-system\KNOWLEDGE_GRAPH\indexes\ghl_agentic_retrieval.json
E:\genesis-system\KNOWLEDGE_GRAPH\creator_mind\conversations_archive.jsonl
E:\genesis-system\KNOWLEDGE_GRAPH\MARKET_PATHWAYS.md
E:\genesis-system\KNOWLEDGE_GRAPH\GHL_MASTERY_ACCESS.md
E:\genesis-system\Research reports\Tradie Revenue Recovery Suite Strategy.md
E:\genesis-system\Research reports\Tradie SaaS AEO_GEO Automation Stack.md
E:\genesis-system\Research reports\White Label Platforms For Agency Scaling.md
E:\genesis-system\Research reports\The Tradie Revenue Recovery Suite_ Strategic Roadmap.md
E:\genesis-system\Research reports\GTM Strategy for AI Revenue Recovery.md


Now let me read the key files to understand GHL_MODULES, Extendly snapshots, and website factory capabilities.


     1→# MCTB + Talking Widget — Lead Recovery Stack
     2→## ReceptionistAI Add-On Module | v1.0.0
     3→
     4→---
     5→
     6→## Overview
     7→
     8→This module delivers two composable add-ons that work independently or together as a **Lead Recovery Stack**. Both snap onto any GoHighLevel (GHL) sub-account in under 30 minutes.
     9→
    10→| Module | Name | Standalone | Add-On |
    11→|--------|------|-----------|--------|
    12→| Missed Call Text Back | "Instant Responder" | $97/mo | $100/mo |
    13→| Talking Widget | "AIVA Web Closer" | $197/mo | $100/mo |
    14→| Bundle | "Lead Recovery Stack" | — | $147/mo |
    15→
    16→---
    17→
    18→## What Is Missed Call Text Back (MCTB)?
    19→
    20→When a potential client calls a business and nobody answers, they hang up and call the next tradie on the list. That lead is gone — forever — unless you respond within seconds.
    21→
    22→**MCTB solves this.**
    23→
    24→The moment a call goes unanswered, GHL fires an SMS to the caller within 30 seconds:
    25→
    26→> "Hi Sarah, sorry we missed your call at Precision Plumbing! We'll call you right back. Or reply here if you prefer a text. — The Team"
    27→
    28→The caller stops hunting. They feel acknowledged. Conversion stays with your client.
    29→
    30→### What MCTB Does in GHL
    31→
    32→1. Detects a missed inbound call (GHL native trigger)
    33→2. Waits 30 seconds (prevents false triggers on instant hang-ups)
    34→3. Checks the contact has not already been messaged in the last 5 minutes (prevents duplicates)
    35→4. Fires SMS #1 — acknowledgement and callback promise
    36→5. Creates an opportunity in the "Lead Recovery" pipeline at stage "Missed Call — Follow Up"
    37→6. Tags the contact `missed_call_triggered`
    38→7. Sends internal notification to business owner
    39→8. If no reply in 4 hours — fires SMS #2 with booking link
    40→9. If reply received — removes from follow-up, tags `engaged_via_sms`, notifies team
    41→
    42→### Business Impact
    43→
    44→Every missed call to a tradie or service business is worth $200–$500 on average. A single extra conversion per fortnight covers the module cost for the entire year.
    45→
    46→---
    47→
    48→## What Is the Talking Widget?
    49→
    50→The Talking Widget embeds **AIVA** — a live AI voice receptionist — directly on a client's website. Visitors can have a real voice conversation with AIVA without picking up a phone or calling a number.
    51→
    52→**AIVA handles:**
    53→- Answering questions about services, pricing, and availability
    54→- Qualifying the visitor as a real lead
    55→- Collecting contact details
    56→- Booking appointments or directing to the booking link
    57→- Answering after-hours (24/7, no extra cost)
    58→
    59→The widget appears as a small button in the corner of the website. On click, it opens a voice call directly in the browser — no app, no phone number required.
    60→
    61→### Technical Foundation
    62→
    63→The widget uses the official Telnyx `<telnyx-ai-agent>` web component, connected to a Telnyx AI Assistant instance. Each paying client receives their own dedicated AI Assistant instance (not a shared demo) with their specific business knowledge, hours, services, and voice settings.
    64→
    65→### Business Impact
    66→
    67→Website visitors who use a voice widget convert at approximately 3x the rate of standard contact form submissions. A single booked job covers the monthly cost with room to spare.
    68→
    69→---
    70→
    71→## How They Work Together — The Lead Recovery Stack
    72→
    73→The two modules cover the two primary lead leakage points for service businesses:
    74→
    75→| Leak Point | Solution |
    76→|-----------|---------|
    77→| Phone call — not answered | MCTB fires SMS within 30 seconds |
    78→| Website visit — visitor doesn't call | Talking Widget engages them in real-time voice |
    79→
    80→Together they form a **Lead Recovery Stack** — every lead that touches the business through any channel gets followed up automatically. Nothing slips through.
    81→
    82→### The Flow
    83→
    84→```
    85→Website visitor lands
    86→        │
    87→        ▼
    88→[Talking Widget] — AIVA answers questions, qualifies, books
    89→        │
    90→        ▼
    91→Visitor calls the phone number instead (or later)
    92→        │
    93→  Nobody answers?
    94→        │
    95→        ▼
    96→[MCTB] — SMS fires within 30 seconds
    97→        │
    98→        ▼
    99→Visitor replies? → Engaged via SMS → booked
   100→Visitor doesn't reply in 4hrs? → Follow-up SMS with booking link
   101→```
   102→
   103→---
   104→
   105→## Installation
   106→
   107→### Prerequisites
   108→
   109→- Active GHL SaaS agency account
   110→- Client sub-account created
   111→- SMS number assigned to sub-account
   112→- Telnyx AI Assistant provisioned for client (see `widget_per_client_provisioning.md`)
   113→
   114→### Step 1 — Deploy MCTB to GHL Sub-Account
   115→
   116→**Option A — Automated (recommended):**
   117→
   118→```bash
   119→python ghl_mctb_deploy.py \
   120→  --sub-account-id SUB_ACCOUNT_ID \
   121→  --business-name "Precision Plumbing" \
   122→  --booking-link "https://book.precisionplumbing.com.au" \
   123→  --owner-phone "+61412345678"
   124→```
   125→
   126→Environment variable required: `GHL_AGENCY_API_KEY`
   127→
   128→**Option B — Manual snapshot import:**
   129→
   130→1. In your GHL agency account, go to Agency > Snapshots
   131→2. Import the snapshot from `MCTB_SNAPSHOT_SPEC.md` (or request the pre-built snapshot from the ReceptionistAI team)
   132→3. Apply to sub-account
   133→4. Update the SMS templates with client name, booking link, and team sign-off
   134→
   135→### Step 2 — Customise MCTB Templates
   136→
   137→In GHL > Sub-Account > Settings > SMS Templates, update the three templates:
   138→
   139→**Template 1 — Initial Response (fires at 30 seconds):**
   140→> Hi {{contact.first_name}}, sorry we missed your call at {{business_name}}! We'll call you right back. Or reply here if you prefer a text. — {{team_name}}
   141→
   142→**Template 2 — Follow-Up (fires at 4 hours if no reply):**
   143→> We still haven't been able to reach you. Is there a better time to call? Or tap here to book online: {{booking_link}} — {{team_name}}
   144→
   145→**Template 3 — Confirmation (fires when appointment booked):**
   146→> You're locked in! We'll see you on {{appointment.date}} at {{appointment.time}}. Any questions, just reply here. — {{business_name}}
   147→
   148→### Step 3 — Deploy the Talking Widget
   149→
   150→See `WIDGET_DEPLOY_SPEC.md` for full installation instructions per platform (GHL Funnel, WordPress/10Web, Shopify).
   151→
   152→---
   153→
   154→## Customisation Variables
   155→
   156→| Variable | Description | Example |
   157→|----------|-------------|---------|
   158→| `{{business_name}}` | Client's trading name | Precision Plumbing |
   159→| `{{team_name}}` | Team sign-off for SMS | The Team / The Crew |
   160→| `{{booking_link}}` | Booking page URL | https://book.client.com.au |
   161→| `{{owner_phone}}` | Internal notification number | +61412345678 |
   162→| `agent-id` | Telnyx AI Assistant ID for widget | assistant-abc123... |
   163→| `widget_position` | Widget placement on page | bottom-right / bottom-left |
   164→| `widget_color` | Primary colour (hex) | #1a1a2e |
   165→
   166→---
   167→
   168→## Support and Escalation
   169→
   170→- Technical deployment issues: check `ghl_mctb_deploy.py` error output
   171→- Telnyx assistant provisioning: see `widget_per_client_provisioning.md`
   172→- Pricing questions: see `PRICING_SHEET.md`
   173→- GHL workflow logic: see `MCTB_SNAPSHOT_SPEC.md`
   174→
   175→---
   176→
   177→*Module: mctb_widget v1.0.0 | ReceptionistAI | Genesis Build*
   178→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>


     1→# GHL Power Modules — Master Overview
     2→## ReceptionistAI by Sunaiva Digital | AgileAdapt Agency Stack
     3→## Version: 1.0.0 | Build Date: 2026-02-23 | Authority: Genesis
     4→
     5→---
     6→
     7→## What This Is
     8→
     9→GHL Power Modules are composable, deployable GoHighLevel add-ons built specifically for Australian trade and service businesses. Each module snaps onto any GHL sub-account in under 30 minutes and generates recurring revenue for the agency from day one.
    10→
    11→These modules are sold as part of the **ReceptionistAI product suite** — branded as Sunaiva Digital's offering to tradies across Australia.
    12→
    13→---
    14→
    15→## Module Summary
    16→
    17→| Module | Name | Price (Standalone) | Price (Add-On) | Deploy Time |
    18→|---|---|---|---|---|
    19→| 1 | Review Generator (Reputation Rocket) | $197/mo | $97/mo | 20–30 mins |
    20→| 2 | Missed Call Text Back (Instant Responder) | $97/mo | $100/mo | 15–20 mins |
    21→| 3 | Smart Widget (Booking + Chat + Call) | $197/mo | $100/mo | 5–15 mins |
    22→| — | Lead Recovery Stack (MCTB + Widget bundle) | — | $147/mo | 25–30 mins |
    23→| — | Full Suite (all 3 modules) | — | $294/mo | 60–75 mins |
    24→
    25→---
    26→
    27→## Module 1: Review Generator (Reputation Rocket)
    28→
    29→### Folder: `review_generator/`
    30→
    31→### What It Does
    32→
    33→Automates the entire post-job Google review collection process. After a job is completed, the system waits 2 hours, sends a personalised SMS rating request, filters positive vs negative responses, sends 4-5 star customers directly to Google, privately captures negative feedback and alerts the business owner — then follows up 48 hours later to increase Google review conversion.
    34→
    35→### Business Problem It Solves
    36→
    37→Australian tradies live and die by Google reviews. A business with 50 five-star reviews wins the job before the competitor with 10. The problem: 90% of tradies never ask for reviews, and 85% of happy customers who intended to leave a review forget within 24 hours. Reputation Rocket removes every friction point and makes 5-star reviews automatic.
    38→
    39→### The Automated Flow
    40→
    41→```
    42→Job completed (webhook OR tag "review-requested")
    43→         |
    44→         v
    45→Wait 2 hours (customer settles)
    46→         |
    47→         v
    48→SMS: "Hi [Name], it's [Tech] from [Business]. Rate your experience: [link]"
    49→         |
    50→         v
    51→Customer taps link → Star rating funnel
    52→         |
    53→   4-5 stars?               1-3 stars?
    54→         |                        |
    55→         v                        v
    56→Google Review link sent    Owner alerted internally
    57→No Google link to disgruntled customer
    58→         |
    59→         v
    60→48 hours later → Follow-up SMS (if not yet posted to Google)
    61→```
    62→
    63→### Revenue Impact for Agency
    64→
    65→- Average time to set up: 25 minutes per client
    66→- Monthly revenue: $97/mo per client
    67→- 10 clients = $970/mo recurring
    68→- 100 clients = $9,700/mo recurring
    69→- Zero ongoing maintenance per client after setup
    70→
    71→### Files
    72→
    73→| File | Purpose |
    74→|---|---|
    75→| `review_generator/README.md` | Full module overview and installation guide |
    76→| `review_generator/REVIEW_GENERATOR_WORKFLOW.md` | Complete GHL workflow specification (step-by-step) |
    77→| `review_generator/sms_templates.md` | All 5 SMS templates with copy, merge tags, tone notes |
    78→| `review_generator/SNAPSHOT_SPEC.md` | GHL asset build manual (custom fields, pipeline, funnels, workflows) |
    79→| `review_generator/trigger_webhook_spec.md` | n8n/Zapier integration specs for ServiceM8, Tradify, AIVA |
    80→| `review_generator/ghl_api_deploy.py` | Automated GHL asset deployment script |
    81→| `review_generator/PRICING_SHEET.md` | Module pricing, ROI case studies, objection handling |
    82→
    83→---
    84→
    85→## Module 2: Missed Call Text Back (Instant Responder)
    86→
    87→### Folder: `mctb/` (spec files) | `mctb_widget/` (deploy scripts)
    88→
    89→### What It Does
    90→
    91→Fires an automatic SMS to every caller who rings the business and doesn't get an answer — within 30 to 60 seconds. It stops the lead from calling the next competitor by acknowledging them immediately, opening a text conversation, creating an opportunity in GHL's Lead Recovery pipeline, and alerting the business owner.
    92→
    93→### Business Problem It Solves
    94→
    95→When a potential customer calls a tradie and nobody answers, they move to the next result on Google within 60-90 seconds. The missed call is a lost lead — permanently — unless the business responds before that window closes. MCTB closes the window. A single converted lead per fortnight covers the module cost for an entire year.
    96→
    97→### The Automated Flow
    98→
    99→```
   100→Inbound call detected → rings → not answered
   101→         |
   102→         v
   103→Wait 30 seconds (allow immediate callback by team)
   104→         |
   105→         v
   106→Check: Contact already messaged in last 5 mins? → Exit if YES
   107→         |
   108→         v
   109→SMS #1 (within 60s of missed call):
   110→"Hi [Name], sorry we missed your call at [Business]! We'll call you right back.
   111→Or reply here if you prefer a text. — The Team"
   112→         |
   113→         v
   114→Create opportunity: Lead Recovery pipeline → "Missed Call — Follow Up" stage
   115→Add tag: missed_call_triggered
   116→Alert owner: "[MCTB Alert] Missed call from [Name] ([Phone]). SMS sent."
   117→         |
   118→    Wait 4 hours ─────────── Contact replies?
   119→         |                         |
   120→         v                         v
   121→SMS #2 (if no reply):       Branch B: Reply Received
   122→"Is there a better time        Update pipeline to "Engaged via SMS"
   123→to call? Book online:         Alert owner with customer's message
   124→[booking_link]"               Remove from follow-up timer
   125→```
   126→
   127→### Revenue Impact for Agency
   128→
   129→- Average setup time: 20 minutes per client
   130→- Monthly revenue: $97/mo standalone | $100/mo add-on
   131→- ROI for client (conservative): 2 extra jobs/month = $500 revenue at $97 cost = 5x ROI
   132→- ROI for client (optimistic): 8 extra jobs/month = $2,000+ revenue at $97 cost = 20x+ ROI
   133→
   134→### Files
   135→
   136→| File | Purpose |
   137→|---|---|
   138→| `mctb/MCTB_WORKFLOW.md` | Complete GHL workflow specification (step-by-step + edge cases) |
   139→| `mctb/sms_templates.md` | All 5 SMS templates (3 customer-facing + 2 internal alerts) |
   140→| `mctb_widget/README.md` | Module overview for sales and onboarding |
   141→| `mctb_widget/MCTB_SNAPSHOT_SPEC.md` | Full GHL asset build manual |
   142→| `mctb_widget/ghl_mctb_deploy.py` | Automated GHL asset deployment script |
   143→| `mctb_widget/WIDGET_DEPLOY_SPEC.md` | Telnyx talking widget deployment (this module includes the widget) |
   144→| `mctb_widget/PRICING_SHEET.md` | Full pricing, ROI case studies, upsell path |
   145→| `mctb_widget/widget_per_client_provisioning.md` | Per-client Telnyx AI Assistant provisioning |
   146→
   147→---
   148→
   149→## Module 3: Smart Widget (Booking + Chat + Call)
   150→
   151→### Folder: `widget/`
   152→
   153→### What It Does
   154→
   155→An embeddable three-tab widget that gives website visitors three ways to take action without leaving the page — book a job, have a live voice conversation with AIVA the AI receptionist, or click to call the business directly. Deploys as a single HTML file into any website with one paste.
   156→
   157→### Business Problem It Solves
   158→
   159→Most tradie websites are digital brochures. Visitors arrive, skim, and leave — with no way to easily engage. The average contact form converts less than 1% of visitors. The Smart Widget turns the website into an active lead machine: voice AI engages visitors immediately, the booking form captures intent in under 60 seconds, and the call button eliminates friction for anyone who wants to talk to a human.
   160→
   161→### The Three Tabs
   162→
   163→**Tab 1 — Book a Job:**
   164→- Minimal form: name, mobile, suburb, job type dropdown, optional message
   165→- On submit: fires GHL webhook (creates contact + opportunity) + opens GHL calendar in new tab
   166→- User sees success confirmation immediately
   167→- Entire form-to-GHL contact flow takes under 60 seconds
   168→
   169→**Tab 2 — Chat with Us (AIVA):**
   170→- Click one button: "Start Voice Call with AIVA"
   171→- Browser WebRTC voice call opens — no phone number required, no app
   172→- AIVA answers instantly, 24/7
   173→- Powered by the official Telnyx `<telnyx-ai-agent>` web component (no custom WebRTC code)
   174→- Each client gets their own dedicated Telnyx AI Assistant instance
   175→
   176→**Tab 3 — Call Now:**
   177→- Large phone number display, prominent click-to-call button
   178→- Opens native phone dialler on mobile
   179→- Shows client's trading hours
   180→- After-hours note: "Outside hours? Talk to AIVA 24/7 in the Chat tab"
   181→
   182→### Embed in Under 5 Minutes
   183→
   184→The widget is a single self-contained file. All configuration lives in one `RAD_CONFIG` block at the top. Change 8 values, paste one file.
   185→
   186→**Supported platforms:** GHL funnels, GHL websites, WordPress, 10Web, Shopify, Elementor, any HTML site.
   187→
   188→### Revenue Impact for Agency
   189→
   190→- Average deploy time: 5-15 minutes per client (fastest module)
   191→- Monthly revenue: $100/mo add-on | $197/mo standalone
   192→- Client ROI: Voice widget visitors convert at ~3x contact form rate; single extra booking/month covers cost
   193→- After-hours engagement is the primary win — AIVA books jobs while the tradie sleeps
   194→
   195→### Files
   196→
   197→| File | Purpose |
   198→|---|---|
   199→| `widget/tradie_widget.html` | Complete ready-to-deploy widget (self-contained HTML/CSS/JS) |
   200→| `widget/WIDGET_EMBED_GUIDE.md` | Full embed instructions for all platforms + colour theming + testing |
   201→
   202→---
   203→
   204→## The Product Stack — How Modules Combine
   205→
   206→These modules are designed to stack. Each adds MRR on top of the previous.
   207→
   208→### Full ReceptionistAI Suite (Max Revenue Path)
   209→
   210→```
   211→ReceptionistAI Website (core product)     $297/mo
   212→    +
   213→Review Generator (Reputation Rocket)      + $97/mo
   214→    +
   215→Lead Recovery Stack (MCTB + Widget)       + $147/mo
   216→    +
   217→AI Voice Receptionist (full call answer)  + $100/mo
   218→─────────────────────────────────────────────────
   219→TOTAL:                                    $641/mo per client
   220→Setup (one-time):                         $300
   221→```
   222→
   223→**12-month LTV per client:** $300 + ($641 × 12) = **$7,992**
   224→**50 clients at full suite:** $32,050/mo recurring = **$384,600/year**
   225→
   226→### Lead Recovery Stack (Most Common Upsell)
   227→
   228→```
   229→MCTB (Instant Responder)                  $100/mo
   230→    +
   231→Smart Widget (Booking + Chat + Call)      $100/mo
   232→─────────────────────────────────────────────────
   233→Bundle price:                             $147/mo (save $53/mo)
   234→```
   235→
   236→### Minimum Viable Stack (Entry Point)
   237→
   238→```
   239→MCTB only (fastest to deploy, fastest to value)   $97/mo
   240→```
   241→
   242→Deploy in 20 minutes. Client gets their first recovered lead within the first business day. This is the easiest door-opener for new clients.
   243→
   244→---
   245→
   246→## Agency Deployment Order (Recommended)
   247→
   248→1. **Sell MCTB first** — lowest price, fastest deploy, immediate visible value (missed call SMS fires within the first day)
   249→2. **Upsell Smart Widget** — pair with MCTB as Lead Recovery Stack bundle
   250→3. **Upsell Review Generator** — add once the client is happy and has seen first results (usually month 2-3)
   251→4. **Upsell full Voice Receptionist** — for high-volume clients who want every call answered by AIVA
   252→
   253→---
   254→
   255→## Technical Stack
   256→
   257→| Layer | Technology |
   258→|---|---|
   259→| CRM / Automation | GoHighLevel (GHL) — SaaS Mode sub-accounts |
   260→| SMS delivery | GHL LC Phone (Twilio-backed) or Twilio direct |
   261→| Voice AI | Telnyx AI Assistant (`<telnyx-ai-agent>` web component) |
   262→| Job management integration | n8n or Zapier → GHL webhook bridge |
   263→| Widget embed | Vanilla HTML/CSS/JS (no framework dependencies) |
   264→| Deployment scripts | Python (ghl_api_deploy.py, ghl_mctb_deploy.py) |
   265→| Storage | GHL sub-account custom fields and pipeline |
   266→
   267→---
   268→
   269→## Sales Objections and Responses
   270→
   271→### "I already call back missed calls"
   272→
   273→"Do you call back within 30 seconds, every time, including on Saturday afternoons and after 8pm? This does. And it fires before the caller has even had time to dial the next number."
   274→
   275→### "My clients will know it's automated"
   276→
   277→"The message is warm and personal. Most people don't care — they're relieved you responded. What they remember is that you got back to them fast. That's what wins the job."
   278→
   279→### "We already get plenty of reviews"
   280→
   281→"How many a month? And are they all five stars? The Review Generator filters negative feedback privately so it never hits Google, while sending happy customers straight to your review page. Most clients double their monthly review volume within 60 days."
   282→
   283→### "We have a contact form on our website"
   284→
   285→"Contact forms convert under 1% of visitors. The voice widget converts at 3x that rate because visitors get an immediate live response instead of a form submission into a void. It also works at 10pm when a homeowner's hot water stops working and your office is closed."
   286→
   287→### "That's too expensive"
   288→
   289→"MCTB is $97 a month. One extra plumbing job is $300-$500. If it converts a single job in its first month, it's paid for itself at 3-5x. We back it with a 30-day results guarantee."
   290→
   291→---
   292→
   293→## Support and Maintenance
   294→
   295→**Technical issues:** Refer to individual module documentation for troubleshooting tables.
   296→**GHL updates:** Monitor GHL changelog for workflow trigger and API changes. Modules use stable GHL features only.
   297→**Telnyx updates:** The official `<telnyx-ai-agent>` web component is maintained by Telnyx. Widget embeds reference the CDN version and auto-update.
   298→
   299→Contact: ops@sunaivadigital.com
   300→
   301→---
   302→
   303→*Master Overview: GHL_MODULES_OVERVIEW.md v1.0.0 | ReceptionistAI | Genesis Build | 2026-02-23*
   304→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>


     1→# Reputation Rocket — GHL Snapshot Specification
     2→## Build Manual for GHL Sub-Account Assets
     3→
     4→**Version**: 1.0.0
     5→**Use this document to**: Manually build or recreate all GHL assets before packaging as a snapshot, OR to verify a snapshot import was successful.
     6→
     7→---
     8→
     9→## Asset Inventory
    10→
    11→| Asset | Type | Count |
    12→|-------|------|-------|
    13→| Workflows | GHL Workflows | 3 |
    14→| Funnels | GHL Funnels | 1 |
    15→| Pipeline | GHL Pipeline | 1 (2 stages) |
    16→| Custom Fields | GHL Custom Fields | 4 |
    17→| SMS Templates | GHL Templates | 2 |
    18→
    19→---
    20→
    21→## Section 1 — Custom Fields
    22→
    23→Create all four fields before building workflows. Workflows reference these fields via merge tags.
    24→
    25→### Field 1: Google Review Link
    26→- **Field Name**: `google_review_link`
    27→- **Display Label**: Google Review Link
    28→- **Field Type**: Text (single line)
    29→- **Used in**: Workflow 2 (5-Star Filter), SMS Template 1
    30→
    31→### Field 2: Technician Name
    32→- **Field Name**: `technician_name`
    33→- **Display Label**: Technician Name
    34→- **Field Type**: Text (single line)
    35→- **Used in**: SMS Template 1, SMS Template 2
    36→
    37→### Field 3: Job Type
    38→- **Field Name**: `job_type`
    39→- **Display Label**: Job Type
    40→- **Field Type**: Text (single line)
    41→- **Used in**: Internal notification (Workflow 2, negative feedback branch)
    42→
    43→### Field 4: Review Rating
    44→- **Field Name**: `review_rating`
    45→- **Display Label**: Review Rating
    46→- **Field Type**: Numerical
    47→- **Used in**: Workflow 2 (condition branch: >= 4 vs < 4)
    48→
    49→---
    50→
    51→## Section 2 — Pipeline
    52→
    53→**Pipeline Name**: Reputation Tracker
    54→
    55→### Stage 1: Review Requested
    56→- **Stage Name**: Review Requested
    57→- **Colour**: Green (#22C55E)
    58→- **Position**: 1
    59→- **Description**: Contact has been sent the Google Review link. Awaiting Google posting.
    60→
    61→### Stage 2: Negative Feedback
    62→- **Stage Name**: Negative Feedback
    63→- **Colour**: Red (#EF4444)
    64→- **Position**: 2
    65→- **Description**: Contact submitted a rating of 1-3 stars. Owner has been notified. Do not send to Google.
    66→
    67→### Stage 3: Review Posted (optional — manual)
    68→- **Stage Name**: Review Posted
    69→- **Colour**: Blue (#3B82F6)
    70→- **Position**: 3
    71→- **Description**: Business owner manually moves contact here once Google review is confirmed posted.
    72→
    73→---
    74→
    75→## Section 3 — SMS Templates
    76→
    77→### Template 1: Initial Review Request
    78→
    79→**Template Name**: `RR - Review Request`
    80→
    81→**Message Body**:
    82→```
    83→Hi {{contact.first_name}}, it's {{custom_field.technician_name}} from {{contact.company_name}}. Thanks for having us today for your {{custom_field.job_type}}.
    84→
    85→We'd love to know how we did — it takes 10 seconds: {{rating_page_url}}
    86→
    87→Thanks, {{custom_field.technician_name}}
    88→```
    89→
    90→**Notes**:
    91→- Replace `{{rating_page_url}}` with the published GHL funnel URL after building the funnel in Section 4
    92→- `{{contact.company_name}}` should be set to the tradie business name — configure at the sub-account level as the default company name on all contacts, or use a dedicated custom field
    93→- Character count: ~250 characters (1.5 SMS segments). Keep within 2 segments total.
    94→
    95→### Template 2: 48-Hour Follow-Up Reminder
    96→
    97→**Template Name**: `RR - Review Follow-Up`
    98→
    99→**Message Body**:
   100→```
   101→Hi {{contact.first_name}}, just a quick note from {{contact.company_name}}.
   102→
   103→Your review means the world to us and helps other families find a tradesperson they can trust. If you have 30 seconds: {{custom_field.google_review_link}}
   104→
   105→Thank you sincerely.
   106→```
   107→
   108→**Notes**:
   109→- This template is only sent to contacts who clicked the 5-star/4-star path
   110→- Do not send this to contacts in the "Negative Feedback" pipeline stage
   111→- Tone: warm and genuine — avoid sounding automated
   112→
   113→---
   114→
   115→## Section 4 — Rating Landing Page Funnel
   116→
   117→**Funnel Name**: `Reputation Rocket — Rating Page`
   118→
   119→### Page Structure
   120→
   121→The funnel is a single page. No opt-in, no login. Load time must be under 2 seconds.
   122→
   123→**Page Name**: `Rate Your Experience`
   124→
   125→**URL Slug**: `rate-[business-name-slug]` (e.g., `rate-smith-plumbing`)
   126→
   127→### Page Elements (top to bottom)
   128→
   129→1. **Header Section**
   130→   - Business logo (image element, placeholder: 200x80px)
   131→   - Headline: `How did we do?`
   132→   - Sub-headline: `Your feedback means everything to us.`
   133→   - Font: Clean sans-serif (Inter or system default)
   134→   - Background: White
   135→
   136→2. **Technician Callout** (optional, enhances conversion)
   137→   - Text: `You were served by {{custom_field.technician_name}} today.`
   138→   - Style: Light grey box, centered, 14px
   139→
   140→3. **Star Rating Form**
   141→   - Form name: `review_rating_form`
   142→   - Single field: Star rating (1 to 5)
   143→   - Field maps to: `custom_field.review_rating`
   144→   - Display: Large emoji stars (use image buttons or CSS star rating)
   145→   - Stars 1-5 displayed horizontally, tappable on mobile
   146→   - Label below stars: `Tap to rate`
   147→   - Submit button: `Submit My Rating` (large, full-width on mobile)
   148→   - No other fields required
   149→
   150→4. **Footer**
   151→   - Text: `Your feedback is private and secure.`
   152→   - Font size: 12px, grey
   153→
   154→### Post-Submit Redirects
   155→
   156→Configure form submission redirects within the GHL form settings:
   157→
   158→| Condition | Redirect URL | Notes |
   159→|-----------|-------------|-------|
   160→| Rating field value = 5 | `{{custom_field.google_review_link}}` | Direct to Google |
   161→| Rating field value = 4 | `{{custom_field.google_review_link}}` | Direct to Google |
   162→| Rating field value = 3 | `/thank-you-feedback` (thank you page, no Google link) | Capture only |
   163→| Rating field value = 2 | `/thank-you-feedback` | Capture only |
   164→| Rating field value = 1 | `/thank-you-feedback` | Capture only |
   165→
   166→**Note**: GHL forms support conditional redirects via survey step logic. Configure each star value as a separate answer with its own next-step action.
   167→
   168→### Thank You Page (for 1-3 star ratings)
   169→
   170→**URL Slug**: `thank-you-feedback`
   171→
   172→**Content**:
   173→- Headline: `Thank you for your honesty.`
   174→- Body: `We genuinely appreciate you taking the time to share your experience. A member of our team will be in touch shortly.`
   175→- No Google Review link. No social sharing. No further CTAs.
   176→
   177→---
   178→
   179→## Section 5 — Workflow 1: Review Request Workflow
   180→
   181→**Workflow Name**: `RR - 01 - Review Request`
   182→
   183→**Status**: Active
   184→
   185→### Triggers
   186→
   187→Configure with TWO triggers (either can start the workflow):
   188→
   189→**Trigger A: Inbound Webhook**
   190→- Trigger type: Inbound Webhook
   191→- Webhook name: `review_trigger`
   192→- GHL generates a unique webhook URL — copy this URL and add to `trigger_webhook_spec.md` for the client
   193→- Map webhook payload fields:
   194→  - `contact_phone` → Contact phone number (used to find/create contact)
   195→  - `technician_name` → `custom_field.technician_name`
   196→  - `job_type` → `custom_field.job_type`
   197→  - `google_review_link` → `custom_field.google_review_link`
   198→  - `business_name` → Contact company name
   199→
   200→**Trigger B: Tag Added**
   201→- Trigger type: Contact Tag
   202→- Tag: `review-requested`
   203→- This allows manual triggering or triggering from other GHL workflows
   204→
   205→### Filters (duplicate protection)
   206→
   207→Add filter to both triggers:
   208→- Contact does NOT have tag: `review-completed`
   209→- Contact does NOT have tag: `review-in-progress`
   210→
   211→### Workflow Steps
   212→
   213→```
   214→Step 1: Add Tag
   215→  - Tag: review-in-progress
   216→  - Purpose: Prevents duplicate sends
   217→
   218→Step 2: Wait
   219→  - Duration: 2 hours
   220→  - Type: Fixed delay
   221→
   222→Step 3: Send SMS
   223→  - Template: RR - Review Request
   224→  - From: LC Phone (sub-account default)
   225→
   226→Step 4: Add Contact to Pipeline
   227→  - Pipeline: Reputation Tracker
   228→  - Stage: (none — will be moved by Workflow 2 upon form submission)
   229→
   230→Step 5: Wait for Event (optional — advanced)
   231→  - Wait for: Form Submission (review_rating_form)
   232→  - Timeout: 72 hours
   233→  - If form submitted: Exit this workflow (Workflow 2 takes over)
   234→  - If timeout: Exit workflow, tag stays as review-in-progress for reporting
   235→```
   236→
   237→**Note**: Step 5 requires GHL's "Wait for Event" action (available in paid workflow plans). If not available, omit — Workflow 2 is triggered independently by the form submission.
   238→
   239→---
   240→
   241→## Section 6 — Workflow 2: 5-Star Filter Workflow
   242→
   243→**Workflow Name**: `RR - 02 - 5-Star Filter`
   244→
   245→**Status**: Active
   246→
   247→### Trigger
   248→
   249→- Trigger type: Form Submission
   250→- Form: `review_rating_form`
   251→- Runs for: All contacts who submit the form
   252→
   253→### Workflow Steps
   254→
   255→```
   256→Step 1: Update Custom Field
   257→  - Field: review_rating
   258→  - Value: {{form.review_rating}} (map from form submission)
   259→
   260→Step 2: If/Else Branch — "Is it a positive rating?"
   261→  Condition: custom_field.review_rating >= 4
   262→
   263→  --- BRANCH: YES (4 or 5 stars) ---
   264→
   265→  Step 2a: Send SMS
   266→    - Template: Custom message (inline)
   267→    - Body: "Thank you so much, {{contact.first_name}}! We'd be incredibly grateful if you could share that on Google — it helps other families find us: {{custom_field.google_review_link}}"
   268→
   269→  Step 2b: Add to Pipeline
   270→    - Pipeline: Reputation Tracker
   271→    - Stage: Review Requested
   272→
   273→  Step 2c: Add Tag
   274→    - Tag: positive-feedback
   275→
   276→  Step 2d: Remove Tag
   277→    - Tag: review-in-progress
   278→
   279→  --- BRANCH: NO (1, 2, or 3 stars) ---
   280→
   281→  Step 2e: Send Internal Email Notification
   282→    - To: [owner email — configure per sub-account]
   283→    - Subject: "Negative feedback received — {{contact.first_name}} {{contact.last_name}}"
   284→    - Body:
   285→        "A customer submitted a rating of {{custom_field.review_rating}} stars.
   286→
   287→        Customer: {{contact.first_name}} {{contact.last_name}}
   288→        Phone: {{contact.phone}}
   289→        Job Type: {{custom_field.job_type}}
   290→        Technician: {{custom_field.technician_name}}
   291→
   292→        Do NOT send this customer to Google Reviews.
   293→
   294→        Recommend: Call the customer within 24 hours to resolve the issue.
   295→
   296→        View contact in GHL: [link]"
   297→
   298→  Step 2f: Add to Pipeline
   299→    - Pipeline: Reputation Tracker
   300→    - Stage: Negative Feedback
   301→
   302→  Step 2g: Add Tag
   303→    - Tag: negative-feedback
   304→
   305→  Step 2h: Remove Tag
   306→    - Tag: review-in-progress
   307→
   308→  Step 2i: Add Note to Contact
   309→    - Note: "Negative feedback received. Rating: {{custom_field.review_rating}}. Job: {{custom_field.job_type}}. Technician: {{custom_field.technician_name}}. Owner notified via email."
   310→```
   311→
   312→---
   313→
   314→## Section 7 — Workflow 3: Google Review Follow-Up
   315→
   316→**Workflow Name**: `RR - 03 - Google Review Follow-Up`
   317→
   318→**Status**: Active
   319→
   320→### Trigger
   321→
   322→- Trigger type: Contact Tag Added
   323→- Tag: `positive-feedback`
   324→
   325→### Filters
   326→
   327→- Contact does NOT have tag: `review-completed`
   328→
   329→### Workflow Steps
   330→
   331→```
   332→Step 1: Wait
   333→  - Duration: 48 hours
   334→  - Type: Fixed delay
   335→
   336→Step 2: If/Else Branch — "Has review been completed?"
   337→  Condition: Contact does NOT have tag "review-completed"
   338→
   339→  --- BRANCH: YES (tag not present — no review yet) ---
   340→
   341→  Step 2a: Send SMS
   342→    - Template: RR - Review Follow-Up
   343→
   344→  Step 2b: Add Tag
   345→    - Tag: follow-up-sent
   346→
   347→  --- BRANCH: NO (has review-completed tag — skip) ---
   348→
   349→  Step 2c: Exit Workflow
   350→    - (No action needed)
   351→```
   352→
   353→**Note on `review-completed` tag**: This tag must be added manually by the business owner or via a future webhook integration (e.g., Google Business Profile API when available). For now, the owner adds the tag manually when they see a new Google review posted.
   354→
   355→---
   356→
   357→## Section 8 — Snapshot Packaging Checklist
   358→
   359→Before packaging this snapshot for distribution:
   360→
   361→- [ ] All 4 custom fields created and named correctly
   362→- [ ] Pipeline "Reputation Tracker" created with 3 stages
   363→- [ ] SMS Template 1 (RR - Review Request) created
   364→- [ ] SMS Template 2 (RR - Review Follow-Up) created
   365→- [ ] Rating Landing Page funnel built and tested
   366→- [ ] Thank You Page (for negative ratings) built
   367→- [ ] Workflow 1 (Review Request) — both triggers active
   368→- [ ] Workflow 2 (5-Star Filter) — branch logic verified
   369→- [ ] Workflow 3 (Follow-Up) — 48h delay confirmed
   370→- [ ] All workflows set to DRAFT before snapshot export (activate after import)
   371→- [ ] Internal notification email address set to a placeholder (e.g., `owner@business.com`) — must be updated per client
   372→- [ ] Rating page URL placeholder set in SMS Template 1 — must be updated after funnel URL confirmed
   373→- [ ] Test end-to-end with real mobile number before distributing
   374→
   375→---
   376→
   377→## Known GHL Limitations
   378→
   379→| Limitation | Workaround |
   380→|-----------|-----------|
   381→| Workflows cannot be created via GHL API v2 | Must be built manually or imported via snapshot |
   382→| Conditional form redirects by value require Survey element | Use GHL Survey (not standard Form) for star rating to enable per-answer redirects |
   383→| No native Google Review detection | `review-completed` tag must be set manually or via Google Business Profile webhook (experimental) |
   384→| SMS personalization requires contact record to exist | Webhook trigger must create/update contact before workflow runs — handled in `ghl_api_deploy.py` |
   385→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>


     1→# MCTB Workflow — GHL Snapshot Specification
     2→## Missed Call Text Back | ReceptionistAI Add-On
     3→
     4→**Version:** 1.0.0
     5→**GHL Compatibility:** v2 API / SaaS Mode
     6→**Estimated Build Time:** 20 minutes manual | 5 minutes via deploy script
     7→
     8→---
     9→
    10→## Assets Required
    11→
    12→| Asset | Count | Type |
    13→|-------|-------|------|
    14→| Workflows | 1 | GHL Automation Workflow |
    15→| Pipeline | 1 | Opportunity Pipeline |
    16→| Pipeline Stages | 4 | Within Lead Recovery pipeline |
    17→| Custom Fields | 2 | Contact-level custom fields |
    18→| SMS Templates | 3 | Saved reply templates |
    19→| Tags | 2 | Contact tags |
    20→| Internal Notification | 1 | SMS to owner |
    21→
    22→---
    23→
    24→## Workflow 1: MCTB — Lead Recovery Sequence
    25→
    26→**Name:** `MCTB — Lead Recovery Sequence`
    27→**Status on Deploy:** Active
    28→**Execution Mode:** Single (contact executes workflow once at a time)
    29→**Re-entry:** Off (prevent duplicate sequences on same contact within 24 hours)
    30→
    31→---
    32→
    33→### Trigger
    34→
    35→**Type:** Missed Call
    36→**Source:** Inbound call only
    37→**Filter:** Any inbound call not answered by sub-account phone number
    38→**GHL Native Event:** `customer_replied` → filtered to missed call events
    39→
    40→> Note: In GHL, the Missed Call trigger is found under Workflow Triggers > Communication > Missed Call. This is a native GHL trigger — no webhook required.
    41→
    42→---
    43→
    44→### Branch 1: Main Sequence
    45→
    46→#### Step 1 — Wait
    47→- **Type:** Wait / Delay
    48→- **Duration:** 30 seconds
    49→- **Purpose:** Allow for instant call-backs before the SMS fires. Prevents sending SMS when the team calls back immediately.
    50→
    51→#### Step 2 — Condition: Duplicate Check
    52→- **Type:** If/Else Condition
    53→- **Condition:** Last Message Sent is NOT within the last 5 minutes
    54→- **Logic:** Check `last_outbound_message_time` on contact
    55→- **If TRUE (no recent message):** Continue to Step 3
    56→- **If FALSE (already messaged recently):** End workflow — skip SMS
    57→
    58→#### Step 3 — Send SMS #1 (Initial Response)
    59→- **Type:** Send SMS
    60→- **From:** Sub-account primary SMS number
    61→- **Message:**
    62→  ```
    63→  Hi {{contact.first_name}}, sorry we missed your call at {{business_name}}! We'll call you right back. Or reply here if you prefer a text. — {{team_name}}
    64→  ```
    65→- **Fallback for blank first name:** "Hi there" replaces "Hi {{contact.first_name}}"
    66→
    67→#### Step 4 — Create Opportunity
    68→- **Type:** Create Opportunity
    69→- **Pipeline:** Lead Recovery
    70→- **Stage:** Missed Call — Follow Up
    71→- **Opportunity Name:** `Missed Call — {{contact.full_name}} — {{date}}`
    72→- **Assigned To:** Sub-account owner (default)
    73→
    74→#### Step 5 — Add Tag
    75→- **Type:** Add Tag
    76→- **Tag:** `missed_call_triggered`
    77→
    78→#### Step 6 — Internal Notification to Owner
    79→- **Type:** Send SMS (internal) OR Send Email (per client preference)
    80→- **To:** `{{owner_phone}}` (custom field set at deploy)
    81→- **Message:**
    82→  ```
    83→  [MCTB Alert] Missed call from {{contact.full_name}} ({{contact.phone}}). SMS sent. Check Lead Recovery pipeline.
    84→  ```
    85→
    86→#### Step 7 — Wait (Follow-Up Timer)
    87→- **Type:** Wait / Delay
    88→- **Duration:** 4 hours
    89→
    90→#### Step 8 — Condition: Has Contact Replied?
    91→- **Type:** If/Else Condition
    92→- **Condition:** `last_inbound_message_time` is AFTER the time of Step 3 (SMS #1 sent)
    93→- **Logic:** Check if any reply received since initial SMS
    94→- **If TRUE (replied):** Jump to Branch 2 — Reply Received
    95→- **If FALSE (no reply):** Continue to Step 9
    96→
    97→#### Step 9 — Send SMS #2 (Follow-Up)
    98→- **Type:** Send SMS
    99→- **Message:**
   100→  ```
   101→  We still haven't been able to reach you. Is there a better time to call? Or tap here to book online: {{contact.booking_link}} — {{team_name}}
   102→  ```
   103→- **Note:** Uses `booking_link` custom field on contact (set at deploy)
   104→
   105→#### Step 10 — End Workflow
   106→
   107→---
   108→
   109→### Branch 2: Reply Received
   110→
   111→**Trigger for branch:** SMS reply received from contact after Step 3
   112→
   113→This branch fires when the contact sends any inbound SMS after the initial text.
   114→
   115→#### Step B1 — Remove from Follow-Up
   116→- **Type:** Remove from Workflow (remove from main sequence if still waiting at Step 7)
   117→- **Action:** Remove tag trigger for Step 9 firing
   118→
   119→#### Step B2 — Update Opportunity Stage
   120→- **Type:** Update Opportunity
   121→- **Pipeline:** Lead Recovery
   122→- **New Stage:** Engaged via SMS
   123→
   124→#### Step B3 — Add Tag
   125→- **Type:** Add Tag
   126→- **Tag:** `engaged_via_sms`
   127→
   128→#### Step B4 — Internal Notification (Reply Alert)
   129→- **Type:** Send SMS to owner
   130→- **Message:**
   131→  ```
   132→  [MCTB Reply] {{contact.full_name}} replied to your missed call SMS. Check the conversation now: {{ghl_conversation_link}}
   133→  ```
   134→
   135→#### Step B5 — End Branch
   136→
   137→---
   138→
   139→## Pipeline: Lead Recovery
   140→
   141→**Name:** Lead Recovery
   142→**Type:** Opportunity Pipeline
   143→**Visibility:** Sub-account level
   144→
   145→### Stages
   146→
   147→| Order | Stage Name | Description |
   148→|-------|-----------|-------------|
   149→| 1 | Missed Call — Follow Up | Contact missed call triggered, SMS sent, awaiting reply |
   150→| 2 | Engaged via SMS | Contact replied to SMS — active conversation |
   151→| 3 | Booked | Contact booked appointment or confirmed job |
   152→| 4 | Lost | No response after full sequence, no booking |
   153→
   154→### Stage Colours (GHL colour codes)
   155→
   156→| Stage | Colour |
   157→|-------|--------|
   158→| Missed Call — Follow Up | Orange (#f59e0b) |
   159→| Engaged via SMS | Blue (#3b82f6) |
   160→| Booked | Green (#10b981) |
   161→| Lost | Grey (#6b7280) |
   162→
   163→---
   164→
   165→## Custom Fields
   166→
   167→### Field 1: Booking Link
   168→
   169→| Property | Value |
   170→|----------|-------|
   171→| Name | `booking_link` |
   172→| Type | Text / URL |
   173→| Scope | Contact |
   174→| Description | Client's online booking page URL |
   175→| Example | `https://book.precisionplumbing.com.au` |
   176→| Used In | SMS #2 follow-up message |
   177→
   178→### Field 2: Preferred Callback Time
   179→
   180→| Property | Value |
   181→|----------|-------|
   182→| Name | `preferred_callback_time` |
   183→| Type | Text |
   184→| Scope | Contact |
   185→| Description | Time slot the contact prefers for a call back |
   186→| Example | `Weekday mornings`, `After 5pm` |
   187→| Used In | Manual reference by sales team |
   188→
   189→---
   190→
   191→## SMS Templates
   192→
   193→### Template 1 — Initial Response
   194→
   195→**Name:** MCTB — Initial Response
   196→**Trigger:** 30 seconds after missed call
   197→
   198→```
   199→Hi {{contact.first_name}}, sorry we missed your call at {{business_name}}!
   200→We'll call you right back. Or reply here if you prefer a text. — {{team_name}}
   201→```
   202→
   203→**Character count:** ~140 (1 SMS credit)
   204→
   205→---
   206→
   207→### Template 2 — Follow-Up
   208→
   209→**Name:** MCTB — Follow Up (4hr)
   210→**Trigger:** 4 hours after initial SMS, no reply received
   211→
   212→```
   213→We still haven't been able to reach you. Is there a better time to call?
   214→Or tap here to book online: {{contact.booking_link}} — {{team_name}}
   215→```
   216→
   217→**Character count:** ~160 (1–2 SMS credits depending on URL length)
   218→
   219→---
   220→
   221→### Template 3 — Booking Confirmation
   222→
   223→**Name:** MCTB — Booking Confirmation
   224→**Trigger:** Manual send or triggered by booking event
   225→
   226→```
   227→You're locked in! We'll see you on {{appointment.date}} at {{appointment.time}}.
   228→Any questions, just reply here. — {{business_name}}
   229→```
   230→
   231→**Character count:** ~130 (1 SMS credit)
   232→
   233→---
   234→
   235→## Tags Used
   236→
   237→| Tag | Applied When |
   238→|-----|-------------|
   239→| `missed_call_triggered` | Step 5 — after initial SMS sent |
   240→| `engaged_via_sms` | Branch 2, Step B3 — after reply received |
   241→
   242→---
   243→
   244→## Deployment Notes
   245→
   246→### Manual Deployment Checklist
   247→
   248→Before activating the workflow, confirm the following:
   249→
   250→- [ ] Sub-account has an active SMS number assigned
   251→- [ ] `business_name` custom value set in sub-account settings (Locations > Custom Values)
   252→- [ ] `team_name` custom value set in sub-account settings
   253→- [ ] `owner_phone` custom value set (or internal notification turned off)
   254→- [ ] `booking_link` added to relevant contacts OR set as a sub-account default custom value
   255→- [ ] Lead Recovery pipeline created with 4 stages
   256→- [ ] Workflow set to Active
   257→- [ ] Test with a real missed call (call the number, don't answer, wait 35 seconds)
   258→
   259→### Known Edge Cases
   260→
   261→| Scenario | Handling |
   262→|----------|---------|
   263→| Contact has no first name in GHL | GHL fallback: "Hi there" |
   264→| Contact is already in an active workflow | Re-entry disabled — no duplicate sequence |
   265→| Contact sends SMS before 30s wait completes | Condition check at Step 2 catches this |
   266→| Booking link field is empty | SMS #2 still sends but booking link placeholder shows blank — ensure field is populated at deploy |
   267→| Owner phone not set | Internal notification step will fail silently — workflow continues |
   268→
   269→---
   270→
   271→*Spec: MCTB_SNAPSHOT_SPEC.md v1.0.0 | ReceptionistAI | Genesis Build*
   272→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>


     1→# Analysis: Extendly Small Business Snapshot (Home Services Edition)
     2→
     3→**Status:** You have this snapshot. It is a massive accelerator.
     4→**Verdict:** **Do not rebuild the basics.** Use Extendly for the "plumbing" (reminders, reviews, nurturing) and layer ReceptionistAI on top as the "brain" (voice/conversation).
     5→
     6→---
     7→
     8→## 1. What It Includes (The "Box of Lego")
     9→*Based on the "Ultimate Small Business Snapshot" spec.*
    10→
    11→### 🛠 Core Automations (100+ Workflows)
    12→*These are pre-built. **Do not build them again.** Link our Agent to these.*
    13→*   **Missed Call Text Back:** (Basic version - replace/upgrade with our "George Protocol" logic).
    14→*   **Appointment Reminders:** (Confirmation + 24h before + 1h before).
    15→*   **Review Requests:** (Google Review link sending logic).
    16→*   **No-Show Nurture:** (If they miss an appointment, it chases them).
    17→*   **Database Reactivation:** (Pre-built "Long time no see" offers).
    18→*   **Holiday/Birthday Emails:** (Keep-warm sequences).
    19→
    20→### 📊 Pipelines & CRM
    21→*   **Pipelines:** "Leads", "Appointments", "Service Calls".
    22→*   **Custom Fields:** Industry-specific fields (likely has "Service Type", "Job Address").
    23→*   **Tags:** A tagging system for segmentation (e.g., `lead-new`, `customer-active`, `review-requested`).
    24→
    25→### 📢 Communication Assets
    26→*   **52-Week SMS Nurture:** A year's worth of "keeping in touch" texts.
    27→*   **Holiday Emails:** 36 pre-designed templates.
    28→*   **Funnels:** "Request a Quote", "Book Now" landing page templates.
    29→
    30→---
    31→
    32→## 2. Integration Strategy: ReceptionistAI + Extendly
    33→
    34→We treat Extendly as the **Operating System** and ReceptionistAI as the **Front-Line Staff**.
    35→
    36→| Feature | Who Handles It? | Why? |
    37→| :--- | :--- | :--- |
    38→| **Missed Call Initial Text** | **ReceptionistAI** | Our logic (Time of day + "George" personality) is smarter than the standard static text. |
    39→| **The Conversation** | **ReceptionistAI** | Extendly can't do Q&A. Our agent handles the back-and-forth qualification. |
    40→| **Appointment Booking** | **ReceptionistAI** | We qualify -> We book into the *Extendly Calendar*. |
    41→| **Reminders (Post-Booking)** | **Extendly** | Once booked, let the snapshot handle the standard "See you tomorrow" texts. |
    42→| **Review Requests** | **Extendly** | After the job is marked "Complete", trigger the snapshot's review flow. |
    43→| **Long-Term Nurture** | **Extendly** | If a lead doesn't convert today, tag them for the snapshot's 52-week nurture. |
    44→
    45→---
    46→
    47→## 3. Implementation Plan (Hybrid)
    48→
    49→1.  **Install Snapshot:** Load the Extendly snapshot into the client's sub-account.
    50→2.  **Disable Duplicate Logic:**
    51→    *   Turn OFF the snapshot's default "Missed Call Text Back" workflow (we replace it).
    52→    *   Keep the "Appointment Reminder" workflows ON.
    53→3.  **Connect the Pipes:**
    54→    *   **Success Trigger:** When ReceptionistAI successfully books an appointment, it should apply the tag `booked-appointment` (or whatever the snapshot uses) to trigger the confirmation sequence.
    55→    *   **Failure Trigger:** If ReceptionistAI can't convert, apply tag `nurture-long-term` to activate the 52-week SMS sequence.
    56→
    57→## 4. The Value Stack
    58→*How to pitch this to George:*
    59→
    60→> "George, we aren't just giving you a voice bot. We're giving you a **full business operating system**.
    61→> 1. **The AI** answers the phone and books the job.
    62→> 2. **The System** sends the reminders, chases the reviews, and texts your old clients every month to get you more work.
    63→> You get both."
    64→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>


     1→# GHL Workflow Specifications
     2→## ReceptionistAI / AgileAdapt — GoHighLevel Automation Layer
     3→
     4→**Location ID:** SWdaQpAVAtRigYcMfder
     5→**GHL Login:** kinan@agileadapt.com
     6→**GHL Sub-account:** Tradie Chatbots
     7→**Last Updated:** 2026-02-23
     8→**Authored By:** n8n-nervous-system-agent
     9→
    10→---
    11→
    12→## OVERVIEW
    13→
    14→GHL (GoHighLevel) is the CRM and pipeline backbone for ReceptionistAI. It handles:
    15→- Contact storage and tagging
    16→- Pipeline stage management
    17→- Automated SMS/email sequences (via GHL's built-in workflow engine)
    18→- Appointment booking integration
    19→- Two-way SMS conversations
    20→
    21→n8n is the ORCHESTRATOR that triggers GHL via API. GHL's native workflow engine handles the SEQUENCES after a contact enters a pipeline stage.
    22→
    23→**Architecture:**
    24→```
    25→External Event (Telnyx/Stripe/Cal.com)
    26→    → n8n (receives webhook, routes, enriches)
    27→    → GHL API (creates contact, moves pipeline stage)
    28→    → GHL Native Workflow (executes nurture sequence)
    29→```
    30→
    31→---
    32→
    33→## WORKFLOW 1: New Lead → Assign → Nurture
    34→
    35→**Trigger:** Contact created (via n8n API call OR GHL webhook)
    36→**Pipeline:** ReceptionistAI Sales Pipeline
    37→**Entry Stage:** New Lead
    38→
    39→### Sequence:
    40→```
    41→Contact Created (tagged: voice-widget-lead OR web-form-lead)
    42→    ↓
    43→[Immediate] Assign to Owner: Kinan
    44→    ↓
    45→[Immediate] Internal Notification: SMS to Kinan's phone: "New lead: {contact_name} — {service_interest}"
    46→    ↓
    47→[Immediate] SMS to Lead: "Hi {firstName}! Thanks for your interest. We'll be in touch shortly. — ReceptionistAI"
    48→    ↓
    49→[If: source = voice-widget-lead]
    50→    → Add tag: "voice-qualified"
    51→    → Move pipeline to: "Voice Engaged"
    52→[If: source = web-form-lead]
    53→    → Add tag: "web-lead"
    54→    → Stay in "New Lead" stage
    55→    ↓
    56→[T+1h] Check: Has lead replied to SMS?
    57→    [If YES] → Move to "Replied" stage → Notify Kinan
    58→    [If NO] → Continue nurture sequence (n8n handles via lead_nurture_mctb workflow)
    59→```
    60→
    61→### GHL Config Required:
    62→- Pipeline: "ReceptionistAI Sales Pipeline"
    63→- Stages: New Lead → Voice Engaged → Replied → Demo Booked → Proposal Sent → Won → Lost
    64→- SMS template: "Hi {firstName}! Thanks for your interest in AI receptionists. We'll be in touch. — ReceptionistAI"
    65→- Kinan phone number for internal alerts
    66→- Owner assignment: Kinan
    67→
    68→---
    69→
    70→## WORKFLOW 2: Call Booked → Reminder Sequence
    71→
    72→**Trigger:** GHL opportunity moves to "Demo Booked" stage
    73→**Or Trigger:** Cal.com webhook → n8n → GHL pipeline update
    74→
    75→### Sequence:
    76→```
    77→Demo Booked (Cal.com appointment confirmed)
    78→    ↓
    79→[Immediate] SMS Confirmation:
    80→    "Hi {firstName}! Your ReceptionistAI demo is confirmed for {appointmentDate} at {appointmentTime}.
    81→     Join here: {appointmentLink} — Kinan"
    82→    ↓
    83→[Immediate] Email Confirmation with calendar invite (ICS attachment)
    84→    ↓
    85→[T-24h before appointment] SMS Reminder:
    86→    "Reminder: Your ReceptionistAI demo is tomorrow at {appointmentTime}.
    87→     Link: {appointmentLink} — See you then!"
    88→    ↓
    89→[T-1h before appointment] SMS Reminder:
    90→    "See you in 1 hour, {firstName}! Your demo link: {appointmentLink}"
    91→    ↓
    92→[T+30min after appointment time] Check: Was appointment completed?
    93→    [If pipeline moved to "Demo Done"] → Stop sequence
    94→    [If still "Demo Booked"] → Flag as No-Show → Trigger No-Show Re-engagement
    95→```
    96→
    97→### GHL Config Required:
    98→- Custom field: "Appointment Date"
    99→- Custom field: "Appointment Time"
   100→- Custom field: "Appointment Link" (Cal.com booking URL)
   101→- SMS templates as above
   102→- Wait conditions on pipeline stage changes
   103→- Cal.com webhook → n8n → GHL API to set appointment fields
   104→
   105→---
   106→
   107→## WORKFLOW 3: Job Complete → Review Request
   108→
   109→**Trigger:** Opportunity moves to "Job Complete" stage
   110→**Note:** This triggers n8n's `review_request.json` workflow, which handles timing.
   111→
   112→### GHL Role in this workflow:
   113→```
   114→GHL sends webhook to n8n: /webhook/ghl-pipeline (on stage change)
   115→    ↓
   116→n8n handles:
   117→    - Wait 2 hours
   118→    - Send review request SMS via Telnyx
   119→    - Wait 48 hours
   120→    - Send follow-up email if no click
   121→    - Log to PostgreSQL
   122→    ↓
   123→GHL receives update via API:
   124→    - Add tag: "review-requested"
   125→    - Log note to contact: "Review request sent {timestamp}"
   126→```
   127→
   128→### GHL Config Required:
   129→- Webhook: Configure on "Job Complete" stage change → POST to `https://n8n-genesis-u50607.vm.elestio.app/webhook/ghl-pipeline`
   130→- Webhook payload: `{"contact_id": "{{contact.id}}", "pipeline_stage_name": "Job Complete", "opportunity_id": "{{opportunity.id}}", "phone": "{{contact.phone}}", "email": "{{contact.email}}", "contact_name": "{{contact.name}}"}`
   131→- Custom field: "Review Requested At"
   132→- Tag: "review-requested"
   133→
   134→---
   135→
   136→## WORKFLOW 4: No-Show → Re-engagement
   137→
   138→**Trigger:** Appointment flagged as No-Show (T+30min after appointment, stage still "Demo Booked")
   139→
   140→### Sequence:
   141→```
   142→No-Show Detected
   143→    ↓
   144→[Immediate] Move stage to: "No-Show"
   145→    ↓
   146→[Immediate] Internal Notification to Kinan:
   147→    "No-show: {contact_name} ({phone}) missed their {appointmentTime} demo"
   148→    ↓
   149→[T+2h] SMS Re-engagement:
   150→    "Hey {firstName}, we missed you earlier! Life gets busy — happy to reschedule.
   151→     Pick a new time here: {bookingLink} — Kinan, ReceptionistAI"
   152→    ↓
   153→[T+24h, if no rebook] Email Re-engagement:
   154→    Subject: "Let's find a better time"
   155→    Body: Short, human email from Kinan offering to reschedule.
   156→    ↓
   157→[T+72h, if still no rebook] Final SMS:
   158→    "Hi {firstName}, last reach-out — whenever you're ready to chat about AI receptionists,
   159→     we're here: {bookingLink} — ReceptionistAI"
   160→    ↓
   161→[T+7d, if no action] Move stage to: "Cold — No Response"
   162→    → Add tag: "no-show-cold"
   163→    → Remove from active sequences
   164→```
   165→
   166→### GHL Config Required:
   167→- Stage: "No-Show" (add to pipeline)
   168→- Stage: "Cold — No Response" (add to pipeline)
   169→- Conditional logic: Check stage at T+30min post-appointment
   170→- SMS templates as above
   171→- Booking link variable: Cal.com booking link
   172→
   173→---
   174→
   175→## PIPELINE STRUCTURE: ReceptionistAI Sales Pipeline
   176→
   177→```
   178→New Lead
   179→    ↓
   180→Voice Engaged (had conversation with AI widget)
   181→    ↓
   182→Replied (responded to our SMS/email)
   183→    ↓
   184→Demo Booked (Cal.com appointment confirmed)
   185→    ↓
   186→No-Show [branch] ← (if missed appointment)
   187→    ↓
   188→Demo Done
   189→    ↓
   190→Proposal Sent
   191→    ↓
   192→[WON] Customer ← or → [LOST] Not Interested
   193→```
   194→
   195→**Additional Pipeline: Delivery**
   196→```
   197→Customer Onboarding
   198→    ↓
   199→Telnyx Setup
   200→    ↓
   201→GHL Sub-account Created
   202→    ↓
   203→Live (Active Customer)
   204→    ↓
   205→Job Complete → [Review Request Sequence]
   206→    ↓
   207→Retained (Ongoing)
   208→```
   209→
   210→---
   211→
   212→## GHL CUSTOM FIELDS REQUIRED
   213→
   214→| Field Name | Type | Purpose |
   215→|-----------|------|---------|
   216→| service_interest | Text | What trade/service the lead is enquiring about |
   217→| preferred_callback_time | Text | When they want to be called back |
   218→| call_id | Text | Telnyx call ID for the originating call |
   219→| voice_widget_session | Text | Telnyx AI session ID |
   220→| appointment_date | Date | Cal.com booking date |
   221→| appointment_time | Text | Cal.com booking time |
   222→| appointment_link | URL | Cal.com booking URL |
   223→| google_review_link | URL | Their Google business review link |
   224→| telnyx_phone_number | Phone | Assigned Telnyx number for their business |
   225→| onboarding_status | Dropdown | pending/in-progress/complete |
   226→| monthly_plan | Dropdown | starter/professional/enterprise |
   227→| stripe_customer_id | Text | Stripe customer ID for billing |
   228→
   229→---
   230→
   231→## GHL WEBHOOK CONFIGURATION
   232→
   233→Configure these webhooks in GHL Settings → Integrations → Webhooks:
   234→
   235→| Event | n8n URL | Purpose |
   236→|-------|---------|---------|
   237→| Contact Created | `https://n8n-genesis-u50607.vm.elestio.app/webhook/ghl-contact-created` | Trigger classification + nurture |
   238→| Opportunity Stage Changed | `https://n8n-genesis-u50607.vm.elestio.app/webhook/ghl-pipeline` | Review requests, no-show handling |
   239→| Appointment Status Changed | `https://n8n-genesis-u50607.vm.elestio.app/webhook/ghl-appointment` | Demo completion, no-show detection |
   240→| Inbound SMS Reply | `https://n8n-genesis-u50607.vm.elestio.app/webhook/ghl-sms-reply` | Route replies to Kinan or AI |
   241→
   242→---
   243→
   244→## GHL SMS TEMPLATES
   245→
   246→### Welcome SMS (voice widget lead):
   247→```
   248→Hi {firstName}! Thanks for calling. We've got your details and will be
   249→in touch about your {serviceInterest} enquiry. — ReceptionistAI
   250→```
   251→
   252→### Demo Confirmation:
   253→```
   254→Hi {firstName}! Your ReceptionistAI demo is confirmed for {date} at {time}.
   255→Join: {link} — Kinan
   256→```
   257→
   258→### No-Show Re-engagement:
   259→```
   260→Hey {firstName}, we missed you! Happy to reschedule: {bookingLink} — Kinan, ReceptionistAI
   261→```
   262→
   263→### Review Request:
   264→```
   265→Hi {firstName}! Thanks for choosing us. Mind leaving a quick Google review?
   266→Takes 60 seconds: {reviewLink} — ReceptionistAI
   267→```
   268→
   269→### Final Nurture SMS:
   270→```
   271→Hi {firstName}, last message from us — whenever you're ready to stop missing
   272→calls, we're here: {bookingLink} Reply STOP to opt out. — ReceptionistAI
   273→```
   274→
   275→---
   276→
   277→## IMPLEMENTATION PRIORITY
   278→
   279→| Priority | Workflow | Effort | Revenue Impact |
   280→|---------|----------|--------|---------------|
   281→| P0 | New Lead → Assign → Nurture | 1h | Direct — every lead |
   282→| P0 | GHL Webhooks configured | 30min | Enables everything |
   283→| P1 | Call Booked → Reminder | 2h | Reduces no-shows |
   284→| P1 | No-Show → Re-engagement | 2h | Recovers lost demos |
   285→| P2 | Job Complete → Review | 1h | Social proof pipeline |
   286→| P2 | Pipeline structure created | 30min | CRM foundation |
   287→| P3 | Custom fields configured | 30min | Data quality |
   288→
   289→**Total estimated setup time: 7-8 hours**
   290→**ROI: First recaptured no-show pays for setup**
   291→
   292→---
   293→
   294→## CREDENTIALS NEEDED IN GHL
   295→
   296→1. Telnyx phone number assigned to ReceptionistAI (for SMS sends)
   297→2. Cal.com booking link (for demo booking)
   298→3. Google Review link (for review requests)
   299→4. Kinan's phone number (for internal alerts)
   300→5. n8n webhook URLs (as above — configure in GHL Webhooks settings)
   301→
   302→---
   303→
   304→*Authored: 2026-02-23*
   305→*Authority: Genesis n8n Nervous System Agent*
   306→*Related Files: `E:\genesis-system\n8n\workflows\` (all workflow JSONs)*
   307→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>


Now let me read the website factory and website generator files to understand the templating capabilities.


     1→#!/usr/bin/env node
     2→
     3→/**
     4→ * Genesis Website Generation Factory - CLI Orchestrator
     5→ * Usage: node site_factory.js --test
     6→ */
     7→
     8→const { execSync } = require('child_process');
     9→const fs = require('fs');
    10→const path = require('path');
    11→
    12→// --- Configuration ---
    13→const FACTORY_DIR = path.resolve(__dirname);
    14→const OUTPUT_DIR = path.join(FACTORY_DIR, 'output');
    15→const DEFAULT_AGENT_UUID = 'assistant-9c42d3ce-e05a-4e34-8083-c91081917637'; // AgileAdapt Demo Voice Widget
    16→
    17→// Master prompt template location
    18→const PROMPT_TEMPLATE_PATH = path.resolve('E:/genesis-system/.gemini/knowledge/WEBSITE_GENERATOR_PROMPT.md');
    19→
    20→// Utility to run shell commands safely
    21→const runCommand = (cmd, cwd = process.cwd()) => {
    22→  console.log(`\n> Executing: ${cmd}`);
    23→  try {
    24→    execSync(cmd, { stdio: 'inherit', cwd });
    25→  } catch (error) {
    26→    console.error(`\x1b[31m[ERROR] Command failed: ${cmd}\x1b[0m`);
    27→    process.exit(1);
    28→  }
    29→};
    30→
    31→async function main() {
    32→  console.log(`\x1b[36m====================================================`);
    33→  console.log(`🚀 GENESIS INSTANT WEBSITE FACTORY - INITIALIZING...`);
    34→  console.log(`====================================================\x1b[0m\n`);
    35→
    36→  // Parse arguments or use mock data for testing
    37→  const isTest = process.argv.includes('--test');
    38→
    39→  const ctx = {
    40→    businessName: "Genesis Demo Site",
    41→    valueProps: ["Zero Latency", "Pixel Perfect", "Native Voice AI"],
    42→    aesthetic: "cyberpunk glassmorphism",
    43→    brandColors: "neon cyan and deep obsidian",
    44→    telnyxAgentUuid: DEFAULT_AGENT_UUID
    45→  };
    46→
    47→  if (isTest) {
    48→    ctx.businessName = "Apex Electrical";
    49→    ctx.valueProps = ["24/7 Emergency Response", "Licensed & Insured", "Free Quotes in 60s"];
    50→    ctx.aesthetic = "brutalist luxury, high-contrast, industrial";
    51→    ctx.brandColors = "matte black and safety gold";
    52→  }
    53→
    54→  const slug = ctx.businessName.toLowerCase().replace(/[^a-z0-9]+/g, '-');
    55→  const projectPath = path.join(OUTPUT_DIR, slug);
    56→
    57→  console.log(`[1/5] Gathering Customer Intake Specifications...`);
    58→  console.dir(ctx, { colors: true });
    59→
    60→  console.log(`\n[2/5] Scaffolding Project Environment...`);
    61→  if (!fs.existsSync(OUTPUT_DIR)) {
    62→      fs.mkdirSync(OUTPUT_DIR, { recursive: true });
    63→  }
    64→
    65→  // Clean up if exists
    66→  if (fs.existsSync(projectPath)) {
    67→    console.log(`Cleaning up existing project at ${projectPath}...`);
    68→    fs.rmSync(projectPath, { recursive: true, force: true });
    69→  }
    70→
    71→  // Create Vite React project
    72→  runCommand(`npx -y create-vite@latest ${slug} --template react`, OUTPUT_DIR);
    73→
    74→  console.log(`\n[3/5] Hydrating Generator Prompt & Injecting Directives...`);
    75→
    76→  // Create .env file for the widget config
    77→  const envContent = `VITE_TELNYX_AGENT_UUID=${ctx.telnyxAgentUuid}\n`;
    78→  fs.writeFileSync(path.join(projectPath, '.env'), envContent);
    79→
    80→  // Hydrate Prompt
    81→  let promptTemplate = fs.existsSync(PROMPT_TEMPLATE_PATH)
    82→    ? fs.readFileSync(PROMPT_TEMPLATE_PATH, 'utf-8')
    83→    : "Error: Prompt template missing at " + PROMPT_TEMPLATE_PATH;
    84→
    85→  promptTemplate = promptTemplate
    86→    .replace('{BUSINESS_NAME}', ctx.businessName)
    87→    .replace('{VALUE_PROPS}', ctx.valueProps.join(', '))
    88→    .replace('{AESTHETIC_DIRECTION}', ctx.aesthetic)
    89→    .replace('{BRAND_COLORS}', ctx.brandColors)
    90→    .replace('{TELNYX_AGENT_UUID}', ctx.telnyxAgentUuid);
    91→
    92→  const instructionsPath = path.join(projectPath, 'GENERATION_INSTRUCTIONS.md');
    93→  fs.writeFileSync(instructionsPath, promptTemplate);
    94→
    95→  console.log(`\x1b[32m[SUCCESS] Generation instructions saved to ${instructionsPath}\x1b[0m`);
    96→
    97→  console.log(`\n[4/5] Installing Dependencies in Target Directory...`);
    98→  runCommand(`npm install tailwindcss postcss autoprefixer framer-motion lucide-react @telnyx/ai-agent-widget`, projectPath);
    99→  runCommand(`npx tailwindcss init -p`, projectPath);
   100→
   101→  // Also modify package.json to append tailwind setup to dev script, just to be safe.
   102→  try {
   103→      const pkgPath = path.join(projectPath, 'package.json');
   104→      let pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
   105→      pkg.name = slug;
   106→      fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
   107→  } catch (err) {
   108→      console.warn("Could not update package.json name:", err);
   109→  }
   110→
   111→  console.log(`\n[5/5] Pipeline Ready.`);
   112→  console.log(`To execute creative generation, pass the GENERATION_INSTRUCTIONS.md to Genesis.`);
   113→  console.log(`\n\x1b[36mTo manually preview the scaffold:\x1b[0m`);
   114→  console.log(`cd output/${slug} && npm run dev\n`);
   115→}
   116→
   117→main().catch(console.error);
   118→

<system-reminder>
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
</system-reminder>