Approve and queue a campaign article
Make an authorized change through your connected assistant.
outwrite_approve_campaign_articleoutwrite_approve_campaign_article
Approve the exact source-checked campaign article for its saved destination. Requires an enabled campaign, matching revision, schedule, campaign version and destination fingerprint from get_article_publication. Source-review failures cannot be bypassed. Timing now reschedules this article explicitly. Publication remains bound to this connection and stops if permission, campaign or article changes before sending. Read publication history to confirm delivery. Requires explicit user intent, confirm:true, a UUID idempotencyKey and maximumCredits for this immediate action. Recurring settings require recurringConsent:true after the user approves their ongoing costs. Retry identical arguments with the same key; inspect an uncertain receipt before any new action.
Access and behavior
| Property | Value |
|---|---|
| Permission | pro:publish |
| Effect | Can change your workspace |
Read the current workspace state before making a change. Respect the returned proposal, revision and operation state rather than assuming the request has finished.
Parameters
| Parameter | Required | Type | Details |
|---|---|---|---|
workspaceId | Optional | string | Format: uuid. |
item | Required | string | Format: uuid. |
revision | Required | integer | Maximum 9007199254740991. |
expectedScheduledAt | Required | string | Format: date-time. |
campaignVersion | Required | integer | Maximum 9007199254740991. |
destinationFingerprint | Required | string | At least 1 characters. Up to 128 characters. |
timing | Optional | string | One of: scheduled, now. Default: "scheduled". |
idempotencyKey | Required | string | Format: uuid. |
confirm | Required | boolean | Value: true. |
maximumCredits | Required | number | Minimum 0. Maximum 100000. |
recurringConsent | Optional | boolean | Default: false. |
Complete input schema
The schema is generated from the registered tool contract. Account permissions, revision checks and cross-field validation also apply on the server.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workspaceId": {
"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)$"
},
"item": {
"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)$"
},
"revision": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"expectedScheduledAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"campaignVersion": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"destinationFingerprint": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"timing": {
"default": "scheduled",
"type": "string",
"enum": [
"scheduled",
"now"
]
},
"idempotencyKey": {
"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)$"
},
"confirm": {
"type": "boolean",
"const": true
},
"maximumCredits": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"recurringConsent": {
"default": false,
"type": "boolean"
}
},
"required": [
"item",
"revision",
"expectedScheduledAt",
"campaignVersion",
"destinationFingerprint",
"idempotencyKey",
"confirm",
"maximumCredits"
],
"additionalProperties": false
}
Working safely
For an identical retry, reuse its idempotency key. If the saved state changed, read it again and prepare a new request. An operation that is queued or running is not complete.