Skip to main content
Glama

Update campaign

update_campaign
Destructive

Update an existing LinkedNav campaign. Use activate_campaign or pause_campaign for lifecycle changes; this tool edits campaign name, goal/settings, prompt, schedule, LinkedIn account, automation toggles, and the parallel EMAIL channel (autoEmailEnabled + emailConnectionIds/emailMode/emailTrigger/emailDelayMinutes/emailPerDay — on a MESSAGE campaign this is "email after message": after Message 1 the person's email is looked up from their name + company and the email goes out; people who already replied on LinkedIn are skipped). MESSAGE campaigns (regular DM or InMail): messageTemplate, inMailSubject (InMail), messageMode / messageAiContext, attachments, followUps (regular DM only), and the sender pool (linkedinConnectionIds — several Sales Navigator accounts for InMail, one account for regular DM). The send mode (regular vs InMail) is fixed at creation — create a new campaign to switch. Recipients are managed with add_message_targets / remove_message_targets.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goalNoCampaign goal description
nameNoCampaign name
goalLinkNoCampaign goal URL
promptIdNoPrompt ID to use, or null to clear
emailModeNo"template" = send the prompt's fixed email body; "generated" = AI writes each email.
followUpsNoMessage campaigns (REGULAR DM) only, Pro only: the reply-gated follow-up sequence (Message 2 + Message 3). Ignored for InMail; enabling it without Pro errors.
campaignIdYesCampaign ID to update
attachmentsNoMessage campaigns only: file/image/voice/video attachments sent with each message (replaces the existing set; pass [] to clear). URLs must come from LinkedNav uploads — they are fetched server-side at send time and any other host is dropped.
emailPerDayNoMax emails to send per day for this campaign (1-500).
messageModeNoMessage campaigns: switch Message 1 between "template" (send messageTemplate verbatim) and "ai" (generate at send time from the prompt's First follow-up + recipient profile / prior conversation; Pro only). Switching to "ai" needs a prompt — pass promptId in the same call if none is attached; switching to "template" needs messageTemplate (and inMailSubject for InMail).
emailTriggerNoOutreach only: when to send the initial email relative to the LinkedIn sequence. MESSAGE campaigns always email after Message 1 goes out ("email after message"), so this is ignored there ("after_message" is accepted and ignored).
scheduleSendNo
autoReplyModeNo
inMailSubjectNoInMail-mode message campaigns only: set/replace the InMail subject line (supports {{firstName}} etc.). Ignored for regular DM campaigns. Send mode itself is immutable.
connectWithNoteNo
messageTemplateNoMessage campaigns only: set/replace the fixed message body sent to each recipient (supports {{firstName}} etc.).
autoEmailEnabledNoEnable the parallel email channel (send emails alongside LinkedIn). Outreach: after the trigger (emailTrigger). Message campaigns: "email after message" — after Message 1 goes out, the person's email is looked up (managed LinkedIn account needed to identify them) and emailed. Pro only. Requires at least one email account selected (emailConnectionIds); the subject/body come from the prompt's Email tab.
autoReplyEnabledNoEnable AI auto-reply. Pro only.
messageAiContextNoMessage campaigns, AI mode only: optional guidance for Message 1 — highest priority, followed over the prompt where they conflict.
outreachLanguageNoOutreach language
withdrawSettingsNo
emailDelayMinutesNoMinutes to wait after the trigger before sending the email (0-1440).
likeBeforeConnectNoOutreach: like each lead's latest post at timeEST (HH:mm EST, before the invite time). MESSAGE campaigns: "like before message" — the send likes the person's latest post right before Message 1, from the same account (managed accounts only; timeEST is ignored). Standard or Pro.
emailConnectionIdsNoEmail mailbox account id(s) (User.emailConnections) to send from — round-robins across them. Replaces the set; pass [] to clear (which also forces autoEmail off).
welcomeMessageModeNo
autoFollowupEnabledNoEnable scheduled follow-ups. Standard or Pro. A campaign has follow-ups or the welcome message, not both: turning follow-ups on turns the welcome message off (follow-up 1 then becomes the first message after someone accepts).
linkedinConnectionIdNoLinkedIn account ID to use, or null to clear
linkedinConnectionIdsNoMessage campaigns only: the set of LinkedIn accounts to round-robin sends across (multi-sender). Takes precedence over linkedinConnectionId; the scalar is mirrored to the first id.
autoWelcomeMessageEnabledNoEnable welcome message. Standard or Pro. A campaign has either the welcome message or follow-ups, not both: turning the welcome on turns follow-ups off.
autoSwitchSalesNavContractNoInMail message campaigns only: when a sender runs out of Sales Navigator InMail credits, automatically switch that LinkedIn account to another of its Sales Navigator contracts that still has credits and re-send (live-session accounts only; default false). Once a live-session sender has no credits left, Open Profiles still get a free InMail and people not checked yet get one free try; anyone else goes to another sender with credits or is marked failed "out of InMail credits" (retry them once credits renew). Check balances with get_inmail_credits. Ignored for regular DM campaigns.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / autoFollowupEnabled / description
      Previous value: -"Enable scheduled follow-ups. Standard or Pro."New value: +"Enable scheduled follow-ups. Standard or Pro. A campaign has follow-ups or the welcome message, not both: turning follow-ups on turns the welcome message off (follow-up 1 then becomes the first message after someone accepts)."
    • changedInput schema / properties / autoWelcomeMessageEnabled / description
      Previous value: -"Enable welcome message. Standard or Pro."New value: +"Enable welcome message. Standard or Pro. A campaign has either the welcome message or follow-ups, not both: turning the welcome on turns follow-ups off."
  2. Changed4 schema fields changed
    • changedInput schema / properties / autoEmailEnabled / description
      Previous value: -"Enable the parallel email channel (send emails alongside LinkedIn). Pro only. Requires at least one email account selected (emailConnectionIds)."New value: +"Enable the parallel email channel (send emails alongside LinkedIn). Outreach: after the trigger (emailTrigger). Message campaigns: \"email after message\" — after Message 1 goes out, the person's email is looked up (managed LinkedIn account needed to identify them) and emailed. Pro only. Requires at least one email account selected (emailConnectionIds); the subject/body come from the prompt's Email tab."
    • changedInput schema / properties / emailTrigger / description
      Previous value: -"When to send the initial email relative to the LinkedIn sequence."New value: +"Outreach only: when to send the initial email relative to the LinkedIn sequence. MESSAGE campaigns always email after Message 1 goes out (\"email after message\"), so this is ignored there (\"after_message\" is accepted and ignored)."
    • changedInput schema / properties / emailTrigger / enum
      Previous value: -[
      -  "after_connect",
      -  "after_welcome",
      -  "after_follow_up"
      -]New value: +[
      +  "after_connect",
      +  "after_welcome",
      +  "after_follow_up",
      +  "after_message"
      +]
    • addedInput schema / properties / likeBeforeConnect / description
      Added value: +"Outreach: like each lead's latest post at timeEST (HH:mm EST, before the invite time). MESSAGE campaigns: \"like before message\" — the send likes the person's latest post right before Message 1, from the same account (managed accounts only; timeEST is ignored). Standard or Pro."
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

With destructiveHint=true and openWorldHint=true already declared, the description still adds substantial behavioral context beyond annotations: send mode is immutable, email channel is Pro-only and skips people who already replied on LinkedIn, attachments URLs must come from LinkedNav uploads, and enabling follow-ups without Pro errors. It does not restate the overwrite/replace semantics that live in the schema, but covers distinctive operational behavior well.

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?

Purpose and the sibling routing appear first, followed by a dense but organized breakdown by campaign type and channel. It is long, and some clauses partially duplicate schema descriptions, but every sentence contributes operational detail rather than filler.

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?

For a 30-parameter, deeply nested, no-output-schema mutation tool, the description supplies the campaign-type gating, Pro/plan requirements, channel interactions, and immutability constraints an agent needs to call it correctly. Nothing essential for correct invocation appears to be missing.

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 description coverage is already 83%, so the schema carries most parameter meaning (baseline 3). The description goes further by explaining cross-parameter mechanics such as the follow-ups-vs-welcome-message exclusivity, the MESSAGE-campaign sender pool semantics, and the email-after-message trigger flow, adding meaning the schema alone does not convey.

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?

States a specific verb (Update) plus the exact resource (an existing LinkedNav campaign) and then enumerates the editable surface: name, goal/settings, prompt, schedule, LinkedIn account, automation toggles, and the parallel EMAIL channel. It actively distinguishes itself from siblings by naming activate_campaign/pause_campaign for lifecycle and create_campaign for switching send mode.

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

Usage Guidelines5/5

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

Explicit routing is provided: use activate_campaign or pause_campaign for lifecycle changes, create a new campaign to switch between regular DM and InMail, and use add_message_targets/remove_message_targets for recipients. These when-to-use and when-not-to-use instructions leave little to inference.

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.