Alert reps when a key contact changes roles — Lusha in Salesforce Agentforce

Example outputs in this workflow are illustrative — they reflect the structure, fields, and format of real Lusha API output, but were not pulled from a live session. Build this workflow with your own Lusha API key and Salesforce org to see live results.

A deal that was progressing well goes quiet. The rep follows up twice. No reply. Six weeks later in the pipeline review, someone asks whether the contact is still at the company. They’re not — they left five weeks ago, two days after the last call. The deal didn’t stall. The champion left and nobody knew.

This workflow fixes that. It runs a scheduled check on every key contact in your Salesforce org via the Lusha API, detects departures and role changes in real time, updates the contact record, creates a task for the owning rep, and optionally fires a Slack notification to the team. The rep finds out within 24 hours — not six weeks later in a pipeline review.

Requires: Lusha API key · Salesforce Flow Builder · Salesforce admin access · Slack (optional — for team notifications)

How it works

This workflow runs on a daily scheduled cadence. It checks every key contact in your Salesforce org against Lusha’s verified database, detects departures and role changes, updates the contact record, and alerts the owning rep before the situation affects a deal.

1
Trigger — Scheduled Flow runs daily
A Scheduled Flow runs every morning and queries for Contact and Lead records that meet your monitoring criteria — contacts on open opportunities, contacts tagged as champions or economic buyers, or all contacts last verified more than 30 days ago.
2
Action — Call Lusha API to verify each contact
For each contact in the batch, the Flow calls Lusha’s /v2/contacts/search endpoint with the contact’s email address. Lusha returns their current verified status — still in seat, promoted, or departed — along with their current title and company.
3
Action — Detect departure or role change
The Flow compares Lusha’s response against the existing Salesforce record. If the company has changed — departure detected. If the title has changed — promotion or role change detected. If neither has changed — contact confirmed in seat, verification date updated.
4
Action — Update contact record and create task
For departures: the contact record is flagged as departed, the new company is noted if Lusha has it, and a high-priority task is created for the owning rep. For role changes: the title is updated and a standard task is created noting the promotion. For confirmed contacts: the verification date is updated, no task created.
5
Action — Fire Slack notification (optional)
If a departure is detected on a contact linked to an open opportunity, an optional Slack notification fires to the rep and their manager with the contact name, company, departure date, and a link to the Salesforce record. High-value deals get an immediate alert — not a task that sits unread.
6
Output — Rep alerted within 24 hours of any change
The rep opens Salesforce to a flagged contact record, a high-priority task, and the full context of what changed. They know who left, where they went, and what to do next — before the deal is affected.

What you’ll get back

When a departure is detected, the rep sees this in Salesforce:

Contact record — after departure detected

Salesforce fieldValue
Contact nameR.M.
Previous titleVP of Sales
Previous company[Company A]
Lusha status⚠ Departed
New company[New Company] — if Lusha has it
Departure detected[date]
Last verified[date]
Open opportunities[Deal name] — Stage 3 — $42K

Task created for rep

FieldValue
PriorityHigh
Subject⚠ Champion departed — [Company A] — action required
Due dateToday
DescriptionR.M. (VP of Sales) has left [Company A]. They are linked to [Deal name] at Stage 3. Find the new owner of this deal at [Company A] before the opportunity goes cold. Use Lusha to identify the new VP of Sales or interim contact.
Related to[Deal name] opportunity

Slack notification (if configured)

⚠ Champion departure detected — action required

Contact: R.M. — VP of Sales
Account: [Company A]
Open deal: [Deal name] — Stage 3 — $42K
Departed: [date]
New company: [New Company] (if known)

Find the new owner at [Company A] before this deal goes cold.
View opportunity in Salesforce →

Contact record — after role change detected

Salesforce fieldValue
Contact nameJ.K.
Previous titleDirector of Sales
New titleVP of Sales ⚑ promoted
Lusha status✓ In seat — promoted
Promotion detected[date]
Last verified[date]
Task createdRe-engage J.K. — promoted to VP, expanded scope and budget authority

Build it

Step 1 — Add contact monitoring fields to the Contact object

In Salesforce Setup, go to Object Manager → Contact → Fields & Relationships. Add the following custom fields:

Field labelField typeAPI name
Lusha — Contact statusPicklist (Active / Departed / Promoted / Unverified)Lusha_Contact_Status__c
Lusha — Previous companyTextLusha_Previous_Company__c
Lusha — New companyTextLusha_New_Company__c
Lusha — Previous titleTextLusha_Previous_Title__c
Lusha — Departure dateDateLusha_Departure_Date__c
Lusha — Last verifiedDate/TimeLusha_Last_Verified__c
Lusha — Monitor contactCheckboxLusha_Monitor__c

