The Omnisend connector lets your AI agent act in each user's Omnisend account. Each user connects their own Omnisend API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 73 tools.
- Tools
- 73
- What they doRead · write · destructive
- 27 · 37 · 927 read37 write9 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Omnisend connection
In AgentKit > Connections, create an Omnisend connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'omnisend'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Omnisend:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'omnisend_automations_list',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "omnisend"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Omnisend:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="omnisend_automations_list",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Omnisend credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolomnisend_automation_getGet one Omnisend automation workflow by ID.Read-onlyGet Automation
Get one Omnisend automation workflow by ID. Returns the workflow's id, name, isEnabled, trigger, blocks tree (actions, delays, splits, A/B tests, each with its id), exit conditions, settings, timestamps and app url. Use omnisend_automation_get to read a workflow or find a block ID for omnisend_automation_test_email_send. Use omnisend_automations_list to find workflows.
Inputs
automation_idstringrequired- Omnisend automation workflow ID (24-character hexadecimal). Get it from List Automations.
omnisend_automations_listList Omnisend automation workflows, newest first, filtered by enabled state, name or created/updated dates.Read-onlyList Automations
List Omnisend automation workflows, newest first, filtered by enabled state, name or created/updated dates. Returns workflows with id, name, isEnabled, trigger, blocks, exit conditions, settings, timestamps and app url, plus paging.cursors.after for the next page. With view=summary the blocks tree is left out. Use omnisend_automations_list to find workflows. Use omnisend_automation_get for one workflow's full blocks tree.
Inputs
afterstring- Cursor for the next page. Pass the paging.cursors.after value from the previous response. Do not send together with before.
beforestring- Cursor for the previous page. Pass the paging.cursors.before value from the previous response. Do not send together with after.
created_at_fromstring- Return workflows created after this time (ISO 8601).
created_at_tostring- Return workflows created before this time (ISO 8601).
directionstring- Sort direction: asc or desc. Defaults to desc.one of
ascdesc includearray- With view=summary, set to ["blocks"] to keep the blocks tree anyway. Has no effect without view=summary.
is_enabledboolean- true returns only enabled workflows, false only disabled ones. Leave empty for both.
limitinteger- Number of workflows per page, 1 to 250. Defaults to 100.
name_containsstring- Return workflows whose name contains this text (partial match, max 200 characters).
sortstring- Field to sort by: createdAt, updatedAt. Defaults to createdAt. Keep it unchanged while paging with a cursor.one of
createdAtupdatedAt updated_at_fromstring- Return workflows updated after this time (ISO 8601).
updated_at_tostring- Return workflows updated before this time (ISO 8601).
viewstring- Set to summary to leave out the blocks tree from every workflow. Leave empty for the full representation.one of
summary
omnisend_batch_getGet the status and progress of one Omnisend batch job.Read-onlyGet Batch
Get the status and progress of one Omnisend batch job. Returns batchID, endpoint, method, status (pending, inProgress, finished or stopped), totalCount, finishedCount, errorsCount, errors and start/end times. Use omnisend_batch_get to check whether a batch from omnisend_batch_create is done. Use omnisend_batch_items_get for each item's response.
Inputs
batch_idstringrequired- Batch ID returned by Create Batch (batchID) or listed by List Batches.
omnisend_batch_items_getGet the per-item results of an Omnisend batch job.Read-onlyGet Batch Items
Get the per-item results of an Omnisend batch job. Returns the batch with its responses and errors arrays; each entry has itemID, the request sent, the response, responseCode and status. Use omnisend_batch_items_get to find which items in a batch failed and why. Use omnisend_batch_get for overall progress.
Inputs
batch_idstringrequired- Batch ID returned by Create Batch (batchID) or listed by List Batches.
omnisend_batches_listList Omnisend batch jobs for one endpoint (products, contacts or events), optionally filtered by status and creation date.Read-onlyList Batches
List Omnisend batch jobs for one endpoint (products, contacts or events), optionally filtered by status and creation date. Returns batches with batchID, endpoint, method, status, totalCount, finishedCount, errorsCount and start/end times, plus paging with offset, limit and next. Use omnisend_batches_list to review recent bulk imports. Use omnisend_batch_get for one batch's progress.
Inputs
endpointstringrequired- Endpoint whose batches to list: products, contacts or events.one of
productscontactsevents date_fromstring- Return batches created on or after this date (YYYY-MM-DD).
date_tostring- Return batches created on or before this date (YYYY-MM-DD).
limitinteger- Number of batches to return, 1 to 250. Defaults to 100.
offsetinteger- Number of batches to skip, for paging. Defaults to 0.
statusstring- Return only batches in this status: pending, inProgress, finished or stopped.one of
pendinginProgressfinishedstopped
omnisend_brand_getGet the Omnisend brand (store account) that the API key belongs to.Read-onlyGet Brand
Get the Omnisend brand (store account) that the API key belongs to. Returns brandID, name, website, platform, currency, timezone, version and whether it is connected. Use omnisend_brand_get to confirm which store you are connected to, or to read its timezone and currency before running analytics reports.
Inputs
This tool takes no inputs.
omnisend_campaign_getGet one Omnisend campaign by its ID.Read-onlyGet Campaign
Get one Omnisend campaign by its ID. Returns the campaign's id, name, type, channel, status, audience, sending settings, email or SMS content (subject, sender, templateID), A/B test and booster settings, timestamps and app url. Use omnisend_campaign_get when you have the campaign ID. Use omnisend_campaigns_list to find campaigns by name or status.
Inputs
campaign_idstringrequired- Omnisend campaign ID (24-character hexadecimal). Get it from List Campaigns.
omnisend_campaigns_listList Omnisend email, SMS and push campaigns, newest first, filtered by name, status, channel, type, booster parent or created/updated dates.Read-onlyList Campaigns
List Omnisend email, SMS and push campaigns, newest first, filtered by name, status, channel, type, booster parent or created/updated dates. Returns campaigns with id, name, type, channel, status, audience, sending settings, content and timestamps, plus paging.cursors.after for the next page. With view=summary the heavy content and abTest sections are left out. Use omnisend_campaigns_list to find or browse campaigns. Use omnisend_campaign_get for one campaign's full details.
Inputs
afterstring- Cursor for the next page. Pass the paging.cursors.after value from the previous response. Do not send together with before.
beforestring- Cursor for the previous page. Pass the paging.cursors.before value from the previous response. Do not send together with after.
channelarray- Return campaigns on any of these channels: email, sms, push.
created_at_fromstring- Return campaigns created after this time (ISO 8601).
created_at_tostring- Return campaigns created before this time (ISO 8601).
directionstring- Sort direction: asc or desc. Defaults to desc.one of
ascdesc includearray- With view=summary, heavy sections to keep anyway: content and/or abTest. Has no effect without view=summary.
limitinteger- Number of campaigns per page, 1 to 250. Defaults to 100.
name_containsstring- Return campaigns whose name contains this text (partial match, max 200 characters).
parent_campaign_idstring- Return only the boosters of this parent campaign ID. Implies type=booster.
sortstring- Field to sort by: createdAt, updatedAt, name. Defaults to createdAt. Keep it unchanged while paging with a cursor.one of
createdAtupdatedAtname statusarray- Return campaigns in any of these statuses: error, onHold, sent, paused, started, stopped, expired, draft, scheduled, canceled.
typestring- Return only this campaign type: regular, booster or abTest (A/B test parents).one of
regularboosterabTest updated_at_fromstring- Return campaigns updated after this time (ISO 8601).
updated_at_tostring- Return campaigns updated before this time (ISO 8601).
viewstring- Set to summary to leave out the heavy content and abTest sections from every campaign. Leave empty for the full representation.one of
summary
omnisend_contact_getGet one Omnisend contact by its contact ID.Read-onlyGet Contact
Get one Omnisend contact by its contact ID. Returns the contact's id, email, phone, name, address, birthdate, gender, tags, identifiers with email and SMS channel statuses, consents, opt-ins, segments and custom properties. Use omnisend_contact_get when you have the ID. Use omnisend_contacts_list with the email filter to look a contact up by email.
Inputs
contact_idstringrequired- Omnisend contact ID (24-character hexadecimal). Get it from List Contacts or from the id returned when a contact is created.
omnisend_contacts_listList Omnisend contacts, newest first, optionally filtered by email, phone, subscription status, segment, tag or last update time.Read-onlyList Contacts
List Omnisend contacts, newest first, optionally filtered by email, phone, subscription status, segment, tag or last update time. Returns contacts with id, email, phone, name, location, tags, identifiers with channel statuses and custom properties, plus paging.cursors.after for the next page. Use omnisend_contacts_list to find or browse contacts. Use omnisend_contact_get when you already have the contact ID.
Inputs
afterstring- Cursor for the next page. Pass the paging.cursors.after value from the previous response. Do not send together with before.
beforestring- Cursor for the previous page. Pass the paging.cursors.before value from the previous response. Do not send together with after.
directionstring- Sort direction: asc or desc. Defaults to desc.one of
ascdesc emailstring- Return only the contact with this email address.
limitinteger- Number of contacts per page, 1 to 250. Defaults to 100.
phonestring- Return only the contact with this phone number (E.164 format).
segment_idstring- Return only contacts in this segment. Get segment IDs from List Segments. Cannot be combined with updated_at_from.
sortstring- Field to sort by: createdAt, updatedAt. Defaults to createdAt. Keep it unchanged while paging with a cursor.one of
createdAtupdatedAt statusstring- Filter by subscription status: subscribed, unsubscribed or nonSubscribed. Cannot be combined with tag or updated_at_from.one of
subscribedunsubscribednonSubscribed tagstring- Return only contacts with this tag. Cannot be combined with status or updated_at_from.
updated_at_fromstring- Return contacts updated at or after this RFC 3339 timestamp. Cannot be combined with email, phone, status, segment_id or tag.
omnisend_email_content_getGet the email content (design) used by a specific Omnisend campaign or automation email, by content ID.Read-onlyGet Email Content
Get the email content (design) used by a specific Omnisend campaign or automation email, by content ID. Returns the content's id, generalSettings, sections and timestamps. Content of a campaign that has started sending is locked. Use omnisend_email_content_get to inspect what a campaign email contains. Use omnisend_email_template_get for a reusable template instead.
Inputs
content_idstringrequired- Email content ID (24-character hexadecimal). Campaigns and automation email blocks reference their content by this ID; get it from Get Campaign or Get Automation.
omnisend_email_template_getGet one Omnisend email template by ID, including its full design.Read-onlyGet Email Template
Get one Omnisend email template by ID, including its full design. Returns the template's id, name, generalSettings (global styles), sections (rows, columns and content blocks) and timestamps. Use omnisend_email_template_get to inspect a template. Use omnisend_email_template_render to see it as HTML.
Inputs
template_idstringrequired- Omnisend email template ID (24-character hexadecimal). Get it from List Email Templates.
omnisend_email_templates_listList saved Omnisend email templates, newest first or by name, optionally filtered by name.Read-onlyList Email Templates
List saved Omnisend email templates, newest first or by name, optionally filtered by name. Returns templates with id, name and timestamps, plus paging.cursors.after for the next page. Use omnisend_email_templates_list to find a template ID for omnisend_campaign_create. Use omnisend_email_template_get for a template's full content.
Inputs
afterstring- Cursor for the next page. Pass the paging.cursors.after value from the previous response. Do not send together with before.
beforestring- Cursor for the previous page. Pass the paging.cursors.before value from the previous response. Do not send together with after.
directionstring- Sort direction: asc or desc. Defaults to desc.one of
ascdesc limitinteger- Number of templates per page, 1 to 100. Defaults to 50.
name_containsstring- Return templates whose name contains this text (case-insensitive, max 200 characters).
sortstring- Field to sort by: createdAt, name. Defaults to createdAt. Keep it unchanged while paging with a cursor.one of
createdAtname
omnisend_form_contacts_listList the contacts who signed up through an Omnisend form, most recent first, with the values they submitted.Read-onlyList Form Signups
List the contacts who signed up through an Omnisend form, most recent first, with the values they submitted. Returns contacts with id, email, phoneNumber, name, address fields, birthday, gender, discount code, custom properties and submittedAt, plus paging.cursors.after for the next page. Use omnisend_form_contacts_list to see who a form captured. Use omnisend_form_report_get for aggregate form performance.
Inputs
form_idstringrequired- Omnisend form ID (24-character hexadecimal). Get it from List Forms.
afterstring- Cursor for the next page. Pass the paging.cursors.after value from the previous response. Do not send together with before.
beforestring- Cursor for the previous page. Pass the paging.cursors.before value from the previous response. Do not send together with after.
directionstring- Sort direction: asc or desc. Defaults to desc.one of
ascdesc limitinteger- Number of contacts per page, 1 to 250. Defaults to 250.
sortstring- Field to sort by: createdAt. Defaults to createdAt. Keep it unchanged while paging with a cursor.one of
createdAt
omnisend_form_getGet one Omnisend signup form by ID.Read-onlyGet Form
Get one Omnisend signup form by ID. Returns the form's id, name, status, displayType, content, targeting rules, contact tags, double opt-in, reCAPTCHA and redirect settings, A/B setup info and timestamps. Use omnisend_form_get to inspect a form. Use omnisend_forms_list to find forms.
Inputs
form_idstringrequired- Omnisend form ID (24-character hexadecimal). Get it from List Forms.
omnisend_form_periodic_report_getGet a time series of an Omnisend form's performance (views, interactions, submits and signups) over a date range.Read-onlyGet Form Periodic Report
Get a time series of an Omnisend form's performance (views, interactions, submits and signups) over a date range. Returns formID, granularity and rows, one per time bucket with its period and statistics. Use omnisend_form_periodic_report_get for trends over time. Use omnisend_form_report_get for totals and the device split.
Inputs
created_at_fromstringrequired- Start of the date range, inclusive (RFC 3339).
created_at_tostringrequired- End of the date range, inclusive (RFC 3339).
form_idstringrequired- Omnisend form ID (24-character hexadecimal). Get it from List Forms.
granularitystring- Time bucket size: hour, day, week, month or year.one of
hourdayweekmonthyear
omnisend_form_report_getGet aggregate performance for an Omnisend form over a date range: views, interactions, submits and signups, in total and by device.Read-onlyGet Form Report
Get aggregate performance for an Omnisend form over a date range: views, interactions, submits and signups, in total and by device. Returns formID, statistics (totals) and statisticsByDevice (desktop, mobile and tablet buckets with activity). Use omnisend_form_report_get for totals. Use omnisend_form_periodic_report_get for a time series.
Inputs
created_at_fromstringrequired- Start of the date range, inclusive (RFC 3339).
created_at_tostringrequired- End of the date range, inclusive (RFC 3339).
form_idstringrequired- Omnisend form ID (24-character hexadecimal). Get it from List Forms.
omnisend_forms_listList Omnisend signup forms (popups, flyouts, full-screen, embedded and landing pages).Read-onlyList Forms
List Omnisend signup forms (popups, flyouts, full-screen, embedded and landing pages). Returns forms with id, name, status, displayType, content, targeting, contact tags, A/B setup info and timestamps, plus paging.cursors.after for the next page. Use omnisend_forms_list to find a form ID. Use omnisend_form_report_get for a form's performance.
Inputs
afterstring- Cursor for the next page. Pass the paging.cursors.after value from the previous response. Do not send together with before.
beforestring- Cursor for the previous page. Pass the paging.cursors.before value from the previous response. Do not send together with after.
directionstring- Sort direction: asc or desc. Defaults to desc.one of
ascdesc limitinteger- Number of forms per page, 1 to 250. Defaults to 100.
sortstring- Field to sort by: createdAt, updatedAt, name. Defaults to createdAt. Keep it unchanged while paging with a cursor.one of
createdAtupdatedAtname
omnisend_image_getGet one image from the Omnisend image library by ID.Read-onlyGet Image
Get one image from the Omnisend image library by ID. Returns the image's id, name, url, type, size, width, height and createdAt. Use omnisend_image_get when you have the image ID. Use omnisend_images_list to browse.
Inputs
image_idstringrequired- Omnisend image ID. Get it from List Images or from the id returned by Upload Image From URL.
omnisend_images_listList images in the Omnisend image library, newest first or by name, optionally filtered by name.Read-onlyList Images
List images in the Omnisend image library, newest first or by name, optionally filtered by name. Returns images with id, name, url, type, size, width, height and createdAt, plus paging.cursors.after for the next page. Use omnisend_images_list to find an image ID, for example for an MMS campaign. Use omnisend_image_get for one image.
Inputs
afterstring- Cursor for the next page. Pass the paging.cursors.after value from the previous response. Do not send together with before.
beforestring- Cursor for the previous page. Pass the paging.cursors.before value from the previous response. Do not send together with after.
directionstring- Sort direction: asc or desc. Defaults to desc.one of
ascdesc limitinteger- Number of images per page, 1 to 250. Defaults to 100.
name_containsstring- Return images whose name contains this text (case-insensitive, max 200 characters).
sortstring- Field to sort by: createdAt, name. Defaults to createdAt. Keep it unchanged while paging with a cursor.one of
createdAtname
omnisend_product_categories_listList product categories in the Omnisend catalog.Read-onlyList Product Categories
List product categories in the Omnisend catalog. Returns categories with categoryID, title and timestamps, plus paging with offset, limit and next. Use omnisend_product_categories_list to find category IDs for products. Use omnisend_product_category_get for one category.
Inputs
limitinteger- Number of categories to return. Defaults to 100.
offsetinteger- Number of categories to skip, for paging. Defaults to 0.
sortstring- Field to sort by: title, updatedAt, createdAt.one of
titleupdatedAtcreatedAt
omnisend_product_category_getGet one Omnisend product category by ID.Read-onlyGet Product Category
Get one Omnisend product category by ID. Returns the category's categoryID, title and timestamps. Use omnisend_product_category_get when you have the ID. Use omnisend_product_categories_list to browse categories.
Inputs
category_idstringrequired- Product category ID as stored in Omnisend, which is your store's own category ID that was sent when the category was created. Get it from List Product Categories.
omnisend_product_getGet one product from the Omnisend catalog by its product ID.Read-onlyGet Product
Get one product from the Omnisend catalog by its product ID. Returns the product's id, title, url, status, currency, description, vendor, type, images, category IDs, tags, variants with prices, and timestamps. Use omnisend_product_get when you have the ID. Use omnisend_products_list to search by title.
Inputs
product_idstringrequired- Product ID as stored in Omnisend, which is your store's own product ID that was sent when the product was created. Get it from List Products.
omnisend_products_listList products in the Omnisend product catalog, optionally filtered by title.Read-onlyList Products
List products in the Omnisend product catalog, optionally filtered by title. Returns products with id, title, url, status, currency, description, images, category IDs, tags and variants (with prices), plus paging with offset, limit and next. Use omnisend_products_list to browse or search the catalog by title. Use omnisend_product_get for one product by ID.
Inputs
limitinteger- Number of products to return. Defaults to 100.
offsetinteger- Number of products to skip, for paging. Defaults to 0.
sortstring- Field to sort by: date, updatedAt, createdAt.one of
dateupdatedAtcreatedAt title_containsstring- Return products whose title contains this text (case-insensitive, max 255 characters).
omnisend_segment_getGet one Omnisend segment by ID.Read-onlyGet Segment
Get one Omnisend segment by ID. Returns the segment's segmentID, name, status, conditionGroups (its rules), isStarred, archivedAt and timestamps. Use omnisend_segment_get to read a segment's rules before omnisend_segment_update. Use omnisend_segment_statistics_get for its size.
Inputs
segment_idstringrequired- Omnisend segment ID (24-character hexadecimal). Get it from List Segments.
omnisend_segment_statistics_getGet statistics for an Omnisend segment.Read-onlyGet Segment Statistics
Get statistics for an Omnisend segment. Returns contactsCount, the number of contacts that currently match the segment. Use omnisend_segment_statistics_get to size an audience. Use omnisend_contacts_list with segment_id to list the members.
Inputs
segment_idstringrequired- Omnisend segment ID (24-character hexadecimal). Get it from List Segments.
omnisend_segments_listList Omnisend audience segments, newest first or by name.Read-onlyList Segments
List Omnisend audience segments, newest first or by name. Returns segments with segmentID, name, status, conditionGroups, isStarred and timestamps, plus paging.cursors.after for the next page. Use omnisend_segments_list to find a segment ID for campaigns, contact filters or bulk tagging. Use omnisend_segment_statistics_get for a segment's contact count.
Inputs
afterstring- Cursor for the next page. Pass the paging.cursors.after value from the previous response. Do not send together with before.
beforestring- Cursor for the previous page. Pass the paging.cursors.before value from the previous response. Do not send together with after.
directionstring- Sort direction: asc or desc. Defaults to desc.one of
ascdesc limitinteger- Number of segments per page, 1 to 50. Defaults to 10.
sortstring- Field to sort by: createdAt, name. Defaults to createdAt. Keep it unchanged while paging with a cursor.one of
createdAtname
omnisend_analytics_report_generateGet aggregated Omnisend campaign and automation performance (sends, opens, clicks, unsubscribes, attributed orders and revenue), grouped by the date messages were sent, the same way Omnisend's in-app reports work.WriteGenerate Analytics Report
Get aggregated Omnisend campaign and automation performance (sends, opens, clicks, unsubscribes, attributed orders and revenue), grouped by the date messages were sent, the same way Omnisend's in-app reports work. Returns a reports array with one entry per query: its alias, dimensions, metrics and rows (one key per dimension and metric). Use omnisend_analytics_report_generate to match in-app campaign or workflow reports. Use omnisend_analytics_statistics_generate to group by when opens, clicks and orders actually happened, or for audience growth. Limited to 10 requests per minute and 55 per day.
Inputs
queriesarrayrequired- 1 to 4 report queries. Each query needs a unique alias, metrics (at least one, for example [{"name": "sent"}, {"name": "openRate"}]) and dateRange. Optional dimensions break results down: timestamp (requires granularity hour, day, week or month), marketingActivityID, marketingActivityType (Campaign or Automation), messageID, messageChannel (Email, SMS or Push) or segmentID; up to 2 besides timestamp. Optional filters take name, operator (in or notIn) and values. Metrics include sent, failed, openedUnique, openRate, clickedUnique, clickRate, unsubscribedUnique, markedAsSpamUnique, attributedOrders, attributedRevenue and attributedRevenuePerSent. dateRange needs interval: custom (with from and to in RFC 3339, max 12 months) or a named range such as last7Days, last30Days, last90Days, thisMonth, lastMonth, thisYear (leave from and to out for named ranges). Example: [{"alias": "campaign-performance", "metrics": [{"name": "sent"}, {"name": "openRate"}, {"name": "attributedRevenue"}], "dimensions": [{"name": "marketingActivityID"}], "filters": [{"name": "marketingActivityType", "operator": "in", "values": ["Campaign"]}], "dateRange": {"interval": "last30Days"}}]
omnisend_analytics_statistics_generateGet aggregated Omnisend marketing statistics grouped by the date each event happened (when an email was opened, a link clicked or an order placed), including audience growth.WriteGenerate Analytics Statistics
Get aggregated Omnisend marketing statistics grouped by the date each event happened (when an email was opened, a link clicked or an order placed), including audience growth. Returns a statistics array with one entry per query: its alias, dimensions, metrics and rows (one key per dimension and metric). Use omnisend_analytics_statistics_generate for event-date activity and subscriber growth. Use omnisend_analytics_report_generate to match Omnisend's in-app, send-date reports. Limited to 10 requests per minute and 55 per day.
Inputs
queriesarrayrequired- 1 to 4 statistics queries. Each query needs a unique alias, metrics (at least one) and dateRange, and its dimensions must include timestamp (with granularity hour, day, week or month) plus up to 2 more. Metrics include sent, failed, openedUnique, opened, clickedUnique, clicked, unsubscribedUnique, markedAsSpamUnique, attributedOrders, attributedRevenue, totalOrders, totalRevenue, and audience growth metrics subscribedEmail, subscribedSms, subscribedPush, unsubscribedEmail, unsubscribedSms, unsubscribedPush. Other dimensions include marketingActivityID, marketingActivityType, marketingActivityName, messageID, messageChannel, emailDomain, clientDeviceType, urlClicked, productID, subscriptionMethod and unsubscribeReason; not every dimension works with every metric. Optional filters take name, operator (in or notIn) and values. dateRange needs from and to in RFC 3339 (from inclusive, to exclusive; hour granularity allows at most 7 days). Example: [{"alias": "daily-opens", "metrics": [{"name": "openedUnique"}, {"name": "clickedUnique"}], "dimensions": [{"name": "timestamp", "granularity": "day"}], "dateRange": {"from": "2026-02-01T00:00:00Z", "to": "2026-02-08T00:00:00Z"}}]
omnisend_automation_copyCopy an Omnisend automation workflow.WriteCopy Automation
Copy an Omnisend automation workflow. The copy is always created disabled. Returns the new workflow with its own id, name, trigger and blocks. Use omnisend_automation_copy to duplicate a workflow as a starting point, then omnisend_automation_enable to turn it on.
Inputs
automation_idstringrequired- ID of the workflow to copy (24-character hexadecimal). Get it from List Automations.
namestring- Name for the copy. Defaults to "Copy of: <original name>".
omnisend_automation_disableTurn off an Omnisend automation workflow so it stops accepting new trigger events.WriteDisable Automation
Turn off an Omnisend automation workflow so it stops accepting new trigger events. Returns the workflow with isEnabled false and its disabledAt time. Use omnisend_automation_disable to pause a workflow. Use omnisend_automation_enable to turn it back on.
Inputs
automation_idstringrequired- Omnisend automation workflow ID (24-character hexadecimal). Get it from List Automations.
contacts_in_workflowstringrequired- What happens to contacts already in the workflow: keep (they continue through the remaining blocks) or exit (they are removed right away).one of
keepexit
omnisend_automation_enableTurn on an Omnisend automation workflow so it starts processing trigger events in real time.WriteEnable Automation
Turn on an Omnisend automation workflow so it starts processing trigger events in real time. Returns the workflow with isEnabled true and its enabledAt time. Use omnisend_automation_enable to start a workflow. Use omnisend_automation_disable to stop it.
Inputs
automation_idstringrequired- Omnisend automation workflow ID (24-character hexadecimal). Get it from List Automations.
enroll_existingboolean- Also enroll contacts who already meet the trigger conditions at the time of enabling. Defaults to false, so only future trigger events are processed.
omnisend_automation_test_email_sendSend the saved email of one email block in an Omnisend automation workflow as a test to up to 5 addresses.WriteSend Automation Test Email
Send the saved email of one email block in an Omnisend automation workflow as a test to up to 5 addresses. Returns 204 No Content once the test is queued; it is rendered and delivered asynchronously. Use omnisend_automation_test_email_send to preview a workflow email. Get the block ID from the blocks tree in omnisend_automation_get.
Inputs
automation_idstringrequired- Omnisend automation workflow ID (24-character hexadecimal). Get it from List Automations.
block_idstringrequired- ID of the email block in the workflow, from the blocks array returned by Get Automation.
recipientsarrayrequired- Email addresses that receive the test, 1 to 5.
omnisend_batch_createStart an asynchronous Omnisend batch job that creates or updates up to 100 products, contacts, events or categories in one request.WriteCreate Batch
Start an asynchronous Omnisend batch job that creates or updates up to 100 products, contacts, events or categories in one request. Returns the batchID and totalCount of the queued batch; items are processed in the background. Use omnisend_batch_create for bulk syncs to stay within rate limits. Use omnisend_batch_get to track progress and omnisend_batch_items_get for per-item results. Use the single-item tools, such as omnisend_contact_create_or_update, for one record.
Inputs
endpointstringrequired- What the items are: products, contacts, events or categories.one of
productscontactseventscategories itemsarrayrequired- 1 to 100 items. Each item is the same JSON body you would send to the single-item endpoint, for example a contact body for contacts or a product body for products. Example for contacts: [{"identifiers": [{"type": "email", "id": "jane@example.com", "channels": {"email": {"status": "subscribed"}}}], "firstName": "Jane"}]
methodstringrequired- POST to create items, or PUT to replace existing items (for example products).one of
POSTPUT originstring- Source label for the batch, for example api.
omnisend_campaign_ab_test_resumeResume automatic winner selection for an Omnisend A/B test campaign in stopped status.WriteResume Campaign A/B Test
Resume automatic winner selection for an Omnisend A/B test campaign in stopped status. Returns 204 No Content on success. Use omnisend_campaign_ab_test_resume after omnisend_campaign_ab_test_stop. Use omnisend_campaign_ab_test_winner_select to pick the winner manually.
Inputs
campaign_idstringrequired- ID of the A/B test campaign (24-character hexadecimal). Get it from List Campaigns with type abTest.
omnisend_campaign_ab_test_stopPause automatic winner selection for an Omnisend A/B test campaign that is in started status.WriteStop Campaign A/B Test
Pause automatic winner selection for an Omnisend A/B test campaign that is in started status. Returns 204 No Content on success; the campaign moves to stopped status. Use omnisend_campaign_ab_test_stop to hold the test. Use omnisend_campaign_ab_test_resume to restart automatic selection, or omnisend_campaign_ab_test_winner_select to pick the winner yourself.
Inputs
campaign_idstringrequired- ID of the A/B test campaign (24-character hexadecimal). Get it from List Campaigns with type abTest.
omnisend_campaign_ab_test_winner_selectPick the winning variant of an Omnisend A/B test campaign manually; the winner is sent to the rest of the audience right away.WriteSelect Campaign A/B Test Winner
Pick the winning variant of an Omnisend A/B test campaign manually; the winner is sent to the rest of the audience right away. Returns 204 No Content on success. Use omnisend_campaign_ab_test_winner_select to end the test early. Get variant IDs from the abTest section of omnisend_campaign_get.
Inputs
campaign_idstringrequired- ID of the A/B test campaign (24-character hexadecimal).
variant_idstringrequired- ID of the variant to promote as the winner, from the campaign's abTest.variants in Get Campaign.
omnisend_campaign_cancelCancel an Omnisend campaign that is scheduled or paused (any channel) or currently sending (email only), and mark it canceled.WriteCancel Campaign
Cancel an Omnisend campaign that is scheduled or paused (any channel) or currently sending (email only), and mark it canceled. Returns 204 No Content on success. Campaigns in other statuses, such as draft or sent, are rejected with 409. Use omnisend_campaign_cancel to stop a send for good. Use omnisend_campaign_restore_to_draft to unschedule a campaign and keep editing it.
Inputs
campaign_idstringrequired- Omnisend campaign ID (24-character hexadecimal). Get it from List Campaigns.
omnisend_campaign_copyCreate a new draft copy of an Omnisend campaign with the same content, audience and settings, named "Copy of: <original name>".WriteCopy Campaign
Create a new draft copy of an Omnisend campaign with the same content, audience and settings, named "Copy of: <original name>". Returns the new draft campaign with its own id; the original is unchanged. Use omnisend_campaign_copy to resend or rework a campaign that is no longer a draft. Use omnisend_campaign_create to start from scratch.
Inputs
campaign_idstringrequired- ID of the campaign to copy (24-character hexadecimal). Get it from List Campaigns.
omnisend_campaign_createCreate a new Omnisend campaign draft: a regular email or SMS campaign, an A/B test, or a booster that resends a campaign to non-openers or non-clickers.WriteCreate Campaign
Create a new Omnisend campaign draft: a regular email or SMS campaign, an A/B test, or a booster that resends a campaign to non-openers or non-clickers. Returns the created draft campaign with its id, status, content, audience, sending settings and app url. Use omnisend_campaign_create to start a campaign, then omnisend_campaign_send to send or schedule it. Use omnisend_campaign_copy to start from an existing campaign. Regular email campaigns need an email template ID from omnisend_email_templates_list.
Inputs
channelstringrequired- Message channel: email, sms or push.one of
emailsmspush typestringrequired- Campaign type: regular, abTest (fill ab_test and leave the content fields empty) or booster (fill the booster_* fields).one of
regularboosterabTest ab_testobject- A/B test configuration, required when type is abTest. It holds settings (testSizePercent 10 to 100; winningMetric openRate or clickRate and decisionTime {amount, unit h or d}, both required unless testSizePercent is 100) and variants a and b, each with content.email (subject, templateID and the other email fields). Example: {"settings": {"testSizePercent": 20, "winningMetric": "openRate", "decisionTime": {"amount": 4, "unit": "h"}}, "variants": {"a": {"content": {"email": {"subject": "Spring sale", "templateID": "65f1c0a9e4b0a1b2c3d4e5f6"}}}, "b": {"content": {"email": {"subject": "40% off starts now", "templateID": "65f1c0a9e4b0a1b2c3d4e5f6"}}}}}
booster_delay_amountinteger- Booster campaigns with a draft parent only: how long after the parent is sent to send the booster, in booster_delay_unit units (max 240 hours or 10 days; 0 only for SMS boosters). Set together with booster_delay_unit.
booster_delay_unitstring- Unit for booster_delay_amount: h (hours) or d (days). Set together with booster_delay_amount.one of
hd booster_parent_campaign_idstring- Booster campaigns only (required): ID of the regular email campaign to boost. The parent must be in draft or sent status, and each parent can have one booster.
booster_send_tostring- Booster campaigns only (required): who receives the booster, nonOpeners or nonClickers of the parent campaign.one of
nonOpenersnonClickers email_preheaderstring- Email preheader text shown after the subject in the inbox (max 250 characters).
email_reply_tostring- Reply-to email address. Leave empty to have replies go to the sender address; it must be an address verified for the brand.
email_sender_emailstring- Sender email address. Leave empty to use the brand's configured sender; set it only when a specific verified sender address is required.
email_sender_namestring- Sender display name shown in the inbox (max 250 characters).
email_subjectstring- Email subject line (max 250 characters).
email_template_idstring- Email template ID for the campaign body. Required for regular email campaigns. Get IDs from List Email Templates, or create one with Import Email Template From HTML.
excluded_countriesarray- SMS campaigns only: ISO 3166-1 alpha-2 country codes whose recipients are not sent to.
excluded_segment_idsarray- Segment IDs to leave out of the audience.
included_segment_idsarray- Segment IDs to send to. Leave empty to send to all subscribers. Must not overlap with excluded_segment_ids. Get IDs from List Segments.
languagestring- Campaign language locale in xx_XX format. Defaults to en_US.
namestring- Campaign name (max 250 characters). Required for regular and abTest campaigns; not needed for boosters.
optimize_forstring- Personalized strategy only (required there): what to optimize send times for, opens, clicks or orders.one of
opensclicksorders respect_quiet_hoursboolean- Personalized strategy only: avoid sending between 22:00 and 06:59 in the contact's local time. Defaults to true for personalized sends.
scheduled_atstring- Send time in RFC 3339 format. Required for the scheduled and personalized strategies; must be left empty for immediate. A scheduled time must be in the future.
sending_strategystring- When to send: immediate (default), scheduled (at scheduled_at), or personalized (send-time optimization, regular email campaigns on plans that include it).one of
immediatescheduledpersonalized sms_image_idstring- Image ID from the Images API. When set, US and Canadian recipients get an MMS with the image; others get the SMS without it.
sms_link_shorteningboolean- Automatically shorten links in the SMS body. Defaults to true.
sms_messagestring- SMS message body. With the compliance text and unsubscribe link or keyword appended it must fit within 9 SMS segments. Required for regular SMS campaigns.
sms_stop_keyword_textstring- Compliance STOP keyword text appended for US and Canadian recipients (max 250 characters). Required for regular SMS campaigns.
sms_unsubscribe_link_textstring- Compliance unsubscribe link text appended for recipients outside the US and Canada (max 250 characters). Required for regular SMS campaigns.
tz_optimizationboolean- Email campaigns with the immediate or scheduled strategy only: send at the same local time in each recipient's time zone.
omnisend_campaign_restore_to_draftMove a scheduled Omnisend campaign back to draft, cancelling its scheduled send while keeping its ID and name.WriteRestore Campaign to Draft
Move a scheduled Omnisend campaign back to draft, cancelling its scheduled send while keeping its ID and name. Returns 204 No Content on success. Only campaigns in scheduled status are supported, and boosters cannot be restored. Use omnisend_campaign_restore_to_draft to edit a scheduled campaign with omnisend_campaign_update. Use omnisend_campaign_cancel to stop it for good.
Inputs
campaign_idstringrequired- Omnisend campaign ID (24-character hexadecimal). Get it from List Campaigns.
omnisend_campaign_sendSubmit an Omnisend draft campaign for sending, using its saved sending strategy: send now (immediate), queue for scheduled_at (scheduled), or send at each contact's best time (personalized).WriteSend Campaign
Submit an Omnisend draft campaign for sending, using its saved sending strategy: send now (immediate), queue for scheduled_at (scheduled), or send at each contact's best time (personalized). Returns 204 No Content once the campaign is accepted; it then moves to started or scheduled status. Only draft campaigns can be sent. Use omnisend_campaign_send after omnisend_campaign_create or omnisend_campaign_update. Use omnisend_campaign_test_email_send first to preview, and omnisend_campaign_copy to send a campaign again.
Inputs
campaign_idstringrequired- Omnisend campaign ID (24-character hexadecimal). Get it from List Campaigns.
omnisend_campaign_test_email_sendSend a preview of an Omnisend email campaign draft to up to 5 email addresses, using its saved subject, sender and content.WriteSend Campaign Test Email
Send a preview of an Omnisend email campaign draft to up to 5 email addresses, using its saved subject, sender and content. Returns 204 No Content once the test is queued. Only email campaigns are supported. Use omnisend_campaign_test_email_send to check a campaign before omnisend_campaign_send.
Inputs
campaign_idstringrequired- Omnisend campaign ID (24-character hexadecimal). Get it from List Campaigns.
recipientsarrayrequired- Email addresses that receive the test, 1 to 5.
omnisend_campaign_updateUpdate an Omnisend campaign that is still in draft status: name, language, email or SMS content, audience, sending settings, booster or A/B test settings.WriteUpdate Campaign
Update an Omnisend campaign that is still in draft status: name, language, email or SMS content, audience, sending settings, booster or A/B test settings. Returns the updated campaign with its id, status, content, audience and sending settings. Campaigns in any status other than draft are rejected with 409. Use omnisend_campaign_update to edit a draft. To change a scheduled campaign, run omnisend_campaign_restore_to_draft first; to change a sent campaign, use omnisend_campaign_copy and edit the copy.
- Idempotent
Inputs
campaign_idstringrequired- Omnisend campaign ID (24-character hexadecimal). Get it from List Campaigns.
ab_testobject- A/B campaigns only: replacement A/B test settings and variants. Provided fields fully replace the stored values. Shape: {"settings": {"testSizePercent": 30, "winningMetric": "clickRate", "decisionTime": {"amount": 1, "unit": "d"}}, "variants": {"a": {"content": {"email": {"subject": "..."}}}, "b": {"content": {"email": {"subject": "..."}}}}}
booster_delay_amountinteger- Booster campaigns with a draft parent only: delay after the parent is sent, in booster_delay_unit units. Set together with booster_delay_unit.
booster_delay_unitstring- Unit for booster_delay_amount: h (hours) or d (days).one of
hd booster_send_tostring- Booster campaigns only: who receives the booster, nonOpeners or nonClickers.one of
nonOpenersnonClickers email_preheaderstring- Email preheader text shown after the subject in the inbox (max 250 characters).
email_reply_tostring- Reply-to email address. Leave empty to have replies go to the sender address; it must be an address verified for the brand.
email_sender_emailstring- Sender email address. Leave empty to use the brand's configured sender; set it only when a specific verified sender address is required.
email_sender_namestring- Sender display name shown in the inbox (max 250 characters).
email_subjectstring- Email subject line (max 250 characters).
excluded_countriesarray- SMS campaigns only: ISO 3166-1 alpha-2 country codes whose recipients are not sent to.
excluded_segment_idsarray- Segment IDs to leave out of the audience.
included_segment_idsarray- Segment IDs to send to. Leave empty to send to all subscribers. Must not overlap with excluded_segment_ids. Get IDs from List Segments.
languagestring- Campaign language locale in xx_XX format.
namestring- New campaign name (max 250 characters).
optimize_forstring- Personalized strategy only (required there): what to optimize send times for, opens, clicks or orders.one of
opensclicksorders respect_quiet_hoursboolean- Personalized strategy only: avoid sending between 22:00 and 06:59 in the contact's local time. Defaults to true for personalized sends.
scheduled_atstring- Send time in RFC 3339 format. Required for the scheduled and personalized strategies; must be left empty for immediate. A scheduled time must be in the future.
sending_strategystring- When to send: immediate (default), scheduled (at scheduled_at), or personalized (send-time optimization, regular email campaigns on plans that include it). Sending settings are replaced as a whole: send every field that applies to the chosen strategy.one of
immediatescheduledpersonalized sms_image_idstring- Image ID from the Images API. When set, US and Canadian recipients get an MMS with the image; others get the SMS without it.
sms_link_shorteningboolean- Automatically shorten links in the SMS body. Defaults to true.
sms_messagestring- SMS message body. With the compliance text and unsubscribe link or keyword appended it must fit within 9 SMS segments.
sms_stop_keyword_textstring- Compliance STOP keyword text appended for US and Canadian recipients (max 250 characters).
sms_unsubscribe_link_textstring- Compliance unsubscribe link text appended for recipients outside the US and Canada (max 250 characters).
tz_optimizationboolean- Email campaigns with the immediate or scheduled strategy only: send at the same local time in each recipient's time zone.
omnisend_contact_create_or_updateCreate an Omnisend contact, or update the existing contact that has the same email identifier.WriteCreate or Update Contact
Create an Omnisend contact, or update the existing contact that has the same email identifier. Returns the saved contact with its id, identifiers, channel statuses, tags and properties (201 when created, 200 when an existing contact was updated). Use omnisend_contact_create_or_update to add or upsert a contact by email or phone. Use omnisend_contact_update or omnisend_contact_update_by_email to change fields on a contact you already know.
Inputs
addressstring- Street, house number and apartment number.
birthdatestring- Birthdate in YYYY-MM-DD format.
citystring- City.
countrystring- Country name. Used to derive the ISO country code when country_code is not given.
country_codestring- ISO 3166-1 alpha-2 country code. Takes priority over country when both are given.
created_atstring- When the contact was created in your own system (RFC 3339). Stored as the externalCreated custom property.
custom_propertiesobject- Custom properties as a JSON object of name to value. Names use Latin letters, numbers and underscores (max 128 characters, case sensitive). Values can be strings (max 2048 characters), numbers, booleans, dates as strings, or lists of strings. Set a property to "" or null to remove it.
emailstring- Email address to identify the contact by. Added as an email identifier. Provide email, phone, or identifiers (at least one) when creating a contact.
email_statusstring- Email channel subscription status for the email identifier: subscribed, unsubscribed or nonSubscribed (status unknown). Only used together with email.one of
subscribedunsubscribednonSubscribed first_namestring- Contact first name.
genderstring- Gender: m (male) or f (female).one of
mf identifiersarray- Full identifiers array, for advanced cases such as consent details or status dates. When set, it is sent as-is and email, email_status, phone and phone_status are ignored. Each item needs type (email or phone) and id, and can carry channels (keyed email or sms, each with status and statusChangedAt), consent (source, ip, userAgent, createdAt), source and sendWelcomeMessage. Example: [{"type": "email", "id": "jane@example.com", "channels": {"email": {"status": "subscribed", "statusChangedAt": "2024-01-01T00:00:00Z"}}, "consent": {"source": "website-form", "ip": "192.168.1.1"}}]
last_namestring- Contact last name.
phonestring- Phone number in E.164 format with the country code prefix. Added as a phone identifier, which uses the SMS channel.
phone_statusstring- SMS channel subscription status for the phone identifier: subscribed, unsubscribed or nonSubscribed (status unknown). Only used together with phone.one of
subscribedunsubscribednonSubscribed postal_codestring- Postal or ZIP code.
send_welcome_messageboolean- Set to false to skip the welcome message for the email and phone identifiers built from email and phone. Defaults to true, and only matters when the welcome workflow is enabled. Ignored when identifiers is set.
statestring- State or region.
tagsarray- Tags (labels) to set on the contact, up to 100. Omnisend recommends a source tag when creating contacts, for example "source: api".
omnisend_contact_updateUpdate fields on an existing Omnisend contact identified by contact ID.WriteUpdate Contact
Update fields on an existing Omnisend contact identified by contact ID. Returns the updated contact with its id, identifiers, channel statuses, tags and properties. Use omnisend_contact_update when you have the contact ID. Use omnisend_contact_update_by_email when you only know the email address.
- Idempotent
Inputs
contact_idstringrequired- Omnisend contact ID (24-character hexadecimal). Get it from List Contacts or from the id returned when a contact is created.
addressstring- Street, house number and apartment number.
birthdatestring- Birthdate in YYYY-MM-DD format.
citystring- City.
countrystring- Country name. Used to derive the ISO country code when country_code is not given.
country_codestring- ISO 3166-1 alpha-2 country code. Takes priority over country when both are given.
custom_propertiesobject- Custom properties as a JSON object of name to value. Names use Latin letters, numbers and underscores (max 128 characters, case sensitive). Values can be strings (max 2048 characters), numbers, booleans, dates as strings, or lists of strings. Set a property to "" or null to remove it.
emailstring- Email address to identify the contact by. Added as an email identifier. On update, identifiers are optional; send them only to add an identifier or change a channel status.
email_statusstring- Email channel subscription status for the email identifier: subscribed, unsubscribed or nonSubscribed (status unknown). Only used together with email.one of
subscribedunsubscribednonSubscribed first_namestring- Contact first name.
genderstring- Gender: m (male) or f (female).one of
mf identifiersarray- Full identifiers array, for advanced cases such as consent details or status dates. When set, it is sent as-is and email, email_status, phone and phone_status are ignored. Each item needs type (email or phone) and id, and can carry channels (keyed email or sms, each with status and statusChangedAt), consent (source, ip, userAgent, createdAt), source and sendWelcomeMessage. Example: [{"type": "email", "id": "jane@example.com", "channels": {"email": {"status": "subscribed", "statusChangedAt": "2024-01-01T00:00:00Z"}}, "consent": {"source": "website-form", "ip": "192.168.1.1"}}]
last_namestring- Contact last name.
phonestring- Phone number in E.164 format with the country code prefix. Added as a phone identifier, which uses the SMS channel.
phone_statusstring- SMS channel subscription status for the phone identifier: subscribed, unsubscribed or nonSubscribed (status unknown). Only used together with phone.one of
subscribedunsubscribednonSubscribed postal_codestring- Postal or ZIP code.
statestring- State or region.
tagsarray- Tags (labels) to set on the contact, up to 100. Omnisend recommends a source tag when creating contacts, for example "source: api".
omnisend_contact_update_by_emailUpdate fields on the existing Omnisend contact that has the given email address.WriteUpdate Contact by Email
Update fields on the existing Omnisend contact that has the given email address. Returns the updated contact with its id, identifiers, channel statuses, tags and properties. Use omnisend_contact_update_by_email when you know the email but not the contact ID. Use omnisend_contact_update when you have the ID.
- Idempotent
Inputs
contact_emailstringrequired- Email address of the contact to update. The contact must already exist.
addressstring- Street, house number and apartment number.
birthdatestring- Birthdate in YYYY-MM-DD format.
citystring- City.
countrystring- Country name. Used to derive the ISO country code when country_code is not given.
country_codestring- ISO 3166-1 alpha-2 country code. Takes priority over country when both are given.
custom_propertiesobject- Custom properties as a JSON object of name to value. Names use Latin letters, numbers and underscores (max 128 characters, case sensitive). Values can be strings (max 2048 characters), numbers, booleans, dates as strings, or lists of strings. Set a property to "" or null to remove it.
emailstring- Email address to identify the contact by. Added as an email identifier. On update, identifiers are optional; send them only to add an identifier or change a channel status.
email_statusstring- Email channel subscription status for the email identifier: subscribed, unsubscribed or nonSubscribed (status unknown). Only used together with email.one of
subscribedunsubscribednonSubscribed first_namestring- Contact first name.
genderstring- Gender: m (male) or f (female).one of
mf identifiersarray- Full identifiers array, for advanced cases such as consent details or status dates. When set, it is sent as-is and email, email_status, phone and phone_status are ignored. Each item needs type (email or phone) and id, and can carry channels (keyed email or sms, each with status and statusChangedAt), consent (source, ip, userAgent, createdAt), source and sendWelcomeMessage. Example: [{"type": "email", "id": "jane@example.com", "channels": {"email": {"status": "subscribed", "statusChangedAt": "2024-01-01T00:00:00Z"}}, "consent": {"source": "website-form", "ip": "192.168.1.1"}}]
last_namestring- Contact last name.
phonestring- Phone number in E.164 format with the country code prefix. Added as a phone identifier, which uses the SMS channel.
phone_statusstring- SMS channel subscription status for the phone identifier: subscribed, unsubscribed or nonSubscribed (status unknown). Only used together with phone.one of
subscribedunsubscribednonSubscribed postal_codestring- Postal or ZIP code.
statestring- State or region.
tagsarray- Tags (labels) to set on the contact, up to 100. Omnisend recommends a source tag when creating contacts, for example "source: api".
omnisend_email_content_renderRender Omnisend email content to HTML by content ID, with an empty data context (no contact or campaign personalization).WriteRender Email Content
Render Omnisend email content to HTML by content ID, with an empty data context (no contact or campaign personalization). Returns an object containing the rendered HTML. Use omnisend_email_content_render to preview a campaign or automation email. Use omnisend_email_template_render for a saved template. Limited to 40 requests per minute.
Inputs
content_idstringrequired- Email content ID (24-character hexadecimal). Campaigns and automation email blocks reference their content by this ID; get it from Get Campaign or Get Automation.
omnisend_email_template_import_htmlCreate an Omnisend email template from raw HTML; the HTML is parsed, its styles extracted and turned into a structured template.WriteImport Email Template from HTML
Create an Omnisend email template from raw HTML; the HTML is parsed, its styles extracted and turned into a structured template. Returns the new template with its id, name, generalSettings and sections. Use omnisend_email_template_import_html to bring your own HTML email design, then pass the template id to omnisend_campaign_create. The request body is limited to 1 MB.
Inputs
htmlstringrequired- Full raw HTML of the email to import.
namestringrequired- Template name (max 255 characters).
omnisend_email_template_renderRender an Omnisend email template to its full HTML body for previewing.WriteRender Email Template
Render an Omnisend email template to its full HTML body for previewing. Returns an object containing the rendered HTML. Use omnisend_email_template_render to preview a template. Use omnisend_email_content_render for the content of a specific campaign email. Limited to 40 requests per minute.
Inputs
template_idstringrequired- Omnisend email template ID (24-character hexadecimal). Get it from List Email Templates.
omnisend_event_metadata_createDeclare a new custom event schema in Omnisend (event name, origin, display name and typed properties) so the event can be used in segments and automations.WriteCreate Custom Event Metadata
Declare a new custom event schema in Omnisend (event name, origin, display name and typed properties) so the event can be used in segments and automations. Returns the created event metadata, with every property flagged explicitlyDefined. Use omnisend_event_metadata_create before sending a new custom event with omnisend_event_send. Use omnisend_event_metadata_update to add properties to an existing custom event.
Inputs
display_namestringrequired- Human-readable event label.
namestringrequired- Machine-readable event name. Together with origin it identifies the event.
originstringrequired- Origin the event belongs to, for example api.
propertiesobjectrequired- Property tree keyed by property name. Each property needs a type: string, stringList, integer, integerList, float, floatList, boolean, booleanList, date, dateList, struct or structList; it can also have displayName, description and group, and struct types hold child properties in properties. Example: {"planName": {"type": "string", "displayName": "Plan name"}, "seats": {"type": "integer"}} At least one property is required.
omnisend_event_metadata_queryList the events Omnisend knows for a category (automations, events or segments), with optional filters by event name and origin.WriteQuery Event Metadata
List the events Omnisend knows for a category (automations, events or segments), with optional filters by event name and origin. Returns events with name, displayName, origins, explicitlyDefined and, when include_properties is true, their property trees. Use omnisend_event_metadata_query to find valid event names and properties before building segments, automation triggers or omnisend_event_send payloads.
Inputs
categorystringrequired- Which event catalog to read: automations, events or segments.one of
automationseventssegments eventsarray- Only return these event names.
exclude_custom_eventsboolean- Set to true to leave out your brand's custom events and return only well-known events. Defaults to false.
include_propertiesboolean- Set to true to include each event's property tree. Defaults to false.
originsarray- Only return events from these origins (any of them).
omnisend_event_metadata_updateMerge changes into an existing Omnisend custom event schema identified by name and origin.WriteUpdate Custom Event Metadata
Merge changes into an existing Omnisend custom event schema identified by name and origin. Returns the updated event metadata. Only the supplied fields and properties change; nothing is deleted, and an explicitly defined property's type cannot change. Use omnisend_event_metadata_update to add properties or relabel a custom event. Use omnisend_event_metadata_create for a new event.
- Idempotent
Inputs
namestringrequired- Name of the existing custom event.
originstringrequired- Origin of the existing custom event.
display_namestring- New human-readable label. Leave empty to keep the current one.
propertiesobject- Property tree keyed by property name. Each property needs a type: string, stringList, integer, integerList, float, floatList, boolean, booleanList, date, dateList, struct or structList; it can also have displayName, description and group, and struct types hold child properties in properties. Example: {"planName": {"type": "string", "displayName": "Plan name"}, "seats": {"type": "integer"}} Only the keys you send are merged.
omnisend_event_sendSend a customer event (for example placed order, started checkout or a custom event) to Omnisend to record behavior and trigger automations.WriteSend Customer Event
Send a customer event (for example placed order, started checkout or a custom event) to Omnisend to record behavior and trigger automations. Returns 202 Accepted with no body; the contact in the event is created or updated from the contact details sent. Use omnisend_event_send to track behavior or trigger an automation. Use omnisend_contact_create_or_update to only save a contact. Use omnisend_event_metadata_query to see which event names and properties exist.
Inputs
contactobjectrequired- Contact the event belongs to. Identify them with email, phone or id; you can also send firstName, lastName, tags, customProperties, address fields, and optIns/optOuts/consents. The contact is created or updated from these values. Example: {"email": "jane.doe@example.com", "firstName": "Jane"}
event_namestringrequired- Event name. Use a recommended event name such as "placed order", "added product to cart", "started checkout" or "viewed product", or your own name for a custom event.
originstringrequired- Source of the event. Use "api" unless you are building a dedicated platform integration with its own origin.
event_idstring- UUID (v4 to v7) for the event. Used with event_time to deduplicate historical events.
event_timestring- When the event happened (RFC 3339). Defaults to now. Used with event_id to deduplicate historical events.
event_versionstring- Version of a recommended event, as given in that event's documentation. Leave empty for custom events.
propertiesobject- Event properties. Recommended events expect specific properties (see Omnisend's events guides, for example orderID, totalPrice, currency and lineItems for placed order); custom events accept any properties. Example: {"orderID": "1001", "totalPrice": 59.9, "currency": "USD"}
omnisend_form_disableStop showing an Omnisend signup form to visitors, keeping the form and its content.WriteDisable Form
Stop showing an Omnisend signup form to visitors, keeping the form and its content. Returns 204 No Content on success; disabling a disabled form also succeeds. Use omnisend_form_disable to take a form offline. Use omnisend_form_enable to publish it again, or omnisend_form_delete to remove it.
Inputs
form_idstringrequired- Omnisend form ID (24-character hexadecimal). Get it from List Forms.
omnisend_form_enablePublish an Omnisend signup form so it is shown to visitors according to its targeting rules.WriteEnable Form
Publish an Omnisend signup form so it is shown to visitors according to its targeting rules. Returns 204 No Content on success; enabling an enabled form also succeeds. A/B test version forms and forms with an active A/B test cannot be enabled here. Use omnisend_form_enable to start showing a form. Use omnisend_form_disable to stop.
Inputs
form_idstringrequired- Omnisend form ID (24-character hexadecimal). Get it from List Forms.
omnisend_image_upload_from_urlUpload an image to the Omnisend image library from a publicly accessible URL.WriteUpload Image from URL
Upload an image to the Omnisend image library from a publicly accessible URL. Returns the stored image with its id, name, url, type, size, width and height. Use omnisend_image_upload_from_url to add an image for emails or MMS (sms_image_id). Direct file uploads are not supported by this connector.
Inputs
urlstringrequired- Public HTTPS URL of the image to upload: PNG, JPEG, GIF or WebP, up to 5 MB.
namestring- Name for the image. Defaults to the file name in the URL.
omnisend_product_category_createCreate a product category in the Omnisend catalog.WriteCreate Product Category
Create a product category in the Omnisend catalog. Returns the categoryID of the created category. Use omnisend_product_category_create before assigning a category to products through category_ids. Use omnisend_product_category_update to rename one.
Inputs
category_idstringrequired- Your store's unique category ID, 1 to 100 characters.
titlestringrequired- Category name (max 255 characters).
omnisend_product_category_updateRename an Omnisend product category.WriteUpdate Product Category
Rename an Omnisend product category. Returns the categoryID of the updated category. Use omnisend_product_category_update to change a category title. Use omnisend_product_category_create for a new category.
- Idempotent
Inputs
category_idstringrequired- Product category ID as stored in Omnisend, which is your store's own category ID that was sent when the category was created. Get it from List Product Categories.
titlestringrequired- New category name (max 255 characters).
omnisend_product_createAdd a product to the Omnisend catalog so it can be used in product recommendations, emails and automations.WriteCreate Product
Add a product to the Omnisend catalog so it can be used in product recommendations, emails and automations. Returns the id of the created product. A product ID that already exists is rejected with 409. Use omnisend_product_create for a new product. Use omnisend_product_replace to overwrite an existing product, and omnisend_batch_create to sync many products at once.
Inputs
currencystringrequired- Currency code of the product prices, for example USD or EUR.
product_idstringrequired- Your store's unique product ID (max 100 characters). Omnisend stores the product under this ID.
statusstringrequired- Stock status: inStock, outOfStock or notAvailable. Keep it in sync with your store so Omnisend does not promote unavailable products.one of
inStockoutOfStocknotAvailable titlestringrequired- Product title (max 255 characters).
urlstringrequired- URL of the product page on your store (max 1000 characters).
category_idsarray- IDs of product categories the product belongs to, up to 100. Create categories with Create Product Category.
created_atstring- When the product was created in your store (RFC 3339).
default_image_urlstring- Main product image URL (max 1000 characters). Put additional images in images.
descriptionstring- Short product description that can be used in email bodies (max 1000 characters).
imagesarray- Additional product image URLs, up to 300.
tagsarray- Product tags for categorizing, up to 100.
typestring- Product type, used for categorizing (max 100 characters).
updated_atstring- When the product was last updated in your store (RFC 3339).
variantsarray- Product variants (for example sizes or colors), 1 to 500. Each variant needs id, title, url and price, and can have sku, status (inStock, outOfStock or notAvailable), strikeThroughPrice (price before discount), description, defaultImageUrl and images. Example: [{"id": "SKU-123-M", "title": "T-shirt M", "url": "https://acme.com/products/t-shirt?size=m", "price": 19.99, "sku": "TS-M", "status": "inStock"}]
vendorstring- Manufacturer or brand of the product (max 100 characters).
omnisend_product_replaceReplace an existing product in the Omnisend catalog with a full new definition.WriteReplace Product
Replace an existing product in the Omnisend catalog with a full new definition. Returns the id of the replaced product. Use omnisend_product_replace to update a product; send every field you want to keep, because the product is replaced as a whole. Use omnisend_product_get first to read the current values.
- Idempotent
Inputs
currencystringrequired- Currency code of the product prices, for example USD or EUR.
product_idstringrequired- Product ID as stored in Omnisend, which is your store's own product ID that was sent when the product was created. Get it from List Products.
statusstringrequired- Stock status: inStock, outOfStock or notAvailable. Keep it in sync with your store so Omnisend does not promote unavailable products.one of
inStockoutOfStocknotAvailable titlestringrequired- Product title (max 255 characters).
urlstringrequired- URL of the product page on your store (max 1000 characters).
category_idsarray- IDs of product categories the product belongs to, up to 100. Create categories with Create Product Category.
created_atstring- When the product was created in your store (RFC 3339).
default_image_urlstring- Main product image URL (max 1000 characters). Put additional images in images.
descriptionstring- Short product description that can be used in email bodies (max 1000 characters).
imagesarray- Additional product image URLs, up to 300.
tagsarray- Product tags for categorizing, up to 100.
typestring- Product type, used for categorizing (max 100 characters).
updated_atstring- When the product was last updated in your store (RFC 3339).
variantsarray- Product variants (for example sizes or colors), 1 to 500. Each variant needs id, title, url and price, and can have sku, status (inStock, outOfStock or notAvailable), strikeThroughPrice (price before discount), description, defaultImageUrl and images. Example: [{"id": "SKU-123-M", "title": "T-shirt M", "url": "https://acme.com/products/t-shirt?size=m", "price": 19.99, "sku": "TS-M", "status": "inStock"}]
vendorstring- Manufacturer or brand of the product (max 100 characters).
omnisend_segment_createCreate an Omnisend segment from contact-property and event-based rules.WriteCreate Segment
Create an Omnisend segment from contact-property and event-based rules. Returns the created segment with its segmentID, name, status and conditionGroups. Membership is built asynchronously. Use omnisend_segment_create to define a new audience. Use omnisend_segment_update to change an existing one. Use omnisend_event_metadata_query with category segments to see which events and properties can be used. Limited to 15 requests per minute.
Inputs
condition_groupsarrayrequired- Segment rules as an array of condition groups. Groups are combined with OR; the conditions inside one group are combined with AND. Each condition has an entity (contact or event), a junction (and or or) for its filters, and a filters array. Contact filters use property (for example tags, country, subscriptionStatus, totalSpent, dateAdded, custom), operator (for example equals, anyOf) and value. Event filters use name (for example "placed order"), operator (has or hasNot), count (atLeast or equals), value, and optionally period (for example {"operator": "inTheLast", "unit": "days", "value": 30}). Example: [{"conditions": [{"entity": "contact", "junction": "and", "filters": [{"property": "tags", "operator": "anyOf", "value": ["vip"]}]}, {"entity": "event", "junction": "and", "filters": [{"name": "placed order", "operator": "has", "count": "atLeast", "value": 1, "period": {"operator": "inTheLast", "unit": "days", "value": 90}}]}]}]
namestringrequired- Segment name (max 256 characters).
omnisend_segment_updateReplace the name and rules of an existing Omnisend segment.WriteUpdate Segment
Replace the name and rules of an existing Omnisend segment. Returns the updated segment with its segmentID, name, status and conditionGroups. A segment that is still building is rejected with 409. Use omnisend_segment_update to change a segment; send the full rule set, since it replaces the stored rules. Use omnisend_segment_get first to read the current rules. Limited to 15 requests per minute.
- Idempotent
Inputs
condition_groupsarrayrequired- Segment rules as an array of condition groups. Groups are combined with OR; the conditions inside one group are combined with AND. Each condition has an entity (contact or event), a junction (and or or) for its filters, and a filters array. Contact filters use property (for example tags, country, subscriptionStatus, totalSpent, dateAdded, custom), operator (for example equals, anyOf) and value. Event filters use name (for example "placed order"), operator (has or hasNot), count (atLeast or equals), value, and optionally period (for example {"operator": "inTheLast", "unit": "days", "value": 30}). Example: [{"conditions": [{"entity": "contact", "junction": "and", "filters": [{"property": "tags", "operator": "anyOf", "value": ["vip"]}]}, {"entity": "event", "junction": "and", "filters": [{"name": "placed order", "operator": "has", "count": "atLeast", "value": 1, "period": {"operator": "inTheLast", "unit": "days", "value": 90}}]}]}]
namestringrequired- Segment name (max 256 characters).
segment_idstringrequired- Omnisend segment ID (24-character hexadecimal). Get it from List Segments.
omnisend_automation_deletePermanently delete an Omnisend automation workflow.DestructiveDelete Automation
Permanently delete an Omnisend automation workflow. Returns 204 No Content on success; deleting a workflow that does not exist also succeeds. Use omnisend_automation_delete to remove a workflow. Use omnisend_automation_disable to stop it but keep it.
- Idempotent
Inputs
automation_idstringrequired- Omnisend automation workflow ID (24-character hexadecimal). Get it from List Automations.
omnisend_campaign_deletePermanently delete an Omnisend campaign.DestructiveDelete Campaign
Permanently delete an Omnisend campaign. Returns 204 No Content on success. Use omnisend_campaign_delete to remove a campaign. Use omnisend_campaign_cancel to stop a scheduled or sending campaign but keep its record.
- Idempotent
Inputs
campaign_idstringrequired- Omnisend campaign ID (24-character hexadecimal). Get it from List Campaigns.
omnisend_email_template_deletePermanently delete an Omnisend email template.DestructiveDelete Email Template
Permanently delete an Omnisend email template. Returns 204 No Content on success. Use omnisend_email_template_delete to remove a template you no longer use.
- Idempotent
Inputs
template_idstringrequired- Omnisend email template ID (24-character hexadecimal). Get it from List Email Templates.
omnisend_form_deletePermanently delete an Omnisend signup form in any state; a form that owns an A/B setup is deleted with its setup and version forms.DestructiveDelete Form
Permanently delete an Omnisend signup form in any state; a form that owns an A/B setup is deleted with its setup and version forms. Returns 204 No Content on success; deleting a form that does not exist also succeeds. Use omnisend_form_delete to remove a form. Use omnisend_form_disable to stop showing it but keep it.
- Idempotent
Inputs
form_idstringrequired- Omnisend form ID (24-character hexadecimal). Get it from List Forms.
omnisend_image_deletePermanently delete an image from the Omnisend image library.DestructiveDelete Image
Permanently delete an image from the Omnisend image library. Returns 204 No Content on success. Use omnisend_image_delete to remove an image you no longer use.
- Idempotent
Inputs
image_idstringrequired- Omnisend image ID. Get it from List Images or from the id returned by Upload Image From URL.
omnisend_product_category_deleteDelete an Omnisend product category.DestructiveDelete Product Category
Delete an Omnisend product category. Returns 204 No Content on success. Use omnisend_product_category_delete to remove a category you no longer use.
- Idempotent
Inputs
category_idstringrequired- Product category ID as stored in Omnisend, which is your store's own category ID that was sent when the category was created. Get it from List Product Categories.
omnisend_product_deleteDelete a product from the Omnisend catalog.DestructiveDelete Product
Delete a product from the Omnisend catalog. Returns 204 No Content on success. Use omnisend_product_delete when a product is removed from your store. Use omnisend_product_replace with status notAvailable to keep it but stop promoting it.
- Idempotent
Inputs
product_idstringrequired- Product ID as stored in Omnisend, which is your store's own product ID that was sent when the product was created. Get it from List Products.
omnisend_segment_deletePermanently delete an Omnisend segment.DestructiveDelete Segment
Permanently delete an Omnisend segment. Returns 204 No Content on success. A segment that is still building is rejected with 409. Use omnisend_segment_delete to remove a segment you no longer need; contacts are not deleted.
- Idempotent
Inputs
segment_idstringrequired- Omnisend segment ID (24-character hexadecimal). Get it from List Segments.
No tools match.