> For the complete documentation index, see [llms.txt](https://docs.chord.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chord.co/activate/event-streaming/destinations/email-and-marketing/attentive.md).

# Attentive

**Attentive** is an SMS-first marketing platform for e-commerce brands. It enables personalized, real-time SMS messaging, subscriber list growth and automated flows driven by customer behavior. This destination forwards track events to Attentive's Custom Events API.

## Getting started

This destination sends events from Chord's servers. Attentive requires an **app-specific API key**. A single shared key is not sufficient. Create a custom app in Attentive first:

1. Log into your Attentive account and click **Marketplace** in the left navigation.
2. On the App Marketplace page, click **Create App** in the top right corner.
3. On the App Permissions page, configure the following scopes:
   * **Customer Attributes**: Write
   * **Custom Events**: Write
   * **Ecommerce**: Write
   * **Privacy Request**: Read
   * **Product Catalog**: No Access
   * **Subscribers**: Write
4. Save the app and copy the generated **API key**.

## Settings

* **Destination Name** (required): a name to tell this destination apart.
* **Attentive API Key** (required): the API key from your Attentive custom app.
* **Consent Requirements** (optional): the consent categories a visitor must accept before Chord sends data to this destination. See [Consent](/activate/event-streaming/consent.md).

## Connect

Add **Attentive** from the destination catalog, using the settings above. See [Connect a destination](/activate/event-streaming/connect-a-destination.md) for the full steps.

## Event mapping

| Chord event         | Attentive event     | Notes                                                |
| ------------------- | ------------------- | ---------------------------------------------------- |
| `track` (any event) | Create custom event | Event name passed as-is. Custom events need no setup |
| `identify`          | *(ignored)*         | Not forwarded                                        |
| `page`, `screen`    | *(ignored)*         | Not forwarded                                        |

**Events are only forwarded when at least one of the following is present:** `phone`, `email`, `userId` or `anonymousId`.

## Event fields

| Chord source (priority order) | Attentive field   | Notes                         |
| ----------------------------- | ----------------- | ----------------------------- |
| Chord event name              | `type`            | Passed as-is                  |
| `properties`                  | `properties`      | All event properties included |
| `messageId`                   | `externalEventId` |                               |
| `timestamp`                   | `occurredAt`      | ISO 8601 format               |

## User data

| Chord source (priority order)                                                  | Attentive field                    | Notes                                                                                 |
| ------------------------------------------------------------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------- |
| `properties.phone` > `context.phone` > `context.traits.phone` > `traits.phone` | `phone`                            | Must be E.164 (for example `+18005550100`); see [Phone formatting](#phone-formatting) |
| `properties.email` > `context.traits.email` > `traits.email`                   | `email`                            |                                                                                       |
| `userId` > `anonymousId`                                                       | `externalIdentifiers.clientUserId` |                                                                                       |

## Phone formatting

Attentive requires phone numbers in **E.164 format** (for example `+18005550100`). Chord formats them automatically:

* If the phone is already in valid E.164 format (for example `+18005550100`), it is passed through unchanged. Numbers that start with `+` but are not canonical E.164 (for example `+1 800 555 0100`) are still parsed and converted.
* Otherwise, Chord converts it using the subscriber's country. Country is resolved from `context.traits.address.country` or `traits.address.country`. Either a 2-letter ISO code (`US`) or a full country name (`United States`) is accepted. If no country is present, `US` is assumed.
* If the number cannot be converted (for example invalid digits for the resolved country), the event fails with an error and Chord retries it.

## Custom events

Chord sends every `track` event to Attentive under its own name, so custom events need no setup. Chord skips an event that has no phone number, email, `userId` or `anonymousId`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.chord.co/activate/event-streaming/destinations/email-and-marketing/attentive.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
