Skip to main content

HubSpot

Syft connects your website activity to HubSpot. It identifies the companies and people visiting your site, scores their intent and fit against your ideal customer profile (ICP), and writes the results to HubSpot:

  • Record cards show a company's or contact's Syft intent, ICP fit and recent website sessions on its HubSpot record.
  • Timeline events add website visits and signups to the company and contact timeline.
  • Syft properties add intent, engagement and firmographic fields to your Company and Contact records, for use in views, reports, lists and workflows.
  • App home ranks the accounts showing the most intent, inside HubSpot.
  • Lists and motions use HubSpot lists as Syft target accounts or motion triggers, and let Syft motions create records and add them to lists.

Before you begin​

  • A Syft workspace. Sign up at app.syftdata.com and install the Syft tag on your website (for example with Google Tag Manager) so Syft has activity to send.
  • HubSpot permissions. To install apps you need to be a Super Admin in HubSpot or have the App Marketplace Access permission.
  • HubSpot subscription. Syft doesn't require a particular HubSpot subscription. To trigger workflows from Syft properties, you need a HubSpot plan that includes workflows.

Install the app​

You can start the install from Syft or from the HubSpot App Marketplace. Either way, you approve the same permissions and finish setup in Syft.

From Syft​

  1. In Syft, go to Settings > Integrations and click Connect on the HubSpot card.

    HubSpot card on the Syft Integrations page with a Connect button
  2. HubSpot opens in a new window. If you have access to more than one HubSpot account, pick the account to connect Syft to and click Choose Account.

    HubSpot account picker for connecting Syft
  3. Review the permissions Syft requests. Permissions Syft requests explains each one. The two sequence permissions under Optional are only needed to enroll contacts in HubSpot sequences from a Syft motion, so leave them unticked if you don't. Click Connect app.

    HubSpot permission screen listing the scopes Syft requests
  4. HubSpot sends you back to Syft to configure the app.

From the HubSpot App Marketplace​

  1. In HubSpot, click the Marketplace icon in the top navigation and search for Syft, or open Syft's listing directly.
  2. Click Install. Choose your HubSpot account and approve the permissions, as in steps 2 and 3 above.
  3. HubSpot sends you to Syft. Sign in, or create a Syft workspace if you don't have one yet, and continue with the configuration below.

Configure the app​

After you approve the permissions, Syft shows the HubSpot Installed dialog:

HubSpot Installed dialog in Syft with sync options
  1. Choose what Syft keeps up to date in HubSpot. Both options are on by default:

    • Post activity to timeline adds website visits and signups to the timeline of matching companies and contacts.
    • Enrich existing contacts and companies writes Syft properties to Company and Contact records that already exist in HubSpot. Click Configure to review the field mapping (see Exported Fields).
  2. Click Save. Syft creates its properties in your HubSpot account and starts syncing. Abort Installation disconnects HubSpot instead, without creating anything.

  3. Optional: to have Syft create companies and contacts for identified visitors, or add them to a HubSpot list, create a CRM motion. The motion's filters decide which visitors qualify, for example by ICP match or intent.

    Create CRM Motion
  4. Optional: add the Syft cards to your record pages. In HubSpot, open a company or contact record and customize it to add these cards:

    • Syft Summary (a middle-column tab);
    • Syft Summary in Sidebar (right sidebar);
    • Syft Leads (companies only).

    HubSpot explains how in customizing record pages.

To change these settings later, go to Settings > Integrations in Syft and click Configure Sync on the HubSpot card.

Use the app​

Once you're connected, Syft works in the background and data flows to HubSpot without any action on your part.

What happens automatically​

WhatWhen
Syft properties on matching companies and contacts are updatedWhen Syft identifies the visitor or company, and again as their activity and intent change
Website visits and signups are posted to the company and contact timelineWhen Syft processes the session
HubSpot lists used as Syft target account lists are refreshedEvery hour
Motions triggered by a HubSpot list check for new list membersEvery 5 minutes
New companies and contacts are created, or added to a listWhen a visitor matches a CRM motion you set up

Syft matches existing records by company domain and contact email before creating anything, so it enriches your existing records rather than duplicating them.

Record cards​

Open a company or contact to see its Syft intent and ICP fit, key engagement metrics, and recent website sessions with the pages viewed. On a company, the Syft Leads card lists the people from that company Syft has identified.

