Import HubSpot contacts into Twain

Mohamed ChahinMay 5, 20265 min readWatch tutorial

Updated

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.
  • Automation. Turn on Auto-add new leads under the segment when you create the campaign or add leads, or set the automation up from the campaign's sidebar, and the import runs continuously. Twain scans the segment every minute, pulls anything new, runs the research, drops the lead into the campaign, and notifies the channel you wired up.

The automation 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.

Permissions Twain asks for on import. The HubSpot connection needs read access to your contacts, their properties, and the lists you want to use. If you also turn on conversation history, Twain asks for email access plus read access to the deals and companies a contact is associated with. 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. The list type controls how membership changes inside HubSpot; the Twain entry point controls whether the import is one-shot or continuous.

A static list has membership your team changes manually. A dynamic list is a query, so HubSpot adds and removes contacts as they meet its filters.

A campaign-creation or standalone import is a one-shot snapshot of either list's current members. A campaign automation is continuous: every minute, Twain checks the selected list for new members, pulls them in, and runs them through the campaign. That includes contacts added later to a static list as well as contacts that later qualify for a dynamic list.

A few practical notes:

  • For the campaign-creation and standalone-import flows, both static and dynamic lists work the same way: Twain imports the members present when you submit.
  • For automations, use a dynamic list when HubSpot should manage membership from filters. Use a static list when your team or another process will add members explicitly; Twain can pick up those later additions too.
  • 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.