Surface buying signals on open deals — 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.

An account in Stage 3 just closed a Series B. A new CRO joined two weeks ago. The SDR headcount doubled. Every one of those signals is relevant to the deal — and none of them are in Salesforce because nobody was watching the account between calls.

This workflow fixes that. It runs a daily signal check on every account with an open opportunity via the Lusha API, surfaces funding events, executive moves, and hiring surges directly on the Salesforce opportunity record, and alerts the AE when a high-score signal fires. The rep walks into every call knowing what changed at the account since the last touchpoint — not finding out six weeks later in a pipeline review.

Requires: Lusha API key · Salesforce Flow Builder · Salesforce admin access · Slack (optional)

How it works

This workflow runs on a daily scheduled cadence. It checks every account with an open opportunity against Lusha’s signal layer, writes new signals directly to the Salesforce opportunity record, and alerts the AE when a high-priority signal fires at an active deal account.

1
Trigger — Scheduled Flow runs daily
A Scheduled Flow runs every morning and queries for all open Opportunity records — stage not equal to Closed Won or Closed Lost. For each opportunity, it retrieves the associated Account to use as the Lusha signal lookup identifier.
2
Action — Call Lusha API to check account signals
For each account, the Flow calls Lusha’s signals endpoint with the company name or domain. Lusha returns all active buying signals — funding events, executive moves, hiring surges, intent signals, and tech stack changes — scored and dated.
3
Action — Filter for new signals only
The Flow compares the signal dates against the last signal check timestamp on the opportunity record. Only signals that appeared since the last check are processed — so the AE sees what’s new, not a repeat of signals already logged.
4
Action — Write signals to the opportunity record
New signals are written to a custom signal log field on the Opportunity record — signal type, score, date, and a one-line description. The latest signal summary is written to a dedicated field visible in the opportunity layout so the AE sees it immediately when they open the record.
5
Action — Create task and fire alert for high-priority signals
If a signal scores above your alert threshold — funding event, executive hire, or intent score above 70 — a high-priority task is created for the AE and an optional Slack notification fires with the signal details and a link to the opportunity.
6
Output — AE sees live signals on every open deal
The AE opens a deal record and sees exactly what has happened at the account since the last call — without checking a separate tool, without manually researching the account, and without waiting for the manager to ask in a pipeline review.

What you’ll get back

An opportunity record that looks like this when the AE opens it before a call:

Salesforce fieldValue
Opportunity name[Deal name]
StageStage 3 — Proposal
ACV$42K
Close date[date]
Lusha — Latest signal⚑ Series B closed — $22M — 8 days ago
Lusha — Signal scoreHigh
Lusha — Signal logSeries B $22M (8 days ago) · New CRO hired (14 days ago) · 8 SDR roles posted (11 days ago)
Lusha — Last signal check[date]
Lusha — Alert fired✓ Task created · Slack notification sent

Task created for AE

FieldValue
PriorityHigh
Subject⚑ New signal — [Account name] — Series B closed
Due dateToday
Description[Account name] just closed a Series B — $22M raised. A new CRO joined 14 days ago and 8 SDR roles have been posted since. This account is in active investment mode. Re-engage this week with an updated business case tied to the new funding and scaling motion.
Related to[Deal name] opportunity

Slack notification (if configured)

⚑ New buying signal — open deal

Account: [Account name]
Deal: [Deal name] — Stage 3 — $42K
Signal: Series B closed — $22M — 8 days ago
Additional signals: New CRO (14 days ago) · 8 SDR roles posted (11 days ago)
Signal score: High

Re-engage this week — the timing window is open.
View opportunity in Salesforce →

Build it

Step 1 — Add signal fields to the Opportunity object

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

Field labelField typeAPI name
Lusha — Latest signalTextLusha_Latest_Signal__c
Lusha — Signal scorePicklist (High / Medium / Low / None)Lusha_Signal_Score__c
Lusha — Signal logLong Text AreaLusha_Signal_Log__c
Lusha — Last signal checkDate/TimeLusha_Last_Signal_Check__c
Lusha — Alert firedCheckboxLusha_Alert_Fired__c
Lusha — Alert thresholdPicklist (High only / High and Medium)Lusha_Alert_Threshold__c

