# Segment Destination

> Source: https://docs.trailspark.ai/docs/segment-destination

## Overview

The Segment destination sends evaluation results to Segment as `identify` calls. After a lead is evaluated, TrailSpark fires an identify call with the lead's score, AI reasoning, and evaluation date written as user traits. You configure the trait names to match your Segment schema.

This is an **outbound** destination — TrailSpark pushes data to Segment. If you are using Segment to send activity events into TrailSpark, that is the Segment integration under **Settings** > **Integrations**. For more on Segment as a signal source, see [Connecting Segment](/docs/connecting-segment).

## Prerequisites

- Segment integration connected (**Settings** > **Integrations**)
- **Admin** or **Owner** role in TrailSpark
- A Segment source configured to receive server-side calls

## Configuration

Go to **Settings** > **Destinations**.

### Destination Settings

- **Send Evaluations to Segment** -- Toggle to enable/disable the destination
- **Segment Integration** -- Select which connected Segment integration to use
- **Use Email as User ID** -- When enabled, uses the lead's email address as the `userId` in Segment identify calls. Enable this if email is your primary user identifier in Segment. When disabled, only an `anonymousId` is used if one is available.

### Trait Mapping

TrailSpark writes three traits per identify call. You set the trait name for each:

| UI Label | Default trait name | What it contains |
|----------|--------------------|-----------------|
| **Score Trait** | `trailsparkScore` | The lead's evaluation score: hot, warm, or cold |
| **Evaluation Date Trait** | `trailsparkEvaluatedAt` | ISO 8601 date when the evaluation ran |
| **Reasoning Trait** | `trailsparkReasoning` | AI-generated evaluation reasoning |

You can rename any trait to match your existing Segment property naming conventions. The defaults follow camelCase to align with Segment's recommended trait style.

## How Identify Calls Work

For each evaluated lead, TrailSpark sends one identify call:

```
analytics.identify(userId, {
  trailsparkScore: "hot",
  trailsparkEvaluatedAt: "2026-06-30",
  trailsparkReasoning: "Multiple stakeholders engaged across pricing and security pages..."
})
```

The `userId` is the lead's email address when **Use Email as User ID** is on. Identify calls fire after each evaluation completes — whether triggered by new signal activity, a manual re-evaluation, or the staleness cycle.

Once the traits land in Segment, you can use them in downstream Segment destinations (ad platforms, email tools, analytics) or build Segment audiences around score tiers and evaluation dates.

## Segment vs Other Destinations

Unlike Salesforce, HubSpot, and Airtable, the Segment destination does not support buying-group coverage fields. It sends individual lead evaluation traits only. Use a CRM destination if you need buying-group stage, completeness percentages, or role lists pushed alongside scores.

## Troubleshooting

| Issue | Resolution |
|-------|------------|
| Traits not appearing in Segment | Verify the destination is enabled and the Segment integration is still connected |
| Leads identified by anonymousId only | Enable **Use Email as User ID** to use email as the userId |
| Trait names conflict with existing properties | Rename the traits in the Trait Mapping section to avoid collisions |
| No Segment integrations available | Connect Segment first from **Settings** > **Integrations** |

## Next Steps

- [Connecting Segment](/docs/connecting-segment) -- use Segment as a signal source (inbound)
- [Salesforce Destination](/docs/salesforce-destination) -- push buying-group fields alongside scores
- [Destinations Overview](/docs/destinations-overview)