> ## Documentation Index
> Fetch the complete documentation index at: https://docs.linkedcamp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sequences

> The step objects accepted by flow_set — step types, fields, branch conditions and a worked example.

The `steps` parameter on [`flow_set`](/mcp/tools/flows#flow_set) takes an ordered array of step objects. `delay` is measured from completion of the previous step, not from launch.

<Tip>Call [`reference`](/mcp/tools/core#reference) with `topic: "sequence_steps"` or `"triggers"` before authoring a sequence. It returns the live vocabulary the server validates against.</Tip>

## Step types

| Type | Required fields | Needs |
| - | - | - |
| `CONNECT` | note (≤300 chars) or connectWithoutMessage: true | LinkedIn account |
| `MESSAGE` | message | LinkedIn account |
| `INMAILS` | message (subject recommended) | LinkedIn account |
| `VOICE` | message — the script for the voice note | LinkedIn account |
| `EMAIL` | subject + message | mailbox, Pro plan |
| `ENGAGEMENT` | — (postsToLike / commentsToAdd / skillsToEndorse, default 2/0/0) | LinkedIn account |
| `FOLLOW` | — | LinkedIn account |
| `FOLLOW_COMPANY` | followCompanyUrl | LinkedIn account |
| `EVENT` | eventUrl | LinkedIn account, Pro plan |
| `EVENT_MESSAGE` | message | LinkedIn account |
| `GROUP_MESSAGE` | message | LinkedIn account |
| `WITHDRAW` | — (delay in days since the invite, default 7) | LinkedIn account |
| `TASK` | title | — |
| `API` | — (fires the campaign webhook) | — |
| `GPT` | instructions (+ provider, model) | Pro plan, AI provider |
| `FINDER` | — (enriches the lead with an email address) | Pro plan |
| `QUALIFIER` | personaId | Pro plan, AI provider |
| `SEND_TO_CAMPAIGN` | newCampaignId | — |
| `ASSIGN_TAG` | tagId | — |
| `TRIGGER` | trigger (+ optional yes / no branches) | — |

## Step fields

| Field | Type | Applies to | Description |
| - | - | - | - |
| `type` | enum | all | Which step this is. Required. |
| `delay` | integer (0–365) | all | Wait after the previous step completes. Default 1, or the trigger default for TRIGGER. |
| `delayType` | days \| hours \| minutes | all | Unit for delay. Default days. |
| `note` | string (≤300) | CONNECT | The invitation note. LinkedIn caps this at 300 characters, or 200 without Premium. |
| `shortNote` | string (≤200) | CONNECT | Fallback note used once the account exhausts its long-note allowance. |
| `connectWithoutMessage` | boolean | CONNECT | Send a bare invitation. Higher accept rate, no personalisation. |
| `subject` | string | EMAIL, INMAILS | Subject line. |
| `message` | string | MESSAGE, EMAIL, INMAILS, VOICE, GROUP\_MESSAGE, EVENT\_MESSAGE | Body. Supports \{\{firstName}}-style merge fields. |
| `attachment` | object | messaging steps | \{ url, name?, type? }. Must already be hosted at a publicly reachable URL the platform can fetch. |
| `useCredits` | boolean | INMAILS | Spend InMail credits when the lead is not an Open Profile. |
| `abTestingEnabled` | boolean | messaging steps | Split traffic between the A copy and the B copy. |
| `bNote / bShortNote / bSubject / bMessage` | string | messaging steps | Variant B copy. Required when abTestingEnabled is set. |
| `postsToLike` | integer (0–10) | ENGAGEMENT | Recent posts to like. Default 2. |
| `commentsToAdd` | integer (0–10) | ENGAGEMENT | Posts to comment on. Default 0. |
| `skillsToEndorse` | integer (0–10) | ENGAGEMENT | Skills to endorse. Default 0. |
| `followCompanyUrl` | string | FOLLOW\_COMPANY | LinkedIn company page to follow. |
| `eventUrl` | string | EVENT | LinkedIn event to invite the lead to. |
| `newCampaignId` | string | SEND\_TO\_CAMPAIGN | Campaign to move the lead into. |
| `tagId` | string | ASSIGN\_TAG | Tag to apply. See tag\_list. |
| `provider / model` | string | GPT | Which connected AI provider and model to call. |
| `instructions` | string | GPT | Prompt used to draft the personalised opener. |
| `personaId` | string | QUALIFIER | Persona to score the lead against. Required — the flow save fails without it. |
| `mismatchAction` | enum | QUALIFIER | NONE \| TAG \| MARK\_NOT\_QUALIFIED \| REMOVE\_FROM\_CAMPAIGN. Default MARK\_NOT\_QUALIFIED. |
| `mismatchNext` | CONTINUE \| STOP | QUALIFIER | Whether a mismatched lead continues down the flow. Default STOP. |
| `title` | string | TASK | What your team should do. |
| `trigger` | enum | TRIGGER | The branch condition. |
| `prompt / branches` | string / object\[] | TRIGGER CUSTOM | Classification prompt and the two branch labels. |
| `yes / no` | step\[] | TRIGGER | Steps to run on each branch. Omit one to end the sequence there. |

## Merge fields

Available in note, shortNote, subject and message: `{{firstName}}`, `{{lastName}}`, `{{designation}}`, `{{location}}`, `{{companyName}}`, `{{industry}}`, `{{senderName}}`, `{{signature}}` — plus anything from placeholder\_list and any CSV column mapped to customVariable.

## Branch conditions

A `TRIGGER` step branches on one of these conditions. Put the steps for each outcome under `yes` and `no`.

| trigger | Condition | Default wait |
| - | - | - |
| `If_Replied` | If replied | 1 days |
| `If_Connected` | If connection accepted | 1 days |
| `If_Interested` | If reply classified as interested (Pro) | 0 days |
| `If_InMail_Open` | If InMail opened | 0 days |
| `If_Email_Exists` | If an email address was found | 0 days |
| `If_Email_Opened` | If email opened | 1 days |
| `If_Email_Bounced` | If email bounced | 1 days |
| `If_Link_Clicked` | If a tracked link was clicked | 1 days |
| `If_Visited_Profile` | If the lead viewed your profile | 1 days |
| `CUSTOM` | AI Decision Maker — classify with an LLM (Pro) | 0 days |

<Tip>A `TRIGGER` is always the last entry in its list — anything that comes after it goes under `yes` or `no`. An omitted branch simply ends the sequence for that lead.</Tip>

## Example sequence

Connect with a note, then branch on acceptance. Accepted leads get a LinkedIn message and, if they don't reply, an email. Leads who don't accept within two weeks have their invitation withdrawn.

```json theme={null}
[
  {
    "type": "CONNECT",
    "delay": 0,
    "note": "Hi {{firstName}} — noticed you're running RevOps at {{companyName}}. Mind if I share how similar teams cut CRM admin?"
  },
  {
    "type": "TRIGGER",
    "trigger": "If_Connected",
    "delay": 2,
    "yes": [
      {
        "type": "MESSAGE",
        "delay": 1,
        "message": "Thanks for connecting, {{firstName}}. How are you handling pipeline hygiene today?"
      },
      {
        "type": "TRIGGER",
        "trigger": "If_Replied",
        "delay": 4,
        "no": [
          {
            "type": "EMAIL",
            "delay": 3,
            "subject": "The teardown I mentioned",
            "message": "Hi {{firstName}},\n\nSending this over in case LinkedIn is not where you live."
          }
        ]
      }
    ],
    "no": [
      {
        "type": "WITHDRAW",
        "delay": 14
      }
    ]
  }
]
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.