Import HubSpot Contacts Into Twain

Mohamed ChahinMay 5, 20265 min readWatch tutorial

Pull HubSpot contacts straight into a Twain campaign so the research, custom variables, and sequences are built from the lists your team already keeps in the CRM.

Where to start the import

There are three places to pull HubSpot contacts into Twain. They all use the same picker and the same field-mapping form. The difference is when the import happens and how often it runs.

  • Campaign creation. Pick HubSpot as the lead source while you're setting up a new campaign. The contacts you select land in the new campaign and Twain immediately runs research on them.
  • Leads import (existing campaign). Open a campaign you've already built and click Import leads. Useful for backfilling, expanding a segment, or topping up a campaign that's running low.
  • Workflow. Drop a HubSpot node onto a workflow and the import runs continuously. Twain scans the segment every minute, pulls anything new, runs the research, drops the lead into the right campaign, and notifies the channel you wired up.

The workflow option is the one most teams settle on once the campaign is proven. It removes the manual step. New contacts that match your HubSpot segment show up in Twain on their own, with research already done, ready for the rep before they even open Twain.

Campaign creation. Pick the HubSpot segment, map the fields, click Add Leads.
Workflow. The HubSpot node runs forever. Every new lead in the segment flows through the rest of the steps automatically.

Permissions Twain asks for on import. The HubSpot connection needs read access to contacts, companies, and the lists you want to use. If you also turn on conversation history, Twain asks for the email and conversation scopes on top. Until those are approved, the import is paused for that integration. Nothing partial is brought in.

What you can bring in

The simplest import is the standard contact fields: email, first name, last name, job title, LinkedIn URL, and the company they belong to. That alone is enough for Twain to start research and draft a sequence.

Beyond the basics, anything stored on the HubSpot contact or company is fair game. If your team tracks a custom field (industry vertical, persona type, deal stage, last meeting outcome, anything), you can pull that into Twain and use it the same way you'd use a built-in field.

Map fields to variables

The mapping form is where the value compounds. Every HubSpot property you map to a Twain variable becomes available to the research and the sequence generator on a per-lead basis.

A few examples of what that unlocks:

  • Better research. If you map Lifecycle stage or Last meeting notes to a Twain variable, the research can lean on that context instead of starting from a cold web search.
  • Better sequences. Map a Persona field and Twain can pick a different angle for an Engineering Lead than for a Head of Marketing, on the same campaign, without you writing two campaigns.
  • Trigger-aware copy. Map Last activity or Recent deal stage change and the assistant can reference the actual reason the lead is in scope this week.

The point is simple. The more you tell Twain about the lead at import time, the less generic the output is. Variables you map once stay attached to the lead, so the sequence Twain writes on day one and the follow-up it writes on day fourteen both have the same context to work from.

Static vs dynamic segments

HubSpot has two kinds of lists, and the choice affects how Twain treats the import.

A static list is a snapshot. The contacts in it at the moment you import are the contacts Twain works with. Add a contact to the static list later and Twain doesn't know about it unless you re-import. Use static lists for one-off launches, A/B tests, or any campaign where you want a frozen audience.

A dynamic list is a query. HubSpot keeps adding contacts as they meet the filter. When you point a Twain workflow at a dynamic list, the import becomes continuous. Every minute, Twain checks the list for new entries, pulls them in, and runs them through the rest of the workflow. Use dynamic lists when the audience definition is stable but the population keeps growing.

A few practical notes:

  • For the campaign-creation and standalone-import flows, both static and dynamic lists work the same way at the moment of import. Static is a snapshot; dynamic is a snapshot of the current state.
  • For workflows, dynamic lists are the better fit. A static list will only deliver the leads that were on it the day you wired up the workflow.
  • You can re-run an import on top of an existing campaign. Twain dedupes by HubSpot contact ID, so the same lead won't get duplicated. Custom variables get refreshed on each run, so anything you change in HubSpot is reflected on the next import.