Overview
Campaign tools manage your team’s program campaigns through natural language. They mirror REST/v1/program/campaigns, including retainer create/update, application accept with conditions, and period approve/reject. All tools support response_format (markdown or json). responseFormat is accepted as an alias. List tools use limit and offset, not page.
Campaign create/update/list/get use
read:program / write:program. Application, submission, and retainer period actions use read:affiliates / write:affiliates. See permissions below.Available Tools
affonso_create_campaign
Create a draft program campaign. Same asPOST /v1/program/campaigns.
Retainer requires reward_amount, retainer_interval, and either retainer_day_of_month (monthly) or retainer_weekday (weekly). For retainer, omitted application_required is set to true; sending false returns VALIDATION_ERROR (“Retainer campaigns require an application”). Ignores max_budget.
Parameters
string
required
Campaign title (1-255 characters)
string
required
flat_rate, custom, range, or retainerstring
required
ISO start datetime
string | null
Campaign description (max 10,000 characters)
number | null
Flat rate / retainer amount (min 0.01). Null for custom and range.
number | null
Range minimum. Required when reward_type is range.
number | null
Range maximum. Must be >= reward_amount_min.
number | null
Owner-only spend cap. Null or omit for no cap. Ignored on retainer.
string | null
Required for retainer:
monthly or weeklyinteger | string | null
Monthly day: 1-28 or
laststring | null
Weekly weekday: monday through sunday
string | null
ISO end datetime
boolean
Whether affiliates must apply first. For retainer, omitted
application_required is set to true; sending false returns VALIDATION_ERROR (“Retainer campaigns require an application”).string | null
Application question text
integer | null
Per-affiliate submission cap (>= 1), or null
string
default:"markdown"
Response format:
markdown or json. Also accepted as responseFormat.Example Prompts
affonso_update_campaign
Update application settings, reward type, retainer cadence, status, and/or owner max_budget. Same asPATCH /v1/program/campaigns/{id}. Does not create earnings.
Switching to or from retainer is blocked when applications exist. Only moving a retainer campaign from ENDED or ARCHIVED to ACTIVE sets retainer_resumed_at. Retainer ignores max_budget. For retainer, omitted application_required is set to true; sending false returns VALIDATION_ERROR (“Retainer campaigns require an application”).
Parameters
string
required
Encoded campaign id
boolean
Whether affiliates must apply before submitting proof
string | null
Application question text
string
flat_rate, custom, range, or retainernumber | null
Fixed reward amount
number | null
Range minimum
number | null
Range maximum
number | null
Set, change, or clear (null) the owner-only spend cap. Ignored on retainer.
string | null
monthly or weeklyinteger | string | null
1-28 or
laststring | null
monday through sunday
string
DRAFT, SCHEDULED, ACTIVE, ENDED, or ARCHIVEDstring
default:"markdown"
Response format:
markdown or json. Also accepted as responseFormat.Example Prompts
affonso_accept_campaign_application
Accept a pending campaign application. Assignment only: no earnings and no budget reserve. Same asPOST /v1/program/campaigns/{id}/applications/{applicationId}/accept.
Retainer requires has_condition (true or false). When true, condition is required (max 2000 characters).
Parameters
string
required
Encoded campaign id
string
required
Encoded application id
boolean
Retainer only. Required true or false. Choose whether this retainer has a condition.
string | null
Retainer only. Required when has_condition is true. Max 2000 characters.
string
default:"markdown"
Response format:
markdown or json. Also accepted as responseFormat.Example Prompts
affonso_update_retainer_condition
Change the retainer condition on an accepted application. Requireshas_condition. Same as PATCH /v1/program/campaigns/{id}/applications/{applicationId}/condition.
Parameters
string
required
Encoded campaign id
string
required
Encoded application id
boolean
required
True to keep or set a condition. False clears it.
string | null
Condition text. Required when has_condition is true. Max 2000 characters.
string
default:"markdown"
Response format:
markdown or json. Also accepted as responseFormat.Example Prompts
affonso_end_campaign_retainer
End a partner retainer. No new periods are created for that application. Same asPOST /v1/program/campaigns/{id}/applications/{applicationId}/end-retainer.
Parameters
string
required
Encoded campaign id
string
required
Encoded application id
string
default:"markdown"
Response format:
markdown or json. Also accepted as responseFormat.Example Prompts
affonso_resume_campaign_retainer
Resume an ended partner retainer. Same asPOST /v1/program/campaigns/{id}/applications/{applicationId}/resume-retainer.
Parameters
string
required
Encoded campaign id
string
required
Encoded application id
string
default:"markdown"
Response format:
markdown or json. Also accepted as responseFormat.Example Prompts
affonso_list_campaign_retainer_periods
List open retainer periods waiting for manual approval. Same asGET /v1/program/campaigns/{id}/retainer-periods.
Parameters
string
required
Encoded campaign id
number
default:"20"
Number of results to return
number
default:"0"
Number of results to skip
string
default:"markdown"
Response format:
markdown or json. Also accepted as responseFormat.Example Prompts
Response
Period objects include:id, campaign_id, application_id, affiliate_id, period_start, amount, earning_id, earning_status, condition, created_at.
affonso_approve_campaign_retainer_period
Approve a retainer period earning that isPENDING_MANUAL_APPROVAL. Writes READY_FOR_PAYMENT. Same as POST /v1/program/campaigns/{id}/retainer-periods/{periodId}/approve.
Parameters
string
required
Encoded campaign id
string
required
Encoded retainer period id
string
default:"markdown"
Response format:
markdown or json. Also accepted as responseFormat.Example Prompts
affonso_reject_campaign_retainer_period
Reject a retainer period earning that isPENDING_MANUAL_APPROVAL. Writes DECLINED. Same as POST /v1/program/campaigns/{id}/retainer-periods/{periodId}/reject.
Parameters
string
required
Encoded campaign id
string
required
Encoded retainer period id
string
default:"markdown"
Response format:
markdown or json. Also accepted as responseFormat.Example Prompts
Other campaign tools
These tools are part of the same campaigns surface and appear in the overview table:affonso_list_campaigns/affonso_get_campaign: read team campaigns including retainer fields and ownermax_budgetaffonso_apply_to_campaign: body needscampaign_id,affiliate_id, andanswersaffonso_list_campaign_applications: filter by status and affiliate; useslimit/offsetaffonso_reject_campaign_application: pending applications only; affiliate may apply againaffonso_approve_campaign_submission: custom/range needamount; optionalreject_open_applicationson budget close; non-retainer approvals create oneCAMPAIGN_REWARDearning inREADY_FOR_PAYMENTand queue the partner approval email (respecting email settings). Repeated approvals create no new earning or email. Retainer proof creates no earning; periods are approved separately
