We use essential technologies to keep this site running. With your permission, we also use analytics, advertising, and functional tools to understand and improve it.Read our Privacy Policy

    Back to Articles
    Integrations•
    Sep 28, 2026
    •
    6 min read

    Add Custom Campaign Variables with the OutFlo MCP Server

    Pass your own lead fields through MCP, use them in a campaign template, and choose what happens when a value is missing.

    By Tushar Singla

    OutFlo campaigns can use custom variables; they are not limited to standard LinkedIn fields such as first name, company, or job title. Through the OutFlo MCP server, add your own fields to each lead and reference them directly in campaign copy.

    For example, a lead sent with an industry field can receive a message containing {industry}. A lead sent with recentTrigger can receive a message containing {recentTrigger}.

    The Rule: Put Custom Fields Directly on the Lead

    Use outflo_add_lead_to_campaign and place each custom value beside the normal lead fields. Keys must not contain spaces.

    add-lead-with-custom-fields.json
    {
      "campaignId": "CAMPAIGN_ID",
      "lead": {
        "linkedinUrl": "https://www.linkedin.com/in/taylor-example/",
        "firstName": "Taylor",
        "company": "Acme",
        "industry": "SaaS",
        "recentTrigger": "Series B announcement",
        "accountTier": "enterprise"
      }
    }

    In this example, industry, recentTrigger, and accountTier are custom variables. OutFlo keeps those values with the lead, adds them to the campaign’s API-variable mapping, and makes them available to message templates.

    Do not wrap fields in a customVariables object. The correct shape is lead.industry, not lead.customVariables.industry.

    Use the Variable in Campaign Copy

    Create the campaign with outflo_create_campaign. Put the variable name in single braces in the relevant message field:

    campaign-with-custom-variable.json
    {
      "name": "SaaS trigger outreach",
      "senderUrls": ["https://www.linkedin.com/in/your-sender/"],
      "sequence": {
        "sequenceType": "classic",
        "sequenceSteps": {
          "0": {
            "actionType": "SEND_MESSAGE",
            "messageText": "Hi {linkedin_firstName}, I saw {recentTrigger}. We help {industry} teams improve outbound efficiency."
          }
        }
      },
      "variableResolution": {
        "recentTrigger": {
          "fixType": "fallbackValue",
          "fallbackValue": "your team’s recent work"
        },
        "industry": {
          "fixType": "fallbackValue",
          "fallbackValue": "growing teams"
        }
      }
    }

    Use the exact key you supplied on the lead. For example:

    Lead field
    industry
    Template variable
    {industry}
    Lead field
    recentTrigger
    Template variable
    {recentTrigger}
    Lead field
    accountTier
    Template variable
    {accountTier}

    Standard LinkedIn and sender variables remain available too, such as {linkedin_firstName}, {linkedin_company}, and {sender_firstName}.

    Decide What to Do When Data Is Missing

    Each variable used in a sequence can have a missing-data rule in variableResolution:

    Option
    skipLead
    Result
    Do not send this lead when the value is unavailable.
    Option
    sendBlank
    Result
    Send the message with an empty value in place of the variable.
    Option
    fallbackValue
    Result
    Use a specified replacement string.

    For a custom field that is essential to the message, choose skipLead. When the message still makes sense without the field, use fallbackValue or sendBlank. If you do not specify a rule for a referenced variable, OutFlo defaults to skipping leads that do not have that value.

    A Reliable MCP Workflow

    1. 1.Choose no-space field names, such as industry or recentTrigger.
    2. 2.Create or update the campaign sequence with placeholders such as {industry}.
    3. 3.Set variableResolution for any value that may be missing.
    4. 4.Add leads with outflo_add_lead_to_campaign, including the custom fields directly on lead.
    5. 5.Verify one lead’s values before scaling the workflow.

    The custom fields are lead-specific. That means the same campaign can render a different {recentTrigger}, {industry}, or other custom value for every lead you add through MCP.

    FAQ

    Frequently Asked Questions

    Can I use a custom field that is not a built-in LinkedIn variable?

    Yes. OutFlo MCP accepts arbitrary top-level lead fields whose keys contain no spaces. A field such as industry is available in campaign copy as {industry}.

    Should I put custom values inside a customVariables object?

    No. Pass each value directly on the lead. For example, use industry: "SaaS" rather than customVariables: { industry: "SaaS" }.

    What happens when a lead does not have a custom variable?

    Use variableResolution when creating the campaign to skip the lead, send a blank value, or supply a fallback value. If no resolution is set for a referenced variable, OutFlo defaults to skipping leads that lack it.

    Share this guide:
    Tushar Singla

    Written by Tushar Singla

    Tushar is the founder of OutFlo, focused on building safe, programmable, and affordable LinkedIn outreach systems for modern GTM teams.

    Ready to transform your LinkedIn outreach?

    Join the growing community of sales professionals and marketers who are revolutionizing their LinkedIn lead generation with OutFlo.