Step 2 — Build the Scheduled Flow

In Salesforce Flow Builder, create a new Scheduled Flow:

  • Schedule: Daily — recommended 5am so signals are ready before the working day starts
  • Query: Opportunity records where StageName not in (‘Closed Won’, ‘Closed Lost’)
  • Loop: iterate through each opportunity
  • For each opportunity: HTTP Callout to Lusha signals endpoint with Account.Website or Account.Name
  • Filter response: keep only signals where signal date is after Lusha_Last_Signal_Check__c
  • Score signals: High if funding event or executive hire, Medium if hiring surge or intent above 60, Low if tech stack change
  • Update Records: write signal summary, score, and log to opportunity fields, update last check timestamp
  • Decision: if signal score is High or meets alert threshold — create Task and fire Slack notification
  • Save and activate

Step 3 — Add signal fields to the opportunity page layout

In Salesforce Setup, go to Object Manager → Opportunity → Page Layouts. Add the Lusha signal fields to a dedicated section near the top of the layout — “Lusha Intelligence” — so the AE sees the signal summary immediately when they open the record. The Latest Signal and Signal Score fields are the most important to surface prominently.

Step 4 — Configure alert thresholds

Set the Lusha_Alert_Threshold__c field on each opportunity based on the deal’s value and stage. High-value deals in late stages should alert on any High signal. Earlier-stage deals can alert on High signals only to reduce noise. You can also build a Flow rule that automatically sets the alert threshold based on ACV — deals above $50K alert on High and Medium, deals below $50K alert on High only.

Step 5 — Test with a live opportunity

Open a test opportunity linked to a company you know has recent signal activity. Manually trigger the Flow from the debug panel. Confirm the signal fields populate correctly, the signal log is appended rather than overwritten, 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

  • Which Lusha API endpoint returns buying signals?

    Buying signals are returned via Lusha’s company signals endpoint — GET https://api.lusha.com/v2/companies/signals with the company domain or Lusha company ID as the query parameter. The response returns all active signal types for the account — funding events, executive moves, hiring surges, intent signals, and tech stack changes — each with a signal type, score, date, and description. Full endpoint documentation including request parameters and response schema is at docs.lusha.com/guides. If you’re using Lusha’s MCP integration, the signals are returned as part of the company profile call without a separate endpoint.

  • How do I prevent the signal log from growing too large over time?

    The Lusha_Signal_Log__c field is a Long Text Area — it can hold up to 131,072 characters, which is sufficient for most deals. To keep it manageable, configure the Flow to append only the last 10 signals to the log rather than every signal ever detected. Add a text truncation step that keeps the most recent entries and drops anything older than 90 days. For deals that have been in the pipeline for a long time, the signal log becomes a useful timeline of everything that happened at the account during the deal cycle — worth preserving for post-mortems and forecasting analysis.

  • Can I surface signals on the Account record rather than the Opportunity record?

    Yes — and for accounts with multiple open opportunities, the Account record is often the better place to surface signals since the same signal is relevant to all deals at that account. Build the same workflow but update the Account object instead of the Opportunity object. Then create a formula field on the Opportunity that pulls the signal summary from the related Account — so AEs see signals on the deal record without duplicating the signal data across every opportunity at the same account.

  • What signal score threshold should I use for alerts?

    Start with High signals only — funding events and executive hires. These are the signals most directly correlated with buying behavior and budget availability. Medium signals — hiring surges and intent above 60 — are worth logging to the record but not always worth an immediate alert unless the deal is in a late stage. A good rule of thumb: alert on any signal at Stage 3 or later regardless of score, and alert only on High signals at Stage 1 or 2. This keeps alert volume manageable while ensuring late-stage deals never miss a timing window.

  • Can I combine this workflow with the contact change alert workflow?

    Yes — and combining them is the recommended setup. Contact change alerts catch when a key contact departs or is promoted. Buying signal alerts catch when something significant happens at the account level. Together they give the AE a complete picture of everything relevant to the deal that happened since the last call — without opening a single tool outside Salesforce. Both workflows write to the same opportunity record, so the AE sees contact status and account signals in one place. Build Workflow 3 first, then layer this workflow on top of it.

Ready to run this?

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