Syft record cards on a HubSpot company record

Timeline events​

Website visits and signups appear on the company and contact timeline, next to your emails, calls and meetings. Each visit shows how long the session lasted, the channel it came from, and the pages viewed.

Syft website visit events on a HubSpot timeline

App home​

App home shows the accounts with the most intent, ranked, each linked to its HubSpot record. To open it, go to Settings > Integrations > Connected Apps in HubSpot, click Actions next to Syft, then Go to app home.

Syft app home in HubSpot listing high-intent accounts

Syft properties, lists and workflows​

Syft properties work like any other HubSpot property. Their internal names start with syft_ and their labels with "Syft - ". Use them to:

  • filter views;
  • build active lists, for example companies whose Syft intent is High;
  • create reports;
  • trigger HubSpot workflows.

The full list is under Exported Fields.

Disconnect the app​

  1. In Syft, go to Settings > Integrations.

  2. On the HubSpot card, click Disconnect and confirm.

    HubSpot card on the Syft Integrations page with a Disconnect button

When you disconnect:

  • Syft stops sending data to HubSpot, turns off motions that use HubSpot, revokes its access, and uninstalls the app from your HubSpot account.

  • Your HubSpot data is not deleted. These all stay in HubSpot:

    • companies and contacts Syft created;
    • the Syft properties and the values already written to them;
    • timeline events;
    • list memberships.

    If you no longer need the Syft properties, you can delete them from Settings > Properties in HubSpot.

  • Your Syft workspace and its data are unaffected. You can reconnect at any time from the same page.

Uninstall the app​

You can also remove Syft from within HubSpot:

  1. In HubSpot, click the Settings icon and go to Integrations > Connected Apps.

  2. Find Syft, click Actions, then Uninstall, and confirm.

    HubSpot Connected Apps page with the Uninstall action for Syft

Uninstalling has the same effect as disconnecting from Syft: Syft stops sending data, and the records, properties, values and timeline events already in HubSpot remain. For details, see HubSpot's guide to uninstalling an app.

Need help? Email support@syftdata.com.

Permissions Syft requests​

PermissionWhy Syft needs it
crm.objects.companies.read, crm.objects.companies.writeFind matching companies, create companies from your motions, and write Syft fields to them.
crm.objects.contacts.read, crm.objects.contacts.writeFind matching contacts, create contacts from your motions, associate contacts with their company, and write Syft fields to them.
crm.schemas.companies.read, crm.schemas.companies.write, crm.schemas.contacts.read, crm.schemas.contacts.writeCreate and maintain the Syft properties listed under Exported Fields.
crm.objects.owners.readShow each record's HubSpot owner in Syft.
crm.lists.read, crm.lists.writeUse HubSpot lists as target account lists and motion triggers, and add records to lists from a motion.
timeline.read, timeline.writePost website visits and signups to the company and contact timeline.
oauthStandard HubSpot OAuth scope for connected apps.
automation.sequences.read, automation.sequences.enrollments.write (optional)Enroll contacts in a HubSpot sequence from a motion. Only needed if you use that step.

Marketing Contacts​

HubSpot distinguishes between marketing contacts and non-marketing contacts. Marketing contacts can receive marketing emails and count toward your billing tier, while non-marketing contacts cannot receive marketing emails.

By default, HubSpot creates contacts from integrations and APIs as non-marketing contacts. This means contacts created by Syft will initially be non-marketing contacts. If you plan to send marketing emails to these contacts, you'll need to enable marketing contacts for the Syft integration.

Enabling Marketing Contacts for Syft​

To have future contacts from Syft created as marketing contacts:

  1. Go to Settings in your HubSpot account
  2. Navigate to Integrations > Marketing Contacts
  3. Find Syft in the list of connected apps
  4. Turn ON the toggle to enable marketing contacts

Only contacts created after enabling this setting will be marked as marketing contacts. Existing contacts created before the change will remain non-marketing.

Updating Existing Contacts​

To update contacts that were created before enabling the marketing contacts setting:

  • Bulk update: Select contacts from the Contacts index page and use the bulk action to set them as marketing contacts.
  • Workflow automation: Create a workflow to automatically set contacts as marketing contacts based on specific criteria (requires Professional or Enterprise plan).

