Freshpaint
HomeLogin
  • Documentation
    • What is Freshpaint?
    • ⚕️HIPAA Mode
    • 🏗️Building Out Your Account
    • 🌐Overview of Features
    • Guides
      • 📡Add Autotrack to your website to collect data from your users
        • Installing the Freshpaint Javascript SDK
        • Installing the Freshpaint SDK with a Content Security Policy (CSP)
        • Installing the Freshpaint Javascript SDK with Server-Side Rendering (SSR) + React
        • Autocapture + React
        • Configuring a Destination
        • Labeling User Actions
        • How do I install Freshpaint with Typescript?
      • 🔁Send historical data to any destination with Time Machine
      • Next.js Quickstart Guide
      • Android Quickstart Guide
        • Installing the Freshpaint Android SDK
        • Configuring a Destination
        • Instrumenting Your App
      • iOS Quickstart Guide
        • Installing the Freshpaint iOS SDK
        • Configuring a Destination
        • Instrumenting Your App
      • React Native Quickstart Guide
        • Installing the Freshpaint React Native SDK
        • Configuring a Destination
        • Labeling User Actions
        • Configuring Property Capture
    • Setting up Properties
    • Setting up Your Destinations
      • Enabling and Disabling a Destination
      • Deleting a Destination
    • Setting up Your Events
    • User Identification
      • Designated Identify Properties
    • Maps
    • Analytics (Beta)
      • Web Analytics Dashboard
      • Campaigns
      • Service Lines
      • Data Glossary
    • Translations
    • Web Tracker Monitoring
      • Tracker Resolution Types
      • Historical Scans
  • Integrations
    • Destinations
      • Demand Side Platforms (DSPs)
        • Basis
          • Basis Quick Start Guide
          • Basis Reference
        • Google Campaign Manager 360
        • StackAdapt
          • StackAdapt Quick Start Guide
          • StackAdapt Reference
        • theTradeDesk
          • theTradeDesk Quick Start Guide
          • theTradeDesk Reference
          • theTradeDesk with CM360 Configuration Guide
        • Viant
          • Viant Quick Start Guide
          • Viant Reference
      • Direct Response Ads
        • Facebook Conversions API
          • Facebook Conversions API Quick Start Guide
          • Facebook Conversions API Reference
        • Google Ads Conversion API
          • Google Ads Conversion API Quick Start Guide
          • Google Ads Conversions API Reference
        • Google Ads
          • Google Ads Quick Start Guide
          • Google Ads Reference
        • LinkedIn Ads
          • LinkedIn Ads Quick Start Guide
          • LinkedIn Ads Reference
        • Microsoft Ads (formerly Bing Ads)
          • Microsoft Ads Quick Start Guide
          • Microsoft Ads Reference
          • Microsoft Ads Multi-Config Reference
        • Pinterest Ads (Beta)
          • Pinterest Ads Quick Start Guide
          • Pinterest Ads Reference
        • Pinterest Tag
        • Reddit Ads
          • Reddit Ads Quick Start Guide
          • Reddit Ads Reference
        • TikTok Ads
        • Twitter Ads
      • Data Activation
        • ActiveCampaign
          • ActiveCampaign Quick Start Guide
          • ActiveCampaign Reference
        • Amplitude
          • Amplitude Quick Start Guide
          • Amplitude Reference
        • Braze (formerly Appboy)
          • Braze Quick Start Guide
          • Braze Reference
        • Customer.io
          • Customer.io Quick Start Guide
          • Customer.io Reference
        • Freshsales
        • Google Analytics 4 Proxy
          • Google Analytics 4 Proxy Quick Start Guide
          • Google Analytics 4 Proxy Reference
          • Google Analytics 4 Proxy Advanced Tracking Configurations
        • Google Analytics 4 Server-Side
          • Google Analytics 4 Server-Side Quick Start Guide
          • Google Analytics 4 Server-Side Reference
        • Heap
        • Hotjar
        • HubSpot Cloud
        • HubSpot Web
        • impact.com
          • Impact.com Quick Start Guide
          • Impact.com Reference
        • Intercom
          • Intercom Quick Start Guide
          • Intercom Reference
        • Iterable
          • Iterable Quick Start Guide
          • Iterable Reference
        • June
        • Klaviyo
        • Mixpanel
          • Mixpanel Quick Start Guide
          • Mixpanel Reference
        • OneSignal
          • OneSignal Quick Start Guide
          • OneSignal Reference
        • Sendinblue
        • Sentry
        • Vero Cloud
        • Webengage
        • Webhooks
        • Woopra
        • Zendesk
      • Data Warehouses
        • Azure Warehouse Setup
        • BigQuery Warehouse Setup
        • Databricks Warehouse Setup
        • Postgres Warehouse Setup
        • Redshift Warehouse Setup
        • S3 Warehouse Setup
        • Snowflake Warehouse Setup
      • Consent Management
        • Osano
        • OneTrust
        • Custom Consent Manager
    • Sources
      • Web
        • Autotrack
        • Precision Tracking
      • CallRail
      • Invoca
      • Customer.io
      • Intercom
      • Mailchimp
      • React Native
      • SendGrid
      • Sendinblue
      • Server-Side
      • iOS
    • 🔷Google Tag Manager integration
      • Google Tag Manager migration
      • Quick Start Guide
    • 📺Freshpaint Video Platform
    • 🖼️Impression Pixel
  • Admin Panel
    • Event Library
      • Event Library Bulk Actions
      • Event Definition Filters
      • Event Tester
      • 🔁Time Machine
      • Visual Tagger
      • Advanced Options
        • Tag Manager
        • Disabling Target Text Capture
        • Cross Domain Tracking
    • Projects & Environments
    • Teams
      • Role-Based Access Control (RBAC)
    • Transformations
      • Standard Events
      • Modify Data
      • Modify User Data
      • SQL Transformations
    • 📈Destination Monitoring
    • 🔎Investigate: Testing and Debugging
      • Live View
      • Event Verification
  • Reference
    • Developer Docs
      • Freshpaint Web SDK Reference
      • Freshpaint Web SDK Options
      • Freshpaint React Native SDK Reference
      • Freshpaint iOS SDK Reference
      • Freshpaint Android SDK Reference
      • HTTP API
    • Frequently Asked Questions
      • How do I circumvent ad blockers?
      • Can Freshpaint track users across domains?
      • Can I install Freshpaint on a Chrome extension?
      • What properties are captured with my events?
      • How Do I Switchover From Segment?
      • How Do I Switch From Native Google Analytics to the Freshpaint Google Analytics Destination?
      • Where do I find my Environment ID?
      • Is Freshpaint GDPR & CCPA Compliant?
      • Can I use transformations to anonymize data for client-side destinations?
      • How do I QA or debug my data?
      • Why Do My Numbers Differ Across Different Tools?
      • Billing: How Does Freshpaint Determine MTUs?
      • Can I Use Freshpaint on Multiple Sites?
      • How Can I Export Data From Freshpaint?
      • How Does Freshpaint Identify Users?
      • How Many Events Should I Create?
      • What Should I Name My Events?
      • How do I track scroll depth?
      • What Data Does Freshpaint Collect?
        • Data Collected on Web
        • Data Collected on React Native
      • Does Freshpaint's Autotrack slow my site down?
      • Running Freshpaint with a Proxy
      • Should my Environment ID be treated as a sensitive key?
      • How Does Freshpaint Determine Session Count?
      • What is the difference between client-side and server-side connection mode?
      • What is a Proxy Integration?
      • Where can I view Freshpaint’s Status?
      • Does Freshpaint provide HIPAA audit logs?
      • Freshpaint Cookie Too Large
      • How does Freshpaint compare to server-side Google Tag Manager?
      • If a user re-installs my app, will Freshpaint generate a new device ID?
      • Why doesn't Freshpaint need a BAA before sending data to Google Ads and Facebook Ads?
      • What Implementation Services Does Freshpaint Offer?
      • Single Sign On (SSO) Setup
