Skip to main content

Endpoint

Auto-registered on connect. The URL Nous registers with HeyReach is:
POST https://api.yourdomain.com/inbound/heyreach/<your-workspace-id>
You can see it (and the registered webhook IDs) under Settings → Integrations → HeyReach after connecting.

Auth

HeyReach does not sign webhook payloads. For an extra layer of protection, set HEYREACH_WEBHOOK_SECRET in nous.env. When set, Nous appends ?secret=<value> to the registered URL and rejects any inbound request whose query string doesn’t match.

Setup in HeyReach

Nothing manual. On connect, Nous calls POST /api/public/webhooks/CreateWebhook once per event type. On disconnect, Nous calls DELETE /api/public/webhooks/DeleteWebhook?webhookId=… for each.

Supported events

HeyReach eventActivity loggedCreates contact?
MESSAGE_REPLY_RECEIVEDlinkedin_message_receivedYes
EVERY_MESSAGE_REPLY_RECEIVEDlinkedin_message_receivedYes
INMAIL_REPLY_RECEIVEDlinkedin_message_receivedYes
CONNECTION_REQUEST_ACCEPTEDlinkedin_connection_acceptedYes
CONNECTION_REQUEST_SENTlinkedin_connection_sentNo
MESSAGE_SENTlinkedin_message_sentNo
INMAIL_SENTlinkedin_message_sentNo
FOLLOW_SENTlinkedin_follow_sentNo
LIKED_POSTlinkedin_likeNo
VIEWED_PROFILElinkedin_profile_viewNo
CAMPAIGN_COMPLETEDcampaign_completedNo
LEAD_TAG_UPDATEDtag_updatedNo
Replies and accepted connections create a new contact if one doesn’t exist yet. All other events are update-only.

Payload

Nous reads these fields from the HeyReach payload:
{
  "eventType": "MESSAGE_REPLY_RECEIVED",
  "leadProfile": {
    "firstName": "Jane",
    "lastName": "Smith",
    "emailAddress": "jane@company.com",
    "linkedInUrl": "https://linkedin.com/in/janesmith"
  },
  "campaign": { "id": 123, "name": "LinkedIn Q2" },
  "message": { "id": "m_abc", "text": "Thanks for reaching out..." },
  "timestamp": "2026-05-26T12:00:00Z"
}
Identity resolves on LinkedIn URL first, then email — so connections without an email-on-file are still matched.

Deduplication

Events are deduplicated by message ID where one is present. Otherwise events are keyed on {eventType, lead, timestamp}.