Composway Docs
Tool reference

Confirm pain points

Confirm the campaign background: the selected pain points, target audiences, and search-intent ids.

Tool name: confirm_pain_points

Cost: Free - not billed, and does not draw on a plan quota.

Writes data - confirmation required

This tool creates or changes data. It is not annotated readOnlyHint, so your MCP client prompts you before it runs, and the server asks for an explicit confirmation describing exactly what will change. Declining cancels the call cleanly.

Confirm the campaign background: the selected pain points, target audiences, and search-intent ids. You MUST provide at least one pain point AND at least one search-intent id - omitting the search-intent ids leaves the campaign unconfirmed. Get the pain-point candidates from get_campaign_related_questions and the search-intent-classification ids from get_campaign first.

Parameters

ParameterTypeRequiredNotes
campaignIdstring (uuid)Yes-
painPoints({ id, name })[]YesAt least one selected pain point. Candidates come from get_campaign_related_questions.
targetAudiences({ id, name })[]Yes-
searchIntentIds(string (uuid))[]YesAt least one search-intent-classification id to confirm for the campaign. Get these ids from get_campaign.
Full input JSON Schema
{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"properties": {
		"campaignId": {
			"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)$"
		},
		"painPoints": {
			"minItems": 1,
			"type": "array",
			"items": {
				"type": "object",
				"properties": {
					"id": {
						"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)$"
					},
					"name": {
						"type": "string"
					}
				},
				"required": ["name"]
			},
			"description": "At least one selected pain point. Candidates come from get_campaign_related_questions."
		},
		"targetAudiences": {
			"type": "array",
			"items": {
				"type": "object",
				"properties": {
					"id": {
						"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)$"
					},
					"name": {
						"type": "string"
					}
				},
				"required": ["name"]
			}
		},
		"searchIntentIds": {
			"minItems": 1,
			"type": "array",
			"items": {
				"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)$"
			},
			"description": "At least one search-intent-classification id to confirm for the campaign. Get these ids from get_campaign."
		}
	},
	"required": [
		"campaignId",
		"painPoints",
		"targetAudiences",
		"searchIntentIds"
	]
}

Response

Full output JSON Schema
{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"properties": {},
	"additionalProperties": false
}

On this page