Pull inbound leads from HubSpot, score them, and surface a ranked call list with talking points. Drafts follow-ups and proposes calendar slots — never sends or books without owner approval.
-
Pull leads from HubSpot. Fetch contacts with
=
or
and
≠
. Use the field list in
reference/hubspot-scoring.md. If HubSpot is unavailable, stop:
"HubSpot is disconnected — connect it and try again."
-
Clarify if trigger is ambiguous. If the user said only "pipeline" without a qualifier, ask: "Quick pipeline overview (deal stages + total value) or prioritized call list?" — then route accordingly. Do not score leads on a bare "pipeline."
-
Score each lead. Apply the four-dimension model in reference/hubspot-scoring.md:
- Engagement — email replies, opens, site visits in HubSpot (last 30 days only)
- Company fit — industry and employee count vs. owner's ICP (default: any industry, 1–50 employees)
- Urgency — lead age, stage duration, notes containing "urgent / ASAP / deadline / budget approved"
- Recency penalty — subtract points if last activity was <24 hours ago (already touched today)
-
Build the ranked list. Sort descending by composite score. Adapt list size to volume:
- ≤10 leads → show all
- 11–30 leads → show top 5
-
30 leads → show top 8
For each lead: name, company, score, one-paragraph talking point, last activity summary. If engagement signals are all >30 days old, flag: "Engagement signals are stale — approach as cold outreach."
-
Offer follow-up drafts. Ask: "Draft follow-ups for any of these?" If yes, write one email per selected lead, matching the tone of their last outbound thread in Mail. Show draft; do not send.
-
Offer calendar slots. Ask: "Propose call slots for any of these?" If yes, check Calendar for open 30-minute windows in the next two business days (avoid slots with existing events ±15 min). Propose two options per lead. Do not create events — the owner books.