Streamlined
  • Apps
  • Documentation
  • Roadmap
  • Contact
Install Now →
Streamlined Apps
Streamlined Apps
⚡

Custom Events API

Related Apps
Advanced AI Analytics & AutomationsAdvanced AI Analytics & Automations
Description

The Custom Events API allows you to capture timestamped data for specific events, like “Offer Made”, “Payment Received”, “Tag Added”, etc.

Status
Featured

Overview

Previously in Streamlined Analytics, if you wanted to see when something happened, you were limited to the basic fields, like contact/opportunity/appointment created at, last updated, etc.

There was no way to track specific events, like when a tag was added or when a contact hit a certain stage in the pipeline.

Now though, we have a dedicated API endpoint and filter builder for these events!

Creating Events

Using the custom events API is easy and free.

Create an API Key

First, head to Settings > Integrations and click “New Integration”:

image

After clicking “Next”, you’ll be able to enter a name and view your created token:

Give your token a descriptive name.
Give your token a descriptive name.
You’ll want to copy the token in this screen since it cannot be shown again.
You’ll want to copy the token in this screen since it cannot be shown again.

Endpoint Basics

We’ll dive into how your events should be structured below. However, the basics are here:

{
	"endpoint_url": "https://gateway.streamlined.so/events/ingestion/v1",
	"headers": "X-API-Key"
}

Use a Workflow to Send Events

The easiest way to send events to Streamlined is using the Webhoook workflow action in CRM.

This Webhook action (not the Custom Webhook) is a free workflow action, and will not incur any additional cost.

image

Event Payload

Here are the possible event values you can send:

The only required fields in this payload are the event_name, distinct_id, and location_id.

This also means that every event must be associated to a single sub-account.

Payload Examples

Here is an example, sending a minimal payload using the Webhook workflow action in the CRM:

A minimal, descriptive example
A minimal, descriptive example
An example of how this might be used in your system
An example of how this might be used in your system

Sending Custom Properties

If you wish to send properties along with your event, you may need to use the Custom Webhook workflow action instead (which is billed as a premium action).

Note that these custom properties can’t yet be filtered on or displayed in the dashboard.

Here’s an example of how you might send the event:

In this example, the warning tells us that the custom value
In this example, the warning tells us that the custom value {{location.id}} does not exist. It’s safe to ignore this warning.
Though tedious, you can also use the free Webhook action to send your event properties
Though tedious, you can also use the free Webhook action to send your event properties

Note how we created the distinct_id property here. We used the month and year, like “09/25” - meaning that this will allow us to repeat the event every month, but we can’t send the same event every month.

Displaying Events

In order to display custom events, you can simply add them to your custom metric calculations as shown below:

There are currently two types of Custom Events, Account and Contact. Contact events require an attached
There are currently two types of Custom Events, Account and Contact. Contact events require an attached contact_id, but allow you to filter based on contact fields like date created or tags.
image

Other Details

Deleting Events

Currently, there is no dedicated endpoint for deleting custom events that you’ve sent.

If you’d like a specific event or set of events removed, you should 💬Get in Touch.

However, if your events are tied to a specific contact_id, you should be aware that deleting that contact will cascade the deletion to any custom events for that contact as well.

Other Relations

In the future, we plan to add support for relating custom events to other objects, such as opportunities, appointments, tasks, notes, etc.

Please request these if you would like them to be supported.

Distinct Events

If you send two events with the same distinct ID, the event will be updated, but the timestamp will remain the same.

Rate Limits

There are no rate limits as of now, though that may change in the future if there is significant adoption.

Frequent Questions

‣

Do you offer custom development work?

‣

Should I install your app at the agency level or location level?

‣

What’s your support like?

‣

How do I install your app?

‣

Do you offer a free trial?

‣

Can I request a feature or product?

‣

Are there any usage limits on your apps?

‣

Can I use your app on multiple accounts?

‣

How do I uninstall the app?

💬

Need to Get in Touch?

If you have any questions, concerns, or ideas, I’d love to hear them!

Visit the page below to book a call or get in touch right away.

Get in Touch →
Streamlined

Apps

Documentation

Roadmap

Contact

Designed, developed, & maintained by Ardent Labs (ardently.so)

{
	"event_name": "A descriptive name for the event, shown in dashboard",
	"location_id": "The location ID this event corresponds to",
	"distinct_id": "Optional: Something unique to this event, to prevent duplicates",
	"contact_id": "Optional: Allows you to associate this event to a single contact, meaning you can filter on events using contact fields in the dashboard",
	"timestamp": "Optional: One of UNIX timestamp in seconds or milliseconds, or an ISO 8601 string. If no timestamp is provided, the time of the first request will be used",
	"properties": {
		"description": "Optional: You can pass this properties field to store other data about the event. For instance, if you wanted to track every time a payment was collected, you could store the total amount of the transaction. Only strings and finite numbers are accepted.",
		"value": 1
	}
}