Four stages, one terminal HITL. Sage = deterministic. Yellow = agentic. Coral = human. Cream = system action triggered by human decision.
flowchart TD
Start([Signals poll]):::system
Start --> S1
S1["1. Monitor"]:::deterministic
S1 --> S2["2. Enrich"]:::deterministic
S2 --> S3["3. Score"]:::deterministic
S3 --> S4["4. Route + Draft"]:::deterministic
S4 --> P["Personalisation Agent"]:::agentic
P --> G{"Strong-hook gate"}:::agentic
G -->|Strong| A["Draft Assembly Agent"]:::agentic
G -->|Lite| R["Manual review"]:::system
A --> Slack["Slack DM to SDR"]:::system
Slack --> H{"SDR HITL"}:::human
H -->|Send| Send["Smartlead fires"]:::system
H -->|Edit| Edit["Edit then send"]:::system
H -->|Skip| Skip["Decay + log"]:::system
Skip -.->|feedback| S3
classDef deterministic fill:#bdccbe,stroke:#7a9082,stroke-width:2px,color:#0e1719
classDef agentic fill:#FFF3CC,stroke:#FACC15,stroke-width:2px,color:#0e1719
classDef human fill:#FCDAD0,stroke:#EE7E5D,stroke-width:3px,color:#0e1719
classDef system fill:#fbf5ec,stroke:#e0dcd0,stroke-width:1.5px,color:#27373F
| Stage | What It Does | Tools |
|---|---|---|
| 1. Monitor | Poll signal sources on per-type schedules. Write detected events to the Signals table. | Crunchbase API, LinkedIn (Apify), Greenhouse, Lever, Firecrawl, Clearbit, PDL (all orchestrated in Clay) |
| 2. Enrich | Lookup Company + Contacts. Cold-start enrichment if new. Pull signal-specific context (funding amount + investors, exec prior role, job description text). | Clay (Apollo, Ocean.io, Clearbit, ZoomInfo, PDL, Crunchbase, Claygent, Firecrawl) |
| 3. Score | signal_score = base_weight × recency_decay × ICP_fit. Combined with company.icp_total to assign P1, P2, or P3. | Clayscript formulas |
| 4. Route + Draft | Personalisation Agent generates 3 hooks. Strong-hook gate filters weak personalisation. Draft Assembly Agent merges template + hook + Mento voice. Slack DM with pre-populated draft. | Claude API via Clay Use AI columns, Clay Slack integration, Smartlead |
| HITL terminal | SDR clicks Send, Edit, or Skip. Workflow does NOT auto-send. | Slack interactive message + Smartlead API trigger on SDR action |