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

# Update a Sequence Step

> Updates the copy on a single step of a sequence. `step_id` is the `id` of the entry in the sequence's `tasks` list (from `get_sequence`). Supports `message` on email, InMail, LinkedIn message, LinkedIn connection-note, and gifting-email steps, and `subject` on email, InMail, and gifting-email steps. Only steps of an active (non-suggested) sequence that have not yet been completed can be edited. Only the fields you provide are updated; omitted fields are left unchanged. Returns the refreshed step. Template variables must be namespaced. Supported tokens are `{{recipient.first_name}}`, `{{recipient.last_name}}`, `{{recipient.company}}`, `{{recipient.email}}`, `{{sender.first_name}}`, `{{sender.last_name}}`, and `{{sender.company}}`.



## OpenAPI

````yaml https://api.monaco.com/openapi.json patch /v1/sequences/{sequence_id}/steps/{step_id}
openapi: 3.1.0
info:
  title: Monaco Public API
  description: Public API for Monaco
  version: 1.0.0
servers:
  - url: https://api.monaco.com
security: []
paths:
  /v1/sequences/{sequence_id}/steps/{step_id}:
    patch:
      tags:
        - Sequences
      summary: Update a Sequence Step
      description: >-
        Updates the copy on a single step of a sequence. `step_id` is the `id`
        of the entry in the sequence's `tasks` list (from `get_sequence`).
        Supports `message` on email, InMail, LinkedIn message, LinkedIn
        connection-note, and gifting-email steps, and `subject` on email,
        InMail, and gifting-email steps. Only steps of an active (non-suggested)
        sequence that have not yet been completed can be edited. Only the fields
        you provide are updated; omitted fields are left unchanged. Returns the
        refreshed step. Template variables must be namespaced. Supported tokens
        are `{{recipient.first_name}}`, `{{recipient.last_name}}`,
        `{{recipient.company}}`, `{{recipient.email}}`, `{{sender.first_name}}`,
        `{{sender.last_name}}`, and `{{sender.company}}`.
      operationId: update_sequence_step
      parameters:
        - name: sequence_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Sequence Id
        - name: step_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSequenceStepRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicItemResponse_SequenceTaskResponse_'
        '404':
          description: Step not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '422':
          description: Invalid copy for this step
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        4XX:
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
components:
  schemas:
    UpdateSequenceStepRequest:
      properties:
        message:
          anyOf:
            - type: string
              minLength: 1
            - type: 'null'
          title: Message
          description: >-
            New message body for the step. Supported on email, InMail, LinkedIn
            message, LinkedIn connection-note, and gifting-email steps. Provide
            final per-contact copy as plain text — unresolved placeholders like
            `{{first_name}}` and HTML are rejected.
        subject:
          anyOf:
            - type: string
              minLength: 1
            - type: 'null'
          title: Subject
          description: >-
            New subject line for the step. Only supported on subject-bearing
            channels (email, InMail, gifting email).
      type: object
      title: UpdateSequenceStepRequest
      description: Copy edits for a single sequence step (a per-contact campaign task).
    PublicItemResponse_SequenceTaskResponse_:
      properties:
        data:
          $ref: '#/components/schemas/SequenceTaskResponse'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      type: object
      required:
        - data
      title: PublicItemResponse[SequenceTaskResponse]
    PublicErrorResponse:
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
      type: object
      required:
        - error
      title: PublicErrorResponse
    SequenceTaskResponse:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the task
          examples:
            - tsk_abc123
        sequence_id:
          type: string
          title: Sequence Id
          description: ID of the sequence this task belongs to
          examples:
            - seq_def456
        order:
          type: integer
          title: Order
          description: Position of the task within the sequence (1-indexed)
          examples:
            - 1
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Display name of the task
          examples:
            - Send intro email
        type:
          $ref: '#/components/schemas/TaskTypeEnum'
          description: Type of task
          examples:
            - auto_linkedin_connection
        status:
          $ref: '#/components/schemas/TaskStatusEnum'
          description: Current status of the task
          examples:
            - pending
        scheduled_at:
          type: string
          format: date-time
          title: Scheduled At
          description: Date and time the task is scheduled for
          examples:
            - '2026-05-15T09:00:00Z'
        completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed At
          description: Date and time the task was completed
          examples:
            - '2026-05-15T10:00:00Z'
        task_body:
          anyOf:
            - type: string
            - type: 'null'
          title: Task Body
          description: Task message body
        subject:
          anyOf:
            - type: string
            - type: 'null'
          title: Subject
          description: >-
            Subject line, for subject-bearing channels (email, InMail, gifting
            email)
        outcome:
          anyOf:
            - $ref: '#/components/schemas/TaskOutcomeEnum'
            - type: 'null'
          description: Observed outcome of the task
          examples:
            - positive_reply
      type: object
      required:
        - id
        - sequence_id
        - order
        - type
        - status
        - scheduled_at
      title: SequenceTaskResponse
      description: Task within a sequence.
    ResponseMeta:
      properties:
        timestamp:
          type: string
          format: date-time
          title: Timestamp
          description: Server timestamp of the response
      type: object
      title: ResponseMeta
    ErrorDetail:
      properties:
        code:
          type: string
          title: Code
          description: Machine-readable error code
          examples:
            - not_found
        message:
          type: string
          title: Message
          description: Human-readable error message
          examples:
            - Resource not found
      type: object
      required:
        - code
        - message
      title: ErrorDetail
    TaskTypeEnum:
      type: string
      enum:
        - generic
        - auto_email
        - manual_email
        - auto_linkedin_connection
        - manual_linkedin_connection
        - auto_linkedin_message
        - manual_linkedin_message
        - auto_linkedin_inmail
        - manual_linkedin_inmail
        - auto_phone
        - manual_phone
        - internal_email
        - gifting_via_email
        - gifting_via_address
        - complete_sequence
      title: TaskTypeEnum
    TaskStatusEnum:
      type: string
      enum:
        - unknown
        - scheduled
        - pending
        - in_progress
        - paused
        - completed
        - failed
        - cancelled
        - skipped
      title: TaskStatusEnum
    TaskOutcomeEnum:
      type: string
      enum:
        - cannot_send
        - positive_reply
        - negative_reply
        - noncommital_reply
        - email_not_found
        - email_enrichment_failed
        - email_verification_unavailable
        - email_bounced
        - out_of_office
        - message_opened
        - link_opened
        - accepted
        - declined
        - profile_unreachable
        - linkedin_not_found
        - linkedin_connection_limit_exceeded
        - linkedin_already_invited_recently
        - linkedin_cannot_resend_yet
        - linkedin_invitation_declined_previously
        - linkedin_account_disconnected
        - linkedin_no_inmail_credits
        - linkedin_transient_provider_error
        - linkedin_self_invite
        - linkedin_account_paused
        - incoming_comms_blocked
        - not_connected
        - connection_note_too_long
        - gift_shipped
        - gift_delivered
        - gift_opened
        - gift_thank_you_added
        - gift_refunded
        - gift_cancelled
        - connection_not_accepted
        - previous_task_incomplete
        - do_not_contact
        - message_evaluation_blocked
        - account_status_excluded
      title: TaskOutcomeEnum

````