Tuesday, August 4, 2026
How to Connect Strama to HubSpot
Strama connects to HubSpot so the accounts, contacts, and outreach your team works in Strama show up in your CRM without anyone copying them over. Contacts and companies sync to your portal, and the emails and LinkedIn messages Strama sends are logged as activity on the right records. Teams that call can also push Strama Call steps into HubSpot as tasks, ready for a task-based dialer like Nooks.
This guide covers the whole setup: connecting your portal, configuring how records are matched and updated, mapping owners and fields, verifying data is flowing, and fixing the problems teams most commonly run into.
What syncs between Strama and HubSpot
Five object types move between the two systems. The last one, call tasks, is opt-in.
| Strama | HubSpot | Direction |
|---|---|---|
| Contacts | Contacts | Bi-directional — Strama reads your portal to match existing contacts, and creates or updates records as it works them |
| Companies | Companies | Bi-directional — matched on domain or name before anything is created |
| Emails | Email activity on the contact timeline | To HubSpot, with an optional read used only to prevent duplicate logging |
| LinkedIn messages | Communications, typed as LinkedIn messages | To HubSpot |
| Call steps | Tasks, typed as calls | Bi-directional. Strama creates a task the morning the step is due, and marks the step complete in Strama when the task is completed in HubSpot. Off by default. |
Outbound messages Strama sends are prefixed [STRAMA] in the subject or body so you can tell them apart from mail HubSpot logged natively. Inbound replies are not prefixed.
One thing worth knowing before you connect: syncing is not a backfill. Connecting HubSpot does not push your existing Strama database into your portal. Records are queued as Strama works them — contacts and companies as they are created, enriched, or edited, and messages as they are sent or received. If you connect and immediately check HubSpot, expect it to be quiet until your team does something.
Before you start
On the HubSpot side:
- Any HubSpot account works, including the free CRM. Every permission Strama requires is available on all tiers.
- The person connecting needs App Marketplace Access in HubSpot, which Super Admins have by default. This is required for the initial install and any time Strama requests new permissions.
- That user also needs view and edit access on contacts and companies in order to grant those permissions.
On the Strama side:
- You must be the team Owner. Connecting, disconnecting, changing sync settings, editing mappings, and triggering syncs are all Owner-only. Other team members can view the CRM settings page but see a read-only version of it.
- There is no plan requirement. The integration is available on every Strama plan.
Step 1: Connect your HubSpot portal
Go to Settings → CRM in Strama. Before anything is connected you will see a single card, "Connect your CRM," listing what will sync and a Connect HubSpot tile.
Click Connect HubSpot. You will be sent to HubSpot to sign in and choose the portal you want to connect, then shown the permissions Strama is requesting. Approve them, and you will be returned to Strama with the connection live.
Once connected, the page shows your portal name and ID, who connected it, and a health strip with counts of companies, contacts, and messages synced, plus when the last sync ran.
What Strama asks permission for
These permissions are requested at authorization and are required for the integration to work.
| Permission | Why Strama needs it |
|---|---|
crm.objects.contacts.read | Look up existing contacts by email or LinkedIn URL before creating anything, so Strama does not duplicate people you already have |
crm.objects.contacts.write | Create and update contacts, and associate them to their company |
crm.objects.companies.read | Match existing companies by domain or name |
crm.objects.companies.write | Create and update companies |
crm.objects.owners.read | Populate the owner picker in Owner mapping and attribute logged activity to the right person |
crm.schemas.contacts.read | Detect which LinkedIn URL property exists in your portal |
crm.schemas.companies.read | The same for companies, and to read your timezone options |
oauth | Token refresh and portal identification |
Two further permissions are optional. You can decline either one without breaking the install.
| Optional permission | What it enables | If you decline |
|---|---|---|
crm.lists.read | Importing contacts from a HubSpot list or segment into Strama | List import is unavailable until you re-authorize and grant it |
sales-email-read | Searching your portal by Message-ID before logging an email, so Strama never writes a second copy of something it already logged | Emails still sync, just without that extra safety check |
Strama does not request permission to read or write deals, tickets, or marketing email performance data.
Step 2: Configure sync behavior
The Sync behavior card has five settings. Changes save automatically and apply to your whole team.
Sync mode
Create only (the default) or Create & update.
On Create only, Strama will create records that do not exist in your portal but will never write to ones that do. If Strama matches a contact you already have, it adopts that record as-is and leaves every field alone — your job titles, your data.
On Create & update, Strama also pushes its values onto matched records, overwriting what is there.
Two protections apply either way. Strama never writes an empty value, so a blank field in Strama cannot wipe a populated one in HubSpot. And on company updates, Strama never overwrites the domain — or the name, when the company was matched loosely — because those are the fields that define which company a record actually is.
Company matching
By domain (the default) or By name. Before creating a company, Strama looks for an existing HubSpot company that matches.
Domain matching also checks the corporate email domains of a company's contacts, so app.acme.com and acme.com do not become two records. For a loose match like that to be accepted, the company names have to be similar too.
Duplicate contacts
Delete Strama's copy (the default) or Keep both.
Sometimes a contact syncs before Strama has finished enriching their email address, and the address turns out to belong to someone already in your portal. When that happens, Strama re-points to the existing contact and moves any activity it logged onto that record. This setting controls what happens to the extra record Strama created — archive it, or keep both.
Strama only ever removes a record it created itself. Contacts that were already in your portal are never deleted.
Inbound email logging
Off, Managed inboxes (the default), or All.
This controls whether replies landing in Strama get logged to HubSpot. Managed inboxes logs replies to the inboxes Strama provisioned, matching the outbound behavior. All is not currently available for HubSpot connections.
The default exists for a reason worth understanding: HubSpot already logs mail from your own connected mailboxes. Strama logs the ones it provisioned. Keeping the two scopes separate is what prevents every message appearing twice on a timeline.
Call tasks
Off (the default) or On.
When on, Strama creates a HubSpot task for each Call step in a running sequence on the day the step is due, and completes the step when the task is completed in HubSpot. The toggle stays disabled until at least one team member is mapped to a HubSpot owner, because every task needs an owner to land in the right rep's queue. The full behavior is covered in Call steps as HubSpot tasks below.
Step 3: Map owners
The Owner mapping card lists your Strama team members alongside a HubSpot owner. Click Edit mappings to load the owner list from your portal and pair them up.
Mapping is optional. Unmapped members still sync normally — their activity just lands without owner attribution, so it will not roll up under the right rep in HubSpot reporting. If you care about attribution, do this before you start sending.
It stops being optional if you plan to turn on Call tasks: tasks are only created for senders with a mapped HubSpot owner, and the toggle stays disabled until at least one member is mapped.
Step 4: Review field mappings
The Field mapping card has two sections, Contact fields and Company fields, each showing how many are mapped and which HubSpot property each Strama field writes to.
The defaults:
| Strama field | HubSpot property |
|---|---|
| First name | firstname |
| Last name | lastname |
email | |
| Job title | jobtitle |
| Timezone | hs_timezone |
| Company name | name |
| Company website | domain |
LinkedIn URLs
Strama does not create custom properties in your portal. Instead, at connect time it looks for a LinkedIn property that already exists and maps to the first one it finds — linkedin_url then hs_linkedin_url for contacts, and linkedin_company_page, linkedin_url, then hs_linkedin_url for companies. If your portal has none of them, the mapping is skipped and LinkedIn-based contact matching is off.
Strama writes LinkedIn URLs in the form https://linkedin.com/in/username and https://linkedin.com/company/name, and matches contacts by comparing that string exactly. If your portal stores URLs in a different shape — with a www. prefix, for instance — those records will not match, and Strama will treat them as new.
Editing a mapping
Property names are entered as free text and are not validated against your portal, so a typo will fail silently at sync time rather than warning you. Copy the internal name directly from HubSpot under Settings → Properties. Reset to defaults restores the standard mappings and re-detects your LinkedIn property.
How syncing works
Strama processes the sync queue every five minutes, handling up to 100 records per object type each run. A large first batch will trickle through over several cycles rather than landing all at once.
To push what is pending immediately, use Sync now at the bottom of the CRM settings page. It drains the queue on demand and does not re-push records that already synced.
Call steps as HubSpot tasks
Campaigns with a calling channel schedule Call steps alongside emails and LinkedIn touches. With Call tasks turned on, Strama pushes each of those steps into HubSpot as a call-type task, so reps can work them from HubSpot's task queue or from a dialer that pulls HubSpot tasks, like Nooks. No additional permissions are needed: call task sync runs on the access you granted at connect time.
What gets created, and when
Tasks are created just in time, on the morning the step is due, at 8:00 am in the sender's timezone. This keeps rep queues clean: dialers like Nooks pull tasks that are due or overdue, so a task created days ahead would surface before anyone should be calling. Strama checks for newly due steps about every 15 minutes, and steps that came due while a sequence was paused are picked up as soon as it resumes.
Each task carries what a rep needs to dial:
- A subject like
[Strama] Enterprise Outbound - Step 2: Call, so Strama tasks are easy to filter - The step's talk track as the task body, converted to plain text
- Task type Call, with priority taken from the sequence's priority
- An association to the synced contact, so the task opens on the right record with the contact's phone number
- The HubSpot owner from your owner mapping, which routes the task to the right rep's queue
Three things a task needs before it can be created
- The contact has synced to HubSpot. If not, Strama queues the contact sync automatically and creates the task on a later pass.
- The contact has a phone number. A task without a number is not dialable, so Strama waits until enrichment finds one.
- The sender is mapped to a HubSpot owner.
A step waiting on one of these shows as pending on the Call Tasks tile in Sync status, and its task is created automatically once the condition resolves.
Completing the call
When the task is marked completed in HubSpot, including automatically when a rep finishes the call in Nooks, Strama notices within about 15 minutes, marks the Call step complete, and schedules the sequence's next step. Nothing needs to be done in Strama.
When tasks are removed
If the contact replies, unsubscribes, or the sequence is paused or deleted, Strama deletes the task from HubSpot so nobody calls a person who already responded. Resuming the sequence recreates the task once the step is due again. Because a reply can land while a rep is mid-session, a quick refresh of the task list at the start of a calling block is a good habit.
One thing to avoid: deleting a Strama task by hand in HubSpot. The Call step stays open in the sequence and Strama will not recreate the task, so the sequence stalls on that step. Complete the task instead, or make the change in Strama (pause the sequence, or remove the step) and let Strama clean up the task itself.
Verifying the connection
Three places tell you whether things are working.
- The health strip on the connection card — counts of companies, contacts, and messages synced, along with anything pending or failed, and the time of the last sync.
- The Sync status card — per-object tiles for Companies, Contacts, Emails, and LinkedIn Messages, plus Call Tasks when call task sync is on, and a table of any failed records showing HubSpot's own error message.
- HubSpot itself — open a contact your team has worked recently. Emails and LinkedIn messages Strama sent appear on the timeline, associated to the contact and its company, with the
[STRAMA]prefix.
Troubleshooting
Emails appear twice on a timeline
HubSpot natively logs mail from mailboxes connected to your portal, and Strama logs the inboxes it provisioned. If both are logging the same sends, you get doubles. Leave Inbound email logging on Managed inboxes, which keeps the two from overlapping. If you are still seeing pairs, the copy without the [STRAMA] prefix is HubSpot's.
A contact was created that already existed
Usually a timing issue — the contact synced before enrichment found their email address, and that address turned out to belong to an existing record. Strama detects this and consolidates automatically. Leave Duplicate contacts on Delete Strama's copy so the extra record is cleaned up rather than left behind.
A company matched the wrong record
Almost always caused by a bad website value. Link shorteners and social URLs are ignored rather than used as a match key, but if a company's website in Strama is not its real site, matching has nothing good to work with. Check the website field, and keep Company matching on By domain.
A call task never appeared in HubSpot
First check the toggle: Call tasks in Sync behavior is off by default. Then check the three preconditions: the contact has synced to HubSpot, has a phone number, and the sender is mapped to a HubSpot owner. Finally, check the clock. Tasks are created at 8:00 am in the sender's timezone on the day the step is due, and the sync runs about every 15 minutes, so a task can trail the top of the hour slightly. The sequence also has to be running: paused sequences do not create tasks.
A completed call did not advance the sequence
Strama polls for completed tasks about every 15 minutes, so give it a cycle. If the step still has not moved, check whether the task was actually marked completed in HubSpot rather than deleted. A deleted task leaves the Call step open, and the sequence waits on it.
Authorization expired
A red banner appears and syncing pauses, queueing records rather than dropping them. The team Owner clicks Re-authenticate and signs in again — it must be the same portal. The queue resumes once the connection is restored.
Individual records failed
Failed records are retried automatically five times with backoff before landing in the failed records table, where each row shows HubSpot's error message and a Retry button. Retry all failed re-queues the whole table at once. The error text usually names the problem directly — a missing required property, or a permission your portal did not grant.
Disconnecting HubSpot
Go to Settings → CRM and click Disconnect on the connection card. Syncing stops immediately.
Nothing is deleted from HubSpot. Records Strama already created or updated stay exactly as they are, and your Strama contacts and companies are untouched. What gets cleared is the queue — anything still pending or failed is dropped.
Records that synced successfully keep their HubSpot ID, so reconnecting the same portal picks up where you left off. Connecting a different portal resets field mappings, owner mappings, and sync history.
Getting help
Email support@strama.ai with your portal ID and we will take a look.
Not using Strama yet? Take a look at what it does.
