> For the complete documentation index, see [llms.txt](https://docs.anedot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.anedot.com/integrations/email-marketing-communication/iterable.md).

# Iterable

Connect Anedot to Iterable to sync donation and lead contacts for email or messaging campaigns and lists from Settings → Integrations → Directory.

> For the complete documentation index, see [llms.txt](https://anedot.gitbook.io/anedot-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anedot.gitbook.io/anedot-docs/integrations/email-marketing-communication/iterable.md).

## Iterable

Connect Anedot to Iterable to automatically send donation and lead data, configure custom events, map hidden fields, and trigger list subscriptions and purchase events for targeted multi-channel marketing campaigns.

Iterable is a cross-channel growth marketing platform used to build and manage personalized campaigns across email, SMS, push notifications, and more. It is especially popular for email and digital marketing automation.

### Connecting Anedot to Iterable

Follow these steps to connect your Anedot account with Iterable:

1. In Anedot, go to Settings → Integrations → Directory.
2. Click + New Connection.
3. Select Iterable from the integration list.
4. Choose the Action Pages to sync (default is all).
   * To exclude specific pages, enter their IDs in the Action Page IDs for Exclusion field (comma-separated, no spaces).
5. Enter your Iterable API Key:
   * In Iterable, go to Integrations → API Keys
   * Copy your API key and paste it into Anedot
6. (Optional) Configure the following advanced settings:
   * List ID(s): Automatically subscribe donors to one or more Iterable lists.
     * Click Add to input each List ID.
   * **Campaign ID and Template ID:**
     * Use **Hidden Custom Fields** to assign these by selecting them from the dropdown.
   * **Custom Event:**
     * Add a Custom Event for additional tracking.
     * Find this in Iterable under **Settings → Custom Event Usage** or **Project Settings**.
     * When set, Lead Page submissions will use the Custom Event\_(instead of Purchase Event)\_.
   * **Include Formatted Amounts:**
     * Check this box to relay additional fields such as `amount`, `amount_cents`, `amount_decimal`, and `amount_dollars` on the Purchase Event payloads.
   * **Field Names:**
     * Optionally customize field labels. If left blank, default names will be used.
7. Click **Save** to complete the connection.

*Action Pages, API credentials, and optional configurations can be updated at any time.*

### Data Relays

Anedot relays the following types of data to Iterable:

#### Donation Pages

* Triggers a Purchase event
* Viewable in Iterable via Insights → Logs → Purchases

#### Lead Pages

* If a Custom Event is configured, submissions trigger that event (not a Purchase event)
* Viewable in Insights → Logs → Events

#### Abandoned Cart Support

* If Abandoned Actions is enabled in the Action Page Builder, Iterable will log potential submission activity
* View this under the Contact Lookup section of a specific contact in Iterable

#### Subscriptions

* If a List ID is set, a Subscribe event is triggered
* View this in Iterable under:
  * Contact Lookup → Events tab
  * Subscriptions tab
  * Lists tab

#### Custom Field Support

Only two Hidden Custom Fields are supported for relays:

* Campaign ID
* Template ID

> Other custom fields will not be passed through the integration.

### Field Mapping

#### Custom Field Names

In Step 6 of the Anedot to Iterable integration setup, you have the option to define Custom Field Names. These replace the default field labels in all relay types.

> Note: Setting custom field names is optional—if left blank, default labels will be used.

| Custom Field Name               | Default Label                      |
| ------------------------------- | ---------------------------------- |
| Address Line 1                  | street                             |
| Address Line 2                  | street\_2                          |
| City                            | city                               |
| State                           | state                              |
| Zip Code                        | zip                                |
| Country                         | country                            |
| Employer                        | employer                           |
| First Name                      | first\_name                        |
| Last Name                       | last\_name                         |
| Occupation                      | occupation                         |
| Referrer                        | referrer                           |
| Source Code                     | source\_code                       |
| UTM Campaign                    | utm\_campaign                      |
| UTM Medium                      | utm\_medium                        |
| UTM Source                      | utm\_source                        |
| UTM Term                        | utm\_term                          |
| Highest Contribution Amount     | highest\_contribution\_amount      |
| Most Recent Contribution Amount | most\_recent\_contribution\_amount |
| Most Recent Contribution Date   | most\_recent\_contribution\_date   |
| Recurring                       | recurring                          |
| Total Amount Processed          | total\_amount\_process             |
| Total Contributed This Year     | total\_contributed\_this\_year     |
| First Contribution Amount       | first\_contribution\_amount        |

#### Abandoned Cart

Abandoned Cart activity does not create a Submission or Donation record in Anedot.

| Anedot Field                          | Iterable Field                                    |
| ------------------------------------- | ------------------------------------------------- |
| - email { } "true"                    | user (email) (dataFields) (mergeNestedObjects)    |
| - id "Donation" amount (x100) "1" { } | items (id) (name) (price) (quantity) (dataFields) |

#### Custom Event / Lead Submission

Anedot fields reflect the raw data submitted through the form, while Iterable fields represent the formatted data included in the relay's request body.

| Anedot Field                                                                                                       | Iterable Field                                                                                                                                |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| email                                                                                                              | email                                                                                                                                         |
| created\_at                                                                                                        | createdAt                                                                                                                                     |
| User-defined in Step 6                                                                                             | eventName                                                                                                                                     |
| \* Custom Hidden Field from Step 6                                                                                 | campaignId                                                                                                                                    |
| - referrerToForm utmCodes (term) utmCodes (medium) utmCodes (source) sourceCode utmCodes (campaign) actionPageName | dataFields \*\*(referrer) \*\*(utm\_term) \*\*(utm\_medium) \*\*(utm\_source) \*\*(source\_code) \*\*(utm\_campaign) \*\*(action\_page\_name) |
| \* Custom Hidden Field from Step 8                                                                                 | templateId                                                                                                                                    |
| "true"                                                                                                             | createNewFields                                                                                                                               |

\*Custom Hidden Fields must be added to the Anedot AP in order to be relayed.

\*\*This table shows the default field mapping. If custom Field Name mapping is saved within Step 6, it will display those Field Names here instead. UTM fields can be added to the Page URL.

#### Purchase Events

Anedot fields reflect the raw submission data, while Iterable fields correspond to the data formatted within the relay request body.

| Anedot Field                                                                                                                                                                                                                                                                                        | Iterable Field                                                                                                                                                                                                                                                                                                                                                     |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| email                                                                                                                                                                                                                                                                                               | email                                                                                                                                                                                                                                                                                                                                                              |
| - address (zip) address (city) email address (region) address (line1) employerName address (line2) lastName firstName occupation phone first\_contribution\_amount highest\_contribution\_amount total\_contributed\_this\_year most\_recent\_contribution\_date most\_recent\_contribution\_amount | user {dataFields \*\*(zip) \*\*(city) (email) \*\*(state) \*\*(street) \*\*(employer) \*\*(street\_2) \*\*(last\_name) \*\*(first\_name) \*\*(occupation) (phoneNumber) \*\*(first\_contribution\_amount) \*\*(highest\_contribution\_amount) \*\*(total\_contributed\_this\_year) \*\*(most\_recent\_contribution\_date) \*\*(most\_recent\_contribution\_amount) |
| "true"                                                                                                                                                                                                                                                                                              | mergeNestedObjects                                                                                                                                                                                                                                                                                                                                                 |
| - (Donation) id "Donation" amount (x100) "1" fundName                                                                                                                                                                                                                                               | items (id) (name) (price) (quantity) (description)                                                                                                                                                                                                                                                                                                                 |
| - referrerToForm utmCodes (term) utmCodes (medium) utmCodes (source) sourceCode utmCodes (campaign)                                                                                                                                                                                                 | items {dataFields \*\*(referrer) \*\*(utm\_term) \*\*(utm\_medium) \*\*(utm\_source) \*\*(source\_code) \*\*(utm\_campaign)                                                                                                                                                                                                                                        |
| amount (x100)                                                                                                                                                                                                                                                                                       | total                                                                                                                                                                                                                                                                                                                                                              |
| - recurring actionPageName                                                                                                                                                                                                                                                                          | dataFields \*\*(recurring) (action\_page\_name)                                                                                                                                                                                                                                                                                                                    |

*\*\*This table shows the default field mapping. If custom Field Name mapping is saved within Step 9, it will display those Field Names here instead. UTM fields can be **added to the Page URL.***

### Payload Data

Payloads are available for Purchase Events, Abandoned Actions, and Custom Events (for lead submissions when specified).

Additional fields are added to each payload to send List ID, Campaign ID, Template ID, and Amount Formatting (when they are specified).

#### Request Headers - Potential Submitter *(Abandoned Cart)*

```json
{"Api-Key":"[REDACTED]","User-Agent":"Anedot/6a9989c4","Content-Type":"application/json","X-Uniq-Identifier":"i2209cdadd44305cc5210"}
```

#### Request Body - Purchase Event *(without Amount Formatting Enabled)*

```json
{"user":{"email":"admin@anedot.com","dataFields":{"zip":"70113","city":"New Orleans","state":"LA","street":"1340 Poydras St","country":"US","employer":"retired","street_2":"","last_name":"Dot","first_name":"Annie","occupation":"retired","phoneNumber":"2015550123"},"mergeNestedObjects":true},"items":[{"id":"d12ff55f0bff0f80c72ab","name":"Donation","price":50.0,"quantity":1,"dataFields":{"referrer":"https://secure.anedot.com/finerthingsinlife/donate","utm_term":null,"utm_medium":null,"utm_source":null,"source_code":null,"utm_campaign":null},"description":"General Fund"}],"total":50.0}
```

#### Request Body - Purchase Event *(with Amount Formatting, Campaign ID, Template ID, and custom field labels set)*

```json
{"user":{"email":"admin@anedot.com","dataFields":{"zip":"70113","city":"New Orleans","email":"admin@anedot.com","state":"LA","street":"1340 Poydras St","hca_amt":104.48,"mcr_amt":37.14,"employer":"student","street_2":"2541","last_name":"Dot","first_name":"Annie","occupation":"student","phoneNumber":"2252501301","first_contribution_amount":200.0,"highest_contribution_amount":200.0,"total_contributed_this_year":322.0,"most_recent_contribution_date":"2023-06-01T16:50:55.648-05:00","most_recent_contribution_amount":50.0},"mergeNestedObjects":true},"items":[{"id":"dc5171a5bf272359d3823","name":"Donation","price":37.14,"quantity":1,"dataFields":{"referrer":"https://secure.anedot.com/","utm_term":null,"utm_medium":null,"utm_source":null,"source_code":null,"utm_campaign":null},"description":"General Fund"}],"total":37.14,"campaignId":6733967,"dataFields":{"amount":"37.14","recurring":false,"amount_cents":3714,"amount_decimal":37.14,"amount_dollars":"$37.14","action_page_name":"Iterable Donations"},"templateId":9012209}
```

#### Request Body - Custom Event *(Example: petition.signed)*

```json
{"email":"admin@anedot.com","createdAt":1683044154,"eventName":"petition.signed","campaignId":6733967,"dataFields":{"referrer":"https://secure.anedot.com/","utm_term":null,"utm_medium":null,"utm_source":null,"source_code":null,"utm_campaign":null,"action_page_name":"General Fund"},"templateId":9012209,"createNewFields":true}
```

#### Request Body - Potential Submitter *(Example: Abandoned Cart)*

```json
{"user":{"email":"admin@anedot.com","dataFields":{},"mergeNestedObjects":true},"items":[{"id":"3fe73bc5-31ea-445b-9885-32ddc03c4f5b","name":"Donation","price":25.0,"quantity":1,"dataFields":{}}]}
```

#### Response Body - Purchase Event

```json
{"msg":"Single user ingestion successful.","code":"Success","params":{"id":"aae425e43c85479db339e17db48d4a5d"}}
```

#### Response Body - Custom Event *(Example: petition.signed)*

```json
{"msg":"Event with id: d63e602d29bc4cd8a41cb2e3616e458e tracked.","code":"Success","params":{"id":"d63e602d29bc4cd8a41cb2e3616e458e"}}
```

#### Response Body - Potential Submitter *(Example: Abandoned Cart)*

```json
{"msg":"Single user ingestion successful.","code":"Success","params":null}
```

#### Response Body *(Failure)*

```json
{"msg":"Invalid API key","code":"BadApiKey","params":{"ip":"52.13.182.211","endpoint":"/api/commerce/trackPurchase"}}
```

***


---

# 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.anedot.com/integrations/email-marketing-communication/iterable.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.
