Generate Cold Email Dossiers
Scrape company websites, analyze prospects with AI, and generate personalized cold email dossiers with subject lines and email drafts — delivered to Slack and logged in Google Sheets.
Generate Cold Email Dossiers
This workflow automates the creation of personalized cold email dossiers for enterprise sales outreach. By scraping company websites and leveraging AI analysis, it produces detailed business summaries, identifies potential pain points, crafts personalized email hooks, and drafts compelling cold emails — all delivered directly to a Slack channel and logged in Google Sheets for easy tracking.
What It Does
- Accepts a manual trigger with a list of target companies and configuration settings.
- Scrapes website content from each target company in parallel.
- Cleans and pairs scraped content with the configuration data for each target.
- Uses an AI agent to analyze the company info and generate a business summary, an assumed pain point, and a personalized hook.
- Feeds that analysis into a second AI agent to write three subject line options and a concise cold email body tailored to each prospect.
- Sends the full dossier to a designated Slack channel and logs it to a Google Sheets spreadsheet.
What You Need
- A Needle account with access to the workflow automation platform.
- A connected Slack workspace with access to the target channel for receiving dossier messages.
- A connected Google Sheets account with a spreadsheet set up for logging dossier results.
- A list of target companies with their URLs, contact names, and your product description configured in the
DOSSIER_CONFIGvariable.
How the Flow Works
| Node | Description |
|---|---|
| Manual Trigger | Starts the workflow and reads the DOSSIER_CONFIG variable containing the array of target company data. |
| Website Scraper | Fetches and extracts text content from each target company's URL. Handles errors gracefully so failures don't crash the run. |
| Content Cleaner + Config Merger | Cleans the scraped web content, trims it to 12,000 characters, and pairs it with the corresponding configuration for each target. |
| AI Business Analyst | Analyzes the scraped website text to produce a business summary, an assumed pain point, and a personalized hook quoting something specific from the prospect's site. |
| Data Bridge | Extracts and validates the configuration data from the AI output, checks for scraping errors, and prepares the data for the email writer. |
| AI Email Writer | Generates three subject line options (curiosity, direct, and provocative) and a 4-sentence cold email draft addressing the prospect's pain point, solution, and call to action. |
| Final Merge | Flattens all AI outputs and configuration into one clean dossier object per target. |
| Slack Delivery | Posts the full dossier to your configured Slack channel, including the analysis, email drafts, and any error warnings if scraping failed. |
| Google Sheets Log | Upserts one row per target using the company URL as a key, so re-runs update existing rows instead of creating duplicates. |
Setup Instructions
- Set the
DOSSIER_CONFIGvariable — Define it as a JSON array in the workflow variables. Each object should include:Target_Company_URL— the company's website URLTarget_Contact_Name— the name of the person you're reaching out toMy_Product_Description— a one-sentence description of your product
- Configure the Slack node — Connect your Slack account and set the
conversationfield to the channel ID where you want dossiers delivered. - Configure the Google Sheets node — Connect your Google account, create a spreadsheet named something like "AE Dossier Log", and set the
sheetIdandworksheetIdto point to your spreadsheet. - Run the workflow — Hit Run and the dossiers will be generated and delivered automatically.
Output
For each prospect, you'll receive a formatted Slack message containing:
- The company name and website URL
- The contact's name
- An analyst briefing with a clear business summary, a pain point, and a personalized hook
- Three different subject line options to choose from
- A concise, persuasive cold email draft ready to send
- If scraping failed, an error message explaining the issue
The same information is also logged to your Google Sheets spreadsheet with the following columns:
| Column | Content |
|---|---|
| A | Target URL |
| B | Contact Name |
| C | Business Summary |
| D | Pain Point |
| E | Hook |
| F–H | Subject Lines 1–3 |
| I | Email Body |
| J | Error Status |
| K | Run Date |
Notes
- The workflow trims scraped content to 12,000 characters to stay within AI token limits.
- If website scraping fails or returns no content, the AI outputs clear fallback error messages rather than hallucinating.
- You can add any number of prospects to the
DOSSIER_CONFIGarray — they are processed in parallel. - Re-running the workflow for the same URLs will update existing rows in Google Sheets, not duplicate them.
- Always review AI-generated copy before sending to ensure it matches your brand voice and compliance requirements.
Want to showcase your own workflows?
Become a Needle workflow partner and turn your expertise into recurring revenue.
