Recover Cold Leads Automatically

OpenAIGoogle SheetsGoogle Mail

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.

Cold Lead RecoverySales AutomationCRM PipelineEmail Outreach

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:

  1. Sends breakup emails to leads that have been inactive for 14+ days after 4+ outbound touchpoints.
  2. Checks for replies to previously sent breakup emails, classifies them as "yes," "no," or "unclear," and updates your CRM accordingly.
  3. Marks leads as dormant if they never respond after 5 business days.

What You Need

  1. A Google Sheets spreadsheet acting as your CRM with the columns listed below.
  2. A Google Sheets connector (for reading and updating lead data).
  3. A Gmail connector (for sending breakup emails, checking replies, and notifying sales owners).
  4. Configure the 7 editable workflow variables listed below.
CRM ColumnsWorkflow Variables
first_nameinactivity_days
emailminimum_touchpoints
companynurture_delay_days
last_interaction_datesales_owner_notification_channel
touchpointssender_name
pain_pointsender_company
product_discussedproduct_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

  1. Pull Leads from CRM — Reads all rows from your Google Sheets CRM spreadsheet.
  2. 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.
  3. 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."
  4. Send Breakup Email — Sends each drafted email via Gmail to the lead's email address.
  5. 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

  1. 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?"
  2. Classify Response — An AI agent reads each reply and classifies it as "yes" (interested), "no" (not interested), or "unclear" (ambiguous).
  3. Route Responses — A code node splits classified replies into three buckets and passes them downstream with a summary count.
  4. Process CRM Updates — An AI agent generates specific CRM update instructions for each category:
ResponseNew StatusAction
YesWarmFollow up next business day
NoClosed - nurtureReactivation reminder based on nurture_delay_days (default 60)
UnclearNeeds ReviewFlagged for manual review
  1. Update CRM — Writes the status changes back to Google Sheets.
  2. 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

  1. Pull Leads from CRM — Reads all rows again to check for leads that received a breakup email but never replied.
  2. 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.
  3. Mark as Dormant — Updates those leads in Google Sheets with status "Dormant" and logs the date.

Output

Each workflow run produces the following:

  1. Personalized breakup emails sent to newly cold leads.
  2. CRM status updates for leads that replied yes (Warm), no (Closed - nurture), or did not reply (Dormant).
  3. A notification email to the sales owner summarizing all actions taken.
  4. 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.

Try Needle today

Streamline AI productivity at your company today

Join thousands of people who have transformed their workflows.

Agentic workflowsAutomations, meet AI agents
AI SearchAll your data, searchable
Chat widgetsDrop-in widget for your website
Developer APIMake your app talk to Needle
    Needle LogoNeedle
    Like many websites, we use cookies to enhance your experience, analyze site traffic and deliver personalized content while you are here. By clicking "Accept", you are giving us your consent to use cookies in this way. Read our more on our cookie policy .