Propose or save a target audience

Create a target audience (omit audienceId) or change one (only the fields you send change). Quote their own words in language where you can. From an agent this becomes a proposal a person accepts.

audience_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).
audienceIdstringOptionalNo additional description.
namestringOptionalNo additional description.
whostringOptionalNo additional description.
situationstringOptionalNo additional description.
painsarrayOptionalWhat hurts.
desiresarrayOptionalWhat they want.
objectionsarrayOptionalWhy they hesitate.
languagearrayOptionalPhrases they use, verbatim.
whereTheyArearrayOptionalPlatforms, communities, events.
alreadyTriedarrayOptionalWhat they tried before.
statusstringOptionalNo additional description.
reasonstringRequiredWhy this change helps, in one or two sentences. Shown to the person who accepts it.

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)."
    },
    "audienceId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "who": {
      "type": "string",
      "maxLength": 600
    },
    "situation": {
      "type": "string",
      "maxLength": 600
    },
    "pains": {
      "description": "What hurts.",
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 300
      }
    },
    "desires": {
      "description": "What they want.",
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 300
      }
    },
    "objections": {
      "description": "Why they hesitate.",
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 300
      }
    },
    "language": {
      "description": "Phrases they use, verbatim.",
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 300
      }
    },
    "whereTheyAre": {
      "description": "Platforms, communities, events.",
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 160
      }
    },
    "alreadyTried": {
      "description": "What they tried before.",
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 300
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "paused"
      ]
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000,
      "description": "Why this change helps, in one or two sentences. Shown to the person who accepts it."
    }
  },
  "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": "audience_upsert",
    "arguments": {}
  }
}