Day-0 → Day-30 operator setup. Each step is checked against live backend state.
Each brand is one workspaces row keyed on a kebab-case slug. The slug becomes the site_origin parameter on the brand-site bridge calls.
INSERT INTO workspaces (id, name, slug, is_active) VALUES (gen_random_uuid(), 'Hohmann Advisory', 'hohmann-advisory', TRUE);
Per-brand Private App token + webhook secret. Encrypted at rest. Required for the bidirectional CRM bridge.
Open Connect HubSpot dialog →Per-brand Resend Free account. Powers the Sequence executor + cost guard. Webhook secret enables engagement events feeding self-learning signals.
Open Connect Resend dialog →Service Account JSON + GA4 property id. Cron pulls KPIs every 6h.
INSERT INTO integrations (
id, workspace_id, platform, status, display_name, account_id,
config, created_at, updated_at
) VALUES (
gen_random_uuid(),
(SELECT id FROM workspaces WHERE slug = 'hohmann-advisory'),
'google_analytics', 'connected', 'Hohmann GA4', '<property id>',
jsonb_build_object(
'property_id', '<property id>',
'service_account_json', '<paste JSON>'
),
now(), now()
);Open System → Integrations →Three tier-keyed sequences (early / developing / mature) created in DRAFT. Operator edits copy, then flips to ACTIVE.
python scripts/seed_brand_sequences.py --slug hohmann-advisory
After GA4 is connected, the next 6h cron writes one row to analytics_summary_daily.
After ~14 days of GA4 data + ≥30 sends per email step, the analytics_insights worker (daily 08:00) starts emitting reflections.
docs/integrations/analytics-pipeline.md — full operator runbookdocs/integrations/hubspot-bridge.md — Phase 1 + 2 architecturedocs/integrations/email-infrastructure.md — Resend free-tier strategy