Iterable
Cross-channel marketing platform for campaigns, triggered messages, users, lists, templates, and bulk user updates.
Helps lifecycle marketing teams that orchestrate campaigns across email and push, archive or cancel sends, and run bulk user-profile updates.
Use Iterable with Snow
Snow is a personal AI assistant that builds real apps for you, and they can put Iterable to work.
What Snow can do with Iterable
These are the Iterable operations Snow and the apps you build with it can run. Sign in to choose which ones Snow may run without asking.
Reads45
Look at your data without changing it.
- List Message Types
Lists all message types within a project. Use when you need to retrieve all available message types (e.g., Email, Push, SMS) and their associated metadata such as channel ID, subscription policy, and rate limits. Rate limit: 100 requests/second, per project.
- Export Campaign Data to JSON
Export campaign analytics data in JSON format with one entry per line. Use when you need to retrieve campaign metrics such as email sends, opens, clicks, purchases, or custom events. Rate limit: 4 requests per minute per project. Either 'range' OR 'startDateTime'/'endDateTime' must be provided.
- Export data to CSV
Export campaign analytics data in CSV format from Iterable. Use when you need to retrieve event data such as email sends, opens, clicks, push notifications, SMS messages, purchases, or custom events. Note: Either use the 'range' parameter (recommended for simple date filtering) OR use 'startDateTime' and 'endDateTime' together for custom date ranges. Using both will result in an error. Rate limit: 4 requests per minute per project.
- Export User Events
Export all events for a user identified by email or userId. Returns events as JSON, one event per line. Use this action when you need to retrieve the complete event history for a specific user in Iterable. Either email or userId must be provided, but not both. Custom events are excluded by default unless includeCustomEvents is set to true.
- Get campaign by ID
Retrieves a campaign by its unique ID. Use this action when you need to fetch detailed information about a specific campaign from Iterable. The response includes campaign metadata such as state, type, timing, and associated lists or templates.
- Get Campaign Metrics
Retrieve performance metrics for one or more campaigns. Use when you need to analyze delivery, open, click, and conversion rates for your email, push, or SMS campaigns. This action allows filtering by specific campaign IDs and/or a date range. Note: Rate limited to 10 requests per minute per project.
- Get Catalog Field Mappings
Tool to retrieve field mappings (field to data type) and undefined fields for a catalog in Iterable. Use when you need to inspect the schema structure and data type definitions of a catalog.
- Get catalog item by ID
Retrieves a specific catalog item by its ID from the specified catalog. Use this action when you need to fetch a single item from a catalog using its unique identifier.
- Get email template by ID
Get an email template by templateId. Use this action when you need to retrieve a specific email template from Iterable to view its content, settings, sender configuration, or metadata. The response includes the template's HTML and plain text content, sender information (from email, reply-to), subject line, and various rendering options like data feeds, link parameters, and analytics settings. Optionally, you can specify a locale parameter to retrieve localized content if available.
- Get Embedded Messages
Retrieves embedded messages for which the specified user is eligible, grouped by placementId. Use this action when you need to fetch in-app embedded messages for a user based on their email or userId. By default, it returns data for all placements that have messages for the user. To constrain the response to specific placements, provide one or more placementIds query parameters.
Creates12
Add something new to your account.
- Create a catalog
Create a catalog with the specified name in Iterable. Use this action when you need to create a new catalog to store and organize data such as products, users, or other entities. Each catalog in a project must have a unique name. Catalog names can be no longer than 255 characters and must contain only alphanumeric characters and dashes.
- Create a new campaign
Creates a new blast or triggered campaign from an existing template. Use this action when you need to create email, push notification, web push notification, SMS, in-app message, and embedded message campaigns from an existing template. Note that global suppression lists are not automatically added to campaigns created from this endpoint; to include a global suppression list, include it in the suppressionListIds request parameter.
- Create a new list
Create a new static list in Iterable. Use this action when you need to create a new contact list that can be used for email campaigns, segmentation, or organizing contacts. Each list must have a unique name within the project. The newly created list starts empty and can be populated by adding contacts via other Iterable API actions.
- Create snippet
Creates a new code snippet in Iterable. Use this action when you need to create a reusable code snippet that can be referenced in campaigns, templates, or other Iterable features. The snippet name must be unique within the project and cannot be changed after creation.
- Send in-app notification to target
Send an in-app notification to a specific user using Iterable. Use this action when you need to send an in-app notification directly to a recipient. The notification is sent based on a campaign/template ID, and the recipient is identified either by their email address or user ID. Request data fields override user profile data fields. A reference to the user profile is provided via the profile to help resolve field collisions. Learn about identifying users by userId and email.
- Send push to target
Send a push notification to a specific user using Iterable. Use this action when you need to send a transactional push notification directly to a recipient. The push is sent based on a campaign/template ID, and the recipient is identified either by their email address or user ID. Request data fields override user profile data fields. A reference to the user profile is provided via the profile to help resolve field collisions. Learn about identifying users by userId and email.
- Send SMS template proof
Send a proof of an SMS template to a specific user. Use this action when you need to preview an SMS template by sending a proof to a specific recipient before sending it to a larger audience. This allows you to verify that the template renders correctly with sample data and contains the expected content. Provide the template ID and either an email address or user ID to identify the recipient. You can optionally include data fields to merge into the template for more accurate preview rendering. Rate limit: 20 requests/second per API key.
- Send WhatsApp to target
Send a WhatsApp message to a specific user using Iterable. Use this action when you need to send a transactional WhatsApp message directly to a recipient. The WhatsApp message is sent based on a campaign/template ID, and the recipient is identified either by their email address or user ID. Request data fields override user profile data fields. This API is typically used for transactional messaging. Learn about identifying users by userId and email.
- Track Embedded Click
Tracks a click event on an embedded message. Use this action when you need to record user interactions with buttons or links in embedded messages. This creates an embeddedClick event in Iterable for analytics and campaign tracking purposes. For test messages (proofs), no events are created. Note: You must provide either an email or userId to identify the user profile, but not both.
- Track Embedded Received
Track that an embedded message was received on a device. Use this action when you need to record that a device has retrieved an embedded message from Iterable's API. Call this endpoint once per embedded message retrieved. Note that this only indicates the message was retrieved—it does not mean the message has been displayed to the user. Iterable's SDKs automatically call this endpoint, but if you're not using an SDK, call this manually. Provide either email or userId (but not both) to identify the user profile.
Updates33
Change something that is already there.
- Activate a triggered campaign
Activates a triggered campaign by its unique ID, allowing it to process events and send messages. Use this action when you need to start a triggered campaign that will send messages based on user events (e.g., cart abandonment, welcome series, re-engagement). The campaign must be in a valid state for activation (e.g., not already running or finished). Note: API triggered campaign activation must be enabled for your project.
- Bulk Update User Subscriptions
Bulk update subscription preferences for multiple users in Iterable. Use this action when you need to update email list subscriptions, message type subscriptions, or channel subscriptions for multiple users in a single API call. This is useful for bulk list management, compliance updates, or campaign-related subscription changes. IMPORTANT: This endpoint overwrites (does not merge) existing data for any non-null fields specified in the request. Provide email or userId for each user to identify them. This action modifies user communication preferences immediately. Learn about identifying users by userId and email.
- Bulk Update Users
Bulk update user data in Iterable. Use this action when you need to update multiple user profiles at once. This endpoint adds and overwrites user profile fields as needed. It does not modify top-level fields omitted from the request body. If you'd like to merge (rather than overwrite) a user profile's top-level objects with the values provided, set mergeNestedObjects to true. When updating an existing field, you cannot change its data type (the new value must have the same data type as the old value). At least one of email or userId must be provided for each user in the users array.
- Create Catalog Items
Asynchronously creates or updates up to 1000 catalog items with a single request. Use this action when you need to bulk create or update catalog items efficiently. If an item with the same ID already exists, it will be completely overwritten, unless replaceUploadedFieldsOnly is set to true to merge fields instead. This operation is asynchronous — the API returns 202 Accepted when the request is queued for processing. The rate limit is 100 requests per second. Note: Each item ID must contain only alphanumeric characters and dashes (max 255 characters), and field names should not contain periods.
- Replace Catalog Item
Asynchronously creates or replaces the specified catalog item in the given catalog. Use this action when you need to completely replace a catalog item with new data. If the item already exists, it will be fully replaced by the value provided in the request body. Previously existing fields not included in the new value will be lost. This operation is asynchronous — the API returns 202 Accepted when the request is queued for processing. Use GET /api/catalogs/{catalogName}/items/{itemId} to verify completion. Note: A catalog item's ID must be unique, contain only alphanumeric characters and dashes, and have a maximum length of 255 characters. Do not use periods in field names. The rate limit is 1000 requests per second.
- Replace Metadata Item
Asynchronously creates or replaces the metadata item associated with the specified key. Use when you need to create a new metadata item or completely replace an existing one. A 200 response indicates a valid request that will be processed; updates may not be made immediately. Use GET /api/metadata/{table}/{key} to verify the update completion. Note: This is an idempotent operation - calling it multiple times with the same parameters will result in the same state.
- Schedule Campaign
Schedule an existing campaign to be sent at a specified time. Use when you have created a campaign and need to schedule it for future sending. The campaign must exist and not already be scheduled or in the process of sending. You can optionally specify time zone settings to send at the same local time across different recipient time zones. Note: The send time must be up to 7 days in the future. Scheduling can be modified or canceled before the send time using the 'Cancel campaign' endpoint.
- Send in-app template proof
Send a proof of an in-app template to a specific user using Iterable. Use this action when you need to preview how an in-app template will look for a specific user before sending the actual campaign. The proof email contains the rendered template with merge fields populated using the provided data fields and user profile information. Provide either recipientEmail or recipientUserId (but not both) to identify the target user. This action is rate-limited to 20 requests per second per API key.
- Send push template proof
Send a proof of a push template to a specific user. Use this action when you need to preview a push template by sending a proof to a specific recipient before sending it to a larger audience. This allows you to verify that the template renders correctly with sample data and contains the expected content. Provide the template ID and either an email address or user ID to identify the recipient. You can optionally include data fields to merge into the template for more accurate preview rendering. # ci-skip: action-tags (POST /api/templates/push/proof sends a proof push as a side effect, not a durable resource creation) Rate limit: 20 requests/second per API key.
- Subscribe to List
Subscribe one or more users to a specific list in Iterable. Use this action when you need to add subscribers to a list by their email address, userId, or both. The action can create new user profiles if they don't exist (unless updateExistingUsersOnly is set to true). This is an idempotent operation - re-subscribing a user who is already on the list has no additional effect. Learn about identifying users by userId and email.
Deletes25
Remove something. This often cannot be undone.
- Abort Campaign
Abort a running campaign to stop all in-progress message deliveries. Use this action when you need to immediately halt an active campaign that is currently sending messages to recipients. This action is useful for emergency stops, such as when an issue is discovered in the campaign content or targeting. Note: Only campaigns in 'Running' state can be aborted. Campaigns that have already finished or were not started cannot be aborted.
- Archive Campaigns
Archives one or more campaigns. This endpoint behaves the same as the archive feature in the UI. Scheduled or recurring campaigns will be cancelled, and running campaigns will be aborted. Archived campaigns will be hidden from the Campaigns page, but can still be viewed in the Archived tab. Use this action when you need to remove campaigns from the active campaigns list while preserving them for historical reference. This action is irreversible — once archived, campaigns cannot be restored through this API (must be done manually through the UI). Rate limit: 5 requests/second, per API key.
- Bulk delete templates
Bulk delete one or more base templates from Iterable. Use this action when you need to permanently remove multiple templates that are no longer needed. This action is irreversible — templates cannot be recovered once deleted. Note: Templates associated with a campaign will not be deleted and will be skipped.
- Cancel Campaign
Cancel a scheduled or recurring campaign in Iterable. Use when you need to stop a campaign that is scheduled for future sending or is part of a recurring campaign cycle. Once canceled, the campaign will not be sent to any recipients. Note: This action is irreversible for campaigns that are already in the process of sending. Only campaigns with a 'Scheduled' or 'Recurring' state can be canceled.
- Cancel Email
Cancel a scheduled email to a specific user in Iterable. Use when you need to stop an email that has been queued for a specific user but has not yet been sent. You can cancel by providing the scheduledMessageId alone, or by providing a campaignId along with the user's email or userId. Note: This action is irreversible — once an email is canceled, it cannot be sent again using this endpoint. The canceled message will not be delivered to the recipient.
- Cancel Export
Cancel a queued or running export created with the 'Start export' endpoint. Use when you need to abort an export job that is in progress or queued. Rate limit: 1 request/second, per project.
- Cancel In-App Message
Cancel a scheduled in-app message to a specific user in Iterable. Use when you need to stop a scheduled in-app message that is queued for delivery to a specific user. This action cancels the in-app message for the specified user based on their email or userId. Note: This action is irreversible — once an in-app message is canceled, it will not be delivered to the user.
- Cancel Push
Cancel a scheduled push notification to a specific user in Iterable. Use when you need to stop a push notification that has been queued for a specific user but has not yet been sent. You can cancel by providing the scheduledMessageId alone, or by providing a campaignId along with the user's email or userId. Note: This action is irreversible — once a push notification is canceled, it cannot be resent using this endpoint. The canceled message will not be delivered to the recipient.
- Cancel Web Push
Cancel a scheduled web push notification to a specific user in Iterable. Use when you need to stop a web push notification that has been queued for a specific user but has not yet been sent. You can cancel by providing the scheduledMessageId alone, or by providing a campaignId along with the user's email or userId. Note: This action is irreversible — once a web push notification is canceled, it cannot be resent using this endpoint. The canceled message will not be delivered to the recipient.
- Cancel WhatsApp
Cancel a scheduled WhatsApp message to a specific user in Iterable. Use when you need to stop a WhatsApp message that has been queued for a specific user but has not yet been sent. You can cancel by providing the scheduledMessageId alone, or by providing a campaignId along with the user's email or userId. Note: This action is irreversible — once a WhatsApp message is canceled, it cannot be resent using this endpoint. The canceled message will not be delivered to the recipient.
Other1
The provider does not say what these change, so Snow treats them as changes.
- Send email template proof
Send a proof of an email template to a specific user. Use this action when you need to preview an email template by sending a proof to a specific recipient before sending it to a larger audience. This allows you to verify that the template renders correctly with sample data and contains the expected content. Provide the template ID and either an email address or user ID to identify the recipient. You can optionally include data fields to merge into the template for more accurate preview rendering. Rate limit: 20 requests/second per API key.
Related integrations
Ready to put Iterable to work?
Sign up free, build an app by chatting, and connect Iterable in minutes. No credit card required.