Powered by GitBook
On this page
  • Destination Info
  • Getting Started
  • Events
  • Identify
  • Page
  • Group
  • Payload Format
  • Configuration Options
  • Considerations

Was this helpful?

  1. Integrations
  2. Destinations
  3. Data Activation

Webhooks

PreviousWebengageNextWoopra

Last updated 1 month ago

Was this helpful?

Use the Webhooks destination to send Freshpaint data to any public HTTP endpoint. This integration can support a wide range of use cases that may not be supported by other destinations. For example you could use the Webhooks Destination to send data to to perform no-code automation workflows.

Destination Info

  • Supports , , and , and calls

  • Supports

  • Connection Modes:

Client-side
Server-side

Web

Mobile

Server

Getting Started

To set up the Webhooks destination, follow the following steps:

  1. Go to the in Freshpaint and click "Configure"

  2. Add the URL of the webhook that will receive your data

  3. (Optional) Add any headers that need to be sent to your webhook. For example some webhooks may require the Content-Type: application/json header.

  4. (Optional) Add additional webhook URLs if you want to send data to additional webhooks.

Events

When you send an event to the Webhooks destination from Freshpaint, Freshpaint will send an HTTP POST request to each of the webhooks you've configured. The body of the request will look like the following:

{
    "event": "a",
    "type": "track",
    "timestamp": "2022-12-28T21:16:50Z",
    "messageId": "iI5pcrFfZHTuAfEu1DZ6Mg==",
    "anonymousId": "1855a980cb1529-066ed15036156b-18525635-13c680-1855a980cb2178a",
    "context": {
        "page": {
            "url": "https://example.com/",
            "title": "Home Page",
            "path": "/"
        },
        "library": {
            "name": "freshpaint.js"
        }
    },
    "properties": {
        "customProp": 42
    }
}

