Appearance
Integration Mapping
Every integration should be owned by exactly one primary agent. Secondary agents may have read access where necessary. No agent should hold credentials it doesn't use.
Master Mapping Table
| Integration | Primary Owner | Secondary Access | Rationale |
|---|---|---|---|
| PostHog | Data Agent | Funnel Agent (read, CVR only) | Core analytics. Data Agent is the source of truth for all metrics. |
| Braze | Prospect Agent | Creative Agent (read, copy reference) | Email/SMS domain. Prospect Agent manages all flows. |
| Looker | Data Agent | — | BI dashboards are pure data domain. |
| Meta Ads | Media Buying Agent | Creative Agent (read, performance data) | Campaign management = media buying. Creative needs performance data to optimize concepts. |
| GitHub | Funnel Agent | — | Code changes = funnel changes. Monitoring belongs with the agent that acts on the data. |
| Sanity CMS | Funnel Agent | — | Funnel content management. Funnel Agent proposes edits; humans approve. |
| Zendesk | Prospect Agent | — | Customer support context informs prospect nurturing. |
| Higgsfield | Creative Agent | — | AI video generation is a creative output tool. |
| Shotstack | Creative Agent | — | Video compositing is a creative output tool. |
| Google Gmail (work) | Master Agent | Prospect Agent | John's work email is orchestration-level context. Prospect agent can see customer-related threads. |
| Google Gmail (personal) | Master Agent | — | Personal email stays at orchestrator level only. |
| Google Calendar | Master Agent | Prospect Agent | Scheduling is orchestration. Prospect agent checks upcoming meetings for context. |
| NorthBeam | Data Agent | Media Buying Agent | Attribution data primarily for reporting. Media Buying needs it for campaign decisions. |
| TikTok Ads | Media Buying Agent | — | Same domain as Meta Ads. |
| Slack | Master Agent | All agents (send-only) | Slack is the communication layer. All agents can send to Slack but routing goes through master. |
Why These Assignments
PostHog → Data Agent (primary)
PostHog is primarily used for funnel CVR reporting and event analysis. This is data/reporting work. The Data Agent runs the 3×/day CVR check. Funnel Agent gets read access because it needs CVR context to understand impact of funnel changes.
Braze → Prospect Agent
Braze owns the post-quiz communication pipeline. The 25% purchaser gap, dead canvases, and SMS coverage issues are all Prospect Agent problems. Creative Agent needs read access to ensure emails/SMS copy stays consistent with creative direction.
GitHub → Funnel Agent
Code changes in funnel, funnel-cms, landing-pages, and checkout directly affect funnel conversion rates. The Funnel Agent is the one watching CVR — it should also watch for code changes that explain CVR shifts. No other agent cares about these repos.
Sanity CMS → Funnel Agent
Sanity CMS is where funnel copy, quiz questions, and interstitials live. The Funnel Agent proposes and drafts changes; humans approve via the existing review workflow.
Meta Ads → Media Buying Agent
Campaign management (launch, scale, kill) is a dedicated function. Creative Agent can read Meta performance data to understand which creative concepts perform — but it doesn't manage campaigns.
Higgsfield + Shotstack → Creative Agent
Both tools are purely for generating and assembling ad creative. No other agent needs these.
Google Calendar/Gmail → Master Agent
John's schedule and email are high-level orchestration context. The Master Agent should be the one monitoring for important emails and upcoming meetings. Prospect Agent gets access to work Gmail specifically for customer-related email threads.
Credential Segregation Plan
Current state: all credentials in one .env.credentials file accessible to all sessions.
Target state: each agent has its own .env with only the credentials it needs.
| Agent | Credentials |
|---|---|
| Master | SLACK_*, GOOGLE_*, OPENCLAW_* |
| Data | POSTHOG_PERSONAL_API_KEY, LOOKER_CLIENT_*, NORTHBEAM_API_KEY |
| Creative | HIGGSFIELD_*, SHOTSTACK_*, META_ACCESS_TOKEN (read), BRAZE_API_KEY (read) |
| Media Buying | META_ACCESS_TOKEN, TIKTOK_*, NORTHBEAM_API_KEY |
| Funnel | GITHUB_PAT_TAGIATELLE, SANITY_EDITOR_TOKEN, POSTHOG_PERSONAL_API_KEY (read) |
| Prospect | BRAZE_API_KEY, ZENDESK_TOKEN, GOOGLE_WORK_* |
Channels and Routing
Currently: all Slack messages go to Sam. In the decomposed setup:
| Who contacts | Routes to |
|---|---|
| John (DM) | Master Agent |
| sam-chat channel | Master Agent (fan-out to relevant specialists) |
| funnel-squad | Funnel Agent |
| c-suite | Master Agent |
The Master Agent receives the message and either handles it directly or dispatches to the appropriate specialist.
See also: Proposed Agents | Migration Plan