Heap

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

Integrate the Heap API with the MongoDB API

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

New Collection from the MongoDB API

Emit new an event when a new collection is added to a database

 
Try it
New Database from the MongoDB API

Emit new an event when a new database is added

 
Try it
New Document from the MongoDB API

Emit new an event when a new document is added to a collection

 
Try it
New Field in Document from the MongoDB API

Emit new an event when a new field is added to a document

 
Try it
Create New Document with the MongoDB API

Create a new document in a collection of your choice. See the docs here

 
Try it
Delete a Document with the MongoDB API

Delete a single document by ID. See the docs here

 
Try it
Find Document by Id with the MongoDB API

Retrieves a single document by ID. See the docs here

 
Try it
Search Documents with the MongoDB API

Search for specific documents or return all documents. See the docs here

 
Try it
Update a Document with the MongoDB API

Updates a single document by ID. See the docs here

 
Try it

Overview of Heap

Heap is an analytics tool that allows developers to track user engagement and
conversions within their web or mobile app. Heap provides an API that
developers can use to build custom integrations, dashboards, and reports.

Some examples of what you can build using the Heap API include:

  • A dashboard to track app usage and engagement metrics
  • A report to track conversion rates and revenue
  • A custom integration to track user behavior in your app

Connect Heap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { axios } from "@pipedream/platform"
export default defineComponent({
  props: {
    heap: {
      type: "app",
      app: "heap",
    }
  },
  async run({steps, $}) {
    // 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 axios($, {
      method: "POST",
      url: `https://heapanalytics.com/api/track`,
      headers: {
        "Content-Type": "application/json",
      },
      data: {
        app_id: this.heap.$auth.app_id,
        identity: params.identity,
        event: params.event,
        timestamp: params.timestamp || (new Date()).toISOString(),
        properties: params.properties,
      }
    })
  },
})

Overview of MongoDB

Assuming you want a few paragraph about the MongoDB API:

MongoDB offers a powerful API that allows developers to interact with their
databases in a variety of ways. The API provides methods for performing
standard CRUD (create, read, update, delete) operations, as well as more
specialized methods like bulk write operations and aggregate queries. MongoDB
also offers a rich set of indexing options that allow developers to optimize
their queries for maximum performance. With the MongoDB API, developers can
build a wide variety of applications, from simple data-driven apps to complex
event-driven systems.

Connect MongoDB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import mongodb from 'mongodb'

export default defineComponent({
  props: {
    mongodb: {
      type: "app",
      app: "mongodb",
    },
    collection: {
      type: "string"
    },
    filter: {
      type: "object"
    }
  },
  async run({steps, $}) {
    const MongoClient = mongodb.MongoClient
    
    const {
      database,
      hostname,
      username,
      password,
    } = this.mongodb.$auth
    
    const url = `mongodb+srv://${username}:${password}@${hostname}/test?retryWrites=true&w=majority`
    const client = await MongoClient.connect(url, { 
      useNewUrlParser: true, 
      useUnifiedTopology: true 
    })
    
    const db = client.db(database)

    const results = await db.collection(this.collection).find(this.filter).toArray();
    $.export('results', results);
    
    await client.close()
  },
})