For more details, see the HubSpot documentation on marketing contacts.

Pipeline Stage​

Syft computes a Pipeline Stage for each company based on deal data from HubSpot. Use this stage to qualify and prioritize accounts for human review, or to trigger Motion automations. The stage is evaluated in priority order:

StageCondition
CustomerHubSpot lifecycle stage is "customer", or the company has a recent closed deal date
OpportunityCompany has associated deals and at least one open deal
Lost OpportunityCompany has associated deals but no open deals
ProspectCompany exists in HubSpot

Exported Fields​

Company Object​

Company Name
name
The name of the company
string
Company Domain
domain
The primary domain of the company website
string
Company Description
description
A brief description of the company and what they do
string
Street Address
address
The street address of the company
string
City
city
The city where the company is located
string
State/Province
state
The state or province where the company is located
string
Country
country
The country where the company is located
string
Postal/ZIP Code
zip
The postal or ZIP code of the company
string
Phone Number
phone
The main phone number of the company
string
Industry
industry
The industry the company operates in
string
Is Public Company
is_public
Whether the company is publicly traded
bool
Company Website
website
The full URL of the company website
string
Number of Employees
numberofemployees
The estimated number of employees at the company
number
Annual Revenue
annualrevenue
The estimated annual revenue of the company
string
Founded Year
founded_year
The year the company was founded
string
Twitter Followers
twitterfollowers
The number of Twitter followers the company has
number
Twitter Handle
twitterhandle
The Twitter handle of the company
string
LinkedIn URL
linkedin_company_page
The LinkedIn company page URL
string
Syft - Creation Trigger
syft_creation_trigger
Motion Name or 'Manual' if not created via Motion
string
Syft - First Session Referrer
syft_original_referrer
Referrer URL for the first session from this company
string
Syft - First Session Source
syft_original_source
Traffic Source for the first session from this company
enumeration
Direct
Cross Network
Paid Search
Paid Social
Paid Shopping
Syft - First UTM Source
syft_original_utm_source
UTM Source for the first session from this company
string
Syft - First UTM Channel
syft_original_utm_channel
UTM Channel for the first session from this company
string
Syft - First UTM Medium
syft_original_utm_medium
UTM Medium for the first session from this company
string
Syft - First UTM Campaign
syft_original_utm_campaign
UTM Campaign for the first session from this company
string
Syft - All UTM Campaigns
syft_utm_campaigns
All UTM Campaigns influencing this company
string
Syft - Matched ICPs
syft_icp
Syft ICPs that match this company
string
Syft - Matched Signals
syft_intents
List of signals demonstrated by this company on the website
string
Syft - Matched Personas
syft_persona
Syft Personas of the visitors from this company
string
Syft - Time Spent
syft_time_spent
Total time spent across all sessions (in minutes)
number
Syft - Total Sessions
syft_sessions
Total number of sessions from this company
number
Syft - High Intent Sessions
syft_high_intent_sessions
Total number of High Intent sessions from this company
number
Syft - Page Views
syft_page_views
Total number of pages viewed across all sessions
number
Syft - Unique Visitors
syft_visitors
Number of unique visitors from this company
number
Syft - Identified Leads
syft_leads
Number of leads identified by Syft for this company
number
Syft - First Seen
syft_first_seen
First time when someone from this company visited the website
datetime
Syft - Last Seen
syft_last_seen
Last time when someone from this company visited the website
datetime
Syft - Purchase Intent
syft_purchase_intent
Purchase intent from this company
string
Syft - Activity Summary
syft_summary
Activity summary and purchase intent from this company
string
Syft - Latest Session Referrer
syft_latest_referrer
Referrer URL for the latest session from this company
string
Syft - Latest Session Source
syft_latest_source
Traffic source for the latest session from this company
enumeration
Direct
Cross Network
Paid Search
Paid Social
Paid Shopping
Syft - Latest UTM Source
syft_latest_utm_source
UTM Source for the latest session from this company
string
Syft - Latest UTM Channel
syft_latest_utm_channel
UTM Channel for the latest session from this company
string
Syft - Latest UTM Medium
syft_latest_utm_medium
UTM Medium for the latest session from this company
string
Syft - Latest UTM Campaign
syft_latest_utm_campaign
UTM Campaign for the latest session from this company
string
Syft - Number of LinkedIn Impressions
syft_linkedin_impressions_total
Total number of LinkedIn impressions for this company
number
Syft - Number of LinkedIn Clicks
syft_linkedin_clicks_total
Total number of LinkedIn clicks for this company
number
Syft - Number of LinkedIn Likes
syft_linkedin_likes_total
Total number of LinkedIn likes for this company
number
Syft - Number of LinkedIn DMs Received
syft_linkedin_messages_received_total
Total number of LinkedIn DMs received for this company
number
Syft - Number of LinkedIn Shares
syft_linkedin_shares_total
Total number of LinkedIn shares for this company
number
Syft - Number of LinkedIn Comments
syft_linkedin_comments_total
Total number of LinkedIn comments for this company
number
Syft - Total LinkedIn Engagements
syft_linkedin_engagements_total
Total number of LinkedIn engagements for this company
number
Syft - Company Research Report
syft_research_report
Research report generated for this company
string
Syft - Visited Pages
syft_visited_pages
List of pages visited by visitors from this company
string
Syft - Syft Account URL
syft_account_url
The URL of the company in Syft
string
Syft - LinkedIn Posts
syft_linkedin_posts
LinkedIn posts viewed by this company
string
Syft - Unique Visitor ID Count
syft_visitor_id_count
Number of unique visitor IDs seen from this company
number

