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

# create_sequence_blueprint

> Create a manual outreach sequence blueprint for a sourcing.

Creates a sequence blueprint tied to a sourcing in the authenticated MCP workspace. You can create an empty blueprint or provide the full `steps` array immediately.

## Input

| Parameter    | Type   | Required | Description                                              |
| ------------ | ------ | -------- | -------------------------------------------------------- |
| `sourcingId` | string | Yes      | Sourcing id from `create_sourcing`.                      |
| `name`       | string | Yes      | Display name for the blueprint.                          |
| `steps`      | array  | No       | Ordered outreach steps. See [Step format](#step-format). |
| `config`     | object | No       | Optional sequence-level configuration.                   |

## Step format

Each item in `steps` must include:

| Field                        | Type                                              | Required          | Description                                                |
| ---------------------------- | ------------------------------------------------- | ----------------- | ---------------------------------------------------------- |
| `id`                         | string                                            | Yes               | Stable step id, unique within the blueprint.               |
| `name`                       | string                                            | Yes               | Step label.                                                |
| `type`                       | `LINKEDIN` \| `WHATSAPP` \| `EMAIL` \| `SMS`      | Yes               | Outreach channel.                                          |
| `linkedInType`               | string                                            | For LinkedIn      | Required when `type` is `LINKEDIN`; not allowed otherwise. |
| `content`                    | string                                            | Yes               | Message body.                                              |
| `subject`                    | string                                            | Email only        | Email subject.                                             |
| `temporalityType`            | `ASAP` \| `DELAYED` \| `AFTER_INVITATION_SETTLED` | Yes               | Scheduling rule.                                           |
| `delay`                      | object                                            | For delayed steps | Required when `temporalityType` is `DELAYED`.              |
| `delay.value`                | integer                                           | With `delay`      | Positive delay value.                                      |
| `delay.unit`                 | `day` \| `minute` \| `second`                     | With `delay`      | Delay unit.                                                |
| `contentSource`              | `manual` \| `suggestedByKalent`                   | No                | Message origin.                                            |
| `policy.skipStepIfNoContact` | boolean                                           | No                | Skip if the required contact is missing.                   |

Allowed `linkedInType` values are `LINKEDIN_INVITATION`, `LINKEDIN_INVITATION_WITH_MESSAGE`, `LINKEDIN_MESSAGE`, and `LINKEDIN_INMAIL`.

Only one invite step is allowed per blueprint.

## Supported template variables

Only these variables are supported in `content` and `subject`:

| Variable                   | Meaning                     |
| -------------------------- | --------------------------- |
| `{{firstname}}`            | Candidate first name        |
| `{{lastname}}`             | Candidate last name         |
| `{{candidateJobTitle}}`    | Candidate current job title |
| `{{candidateCompanyName}}` | Candidate current company   |
| `{{candidateLocation}}`    | Candidate location          |
| `{{sourcingJobTitle}}`     | Sourcing target job title   |
| `{{sourcingLocation}}`     | Sourcing target location    |
| `{{recruiterFirstname}}`   | Recruiter first name        |
| `{{recruiterLastname}}`    | Recruiter last name         |

Do not invent variables. Unknown variables such as `{{firstName}}`, `{{company}}`, or `{{job}}` are rejected.

Do not use unresolved bracket placeholders such as `[company]`, `[specific project or stack]`, `[one-pager link]`, or `[1 detail to add]` in `content` or `subject`. Replace them with real text, remove that part of the sentence, or ask the user for the missing detail before calling `create_sequence_blueprint`.

## Example input

```json theme={null}
{
  "sourcingId": "SOURCING_ID",
  "name": "First outreach sequence",
  "steps": [
    {
      "id": "step-1",
      "name": "LinkedIn invite",
      "type": "LINKEDIN",
      "linkedInType": "LINKEDIN_INVITATION_WITH_MESSAGE",
      "content": "Hi {{firstname}}, I came across your profile and wanted to connect.",
      "temporalityType": "ASAP",
      "contentSource": "manual"
    },
    {
      "id": "step-2",
      "name": "Email follow-up",
      "type": "EMAIL",
      "subject": "Quick follow-up",
      "content": "Hi {{firstname}}, would you be open to discussing the role?",
      "temporalityType": "DELAYED",
      "delay": { "value": 2, "unit": "day" },
      "policy": { "skipStepIfNoContact": true }
    }
  ]
}
```

## Output

JSON block with `success: true` and `data`: `blueprintId`, `name`, and `sourcingId`.

## Errors

`session not found`, `Not found`, or a human-readable validation message when the sourcing cannot be used.
