Skip to main content

HeyReach property group in HubSpot

A complete guide how to use all 20 properties HeyReach creates in HubSpot. Explanations what each one tracks, how are they updated and how to use it for filtering, reporting, and workflow automation.

When you connect HeyReach to HubSpot, the integration automatically creates a dedicated property group on the Contact object.

This group contains 20 properties that capture your LinkedIn outreach activity — covering attribution, exposure, engagement, and intent data — directly on your existing HubSpot contacts.

This reference covers every property in the group: what it tracks, how it updates, and how to use it for filtering, reporting, and workflow automation.

⚠️ Current scope: HeyReach matches contacts by email and updates existing HubSpot contacts only. It does not create new contacts. LinkedIn profile data (name, company, job title, LinkedIn URL) is not synced into HubSpot in the current version.

How property updates work

Each property follows one of three update patterns:

  • Set once - written on the first relevant event and never changed afterward (e.g. first touch date)

  • Overwrites - replaced with the latest value each time the relevant event fires (e.g. last campaign name)

  • Increments - adds 1 each time the relevant event fires (e.g. reply count)

Section 1 - Attribution

Attribution properties answer the question "where did this contact's LinkedIn engagement begin?"

They are set once on first touch and never overwritten, making them the foundation of any first-touch attribution model for LinkedIn inside HubSpot.

Created by HeyReach

Identifier: heyreach_created_by_heyreach | Format: Boolean (Yes / No) | Update logic: Set once

Flags whether HeyReach has ever logged LinkedIn activity on this contact.

Set to Yes on first activity.

⚠️Note: HeyReach does not create new HubSpot contacts - this flag marks LinkedIn engagement origination, not contact origination.

Use cases:

  • Build a HubSpot list of every existing contact who has been touched by LinkedIn outreach to measure HeyReach's engagement footprint across your CRM.

  • Run a report comparing close rates between contacts with HeyReach LinkedIn activity vs. contacts without to evaluate LinkedIn's contribution to deal progression.

  • Trigger a workflow that applies a tag or routing rule to contacts the moment HeyReach logs its first activity on them.

First HeyReach touch date

Identifier: heyreach_first_touch_date | Format: DateTime | Update logic: Set once

The date and time of the first outbound interaction HeyReach logged for this contact, regardless of whether it was a connection request, message, or InMail.

Use cases:

  • Filter contacts whose first LinkedIn touch happened in a specific quarter to build cohort-based engagement reports

  • Calculate time from first LinkedIn touch to closed-won deal as a benchmark for your outbound motion

  • Trigger a 90-day-since-first-touch workflow to re-engage cold contacts who have not replied or progressed

First HeyReach campaign name

Identifier: heyreach_first_campaign_name | Format: Single-line text | Update logic: Set once

The name of the first HeyReach campaign that touched this contact.

Use cases:

  • Group contacts by their originating campaign to compare engagement contribution across different outreach plays.

  • Filter for contacts whose first campaign matches a specific theme to build campaign-specific reports.

  • Audit campaign quality by reviewing reply rates and intent segmented by first campaign name to identify which entry points engage best.

First HeyReach campaign ID

Identifier: heyreach_first_campaign_id | Format: Single-line text | Update logic: Set once

The stable internal identifier of the first HeyReach campaign that touched this contact. Used for joins and reporting where campaign names may change over time.

Use cases:

  • Build cross-system reports that join HubSpot contact data with HeyReach campaign analytics on a stable identifier rather than a renameable string

  • Maintain attribution integrity when campaign names get updated, archived, or recycled in HeyReach

  • Use as the join key in BI tools (HubSpot Operations Hub, Snowflake exports, Looker) where text-based campaign names are unreliable

Section 2 - Exposure

Exposure properties answer the question "how much has this contact been touched on LinkedIn?"

They track the breadth of HeyReach's interactions with the contact across campaigns and lists, and which sender or campaign was most recently involved.

