Recover Cold Leads Automatically
Detects stale leads in your CRM, sends personalized breakup emails, classifies replies, updates lead statuses, and notifies your sales team — all on a daily schedule.
This workflow automatically detects cold leads that have gone quiet, sends them a short personalized breakup email, and routes their responses to update your CRM and notify your sales team. It runs daily on a weekday schedule so your pipeline stays clean without any manual chasing.
It handles three things:
- Sends breakup emails to leads that have been inactive for 14+ days after 4+ outbound touchpoints.
- Checks for replies to previously sent breakup emails, classifies them as "yes," "no," or "unclear," and updates your CRM accordingly.
- Marks leads as dormant if they never respond after 5 business days.
What You Need
- A Google Sheets spreadsheet acting as your CRM with the columns listed below.
- A Google Sheets connector (for reading and updating lead data).
- A Gmail connector (for sending breakup emails, checking replies, and notifying sales owners).
- Configure the 7 editable workflow variables listed below.
| CRM Columns | Workflow Variables |
|---|---|
| first_name | inactivity_days |
| minimum_touchpoints | |
| company | nurture_delay_days |
| last_interaction_date | sales_owner_notification_channel |
| touchpoints | sender_name |
| pain_point | sender_company |
| product_discussed | product_name |
| status | |
| sales_owner | |
| notes | |
| breakup_sent_date | |
| response |
How the Flow Works
A Scheduled Trigger runs the workflow every weekday at 8:00 AM UTC. A Get Timestamp node captures the current date and time for logging purposes. From there, three branches run in parallel.
Branch 1: Send Breakup Emails
- Pull Leads from CRM — Reads all rows from your Google Sheets CRM spreadsheet.
- Filter Cold Leads — A code node identifies leads that have been inactive for the configured number of days (default 14), have the minimum number of outbound touchpoints (default 4), and have not already received a breakup email. Leads already marked as warm, nurture, or dormant are excluded.
- AI Draft Breakup Email — Runs per lead. An AI agent analyzes the lead's context (company, pain point, product discussed) and drafts a personalized breakup email under 120 words. The email is short, respectful, emotionally neutral, and ends with a simple two-path CTA: "Yes, still interested" or "No, not right now."
- Send Breakup Email — Sends each drafted email via Gmail to the lead's email address.
- Log to CRM — Updates the lead's row in Google Sheets to record the breakup_sent_date and mark the status as breakup_sent.
Branch 2: Check Responses
- Search for Replies — Uses Gmail to find any replies to breakup emails received in the last 7 days, matching subject lines like "Re: Close this out?" or "Re: Still a priority?"
- Classify Response — An AI agent reads each reply and classifies it as "yes" (interested), "no" (not interested), or "unclear" (ambiguous).
- Route Responses — A code node splits classified replies into three buckets and passes them downstream with a summary count.
- Process CRM Updates — An AI agent generates specific CRM update instructions for each category:
| Response | New Status | Action |
|---|---|---|
| Yes | Warm | Follow up next business day |
| No | Closed - nurture | Reactivation reminder based on nurture_delay_days (default 60) |
| Unclear | Needs Review | Flagged for manual review |
- Update CRM — Writes the status changes back to Google Sheets.
- Notify Sales Owner — Sends an email summary to the sales owner listing re-engaged leads, nurtured leads, and leads needing review, along with action items.
Branch 3: No Response Handler
- Pull Leads from CRM — Reads all rows again to check for leads that received a breakup email but never replied.
- Filter No-Response Leads — Identifies leads where the breakup email was sent 5+ business days ago and no response was recorded. Excludes leads already marked as dormant or nurture.
- Mark as Dormant — Updates those leads in Google Sheets with status "Dormant" and logs the date.
Output
Each workflow run produces the following:
- Personalized breakup emails sent to newly cold leads.
- CRM status updates for leads that replied yes (Warm), no (Closed - nurture), or did not reply (Dormant).
- A notification email to the sales owner summarizing all actions taken.
- A clean, up-to-date pipeline with no stale leads lingering.
Notes
- The Google Sheets nodes require you to configure your actual spreadsheet ID and worksheet ID after duplicating the template.
- Subject lines for breakup emails rotate between "Close this out?", "Still a priority?", and "Should I close your file?" based on lead context.
- All timing thresholds (inactivity days, touchpoints, nurture delay) are controlled by workflow variables, making it easy to adjust without editing any nodes.
- The workflow runs Monday through Friday only to align with business days.
- For best results, keep your CRM spreadsheet up to date with accurate last_interaction_date and touchpoints values.
Want to showcase your own workflows?
Become a Needle workflow partner and turn your expertise into recurring revenue.
