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.
Behavior
- Read-only hint
- Not declared
- Destructive hint
- Not declared
- Idempotent hint
- Not declared
- Open-world hint
- Not declared
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
workspaceId | string | Required | The workspace id or slug (from workspace_list). |
pushId | string | Optional | No additional description. |
name | string | Optional | No additional description. |
mechanism | string | Optional | No additional description. |
keyword | union | Optional | No additional description. |
freeAssetId | union | Optional | No additional description. |
offerId | union | Optional | No additional description. |
funnelSteps | array | Optional | No additional description. |
line | string | Optional | No additional description. |
status | string | Optional | No additional description. |
reason | string | Required | No 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": {}
}
}