---
"@context": https://schema.org
"@type": TechArticle
"@id": https://www.twilio.com/docs/segment/connections/destinations/catalog/userpilot-mobile#article
headline: Userpilot Mobile Device Mode Destination
description: Connect Segment to Userpilot Mobile in device-mode to send Identify, Group, Screen, and Track data for in-app onboarding and feature adoption.
url: https://www.twilio.com/docs/segment/connections/destinations/catalog/userpilot-mobile
inLanguage: en
dateModified: 2026-06-09T16:30:18.000Z
author:
  "@type": Organization
  name: Twilio Developer Education Team
publisher:
  "@type": Organization
  name: Twilio
---

# Userpilot Mobile Device Mode Destination

## Destination Info

* Accepts [Group](/docs/segment/connections/spec/group), [Identify](/docs/segment/connections/spec/identify), [Track](/docs/segment/connections/spec/track) calls.
* Refer to it as **Userpilot Mobile** in the [Integrations object.](/docs/segment/guides/filtering-data/#filtering-with-the-integrations-object)
* This integration is **partner owned.** Please reach out to the partner's support for any issues.
* This destination is **Beta.**

[Userpilot](https://www.userpilot.com/?utm_source=segmentio\&utm_medium=docs\&utm_campaign=partners) provides in-app guidance, product tours, and contextual onboarding experiences to help product teams activate users and drive feature adoption. When you integrate Userpilot with Segment, you can send your Segment events to Userpilot to create personalized experiences across the product lifecycle.

Userpilot maintains this destination. For any issues with the destination, [contact the Userpilot Support team](mailto:support@userpilot.com).

## Getting started

1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog), search for *Userpilot Mobile (Device Mode)*.
2. Select **Userpilot Mobile** and click **Add Destination**.
3. Select an existing Source to connect to Userpilot.
4. Go to the [Userpilot installation dashboard](https://run.userpilot.io/installation), and copy your **App Token**.
5. Enter the **App Token** in the Userpilot destination settings in Segment.

## Supported methods

Userpilot supports the following methods, as specified in the [Segment Spec](/docs/segment/connections/spec).

### Identify

Send [Identify](/docs/segment/connections/spec/identify) calls to associate a user with traits. These are used for segmentation, personalization, and lifecycle targeting.

```swift title="Identify call example"
analytics.identify(userId: "<USER_ID>", traits: [
  "email": "john.doe@example.com",
  "name": "John Doe",
  "plan": "Pro",
  "createdAt": "2019-10-17"
])
```

Calling Identify from Segment triggers `userpilot.identify`. Segment recommends passing as much data as possible to get the most out of Userpilot.

Data passed in an Identify call can be organized under these different categories:

* Properties about the user such as `plan` or `userRole` help target a specific segment
* Properties to personalize the content of the Userpilot experiences, such as `name` or `company`
* Properties to target users based on their lifecycle, such as `createdAt`, which allows you to target newly created accounts or accounts that have yet to achieve a certain feature in the user lifecycle

These appear within Userpilot's user dashboard and power audience segmentation and targeting.

### Group

Send [Group](/docs/segment/connections/spec/group) calls to associate users with an account, organization, or project.

```swift title="Group call example"
analytics.group(groupId: "<GROUP_ID>", traits: [
  "companyName": "Acme Inc.",
  "subscriptionTier": "Enterprise"
])
```

Calling Group from Segment triggers `userpilot.identify` with company-level traits, allowing you to use company metadata in targeting logic.

### Screen

Send [Screen](/docs/segment/connections/spec/screen) calls to track navigation or screen changes in mobile apps.

```swift title="Screen call example"
analytics.screen(title: "Home")
```

Calling Screen from Segment triggers `userpilot.screen` event. This allows Userpilot to:

* Trigger relevant experiences configured for specific pages/screens.
* Check for ongoing experiences already running.

### Track

Send [Track](/docs/segment/connections/spec/track) calls to log user actions or custom events.

```swift title="Track call example"
analytics.track(name: "Added to Cart", properties: [
  "itemId" : "sku_456",
  "price" : 29.99
])
```

Calling Track from Segment triggers `userpilot.track`. These custom events can be used to:

* Trigger specific experiences (for example, a Carousel or Survey)
* Monitor user behavior for analytics or lifecycle targeting

## Engage

You can send computed traits and audiences generated using [Engage](/docs/segment/engage) to this destination as a **user property**. To learn more about Engage, schedule a [demo](https://segment.com/contact/demo).

For user-property destinations, an [identify](/docs/segment/connections/spec/identify/) call is sent to the destination for each user being added and removed. The property name is the snake\_cased version of the audience name, with a true/false value to indicate membership. For example, when a user first completes an order in the last 30 days, Engage sends an Identify call with the property `order_completed_last_30days: true`. When the user no longer satisfies this condition (for example, it's been more than 30 days since their last order), Engage sets that value to `false`.

When you first create an audience, Engage sends an Identify call for every user in that audience. Later audience syncs only send updates for users whose membership has changed since the last sync.

## Settings

Segment lets you change these destination settings from the Segment app without having to touch any code.

| Field | Description                         | Required | Type   |
| ----- | ----------------------------------- | -------- | ------ |
| Token | Your Userpilot mobile account token | Yes      | string |
