Outbound Destination

Segment makes it easy to send your data to Outbound (and lots of other destinations). Once you've tracked your data through our open source libraries we'll translate and route your data to Outbound in the format they understand. Learn more about how to use Outbound with Segment.

Getting Started

When you toggle on Outbound in Segment, this is what happens:

  • Our CDN is updated within 5-10 minutes. Then our snippet will start sending all your analytics data to Segment’s servers, where we’ll send the data onwards to Outbound.
  • Your Outbound real-time feed will start showing visitor data.

If you plan on having both a production and development environment, you will want enter your Outbound API keys into the corresponding Segment sources.

Outbound is supported on the client-side, server-side and on mobile.


Outbound needs to identify users and their data to track who we should message. Segment will pass your UserID and any traits that you store on that user to Outbound. (Note: Segment refers to user data as “traits”; Outbound refers to user data as “attributes”.)

      userId: '019mr8mf4r',
      traits: {
        name: 'Michael Bolton',
        email: 'mbolton@initech.com',
        phone: '1234567890',
      context: {
        device: {
          type: "ios",
          token: 'XXXYYYZZZ'

Outbound has specific first-class traits that are used to send and customize messages on various channels:

  • name (maps to Outbound’s first_name and last_name attributes) recommended for targeted copy.
  • email (maps to Outbound’s email attribute) required for email campaigns
  • phone (maps to Outbound’s phone_number attribute) for sms & voice campaigns
  • context.device.token (maps to Outbound’s apns or gcm attributes) for iOS and Android Push.
  • timezone (maps to Outbound’s timezone attribute) recommended to use Outbound’s time of day message delivery feature (note - Outbound only accepts Olson name values) These are automatically collected if you’re using Segment’s mobile SDKs


Outbound allows aliasing, which enables you to join an anonymous pre-signup ID with a post-signup userID. When you send an identify call that has an anonymous user, that user will be created using the anonymous id you supply in the identify call. Later, when you want to update this anonymous user’s id to their actual id, you can do so by using Segment’s alias method. The following is an example alias call from Segment’s Analytics.js library:



Events and their properties are used to trigger and customize message campaigns within Outbound:

    analytics.track('Signed Up', {
      plan: 'Startup',
      source: 'Analytics Academy'

Outbound’s campaign filters allow you to target specific segments of users based on events, event properties, and attributes. Having specific events and attributes allow you to better target your audiences with custom messaging:

Campaign Filters

Once a user is sent a message, you will often want to measure whether or not they reach a specific goal. Events are used to calculate if users reach these goals:

Campaign Goals


Test your Destination with Outbound’s Live Stream

Start Streaming

Outbound’s Live Stream allows you to see every track and identify call made within your app. To verify data is flowing properly, click the “Start Streaming” button. You should start to see the lists populate!

api call

Build your First Campaign

Now that everything is hooked up, you can start messaging your users! Check out the following guides at Outbound:

  1. Getting Started Videos
  2. Campaign Setup
  3. Campaign Reporting


You can send computed traits and audiences generated through Segment Personas to this destination as a user property. To learn more about Personas, reach out for a demo.

For user-property destinations, an identify call will be sent to the destination for each user being added and removed. The property name will be the snake_cased version of the audience name you provide with a true/false value. For example, when a user first completes an order in the last 30 days, we will send an identify call with the property order_completed_last_30days: true, and when this user no longer satisfies we will set that value to false.

When the audience is first created an identify call is sent for every user in the audience. Subsequent syncs will only send updates for those users which were added or removed since the last sync.

Supported Sources and Connection Modes

📱 Device-based
☁️ Cloud-based

To learn more about about Connection Modes and what dictates which we support, see here.


Segment lets you change these destination settings via your Segment dashboard without having to touch any code.

Private Key

You can find your Private Key on the Outbound Settings > Environments page. It should be 32 characters long, and look something like this: f4f15f2f004fa0bd2140b4db93cbb538.

Public Key

You can find your Public Key on the Outbound Settings > Environments page.

If you have any questions, or see anywhere we can improve our documentation, please let us know!