Step 2 — Tag contacts to monitor

Check the Lusha_Monitor__c checkbox on any contact you want this workflow to watch — champions, economic buyers, primary contacts on open deals. You can also build a Flow rule that automatically tags all contacts linked to open opportunities above a specified ACV threshold.

Step 3 — Build the Scheduled Flow

In Salesforce Flow Builder, create a new Scheduled Flow:

  • Schedule: Daily — recommended 6am in the rep’s timezone so alerts are ready when the day starts
  • Start: query Contact records where Lusha_Monitor__c = true
  • Loop: iterate through each contact in the batch
  • For each contact: HTTP Callout to Lusha /v2/contacts/search with the contact email
  • Decision element: compare returned company to Contact.Account.Name
    • Company changed → departure detected
    • Title changed, company same → promotion detected
    • No change → update Lusha_Last_Verified__c only
  • Departure path: update Lusha_Contact_Status__c to Departed, log previous company, log new company if returned, create high-priority Task, fire Slack notification if linked to open opportunity
  • Promotion path: update Title, log previous title, update Lusha_Contact_Status__c to Promoted, create standard Task
  • Save and activate

Step 4 — Configure Slack notification (optional)

In Salesforce Setup, go to Notifications → Slack Notifications. Connect your Slack workspace and configure a notification template using the departure fields. Alternatively, use a Salesforce-to-Slack integration via Zapier or n8n if your org doesn’t have native Slack connectivity. Fire notifications only for contacts linked to open opportunities above your minimum ACV threshold to avoid alert fatigue.

Step 5 — Test with a known contact change

Identify a contact in your Salesforce org who you know has recently changed companies or been promoted. Tag them with Lusha_Monitor__c = true and manually trigger the Flow from the debug panel. Confirm the departure or promotion is detected, the record is updated correctly, and the task is created with the right priority and description. Full troubleshooting guidance at docs.lusha.com/guides.

Example outputs in this workflow are illustrative — they reflect the structure, fields, and format of real Lusha API output, but were not pulled from a live session. Build this workflow with your own Lusha API key and Salesforce org to see live results.

Built by: Lusha
Time to build: 45 min
Difficulty: Medium
Tools: Lusha, Salesforce
Type: Template

FAQ

  • How many contacts can the workflow monitor at once?

    Salesforce Scheduled Flows process records in batches of 200 by default — this is Salesforce’s governor limit for a single Flow transaction. For most teams monitoring key contacts on open deals, 200 records per batch is sufficient. If you have a larger contact base to monitor, the Flow automatically iterates through multiple batches in sequence. For enterprise teams monitoring thousands of contacts, consider splitting the query into separate Scheduled Flows by rep territory or account segment to stay well within governor limits and avoid timeout issues.

  • What if Lusha returns a new company for a departed contact?

    The new company name is written to the Lusha_New_Company__c field on the contact record and included in the task description and Slack notification. This gives the rep immediate context — not just that the contact left, but where they went. If the new company is also a target account in your Salesforce org, the rep can decide whether to follow the contact to their new role. If you want to automate that decision — flagging departed contacts who land at ICP-fit accounts — add a lookup step to the departure path that checks whether the new company exists in your Salesforce account list.

  • Should I monitor all contacts or only key ones?

    Start with key contacts only — champions, economic buyers, and primary contacts on open opportunities above your minimum ACV threshold. Monitoring every contact in your Salesforce org consumes API credits on contacts that have no active commercial relationship and produces noise that dilutes the signal value of genuine departure alerts. The Lusha_Monitor__c checkbox gives you precise control over which contacts are watched. A good starting rule: automatically tag any contact added to an opportunity as monitored, and automatically untag contacts on closed-lost deals older than six months.

  • How does the workflow handle a contact who changed roles within the same company?

    The departure detection logic compares the company name in Lusha’s response against the Account name on the Salesforce contact record. If the company name matches but the title has changed, the workflow takes the promotion path — it updates the title, logs the previous title, sets the status to Promoted, and creates a standard task for the rep. The rep is informed that the contact is still at the account but now has a different scope and potentially different budget authority — a signal worth acting on before the next touchpoint.

  • Can I trigger an immediate alert rather than waiting for the daily run?

    Yes — add a separate Record-Triggered Flow on the Contact object that fires when Lusha_Contact_Status__c changes to Departed. This Flow runs in real time the moment a departure is written to the record and can fire a Slack notification or create the task immediately rather than waiting for the next scheduled run. Use this for high-value deals where a 24-hour delay matters — set it to trigger only on contacts linked to opportunities above a specific ACV threshold to avoid over-notifying on lower-priority contacts.

Ready to run this?

Connect once, run anywhere. Works in Claude, ChatGPT, n8n, Clay, or any agent connected to Lusha.