Skip to content
AdCrunch
Esc
↑↓navigate↵open⌘Jpreview
On this page

campaign_plan_comment_create

Post a Comment on a Campaign Plan, or a reply in one of its threads.

Ask the agent to post an update on a Campaign Plan. A Comment is a post on the AdCrunch Campaign Plan. It is not a comment on an ad or a campaign at Meta, Google or TikTok.

“Post on the spring sale plan that the TikTok test ends on 15 April.”

The agent calls campaign_plan_comment_create. The Comment shows in the Updates tab of the Campaign Plan in the AdCrunch console. It names the agent that posted it, for example Claude, and you as its author.

To answer a Comment, the agent sends the id of that Comment as parent_id. A thread has one level, so a reply cannot have replies.

A Comment does not change the Campaign Plan. An approved plan stays approved. No tool edits or deletes a Comment: you do that in the console.

Plan a campaign walks the whole job.

Reference

Post a Comment on a Campaign Plan: an update, a question or a decision. A Comment is a post on the AdCrunch Campaign Plan, not a comment on an ad or a campaign at Meta, Google or TikTok. The body is markdown, 1 to 10,000 characters. Send parent_id, the id of a top-level Comment, to reply in its thread; a reply cannot have replies. The Comment names your client as the agent that posted it, and the person who connected you as its author. A Comment does not change the plan: its revision stays, and an approved plan stays approved. No tool edits or deletes a Comment: the person does that in the AdCrunch console. A Campaign Plan is AdCrunch’s own planning document — it is not a campaign on Meta or Google. For those, use list_campaigns and get_campaign.

Input

Argument Type Required Description
body string, 1 to 10000 characters yes The markdown text of the Comment, 1 to 10,000 characters.
campaign_plan_name string yes The Campaign Plan slug — its stable per-organization handle.
parent_id string no The id of a top-level Comment, cmt_…, from campaign_plan_comment_list. Omit it to start a new thread.

Output

A successful call returns this object in structuredContent.

Field Type Always present Description
comment object yes
comment.body string or null yes The markdown text. null for a deleted Comment that stays as the head of its thread.
comment.clientId string or null yes The client of the agent that posted the Comment, or null when a person posted it in the console. adgent is the AdCrunch Adgent.
comment.createdAt number yes Milliseconds since the Unix epoch, UTC.
comment.createdBy string yes The author of the Comment, usr_…: the person who posted it, or for whom an agent posted it.
comment.deleted boolean yes true for a deleted Comment that a live reply still answers. Its body is null.
comment.editedAt number or null yes When the author last edited the text, or null.
comment.id string yes The id of the Comment, cmt_…. Send it as parent_id to reply in its thread.
comment.parentId string or null yes The top-level Comment that this reply answers, or null for a top-level Comment.

Failure codes

A failed call has isError set, and structuredContent.error holds one of these codes. Errors describes the shape of a failed call.

  • not_found
  • parent_not_found
  • parent_is_reply
  • organization_unentitled
  • forbidden
  • invalid_request
  • internal_error

Scope

The token must hold campaign_plan:write. Auth & scopes lists each scope.

Annotations

A client reads these hints. A hint that the tool does not declare has the default value of the MCP specification.

  • Writes. The tool can change data.
  • Not destructive. The tool makes only additive changes.
  • Not idempotent. A second call with the same arguments can change more.
  • Closed world. The tool reads and writes the data of AdCrunch only.

Example

The arguments:

{
  "body": "The TikTok test ends on 15 April. I will post the CPA then.",
  "campaign_plan_name": "spring-sale",
  "parent_id": "cmt_8b3f10"
}

The result, in structuredContent:

{
  "comment": {
    "body": "The TikTok test ends on 15 April. I will post the CPA then.",
    "clientId": "https://claude.ai/oauth/mcp-oauth-client-metadata",
    "createdAt": 1768435260000,
    "createdBy": "usr_5d2b71",
    "deleted": false,
    "editedAt": null,
    "id": "cmt_c41a92",
    "parentId": "cmt_8b3f10"
  }
}

Was this page helpful?