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

> Resume a contact who exited a sequence after replying, preserving their enrollment and skips. Understand when waiting restarts and why continuation can be refused.

# Continue the sequence for a person a reply took out of it

Requires `sequences:write`. Resumes the same enrollment only when it exited because of a reply. Previously sent, completed, and [skipped steps](/api-reference/sequences/skip-step) are omitted. Personalization and journey history remain attached to that enrollment.

The next pending step's wait starts now. Any skipped waits between the current position and that step are added, applying the normal sending window at each slot. A skipped 30-minute call slot followed by a 60-minute email wait therefore takes at least 90 minutes from continuation. Future skips beyond an intervening pending step are honored when reached.

HTTP 201 returns `resumed`, `nothing_to_continue`, `not_resumable`, or `contact_not_found`. `not_resumable` includes a dispatch still in progress, active/parked/candidate enrollments, and suppression exits. Completed and removed enrollments are never revived. If every remaining slot is skipped, the enrollment stays exited and returns `nothing_to_continue`.

Continuing a contact does not activate a paused or draft sequence. Sending still depends on the sequence's lifecycle and normal consent checks.


## OpenAPI

````yaml post /sequences/{sequenceId}/contacts/{contactId}/continue
openapi: 3.1.0
info:
  title: OpenCX API
  description: >

    OpenCX is an AI-powered, all-in-one platform for customer support and
    outbound communications.


    Use this API to manage your OpenCX organization's AI agents, actions,
    conversations, contacts, and more.


    To get started, generate a new API key from the dashboard.


    ## Authentication

    All API endpoints require authentication using a Bearer token. You can
    generate an API key from your OpenCX dashboard.


    ## Rate Limiting

    API requests are rate limited to ensure fair usage. The current limits are:

    - 100 requests per minute for standard endpoints

    - 1000 requests per minute for streaming endpoints


    ## Error Handling

    The API uses standard HTTP status codes and returns detailed error messages
    in the response body.
  version: 1.0-beta
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: http://localhost:8080
    description: Development
  - url: https://api.open.cx
    description: Production
security:
  - bearerAuth: []
paths:
  /sequences/{sequenceId}/contacts/{contactId}/continue:
    post:
      summary: Continue the sequence for a person a reply took out of it
      description: >-
        A reply concludes a journey — the person exits as "replied" and receives
        no further steps. When that reply was not real engagement (an
        out-of-office, a "who is this?"), this puts them back in: active at the
        NEXT step, with that step's wait counted from now. Skipped steps are
        omitted and their waits are added from resume time. The step they
        answered is never re-sent.


        Never an error for "cannot continue": `nothing_to_continue` when they
        replied on the last step or the journey already completed;
        `not_resumable` when the journey is still in play, dispatch is still in
        progress, or ended by suppression (consent is not overridden here);
        `contact_not_found` when there is no live enrollment.
      operationId: continueSequenceContact
      parameters:
        - schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          in: path
          name: sequenceId
          required: true
          description: The unique identifier of the sequence
        - schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          in: path
          name: contactId
          required: true
          description: The person's contact id (from enroll results or the people list)
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContinueSequenceContactOutputDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
components:
  schemas:
    ContinueSequenceContactOutputDto:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: '#/components/schemas/ContinueSequenceContactOutputDto'
      type: object
      properties:
        outcome:
          type: string
          enum:
            - resumed
            - nothing_to_continue
            - not_resumable
            - contact_not_found
        contact_id:
          anyOf:
            - type: string
              format: uuid
              pattern: >-
                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: 'null'
        next_step_index:
          anyOf:
            - type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
            - type: 'null'
      required:
        - outcome
        - contact_id
        - next_step_index
      additionalProperties: false
    ErrorDto:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
        error:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````