Segment integration

Segment is a platform allowing you to unify data from various platforms you use. Product Fruits can both send data to Segment and receive data from it.

Activating Segment integrations

Note: This article is written with the assumption that a source has already been set up on segment.io.

To enable either or both directions of our Segment integration, click on the More icon on the left of our administration, then click Integrations and locate Segment.io, and click on Setup. You can also follow this link to be sent there for your default workspace. 

The Product Fruits administration nagivation menu on the integrations page with segment io highlighted

Before enabling either direct, please see the notes below describing the fundamentals that integrations operate off of.

User matching

What is important is that Product Fruits and Segment.io must share the same user identity. Without this, we would not be able to pair the information received through the webhook to the right user.

The Product Fruits username field should match the userId field of Segment.io (this is the value you pass to analytics.identify(xxx)). If this is not true, you will most likely get duplicated users in Product Fruits.

 

Segment.io web JS SDK

If you use the Segment.io JavaScript SDK to identify users, you must call analytics.identify('some_user') somewhere in your code to initialize Segment.io user information. You can also include additional information. For instance, e-mail, first name, last name, etc. 

Example:

// The most basic call. We are sending userId to Segment.io - this must match to the username field in Product Fruits
analytics.identify('some_user')

// We can also pass email; then PF will match this to the email field in Product Fruits
analytics.identify('some_user', { email: 'someuser@example.com', firstname: 'John' })

The userId in this case is the first parameter of the identify method.

 

Sending Product Fruits events to Segment.io

We can send different Product Fruits events from Product Fruits to Segment.io. For instance, events such as when a user completes a tour, when a checklist is dismissed, etc. The list of supported events is here. This integration takes advantage of the Segment.io JavaScript SDK. The analytics variable must be available on the JavaScript window object. We call the window.analytics.track() method. 

If all of the above checks out, or if you're unsure and you'd just like to try it, feel free to enable the integration. You can check the debugger tab of the source where you have both Product Fruits and Segment installed. When your users trigger some event listed in the link above, it should show here as a 'track' event as seen in the image below:

An example of the sources page of segment io  

Sending Segment.io events and user information to Product Fruits

This feature is available in the Boost plan.

Open the Segment integration box and activate the integration. It will generate a Webhook URL and a Webhook Secret.

the segment io integrations page of the Product Fruits administration
Example of a webhook URL and secret generated by Product Fruits for segment io

Next, you'll need to go to the segment platform and create a new destination of the webhook type.

Searching for the actions webhook on the segment io platform

Once completed, you can access the 'settings' of the destination. This is where you can enter the webhook secret that Product Fruits provided you with when you created the URL. After this, please switch to the mappings tab and create a new mapping for the destination.

the webhooks actions screen of the segment io platform highlighting mappings and the shared secret field

you can customize which events, but to have them all sent, you can set a rule like below.

the mapping page of the segement io platform highlighting if user id exists map and send event

Next, you'll need to load a sample event and once done, you can insert the webhook url that you received from Product Fruits. After this, you can save.

The select mappings section of the mappings screen in the segment io platform

This was the last step, and once done you should now be recieving the events and properties of your users in Product Fruits. You can check the tracked users and analytics section of your workspace to verify.

 

Segment.io REST API

If you are sending data through the Segment.IO REST API, provide the userId field in the request payload. 

For example, you would send a POST request to https://api.segment.io/v1/track with this payload:

{
  "userId": "019mr8mf4r", // this must match to the username field in Product Fruits
  "event": "Item Purchased"
}

Was this article helpful?