omnisend_cancel_ campaignCancel a campaign and mark it as canceled.
Draft and send email or SMS campaigns, retag contacts in bulk, build segments, switch automations on or off, and pull revenue-attributed analytics for the store the key belongs to.
PopMCPOmnisend
Every campaign, automation, contact, segment, product, template, batch and analytics call PopMCP exposes, plus the triggers it can watch.
omnisend_cancel_ campaignCancel a campaign and mark it as canceled.
omnisend_copy_ campaignCreate a draft copy of an existing campaign, copying content, audience, and settings from the original.
omnisend_create_ campaignCreate a new campaign draft.
omnisend_get_ campaignGet a single campaign by ID.
omnisend_get_ campaign_ utmGet UTM tag settings for a campaign.
omnisend_list_ campaignsList campaigns with filtering, sorting, and cursor-based pagination.
omnisend_send_ campaignSubmit a campaign draft for sending; supports both email and SMS campaigns.
omnisend_update_ campaignUpdate a campaign draft.
omnisend_update_ campaign_ utmReplace UTM tag settings for a regular or A/B test campaign in draft status.
omnisend_disable_ automationDisable an automation workflow so it stops accepting new trigger events, choosing whether contacts already in the workflow are kept or removed.
omnisend_enable_ automationEnable (activate) an automation workflow so it begins processing trigger events; optionally enroll contacts that already match the trigger conditions.
omnisend_get_ automationRetrieve a single automation workflow by its 24-character hexadecimal ID.
omnisend_list_ automationsList automation workflows with cursor-based pagination, filtering (by enabled status, name, created/updated date ranges) and sorting; use to browse or search automations.
omnisend_add_ contact_ tagsAdds the specified tags to multiple contacts in one call, identifying each contact by its contact ID.
omnisend_create_ contactCreates a new contact; if a contact with the provided email identifier already exists it is updated instead (upsert) — use to add or import a single contact.
omnisend_get_ contactReturns the single contact with the specified contact ID.
omnisend_get_ email_ templateRetrieve a single email template by its unique 24-character hexadecimal ID.
omnisend_list_ contactsReturns a paginated list of contacts filtered by query parameters such as email, phone, status, segment, or tag; use to search or browse the contact database.
omnisend_list_ email_ templatesRetrieve a paginated list of email templates with cursor-based navigation, sorting, and name filtering.
omnisend_remove_ contact_ tagsRemoves the specified tags from multiple contacts in one call, identifying each contact by its contact ID.
omnisend_update_ contactUpdates an existing contact record identified by its unique contact ID; use when you already have the contact ID rather than the email.
omnisend_update_ contact_ by_ emailUpdates the single contact matching the email address supplied in the required email query parameter (despite the family name, this updates one contact, not a batch).
omnisend_create_ segmentCreates a new segment defined by a name and one or more condition groups of filter rules.
omnisend_get_ segmentReturns a single segment by its unique identifier.
omnisend_get_ segment_ statisticsReturns statistics for a segment, including the total number of matching contacts.
omnisend_list_ segmentsList segments with sorting and cursor-based pagination support, returning an array of segments plus a paging object with navigation cursors.
omnisend_create_ productCreate a new product in the Omnisend catalog; use to add a product (with optional variants and images) for use in automations and recommendations.
omnisend_create_ product_ categoryCreate a new product category in the Omnisend store with a caller-supplied unique categoryID and title.
omnisend_get_ productRetrieve a single product from the Omnisend catalog by its unique product ID.
omnisend_list_ product_ categoriesRetrieve a paginated collection of product categories from the Omnisend store, with optional sorting and offset-based pagination.
omnisend_list_ productsList products in the Omnisend catalog with offset/limit pagination and optional sorting; use to browse or page through all synced products.
omnisend_replace_ productFully replace an existing product by its ID with the supplied data; any fields not provided are overwritten/cleared, so send the complete product object.
omnisend_create_ batchCreates an asynchronous batch that runs many create or update operations of one resource type in a single request to improve performance and avoid rate limits.
omnisend_get_ batchRetrieves detailed information about a single batch operation, including its status, progress counts, responses, and errors.
omnisend_list_ batch_ itemsRetrieves all individual items belonging to a specific batch, including each item's request, response, status, and response code.
omnisend_list_ batchesRetrieves a paginated list of batch operations for a given resource endpoint, optionally filtered by status or a created-date range.
omnisend_get_ analytics_ reportReturns aggregated marketing analytics grouped by message send date, covering delivery, engagement, and revenue-attribution metrics for campaigns and automations, with optional dimensions and filters.
omnisend_get_ analytics_ statisticsReturns aggregated marketing analytics grouped by event date, covering delivery, engagement, revenue, and audience-growth metrics; requires a timestamp dimension.
omnisend_get_ current_ brandRetrieves the current brand's information (brandID, name, platform, currency, timezone, website, connection status, and version).
omnisend_trigger_ eventSend a customer event (custom or a standard ecommerce event) to track behavior, create/update the matched contact, and trigger Omnisend automations; this single endpoint replaces the legacy v3 orders/carts REST resources.
omnisend_delete_ campaignDelete a campaign.
omnisend_pick_ campaign_ ab_ test_ winnerManually pick a variant as the A/B test winner; the chosen variant is routed into the send pipeline immediately.
omnisend_resume_ campaign_ ab_ testResume a stopped A/B test so automatic winner selection can pick this campaign again.
omnisend_stop_ campaign_ ab_ testHalt the A/B test winner-selection phase so automatic winner selection no longer considers this campaign until resumed.
omnisend_copy_ automationDuplicate an existing automation workflow into a new disabled automation, optionally with a custom name.
omnisend_create_ automationCreate a new automation workflow with a trigger and at least one block; new automations are created in a disabled state.
omnisend_delete_ automationDelete a single automation workflow by ID; the operation is idempotent (deleting a non-existent automation still returns success).
omnisend_get_ automation_ block_ utmRetrieve UTM tracking tags for a single send-action block; missing or cleared tags are returned with their default values.
omnisend_get_ automation_ utmRetrieve UTM tracking tags for all send-action blocks in an automation workflow, with default values synthesized for any missing fields.
omnisend_update_ automationPartially update an automation workflow, modifying only the top-level fields provided in the body; the automation must be disabled first.
omnisend_update_ automation_ block_ utmSet the UTM tracking tags (source, medium, campaign) for a single send-action block, replacing all three atomically.
omnisend_update_ automation_ blocksReplace the full block tree of an automation workflow atomically; the automation must be disabled first.
omnisend_create_ email_ templateCreate a new email template with a name and optional general settings and sections.
omnisend_delete_ email_ templateDelete an email template by its 24-character hexadecimal ID.
omnisend_import_ email_ templateImport an email template by parsing raw HTML content, extracting its styles, and structuring it into a template.
omnisend_render_ email_ templateRender an email template by ID and return its full HTML body for preview purposes.
omnisend_update_ email_ templateFully replace an existing email template (identified by ID) with the provided template data.
omnisend_delete_ segmentPermanently deletes a segment by its unique identifier.
omnisend_update_ segmentUpdates an existing segment by ID; the segment must not be in a building state or the request is rejected.
omnisend_create_ email_ layoutCreate a new universal email layout defining a reusable section structure (rows, columns, blocks).
omnisend_delete_ email_ layoutDelete an universal email layout from the account by its ID.
omnisend_delete_ productDelete a product from the Omnisend catalog by its unique product ID.
omnisend_delete_ product_ categoryDelete a product category from the Omnisend store by its unique ID.
omnisend_get_ email_ layoutRetrieve a single universal email layout configuration by its unique identifier.
omnisend_get_ product_ categoryRetrieve a single product category by its unique ID, returning categoryID, title, createdAt and updatedAt.
omnisend_list_ email_ layoutsRetrieve a paginated list of universal email layouts (sorted by creation time descending), optionally filtered by name substring.
omnisend_update_ email_ layoutUpdate (fully replace) an existing universal email layout by its ID.
omnisend_update_ product_ categoryUpdate an existing product category (identified by its ID) by setting a new title.
omnisend_create_ imageUploads/creates an image in the brand's image library from a publicly accessible URL (HTTPS PNG/JPEG/GIF/WebP, max 5MB); use to add a hosted image without raw file upload.
omnisend_delete_ imagePermanently removes an image from the brand's library by its unique ID; use to delete an image that is no longer needed.
omnisend_get_ imageRetrieves a single image resource by its unique ID, returning its metadata (url, type, dimensions, size, createdAt); use to look up details for one image.
omnisend_list_ imagesRetrieves a paginated list of a brand's images with cursor-based navigation, plus optional name filtering and sorting; use to browse or search the image library.
omnisend_get_ email_ contentRetrieves a single email content object (general settings plus sections) by its 24-character hexadecimal content ID.
omnisend_render_ email_ contentRenders the stored email content identified by the 24-character hexadecimal content ID to HTML using an empty data context (no contact, no marketing activity).
omnisend_update_ email_ contentFully replaces the email content identified by the 24-character hexadecimal content ID; the complete content structure must be supplied in the request body.
omnisend_update_ current_ brandConnects/updates the current brand by establishing a connection between a website and Omnisend (sets the platform, version, website, and optionally currency).
Credentials off one Omnisend screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Paste your API key into the connect form — one field, no OAuth popup, no token refresh. The key is scoped to a single Omnisend store, so the connection only ever reaches that store's audience, catalog and campaigns.
••••••••••••3f7aPick read-only for reporting, or full access with approval required on writes so sending a campaign, disabling an automation or replacing a product waits for your yes. Turn on the full catalog to expose the rarer calls.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Omnisend credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Show open and click rates for every campaign we sent in March
omnisend_list_campaignsok
Then just ask for the work
“Show open and click rates for every campaign we sent in March”
“Tag everyone in the Lapsed Buyers segment as winback-2026”
“Copy the Black Friday email into a new draft and give it fresh UTM tags”
“Did the abandoned-cart automation earn more than last week's SMS blast?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Omnisend behind an AI client.
One field: API key, pasted once into the connect form. There is no OAuth popup and no token to refresh. Omnisend issues the key against a single store, so the connection is locked to that store and reaches its contacts, campaigns, automations, segments, products, email templates, brand settings and analytics.
It can do both, and they are separate steps. create_campaign makes a draft, update_campaign edits it, and send_campaign submits the draft for sending — email or SMS. cancel_campaign stops one and marks it canceled. Because sending is a write, you can hold it behind approval-required-for-writes, or set the connection to read-only so the agent can only report on campaigns.
There are no separate order or cart tools. trigger_event sends a customer event — custom or a standard ecommerce event — which tracks the behavior, creates or updates the matched contact, and fires the automations listening for it. That single endpoint replaces the legacy v3 orders and carts REST resources, which is the thing most people expect to find and don't.
Use create_batch. It runs many create or update operations of one resource type in a single asynchronous request, which is exactly what the batch endpoints exist for: better throughput and fewer rate limit problems. get_batch reports status, progress counts and errors, and list_batch_items shows each item's request, response and response code so you can find the rows that failed. PopMCP can also watch for Bulk import finished and Bulk import stopped.
The current 2026-03-15 API, with 76 operations across 14 modules — 27 reads and 49 writes. Forty tools load into your AI client by default and the rest stay searchable, so the tool list does not swamp the model's context. Triggers are covered too, from contact subscribes and campaign sends to a threshold on email and SMS revenue.
Both, depending on the tool. create_contact upserts on the email identifier, so importing a contact that already exists updates it instead of duplicating. update_contact needs the contact ID, while update_contact_by_email takes an email in a required query parameter and updates that one contact despite the plural-sounding name. add_contact_tags and remove_contact_tags identify every contact by contact ID, so run list_contacts first to resolve emails, phone numbers, segments or tags into IDs.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 76 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 40-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 76 here. A trigger is something PopMCP watches for you: 15 Omnisend events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Omnisend.
Launch a hosted MCP endpoint for Omnisend, keep tool access under control, and start testing real workflow prompts right away.