InTouch Hub · Blue Isle Software

SendPulse

Send email campaigns, SMS, and web-push notifications and manage mailing lists via the SendPulse 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.

campaignsemaillogmarketingmarketing-emailschedulesmsstatus

SendPulse

Send email campaigns, SMS, and manage mailing lists from InTouch via the SendPulse REST API.

What it does

One tool, four operations covering the most common SendPulse workflows:

operation Method & endpoint Purpose
list-books GET /addressbooks List all mailing lists with their IDs and contact counts
add-emails POST /addressbooks/{bookId}/emails Add one or more subscribers to a mailing list
send-campaign POST /campaigns Create and send (or schedule) an email campaign to a list
send-sms POST /sms/send Send an SMS to one or more phone numbers

Every call returns:

{ "result": "<SendPulse response body>", "status": "200" }

result is the raw SendPulse response (a JSON string). Only transport failures (DNS error, timeout) mark the step FAILED; 4xx/5xx errors surface in status and result so you can branch on them downstream.

apiKey setup

SendPulse supports two credential forms; both work via the apiKey input:

Option 1 — Static API key (simpler, recommended): 1. Log in to SendPulse and go to Settings -> API. 2. Under API keys, click Add API key, copy the key. 3. Pass the key directly as apiKey.

Option 2 — OAuth2 client credentials: 1. Under Settings -> API, find your Client ID and Client Secret. 2. Pass them joined with a colon: apiKey = "your_client_id:your_client_secret". 3. The tool detects the colon, calls POST /oauth/access_token (grant_type=client_credentials), and uses the resulting access_token (valid for 1 hour) for the API call.

Operations

list-books

Returns the full list of mailing lists (address books) in the account. No extra inputs required.

{ "apiKey": "YOUR_KEY", "operation": "list-books" }

Sample result fragment:

[{"id": 987654, "name": "Newsletter 2026", "all_email_qty": 1200}, ...]

add-emails

Adds subscribers to a mailing list. bookId is the numeric ID from list-books.

Plain comma-separated addresses:

{
  "apiKey": "YOUR_KEY",
  "operation": "add-emails",
  "bookId": "987654",
  "emails": "[email protected], [email protected]"
}

With merge variables (JSON array):

{
  "apiKey": "YOUR_KEY",
  "operation": "add-emails",
  "bookId": "987654",
  "emails": "[{\"email\":\"[email protected]\",\"variables\":{\"Name\":\"Alice\",\"Phone\":\"+1555\"}}]"
}

send-campaign

Creates and immediately dispatches an email campaign to a mailing list. The senderEmail must be a verified sender in your SendPulse account. The HTML body is automatically Base64-encoded before sending.

{
  "apiKey": "YOUR_KEY",
  "operation": "send-campaign",
  "bookId": "987654",
  "senderName": "Acme Corp",
  "senderEmail": "[email protected]",
  "subject": "June product update",
  "bodyHtml": "<h1>Hello!</h1><p>Here is what is new this month.</p>"
}

Sample result: {"id": 112233, "status": 1, "all_email_qty": 1200, ...}


send-sms

Sends an SMS to one or more international phone numbers. smsSender must be 11 alphanumeric characters or fewer (country-dependent).

{
  "apiKey": "YOUR_KEY",
  "operation": "send-sms",
  "smsSender": "AcmeCorp",
  "smsPhones": "+15551234567, +447911123456",
  "smsBody": "Your order has shipped! Track at acme.com/track"
}

SMS delivery requires an active SendPulse SMS balance and a registered sender name in the countries you are targeting.

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: list-books, add-emails, send-campaign, send-sms
bookId string no — add-emails / send-campaign: numeric ID of the mailing list (address book) to target. Use list-books to find it.
emails string no — add-emails: comma-separated email addresses, or a JSON array of {email, variables} objects.
senderName string no — send-campaign: sender display name (defaults to senderEmail if blank).
senderEmail string no — send-campaign: verified SendPulse sender email address.
subject string no — send-campaign: email subject line.
bodyHtml string no — send-campaign: HTML body of the email (base64-encoded before sending).
smsSender string no — send-sms: alphanumeric sender ID, max 11 chars (e.g. MyBrand).
smsPhones string no — send-sms: comma-separated phone numbers in international format (e.g. +15551234567).
smsBody string no — send-sms: SMS message text.