> ## Documentation Index
> Fetch the complete documentation index at: https://launchdarkly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Twilio Segment for Data Export

<View title="Developer" />

<View title="Federal docs">
  <Danger>
    **This integration is not available in federal environments**

    To learn more, read <a href="/docs/home/infrastructure/federal">LaunchDarkly in federal environments</a>.
  </Danger>
</View>

<View title="EU docs" />

This topic explains how to create and test a Twilio Segment destination for Data Export.

## Prerequisites

There are two prerequisites to configure the Twilio Segment integration:

* You must add the LaunchDarkly Source in Twilio Segment
* You must find the **Write Key** for your Twilio Segment account

First, add the LaunchDarkly Source in Twilio Segment. To add the source, [read Twilio's documentation](https://www.twilio.com/docs/segment/connections/sources/catalog/cloud-apps/launchdarkly).

Next, configure the Twilio Segment integration in LaunchDarkly. To do this, you need the **Write Key** from your Twilio Segment account.

To find the write key:

1. Log into Twilio Segment and navigate to your project.
2. Navigate to **Sources** and select your LaunchDarkly source.
3. Select **API Keys** on the Source integration's menu bar.
4. Copy the **Write Key** as shown in the text box:

<Frame caption="The API Keys section of Segment's UI.">
  <img src="https://mintcdn.com/launchdarkly/unfRSXbmQkdGxJjN/images/__third_party/integrations-segment-write-key.png?fit=max&auto=format&n=unfRSXbmQkdGxJjN&q=85&s=a223f183bcb894161f2edee35a85de40" alt="The API Keys section of Twilio Segment's UI." width="1366" height="425" data-path="images/__third_party/integrations-segment-write-key.png" />
</Frame>

<Note>
  **One Data Export destination per environment**

  You can configure only one Data Export destination per LaunchDarkly environment, regardless of destination kind. If you need more than one Data Export destination for the same data, configure them in different environments.
</Note>

## Create a Twilio Segment destination in LaunchDarkly

To create the Twilio Segment destination:

1. In LaunchDarkly, click the **gear** icon in the left sidebar to view Organization settings.
2. Click **Integrations** and find "Twilio Segment."
3. Click **Add integration.** The "Create a destination" panel appears.
4. (Optional) Give your integration a human-readable **Name**.
5. Choose an **Environment** for this integration to apply to.
6. Enter the Twilio Segment **Write key**.
7. Click **Save destination**. The new integration appears in the list of integrations.

## Test a Twilio Segment destination

After you save the destination, send a test event to confirm that the destination is configured properly.

To send a test event:

1. Navigate to the **Integrations** page and find "Twilio Segment."
2. Click the **down arrow** next to "Add integration" to display a list of existing destinations.
3. Click the **pencil** icon next to the destination you want to test. The "Edit destination" panel appears.
4. In the "Send a test event" section, click **Send event**.
5. Verify the event appears in the Twilio Segment **Debugger**.

## Example events

These example events display the structure of the events LaunchDarkly sends to Twilio Segment.

LaunchDarkly sends events in the following formats:

<CodeGroup>
  ```json title="Feature event" maxLines=0 expandable lines wrap theme={null}
  {
    "event": "feature",
    "integrations": {},
    "messageId": "c2f7a2d1-0a1b-456f-8e9a-16756e7a6db5",
    "originalTimestamp": "2019-09-13T21:20:18.114Z",
    "properties": {
      "contextKeys": {
        "user": "example-known-user-key",
        "anonymousUser": "example-anon-user-key"
      },
      "project": "5744c12345c9900708000001",
      "environment": "5d4b12345d2a2806bd2cc6eb",
      "eventId": "5d7c12345a51a0006e16ae5",
      "default": "true",
      "flagVersion": 42,
      "key": "EXAMPLE-FLAG-KEY",
      "prereqOf": "EXAMPLE-PARENT-FLAG",
      "reasonKind": "FALLTHROUGH",
      "value": "EXAMPLE-FLAG-VALUE",
      "variation": 1,
      "version": 1
    },
    "receivedAt": "2019-09-13T21:20:19.406Z",
    "sentAt": "2019-09-13T21:20:19.366Z",
    "timestamp": "2019-09-13T21:20:18.153Z",
    "type": "track",
    "userId": "EXAMPLE-USER-ID"
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json title="Click event" maxLines=0 expandable lines wrap theme={null}
  {
    "event": "click",
    "integrations": {},
    "messageId": "18925338-0a1b-4521-a36a-c8e9839e4593",
    "originalTimestamp": "2019-09-13T21:21:43.114Z",
    "properties": {
      "contextKeys": {
        "user": "example-known-user-key",
        "anonymousUser": "example-anon-user-key"
      },
      "project": "5744c98765c9900708000001",
      "environment": "5d4b12345d2a2806bd2cc6eb",
      "eventId": "5d7c123a86f26000065862da",
      "key": "EXAMPLE-FLAG-KEY",
      "selector": "btn",
      "url": "http://example.com",
      "version": 1
    },
    "receivedAt": "2019-09-13T21:21:46.415Z",
    "sentAt": "2019-09-13T21:21:46.375Z",
    "timestamp": "2019-09-13T21:21:43.154Z",
    "type": "track",
    "userId": "EXAMPLE-USER-ID"
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json title="Custom event" expandable lines wrap theme={null}
  {
    "event": "custom",
    "integrations": {},
    "messageId": "d747a382-0a1b-41d5-b9a6-7ae9b93925bc",
    "originalTimestamp": "2019-09-13T21:21:58.114Z",
    "properties": {
      "contextKeys": {
        "user": "example-known-user-key",
        "anonymousUser": "example-anon-user-key"
      },
      "project": "5744c12345c9900708000001",
      "environment": "5d4b12345d2a2806bd2cc6eb",
      "eventId": "5d7c123452db400061b14dd",
      "key": "EXAMPLE-EVENT-KEY",
      "version": 1
    },
    "receivedAt": "2019-09-13T21:22:00.673Z",
    "sentAt": "2019-09-13T21:22:00.393Z",
    "timestamp": "2019-09-13T21:21:58.393Z",
    "type": "track",
    "userId": "EXAMPLE-USER-ID"
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json title="Page view event" expandable lines wrap theme={null}
  {
    "integrations": {},
    "messageId": "8c235148-0a1b-4428-a4de-00b90adf2833",
    "originalTimestamp": "2019-09-13T21:19:43.114Z",
    "properties": {
      "contextKeys": {
        "user": "example-known-user-key",
        "anonymousUser": "example-anon-user-key"
      },
      "project": "5744c123459900708000001",
      "environment": "5d123454d2a2806bd2cc6eb",
      "eventId": "5d7c12345db400061b14c1",
      "key": "EXAMPLE-FLAG-KEY",
      "url": "http://example.com",
      "version": 1
    },
    "receivedAt": "2019-09-13T21:19:45.371Z",
    "sentAt": "2019-09-13T21:19:45.331Z",
    "timestamp": "2019-09-13T21:19:43.154Z",
    "type": "page",
    "userId": "EXAMPLE-USER-ID"
  }
  ```
</CodeGroup>

## Enable Data Export for flags and environments

After you create a Data Export destination, you must start sending flag or environment event data to it. You can enable Data Export for individual flags, or for all the flags in an environment.

To learn more, read [Export event data for flags and environments](/docs/integrations/data-export#export-event-data-for-flags-and-environments).

## Delete a Twilio Segment destination

You can delete a Data Export destination from the **Integrations** screen.

To delete a destination:

1. Navigate to the **Integrations** page and find "Segment."
2. Click into the "Segment" section to display a list of destinations.
3. Click the **pencil** icon next to the destination you wish to delete. The "Edit destination" panel appears.
4. Click **Delete destination**.
