Customer.io Reference

Destination Info

Client-sideServer-side

Web

Mobile

Server

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": "john.doe@example.com",
  "$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": "john.doe@example.com",
    "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. Go to Settings > Workspace Settings.

  2. Scroll down to Merge Settings and click Settings.

  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 TypeLimitDescription

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 TypeLimitDescription

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.

Last updated