Contact Object​

Company Name
company
The name of the company the contact works for
string
Email
email
The email address of the contact
string
First Name
firstname
The first name of the contact
string
Last Name
lastname
The last name of the contact
string
Gender
gender
The gender of the contact
string
Phone Number
phone
The phone number of the contact
string
Date of Birth
date_of_birth
The date of birth of the contact
string
Street Address
address
The street address of the contact
string
City
city
The city where the contact is located
string
State/Province
state
The state or province where the contact is located
string
Country
country
The country where the contact is located
string
Postal/ZIP Code
zip
The postal or ZIP code of the contact
string
Website
website
The personal website of the contact
string
Syft - LinkedIn URL
syft_linkedin
The LinkedIn profile URL of the contact
string
Twitter Handle
twitterhandle
The Twitter handle of the contact
string
Job Title
jobtitle
The job title of the contact
string
Syft - Creation Source
syft_creation_source
How the contact was identified (Personalized Link, Form Submission, etc.)
string
Syft - ID Confidence
syft_enrichment_confidence
Confidence level of the ID data (Very High, High, Medium, Low)
string
Syft - Creation Trigger
syft_creation_trigger
Motion Name or 'Manual' if not created via Motion
string
Syft - First Session Referrer
syft_original_referrer
Referrer URL for the first session of this contact
string
Syft - First Session Source
syft_original_source
Traffic Source for the first session of this contact
enumeration
Direct
Cross Network
Paid Search
Paid Social
Paid Shopping
Syft - First UTM Source
syft_original_utm_source
UTM Source for the first session from this company
string
Syft - First UTM Channel
syft_original_utm_channel
UTM Channel for the first session of this contact
string
Syft - First UTM Medium
syft_original_utm_medium
UTM Medium for the first session of this contact
string
Syft - First UTM Campaign
syft_original_utm_campaign
UTM Campaign for the first session of this contact
string
Syft - All UTM Campaigns
syft_utm_campaigns
All UTM Campaigns influencing this contact
string
Syft - Matched Personas
syft_persona
Syft Personas that match this contact
string
Syft - Matched Signals
syft_intents
List of signals demonstrated by this contact on the website
string
Syft - Time Spent
syft_time_spent
Total time spent across all sessions (in minutes)
number
Syft - High Intent Sessions
syft_high_intent_sessions
Total number of High Intent sessions from this contact
number
Syft - Total Sessions
syft_sessions
Total number of sessions from this contact
number
Syft - Page Views
syft_page_views
Total number of pages viewed across all sessions
number
Syft - First Seen
syft_first_seen
First time when the contact visited the website
datetime
Syft - Last Seen
syft_last_seen
Last time when the contact visited the website
datetime
Syft - Purchase Intent
syft_purchase_intent
Purchase intent from this contact
string
Syft - Activity Summary
syft_summary
Activity summary and purchase intent from this contact
string
Syft - Latest Session Referrer
syft_latest_referrer
Referrer URL for the latest session of this contact
string
Syft - Latest UTM Source
syft_latest_utm_source
UTM Source for the latest session of this contact
string
Syft - Latest UTM Channel
syft_latest_utm_channel
UTM Channel for the latest session of this contact
string
Syft - Latest Session Source
syft_latest_source
Traffic source for the latest session of this contact
enumeration
Direct
Cross Network
Paid Search
Paid Social
Paid Shopping
Syft - Latest UTM Medium
syft_latest_utm_medium
UTM Medium for the latest session of this contact
string
Syft - Latest UTM Campaign
syft_latest_utm_campaign
UTM Campaign for the latest session of this contact
string
Syft - Number of LinkedIn Impressions
syft_linkedin_impressions_total
Total number of LinkedIn impressions for this contact
number
Syft - Number of LinkedIn Clicks
syft_linkedin_clicks_total
Total number of LinkedIn clicks for this contact
number
Syft - Number of LinkedIn Likes
syft_linkedin_likes_total
Total number of LinkedIn likes for this contact
number
Syft - Number of LinkedIn DMs Received
syft_linkedin_messages_received_total
Total number of LinkedIn DMs received for this contact
number
Syft - Number of LinkedIn Shares
syft_linkedin_shares_total
Total number of LinkedIn shares for this contact
number
Syft - Number of LinkedIn Comments
syft_linkedin_comments_total
Total number of LinkedIn comments for this contact
number
Syft - Total LinkedIn Engagements
syft_linkedin_engagements_total
Total number of LinkedIn engagements for this contact
number
Syft - Lead Research Report
syft_research_report
Research report generated for this lead
string
Syft - Visited Pages
syft_visited_pages
List of pages visited by this contact
string
Syft - LinkedIn Posts
syft_linkedin_posts
LinkedIn posts viewed by this contact
string

