Omnisend · Arazzo Workflow

Omnisend Create and Verify Contact

Version 1.0.0

Create or update a contact, then read it back by id to confirm the write.

1 workflow 1 source API 1 provider
View Spec View on GitHub Email MarketingMarketing AutomationE-CommerceSMS MarketingCustomer EngagementSegmentationCampaignsFormsPopupsWeb PushAutomation WorkflowsAnalyticsMCPAgent ReadyTransactional MessagingArazzoWorkflows

Provider

omnisend

Workflows

create-and-verify-contact
Create or update a contact and read it back to confirm persistence.
Writes a contact with the create-or-update endpoint and then fetches the same contact by its returned id so the caller gets the stored values.
2 steps inputs: apiKey, email, firstName, lastName, status outputs: contactId, email, status
1
createContact
{$sourceDescriptions.contactsApi.url}#/paths/~1contacts/post
Create the contact or update it in place using the email as the natural key, returning the Omnisend contact id.
2
getContact
{$sourceDescriptions.contactsApi.url}#/paths/~1contacts~1{id}/get
Read the contact back by its id to confirm the write and return the persisted profile.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Omnisend Create and Verify Contact
  summary: Create or update a contact, then read it back by id to confirm the write.
  description: >-
    Onboards a contact into Omnisend and immediately verifies the result. The
    workflow calls the create-or-update endpoint with the supplied profile,
    captures the returned contact id, and then reads the contact back by id so
    callers receive the persisted, canonical representation. Every step spells
    out its request inline, including the X-API-KEY header, so the flow can be
    read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: contactsApi
  url: ../openapi/omnisend-contacts-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-and-verify-contact
  summary: Create or update a contact and read it back to confirm persistence.
  description: >-
    Writes a contact with the create-or-update endpoint and then fetches the
    same contact by its returned id so the caller gets the stored values.
  inputs:
    type: object
    required:
    - apiKey
    - email
    properties:
      apiKey:
        type: string
        description: The Omnisend API key sent in the X-API-KEY header.
      email:
        type: string
        description: The contact email used as the natural key.
      firstName:
        type: string
        description: The contact first name.
      lastName:
        type: string
        description: The contact last name.
      status:
        type: string
        description: Subscription status (subscribed, unsubscribed, nonSubscribed).
  steps:
  - stepId: createContact
    description: >-
      Create the contact or update it in place using the email as the natural
      key, returning the Omnisend contact id.
    operationPath: '{$sourceDescriptions.contactsApi.url}#/paths/~1contacts/post'
    parameters:
    - name: X-API-KEY
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        email: $inputs.email
        firstName: $inputs.firstName
        lastName: $inputs.lastName
        status: $inputs.status
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      contactId: $response.body#/contactID
  - stepId: getContact
    description: >-
      Read the contact back by its id to confirm the write and return the
      persisted profile.
    operationPath: '{$sourceDescriptions.contactsApi.url}#/paths/~1contacts~1{id}/get'
    parameters:
    - name: X-API-KEY
      in: header
      value: $inputs.apiKey
    - name: id
      in: path
      value: $steps.createContact.outputs.contactId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      contactId: $response.body#/contactID
      email: $response.body#/email
      status: $response.body#/status
  outputs:
    contactId: $steps.getContact.outputs.contactId
    email: $steps.getContact.outputs.email
    status: $steps.getContact.outputs.status
x-provenance:
  reviewed: '2026-08-13'
  status: stale
  note: >-
    Authored against the pre-2026-03-15 Omnisend contract (base https://api.omnisend.com/v5,
    X-API-KEY header) using a documentation-derived scaffold spec, which the 2026-08-13 enrichment
    pass superseded with 15 OpenAPI documents harvested from Omnisend's own docs host. The current
    contract uses base https://api.omnisend.com/api, a required Omnisend-Version: 2026-03-15 header
    and Authorization: Omnisend-API-Key {key}. This workflow needs regenerating against
    openapi/omnisend-*-openapi.yml before it will execute.

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/omnisend-create-and-verify-contact-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.