---
title: "Create a sequence from a template"
method: POST
path: "/v3/sequences/create-from-template"
tags: ["Sequences"]
---

# Create a sequence from a template

`POST /v3/sequences/create-from-template`

<small>_Requires the `sequences:write` scope (or a broader one that includes it)._</small>

Creates a new sequence based on an existing sequence template

## Request body

- object
  - `templateId` string, uuid, required — Template Id to create the sequence from
  - `sequenceFolderId` string, uuid, nullable — Optional folder Id to place the new sequence in

## Response `201`

Sequence created from template successfully

- object — Full representation of a sequence, including its schedule and the email and LinkedIn accounts used to send from it.
  - `id` integer — Unique identifier for the sequence
  - `ownerUserId` integer — Identifier of the user who owns the sequence
  - `name` string — Name of the sequence
  - `created` string, date-time — Sequence creation timestamp with timezone offset
  - `status` 'new' | 'active' | 'paused' — Current status of the sequence
  - `isArchived` boolean — Indicates if the sequence is archived
  - `health` 'healthy' | 'stalled' | 'degraded' | 'blocked' — Overall health status of the sequence. Indicates whether the sequence can operate normally or has issues that need attention. - `healthy` — Sequence is functioning normally with no issues - `stalled` — Sequence has stalled and is not progressing - `degraded` — Sequence is running but with reduced effectiveness - `blocked` — Sequence cannot proceed due to critical issues
  - `scheduleId` integer — Schedule ID
  - `emailAccounts` object[] — Email accounts used to send emails for this sequence
    - `id` integer, required — Email account ID
    - `email` string, required — Email address
  - `linkedInAccounts` object[] — LinkedIn accounts linked to this sequence
    - `id` integer — Unique identifier for the LinkedIn account
    - `name` string — Name of the LinkedIn account
    - `profileUrl` string, nullable — LinkedIn profile URL
    - `status` 'disabled' | 'enabled' | 'dailyLimitReached' | 'cookieInvalid' — Current status of the LinkedIn account
  - `settings` object — Settings configuration for a sequence
    - `emailsCountPerDay` integer, required — Maximum number of emails sent daily
    - `daysToFinishProspect` integer, required — Days taken for a prospect to finish
    - `emailSendingDelaySeconds` integer, required — Delay between sending emails in seconds
    - `dailyThrottling` integer, required — Number of prospects processed within 24-hour period
    - `useDailyThrottling` boolean — Whether daily throttling is enabled
    - `disableOpensTracking` boolean, required — Whether to disable email open tracking
    - `repliesHandlingType` 'markAsFinished' | 'continueSending', required — How replies are handled
    - `enableLinksTracking` boolean, required — Whether to enable link tracking
    - `isSendingPlainTextEnabled` boolean — Whether to send emails as plain text instead of HTML
    - `isListUnsubscribeHeaderEnabled` boolean — Whether to include a List-Unsubscribe header in all emails from this sequence
    - `isSameDomainSendingLimitEnabled` boolean — Whether to limit the number of contacts from the same domain contacted per day
    - `numberOfSameDomainSendingLimit` integer, nullable — Maximum number of same-domain contacts per day (applicable when `isSameDomainSendingLimitEnabled` is true)
    - `matchProspectToEmailAccountProvider` boolean — Whether to match prospect email provider to sender email provider
    - `callIsAutomatic` boolean — Whether calls are handled automatically in this sequence
    - `taskIsAutomatic` boolean — Whether tasks are handled automatically in this sequence
    - `generatedTaskOwner` 'contact' | 'sequence', nullable — Who owns generated tasks — the contact owner or the sequence owner. Defaults to `sequence` when omitted.
  - `steps` union[] — Array of sequence steps
    - union
      - object — Email step with variant configuration
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'email', required — Step type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `executionMode` 'automatic' | 'manual', required — Execution mode for the email step
        - `variants` object[], required — Array of email variants (A/B test versions)
          - `id` integer — Unique identifier for this email variant
          - `subject` string, nullable — Email subject line.
          - `message` string, nullable — Email message content.
          - `attachmentIds` integer[], nullable — **Write-only.** IDs of previously uploaded attachments to attach to this variant. Upload files via `POST /v3/attachments` first to obtain attachment IDs. A variant may carry up to 3 attachments. Omit to leave attachments unset. Not returned on read — use `hasAttachments` to detect presence.
          - `hasAttachments` boolean — Whether the variant has any attachments. Returned on read; ignored on write.
      - object — LinkedIn message action step
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'linkedIn', required — Step type discriminator
        - `actionType` 'message', required — LinkedIn action type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `executionMode` 'automatic' | 'manual', required — Execution mode for the action
        - `variants` object[], required — Array of LinkedIn message variants (A/B test versions)
          - `id` integer — Unique identifier for this LinkedIn variant
          - `message` string, required — Message content
          - `isEnabled` boolean, required — Indicates whether the variant is enabled
      - object — LinkedIn connect action step
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'linkedIn', required — Step type discriminator
        - `actionType` 'connect', required — LinkedIn action type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `executionMode` 'automatic' | 'manual', required — Execution mode for the action
        - `variants` object[], required — Array of LinkedIn connect variants (A/B test versions). Message is optional, max 300 characters.
          - `id` integer — Unique identifier for this LinkedIn variant
          - `message` string, required — Message content
          - `isEnabled` boolean, required — Indicates whether the variant is enabled
      - object — LinkedIn InMail action step
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'linkedIn', required — Step type discriminator
        - `actionType` 'inMail', required — LinkedIn action type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `executionMode` 'automatic' | 'manual', required — Execution mode for the InMail
        - `variants` object[], required — Array of LinkedIn InMail variants (A/B test versions)
          - `id` integer — Unique identifier for this LinkedIn InMail variant
          - `subject` string, required — InMail subject line
          - `message` string, required — InMail message content
          - `isEnabled` boolean, required — Indicates whether the variant is enabled
      - object — LinkedIn view profile action step
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'linkedIn', required — Step type discriminator
        - `actionType` 'viewProfile', required — LinkedIn action type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `executionMode` 'automatic' | 'manual', required — Execution mode for the action
        - `description` string — Description or notes for the profile view
      - object — LinkedIn endorse skills action step
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'linkedIn', required — Step type discriminator
        - `actionType` 'endorseSkills', required — LinkedIn action type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `numberOfSkills` integer, required — Number of skills to endorse (1-3)
      - object — LinkedIn voice message action step
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'linkedIn', required — Step type discriminator
        - `actionType` 'voiceMessage', required — LinkedIn action type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `audioFile` string, required — The audio file URL for the voice message
      - object — LinkedIn like recent posts action step
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'linkedIn', required — Step type discriminator
        - `actionType` 'likeRecentPosts', required — LinkedIn action type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
      - object — LinkedIn follow profile action step
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'linkedIn', required — Step type discriminator
        - `actionType` 'followProfile', required — LinkedIn action type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
      - object — Call step with script/notes
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'call', required — Step type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `message` string — Notes or script for the call
      - object — SMS step with message content
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'sms', required — Step type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `executionMode` 'automatic' | 'manual', required — Execution mode for the SMS step
        - `message` string, required — SMS message content
      - object — WhatsApp step with message content
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'whatsApp', required — Step type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `message` string, required — WhatsApp message content
      - object — Zapier integration step
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'zapier', required — Step type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `name` string, required — Name of the Zapier step
        - `action` 'immediately' | 'wait', required — Zapier action type
      - object — Task step for manual actions
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'task', required — Step type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `actionType` 'toDo' | 'meeting', required — Type of task action to perform
        - `description` string, required — Task description or instructions
      - object — Condition step that evaluates rules before proceeding
        - `id` integer, nullable — Unique identifier for the step
        - `parentId` integer, nullable — ID of the parent step (for branching)
        - `ifConditionPositive` boolean, nullable — Whether this step is on the positive branch of a condition
        - `type` 'condition', required — Step type discriminator
        - `delayInMinutes` integer, required — Delay in minutes before executing this step
        - `waitInMinutes` integer, required — Wait time in minutes for condition evaluation
        - `conditions` object[], required — Array of condition templates to evaluate
          - `property` string, required — Property name to evaluate
          - `rules` object[], required — Set of rules to apply to the property
            - `operator` string, required — Comparison operator (e.g., `isSet`, `isNotSet`, `equals`, etc.)
            - `value` string, nullable — Value to compare against. Null for operators like `isSet`/`isNotSet`.

## Other responses

- `400` — Validation failure on the request body
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — User lacks permission to view the newly created sequence
- `404` — Template not found
- `429` — Too Many Requests

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/versions/1c3d32eaf95e/schema)
