Freshpaint
Search
⌃K
Links

Customer.io

​Customer.io is an all-in-one messaging platform. You can schedule emails, SMS messages, and more with Customer.io.
Freshpaint helps teams manage and control their customer data. Freshpaint automatically captures every click, pageview, and form submission on your site. This makes it possible for non-technical users to route data from Freshpaint to any marketing or analytics platform.
With Freshpaint and Customer.io, you can use Freshpaint to attach user metadata and trigger events in Customer.io to create customized messaging campaigns for your customers.

Destination Info

Client-side
Server-side
Web
Mobile
Server

Getting Started

Before you can pass Freshpaint data to Customer.io, you'll need to install the Freshpaint javascript SDK and have identify calls set up.
2. Insert your Site ID and Secret API Key. These can be found in Customer.io under Data & Integrations > Integrations > Customer.io API
3. That's it! You should now see the enabled status next to Customer.io:
You'll have to enable events in the start sending them to Customer.io.

Identify

When you call identify(), if the user already exists, Freshpaint will attach the provided user properties to the corresponding user as Customer.io customer attributes by calling Customer.io's single request endpoint for their track api at endpoint: /api/v1/customers.
If the user does not exist, Freshpaint will create the user in Customer.io.
If your account supports both email and id as identifiers in Customer.io (this is the default setting for accounts created after June 2021), you can identify users using either one.
You can look at all the attributes collected with the user profile in Data & Integrations > Data Index.
If you want to add a custom user property, you just have to add it into the $user_props object in your identify. For example,
freshpaint.identify("userId1234", {
  "token": "<your_env_id>",
  "time": 1676399027,
  "distinct_id": "[email protected]",
  "$device_id": "00000000-0000-0000-0000-00000000",
  "$user_props": {
    "firstname": "John",
    "lastname": "Doe",
    "customProp": 12345
  }
})

Unsubscribe Users

You can unsubscribe users in Customer.io by simply adding the unsubscribed: true key value pair to the identify call. For example,
freshpaint.identify("userId1234", {
"email": "[email protected]",
"unsubscribed": true
}
)

Events

Freshpaint events will be sent to Customer.io as Customer.io Events by hitting their track API endpoint at: https://track.customer.io/api/v1/customers/{identifier}/events
Make sure the identify call has gone out with either the email or id property prior to sending events to this destination. Anonymous events are only stored in Customer.io for 30 days.
You can send anonymous events to Customer.io containing an anonymous_id. When you set the anonymous_id on a person, we associate those anonymous events with a person. This lets you log events before people log in, sign up, or are otherwise identified, and then attribute those events to people after you identify them.
You can view all recent events in Customer.io's Activity Logs.

Turn on anonymous event merging

When you create a new workspace, anonymous event merging is on by default. If you created your workspace before July 2021, you must enable Anonymous event merging to associate anonymous events with people you identify.
  1. 1.
    Go to Settings > Workspace Settings.
  2. 2.
    Scroll down to Merge Settings and click Settings.
  3. 3.
    Turn on the Anonymous event merge setting.

Pageviews

Freshpaint will automatically send all page view events to Customer.io. Page views show up in Customer.io as events with the URL of the page as the name of the event.

Configuration Settings

Connection Mode Settings

Both client side and server side connections modes are available for this destination. You can read more about connection modes here.

Event Transformations

Set up transformations to modify your data before it's sent to your destination. Read more about transformations here.

Customer.io Limits

Customer.io has limits on the data collected by their track API. If you are using Freshpaint's HTTP API to send a batch of events to Customer.io at once, make sure you throttle the import to 100-200 requests per second. Below are the payload size limits for their track API.

User Limits

Customer.io limits user traits as listed below, referred to as Customers in Customer.io:
Data Type
Limit
Description
ID
150 bytes
Max length of a person's ID value
Attribute Name
150 bytes
Max length of each attribute name
Attribute Value
1000 bytes
Max length of attribute values
Unique attributes
300
Max number of attributes allowed per person or Identify call
See Customer.io's documentation for more information.

Track API Event Rate Limits

Data Type
Limit
Description
Event Name
100 bytes
Max length of each event name
Event Data
100000 bytes
Max length of each event data
​
See Customer.io's documentation for more information.