InTouch Hub · Blue Isle Software

Iterable

Update user profiles and trigger cross-channel email/push/SMS campaign sends via the Iterable API.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

emailmarketing-emailpushsmsstatus

Iterable

Update user profiles and trigger cross-channel email/push/SMS campaign sends via the Iterable API.

Grounded in the Iterable API docs: https://api.iterable.com/api/docs

What it does

A thin, standard-library-only wrapper over five Iterable endpoints: read a user profile, upsert a user profile, and trigger a campaign send on any of the three channels (email, SMS, push) to a single recipient.

Operations

operation HTTP Purpose
get-user GET /api/users/getByEmail?email= Look up a user profile by email.
update-user POST /api/users/update Upsert a profile keyed by email (or userId); dataFields is merged onto the profile.
send-email POST /api/email/target Trigger an email campaign to one recipient.
send-sms POST /api/sms/target Trigger an SMS campaign to one recipient.
send-push POST /api/push/target Trigger a push campaign to one recipient.

The three send-* operations are Iterable's "target" sends — they fire a campaign (campaignId, an integer) at a single recipient identified by email or userId, with optional dataFields merged into the template. This is the standard path for transactional / triggered campaigns.

Inputs

input required used by notes
apiKey yes all Iterable server-side API key (Api-Key header).
operation yes all One of the five operations above.
email all Recipient/profile email. Required for get-user; for the others use this or userId.
userId update-user, send-* Alternative identifier to email.
dataFields update-user, send-* JSON object string. Profile fields for update-user; template merge data for send-*.
campaignId send-* Integer Iterable campaign id (required for the send operations).

Outputs

API key setup

  1. Sign in to https://app.iterable.com.
  2. Go to Settings -> API Keys.
  3. Create a Server-side key and copy it.
  4. Pass that value as the apiKey input. It is sent verbatim in the Api-Key header on every request — no token exchange required.

Examples

Look up a user:

{
  "apiKey": "YOUR_SERVER_SIDE_KEY",
  "operation": "get-user",
  "email": "[email protected]"
}

Upsert profile fields:

{
  "apiKey": "YOUR_SERVER_SIDE_KEY",
  "operation": "update-user",
  "email": "[email protected]",
  "dataFields": "{\"firstName\":\"Jane\",\"plan\":\"pro\",\"signupSource\":\"hub\"}"
}

Trigger an email campaign to one recipient with template merge data:

{
  "apiKey": "YOUR_SERVER_SIDE_KEY",
  "operation": "send-email",
  "campaignId": "1234567",
  "email": "[email protected]",
  "dataFields": "{\"orderId\":\"A-9981\",\"total\":\"$42.00\"}"
}

Trigger an SMS or push campaign (same shape, different operation):

{
  "apiKey": "YOUR_SERVER_SIDE_KEY",
  "operation": "send-sms",
  "campaignId": "2233445",
  "userId": "user_8842"
}

Notes

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes DEPRECATED — bind an API Key credential to the task with credentialName instead. A key pasted here is stored in the workflow definition in clear and appears in every export of it. Still honoured for workflows built before the change.
operation string yes One of: get-user, update-user, send-email, send-sms, send-push
email string no Recipient/profile email address. Identifies the user for get-user, update-user, and the send-* operations (use this or userId).
userId string no Recipient/profile userId. Alternative identifier to email for update-user and the send-* operations.
dataFields string no JSON object string. update-user: profile fields merged onto the user, e.g. {"firstName":"John","plan":"pro"}. send-*: optional template merge data for the campaign.
campaignId string no send-email/send-sms/send-push: the integer Iterable campaign id to trigger for this recipient.