Heap.io Destination
Send your event data from RudderStack to Heap.io.
Heap.io is a popular analytics platform built for marketers, product managers, and customer success teams.
RudderStack supports Heap.io as a destination to which you can send your event data in real-time.
Find the open source transformer code for this destination in the GitHub repository.
Connection compatibility
| Destination Information |
|---|
- Status: Generally Available
- Supported sources:
Android (Java)
,
Android (Kotlin)
,
iOS (Obj-C)
,
iOS (Swift)
,
Web,
Unity,
AMP
,
Cloud,
Warehouse,
React Native
,
Flutter,
Cordova,
Shopify
- Refer to it as Heap.io in the Integrations object.
|
| Source | Cloud mode | Device mode | Hybrid mode |
|---|
| AMP |  |  |  |
| Android (Java) |  |  |  |
| Android (Kotlin) |  |  |  |
| Cloud |  |  |  |
| Cordova |  |  |  |
| Flutter |  |  |  |
| iOS (Obj-C) |  |  |  |
| iOS (Swift) |  |  |  |
| React Native |  |  |  |
| Shopify |  |  |  |
| Unity |  |  |  |
| Warehouse |  |  |  |
| Web |  |  |  |
| Source | Identify | Page | Track | Screen | Group | Alias | Record | AudienceList |
|---|
| Supported sources |  |  |  |  |  |  |  |  |
| Web |  |  |  |  |  |  |  |  |

In the web device mode integration, that is, using JavaScript SDK as a source, RudderStack loads the Heap native SDK from thehttps://cdn.heapanalytics.com/ domain.
Based on your website’s content security policy, you might need to allowlist this domain to load the Heap SDK successfully.
Setup
- From your RudderStack dashboard, add the source. Then, from the list of destinations, select Heap.io.
- Assign a name to your destination and click Next.
Connection settings
Event filtering settings
| Setting | Description |
|---|
| Client-side Events Filtering | Specify which events should be blocked or allowed to flow through to Heap.
See the Client-side Events Filtering guide for more information. |
Web SDK settings
| Setting | Description |
|---|
| Use device mode to send events | Turn on this toggle to send events from your JavaScript SDK in web device mode. |
| Consent management settings | Configure the consent management settings for the specified source by choosing the Consent management provider from the dropdown and entering the relevant consent category IDs.
See Consent Management in RudderStack for more information on this feature. |
Identify
You can use the identify call to capture the relevant details about the visiting user.

userId or anonymousId is a required field to send the identify call successfully.
A sample identify call is shown below:
rudderanalytics.identify("1hKOmRA4GRlm", {
name: "Alex Keener",
email: "alex@example.com",
})
Supported traits mapping
RudderStack maps the following user traits to the corresponding Heap properties:
| RudderStack property | Heap property |
|---|
userId
traits.userId
traits.id
context.traits.userId
context.traits.id
anonymousId Required | identity |
traits
context.traits | properties |

If idempotencyKey is present in traits or context.traits, it is removed before sending to Heap.
Track
You can use the track call to track your user actions and their associated properties.

userId or anonymousId is a required field to send the track call successfully.
A sample track call is shown below:
rudderanalytics.track("Order Completed", {
userId: "1hKOmRA4GRlm",
order_id: "12345",
category: "clothing",
revenue: 99.9,
shipping: 13.99,
tax: 10.99,
promotion_id: "NEW_PROMO_10",
})
Supported properties mapping
RudderStack maps the following event properties to the corresponding Heap properties:
| RudderStack property | Heap property |
|---|
userId
traits.userId
traits.id
context.traits.userId
context.traits.id
anonymousId Required | identity |
event Required | event |
properties | properties |
timestamp
originalTimestamp | timestamp |
properties.idempotencyKey | idempotency_key |

RudderStack maps properties.idempotencyKey to the top-level idempotency_key field in the Heap event. It is then removed from the nested properties object to match the Heap API specification.
FAQ
Where can I find my Heap App ID?
- Log in to your Heap account.
- Go to App > Settings > Projects, and copy the required development or production App ID.
Questions? We're here to help.
Join the RudderStack Slack community or email us for support