Leads
Audience → Leads (/leads) is a sales board with five columns: New,
Contacted, Qualified, Won, and Lost. Leads arrive four ways, and
each card can draft outreach, place a call, or move to another column.
Where leads come from
| Source | How | source value |
|---|---|---|
| HubSpot | Sync Now pulls contacts from your connected HubSpot account (SyncLeads) | hubspot |
| By hand | Add lead (CreateLead). A lead needs at least a name, an email, or a company. | manual by default |
| Web prospecting | Find Leads searches the public web for a niche (ScrapeLeads) | scraped |
| A Site Audit | A finished diagnosis prospects up to five leads for its niche in the background | scraped |
Sync from HubSpot
HubSpot is the only CRM PULSE syncs today. Connect it first under Integrations → Data sources. See Connections.
PULSE keeps a thin local copy of each contact. It shows HubSpot’s own
lifecycle stage as-is and does not score leads itself. The board column is
PULSE’s own pipeline_stage, separate from HubSpot’s lifecycle stage.
Find new leads on the web
Find Leads asks for a niche (for example “logistics SaaS”), an optional region, and optionally a diagnosis to ground the outreach. It streams progress as it works:
- A headless-browser search finds candidate company and directory pages.
- PULSE crawls each page for emails, phone numbers, company names, and LinkedIn links. It skips system mailboxes, form placeholders, list vendors, and free consumer mail domains.
- For each prospect it drafts a cold-call script, an email, and a social DM.
- It saves the leads and, if HubSpot is connected, pushes them to HubSpot.
The default is 10 leads per run, and the maximum is 25. Without HubSpot, the leads are still saved locally and the progress log says so.
Move a lead
Move changes the column (UpdateLeadStage). The valid stages are new,
contacted, qualified, won, and lost. Anything else is refused with
invalid pipeline stage.
Draft outreach
Draft writes a personalized message for one lead (GenerateOutreach) and
streams it as it is written. Pick the channel:
| Channel | Output |
|---|---|
email | A cold email with a subject line |
call_script | A cold-call script |
linkedin_dm | A LinkedIn direct message |
You can also set a tone (professional, casual, bold, consultative), a
language, extra context, and a diagnosis to ground the pitch. Drafts are
saved per lead (ListOutreach). PULSE does not send them.
Call a lead
Call places a real outbound phone call (CallLead). An AI voice agent
handles the conversation, and the lead moves to Contacted.
This needs a self-hosted Asterisk PBX that an administrator has configured. See
Telephony and messaging. Without
it you get outbound calling isn't configured — set up Asterisk and ...,
naming the missing settings. A lead with no phone number returns
lead has no phone number.
Churn watch
Once a day, the predictive churn engine reviews synced HubSpot leads for churn risk and schedules retention tasks for high-risk ones. They appear as a follow-up cycle named “Predictive Churn Retention Cycle”.