Automates cold email drafting from a lead list by:
Trigger: Manual (replace with Cron if needed)
Fetch leads: Data Table “Get row(s)” filters rows where email_subject is empty (pending)
Loop: Split in Batches iterates rows
Enrichment (runs in parallel):
company_url) → Wait → Results → Data Table update → linkedin_profile_scrapecompany_url) → Wait → Results → Data Table update → linkedin_company_scrapeurl_search) → Wait → Results → Data Table update → crunchbase_company_scrapecold-outreach-enrichment-scraper with a RapidAPI key.)Draft (Gemini): “Agent One” composes a concise, personalized email using row fields + enrichment + ABOUT ME block.
Structured Output Parser enforces:
{
"email_subject": "text", "email_content": "text" }
Prep for QA: “Email Context” maps email_subject, email_content, and email for the judge.
QA (Judge): “Judge Agent” returns APPROVED or REVISE (brief feedback allowed).
Route:
APPROVED → Data Table “Update row(s)” writes email_subject + email_body (a.k.a. email_content) back to the row.REVISE → Skipped; loop continues.Data Table: “email_linkedin_list” (or your own) with at least:
email, First_name, Last_name, Title, Location, Company_Name, Company_site,Linkedin_URL, company_linkedin (if used), Crunchbase_URL,email_subject, email_body,linkedin_profile_scrape, linkedin_company_scrape, crunchbase_company_scrape (string fields for JSON).Credentials:
cold-outreach-enrichment-scraper (store securely as credential, not hardcoded)ABOUT ME block:
Replace the sample persona (James / CEO / Company Sample / AI Automations) with your own.
email_generated_at or processed boolean to prevent reprocessing.You are scraping and storing person/company data.
Ensure lawful basis, respect ToS, and minimize stored data.