Identify

{
    "type": "identify",
    "timestamp": "2022-12-28T22:00:25Z",
    "messageId": "Zi1TKug6D8lLqNUD1v0i1w==",
    "anonymousId": "1855a980cb1529-066ed15036156b-18525635-13c680-1855a980cb2178a",
    "userId": "hello@example.com",
    "context": {
        "page": {
            "url": "https://example.com/",
            "title": "Home Page",
            "path": "/"
        },
        "library": {
            "name": "freshpaint.js"
        }
    },
    "properties": {},
    "traits": {
        "phone": "+15558675309"
    }
}

Page

When a pageview event occurs, the body of the HTTP POST request sent to each webhook will look like this:

{
    "type": "page",
    "timestamp": "2022-12-28T21:51:30Z",
    "messageId": "icgQY4taV/WsZPiE9/0ZaA==",
    "anonymousId": "1855a980cb1529-066ed15036156b-18525635-13c680-1855a980cb2178a",
    "context": {
        "page": null,
        "library": {
            "name": "freshpaint.js"
        }
    },
    "properties": {
        "url": "https://example.com/",
        "title": "Example Domain",
        "path": "/"
    }
}

Group

{
    "type": "group",
    "timestamp": "2022-12-28T21:56:23Z",
    "messageId": "7Kx9d7JNjo3Tbi9IcFITYw==",
    "anonymousId": "1855a980cb1529-066ed15036156b-18525635-13c680-1855a980cb2178a",
    "context": {
        "page": {
            "url": "https://example.com/",
            "title": "Home Page",
            "path": "/"
        },
        "library": {
            "name": "freshpaint.js"
        }
    },
    "groupId": "Acme, Inc",
    "properties": {},
    "traits": {
        "companyId": "1234"
    }
}

Payload Format

Here is what each piece of the HTTP POST request body means:

Key
Type
Description

event

string

The name of the event

type

string

The type of the event, for example "track", "identify", "page", or "group"

timestamp

string

The time the event occurred. Example: "2022-08-08T17:15:45Z"

messageId

string

Unique id identifying this event

anonymousId

string

The ID of the device the identify call was performed on

userId

optional string

An identifier that uniquely identifies the user that performed the event (usually email address)

groupId

optional string

For group events, a string that uniquely identifies the group this user belongs to (such as a company name).

context.page

object

Data about the page that the event was performed on

context.library

object

Data about the Freshpaint SDK that was used to capture this event

properties

object

Any additional event properties for Track and Page events

traits

object

Any additional properties of the user (for identify events) or group (for group events)

Configuration Options

Integration Settings / Options

Freshpaint allows you to configure custom integration settings for Webhooks. To do this, navigate to Destinations > Apps > Webhooks and click "Configure" for Options.

This will open a modal where you can check the options you would like to enable and click "Save". The following options are available:

  1. Enable Identify Events - By default, identify events are not sent to webhooks. Enable this option to send identify events to your webhook(s) with information about who your users are.

  2. Enable Pageview Events - By default, pageview events are not sent to webhooks. Enable this option to send pageview events automatically collected by Freshpaint to your webhook(s). Note that this does not affect pageview events defined on the Event Library page.

Considerations

  • Each webhook must be accessible from the public internet.

  • When Freshpaint sends an event to a webhook, the service must respond within 5 seconds. After 5 seconds Freshpaint will record a timeout error.

  • If you configure multiple webhooks, Freshpaint will send the same events to each webhook. They must each respond within 5 seconds, otherwise Freshpaint will record a timeout error. Also, if the total time taken for all webhooks exceeds 25 seconds, Freshpaint will record a timeout error.

  • If you configure multiple webhooks, Freshpaint guarantees delivery to at least one webhook. This means that if Freshpaint successfully delivers an event to some of your webhooks but encounters an error with others, the delivery will not be retried. If Freshpaint encounters errors with all of the configured webhooks, the event will be retried later.

By default, identify events are not sent to the Webhooks destination. Enable them on the under "Options".

When you call , the body of the HTTP POST request sent to each webhook will look like this:

By default, pageview events are not sent to the Webhooks destination. Enable them on the under "Options".

When you call , the body of the HTTP POST request sent to each webhook will look like this:

Webhooks destination configuration page
Webhooks destination configuration page
Make (formerly known as Integromat)
Page
Track
Identify
Group
HIPAA mode
Webhooks configuration page
freshpaint.identify('hello@example.com', {"phone": "+15558675309"})
freshpaint.group("Acme, Inc", {"companyId": "1234"})