Data feeds let you fetch data from external web services and use it to populate campaigns with up-to-date, relevant information about your users, products, and services.
This article explains how to add, edit, and delete data feeds in Iterable.
# In this article
# Before you begin
Before adding a data feed in Iterable, make sure your data feed web service is built and reachable. It must return a supported response format (JSON, XML, RSS, or Atom) within 10 seconds. See Creating a Data Feed Web Service.
# Managing data feeds
Users with the Manage Integrations project permission can add, edit, and delete data feeds in Iterable.
To view your project's data feeds, go to Content > Data Feeds.
# Adding a data feed in Iterable
To add a new data feed in Iterable:
- Go to Content > Data Feeds.
- Click New Data Feed.
- Enter the properties for the data feed, including:
- Name
- Template Handlebars alias (optional)
- URL
- Format
- Authorization token (optional)
- Custom headers (optional)
- Rate limit (optional, beta feature)
- Click Save.
# Editing a data feed
To edit an existing data feed in Iterable:
Go to Content > Data Feeds and find the data feed you need to update.
Click Edit Data Feed.
-
Update the data feed's properties as needed. To see the full descriptions of each property, see Data feed properties.
Note that some properties are sensitive and have specific editing workflows:
Click Save to save the changes.
# Managing an authorization token
Changes to authorization tokens take immediate effect when you save the data feed. Cached data feed responses are preserved until the cache expires (1 hour).
To update the authorization token:
- Go to Content > Data Feeds and find the data feed you need to update.
- Click Edit Data Feed to open the data feed's properties.
- Find the Authorization token field and make one of the following changes:
- To replace the current authorization token with a new one, click Update Token. In the prompt, click Update Token again to clear the current token. Next, enter the new token value.
- To delete the token completely, click Remove Token. In the prompt, click Remove Token again to confirm deletion. (You can add a new token after deleting the current one, or you can leave the field blank.)
- Click Save Data Feed to save the changes.
# Managing a data feed alias
To learn about the benefits of using an alias for a data feed, see Template Handlebars alias.
You can add a data feed alias in the Template Handlebars alias (optional) field when you first add a data feed. After you add a data feed alias, you can edit it at any time from the data feed's overflow menu.
DANGER
Changing a data feed's alias breaks any templates that depend on the original alias. Proceed with caution.
To edit a data feed's alias:
- Go to Content > Data Feeds and find the data feed you need to update.
- Click the arrow next to Edit Data Feed to expand the options menu.
- Click Edit Alias.
- This brings up the Edit Data Feed Alias window, where you see the current alias.
- Enter the new alias (or clear the field to remove the current alias).
- Check the confirmation box, and click Save Data Feed.
# Deleting a data feed
To delete a data feed:
- Go to Content > Data Feeds and find the data feed you need to delete.
- Click the arrow next to Edit Data Feed to expand the options menu.
- Click Delete Data Feed.
- You'll be prompted to confirm the action. Click Delete Data Feed to confirm deletion.
# Data feed properties
Each data feed you add can have the following properties:
- Name
- Template Handlebars alias (optional)
- URL
- Format
- Authorization token (optional)
- Custom headers (optional)
- Rate limit (beta feature)
In addition to these properties that always apply to the data feed, some settings are specific to the template that uses it. To learn more, see Template settings for data feeds.
# Name
The name of the data feed. This is an internal field that displays to Iterable app users on your team when they select the data feed in a template.
NOTE
The data feed's name field isn't used to identify the data feed in any way outside of the Iterable user interface. If you want to create a name that serves as a unique identifier for the data feed in Handlebars expressions, use the Template Handlebars alias field.
# Template Handlebars alias (optional)
An alias that you can use in merge tags and other Handlebars expressions to reference the data feed. Data feed aliases clarify which data feed you're referencing, especially in situations where a single template uses multiple data feeds or the Merge the Data Feed and User Contexts setting is enabled.
Using an alias is highly recommended when:
- A template uses more than one data feed (to clearly distinguish which data feed is being referenced in each expression).
- Merge the Data Feed and User Contexts is enabled (to clearly distinguish data feed fields from user profile fields that have the same name).
Alias names:
- Are case-sensitive.
- Can contain uppercase letters, lowercase letters, and underscores. (Numbers and special characters aren't accepted.)
- Should be unique within the project. Iterable doesn't enforce uniqueness, so make sure to choose a unique alias for your data feed that doesn't conflict with other data fields in your project.
IMPORTANT
Data feed aliases must be unique If two data feeds use the same alias, Iterable might not show a clear validation error, and one feed's data can silently overwrite or conflict with the other at render or update time. Use a unique alias for each data feed in your project.
To see your existing data feeds and their aliases, go to Content > Data Feeds. Each feed's alias displays in the Alias column (if an alias isn't set, the column is empty).
You can change a data feed's alias at any time. However, this action breaks any templates that depend on the original alias.
# Requirements to use a data feed alias
To use a data feed alias in a template:
- Add an alias to the data feed.
- Add the data feed to the template.
- Enable the Use Data Feed Alias template settings.
- Reference the data feed fields using the alias in template expressions.
To learn more about using data feed aliases in templates, see Referencing data feeds by alias.
# URL
The URL to a web service that returns a valid data feed.
The URL can include query strings with merge tags or other Handlebars expressions that are personalized to each user. This creates a dynamic data feed. Ask your development team if the URL accepts query string parameters and if so, what parameters are optional or required.
TIP
When you use merge tags in the URL, use the #urlEncode block helper
to encode the value for use in a URL. Some characters (such as the @ in an
email address) must be encoded for the URL to be valid, and the helper encodes
them for you as needed.
# Limits for URL length
Generally, web service URLs have a processing limit of 2048 characters including the path and query string. This limit varies by web service.
Iterable doesn't enforce a specific character limit for data feed URLs because any imposed URL limits are handled by your web service. Additionally, if the URL is dynamic with Handlebars expressions then the URL entered in Iterable could easily be a very different length (longer, or shorter) than the request URL sent to the web service at send time.
If you're seeing errors from your web service when using a data feed because of
URL length limits (such as HTTP response code 414 Request-URI Too Long), you
may need to adjust the URL length limit for your web service (if you can), and/or
adjust the URL coming from Iterable to be shorter.
# Format
The data feed's response format. Iterable supports JSON, XML, RSS, and Atom formats.
For more information and examples, see Data feed response bodies.
# Authorization token (optional)
A token Iterable uses to authenticate the request to the data feed's web service.
Iterable adds this token as the value of the Authorization header in the HTTP
request to the data feed.
NOTE
Authorization tokens are static values
Iterable treats the authorization token as a static value and does not support dynamic updates to the token, such as OAuth flows.
It's possible to use an OAuth bearer token as an Authorization header, as
described in this OAuth 2.0 guide: Making Authenticated Requests.
However, you'll need to manually update the data feed's authorization token
whenever the token expires.
# Entering an authorization token value
IMPORTANT
For security, the authorization token is only visible when you're entering it for the first time in Iterable. Afterwards, Iterable hides the token value from view in the data feed details. Make sure to store it securely elsewhere.
When you add an authorization token to Iterable, enter the value of the entire
authorization header, which sometimes includes the token type followed by a
space and then the token value, like this: <TYPE> <TOKEN-VALUE> (where
<TYPE> is the token type and <TOKEN-VALUE> is the token value).
For example, if you need to authorize with a bearer token, and the token value
is abc123, enter the Authorization header value like this: Bearer abc123.
# Custom headers (optional)
Iterable can include additional custom HTTP headers in the data feed's web service request.
You can add as many headers as necessary. Each header is a key-value pair.
Custom headers may include a merge tag or other Handlebars expression, which creates a dynamic data feed that's personalized to each user.
# Security considerations for custom headers
IMPORTANT
Custom headers are less secure than Authorization headers. Use them with caution.
Custom headers are visible as plain text to any Iterable user with the Manage Integrations project permission.
Keep this in mind if you need to include sensitive information in a custom header.
To have Iterable securely handle tokens, consider using the Authorization token field whenever possible. :::
# Data feed rate limit (beta feature)
BETA FEATURE
Rate limits for data feeds and campaigns are a beta feature. Talk to your customer success manager to enable campaign and data feed rate limits for your account.
A data feed's rate limit is the maximum number of times that Iterable can call this data feed per second, across all active campaigns that use it.
Setting a rate limit helps prevent your servers from being overwhelmed with traffic as you send high-volume campaigns by setting a maximum rate of requests for Iterable to respect.
Options for rate limiting a data feed include:
None - Unlimited rate. Iterable makes requests to the data feed as fast as the campaign send process allows, without any limit to data feed requests.
Custom Rate - A maximum rate that Iterable respects when making requests to the data feed. This can be set to 2 or more messages per second. (Iterable doesn't necessarily make requests at this rate, but it won't exceed the maximum rate limit.)
# Want to learn more?
For more information about some of the topics in this article, check out these resources. Iterable Academy is open to everyone — you don't need to be an Iterable customer!
Iterable Academy
Support docs