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

# Data extensions

> The data extensions that track message, reply, and subscriber data in your SFMC account

The integration writes all messaging data to three data extensions in your SFMC account, installed from the deployment package during [setup](/messaging/sfmc/setup#step-4-import-the-tatango-data-extensions):

<a href="/downloads/tatango-data-extensions-v1.json" download="tatango-data-extensions-v1.json">
  <Card title="Tatango Data Extensions package" icon="download" horizontal>
    Import via Platform → Package Manager → Deployment.
  </Card>
</a>

Because the data lives in ordinary data extensions, you can query it with SQL in Automation Studio; the [reporting](/messaging/sfmc/reporting) page walks through a worked example.

<Tabs>
  <Tab title="tatango_messages">
    One row per send attempt, including skipped sends and test messages. Delivery status updates arrive asynchronously and update the row.

    | Field             | Type        | Description                                                                                                      |
    | ----------------- | ----------- | ---------------------------------------------------------------------------------------------------------------- |
    | TransactionId     | Text (50)   | Primary key. Unique ID for the send attempt; delivery updates and replies reference it.                          |
    | SubscriberKey     | Text (100)  | The contact's subscriber key, from the column selected in the activity.                                          |
    | PhoneNumber       | Text (20)   | The recipient's phone number.                                                                                    |
    | MessageType       | Text (10)   | `SMS` or `MMS`.                                                                                                  |
    | MessageContent    | Text (3500) | The message body as sent, with merge tags resolved.                                                              |
    | AttachmentUrl     | Text (255)  | The MMS attachment URL.                                                                                          |
    | SendStatus        | Text (50)   | `skipped` when the send was skipped; otherwise set as delivery reports arrive (for example, `success`).          |
    | TatangoAccountId  | Text (50)   | The Tatango account that sent the message.                                                                       |
    | Subject           | Text (40)   | The MMS subject line.                                                                                            |
    | SmsFailover       | Text (160)  | The SMS fallback content for MMS sends.                                                                          |
    | DeliveryTimestamp | Date        | When delivery was confirmed.                                                                                     |
    | TimestampSent     | Date        | When the activity sent the message.                                                                              |
    | CreatedDate       | Date        | When the send was attempted.                                                                                     |
    | JourneyId         | Text (50)   | The journey that sent the message (`TEST MESSAGE` for test sends).                                               |
    | ActivityId        | Text (50)   | The activity instance that sent the message (`TEST MESSAGE` for test sends).                                     |
    | SkipReason        | Text (50)   | Why the send was skipped: the number was opted out or cleaned, or this send found it unable to receive messages. |
  </Tab>

  <Tab title="tatango_replies">
    One row per inbound reply (MO) from a subscriber.

    | Field          | Type        | Description                                            |
    | -------------- | ----------- | ------------------------------------------------------ |
    | ReplyId        | Text (50)   | Primary key. Unique ID for the reply.                  |
    | TransactionId  | Text (50)   | The `tatango_messages` send the subscriber replied to. |
    | PhoneNumber    | Text (20)   | The subscriber's phone number.                         |
    | SentAt         | Date        | When the subscriber sent the reply.                    |
    | Content        | Text (4000) | The reply text.                                        |
    | Subject        | Text (80)   | The subject of an MMS reply.                           |
    | AttachmentUrls | Text (4000) | Media attached to the reply, as a JSON array of URLs.  |
    | JourneyId      | Text (50)   | The journey whose message was replied to.              |
    | ActivityId     | Text (50)   | The activity whose message was replied to.             |
  </Tab>

  <Tab title="tatango_subscribers">
    One row per phone number, tracking opt-out and cleaned state. The activity consults this data extension before every send and [skips](/messaging/sfmc/sending-messages#compliance-is-automatic) contacts who are opted out or cleaned.

    * A subscriber is marked opted out when they reply with an opt-out keyword such as STOP.
    * A subscriber is marked cleaned when their number is found unable to receive text messages.

    | Field                | Type      | Description                                                      |
    | -------------------- | --------- | ---------------------------------------------------------------- |
    | PhoneNumber          | Text (10) | Primary key. The subscriber's phone number.                      |
    | OptedOut             | Boolean   | Whether the subscriber has opted out.                            |
    | OptedOutDate         | Date      | When they opted out.                                             |
    | OptedOutReplyId      | Text (50) | The `tatango_replies` reply that opted them out.                 |
    | Cleaned              | Boolean   | Whether the number can't receive text messages.                  |
    | CleanedDate          | Date      | When the number was cleaned.                                     |
    | CleanedTransactionId | Text (50) | The `tatango_messages` send that found the number undeliverable. |
    | OptedOutJourneyId    | Text (50) | The journey whose message drew the opt-out reply.                |
    | OptedOutActivityId   | Text (50) | The activity whose message drew the opt-out reply.               |
    | CleanedJourneyId     | Text (50) | The journey whose send cleaned the number.                       |
    | CleanedActivityId    | Text (50) | The activity whose send cleaned the number.                      |
  </Tab>
</Tabs>
