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:
- Next to your project name, select the dropdown menu (), then Settings.
- Under Project settings, select 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
trackevent’spropertiesobject maps to an Airship custom event’sbody.propertiesobject. - The
trackevent’seventkey maps to the custom eventnamein 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
eventappears as Install Attributed for Segment while in Airship it is recorded as install attributed in thenameattribute.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 mobile app or web experience of one or more screens displayed with fully native UI components in real time, providing immediate, contextual responses to user behaviors. Scenes can be presented in full-screen, modal, or embedded format using the default swipe/click mode or as a Story. They 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.
400Identify call has no traits. Cannot set tags or attributes- The
identifycall is either missing traits or traits are empty, resulting in no Airship API calls to set tags or attributes. 501Unsupported call type- This integration supports only
trackandidentifyevents 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