Use them to manage outreach fatigue, build suppression rules, and report on rep-level activity.

HeyReach campaign count

Identifier: heyreach_campaign_count | Format: Number (integer) | Update logic: Increments

Total number of HeyReach campaigns this contact has been part of since the integration was installed.

Use cases:

  • Filter contacts touched by 3 or more campaigns to identify the most-saturated prospects in your CRM and pause further outreach

  • Build a saturation report showing how many contacts have been hit by multiple campaigns over a rolling 90-day window

  • Trigger a workflow when count exceeds a threshold (e.g. 5) to flag potential outreach fatigue and remove the contact from active campaignsž

HeyReach list count

Identifier: heyreach_list_count | Format: Number (integer) | Update logic: Increments

Total number of HeyReach lists this contact has been added to since the integration was installed.

Use cases:

  • Identify contacts present in multiple lists to detect duplication across your team's segmentation work

  • Build governance reports showing average list membership per contact, useful for agencies managing multiple clients in one workspace

  • Trigger a workflow that flags contacts with unusually high list counts for review by a sales operations admin

Last HeyReach campaign name

Identifier: heyreach_last_campaign_name | Format: Single-line text | Update logic: Overwrites

The name of the most recent HeyReach campaign this contact was enrolled in. Updates each time the contact is added to a new campaign.

Use cases:

  • Filter contacts currently being targeted by a specific campaign to coordinate outreach across email, ads, and other channels

  • Build a real-time view of where contacts sit in your active outreach motion, segmented by their most recent campaign

  • Trigger a workflow when the last campaign name changes, useful for syncing campaign membership to other tools or notifying account owners

Last HeyReach campaign ID

Identifier: heyreach_last_campaign_id | Format: Single-line text | Update logic: Overwrites

The stable internal identifier of the most recent HeyReach campaign this contact was enrolled in, used for joins where campaign names may change.

Use cases:

  • Join HubSpot contact data with HeyReach campaign-level analytics on a stable identifier for accurate cross-system reporting

  • Maintain a stable reference to the active campaign even when a campaign is renamed in HeyReach

  • Use as the primary key in data warehouse exports where campaign IDs are required for ETL pipelines

Last HeyReach sender

Identifier: heyreach_last_sender | Format: Single-line text | Update logic: Overwrites

The name of the LinkedIn sender account that most recently interacted with this contact through HeyReach.

Use cases:

  • Filter contacts by their most recent sender to give reps visibility into which leads they have personally engaged

  • Build per-sender activity reports showing how many active contacts each LinkedIn account is currently working with

  • Trigger a workflow to notify a rep in Slack based on the last HeyReach sender, aligning ownership with active outreach without modifying HubSpot's native Contact Owner field

Section 3 - Engagement

Engagement properties answer the question "how is this contact actually responding?"

They measure whether and how often a contact has replied, how fast replies arrive, and how fast your reps respond back.

Use them for lead prioritization, rep performance reporting, and identifying high-quality contacts worth deal-stage progression.

HeyReach reply received

Identifier: heyreach_reply_received | Format: Boolean (Yes / No) | Update logic: Overwrites

Indicates whether the contact has ever replied to a HeyReach outreach message. Flips to Yes on the first reply and stays there.

Use cases:

  • Build a HubSpot list of every contact who has replied through LinkedIn to prioritize high-engagement leads for follow-up

  • Run a conversion funnel report showing the ratio of touched contacts to replied contacts, segmented by campaign or sender

  • Trigger a workflow to advance the contact's lifecycle stage from Lead to Marketing Qualified Lead the moment a reply is received

HeyReach reply count

Identifier: heyreach_reply_count | Format: Number (integer) | Update logic: Increments

Total number of replies received from this contact across all HeyReach campaigns and senders.

Use cases:

  • Filter contacts with 3 or more replies to identify highly engaged prospects worth deeper qualification or deal creation

  • Build a report showing average replies per contact by campaign to measure conversation depth, not just reply rate

  • Trigger a workflow when reply count crosses a threshold (e.g. 4) to notify the account owner that the contact is in active dialogue

