Lead Intel Studio is a starter app for a custom lead-research and outreach system. It now includes a working CSV upload flow that persists imported contacts, enriches each record, groups account intelligence, and lets you generate outreach drafts for selected contacts or the full workspace.
This should be a normal application, not an OpenClaw-first automation stack.
- CRM data, message approvals, and outbound controls benefit from explicit roles, logs, and database records.
- The AI layer should be swappable so you can use OpenAI, Anthropic, or both depending on cost and quality.
- Dripify works well as an execution channel, but the core system of record should stay in your app.
- A workspace dashboard in
app/page.tsx - A client-side import and selection UI in
app/workspace-client.tsx - A sample JSON blueprint route in
app/api/blueprint/route.ts - A CSV import route in
app/api/contacts/import/route.ts - A draft-generation route in
app/api/drafts/generate/route.ts - CSV parsing logic based on your export shape in
lib/csv.ts - A local persisted data store in
lib/database.ts - Workspace persistence and query logic in
lib/workspace-store.ts - Domain types for contacts, research, and drafts in
lib/types.ts - Heuristic grouping and classification logic in
lib/pipeline.ts - AI and fallback workflow logic in
lib/workflows.ts
- Ingestion
- CSV upload for lead exports and account exports.
- Salesforce OAuth app plus REST API for smaller syncs and Bulk API 2.0 for larger pulls.
- Data model
accountscontactsresearch_runssource_evidencebuying_groupsmessage_draftscampaignsengagement_events
- Research pipeline
- Normalize records.
- Resolve account domain and LinkedIn identity.
- Gather company and prospect facts with evidence links.
- Classify organization type and buying group.
- Generate outreach messaging from approved playbooks.
- Execution
- Gmail draft or send support with approval states.
- Dripify CSV export so the sequencing engine stays consistent with your LinkedIn workflow.
- Salesforce task and note writeback.
- Feedback loop
- Capture opens, replies, booked meetings, and opportunities.
- Score which combinations of title, organization type, opener, and CTA are converting.
- Add database storage and auth.
- Replace heuristic enrichment with a queued worker that calls the model provider and web research provider.
- Add Salesforce OAuth and contact sync.
- Add Gmail draft creation and send approval.
- Add a Dripify CSV formatter for campaign uploads.
- Install dependencies:
pnpm install- Start the app:
pnpm dev- Open
http://localhost:3000.
- Open the app.
- Upload a lead export CSV from the workspace.
- The contacts are parsed, enriched, and stored in the local app database under
.data/lead-intel-studio. - Select one or more contacts.
- Generate outreach drafts for the selected contacts or for the full imported set.
- If
OPENAI_API_KEYis set, outreach generation uses OpenAI. - If
OPENAI_ENABLE_WEB_RESEARCH=true, OpenAI web search is also enabled for the request. - If no API key is set, the app falls back to built-in heuristic enrichment and drafting.
- Local development persists to
.data/lead-intel-studio. - On Vercel this MVP uses
/tmp/lead-intel-studio, which is useful for demo flows but not durable storage. - For durable production persistence, the next step is swapping the local PGlite store for Neon or another hosted Postgres database.
- Best core build choice: custom app with provider-swappable AI orchestration.
- Best AI setup: keep OpenAI and Anthropic both available behind a common interface.
- Best outreach execution mix: Gmail for direct email drafts and Dripify for LinkedIn-centric sequencing.
- Best immediate input path: CSV first, then Salesforce sync once schema and approval flow are settled.
- Store evidence links for every enrichment claim.
- Separate confirmed facts from model inference.
- Keep a human approval step before first-touch sends.
- Rate-limit outreach and monitor bounce or spam signals.
- Keep compliance review in scope for CAN-SPAM, privacy, and platform usage policies.