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}.