HeyReach to Attio LinkedIn Activity Sync
The HeyReach app for Attio links LinkedIn with your CRM both ways. Enroll Attio People into HeyReach campaigns and lists from any Person record, and stream LinkedIn engagement (connection accepts, replies, profile views, tag changes) back into Attio in real time as entries on a dedicated HeyReach Events list. End result: a cleaner pipeline, clearer context on every Person, and signals you can automate.
The app has been approved by Attio but is not currently listed in the public App Store. Request access on our HeyReach tool page and we will send you straight to the install link in your workspace. It works with HeyReach via our affiliate link; the app itself is free.
How does the HeyReach + Attio sync work?
Outbound: Attio → HeyReach
- Individual enroll. Open a Person record, edit any field that needs updating before send, and choose the HeyReach campaign or list. The app maps Person → Lead automatically.
- Bulk enroll. Select up to 250 People in a list view (Attio's bulk cap) and enroll them in one action. You get a summary of successes and failures after.
- Required fields: first name, last name, LinkedIn profile URL.
- Optional fields: email, company, job title, company website, location, description.
- LinkedIn URL cleanup. Trailing slashes and tracking parameters are stripped before send; HeyReach rejects malformed URLs.
Inbound: HeyReach → Attio
- HeyReach fires a webhook for each LinkedIn event.
- The app classifies the event by type and matches the lead to an existing Attio Person by LinkedIn URL or email. If no match exists, a Person record is created.
- The Person record is updated with the latest engagement data, and a new entry is appended to the HeyReach Events list with full context.
Default events enabled on connection
When you add the HeyReach connection, the app turns on the four highest-signal events by default so you get value immediately: connection_request_accepted, message_reply_received, every_message_reply_received, and inmail_reply_received. The rest are opt-in from the Workspace Settings page.
What LinkedIn events does it listen for?
Every event below is available in the Workspace Settings panel. Toggling an event on does three things: creates a Person record in Attio if one does not already exist for the LinkedIn URL, appends an entry on the HeyReach Events list, and refreshes the Person record's engagement context.
Connection events
| Event code | Fires when |
|---|---|
connection_request_sent | A connection request was sent to a LinkedIn profile via a HeyReach campaign. |
connection_request_accepted | A LinkedIn profile accepted your connection request. |
Messaging events
| Event code | Fires when |
|---|---|
message_sent | You sent a LinkedIn message through a HeyReach campaign (connection-request copy is not tracked here). |
message_reply_received | You received the first reply to a LinkedIn message from a HeyReach campaign. |
inmail_sent | You sent a LinkedIn InMail message through a HeyReach campaign. |
inmail_reply_received | You received the first reply to a HeyReach-sent InMail. |
Engagement events
| Event code | Fires when |
|---|---|
follow_sent | You started following a LinkedIn profile through a HeyReach campaign. |
liked_post | You liked a LinkedIn profile's post as part of a HeyReach campaign. |
viewed_profile | You viewed a LinkedIn profile as part of a HeyReach campaign. |
Meta events
| Event code | Fires when |
|---|---|
lead_tag_updated | You added or removed a tag on a HeyReach contact. |
campaign_completed | A HeyReach campaign finished sending. Useful for triggering downstream Attio workflows when an outreach sequence wraps up. The handler is wired into the integration; the toggle is managed at the app level rather than via the per-event settings UI. |
Special events
| Event code | Fires when |
|---|---|
every_message_reply_received | Captures every reply (not just the first) on LinkedIn messages and InMails from HeyReach campaigns. |
How do I install the HeyReach app in Attio?
End-to-end installation, including connecting your HeyReach API key, takes about 30 seconds once you have the install link.
- Request access via our HeyReach tool page. The app was approved by Attio but is no longer listed publicly in the App Store. Fill out the short form on our /tools/heyreach/ page (email + workspace slug). We send you the install link straight into your Attio workspace within a few minutes.
- Install the app into your Attio workspace. Click the install link, accept the Attio app permission scope, and Attio drops you into the app's settings page.
- Grab your HeyReach API key. In HeyReach, open Settings → API and generate (or copy) your personal API key. You will paste this into Attio in the next step.
- Add a connection in Attio with the HeyReach API key. In the Attio app settings, click Add Connection, paste the HeyReach API key as plain text (no JSON wrapper), and save. The app provisions the "HeyReach Events" list, secure HTTPS webhook endpoints, and the default event subscriptions automatically.
- Pick which LinkedIn events you want logged. On the Workspace Settings page, toggle additional events on or off. Default-on events are connection_request_accepted, message_reply_received, every_message_reply_received, and inmail_reply_received. Enable the rest only if you want them in the stream.
- Save your preferences. Saving applies the toggles and updates HeyReach's webhook subscriptions. From this point on, every enabled event flows from HeyReach into the HeyReach Events list in real time, and you can enroll Attio People into HeyReach campaigns from any Person record.
What does each HeyReach Event entry contain?
Every webhook lands as a new entry on the HeyReach Events list with the following attributes filled in (some are event-specific and may be blank).
| Attribute | Description |
|---|---|
| Event Type | The HeyReach event code (e.g. message_reply_received). |
| Campaign Name | The HeyReach campaign the event belongs to. |
| Linked Person | The Attio Person matched (or created) for this event. |
| LinkedIn Profile URL | The cleaned LinkedIn URL from HeyReach. |
| Lead Tags | Any tags HeyReach has on the lead at the time of the event. |
| Timestamp | When the event happened in HeyReach. |
| Message Metadata | For messaging events: subject, snippet, and direction. |
What are the known limitations?
- Attio bulk cap (250 records). Bulk enrollment uses Attio's standard bulk-action limit. Selections over 250 do not surface the Enroll action.
- Legacy LinkedIn URLs. HeyReach rejects
/pub/…-style LinkedIn URLs that sometimes show up in legacy Attio data or older enrichment providers. Clean the URL before enrolling. - "Last Interaction" is not writable. Attio currently does not let third-party apps write to its native activity stream or last-interaction field. HeyReach events go to the dedicated list instead.
- Company LinkedIn URL is inconsistent. HeyReach's coverage of that field is sparse. Treat it as best-effort, not authoritative.
Frequently asked questions
What does the HeyReach + Attio sync do?
It creates a two-way sync between Attio and HeyReach. You enroll Attio People into HeyReach campaigns and lists with mapped fields. HeyReach pushes LinkedIn engagement events (views, replies, accepts, messages, tags) back into Attio in real time as entries on a dedicated HeyReach Events list. The result is one event stream you can report on and trigger workflows from inside Attio.
How do I install the HeyReach app? Is it in the Attio App Store?
It is not in the App Store anymore, but it is still available. Request access on our /tools/heyreach/ page and we send you straight to the install link in your Attio workspace.
Where do HeyReach events show up in Attio?
On a dedicated list called "HeyReach Events" (not as fields on the Person object). Each LinkedIn event is its own list entry. This keeps Person records clean and supports one-to-many event relationships (multiple replies, multiple campaign touches, etc.).
Why don't my HeyReach webhooks show up in Attio's UI?
Webhook handlers created via the Attio SDK are hidden by design. They still run behind the scenes and are removed automatically when you uninstall the integration.
Does the integration create duplicate People in Attio?
No. Before creating a new Person it checks for an existing match by email address and then by LinkedIn URL. Only when no match is found does it create a new record.
How fast do HeyReach events appear in Attio?
Once HeyReach starts producing events for a campaign, they flow into Attio in real time. The initial enrollment-to-first-event delay we have seen is typically 10 to 20 minutes (HeyReach is queuing the LinkedIn actions). To smoke-test the integration end to end, enroll someone from Attio into a HeyReach campaign, then add a tag to them in HeyReach. The lead_tag_updated event lands in Attio immediately.
What data is required to enroll a Person from Attio into HeyReach?
First name, last name, and a valid LinkedIn profile URL. HeyReach rejects entries missing any of these fields. The app cleans LinkedIn URLs (trailing slashes, tracking params) where it can.
Can I trigger Attio workflows from HeyReach events?
Yes. Use "List entry added" on the HeyReach Events list as your trigger, then branch on the event type attribute. Common patterns: queue Sales follow-ups for message_reply_received, route hot tags to a Slack channel, or auto-enroll in a different campaign on viewed_profile.
Why is Company LinkedIn URL sometimes empty on a HeyReach event entry?
That field comes straight from HeyReach, and HeyReach's coverage on the Company LinkedIn URL is inconsistent profile-to-profile. Treat it as best-effort.
Do HeyReach events update Attio's "Last Interaction" field?
No. Attio does not currently allow third-party apps to write to the native activity stream or last-interaction field. Workarounds: store LinkedIn interactions on a custom object you control, or use our separate User Interaction History app (it logs email/calendar last-interaction changes to a list, and a lightweight Attio workflow can insert HeyReach events into the same list).
Why is each event a separate list entry instead of updating one row per person?
Because the list is designed as an event stream, not a state table. Separate entries support historical reporting ("how many profile views last quarter?") and let you trigger workflows on specific events without overwriting prior data.
Are there bulk-action limits I should know about?
Yes. Attio limits bulk edits and adds to 250 records per action, even from the UI. If you select more than 250 People to enroll into HeyReach, the bulk action will not appear; split into smaller batches.
Is the HeyReach + Attio integration paid?
No. The app is free to install and use. We built it to test functionality in real-world deployments and have kept it open. If you want custom behavior beyond what ships, get in touch via the Contact page.