When Syft creates these properties​

Syft creates its properties when you finish connecting HubSpot (the Save step above). They stay in your HubSpot account if you disconnect Syft, along with the values already written to them.

Coverage is scoped to your field mapping​

Syft syncs only the fields in your configured mapping — the lists above are the defaults. If you have customized the company or contact mapping for your workspace, that saved mapping wins.

This matters when you are checking whether enrichment "worked":

  • A field that is absent from the mapping is intentionally not synced. That is configuration, not a failed sync.
  • Each mapped field also carries a trigger: CREATE writes the value only when Syft first creates the record, UPDATE only on subsequent updates, and ANY on both. A CREATE-only field will not appear on records that already existed in HubSpot before you connected Syft.
  • A record only receives values at all if it passed the filters on the motion that syncs it.

So if a value you expected is missing, check in this order: is the field in your mapping, what is its trigger, and did the record actually match the motion.


Frequently Asked Questions​

Does Syft create duplicate contacts in HubSpot?​

No. Syft matches existing records by email address and company domain before creating new entries. Existing records are enriched rather than duplicated.

What HubSpot permissions does Syft need?​

See Permissions Syft requests for every scope and what it is used for. You authorize them during the OAuth connection flow.

How often does Syft sync with HubSpot?​

Data syncs in real-time. When a visitor is identified or a company shows intent signals, the corresponding HubSpot record is updated immediately.

Can I control which contacts are created in HubSpot?​

Yes. Use CRM Motions to define filters (ICP match, intent score, engagement level) that determine which visitors become HubSpot contacts.

What fields does Syft add to HubSpot?​

Syft adds properties whose internal names start with syft_ (labeled "Syft - …"), including intent scores, page views, last visit date, ICP match status, and firmographic data. See the Exported Fields section above for the complete list.

How do I confirm we are enriching the right records?​

Start with the Exported Fields section above and the coverage note beneath it — most surprises are a field that is not in the mapping, or one mapped CREATE-only landing on a record that already existed.

To check a specific record, open the account or contact in Syft and compare it against the HubSpot record. To review which visitors qualify for the sync at all, open the CRM motion and check its filters.

For a per-record coverage report across your whole workspace, ask us in your Syft Slack channel — that is not something you can pull from the dashboard today.

How do I disconnect or uninstall Syft?​

See Disconnect the app and Uninstall the app. Either way, the records, Syft properties and values already in HubSpot stay there.