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.
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
Four object types move between the two systems.
| 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 |
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 four 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.
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.
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.
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 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.
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.
