PlatformDocs
MCP server

update_linkedin_campaign

Changes a LinkedIn campaign at any status: the note, the daily cap, the sending accounts, the Sales Navigator audience and the InMail settings.

View as Markdown

Update a LinkedIn campaign · Changes data

Changes a LinkedIn campaign at any status: the note, the daily cap, the sending accounts, the Sales Navigator audience and the InMail settings. Only the fields you pass change; inside audience and inmail too. Changes apply to people not reached yet. Returns the updated campaign; 400 with a message when a value is not accepted. Not available with a website-scoped key.

ConnectionAccount-owner URL or OAuth (not a team member URL)

Parameters

ParameterTypeRequiredAcceptsDescription
websiteIdstringYesanyWebsite ID from list_websites.
linkedinCampaignIdstringYesanyLinkedIn campaign ID from list_linkedin_campaigns.
noteTemplatestringNomax 4000 charactersThe note sent with each connection request, at most 300 characters once rendered. Supports [[option a|option b]] variations and {{ firstName }}, {{ lastName }}, {{ company }}, {{ title }} (a fallback after a bar: {{ firstName | there }}). Empty sends the request without a note.
sendNoteIfPossiblebooleanNodefault truetrue (default) attaches the note when LinkedIn allows it; false always sends a plain request.
dailyCampaignCapintegerNomin 0 · default 0Most connection requests this campaign sends per day across all accounts; 0 (default) leaves pacing to each account's own daily limit.
assignedAccountIdsstring[]NoanyLinkedIn account ids (list_linkedin_accounts) that may send for this campaign; empty or omitted uses every connected account.
audienceobjectNoanyWhere the people come from. Omit for a campaign you fill yourself.
audience.sourcestringNodefault "manual" · manual, sales_navigatormanual (default): people are added by you or an automation. sales_navigator: every day the browser extension runs the Sales Navigator search in salesNavSearchUrl and adds the next people it finds.
audience.salesNavSearchUrlstringNomax 4000 characters · uriA Sales Navigator lead search, copied from the browser: https://www.linkedin.com/sales/search/people?… Required with source sales_navigator. Changing it starts again from the first result.
audience.dailyRefillintegerNo1–100 · default 25How many people the campaign keeps waiting each day, 1-100 (default 25). The search is run at most once every 20 hours, only when fewer than this many are waiting.
audience.aiFilterobjectNoanyOptional AI check of each day's new people before they are added.
audience.aiFilter.enabledbooleanNodefault falsetrue keeps only the people the AI judges to match prompt; false (default) adds everyone the search finds. If the AI check fails, everyone is added.
audience.aiFilter.promptstringNomax 1000 charactersWho to keep, in plain words, at most 1000 characters, e.g. "Founders or heads of marketing at B2B software companies; no agencies". Judged from each person's name, title, company, headline and summary. Required when enabled is true.
inmailobjectNoanySales Navigator InMail as the first message for the first few new people each day; everyone else gets a connection request. Needs a Sales Navigator seat on the sending LinkedIn account.
inmail.enabledbooleanNodefault falsetrue sends InMails; false (default) sends connection requests only.
inmail.subjectTemplatestringNomax 200 charactersInMail subject, at most 200 characters, same variations and {{ variables }} as noteTemplate.
inmail.bodyTemplatestringNomax 1900 charactersInMail message, at most 1900 characters, same variations and {{ variables }} as noteTemplate. Required when enabled is true.
inmail.dailyCapintegerNo0–25 · default 3Most InMails per sending account per day, 0-25 (default 3). People with an Open Profile get the InMails first: they cost no credit. Other InMails are also limited by the account's remaining InMail credits spread evenly until they renew (2 a day while the credits are not known yet). Existing 1st-degree connections never get an InMail.

Tool definition

What your assistant receives from tools/list:

{
  "name": "update_linkedin_campaign",
  "title": "Update a LinkedIn campaign",
  "annotations": {
    "title": "Update a LinkedIn campaign",
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "inputSchema": {
    "type": "object",
    "properties": {
      "websiteId": {
        "type": "string",
        "pattern": "^[0-9a-fA-F]{24}$",
        "description": "Website ID from list_websites."
      },
      "linkedinCampaignId": {
        "type": "string",
        "pattern": "^[0-9a-fA-F]{24}$",
        "description": "LinkedIn campaign ID from list_linkedin_campaigns."
      },
      "noteTemplate": {
        "type": "string",
        "maxLength": 4000,
        "description": "The note sent with each connection request, at most 300 characters once rendered. Supports [[option a|option b]] variations and {{ firstName }}, {{ lastName }}, {{ company }}, {{ title }} (a fallback after a bar: {{ firstName | there }}). Empty sends the request without a note."
      },
      "sendNoteIfPossible": {
        "type": "boolean",
        "default": true,
        "description": "true (default) attaches the note when LinkedIn allows it; false always sends a plain request."
      },
      "dailyCampaignCap": {
        "type": "integer",
        "minimum": 0,
        "default": 0,
        "description": "Most connection requests this campaign sends per day across all accounts; 0 (default) leaves pacing to each account's own daily limit."
      },
      "assignedAccountIds": {
        "type": "array",
        "items": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{24}$"
        },
        "description": "LinkedIn account ids (list_linkedin_accounts) that may send for this campaign; empty or omitted uses every connected account."
      },
      "audience": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string",
            "enum": [
              "manual",
              "sales_navigator"
            ],
            "default": "manual",
            "description": "manual (default): people are added by you or an automation. sales_navigator: every day the browser extension runs the Sales Navigator search in salesNavSearchUrl and adds the next people it finds."
          },
          "salesNavSearchUrl": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://www\\.linkedin\\.com/sales/search/people",
            "maxLength": 4000,
            "description": "A Sales Navigator lead search, copied from the browser: https://www.linkedin.com/sales/search/people?… Required with source sales_navigator. Changing it starts again from the first result."
          },
          "dailyRefill": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 25,
            "description": "How many people the campaign keeps waiting each day, 1-100 (default 25). The search is run at most once every 20 hours, only when fewer than this many are waiting."
          },
          "aiFilter": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "default": false,
                "description": "true keeps only the people the AI judges to match prompt; false (default) adds everyone the search finds. If the AI check fails, everyone is added."
              },
              "prompt": {
                "type": "string",
                "maxLength": 1000,
                "description": "Who to keep, in plain words, at most 1000 characters, e.g. \"Founders or heads of marketing at B2B software companies; no agencies\". Judged from each person's name, title, company, headline and summary. Required when enabled is true."
              }
            },
            "description": "Optional AI check of each day's new people before they are added."
          }
        },
        "description": "Where the people come from. Omit for a campaign you fill yourself."
      },
      "inmail": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "default": false,
            "description": "true sends InMails; false (default) sends connection requests only."
          },
          "subjectTemplate": {
            "type": "string",
            "maxLength": 200,
            "description": "InMail subject, at most 200 characters, same variations and {{ variables }} as noteTemplate."
          },
          "bodyTemplate": {
            "type": "string",
            "maxLength": 1900,
            "description": "InMail message, at most 1900 characters, same variations and {{ variables }} as noteTemplate. Required when enabled is true."
          },
          "dailyCap": {
            "type": "integer",
            "minimum": 0,
            "maximum": 25,
            "default": 3,
            "description": "Most InMails per sending account per day, 0-25 (default 3). People with an Open Profile get the InMails first: they cost no credit. Other InMails are also limited by the account's remaining InMail credits spread evenly until they renew (2 a day while the credits are not known yet). Existing 1st-degree connections never get an InMail."
          }
        },
        "description": "Sales Navigator InMail as the first message for the first few new people each day; everyone else gets a connection request. Needs a Sales Navigator seat on the sending LinkedIn account."
      }
    },
    "required": [
      "websiteId",
      "linkedinCampaignId"
    ]
  }
}

On this page