First HeyReach reply date

Identifier: heyreach_first_reply_date | Format: DateTime | Update logic: Set once

The date and time of the contact's first ever reply through HeyReach.

Use cases:

  • Filter contacts who replied in a specific quarter to build cohort-based engagement reports tied to outbound campaigns

  • Calculate time-to-conversion from first reply to closed-won deal as a benchmark for your sales motion

  • Trigger a 7-day-since-first-reply workflow to ensure no engaged contact goes without a follow-up touch

Last HeyReach reply date

Identifier: heyreach_last_reply_date | Format: DateTime | Update logic: Overwrites

The date and time of the most recent reply received from this contact, refreshed each time a new reply lands.

Use cases:

  • Filter for contacts who have replied within the last 14 days to build an active conversations view for sales reps

  • Build a stale-conversation report identifying contacts whose last reply date is more than 30 days old, signalling re-engagement opportunities

  • Trigger a workflow that nudges the account owner to follow up if no internal action has been logged within 5 days of the last reply

Time to first reply (hours)

Identifier: heyreach_time_to_first_reply | Format: Number (integer, hours) | Update logic: Set once

Number of hours elapsed between the first outbound HeyReach touch and the contact's first reply.

Use cases:

  • Filter contacts who replied within 4 hours to identify high-intent leads that warrant immediate sales attention

  • Build a campaign performance report comparing average time to first reply across campaigns to evaluate which messaging triggers the fastest engagement

  • Trigger a workflow that routes fast-replying contacts (under 24 hours) to a senior closer for priority handling

Sender reply time (hours)

Identifier: heyreach_sender_reply_time | Format: Number (integer, hours) | Update logic: Overwrites

Number of hours your sender (rep) took to reply back to the contact after receiving their reply. Measures rep responsiveness, not lead responsiveness.

Use cases:

  • Build a rep performance report showing average sender reply time by team member to identify reps who respond slowest to engaged leads

  • Filter conversations where the sender took longer than 24 hours to reply for coaching opportunities and SLA compliance reviews

  • Trigger an internal Slack notification when sender reply time exceeds a threshold (e.g. 8 hours) to flag potential drop-offs in active conversations

Section 4 - Intent

Intent properties answer the question "what kind of replies is this contact giving?"

HeyReach classifies each reply as Positive, Neutral, or Negative based on its content, and these properties surface that classification at the contact level.

Use them to prioritize follow-up, segment lead quality, and avoid spending sales cycles on contacts whose intent is clearly negative.

HeyReach intent

Identifier: heyreach_intent | Format: Dropdown (Positive / Neutral / Negative) | Update logic: Overwrites

The latest intent classification HeyReach assigned to a reply from this contact.

Use cases:

  • Filter contacts where intent equals Positive to build a high-quality lead list for sales rep follow-up

  • Build a report comparing positive intent rate across campaigns to identify which messaging elicits the strongest replies

  • Trigger a workflow that auto-creates a deal in HubSpot the moment intent flips to Positive on a contact

HeyReach positive intent count

Identifier: heyreach_positive_intent_count | Format: Number (integer) | Update logic: Increments

Total number of replies classified as Positive across all HeyReach interactions with this contact.

Use cases:

  • Filter contacts with 2 or more positive intent signals to identify consistently engaged prospects worth deal-stage progression

  • Build a report showing positive intent count per sender to evaluate which reps are best at moving conversations forward

  • Trigger a workflow that escalates the contact to an account executive when positive intent count crosses a defined threshold

HeyReach negative intent count

Identifier: heyreach_negative_intent_count | Format: Number (integer) | Update logic: Increments

Total number of replies classified as Negative across all HeyReach interactions with this contact.

