InTouch Hub · Blue Isle Software

Omnisend

Sync e-commerce contacts and trigger email/SMS automations via the Omnisend 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.

contactsemaillogmarketing-emailsmsstatussync

Omnisend

Sync e-commerce contacts and trigger email/SMS automations via the Omnisend API.

Omnisend is an email and SMS marketing platform for e-commerce. This tool reads and writes your Omnisend contact list and fires customer events that kick off Omnisend automation flows (welcome series, abandoned cart, post-purchase, etc.).

Operations

operation method / endpoint what it does
list-contacts GET /api/contacts List contacts, optionally filtered by email, phone, status, with limit (1-250).
get-contact GET /api/contacts/{id} Fetch a single contact by its Omnisend contactId.
create-contact POST /api/contacts Create or update a contact from an email and/or phone identifier.
send-event POST /api/events Send a customer event (eventName) that triggers an Omnisend automation.

API key setup

  1. Log in to Omnisend.
  2. Go to Store settings -> Integrations & API -> API keys.
  3. Create an API key and copy it.
  4. Pass it as the apiKey input. It is sent as Authorization: Omnisend-API-Key <apiKey>.

A single API key carries all the scopes the operations need (contacts.read, contacts.write, events.write) — no OAuth flow is required.

Inputs

input used by notes
apiKey all required
operation all required: one of the four above
contactId get-contact Omnisend contact id
email create-contact, send-event, list-contacts email identifier / filter
phone create-contact, send-event, list-contacts phone in international format, e.g. +15551234567
status create-contact, list-contacts subscribed (default), unsubscribed, or nonSubscribed
firstName create-contact optional
lastName create-contact optional
tags create-contact comma-separated, e.g. source: api,vip
limit list-contacts 1-250, default 100
eventName send-event the automation trigger name, e.g. placed order
properties send-event optional JSON object of event data

Examples

List the 50 most recent contacts

{
  "apiKey": "YOUR-OMNISEND-API-KEY",
  "operation": "list-contacts",
  "limit": "50"
}

Create / subscribe a contact

{
  "apiKey": "YOUR-OMNISEND-API-KEY",
  "operation": "create-contact",
  "email": "[email protected]",
  "firstName": "Jane",
  "status": "subscribed",
  "tags": "source: api"
}

Look up one contact

{
  "apiKey": "YOUR-OMNISEND-API-KEY",
  "operation": "get-contact",
  "contactId": "5f3c0e2b9a1c2d0011223344"
}

Trigger an automation by sending an event

{
  "apiKey": "YOUR-OMNISEND-API-KEY",
  "operation": "send-event",
  "eventName": "placed order",
  "email": "[email protected]",
  "properties": "{\"orderId\":\"1042\",\"total\":49.90}"
}

Output

The tool publishes:

On error it prints {"error": "..."} and the step fails.

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-contacts, get-contact, create-contact, send-event
contactId string no — get-contact: the Omnisend contact id to fetch.
email string no — create-contact: email address identifier. list-contacts: optional filter by email. send-event: contact email the event belongs to.
phone string no — create-contact: phone identifier in international format, e.g. +15551234567. list-contacts: optional filter by phone.
status string no — create-contact: subscription status for the channel (subscribed, unsubscribed, or nonSubscribed; default subscribed). list-contacts: optional status filter.
firstName string no — create-contact: optional contact first name.
lastName string no — create-contact: optional contact last name.
tags string no — create-contact: optional comma-separated tags, e.g. 'source: api,vip'.
limit string no — list-contacts: items per page, 1-250 (default 100).
eventName string no — send-event: the event name to trigger an automation, e.g. 'placed order'.
properties string no — send-event: optional JSON object of event properties, e.g. {"orderId":"123","total":49.9}.