Segment Legacy Destination Integration
AIRSHIP MAINTAINED INTEGRATION
This integration is maintained by Airship. Please contact Airship for support.Segment is a Customer Data Platform (CDP) that lets you combine data across applications and platforms. Ingest external events from Segment with named users in Airship for message triggering, audience targeting, and analytics.
This page is for the legacy destination/inbound integration. We also have a destination/inbound integration based on Segment’s Actions Framework, which provides flexibility by allowing Segment Events and their data to be mapped to Airship Custom EventsEvents that indicate that a user performed a predefined action, such as adding an item to a shopping cart, viewing a screen, or clicking an Unsubscribe button. Custom Events can trigger automation, including Sequences and Scenes. You can code them into your app or website, or send them to Airship from an external source using the Custom Event API. Custom Events contain properties that you can use to personalize messages., AttributesMetadata used for audience segmentation and personalization. They extend the concept of Tags by adding comparison operators and values to determine whether or not to target a user, helping you better evaluate your audience., or TagsMetadata that you can associate with channels or Named Users for audience segmentation. Generally, they are descriptive terms indicating user preferences or other categorizations, e.g., wine_enthusiast
or weather_alerts_los_angeles
. Tags are case-sensitive. based on workflows and requirements. See: Segment.
Segment integration requirements
- Accounts
- Segment
- Airship — Must include messaging
- Airship project
- Named UserA customer-provided identifier used for mapping multiple devices and channels to a specific individual. must be enabled for your project.
Configuring the Segment integration
In Airship:
- Go to Settings.
- Under Project Configuration, select Manage for Partner Integrations.
- Select Segment.
- Select Configure for the destination integration and follow the onscreen instructions to:
- Create a Tag GroupAn array of tags that you can associate with both channels and Named Users., AttributesMetadata used for audience segmentation and personalization. They extend the concept of Tags by adding comparison operators and values to determine whether or not to target a user, helping you better evaluate your audience., and an authentication token. Segment uses the token to communicate with your project in Airship.
- Configure Airship as a destination in Segment. You must select the Airship integration, not the Airship Actions integration.
Using Segment calls to pass values to Airship
The Segment destination integration uses the Segment track
, identify
, and group
methods to pass values into Airship.
Segment track
calls will come into Airship as custom events, and identify
calls will come into Airship as either a tag or an attribute depending on the data type of the trait. Boolean traits are added as tags, and non-boolean traits are added as attributes, provided that the attribute is recognized by Airship.
Segment group
calls are similar to identify
calls: they contain a set of traits
that the integration uses to set an Airship tag and attributes on the named user.
Custom events
Airship captures track
events from Segment using our Custom Events API. You can use the properties in these incoming events to trigger and personalize messages for your audience.
- The
track
event’sproperties
object maps to an Airship custom event’sbody.properties
object. - The
track
event’sevent
key maps to the custom eventname
in Airship.
You can use the name
value to differentiate between different track
events from segment.
Airship transforms all custom event names to lowercase. In the following example, note that the value of
event
appears as Install Attributed for Segment while in Airship it is recorded as install attributed in thename
attribute.Events from Segment are sent as server-side events, which cannot be used to trigger an In-App AutomationMessages cached on users’ devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. or SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions..
track
event from Segment{
"receivedAt": "2019-07-09T19:24:15Z",
"messageId": "6dJnUw1OKG",
"type": "track",
"properties": {
"provider": "Branch",
"campaign": {
"source": "AdWords",
"name": "Campaign Name",
"content": "Organic Content Title",
"ad_creative": "Red Hello World Ad",
"ad_group": "Red Ones"
},
"categories": ["test-campaign"]
},
"event": "Install Attributed",
"userId": "sKQR2ORpaw",
"timestamp": "2019-07-09T19:24:15Z"
}
{
"occurred": "2019-07-09T19:24:15",
"user": {
"named_user_id": "sKQR2ORpaw"
},
"body": {
"name": "install attributed",
"interaction_type": "cdp",
"properties": {
"provider": "Branch",
"campaign": {
"source": "AdWords",
"name": "Campaign Name",
"content": "Organic Content Title",
"ad_creative": "Red Hello World Ad",
"ad_group": "Red Ones"
},
"categories": ["test-campaign"],
"source": "Segment"
}
}
}
Tags
Airship assigns tags to Named UsersA customer-provided identifier used for mapping multiple devices and channels to a specific individual. based on incoming identify
or group
events from Segment. You must create a segment-integration
tag group to receive these tags. See how to add the tag group in the next section.
This integration supports boolean traits only. Airship adds or removes the trait key as a tag in the segment-integration
group depending on the boolean value; we add tags for traits that are true
and remove tags for traits that are false
.
identify
event{
"userId": "jane",
"type": "identify",
"timestamp": "2019-06-12T22:21:33Z",
"traits": {
"new-customer": false,
"order-completed-last-60-days": true
}
}
TAG_CHANGE
event{
"id": "00000170-cff9-7e5e-6a5a-21814f6b3a37",
"offset": "1000031868729",
"occurred": "2019-06-12T22:21:33Z",
"processed": "2019-06-12T22:21:33Z",
"device": {
"named_user_id": "jane"
},
"body": {
"add": {
"segment-integration": ["order-completed-last-60-days"]
},
"remove": {
"segment-integration": ["new-customer"]
},
"current": {
"segment-integration": ["order-completed-last-60-days"]
}
},
"type": "TAG_CHANGE"
}
{
"audience": {
"named_user_id": ["test-user-69w86c"]
},
"add": {
"segment-integration-group": ["hiring", "startup"]
},
"remove": {
"segment-integration-group": ["has-remote-employees"]
}
}
Attributes for the identify
calls
Attributes are set for identify
calls without boolean-valued traits.
The integration maps Segment reserved traits to Airship predefined attributes:
Segment Trait | Attribute Name | Attribute ID | Attribute Type |
---|---|---|---|
address.city | City | city | Text |
address.country | Country | country | Text |
address.postalCode | Zipcode | zipcode | Number |
address.state | Region | region | Text |
age | Age | age | Number |
birthday | Birthdate | birthdate | Date |
company.name | Company | company | Text |
createdAt | Account Creation | account_creation | Date |
email | Email Address | email | Text |
firstName | First Name | first_name | Text |
gender | Gender | gender | Text |
lastName | Last Name | last_name | Text |
name | Full Name | full_name | Text |
phone | Mobile Phone Number | mobile_phone | Number |
title | Title | title | Text |
username | Username | username | Text |
The following example identify
call assigns attributes to the named user jane
. In this example, age
maps to a predefined Airship attribute. The integration assumes that there is an attribute defined in Airship with the ID favorite_color
.
identify
call{
"type": "identify",
"traits": {
"age": 30,
"favorite_color": "purple"
},
"userId": "jane"
}
For traits in the identify
call that do not
map to a predefined or customer-defined Airship attribute, you must create and enable the attribute in the Airship dashboard. Go to Audience » Attributes in your project. See About attributes for details.
Attributes for the group
calls
Attributes are set for group
calls without boolean-values traits. You need to
create correct attribute identifiers in Airship first in order to successfully
set the attributes on the named user.
The integration maps the Segment reserved group trait name to the Airship predefined attribute company:
Segment Trait | Attribute Name | Attribute ID | Attribute Type |
---|---|---|---|
name | Company | company | Text |
The names of all other attributes begin with airship_segment_group_ followed by the segment trait, such as airship_segment_group_industry. Traits that contain nested objects are flattened using underscores: airship_segment_group_address_city represents the address segment trait which includes city.
group
call{
"messageId": "test-message-0ruqfd",
"timestamp": "2021-03-26T22:32:43.944Z",
"type": "group",
"email": "test@example.org",
"projectId": "YbPbo7GvTo",
"traits": {
"name": "Initech",
"industry": "Technology",
"employees": 329,
"address": {
"city": "Portland",
"state": "OR"
}
},
"groupId": "test-group-58qicr",
"userId": "test-user-69w86c"
}
{
"audience": {
"named_user_id": "test-user-69w86c"
},
"attributes": [
{
"action": "set",
"key": "company",
"value": "Initech",
"timestamp": "2021-03-26T22:32:43"
},
{
"action": "set",
"key": "airship_segment_group_industry",
"value": "Technology",
"timestamp": "2021-03-26T22:32:43"
},
{
"action": "set",
"key": "airship_segment_group_employees",
"value": 329,
"timestamp": "2021-03-26T22:32:43"
},
{
"action": "set",
"key": "airship_segment_group_address_city",
"value": "Portland",
"timestamp": "2021-03-26T22:32:43"
},
{
"action": "set",
"key": "airship_segment_group_address_state",
"value": "OR",
"timestamp": "2021-03-26T22:32:43"
}
]
}
Troubleshooting your Segment integration
Airship returns errors based on the events received as a part of this integration.
400
Identify call has no traits. Cannot set tags or attributes- The
identify
call is either missing traits or traits are empty, resulting in no Airship API calls to set tags or attributes. 501
Unsupported call type- This integration supports only
track
andidentify
events from Segment. Airship reports any other event type as an error.
If you don’t see events in Airship and you don’t see errors in Segment, make sure that your userId
values in Segment exist as named users in Airship. Airship returns 200 OK
when attributing events to named users, even if the named_user_id
does not exist in Airship.
Categories