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.
Table of Contents
Connecting Anedot to Iterable
Follow these steps to connect your Anedot account with Iterable:
-
In Anedot, go to Settings > Integrations > Directory.
-
Click + New Connection.
-
Select Iterable from the integration list.
-
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).
-
-
Enter your Iterable API Key:
-
In Iterable, go to Integrations > API Keys
-
Copy your API key and paste it into Anedot
-
-
(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
, andamount_dollars
on the Purchase Event payloads.
-
-
Field Names:
-
Optionally customize field labels. If left blank, default names will be used.
-
-
-
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
Anedot Field | Iterable Field |
---|---|
- { } "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 |
---|---|
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 Field | Iterable Field |
---|---|
- address {zip} address {city} 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)
{
"Api-Key": "[REDACTED]",
"User-Agent": "Anedot/6a9989c4",
"Content-Type": "application/json",
"X-Uniq-Identifier": "i2209cdadd44305cc5210"
}
Request Body - Purchase Event (without Amount Formatting Enabled)
{
"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)
{
"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)
{
"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)
{
"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
{
"msg": "Single user ingestion successful.",
"code": "Success",
"params": {
"id": "aae425e43c85479db339e17db48d4a5d"
}
}
Response Body - Custom Event (Example: petition.signed)
{
"msg": "Event with id: d63e602d29bc4cd8a41cb2e3616e458e tracked.",
"code": "Success",
"params": {
"id": "d63e602d29bc4cd8a41cb2e3616e458e"
}
}
Response Body - Potential Submitter (Example: Abandoned Cart)
{
"msg": "Single user ingestion successful.",
"code": "Success",
"params": null
}
Response Body (Failure)
{
"msg": "Invalid API key",
"code": "BadApiKey",
"params": {
"ip": "52.13.182.211",
"endpoint": "/api/commerce/trackPurchase"
}
}