Update campaign
update_campaignUpdate 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
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | Campaign goal description | |
| name | No | Campaign name | |
| goalLink | No | Campaign goal URL | |
| promptId | No | Prompt ID to use, or null to clear | |
| emailMode | No | "template" = send the prompt's fixed email body; "generated" = AI writes each email. | |
| followUps | No | Message campaigns (REGULAR DM) only, Pro only: the reply-gated follow-up sequence (Message 2 + Message 3). Ignored for InMail; enabling it without Pro errors. | |
| campaignId | Yes | Campaign ID to update | |
| attachments | No | Message 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. | |
| emailPerDay | No | Max emails to send per day for this campaign (1-500). | |
| messageMode | No | Message 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). | |
| emailTrigger | No | 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). | |
| scheduleSend | No | ||
| autoReplyMode | No | ||
| inMailSubject | No | InMail-mode message campaigns only: set/replace the InMail subject line (supports {{firstName}} etc.). Ignored for regular DM campaigns. Send mode itself is immutable. | |
| connectWithNote | No | ||
| messageTemplate | No | Message campaigns only: set/replace the fixed message body sent to each recipient (supports {{firstName}} etc.). | |
| autoEmailEnabled | No | 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. | |
| autoReplyEnabled | No | Enable AI auto-reply. Pro only. | |
| messageAiContext | No | Message campaigns, AI mode only: optional guidance for Message 1 — highest priority, followed over the prompt where they conflict. | |
| outreachLanguage | No | Outreach language | |
| withdrawSettings | No | ||
| emailDelayMinutes | No | Minutes to wait after the trigger before sending the email (0-1440). | |
| likeBeforeConnect | No | 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. | |
| emailConnectionIds | No | Email mailbox account id(s) (User.emailConnections) to send from — round-robins across them. Replaces the set; pass [] to clear (which also forces autoEmail off). | |
| welcomeMessageMode | No | ||
| autoFollowupEnabled | No | 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). | |
| linkedinConnectionId | No | LinkedIn account ID to use, or null to clear | |
| linkedinConnectionIds | No | Message 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. | |
| autoWelcomeMessageEnabled | No | 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. | |
| autoSwitchSalesNavContract | No | InMail 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. |