Heap

Fuel product growth and team agility. Heap automatically captures web and mobile app behavioral data. Retroactively analyze behavioral data without writing code.

Go to site

Integrate the Heap API with the Firebase Admin SDK API

Setup the Heap API trigger to run a workflow which integrates with the Firebase Admin SDK API. Pipedream's integration platform allows you to integrate Heap and Firebase Admin SDK remarkably fast. Free for developers.

Add Account Properties

This API allows you to attach custom account properties to users. An account ID or use of our Salesforce integration is required for this to work. Note that, as your set of accounts and their properties change, you’ll need to periodically call this API with an account ID as well as any account-level properties.

 
Try it
Add User Properties

This API allows you to attach custom properties to any identified users from your servers, such as Sign Up Date (in ISO8601 format), Total # Transactions Completed, or Total Dollars Spent. Note that Heap will create a new property if it doesn’t already exist, and will overwrite the previous property if one already exists with the same name.

 
Try it
Save Event to Firestore
 
Try it
XXX
 
Try it

Connect Heap

// From the docs: https://docs.heap.io/reference#track-1
// "Requests are limited to 30 requests per 30 seconds per identity per app_id"
return await require("@pipedreamhq/platform").axios(this, {
  method: "POST",
  url: `https://heapanalytics.com/api/track`,
  headers: {
    "Content-Type": "application/json",
  },
  data: {
    app_id: auths.heap.app_id,
    identity: params.identity,
    event: params.event,
    timestamp: params.timestamp || (new Date()).toISOString(),
    properties: params.properties,
  }
})

Connect Firebase Admin SDK

const admin = require('firebase-admin')

// Enter values for the following parameters below this code step,
// These get passed to the initializeApp method below.
const { projectId, clientEmail, privateKey } = auths.firebase_admin_sdk

// Before passing the privateKey to the initializeApp constructor,
// we have to replace newline characters with literal newlines
const formattedPrivateKey = privateKey.replace(/\\n/g, '\n')

// See https://firebase.google.com/docs/reference/admin/node/admin.credential.html#cert
if (!admin.apps.length) {
  admin.initializeApp({
    credential: admin.credential.cert({
      projectId,
      clientEmail,
      privateKey: formattedPrivateKey,
    })
  })
}