Intent-driven campaigns
An Intent-driven campaign is anchored to a live HubSpot list rather than a fixed upload. Your RevOps team maintains the list, accounts showing intent, de-anonymised website visitors, product signals, or a segment they curate, and the list stays current on its own. A rep opens the account browser, picks the accounts worth working that day, and cherry-picks exactly which people at each account to pull in. Kai leads its research with the intent signal, then writes and queues sequences as usual.
When to use Intent-driven
Use Intent-driven when the question "who should I reach out to today" is answered by your CRM rather than a list you built by hand. The classic case is an intent motion: a tool like RB2B de-anonymises website visitors, or a scoring model flags accounts showing buying signals, and those accounts land on a HubSpot list. Instead of exporting that list to a CSV every morning, you point a campaign at the list once and work it directly, always seeing the current state.
It is the right type when the pool of accounts changes continuously and someone in your CRM owns keeping it accurate. If your list is fixed and you just want to run it once, use Targeted List instead. If you want Kai to find brand-new contacts against an ICP with no CRM list at all, use Always-on.
How it works
The motion has a natural daily rhythm:
Your CRM team maintains a HubSpot list of accounts with intent. As signals come and go, the list updates. Kai always reads the live list, so you never work a stale export.
Open the campaign and use the account browser to see the accounts on the list, each with its intent signals and how many contacts it holds. Pick the ones worth your time today.
Expand an account and tick the specific people you want to reach. You are not forced to take everyone; you choose the personas that fit your motion, and Kai pulls only those in.
The people you pulled enter the normal pending-research flow. Kai researches each one, leading with the intent signal, writes a personalised sequence, and queues it for your review in Approvals.
Creating an Intent-driven campaign
On the campaign creation form, there is no contact-source card, because the HubSpot list is the source. Instead you configure the list itself.
Use the toggle to say whether your HubSpot list is a Contacts list or a Companies list. This matters: HubSpot stores the two differently, and Kai reads them through different paths. If your list is a list of companies (common for account-based intent), pick Companies.
Paste the HubSpot list ID or the list's HubSpot URL. Click Preview to confirm Kai can read the list and see how many records it contains. If the preview comes back empty, check the list type toggle first, a companies list read as contacts returns nothing.
Tell Kai which HubSpot properties carry the intent signal, the visit data, the trigger event, the segment or tier field. Kai treats those values as signals and leads its research with them rather than treating them as ordinary contact fields. On a companies list you can also name company-level properties, which Kai applies to every person at that account.
The account browser
Once the campaign exists, open it and Kai shows the account browser built from the live list. Accounts appear as rows you can search and expand. Each row shows the account's intent signals and its contact count. Expand a row to see the people, tick the ones you want, and click Pull selected into campaign. People already in the campaign are shown but not selectable, so you never pull a duplicate.
Refreshing after enrichment
Your list changes over time, and your CRM team may enrich an account after you have already looked at it, adding colleagues through a tool like Clay, for example. Click Refresh from HubSpot to re-read the list and pick up new accounts and newly added contacts. Refreshing does not touch anyone already pulled into the campaign; it only updates what the browser shows.
How the intent signal shapes outreach
The intent properties you named are not treated as ordinary fields. Kai folds them into its research so the signal informs what it writes: an account that visited your pricing page three times gets a different opening than one that downloaded a report. You will see the effect in the sequence copy and can check the reasoning in the Research tab in Approvals, where the signal appears woven into the account and persona summaries rather than as raw field values. See The approval flow for the Research tab, and Instructions & briefs for how research feeds generation.