Skip to content

size_sending_capacity

Size the sending capacity

Act · mcp:actIdempotent

Computes and saves the sending fleet the campaign needs — mailboxes, domains, reserve — from the peak emails per day that estimate_campaign_plan returned, with the same contacts, horizon and calendar.

Description the model readsSent as is in tools/list.
Compute and save the sending fleet a campaign needs — mailboxes, domains, reserve — from the peak emails per day estimate_campaign_plan returned, passing the same contacts, horizon and calendar. Needs a confirmed target. Never derive the volume from a meetings target with a guessed reply rate. Resizing cancels a previous yes to the sizing.

The user says

OK, size the sending for that.

tools/call · Arguments the assistant sends
{
"name": "size_sending_capacity",
"arguments": {
"targetEmailsPerDay": 150,
"campaign": {
"contacts": 1500,
"horizonDays": 30,
"calendar": "weekdays"
}
}
}
campaignobjectoptional

Pass the exact contacts/horizon/calendar from estimate_campaign_plan to preserve quota and pricing assumptions. targetEmailsPerDay must match its peak.

  • contacts integerrequired1–1000000
  • horizonDays integerrequired8–366
  • calendar "every_day" | "weekdays"required
targetEmailsPerDayintegerrequired1–100000

The daily sending volume supplied by the founder or the peak returned by estimate_campaign_plan. Never derive it from a meetings target using an assumed conversion, reply, open or booking rate.

emailsPerMailboxPerDayintegeroptional1–50
mailboxesPerDomainintegeroptional1–10
reservePercentintegeroptional0–100
rampWeeksintegeroptional1–12
Input schema
{
"type": "object",
"properties": {
"campaign": {
"description": "Pass the exact contacts/horizon/calendar from estimate_campaign_plan to preserve quota and pricing assumptions. targetEmailsPerDay must match its peak.",
"type": "object",
"properties": {
"contacts": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"horizonDays": {
"type": "integer",
"minimum": 8,
"maximum": 366
},
"calendar": {
"type": "string",
"enum": ["every_day", "weekdays"]
}
},
"required": ["contacts", "horizonDays", "calendar"]
},
"targetEmailsPerDay": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "The daily sending volume supplied by the founder or the peak returned by estimate_campaign_plan. Never derive it from a meetings target using an assumed conversion, reply, open or booking rate."
},
"emailsPerMailboxPerDay": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"mailboxesPerDomain": {
"type": "integer",
"minimum": 1,
"maximum": 10
},
"reservePercent": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"rampWeeks": {
"type": "integer",
"minimum": 1,
"maximum": 12
}
},
"required": ["targetEmailsPerDay"]
}

Result kindsizing

kind"sizing"
sizingobject
  • emailsPerDay integer
  • emailsPerMailboxPerDay integer
  • mailboxes integer
  • domains integer
  • reservePercent integer
  • confirmed boolean — True once the user said yes to THIS sizing.
  • campaign object | null — The campaign scenario this sizing was computed from.
recommendedPlanobject | null

The plan VibeSell recommends for this sizing. Null when none is.

  • code string
  • label string
  • monthlyPriceCents integer
currentPlanobject | null

The plan the workspace pays for. Null without one.

  • code string
  • label string
  • monthlyPriceCents integer
coveredByCurrentPlanboolean

True when the plan they pay for carries this sizing.

fleetInPlaceboolean

True when the domains and mailboxes already set up carry this sizing.

currencystring
subscriptionActiveboolean
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": "sizing"
},
"sizing": {
"type": "object",
"properties": {
"emailsPerDay": {
"type": "integer"
},
"emailsPerMailboxPerDay": {
"type": "integer"
},
"mailboxes": {
"type": "integer"
},
"domains": {
"type": "integer"
},
"reservePercent": {
"type": "integer"
},
"confirmed": {
"type": "boolean",
"description": "True once the user said yes to THIS sizing."
},
"campaign": {
"anyOf": [
{
"type": "object",
"properties": {
"contacts": {
"type": "integer"
},
"horizonDays": {
"type": "integer"
},
"calendar": {
"type": "string"
}
},
"required": ["contacts", "horizonDays", "calendar"],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The campaign scenario this sizing was computed from."
}
},
"required": [
"emailsPerDay",
"emailsPerMailboxPerDay",
"mailboxes",
"domains",
"reservePercent",
"confirmed",
"campaign"
],
"additionalProperties": false
},
"recommendedPlan": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"label": {
"type": "string"
},
"monthlyPriceCents": {
"type": "integer"
}
},
"required": ["code", "label", "monthlyPriceCents"],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The plan VibeSell recommends for this sizing. Null when none is."
},
"currentPlan": {
"anyOf": [
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"label": {
"type": "string"
},
"monthlyPriceCents": {
"type": "integer"
}
},
"required": ["code", "label", "monthlyPriceCents"],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The plan the workspace pays for. Null without one."
},
"coveredByCurrentPlan": {
"type": "boolean",
"description": "True when the plan they pay for carries this sizing."
},
"fleetInPlace": {
"type": "boolean",
"description": "True when the domains and mailboxes already set up carry this sizing."
},
"currency": {
"type": "string"
},
"subscriptionActive": {
"type": "boolean"
},
"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",
"sizing",
"recommendedPlan",
"currentPlan",
"coveredByCurrentPlan",
"fleetInPlace",
"currency",
"subscriptionActive",
"step",
"appUrl"
],
"additionalProperties": false
}
  • Needs a confirmed target.
  • targetEmailsPerDay is the peak estimate_campaign_plan returned (or a daily volume the user gave).
  • Resizing cancels an earlier yes to the sizing.