Moosend
Manage mailing lists and trigger email automation campaigns via the Moosend Web API v3.
A single InTouch tool that branches on an operation input. Standard-library
Python only (no external packages) — it talks to https://api.moosend.com/v3
directly.
What it does
| Operation | Method & endpoint | Description |
|---|---|---|
list-lists |
GET /v3/lists.json |
List all active mailing lists in the account |
get-list |
GET /v3/lists/{listId}/details.json |
Get details for a single mailing list |
subscribe |
POST /v3/subscribers/{listId}/subscribe.json |
Add or update a contact on a list |
trigger-campaign |
POST /v3/campaigns/{campaignId}/send.json |
Trigger sending of a campaign |
Every call returns:
- result — the raw Moosend response body (a JSON string)
- status — the HTTP status code as a string
The tool never raises on a 4xx/5xx from Moosend; it returns the status and the error body so a calling job can inspect it. Only a transport failure (DNS, connection refused, timeout) marks the step FAILED.
API key setup
Moosend authenticates with an API key passed as the apikey query-string
parameter on every request — there is no header or Bearer token.
- Log in to your Moosend account.
- Go to Settings → API Key.
- Copy the existing key or generate a new one.
- Pass it as the
apiKeyinput to this tool.
The tool URL-encodes the key and appends it as ?apikey=... automatically.
Examples
List all mailing lists:
{
"apiKey": "YOUR_MOOSEND_API_KEY",
"operation": "list-lists"
}
Get one list's details:
{
"apiKey": "YOUR_MOOSEND_API_KEY",
"operation": "get-list",
"listId": "8b3c5d2e-1a2b-3c4d-5e6f-7a8b9c0d1e2f"
}
Add / update a contact (with optional custom fields):
{
"apiKey": "YOUR_MOOSEND_API_KEY",
"operation": "subscribe",
"listId": "8b3c5d2e-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
"email": "[email protected]",
"name": "Jane Doe",
"hasExternalDoubleOptIn": "true",
"customFields": "{\"Country\":\"US\"}"
}
Trigger a campaign send:
{
"apiKey": "YOUR_MOOSEND_API_KEY",
"operation": "trigger-campaign",
"campaignId": "1c2d3e4f-5a6b-7c8d-9e0f-1a2b3c4d5e6f"
}
Notes
- Moosend list and campaign IDs are GUIDs — copy them from the Moosend UI or
from a prior
list-listscall. customFieldsmust be a JSON object string; the tool parses it and sends it as theCustomFieldspayload field.- Response bodies are capped at 5 MB.
Publishes
The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.
errorresultstatus
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-lists, get-list, subscribe, trigger-campaign |
listId |
string | no | — | get-list / subscribe: the Moosend mailing list ID (GUID). |
email |
string | no | — | subscribe: email address of the contact to add or update. |
name |
string | no | — | subscribe: optional display name of the contact. |
hasExternalDoubleOptIn |
string | no | — | subscribe: set to 'true' if double opt-in was handled externally (skips Moosend's confirmation email). |
customFields |
string | no | — | subscribe: optional JSON object of custom field name/value pairs, e.g. {"Country":"US"}. |
campaignId |
string | no | — | trigger-campaign: the Moosend campaign ID (GUID) to send. |