Skip to content

save_target

Save the target

Act · mcp:actIdempotent

Saves the ideal customer profile (ICP): the segment, the company profile, the champion who answers, the trigger that makes them answer now, and who to exclude.

Description the model readsSent as is in tools/list.
Save the ideal customer profile (ICP): the segment, the company profile, the champion who answers, the trigger that makes them answer now, and who to exclude. Then save its lead filters with save_target_filters. Rewriting a target the user already confirmed cancels that confirmation: they confirm again after seeing its leads.

The user says

My target is independent dental clinics in France, the owner is the one who decides.

tools/call · Arguments the assistant sends
{
"name": "save_target",
"arguments": {
"segment": "Independent dental clinics with 2 to 10 dentists in France",
"companyProfile": "Private practices, 2 to 50 employees, already on a practice-management software",
"champion": "The practice owner, who also runs the front desk",
"trigger": "Hiring a receptionist, or opening a second practice",
"disqualifiers": "Hospital groups and university clinics"
}
}
segmentstringrequired3–400 chars

The segment, narrow enough to be sourceable.

companyProfilestringrequired3–600 chars

Size, stage, geography, stack.

championstringrequired3–400 chars

Title and responsibility of the champion.

triggerstringrequired3–400 chars

Why now.

disqualifiersstringoptional≤ 400 chars

Who to exclude.

Input schema
{
"type": "object",
"properties": {
"segment": {
"type": "string",
"minLength": 3,
"maxLength": 400,
"description": "The segment, narrow enough to be sourceable."
},
"companyProfile": {
"type": "string",
"minLength": 3,
"maxLength": 600,
"description": "Size, stage, geography, stack."
},
"champion": {
"type": "string",
"minLength": 3,
"maxLength": 400,
"description": "Title and responsibility of the champion."
},
"trigger": {
"type": "string",
"minLength": 3,
"maxLength": 400,
"description": "Why now."
},
"disqualifiers": {
"description": "Who to exclude.",
"type": "string",
"maxLength": 400
}
},
"required": ["segment", "companyProfile", "champion", "trigger"]
}

Result kindtarget

kind"target"
targetobject
  • segment string
  • companyProfile string
  • champion string
  • trigger string
  • disqualifiers string
  • filters object[] — The lead filters saved for this target.
confirmedboolean

True once the user said yes to the leads of THIS target.

notRecordedstring[]

Filter values refused and left out, in words.

filtersPredateTargetboolean

True when the target was just rewritten over lead filters saved before it.

stepobject

The journey step, as the VibeSell app numbers it, after this change.

  • index integer
  • total integer
  • label string
appUrlstring
Output schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "target"
},
"target": {
"type": "object",
"properties": {
"segment": {
"type": "string"
},
"companyProfile": {
"type": "string"
},
"champion": {
"type": "string"
},
"trigger": {
"type": "string"
},
"disqualifiers": {
"type": "string"
},
"filters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "What the filter is about, e.g. 'Company based in'."
},
"values": {
"type": "array",
"items": {
"type": "string"
},
"description": "The values, in words."
}
},
"required": ["label", "values"],
"additionalProperties": false
},
"description": "The lead filters saved for this target."
}
},
"required": [
"segment",
"companyProfile",
"champion",
"trigger",
"disqualifiers",
"filters"
],
"additionalProperties": false
},
"confirmed": {
"type": "boolean",
"description": "True once the user said yes to the leads of THIS target."
},
"notRecorded": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter values refused and left out, in words."
},
"filtersPredateTarget": {
"type": "boolean",
"description": "True when the target was just rewritten over lead filters saved before it."
},
"step": {
"type": "object",
"properties": {
"index": {
"type": "integer"
},
"total": {
"type": "integer"
},
"label": {
"type": "string"
}
},
"required": ["index", "total", "label"],
"additionalProperties": false,
"description": "The journey step, as the VibeSell app numbers it, after this change."
},
"appUrl": {
"type": "string"
}
},
"required": [
"kind",
"target",
"confirmed",
"notRecorded",
"filtersPredateTarget",
"step",
"appUrl"
],
"additionalProperties": false
}
  • Save the target's lead filters next, with save_target_filters.
  • Rewriting a target the user already confirmed cancels that confirmation: they confirm again after seeing its leads.