Sync ICP website visitors from Leadfeeder to HubSpot daily

Every morning at 8am, push yesterday's ICP-fit website visitors into HubSpot so your reps see warm accounts in CRM the same day they show intent.

Agentic Task
LeadfeederHubSpotSalesOperationsLead EnrichmentData Sync
PromptCreate

Every weekday at 8am, sync yesterday's ICP-fit website visitors from Leadfeeder into HubSpot so sales sees them in CRM the same day they showed intent. Build this as an agent-based workflow because the dedupe-versus-update decision and the note synthesis from visit history need judgement.

Trigger: cron at 8am on weekdays.

Steps the agent should run each fire:

1. Call Leadfeeder's List Custom Feeds to find the feed named "ICP Target Accounts" (configurable) and grab its id.

2. Call Leadfeeder's List Leads against that custom_feed_id for yesterday's date range (start_date and end_date both set to yesterday).

3. For each lead, skip it if the company's domain matches our own domain or any domain in a configurable excluded-domains list (competitors, partners, ourselves).

4. For each remaining lead, call Leadfeeder's List Visits For Lead to pull yesterday's session-level visits so the agent can synthesize a short summary (visit count, page count, top pages by views).

5. Call HubSpot's Search Companies with a filter on the domain property equal to the lead's domain. If zero results, call Create Company with name, domain, industry, country, and a custom property (default name: leadfeeder_visit_summary) holding the synthesized summary plus a last_website_visit property set to yesterday. If one or more results, take the first match and call Update Company on that id to refresh last_website_visit to yesterday, then call Create Note associated with that company id containing the new visit summary. Never create a duplicate company.

6. Resolve the company owner: read the hubspot_owner_id from the company record. If set, the task should be assigned to that owner; otherwise the task is created unassigned.

7. Call HubSpot's Create Task associated with the company, with subject "Warm visitor: <Company name> hit <top page path>", due date set to today, status NOT_STARTED, priority MEDIUM, and hubspot_owner_id from step 6 when present.

8. At the end of the run, log a one-line summary: leads pulled, new companies created, existing companies updated, tasks created, and how many leads were skipped (split by reason: excluded domain vs. no usable domain).

Configuration to expose at the top of the workflow:

- Leadfeeder feed name (default: "ICP Target Accounts")

- Excluded domains list (our own domain plus known competitor domains)

- HubSpot custom property name for the visit summary (default: leadfeeder_visit_summary)

- HubSpot property name for last visit date (default: last_website_visit)

- Task subject template and default priority

Use the Leadfeeder integration (API token) and the HubSpot integration (OAuth).

Additional information

What does this prompt do?
  • Pulls yesterday's ICP-fit website visitors from your saved Leadfeeder feed.
  • Adds brand-new companies to HubSpot, or updates the existing record with a fresh visit note instead of creating a duplicate.
  • Creates a follow-up task on the company, assigned to the company owner and due today, so the rep sees a warm account in their queue.
  • Skips your own domain and any competitor domains you list so the sync stays clean.
What do I need to use this?
  • A Leadfeeder account with at least one saved custom feed for your ICP accounts.
  • A HubSpot account where you can create and update companies and tasks.
  • A short list of domains to ignore (your own website, competitors, partners).
  • Optional: the name of the HubSpot property you want to use for the website visit summary.
How can I customize it?
  • Change the schedule, e.g. only run Tuesday through Friday, or run twice a day for a morning and afternoon batch.
  • Point the workflow at a different Leadfeeder feed (named accounts, free trial sign-ups, pricing-page visitors).
  • Adjust the task subject, due date, priority, or who it gets assigned to when the company has no owner.
  • Tweak what the workflow writes into the HubSpot company note (top pages only, full visit timeline, time on site).

Frequently asked questions

Will this create duplicate companies in HubSpot?
No. The workflow looks up each visitor by domain first. If the company already exists, it updates that record and appends a note about the new visit instead of creating a duplicate.
What does the follow-up task look like?
A HubSpot task titled something like "Warm visitor: Acme hit /pricing", due today, assigned to the company owner if one is set. If there is no owner, the task lands unassigned so your sales ops lead can route it.
Can I limit which visitors get synced?
Yes. The workflow reads from a saved Leadfeeder custom feed, so any ICP filter you build inside Leadfeeder (industry, employee count, country, source) will drive which companies flow into HubSpot.
What if a visitor's domain matches our own site or a competitor?
Those domains are excluded. You give the workflow a list of domains to skip, and it ignores any matches before touching HubSpot.
Does this work on a HubSpot Free plan?
Yes for creating companies and tasks. If you want the workflow to write to a custom property like "last website visit", make sure that property exists on your company object in HubSpot first.

Stop letting warm website visitors die in your analytics tool.

Connect Leadfeeder and HubSpot once, and Geni delivers yesterday's ICP visitors into your CRM every weekday at 8am.