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

# Data reference

> Metrics, breakdowns, refresh cadence, and limits for the Constant Contact Email data source in Adriel.

## Introduction

Constant Contact Email is Constant Contact's email marketing platform, covering campaign creation, list management, and email performance reporting. Advertisers send email campaigns through the Constant Contact web app, and the connector imports each campaign's aggregate performance metrics through the Constant Contact v3 REST API.

This connector replaces the older, general-purpose Constant Contact connector, which combined email and SMS. Email and SMS are now split into separate connectors that share the same OAuth account.

To connect this data source, see [How to connect Constant Contact Email to Adriel](/data-sources/a-f/constant-contact-email/how-to-connect).

## Data refresh strategy

Email campaign data refreshes **once daily at 3:00 AM UTC**. Each refresh cycle fetches the full email campaign catalog and its associated stats from Constant Contact, then atomically replaces the cached copy in Adriel.

Because Constant Contact's stats API returns **lifetime totals per campaign** (not day-by-day breakdowns), reports do not accumulate a daily time series ([Email campaign stats](https://developers.constantcontact.com/api_reference/index.html#!/Reporting_NEW/getEmailCampaignSummariesUsingGET)). The date filter applied in Adriel filters which campaigns appear in a report based on their creation or update timestamp — it does not filter the metric values themselves.

## Date range limits

No hard date-range limit is applied by the connector. The practical limit is the campaign's own lifecycle: metrics reflect lifetime totals for each campaign, and campaigns appear in reports based on their `campaignCreatedAt` or `campaignUpdatedAt` timestamp falling within the selected date range.

## Metrics

<Note>
  **How to read the columns**

  **Data type** uses this vocabulary: Number, Currency, Percentage, Ratio, Duration, Date, Text, URL, Array, Boolean.

  **API Key** in code style like `em_sends` is the literal Constant Contact v3 API field name from the campaign stats response. *Italic text* describes how a value is produced when it doesn't map cleanly to a single API field.
</Note>

### Send & delivery

| Metric     | Description                          | Data type | API Key         |
| ---------- | ------------------------------------ | --------- | --------------- |
| Sends      | Total messages sent.                 | Number    | `em_sends`      |
| Bounces    | Total bounced messages.              | Number    | `em_bounces`    |
| Not opened | Messages delivered but not opened.   | Number    | `em_not_opened` |
| Opt-outs   | Total unsubscribes / opt-outs.       | Number    | `em_optouts`    |
| Forwards   | Total times the email was forwarded. | Number    | `em_forwards`   |

### Opens

| Metric                    | Description                                                | Data type | API Key                 |
| ------------------------- | ---------------------------------------------------------- | --------- | ----------------------- |
| Unique opens              | Distinct recipients who opened the email at least once.    | Number    | `em_opens`              |
| Opens (all)               | Total opens across all recipients.                         | Number    | `em_opens_all`          |
| Opens on computer         | Opens from desktop devices.                                | Number    | `em_opens_all_computer` |
| Opens on mobile           | Opens from mobile devices.                                 | Number    | `em_opens_all_mobile`   |
| Opens on tablet           | Opens from tablets.                                        | Number    | `em_opens_all_tablet`   |
| Opens on other devices    | Opens on device types outside computer, mobile, or tablet. | Number    | `em_opens_all_other`    |
| Opens with no device data | Opens where the device could not be identified.            | Number    | `em_opens_all_none`     |

### Clicks

| Metric                     | Description                                                 | Data type | API Key                  |
| -------------------------- | ----------------------------------------------------------- | --------- | ------------------------ |
| Unique clicks              | Distinct recipients who clicked at least once.              | Number    | `em_clicks`              |
| Clicks (all)               | Total clicks across all recipients.                         | Number    | `em_clicks_all`          |
| Clicks on computer         | Clicks from desktop devices.                                | Number    | `em_clicks_all_computer` |
| Clicks on mobile           | Clicks from mobile devices.                                 | Number    | `em_clicks_all_mobile`   |
| Clicks on tablet           | Clicks from tablets.                                        | Number    | `em_clicks_all_tablet`   |
| Clicks on other devices    | Clicks on device types outside computer, mobile, or tablet. | Number    | `em_clicks_all_other`    |
| Clicks with no device data | Clicks where the device could not be identified.            | Number    | `em_clicks_all_none`     |

## Breakdowns

### Campaigns

| Breakdown     | Description                                    | API Key                                                        |
| ------------- | ---------------------------------------------- | -------------------------------------------------------------- |
| Campaign ID   | Group by Constant Contact campaign identifier. | `campaign_id`                                                  |
| Campaign name | Group by campaign display name.                | *Joined from `/v3/emails` — not present on the stats response* |

### Time & date grouping

| Breakdown           | Description                                                | API Key      |
| ------------------- | ---------------------------------------------------------- | ------------ |
| Campaign created at | Group by the timestamp when the campaign was created.      | `created_at` |
| Campaign updated at | Group by the timestamp when the campaign was last updated. | `updated_at` |

## Limitations

* **Metrics are lifetime totals, not daily** — the Constant Contact stats API returns cumulative counts per campaign. Adriel's date filter narrows the report to campaigns whose created-at or updated-at timestamp falls in the range; it does not slice metric values by day.
* **Reconnect required when the refresh token expires** — Constant Contact-issued refresh tokens can be invalidated by the platform. When this happens, the data source is disconnected and must be reauthorized in Adriel.
* **Deleted campaigns are not backfilled from Constant Contact** — campaigns removed on the Constant Contact side stop appearing in future refreshes.
* **Larger accounts sync more slowly** — the connector fetches stats in chunks of 40 campaigns per request (a workaround for URL-length limits on the stats endpoint). Accounts with many campaigns make proportionally more API calls.
* **Deprecated "Constant Contact" connector** — the older combined connector is no longer offered; new connections should use **Constant Contact Email** or **Constant Contact SMS**.

## API references

* [Constant Contact v3 API — Emails](https://developers.constantcontact.com/api_reference/index.html#!/Email_Campaigns_NEW)
* [Email campaign stats](https://developers.constantcontact.com/api_reference/index.html#!/Reporting_NEW/getEmailCampaignSummariesUsingGET)
* [Constant Contact API overview](https://developers.constantcontact.com/api_guide/index.html)

## See also

* [How to connect Constant Contact Email to Adriel](/data-sources/a-f/constant-contact-email/how-to-connect) (paired how-to)
* [Constant Contact SMS data reference](/data-sources/a-f/constant-contact-sms/data-reference) — for SMS campaign metrics on the same account
