HeyReach to Attio LinkedIn Activity Sync

HeyReach Logo
Attio Logo
Open Beta

This integration is in beta. Please Contact us for access.

HeyReach + Attio links LinkedIn with your CRM both ways. Push People from Attio into HeyReach campaigns and get replies, accepts, views, and campaign updates written back to Attio in real time. Setup takes 30 seconds (install the app, add a connection, paste your HeyReach API key) and it creates the “HeyReach Events” list and secure webhooks for you. End result: a cleaner pipeline, clearer context on every Person, and signals you can automate.

HeyReach + Attio: Bidirectional LinkedIn Automation

Push curated targets from Attio to HeyReach and stream LinkedIn engagement back into Attio in real-time.

This integration works with HeyReach (affiliate link - we may earn a commission if you sign up through our link). This app is provided free of charge, and affiliate commissions help support the ongoing development and maintenance of this service.

What it does

Outbound (Attio → HeyReach): Enroll People into HeyReach campaigns/lists with mapped fields.
Inbound (HeyReach → Attio): Capture connection, message, and campaign events to an Attio list and create any Person records not already in the CRM.
Continuous sync: Keep statuses and engagement context aligned across both tools.

Setup (30 seconds)

  1. Install the Attio app in your workspace
  2. Get your HeyReach API key from HeyReach settings
  3. Click "Add Connection" in Attio workspace connections
  4. Paste your API key (that's it!)

Configuration Options

Connection String Formats

The integration supports two basic connection formats for maximum flexibility:

1. Simple API Key (syncs ALL events from HeyReach)

exampleApiKey12345=

Just paste your HeyReach API key directly.

2. Customized Event Listening (JSON)

All HeyReach Events

{
  "apiToken": "exampleApiKey12345",
  "heyreachEvents": ["all"]
}

Listen to all available LinkedIn events.

Specific Events Only

{
  "apiToken": "exampleApiKey12345",
  "heyreachEvents": [
    "connection_request_accepted",
    "message_reply_received"
  ]
}

Choose exactly which events to listen for.

Available Event Types

Choose what events you want to listen for:

Connection Events

  • connection_request_sent - Notifies when a connection request has been sent to a LinkedIn account through a HeyReach campaign
  • connection_request_accepted - Triggered when a LinkedIn account accepts your connection request as part of a HeyReach campaign

Messaging Events

  • message_sent - Occurs when you send a LinkedIn message through a HeyReach campaign (connection request messages are not tracked)
  • message_reply_received - Activated when you receive the first reply to a LinkedIn message as part of a HeyReach campaign
  • inmail_sent - Triggered when you send a LinkedIn InMail message through a HeyReach campaign
  • inmail_reply_received - Notifies when you receive the first reply to a LinkedIn InMail message that is part of a HeyReach campaign

Engagement Events

  • follow_sent - Occurs when you start following a LinkedIn profile through a HeyReach campaign
  • liked_post - Sent when you have liked a LinkedIn Profile's post as part of a HeyReach campaign
  • viewed_profile - Sent when you view a LinkedIn profile as part of a HeyReach campaign

Meta Events

  • lead_tag_updated - Occurs when you add or remove tags from a contact in HeyReach

Special Events

  • every_message_reply_received - Notifies you every time a lead replies to your LinkedIn messages or InMails (captures all replies, not just the first)

What happens after you click "Add Connection"

The integration automatically:

  • Creates a "HeyReach Events" list in Attio with custom attributes
  • Registers webhooks in HeyReach for all LinkedIn events
  • Sets up secure HTTPS endpoints in Attio (these are not displayed or controllable in the Attio UI)
  • Prepares your workspace for immediate use

Outbound: Attio → HeyReach

How to enroll

  • Individual records: Edit fields before sending, then choose campaign/list
  • Bulk records: Send as-is (≤ 250 due to Attio constraint), get summary stats after

Fields sent

  • Required: First name, last name, LinkedIn profile URL
  • Optional (if present): Email, company, job title, company website, location, description

Notes

  • Attio Person → HeyReach Lead mapping is automatic
  • Enrollment status is recorded so you can verify success/failures quickly
  • LinkedIn URLs are automatically cleaned where feasible (trailing slashes, query parameters removed)

Inbound: HeyReach → Attio

Flow

  1. Webhook received → classified by type
  2. Person is matched to an existing record by LinkedIn URL or Email Address, or (if not found) is created
  3. Person updated (key fields) + detailed event appended to HeyReach Events list

Event types handled

Connection: connection_request_sent, connection_request_accepted
Messaging: message_sent, message_reply_received, inmail_sent, inmail_reply_received
Engagement: follow_sent, liked_post, viewed_profile
Campaign: lead_tag_updated

Data created in Attio

  • List: HeyReach Events (all webhook events)
  • Attributes: event type, campaign name, timestamps, LinkedIn profile URL, lead tags, message metadata

Technical Architecture

Data Flow Architecture

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│   Attio     │◄──►│  HeyReach    │◄──►│  LinkedIn   │
│    CRM      │    │  Platform    │    │  Events     │
└─────────────┘    └──────────────┘    └─────────────┘
       │                    │                    
       │                    │                    
       ▼                    ▼                    
┌─────────────┐    ┌──────────────┐    
│  Person     │    │   Campaign   │    
│  Records    │    │   Sequences  │    
└─────────────┘    └──────────────┘    
       │                    │          
       │                    │          
       ▼                    ▼          
┌─────────────┐    ┌──────────────┐    
│  HeyReach   │    │   Event      │
│  Events     │    │   Webhooks   │
│   List      │    │              │
└─────────────┘    └──────────────┘    

Known limitations & workarounds

  • Attio bulk cap (≤250): Process large sends in batches of 250 or less. Otherwise the App will not appear in the Attio user interface.
  • Legacy LinkedIn URLs: HeyReach rejects /pub/… linkedin URLs, which are occasionally found in Attio or enrichment providers.

Frequently Asked Questions

1. What does the integration do?

It creates a two-way sync between Attio and HeyReach. You can:

  • Send People from Attio into HeyReach lists and campaigns.
  • Receive LinkedIn engagement events (views, replies, accepts, messages, etc.) from HeyReach into Attio.
  • Maintain an event stream for reporting or triggering workflows.

2. Where do HeyReach events show up in Attio?

Events are stored as list entries in a special "HeyReach Events" list, not as fields on the Person object.
This avoids cluttering core Person fields and supports one-to-many event relationships.


3. 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.


4. Does the integration create duplicate People in Attio?

No. It checks for an existing match by email address and then LinkedIn URL before creating a new Person.
If no match is found, it creates a net-new record.


5. How fast do events appear in Attio after they happen in HeyReach?

When adding people to HeyReach campaigns, we've seen actions often take 10–20 minutes before campaign events start to happen. Once the events happen, they are sent in real time to Attio. A good way to test that the integration is working is to add someone to a HeyReach list from Attio, and then to add a "tag" to them in HeyReach. That "tag" event will show up in the Attio List immediately.


6. What data is required to add someone from Attio to HeyReach?

The only mandatory fields are First name, Last Name, and a valid LinkedIn profile URL.
HeyReach will reject entries missing any of these fields.


7. Can I trigger workflows from HeyReach events in Attio?

Yes. Use "List entry added" as the trigger, then branch based on the "event type" (e.g., Viewed Profile, Message Sent, Reply Received, Tag Added).


8. Why is the Company URL (the Company LinkedIn URL) sometimes empty?

That field comes directly from HeyReach and may be sparsely populated. It's inconsistent across profiles and depends on HeyReach's internal data availability.


9. Do HeyReach events update Attio's "Last Interaction" field?

No. Attio currently doesn't allow third-party apps to write to the native activity stream or last-interaction field.
Workarounds include:

  • Using a custom object for interaction history.
  • Installing our separate User Interaction History app to track, which logs email/calendar last-interaction changes to a list. With a lightweight workflow, you could insert these LinkedIn interactions to that same List.

10. Why is each event a separate list entry instead of updating one row per person?

The list is intended to function as an event stream.
This design supports:

  • Historical reporting (e.g., "How many profile views last quarter?").
  • Triggering workflows on specific events without overwriting prior data.

11. Are there any bulk-action limits in Attio I should know about?

Yes. Attio limits bulk edits and adds to 250 records at a time, even when using the UI.


12. Is this a paid app?

Currently, this is free to use. We built this to test functionality in real-world use, and we think you should benefit from it. If you need some custom functionality from this app, please consider contacting us and letting us know, we'd be more than happy to build it for you.

Changelog

Version 1.8 (Latest)

  • Enhanced Configuration: Added flexible connection string options for event filtering
  • Improved Validation: Better LinkedIn URL validation and automatic cleanup
  • UI/UX Improvements: Native Attio design patterns, better error handling
  • Performance: Retry logic for network failures, optimized bulk operations

Version 1.7

  • Beta testing & feedback integration

Version 1.6

  • Beta testing & feedback integration

Version 1.5

  • Beta testing & feedback integration

Version 1.4

  • Beta testing & feedback integration
  • Webhook event expansion

Version 1.3

  • Beta testing & feedback integration
  • Core functionality stabilization
  • Initial production readiness

Version 1.2

  • Beta testing & feedback integration
  • Enhanced error handling
  • Improved data mapping

Version 1.1

  • Beta testing & feedback integration
  • Basic webhook functionality
  • Core enrollment features

Version 1.0

  • Initial beta release
  • Basic Attio ↔ HeyReach integration
  • Core enrollment and webhook functionality