Skip to main content
Glama

Add signal leads to a campaign

add_signal_leads_to_campaign
DestructiveIdempotent

Adds up to 100 signal leads (by lead id, from search_signal_leads) to one of your campaigns (one that opens with a connection note, or a Nurture campaign), exactly as the Signals tab's "Add to campaign" does, with the same checks and the same skips, reported per lead: someone already in a campaign, on your do-not-contact list, already connected (only a Nurture campaign takes them), not connected (a Nurture campaign takes only connections), or with no name. An AI-written campaign's first signal leads switch it to review, so their drafts wait for your approval in ZenMode. Spends no credits. Nothing happens on LinkedIn at the moment you call this. ZenMode's campaign engine works through each campaign later, inside your daily and weekly limits, business hours and pacing. If the account is restricted, paused for the week, cooling down or switched off, the call is refused with the reason and when it lifts, and nothing changes. If the account has only used today's allowance, the change is accepted and the response says it will be worked through once the limit resets. Calls that only stop outreach (remove, pause, exclude, not interested) are never refused. An idempotency_key makes a retried call a no-op.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "campaign_id": "<campaign_id>",
      "lead_ids": "<lead_ids>"
    },
    "name": "add_signal_leads_to_campaign"
  }
}

Input Schema

NameRequiredDescriptionDefault
lead_idsYes
campaign_idYesThe campaign id, from list_campaigns. Confirm it with the person first.
idempotency_keyNoOptional. A unique string you make up for this exact change (8 to 128 letters, digits, - _ . :). If the call is repeated with the same key and the same arguments within 24 hours, nothing happens twice and the first result is returned again. Use a fresh key for every new change.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Added

TDQS

A4.5/5.0
Behavior5/5

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

Goes far beyond the annotations: enumerates per-lead skip reasons, notes an AI-written campaign flips to review and drafts wait for approval, states no credits are spent, clarifies nothing happens on LinkedIn at call time, describes engine pacing and account-state refusals with reasons, and explains idempotency no-op behavior.

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

Conciseness3/5

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

Front-loaded with the core action, but the paragraph is long and dense, and the sentence about calls that only stop outreach (remove, pause, exclude, not interested) is about other tools and only tangentially relevant to invoking this one.

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

Completeness5/5

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

No output schema exists, yet the description explains the per-lead reporting shape, the refusal/acceptance distinction, and the deferred-work semantics, which is everything an agent needs to call and interpret this tool correctly.

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?

Schema coverage is 67% and already describes all three params, but the description adds the 100-item cap as a headline fact, the provenance of lead ids, and the allowed campaign types, giving meaningful context beyond the field descriptions.

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?

Specific verb+resource with explicit scope: adds up to 100 signal leads by lead id to a campaign, and it names the source tool (search_signal_leads) and distinguishes the operation from generic lead-adding by pointing at signal lead ids and campaign types that accept them.

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

Usage Guidelines4/5

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

Clear context for when this applies (connection-note or Nurture campaigns, lead ids from search_signal_leads) and rich detail on skip/refusal conditions. It does not explicitly contrast with the sibling add_leads_to_campaign, leaving the agent to infer that non-signal leads belong there.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.