# Startdeliver Destination

## Destination Info

* Accepts [Page](/docs/segment/connections/spec/page), [Track](/docs/segment/connections/spec/track) calls.
* Refer to it as **Startdeliver** 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.

[Startdeliver](https://startdeliver.com/?utm_source=segmentio\&utm_medium=docs\&utm_campaign=partners) connects data from a variety of sources to provide a customer view optimized to Customer Success Managers.

Startdeliver maintains this destination. For any issues with the destination, [contact their support team](mailto:support@startdeliver.com).

## Getting Started

1. From the Destinations catalog page in the Segment App, click **Add Destination**.
2. Search for "Startdeliver" in the Destinations Catalog, and select the "Startdeliver" destination.
3. Choose which Source should send data to the "Startdeliver" destination.
4. Go to the [API keys](https://app.startdeliver.com/settings/apikeys) in your Startdeliver dashboard, generate an API key, make it active and grant it "Admin" permissions.
5. Enter the "API Key" in the "Startdeliver" destination settings in Segment.
6. Create a User custom field you want to match a Segment event on [in the Startdeliver app](https://app.startdeliver.com/settings/fields). You will need a field's alias at the next step.
7. Enter the "Startdeliver user custom field to match on" in the "Startdeliver" destination settings in Segment.

You have to [identify](/docs/segment/connections/spec/identify/) your user with a proper `userId` so that Startdeliver can match your Segments events with correct Startdeliver users.

Startdeliver attaches any matched events to existing users. If no matched users are found, Startdeliver creates a new user. Startdeliver uses a custom field you specified at the 7th step of the "Getting Started" section to match a user.

For example, you have a user in Startdeliver and you want to attach your Segment events to that user.

To do this, create a User custom field. For instance, it could be `externalId`. Now you should update your Startdeliver user with a proper value, for example, `97980cfea0067` (this is your user's ID). Don't forget to set this custom field in 7th step of the "Getting Started" section.

Now when this user goes to your app, you should [identify](/docs/segment/connections/spec/identify/) them:

```js
analytics.identify('97980cfea0067')
```

After this, you can send either `Page` or `Track` events:

```js
analytics.track('Login Button Clicked')
```

This event is matched with a Startdeliver user that has ID `97980cfea0067` set in a custom field `externalId`.

Segment events will appear on Customer and User views in Startdeliver. The views will be created instantly within Startdeliver.

For further information you can check [Startdeliver documentation](https://app.startdeliver.com/dev).

## Page

If you aren't familiar with the Segment Spec, take a look at the [Page method documentation](/docs/segment/connections/spec/page/) to learn about what it does. An example call would look like:

```js
analytics.page('Home')
```

Segment sends Page calls to Startdeliver as a `page` event.

## Track

If you aren't familiar with the Segment Spec, take a look at the [Track method documentation](/docs/segment/connections/spec/track/) to learn about what it does. An example call would look like:

```js
analytics.track('Login Button Clicked')
```

Segment sends Track calls to Startdeliver as a `track` event.

## 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.

> \[!NOTE]
>
> Real-time audience syncs to Startdeliver  may take six or more hours for the initial sync to complete. Upon completion, a sync frequency of two to three hours is expected.

## Settings

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

| Field                                      | Description                                                                                                                                                                                                                                                        | Required | Type    |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- | ------- |
| API Key                                    | Please set a Startdeliver API. You can generate your API key here – https://app.startdeliver.com/settings/apikeys.                                                                                                                                                 | Yes      | string  |
| Startdeliver user custom field to match on | Please set a Startdeliver user custom field to match a Segment event on. You can find your custom fields here – https://app.startdeliver.com/settings/fields.                                                                                                      | Yes      | string  |
| Sync using Email instead of custom field   | Override the use of Custom Field to match usage. Custom Field still has to be filled in, however this toggle will override the use of Custom Field. If there's no email in the root object or in the objects' traits, the Custom Field will be used as a fallback. | No       | boolean |
