Heap

Signal sends server-side custom events to Heap’s Track API for identified users.

Heap requires an identity (or its own SDK’s numeric user ID) on every server-side event. Signal sends its user ID as identity, so events from visitors who have not identified are not sent. Heap’s browser snippet keeps autocapturing anonymous behaviour.

Prerequisites

Your Heap environment’s App ID (Account > Manage > Projects / Environments).

Configuration fields

FieldRequiredDescription
app_idYesHeap environment ID, sent as app_id.
eu_data_centerNoYour Heap data is in the EU: send to c.eu.heap-api.com.
api_keyNoNot used: the Track API is authenticated by the App ID.

API endpoint

POST https://heapanalytics.com/api/track          (EU: https://c.eu.heap-api.com/api/track)
Content-Type: application/json

{"app_id": "11", "identity": "crm-user-7", "event": "purchase", "timestamp": "2026-09-22T10:00:00Z",
 "idempotency_key": "{Signal event ID}",
 "properties": {"transaction_id": "T-1001", "value": 104.5, "currency": "EUR", "item_ids": ["SKU-1", "SKU-2"]}}

Property values must be numbers or strings (arrays are stored joined with ||), so booleans are sent as strings and items[] becomes item_ids and item_names lists. user_id and session_id are reserved in properties, so a media session_id is sent as media_session_id. Limit: 30 requests per 30 seconds per identity. Source: Track (updated 2026-06-03, read 2026-09-22).

Presets

Default (core cross-vertical events), Retail, Insurance, B2B / SaaS, Travel and Media & Streaming: each maps the vertical’s event-spec events with their documented properties under the Signal event name, plus page_view. No personal data is sent.

Default consent category: analytics.

Blueprint

Blueprint version 0.4.0 (not yet tested against a live Heap environment).