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.