InTouch Hub · Blue Isle Software

EmailOctopus

Add subscribers and manage email campaigns via the EmailOctopus API.

EmailOctopus

Add contacts (subscribers) to mailing lists and read lists and campaigns through the EmailOctopus API.

What it does

Wraps the core EmailOctopus list, contact, and campaign endpoints. Run it from any InTouch job, schedule, trigger, or the AI assistant. No external dependencies — standard-library Python only.

Operations

operation HTTP path required inputs optional inputs
list-lists GET /lists limit
get-list GET /lists/{listId} listId
create-contact POST /lists/{listId}/contacts listId, email fields, tags, status
list-campaigns GET /campaigns limit

Inputs

Input Required Description
apiKey Yes EmailOctopus API key
operation Yes One of the operations above
listId Conditional List UUID — required for get-list and create-contact
email Conditional Contact email address — required for create-contact
fields No JSON object of field values keyed by field tag, e.g. {"FirstName":"Jane","LastName":"Doe"}
tags No JSON array of tag strings, e.g. ["vip","newsletter"]
status No SUBSCRIBED, UNSUBSCRIBED, or PENDING (defaults to list setting)
limit No Records per page for list operations, 1–100 (default 100)

Outputs

Output Description
result EmailOctopus API response as a JSON string
status HTTP status code string (200, 201, 400, 404, etc.)

Non-2xx responses are returned as data (status + error body in result), not step failures. Only a network-level error (DNS, timeout, refused) fails the step.

API key setup

  1. Sign in to EmailOctopus.
  2. Go to Account Settings → Integrations & API.
  3. Create or copy an API key.
  4. Pass it as apiKey.

Examples

List all mailing lists:

{ "apiKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "operation": "list-lists" }

Get a single list:

{
  "apiKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "operation": "get-list",
  "listId": "00000000-0000-0000-0000-000000000000"
}

Add a contact to a list:

{
  "apiKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "operation": "create-contact",
  "listId": "00000000-0000-0000-0000-000000000000",
  "email": "[email protected]",
  "fields": "{\"FirstName\":\"Jane\",\"LastName\":\"Doe\"}",
  "tags": "[\"vip\",\"newsletter\"]",
  "status": "SUBSCRIBED"
}

List campaigns:

{
  "apiKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "operation": "list-campaigns",
  "limit": "25"
}