Use cases:

  • Filter contacts with 1 or more negative intent signals to suppress them from future campaigns and avoid further outreach

  • Build a report identifying campaigns with above-average negative intent counts to flag messaging that may be triggering objections

  • Trigger a workflow that automatically marks the contact as do-not-contact in HubSpot the moment negative intent is recorded

Last intent date

Identifier: heyreach_last_intent_date | Format: DateTime | Update logic: Overwrites

The date and time of the most recent reply where HeyReach classified intent for this contact.

Use cases:

  • Filter contacts where last intent date is more recent than 7 days to focus reps on the freshest qualified conversations

  • Build a stale intent report identifying contacts whose intent classification is more than 60 days old, signalling that the lead may have gone cold

  • Trigger a workflow that re-prioritizes the contact in a sales rep's task list whenever the last intent date refreshes

Section 5 - Operational context

Operational context properties answer the question "what is the current state of this contact in HeyReach?"

They track the most recent activity and the responsible outbound actor, supporting troubleshooting and ownership visibility without modifying HubSpot's native ownership model.

Last HeyReach activity date

Identifier: heyreach_last_activity_date | Format: DateTime | Update logic: Overwrites

The date and time of the most recent HeyReach activity logged on this contact, including connection requests, messages, replies, and InMails.

Use cases:

  • Filter contacts whose last HeyReach activity is more than 14 days ago to identify dormant conversations needing re-engagement

  • Build an activity recency report showing the distribution of contacts by days-since-last-activity to gauge campaign momentum

  • Trigger a workflow that pauses the contact in HeyReach if no activity has occurred within a defined window, freeing up sender capacity

HeyReach outbound actor

Identifier: heyreach_outbound_actor | Format: Single-line text | Update logic: Overwrites

The team member responsible for the most recent outbound interaction with this contact. Stored separately from HubSpot's native Contact Owner field, which HeyReach never modifies.

Use cases:

  • Filter contacts by outbound actor to give each rep a personalized list of leads they are actively engaging on LinkedIn

  • Build a per-actor performance report comparing outreach volume, reply rate, and intent across team members

  • Trigger a workflow that notifies the outbound actor in Slack whenever a new reply lands on a contact they are responsible for

Quick reference - all 20 properties

Property name

Identifier

Format

Update logic

Created by HeyReach

heyreach_created_by_heyreach

Boolean

Set once

First HeyReach touch date

heyreach_first_touch_date

DateTime

Set once

First HeyReach campaign name

heyreach_first_campaign_name

Text

Set once

First HeyReach campaign ID

heyreach_first_campaign_id

Text

Set once

HeyReach campaign count

heyreach_campaign_count

Number

Increments

HeyReach list count

heyreach_list_count

Number

Increments

Last HeyReach campaign name

heyreach_last_campaign_name

Text

Overwrites

Last HeyReach campaign ID

heyreach_last_campaign_id

Text

Overwrites

Last HeyReach sender

heyreach_last_sender

Text

Overwrites

HeyReach reply received

heyreach_reply_received

Boolean

Overwrites

HeyReach reply count

heyreach_reply_count

Number

Increments

First HeyReach reply date

heyreach_first_reply_date

DateTime

Set once

Last HeyReach reply date

heyreach_last_reply_date

DateTime

Overwrites

Time to first reply (hours)

heyreach_time_to_first_reply

Number

Set once

Sender reply time (hours)

heyreach_sender_reply_time

Number

Overwrites

HeyReach intent

heyreach_intent

Dropdown

Overwrites

HeyReach positive intent count

heyreach_positive_intent_count

Number

Increments

HeyReach negative intent count

heyreach_negative_intent_count

Number

Increments

Last intent date

heyreach_last_intent_date

DateTime

Overwrites

Last HeyReach activity date

heyreach_last_activity_date

DateTime

Overwrites

HeyReach outbound actor

heyreach_outbound_actor

Text

Overwrites


Have questions about the HeyReach property group or how a specific property is populating in HubSpot? Chat with our support team via the widget in the bottom-right corner. 🚀

Did this answer your question?