← Back to Command Center
Email Workflow — Command Center
flowchart TD
%% ── Styles ──
classDef sterling fill:#7c3aed,color:#fff,stroke:#5b21b6,stroke-width:2px
classDef brad fill:#3b82f6,color:#fff,stroke:#2563eb,stroke-width:2px
classDef classify fill:#f97316,color:#fff,stroke:#ea580c,stroke-width:2px
classDef complete fill:#22c55e,color:#fff,stroke:#16a34a,stroke-width:2px
classDef bill fill:#ef4444,color:#fff,stroke:#dc2626,stroke-width:2px
%% ════════════════════════════════════════════
%% INTAKE
%% ════════════════════════════════════════════
subgraph INTAKE["📥 Email Intake — Sterling"]
direction TB
A1["Scan Gmail every 30 min\n(OA + Personal accounts)"]:::sterling
A2["On-demand scan\n(Brad taps Refresh)"]:::brad
A1 --> CL
A2 --> CL
CL{"Classify each email"}:::sterling
end
%% ════════════════════════════════════════════
%% CLASSIFICATION
%% ════════════════════════════════════════════
subgraph CLASS["🏷️ Classification"]
direction TB
C1["Needs Response\n(questions, follow-ups,\ndirect requests)"]:::classify
C2["Introduction\n(warm intros, cold intros,\nreferrals)"]:::classify
C3["Meeting Follow-up\n(triggered by Plaud\nsummary arriving)"]:::classify
C4["Client Update\n(matched to HubSpot)"]:::classify
C5["Partnership\n(biz dev, speaking, collab)"]:::classify
C6["Invoice / Bill"]:::bill
C7["Newsletter"]:::classify
C8["Notification"]:::classify
C9["EO / YPO"]:::classify
end
CL --> C1
CL --> C2
CL --> C3
CL --> C4
CL --> C5
CL --> C6
CL --> C7
CL --> C8
CL --> C9
%% ════════════════════════════════════════════
%% BRAD'S PROCESSING
%% ════════════════════════════════════════════
subgraph BRAD["👤 Brad's Processing — Command Center Email Tab"]
direction TB
B1["Open Email tab\nItems sorted into sections"]:::brad
subgraph NEEDS["Needs Your Eye"]
direction TB
N1["Tap card to expand"]:::brad
N2{"Select template"}:::brad
N3["As Brad"]:::brad
N4["As Jenna"]:::brad
N5["Jenna Intro + Calendly"]:::brad
N6["Jenna → Summer"]:::brad
N7["Jenna Hybrid"]:::brad
N8["Meeting Follow-up"]:::brad
N9["Custom"]:::brad
N10["Review / edit draft"]:::brad
N11["Tap Send"]:::brad
N1 --> N2
N2 --> N3
N2 --> N4
N2 --> N5
N2 --> N6
N2 --> N7
N2 --> N8
N2 --> N9
N3 --> N10
N4 --> N10
N5 --> N10
N6 --> N10
N7 --> N10
N8 --> N10
N9 --> N10
N10 --> N11
end
subgraph BILLS["Bills"]
direction LR
BL1["Tap Handled"]:::complete
BL2["Tap Flag"]:::bill
end
subgraph NEWS["Newsletters"]
direction LR
NW1["Check to Unsubscribe"]:::bill
NW2["Keep + Label"]:::complete
end
subgraph NOTIF["Notifications"]
direction LR
NT1["Auto-filtered\nDismiss if needed"]:::complete
end
end
C1 --> B1
C2 --> B1
C4 --> B1
C5 --> B1
C9 --> B1
C6 --> BILLS
C7 --> NEWS
C8 --> NOTIF
B1 --> NEEDS
%% ════════════════════════════════════════════
%% STERLING EXECUTION
%% ════════════════════════════════════════════
subgraph EXEC["⚡ Sterling Execution"]
direction TB
E1["Poll action queue\nevery 30-60 seconds"]:::sterling
E2{"Action type?"}:::sterling
E3["Send reply via Gmail API\nwith correct signature"]:::sterling
E4["Process List-Unsubscribe"]:::sterling
E5["Update status in D1"]:::sterling
E6["UI reflects completion"]:::complete
E1 --> E2
E2 -->|"send_reply"| E3
E2 -->|"unsubscribe"| E4
E3 --> E5
E4 --> E5
E5 --> E6
end
N11 --> E1
BL1 --> E5
NW1 --> E4
%% ════════════════════════════════════════════
%% MEETING FOLLOW-UP SPECIAL FLOW
%% ════════════════════════════════════════════
subgraph MEETING["🎙️ Meeting Follow-up Flow"]
direction TB
M1["Brad has a Zoom call"]:::brad
M2["Plaud records it"]:::sterling
M3["Plaud summary hits\nBrad's email (5-10 min)"]:::classify
M4["Sterling detects\nPlaud summary"]:::sterling
M5["Fetch full transcript\nvia Plaud API"]:::sterling
M6["Draft follow-up email\nwith all action items\nBrad promised"]:::sterling
M7["Appears in\nMeeting Follow-ups\nsection"]:::brad
M8["Brad reviews\nand approves"]:::brad
M1 --> M2 --> M3 --> M4 --> M5 --> M6 --> M7 --> M8
end
M8 --> E1
C3 --> M4