with Shopify (OAuth) and Heap?
Emit new event whenever a collection is updated, including whenever products are added or removed from a collection.
Emit new customer data requests for data via a GDPR request.
Adds a product or products to a custom collection. See the documentation
Execute bulk mutations by uploading a JSONL file containing mutation variables. See the documentation
Shopify provides a powerful API that enables developers to build a wide range
of applications and tools for merchants. Some examples of what you can build
using the Shopify API include:
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
shopify: {
type: "app",
app: "shopify",
}
},
async run({steps, $}) {
const data = {
"query": `{
shop {
id
name
email
}
}`,
}
return await axios($, {
method: "post",
url: `https://${this.shopify.$auth.shop_id}.myshopify.com/admin/api/2024-04/graphql.json`,
headers: {
"X-Shopify-Access-Token": `${this.shopify.$auth.oauth_access_token}`,
"Content-Type": `application/json`,
},
data,
})
},
})
The Heap API enables you to automate and integrate your user analytics data with other applications. With Heap, you can extract insights on how users interact with your product, track events without code, and funnel this data into your CRM, marketing tools, or custom dashboards. It's about connecting the dots between user actions and your strategic moves. Heap's API lets you push or pull data, so you're always up-to-date on user behavior and can personalize user experiences at scale.
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,
}
})
},
})