Propose or save a distribution push

Create a push (omit pushId) or change one (only the fields you send change). Comment and DM pushes need a keyword; paid, comment, DM, link-in-bio and other pushes must deliver a live free asset with a link or an active offer to be active. From an agent this becomes a proposal a person accepts in Knowledge.

ctapush_upsertOtherRead and write

Behavior

Read-only hint
Not declared
Destructive hint
Not declared
Idempotent hint
Not declared
Open-world hint
Not declared

Parameters

NameTypeRequirementDescription
workspaceIdstringRequiredThe workspace id or slug (from workspace_list).
pushIdstringOptionalNo additional description.
namestringOptionalNo additional description.
mechanismstringOptionalNo additional description.
keywordunionOptionalNo additional description.
freeAssetIdunionOptionalNo additional description.
offerIdunionOptionalNo additional description.
funnelStepsarrayOptionalNo additional description.
linestringOptionalNo additional description.
statusstringOptionalNo additional description.
reasonstringRequiredNo additional description.

Input JSON Schema

Generated from the registered input schema
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "minLength": 1,
      "description": "The workspace id or slug (from workspace_list)."
    },
    "pushId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "mechanism": {
      "type": "string",
      "enum": [
        "paid_ad",
        "comment_keyword",
        "dm_keyword",
        "link_in_bio",
        "follow",
        "none",
        "other"
      ]
    },
    "keyword": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ]
    },
    "freeAssetId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ]
    },
    "offerId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ]
    },
    "funnelSteps": {
      "minItems": 1,
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "awareness",
          "connection",
          "selling"
        ]
      }
    },
    "line": {
      "type": "string",
      "maxLength": 300
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "paused"
      ]
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    }
  },
  "required": [
    "workspaceId",
    "reason"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Call shape

Use an MCP client rather than sending this JSON directly. The client handles protocol negotiation, sessions, and authentication.

Protocol request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ctapush_upsert",
    "arguments": {}
  }
}