<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RudderStack Docs – Iterable Audience</title><link>https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/</link><description>Recent content in Iterable Audience on RudderStack Docs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/index.xml" rel="self" type="application/rss+xml"/><item><title>Destinations: Connect Reverse ETL Source to Iterable Audience</title><link>https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/</guid><description>
&lt;p>This guide takes you through the steps to connect a &lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/" >Reverse ETL source&lt;/a> to your Iterable Audience destination.&lt;/p>
&lt;blockquote class="success">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/tick.svg loading="lazy" alt="success" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">
You can connect multiple Reverse ETL sources to the Iterable Audience destination.
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="setup" data-heading="Setup" data-level="2" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h2 id="setup">Setup&lt;/h2>&lt;ol>
&lt;li>Set up and configure your Reverse ETL source.&lt;/li>
&lt;li>In the &lt;strong>Overview&lt;/strong> tab of the source page, click &lt;strong>Add destination&lt;/strong> &amp;gt; &lt;strong>Create new destination&lt;/strong>. You can also select an already-configured destination here.&lt;/li>
&lt;li>From the list of destinations, select &lt;strong>Iterable Audience&lt;/strong> and click &lt;strong>Continue&lt;/strong>.&lt;/li>
&lt;li>Specify a unique name to identify this destination in RudderStack.&lt;/li>
&lt;li>In the &lt;strong>Iterable account&lt;/strong> section, click &lt;strong>Select&lt;/strong> to choose an existing account. To add a new account, click &lt;strong>Add account&lt;/strong> &amp;gt; &lt;strong>API Key&lt;/strong>, and specify the following settings:&lt;/li>
&lt;/ol>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Account Name&lt;/td>
&lt;td style="text-align:left">Specify a unique account name.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">API Key&lt;/td>
&lt;td style="text-align:left">Enter your Iterable server-side API key. RudderStack sends this value as the &lt;code>Api-Key&lt;/code> header.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Data Center&lt;/td>
&lt;td style="text-align:left">Select the Iterable data center for your project. &lt;ul>&lt;li>&lt;strong>US&lt;/strong>: Uses &lt;code>api.iterable.com&lt;/code>&lt;/li>&lt;li>&lt;strong>EU&lt;/strong>: Uses &lt;code>api.eu.iterable.com&lt;/code>&lt;/li>&lt;/ul> &lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Syncs call the live Iterable API for your selected data center — there is &lt;strong>no&lt;/strong> test or sandbox mode for this integration.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Project Type&lt;/td>
&lt;td style="text-align:left">Select your Iterable project type — &lt;strong>Email-based&lt;/strong>, &lt;strong>User ID-based&lt;/strong>, or &lt;strong>Hybrid&lt;/strong> — to determine which identifier fields you can map in the sync.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/iterable/configure-account.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/iterable/configure-account.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/iterable/configure-account.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="6">
&lt;li>Proceed to configure the mapping settings.&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="mapping-settings" data-heading="Mapping settings" data-level="2" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h2 id="mapping-settings">Mapping settings&lt;/h2>&lt;p>This section lists the settings to correctly map data from your Reverse ETL source to the Iterable Audience destination.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="select-list" data-heading="Select list" data-level="3" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h3 id="select-list">Select list&lt;/h3>&lt;p>In this section, you can create a new Iterable list or use an existing one. The selected list is where users are subscribed or unsubscribed during each sync.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Create new list&lt;/strong>: Specify the list name and optional description. RudderStack creates the list in Iterable while creating the connection.&lt;/li>
&lt;li>&lt;strong>Use existing list&lt;/strong>: Select an existing list from the dropdown. Click the refresh icon to fetch the latest lists from Iterable.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="update-existing-users-only" data-heading="Update existing users only" data-level="3" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h3 id="update-existing-users-only">Update existing users only&lt;/h3>&lt;p>This setting is visible only for &lt;strong>Hybrid&lt;/strong> and &lt;strong>User ID-based&lt;/strong> project types. It is set to &lt;strong>No&lt;/strong> by default.&lt;/p>
&lt;p>The following table describes the behavior of this setting:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Behavior&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Yes&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Iterable updates only users that already exist in your project. &lt;br />&lt;br />Rows whose &lt;code>userId&lt;/code> or &lt;code>email&lt;/code> is not found are reported as failed records and are not added to the list.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>No&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Iterable creates new users when subscribing — it creates a placeholder email, if not provided .&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-mode" data-heading="Sync mode" data-level="3" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h3 id="sync-mode">Sync mode&lt;/h3>&lt;p>RudderStack supports only &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-modes/#mirror-mode" >Mirror mode&lt;/a> for this integration.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="map-identifiers" data-heading="Map identifiers" data-level="3" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h3 id="map-identifiers">Map identifiers&lt;/h3>&lt;p>In this section, map your warehouse columns to Iterable identifier fields based on your &lt;a href="#setup" >project type&lt;/a>. See &lt;a href="#identifier-mappings-and-validation" >Identifier mappings and validation&lt;/a> for the fields available per project type.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/destinations/iterable/map-identifiers.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/destinations/iterable/map-identifiers.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/destinations/iterable/map-identifiers.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>Click &lt;strong>Map another field&lt;/strong> to add additional identifier mappings as required.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-settings" data-heading="Sync settings" data-level="2" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h2 id="sync-settings">Sync settings&lt;/h2>
&lt;p>RudderStack determines how and when to run a sync based on the &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-schedule-settings/" >sync schedule&lt;/a> you set for your Reverse ETL connection.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Schedule type&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Basic&lt;/td>
&lt;td style="text-align:left">Run syncs at a given time interval and specified time (in UTC).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">CRON&lt;/td>
&lt;td style="text-align:left">Run syncs based on a specified CRON expression (in UTC).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Manual&lt;/td>
&lt;td style="text-align:left">Run syncs manually.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-observability-settings" data-heading="Sync observability settings" data-level="4" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h4 id="sync-observability-settings">Sync observability settings&lt;/h4>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Retain sync logs&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and instructs RudderStack to store the sync logs in your warehouse. You can also configure the below settings: &lt;br />&lt;br />&lt;table>&lt;tr>&lt;th width="20%">Setting&lt;/th>&lt;th width="80%">Description&lt;/th>&lt;/tr>&lt;tr>&lt;td>Sync log retention&lt;/td>&lt;td>Specify the retention period of the &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#sync-logs" >sync logs&lt;/a> in your warehouse. &lt;br />&lt;br />If you set it to 1, then RudderStack deletes any sync log older than a day (in UTC time). &lt;/td>&lt;/tr>&lt;tr>&lt;td>Snapshot table retention&lt;/td>&lt;td>Specify the number of &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#snapshot-table-schema" >snapshot tables&lt;/a> to retain. &lt;/td>&lt;/tr>&lt;/table>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Retry failed records&lt;/td>
&lt;td style="text-align:left">This setting is toggled on by default and causes RudderStack to continually &lt;a href="https://www.rudderstack.com/docs/data-pipelines/reverse-etl/developer-guides/sync-observability/#retry-failed-records" >retry sending the failed records&lt;/a>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Storing sync logs and snapshot tables may incur additional warehouse costs.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="identifier-mappings-and-validation" data-heading="Identifier mappings and validation" data-level="2" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h2 id="identifier-mappings-and-validation">Identifier mappings and validation&lt;/h2>&lt;p>You can map warehouse columns to the following Iterable identifier fields based on your project type:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Project type&lt;/th>
&lt;th style="text-align:left">Identifier&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Email-based&lt;/td>
&lt;td style="text-align:left">&lt;code>email&lt;/code>&lt;/td>
&lt;td style="text-align:left">Map a warehouse column to the user&amp;rsquo;s email address.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">UserId-based&lt;/td>
&lt;td style="text-align:left">&lt;code>userId&lt;/code>&lt;/td>
&lt;td style="text-align:left">Map a warehouse column to the user&amp;rsquo;s Iterable user ID.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Hybrid&lt;/td>
&lt;td style="text-align:left">&lt;code>email&lt;/code>, &lt;code>userId&lt;/code>&lt;/td>
&lt;td style="text-align:left">Map warehouse columns to &lt;strong>both&lt;/strong> fields. &lt;br />&lt;br />When a row includes both values, both are sent so Iterable can match on either identifier. &lt;br />&lt;br />&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Iterable treats &lt;code>userId&lt;/code> as the primary key.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>In mirror mode, audience membership changes map to Iterable list operations:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Action&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Iterable operation&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Insert or update&lt;/td>
&lt;td style="text-align:left">Subscribe (add user to the list)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Delete&lt;/td>
&lt;td style="text-align:left">Unsubscribe (remove user from the list) &lt;br />&lt;br />&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">Unsubscribe removes the user from &lt;strong>this list only&lt;/strong> — it does not unsubscribe them from all Iterable messaging channels.&lt;/div>
&lt;/div>
&lt;/blockquote>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Note that:&lt;/p>
&lt;ul>
&lt;li>Subscribe and unsubscribe requests are batched, with up to &lt;strong>1000&lt;/strong> subscribers per API request.&lt;/li>
&lt;li>RudderStack calls Iterable&amp;rsquo;s &lt;a href="https://api.iterable.com/api/docs#lists_subscribe" >&lt;code>/api/lists/subscribe&lt;/code>&lt;/a> and &lt;a href="https://api.iterable.com/api/docs#lists_unsubscribe" >&lt;code>/api/lists/unsubscribe&lt;/code>&lt;/a> endpoints to make these requests.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="identifier-validation" data-heading="Identifier validation" data-level="4" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h4 id="identifier-validation">Identifier validation&lt;/h4>&lt;p>Before sending data to Iterable, each row is validated based on the mapped identifier fields:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Identifier&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Validation&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>email&lt;/code>&lt;/td>
&lt;td style="text-align:left">Must be a valid email address. Values are normalized to lowercase and trimmed before sending.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>userId&lt;/code>&lt;/td>
&lt;td style="text-align:left">Must be non-empty with no leading or trailing whitespace. Iterable treats whitespace-padded user IDs as distinct identifiers, which can cause mismatches on unsubscribe.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Rows with no valid identifier are skipped and reported as &lt;strong>failed records&lt;/strong> in the sync report. The sync completes with failures rather than stopping entirely.&lt;/p>
&lt;ul>
&lt;li>Invalid identifier values are &lt;strong>not&lt;/strong> sent to Iterable.&lt;/li>
&lt;li>If a row has no valid identifier, the entire row is marked as failed.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="faq" data-heading="FAQ" data-level="2" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h2 id="faq">FAQ&lt;/h2>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="where-can-i-find-the-iterable-api-key" data-heading="Where can I find the Iterable API key?" data-level="4" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h4 id="where-can-i-find-the-iterable-api-key">Where can I find the Iterable API key?&lt;/h4>&lt;p>You can get the Iterable API key by navigating to &lt;strong>Integrations&lt;/strong> &amp;gt; &lt;strong>API Keys&lt;/strong> in your Iterable account.&lt;/p>
&lt;p>For more information, refer to &lt;a href="https://support.iterable.com/hc/en-us/articles/360043464871-API-Keys" >Iterable&amp;rsquo;s API key documentation&lt;/a>.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="why-are-some-rows-marked-as-failed-when-update-existing-users-only-is-enabled" data-heading="Why are some rows marked as failed when Update existing users only is enabled?" data-level="4" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h4 id="why-are-some-rows-marked-as-failed-when-update-existing-users-only-is-enabled">Why are some rows marked as failed when Update existing users only is enabled?&lt;/h4>&lt;p>When &lt;strong>Update existing users only&lt;/strong> is set to &lt;strong>Yes&lt;/strong>, Iterable does not create users for identifiers that are not already in your project. Those rows fail with a not-found error and appear as failed records in the sync report.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="does-removing-a-user-from-the-audience-unsubscribe-them-from-iterable-entirely" data-heading="Does removing a user from the audience unsubscribe them from Iterable entirely?" data-level="4" data-permalink="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/iterable-audience/connect-retl-source/" data-title="Connect Reverse ETL Source to Iterable Audience" -->
&lt;h4 id="does-removing-a-user-from-the-audience-unsubscribe-them-from-iterable-entirely">Does removing a user from the audience unsubscribe them from Iterable entirely?&lt;/h4>&lt;p>No. Delete actions call Iterable&amp;rsquo;s list unsubscribe API, which removes the user from the synced list only. It does not unsubscribe them from all messaging channels in Iterable.&lt;/p>
&lt;br /></description></item></channel></rss>