Session Secret
Internal operator UI only. The secret is stored in sessionStorage for this browser tab/session, never hardcoded, and never displayed after entry.
Campaign Context
Campaign readiness not loaded
Campaign execution list not loaded
Campaign Onboarding
Diagnostics onlyOnboarding diagnostics not loaded
Board relation readiness not loaded
Test data readiness not loaded
UK Audit Second Campaign Setup
Creates at most one clearly labelled UK Audit test chain. This never sends, never updates registry flags, and requires typed confirmation for real monday creation.
No UK test-data plan loaded.
Campaign Mapping
Current mapping not loaded
No mapping validation yet
Save Verified Mapping
Saves validated column IDs to Neon. This does not mutate monday and does not enable execution for disabled campaigns.
Validate a saveable mapping first.
Health / Environment
Not loaded
Campaign Registry
Not loaded
US Audit Mapping
Not loaded
Sender Webhook Monitoring
Not loaded
Webhook & Reply Monitor
No auto-replyGrowth Hub webhook handling updates connection/reply state only. It never sends provider actions, never starts cron, and never auto-creates follow-up messages.
Reprocess Confirmation
No webhook monitor data loaded yet.
US Audit Single-Row Dry-Run
US-only endpointThis legacy proven path accepts only
us_audit_firms. For UK Audit, use Campaign Onboarding, Action Planner, and Campaign-Scoped LinkedIn Connect below.No dry-run yet
Send One LinkedIn Connect
This sends one real LinkedIn connection request only. No bulk, cron, Message 1, or email path is enabled here.
Dry-run must be ready and a scoped action must exist.
Campaign-Scoped LinkedIn Connect
Manual-only controlled production mode for the selected campaign. UK Audit is capped to one row. No cron, no auto sender selection, no automatic Message 1, no email.
Hard cap
5
Execution
Manual only
Campaign
us_audit_firms
Action
LinkedIn Connect
No batch dry-run yet
Manual Batch Live Send
This can send real LinkedIn connection requests sequentially. It stops early on failures or cap/safety issues.
Run batch dry-run and create scoped actions first.
LinkedIn Message 1
Manual, human-approved follow-up preparation only. Candidate creation and scoped Action creation do not send; live Message 1 requires Connected status, no reply/stop condition, safe message content, an existing queued scoped Action, live flags, and typed confirmation.
Create Candidate
No Message 1 eligibility or candidate result yet.
No Message 1 dry-run yet.
Optional Manual Message 1 Live Send
This sends a real LinkedIn message only for pre-scoped queued Message 1 actions. The server rechecks Connected/no-reply state and message content immediately before send. Max 3 per request, sequential, no cron.
Run Message 1 dry-run and create scoped actions first.
LinkedIn Message 2
Manual, human-approved follow-up only. The queue row must already exist with approved copy; middleware dry-runs explicit rows, creates scoped Actions, and can live-send only from queued scoped Actions after rechecking Message 1 sent evidence and no-reply state.
No Message 2 dry-run yet.
Optional Manual Message 2 Live Send
This sends a real LinkedIn follow-up only for pre-scoped queued Message 2 actions. The server rechecks Connected/no-reply state, prior Message 1 sent evidence, and approved content immediately before send. Max 3 per request, sequential, no cron.
Run Message 2 dry-run and create scoped actions first.
Controlled Replies
Manual, approved LinkedIn replies only. The reply row must already exist with inbound reply evidence and board-authored approved copy; middleware never auto-replies from webhooks.
No LinkedIn reply dry-run yet.
Manual LinkedIn Reply Send
Sends exactly one approved board-authored LinkedIn reply from a queued scoped reply Action. Requires inbound reply state, provider conversation evidence, same sender account, live flags, and typed confirmation.
Run reply dry-run and create scoped actions first.
Email Reply Diagnostics
Email replies are blocked until thread-safe Microsoft Graph reply draft support exists. These checks must not create drafts, send email, or create unthreaded replies.
No email reply diagnostic yet.
Action Planner
Planner turns already-approved monday work into Neon scoped Actions. It does not send, does not mutate monday, and gives cron-lite existing Actions to select later.
Create Scoped Actions
Creates/reuses Neon Actions only. No provider send, no monday mutation, no cron live toggle.
No planner run yet.
Email Sequence Outlook Draft
Draft-first, then controlled send from an existing Outlook draft only. Supports Email 1, Email 2, and Email 3 when the selected monday row is already approved. No bulk email, no cron-lite email, no direct send from monday rows, and no auto follow-up.
Action type
CREATE_EMAIL_1_DRAFT
Send type
SEND_EMAIL_1
Provider
Microsoft Graph / Outlook
Execution
Manual one draft
Live email send
Existing draft only
No email draft dry-run yet.
Create Outlook Draft
Creates exactly one Outlook draft from an existing queued CREATE_EMAIL_1_DRAFT Action after the server re-checks sender, recipient, suppression, reply/stop, and content. No email is sent.
Create a draft Action before creating an Outlook draft.
No email draft reconciliation loaded yet.
Send Existing Outlook Draft
Sends exactly one already-created Outlook draft through Microsoft Graph after a live-send dry-run. Requires SEND_EMAIL_1, a provider draft ID, and the step-specific typed confirmation. No bulk send and no cron-lite email.
No email send dry-run yet.
Create a send Action and run send dry-run before live send.
No email send reconciliation loaded yet.
Growth Hub Cron-Lite
Disabled by default. Processes existing scoped Actions only. It never creates new queue rows, never creates Message 1 candidates, and has a hard cap of 3 per run. If no Actions are selected, run Action Planner first.
Default mode
Dry-run
Default max
1
Hard cap
3
Scope
Scoped Actions
Live Cron-Lite Process
Requires server env to opt in. This processes at most 3 existing scoped Actions sequentially and stops on failure.
No cron-lite plan loaded yet.
Recent Cron-Lite Runs
Run history is sanitized. It shows what cron-lite selected and processed, but never stores secrets.
No cron-lite run history loaded yet.
Daily Operator Checklist
Controlled LinkedIn phase
Before Planning
- Confirm outreach is not paused only when intentionally operating.
- Confirm live LinkedIn flags are true only for an intentional send window.
- Confirm campaign is US Audit unless explicitly testing another campaign.
- Confirm sender is active, monitored, within caps, and has a Linkup webhook ID.
- Confirm monday rows are approved, Ready to Queue, manually assigned, and have no reply or stop condition.
- For Message 1, confirm Connected status and final safe copy with no unresolved tokens or placeholder text.
Planner and Cron-Lite
- Run planner dry-run first, preferably with explicit queue item IDs.
- Confirm exactly the intended row is ready or existing.
- For Message 1, confirm the preview text before creating or reusing the scoped Action.
- Create scoped Actions only after the dry-run looks correct.
- Run cron-lite dry-run and confirm it selects exactly the intended Action.
- Keep effective max at 1 until multiple controlled runs are clean.
After Send
- Confirm Linkup success, Neon Action SENT, monday Send Status Sent, and the expected connection/message state.
- Confirm Send Attempt Count and sender counters incremented once.
- Run reconciliation and expect consistent_sent or consistent_message1_sent with no repair needed.
- Do not repair unless reconciliation marks it repairable and safe.
Later Phases
- Message 1 cron-lite proof should happen only after one manual live Message 1 proof succeeds.
- Do not add automatic Message 1 candidate creation in this phase.
- Email sending is not enabled in this milestone.
UK Audit Controlled Proof
- Select uk_audit_firms and use explicit UK queue item IDs.
- Confirm registry relations, verified mappings, sender readiness, and no reply/stop condition.
- Create/reuse exactly one scoped Connect Action after dry-run readiness.
- Manual UK live send requires SEND UK AUDIT LINKEDIN CONNECT and caps at one item from the UI.
- Cron-lite may include UK only during an intentional one-action proof window.
Email draft-first phase
Before Email Planning
- Confirm this milestone is draft-only and EMAIL_LIVE_SENDS_ENABLED is false.
- Confirm EMAIL_DRAFTS_ENABLED is true only during an intentional draft test window.
- Confirm the selected campaign and explicit queue item ID are correct.
- Confirm recipient email is valid, not suppressed, and has no unsubscribe or manual do-not-contact state.
- Confirm no reply, stop, pause, or needs-human state exists on the queue or contact row.
- Confirm sender mailbox is correct, enabled for drafting, allowed, healthy, and within draft cap.
- Confirm subject and body have no unresolved tokens, placeholder copy, attachments, or tracking pixels.
Planner and Action
- Use one explicit queue item ID.
- Run Email Draft dry-run and confirm exactly one intended row is eligible.
- Review sender, recipient, suppression, subject, and body preview before creating the Action.
- Create or reuse the scoped CREATE_EMAIL_1_DRAFT Action only after the dry-run looks correct.
- Confirm no Outlook draft exists until the Create Outlook Draft step is run.
Draft Creation
- Use CREATE OUTLOOK EMAIL DRAFT typed confirmation.
- Create one draft only, then open Outlook and review manually.
- Confirm the Action records provider draft ID and draft-created status.
- Do not create a SEND_EMAIL_1 Action until the Outlook draft has been reviewed by a human.
Controlled Send
- Confirm the draft exists in Outlook with the intended sender, recipient, subject, and body.
- Enable EMAIL_LIVE_SENDS_ENABLED only for the intentional one-email proof and keep the daily send cap low.
- Run Email Send dry-run and confirm exactly one draft target, no suppression, no reply/stop state, and no blockers.
- Create or reuse one SEND_EMAIL_1 Action from the draft-created Action.
- Use the step-specific SEND OUTLOOK EMAIL confirmation to send exactly one existing Outlook draft.
- Confirm provider success, Neon SENT, sender counter incremented once, and monday state updated if mapped.
- Run email send reconciliation and turn EMAIL_LIVE_SENDS_ENABLED false again if the proof window is over.
Reconciliation & Recent Actions
State repair is for Neon/monday status only. It never sends through Linkup, never starts cron, and never creates Message 1 or email actions.
Repair Confirmation
No reconciliation report loaded yet.
No webhook diagnostics loaded yet.