MISSINdevelopersLog in

MCP

Campaigns tools

MCP tools for campaigns: what each does, the key level it needs, the operation it runs and its input schema. Part of the MISSIN public API: call it with an…

An operation tool runs one API operation and takes its variables, so the operation's page says what each accepts. Two differences: the server fills in workspaceId and updatedBy, and campaignId, partnerId, formId, discountCodeId, socialNetworkId, waitlistId, incentiveId, channelId also take the record's name. A task tool chains several operations and is described here in full. Every tool's input schema, keyed by tool name: campaigns.schema.json.

Task tools

save_campaign

Access: Write · Kind: task · Toolset: core · Hints: idempotent

Create a campaign, or update the one with this name or id. Creating needs start_date — ask the merchant. Makes one write, so it is all-or-nothing. Returns { campaign, created, updated? }.

Try: “Make a spring campaign starting 1 March.”

Input schema
json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "description": "Update this campaign. Omit to update the campaign with exactly this name, or create one.",
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The campaign's name (matched case-insensitively; the default campaign is never matched)."
    },
    "start_date": {
      "description": "YYYY-MM-DD. Required to create: ask the merchant, never assume today.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "end_date": {
      "description": "YYYY-MM-DD, or null for open-ended.",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "status": {
      "description": "Campaign status, for example DRAFT or ACTIVE.",
      "type": "string"
    },
    "campaign_type": {
      "description": "Campaign type name or slug (get_campaign_type_options). Defaults to the workspace's first type.",
      "type": "string"
    },
    "allocated_budget": {
      "type": "number",
      "minimum": 0
    },
    "utm_campaign": {
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}

Operation tools

ToolOperationAccessToolsetHintsWhat it does
get_campaignCampaignPaneReadcoreread-only, idempotentGet one campaign by id (rowId) with its type, dates, budget, UTM values, partners, signals and incentives.
get_campaign_signalsCampaignSignalsReadcampaignsread-only, idempotentList a campaign's hashtag, mention and keyword signals that file captured posts into it.
list_campaignsCampaignsListReadcoreread-only, idempotentList campaigns with a name filter and cursor paging: dates, status, default flag and partner, post and discount counts.
get_campaign_type_optionsCampaignTypeOptionsReadcampaignsread-only, idempotentList campaign types; creating a campaign needs a campaign_type_id from here.
create_campaignCreateCampaignWritecampaignsCreate a campaign; body needs name, campaign_type_id and start_date. Invalid input returns userErrors.
link_campaign_discountLinkCampaignDiscountWritecampaignsLink a discount code to a campaign.
merge_campaignsMergeCampaignsWritecampaignsdestructiveMerge one campaign into another; the loser's posts, partners and spend move and it is deleted. Irreversible.
preview_campaign_mergePreviewCampaignMergeWritecampaignsPreview merging two campaigns: counts of what would move. Writes nothing.
save_campaign_signalsSaveCampaignSignalsWritecampaignsReplace a campaign's hashtag, mention and keyword signals.
update_campaign_detailsUpdateCampaignDetailsWritecampaignsUpdate a campaign's name, type, dates, budget or UTM values.
update_campaign_iconUpdateCampaignIconWritecampaignsUpdate a campaign's icon and icon colour.
update_campaign_statusUpdateCampaignStatusWritecampaignsUpdate a campaign's status.
get_workspace_signalsWorkspaceSignalsReadcampaignsread-only, idempotentList every campaign signal in the workspace.

For AI agents: a markdown index of this site is at /llms.txt, and every page is available as markdown by adding .md to its URL.