- Home
- Resources
- Integrations
- Iterable
Iterable n8n integrationAutomate Iterable with n8n.
Iterable holds your users and their lists, n8n holds everything that happens around them. The Iterable n8n integration wires the two together: 6 operations on 3 resources, covering events, user profiles and list membership. No trigger node ships for Iterable, so a schedule or a webhook starts the run.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Iterable n8n integration cover?
The Iterable node ships inside n8n and talks to the Iterable API with an API key. It exposes 6 operations spread over 3 resources: Event, User and User List. In practice that means recording what a person did, creating or refreshing a profile, reading one back, and moving people in or out of a list. Anything the catalogue below does not list goes through the HTTP Request node, reusing the same credential.
Scenario one, onboarding. A new account lands in your product and the row reaches n8n from Google Sheets or a form. user.upsert writes the profile, then userList.add drops the person onto the welcome list. One run, two nodes, no manual import.
Scenario two, behaviour. A purchase, a demo booked, a plan upgraded: event.track records the action under a name you choose, and the optional Data Fields carry the detail you will want later. Post the same payload to Slack in the same run and the sales side sees it too.
Scenario three, cleanup. Someone asks to be taken off. user.get confirms the profile exists, userList.remove takes them off the list, and user.delete closes the request. Teams that keep a second sender such as SendGrid usually branch the same workflow to both.
Six operations will not reach a custom Iterable object or an endpoint the node was never built for. That is where the HTTP Request node takes over: it reaches any endpoint of the Iterable API and reuses the same credential through predefined authentication, so a second key never appears in the workflow. Building it costs an extra node, not a new account.
Triggers work differently here. Iterable has no trigger node in n8n, so the first node in the workflow is never Iterable's. A Schedule Trigger checks in at a fixed interval, a Webhook waits for another service to call an n8n URL, or an entirely different tool's trigger kicks things off, a form, a payment, a signup. Whichever start you pick, the Iterable node only reads or writes once the workflow is already running, and the n8n review compares the hosting and pricing logic before you settle on one.
How do you connect Iterable to n8n?
- 01
Create the API key in Iterable
Iterable authenticates the node with an API key, and that is the only method supported here. Generate it from your Iterable account, following Iterable's own article on creating API keys (support article 360043464871). Copy the value as soon as it appears, because the key is what n8n sends on every call. Nothing else has to be prepared on the Iterable side.
- 02
Save the credential in n8n
In n8n, open the Credentials menu and add an Iterable credential. It asks for a single field, API Key, and the value goes straight in. A credential is created once and reused everywhere: the Iterable node then offers it in a dropdown instead of asking again, in this workflow and in the next ten. Name it after the account so a second project stays readable.
- 03
Prove it with one read
Drop the Iterable node into a workflow, pick the User resource and the Get operation, set By to Email and paste an address you know exists. Execute that node on its own. A profile comes back and the credential is proven before any write happens. Iterable publishes two API references, one for US-based projects and one for Europe-based projects, so read the one matching your account.
What can the Iterable node do?
The Iterable node exposes 6 operations across 3 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Get | Delete | Add | Remove | Track | Create or Update |
|---|---|---|---|---|---|---|
| Event | ✓ | |||||
| User | ✓ | ✓ | ✓ | |||
| User List | ✓ | ✓ |
Operations index
Event
1 operationTrack an event
event.trackWhat you see in n8n
Notes & use cases
Records an action a user performed, stored in Iterable under the name you give it.
Key parameters
- Name: the event name, required, and the label you will look for later in Iterable.
- Email or User ID: one of the two has to be passed to identify the person, and Email takes precedence when both are sent.
- Created At: the time the event happened, useful when the workflow runs after the fact.
- ID: an optional event ID. If an event already exists with that ID it gets updated, otherwise one is generated and returned.
User
3 operationsCreate or update a user
user.upsertWhat you see in n8n
Notes & use cases
Writes a profile in Iterable, and updates it when it already exists. The same node handles first contact and every refresh after it.
Key parameters
- Identifier: Email or User ID, the key Iterable matches on.
- Value: the address or the id itself, often
{{ $json.field }}taken from the node before. - Create If Doesn't Exist: whether a new user is created when the identifier is not found.
- Merge Nested Objects: merges top level objects instead of overwriting them, false by default.
Delete a user
user.deleteWhat you see in n8n
Notes & use cases
Removes the profile from Iterable. The call is final, so it belongs at the end of a branch rather than in the middle of one.
Key parameters
- By: Email or User ID, the identifier the deletion runs on.
- User ID: the unique identifier for one particular user.
- Email: the email for one particular user.
Get a user
user.getWhat you see in n8n
Notes & use cases
Reads one profile back from Iterable and hands it to the rest of the workflow. That is how you check a person exists before doing anything to them.
Key parameters
- By: pick whether the lookup runs on Email or on User ID.
- User ID: the unique identifier for a particular user.
- Email: the address for a particular user.
{{ $json.field }}.User List
2 operationsAdd a user to a list
userList.addWhat you see in n8n
Notes & use cases
Puts a person on one Iterable list, the step that turns a fresh profile into an actual audience member.
Key parameters
- List Name or ID: choose the list from the dropdown, or pass an ID with an expression, the small
{{ }}formula n8n evaluates at runtime, when the list is decided during the run. - Identifier: Email or User ID, the way Iterable finds the person.
- Value: the matching address or id for that identifier.
Remove a user from a list
userList.removeWhat you see in n8n
Notes & use cases
Takes a person off a given Iterable list, and can optionally go further than that single list.
Key parameters
- List Name or ID: the list to remove from, picked in the dropdown or set by expression.
- Identifier and Value: Email or User ID, then the value that matches it.
- Channel Unsubscribe: unsubscribes the email from the channel associated with the list, which amounts to a global unsubscribe.
- Campaign ID: attributes the unsubscribe to a campaign.
Need help automating Iterable with n8n?
A person reads every message.


