Skip to main content
Glama

update_affiliate_campaign

Update an existing affiliate campaign to modify commission rates, deadlines, or conditions. Changes apply immediately to new orders.

Instructions

[WRITE] 更新聯盟行銷活動。

【用途】 修改已建立的聯盟行銷活動,例如調整佣金比例、活動期限或適用條件。

【呼叫的 Shopline API】

  • PUT /v1/affiliate_campaigns/{campaign_id}

【回傳結構】 dict 含 success: bool, resource_id: str, message: str。

【副作用】

  • 修改立即生效;佣金規則調整後,新訂單將套用新規則

  • 已產生的佣金紀錄不受影響(依各活動的歷史快照而定)

  • 不可復原(無版本歷史),但可再次呼叫此工具覆蓋

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
campaign_idYes聯盟行銷活動 ID
campaign_dataYes要更新的活動欄位(僅傳入需修改的欄位)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully covers behavioral traits: it declares the operation as a write, lists side effects (immediate effect, new orders apply new rules, existing commissions unaffected), and explicitly states irreversibility with no version history. This goes beyond basic requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, API, return structure, side effects) and is front-loaded with the '[WRITE]' tag. While slightly verbose, every section provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, parameters, return structure (dict with success, resource_id, message), and side effects. No output schema exists, so the return structure description compensates. It lacks error handling or permission details, but overall is adequate for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, and the description adds value by clarifying that 'campaign_data' should only include fields to modify ('僅傳入需修改的欄位'). This guidance helps the AI agent understand partial updates, enhancing the schema's meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates an existing affiliate campaign, specifying the verb '修改' (modify) and resource '聯盟行銷活動' (affiliate campaign). It lists adjustable fields (commission ratio, period, conditions), which differentiates it from sibling tools like create_affiliate_campaign or delete_affiliate_campaign.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a '用途' section stating when to use the tool (to modify existing campaigns) and provides the underlying API call. However, it does not explicitly state when not to use it or mention alternative tools, leaving room for ambiguity in tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/asgard-ai-platform/mcp-shopline'

If you have feedback or need assistance with the MCP directory API, please join our Discord server