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

# Update AI SDR sequence settings

> <Warning>
  **Coming soon.** This endpoint will be available by mid June 2026.
</Warning>

Partial update of AI SDR-specific sequence settings (generation inputs, tone of voice, personalization points, provider LLM, autopilot config, intent signals).

PATCH semantics: a field absent from the body is skipped; a field explicitly set to `null` is rejected. `intentSignals`, when present, fully replaces the current list. `autopilot.filters`, when present, fully replaces the current filters object. At least one field must be present.

Out of scope for this PATCH (use the dedicated sub-resources instead): name and other generic sequence fields, approval mode, generated step types, attached playbook, connected knowledge base.

Requires the AI SDR feature on the caller's team.



## OpenAPI

````yaml /api-reference/bundled.yaml patch /v3/sequences/ai-sdr/{sequence_id}/settings
openapi: 3.1.0
info:
  version: 3.0.0
  title: Reply API
  description: API for managing email sequences, contacts, and automation workflows
servers:
  - url: https://api.reply.io
security:
  - bearerAuth: []
tags:
  - name: User Account
    description: Account information and authentication verification
  - name: Accounts
    description: Manage accounts (companies/organizations)
  - name: AI SDR Insights
    description: Read AI SDR insights for sequence contacts
  - name: AI SDR Intent Signals
    description: >-
      Read Reply industry IDs and technology slugs used in AI SDR intent-signal
      configuration (typeahead)
  - name: AI SDR Sequences
    description: >-
      Manage AI SDR sequences and their AI SDR-specific settings — create, read
      settings, partial update, autopilot enable/disable/force-start, approval
      mode, generated step types, and playbook/knowledge-base connections
  - name: AI SDR Web Search
    description: Find contacts via AI-driven web search and review past searches
  - name: Attachments
    description: >-
      Upload file attachments used across email templates, sequence steps, and
      direct emails
  - name: Account Lists
    description: Manage account lists and account membership
  - name: Background Jobs
    description: >-
      Track and cancel asynchronous background operations (e.g., email
      validation)
  - name: Custom Fields
    description: Manage custom contact fields
  - name: Direct Outreach
    description: >-
      Send one-off outreach directly to a contact outside of any sequence —
      direct emails and LinkedIn connection requests, messages, InMails, and
      voice messages
  - name: Contact Blacklist Rules
    description: Manage blacklist rules for domains, emails, and email exceptions
  - name: Contact Enrichment
    description: >-
      Enrich contacts with emails, phone numbers, LinkedIn data, and AI-filled
      custom fields
  - name: Contact Lists
    description: Manage contact lists and contact membership
  - name: Contacts
    description: Manage individual contacts
  - name: Email Accounts
    description: Manage email accounts used for sending and receiving
  - name: Email Templates
    description: Manage email templates and template folders
  - name: Email Validations
    description: Estimate and schedule asynchronous email validation jobs
  - name: Holiday Calendars
    description: Manage holiday calendars for scheduling
  - name: Inbox
    description: >-
      Manage inbox threads and per-team thread categories — list/filter, read
      state, replies, category assignment, and meeting-intent flagging
  - name: LinkedIn Accounts
    description: Manage LinkedIn accounts for outreach
  - name: Live Data
    description: >-
      Find new contacts via Live Data searches and read typeahead values for the
      Live Data / Autopilot filter sidebar
  - name: AI SDR Knowledge Bases
    description: >-
      Manage AI SDR knowledge bases — collections of documents, links, reply
      handlers, and reengagement cards that inform the agent's responses
  - name: AI SDR Offers
    description: >-
      Manage AI SDR offers — bundles of company-context inputs (ICP, pain
      points, value propositions, etc.) used to personalize outreach
  - name: AI SDR Pending Approvals
    description: >-
      Review, send, regenerate, and provide feedback on AI-generated messages
      awaiting human approval
  - name: AI SDR Playbooks
    description: >-
      Manage AI SDR playbooks — tone, voice, and style guides applied during
      personalized message generation
  - name: Reports
    description: >-
      Generate and access performance reports across email, calls, tasks,
      LinkedIn, and team performance
  - name: Schedules
    description: Manage email send schedules and timing
  - name: Settings
    description: Manage team and user settings
  - name: Sequence Contacts
    description: Manage contacts within sequences
  - name: Sequence Email Accounts
    description: Manage email accounts linked to sequences
  - name: Sequence Folders
    description: Organize sequences into folders
  - name: Sequence LinkedIn Accounts
    description: Manage LinkedIn accounts linked to sequences
  - name: AI SDR Sequence Preview
    description: >-
      Read and regenerate per-contact previews of the messages a sequence will
      send, and provide feedback on preview messages
  - name: Sequence Steps
    description: Manage individual steps in sequences
  - name: Sequence Templates
    description: Manage sequence templates
  - name: Sequences
    description: Manage email automation sequences
  - name: AI SDR Strategist
    description: Trigger AI Strategist runs
  - name: Tasks
    description: Manage tasks and to-do items
  - name: Webhooks
    description: Manage webhook subscriptions and inspect delivery history
paths:
  /v3/sequences/ai-sdr/{sequence_id}/settings:
    patch:
      tags:
        - AI SDR Sequences
      summary: Update AI SDR sequence settings
      description: >-
        <Warning>
          **Coming soon.** This endpoint will be available by mid June 2026.
        </Warning>


        Partial update of AI SDR-specific sequence settings (generation inputs,
        tone of voice, personalization points, provider LLM, autopilot config,
        intent signals).


        PATCH semantics: a field absent from the body is skipped; a field
        explicitly set to `null` is rejected. `intentSignals`, when present,
        fully replaces the current list. `autopilot.filters`, when present,
        fully replaces the current filters object. At least one field must be
        present.


        Out of scope for this PATCH (use the dedicated sub-resources instead):
        name and other generic sequence fields, approval mode, generated step
        types, attached playbook, connected knowledge base.


        Requires the AI SDR feature on the caller's team.
      operationId: UpdateAiSdrSequenceSettings
      parameters:
        - name: sequence_id
          in: path
          required: true
          description: Sequence id
          schema:
            type: integer
            minimum: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              title: AI SDR sequence — patch
              description: >-
                Partial update of AI SDR-specific sequence settings. Generic
                sequence fields (name, schedule, accounts, settings) are NOT
                updated here — use the generic `PATCH /v3/sequences/{id}`.
                Approval mode is NOT updated here — use `PUT .../approval-mode`.
                Generated step types are NOT updated here — use `PUT
                .../generated-step-types`. Playbook and knowledge-base
                attachments are NOT updated here — use the dedicated
                sub-resources.


                PATCH semantics:

                - Field absent from the body: skip; current value is retained.

                - Field present with `null`: rejected.

                - `offerId` and `offerGenerationInputs` are mutually exclusive —
                only one may be present.

                - `intentSignals`, when present, fully replaces the current
                list. At most one signal per `type`; `technologyUsed` and
                `jobHiring` are mutually exclusive.

                - `offerGenerationInputs`, `toneOfVoice` and
                `personalizationPoints`, when present, are deep-merged at the
                leaf level — array fields inside them fully replace.


                At least one field must be present in the body.
              properties:
                offerId:
                  type: integer
                  format: int64
                  minimum: 1
                  description: >-
                    Switch the sequence to a different saved offer. Mutually
                    exclusive with `offerGenerationInputs`.
                offerGenerationInputs:
                  type: object
                  title: Offer generation inputs (patch)
                  description: >-
                    Partial update for the inline offer-context inputs of an AI
                    SDR sequence.


                    - Field absent from the body: skip; current value is
                    retained.

                    - Field present with `null`: rejected.

                    - Array fields, when present, fully replace the current
                    value (no item-level merge) and must contain 1-10 items.
                  properties:
                    companyName:
                      type: string
                      maxLength: 200
                    companyDescription:
                      type: string
                      maxLength: 3000
                    icp:
                      type: string
                      maxLength: 1000
                    reasonForOutreach:
                      type: string
                      maxLength: 1000
                    caseStudies:
                      type: array
                      minItems: 1
                      maxItems: 10
                      items:
                        type: string
                        minLength: 1
                        maxLength: 1000
                    painPoints:
                      type: array
                      minItems: 1
                      maxItems: 10
                      items:
                        type: string
                        minLength: 1
                        maxLength: 1000
                    proofPoints:
                      type: array
                      minItems: 1
                      maxItems: 10
                      items:
                        type: string
                        minLength: 1
                        maxLength: 1000
                    valuePropositions:
                      type: array
                      minItems: 1
                      maxItems: 10
                      items:
                        type: string
                        minLength: 1
                        maxLength: 1000
                    callToActions:
                      type: array
                      minItems: 1
                      maxItems: 10
                      items:
                        type: string
                        minLength: 1
                        maxLength: 1000
                toneOfVoice:
                  type: object
                  title: Tone of voice settings (request)
                  description: >-
                    Tone-of-voice configuration on create/patch. All fields are
                    optional on create — omitted fields fall back to defaults
                    (English (US), Confident tone, Medium length, Man).
                  properties:
                    language:
                      allOf:
                        - type: string
                          title: Sales agent language
                          description: >-
                            Language used by the AI SDR when generating outreach
                            messages.
                          enum:
                            - englishUS
                            - englishUK
                            - spanish
                            - albanian
                            - armenian
                            - bengali
                            - bosnian
                            - bulgarian
                            - catalan
                            - chinese
                            - croatian
                            - czech
                            - danish
                            - dutch
                            - estonian
                            - finnish
                            - french
                            - georgian
                            - german
                            - greek
                            - hindi
                            - hungarian
                            - icelandic
                            - indonesian
                            - italian
                            - japanese
                            - kazakh
                            - korean
                            - latvian
                            - lithuanian
                            - macedonian
                            - malay
                            - mongolian
                            - norwegian
                            - persian
                            - polish
                            - portugueseEU
                            - portugueseBR
                            - romanian
                            - serbian
                            - slovak
                            - slovenian
                            - swedish
                            - thai
                            - turkish
                            - ukrainian
                            - vietnamese
                            - arabic
                            - uzbek
                            - hebrew
                      nullable: true
                    toneOfVoice:
                      allOf:
                        - type: string
                          title: Sales agent tone of voice
                          description: >-
                            Tone of voice used by the AI SDR when generating
                            outreach messages.
                          enum:
                            - confident
                            - persuasive
                            - witty
                            - straightforward
                            - empathetic
                      nullable: true
                    messageLength:
                      allOf:
                        - type: string
                          title: Personalized message length
                          description: >-
                            Target length for AI-generated personalized
                            messages.
                          enum:
                            - superShort
                            - short
                            - medium
                            - long
                      nullable: true
                    gender:
                      allOf:
                        - type: string
                          title: Sales agent gender
                          description: >-
                            Gender used by the AI SDR persona when generating
                            outreach messages.
                          enum:
                            - man
                            - woman
                      nullable: true
                providerLLM:
                  type: string
                  title: AI content provider
                  description: >-
                    LLM provider that generates the outreach content for the AI
                    SDR sequence.
                  enum:
                    - claude
                    - openAi
                    - gemini
                    - mistral
                personalizationPoints:
                  type: object
                  title: Personalization points
                  description: >-
                    Which research signals the AI SDR is allowed to weave into
                    personalized messages. Every leaf is optional; absent flags
                    are treated as "no preference / keep the current value".
                  properties:
                    basicResearch:
                      type: boolean
                      nullable: true
                      description: >-
                        Allow lightweight, low-cost personalization based on
                        basic contact and company facts
                    companyResearch:
                      type: object
                      nullable: true
                      description: Per-aspect toggles for company-level research signals
                      properties:
                        description:
                          type: boolean
                          nullable: true
                        mission:
                          type: boolean
                          nullable: true
                        techStack:
                          type: boolean
                          nullable: true
                        tenKReport:
                          type: boolean
                          nullable: true
                        recentReportForInvestors:
                          type: boolean
                          nullable: true
                        financialReport:
                          type: boolean
                          nullable: true
                        fundraisingResearch:
                          type: boolean
                          nullable: true
                        challenges:
                          type: boolean
                          nullable: true
                        recentNews:
                          type: boolean
                          nullable: true
                        predictChallengesAndCompetitors:
                          type: boolean
                          nullable: true
                        productsServicesDeepDive:
                          type: boolean
                          nullable: true
                        mergersAcquisitions:
                          type: boolean
                          nullable: true
                        customerReviews:
                          type: boolean
                          nullable: true
                    prospectResearch:
                      type: object
                      nullable: true
                      description: Per-aspect toggles for prospect-level research signals
                      properties:
                        aboutSection:
                          type: boolean
                          nullable: true
                        hobbiesInterests:
                          type: boolean
                          nullable: true
                        quotes:
                          type: boolean
                          nullable: true
                        achievements:
                          type: boolean
                          nullable: true
                        careerSummary:
                          type: boolean
                          nullable: true
                        jobResponsibilitiesInCurrentCompany:
                          type: boolean
                          nullable: true
                        achievementsInCurrentCompany:
                          type: boolean
                          nullable: true
                    industryResearch:
                      type: object
                      nullable: true
                      description: Per-aspect toggles for industry-level research signals
                      properties:
                        recentIndustryNews:
                          type: boolean
                          nullable: true
                        industryTrends:
                          type: boolean
                          nullable: true
                        competitorsOverviewNews:
                          type: boolean
                          nullable: true
                    contactFields:
                      type: object
                      nullable: true
                      description: >-
                        Which contact-record fields the AI SDR may reference.
                        Default fields and custom fields are selected
                        independently — `defaultFields` is an array of enum
                        values, `customFieldIds` is an array of integer ids.
                      properties:
                        enabled:
                          type: boolean
                          nullable: true
                          description: >-
                            Master toggle for using contact fields in
                            personalization
                        defaultFields:
                          type: array
                          nullable: true
                          description: >-
                            Built-in contact fields to reference. Must contain
                            no duplicates.
                          items:
                            type: string
                            title: Contact default field
                            description: >-
                              Built-in contact field selectable for AI SDR
                              personalization.
                            enum:
                              - firstName
                              - lastName
                              - title
                              - companySize
                              - industry
                              - city
                              - state
                              - country
                        customFieldIds:
                          type: array
                          nullable: true
                          description: >-
                            Ids of custom contact fields to reference. Each id
                            must be positive; the array must contain no
                            duplicates.
                          items:
                            type: integer
                            minimum: 1
                    customResearch:
                      type: object
                      nullable: true
                      description: >-
                        Free-form custom research instructions the AI SDR may
                        follow
                      properties:
                        enabled:
                          type: boolean
                          nullable: true
                          description: Master toggle for using custom research
                        instructions:
                          type: string
                          nullable: true
                          maxLength: 2000
                          description: >-
                            Free-form prompt describing the custom research the
                            AI SDR should perform
                autopilot:
                  type: object
                  title: Autopilot settings (patch)
                  description: >-
                    Partial update of autopilot configuration.


                    - Field absent from the body: skip; current value is
                    retained.

                    - Field present with `null`: rejected.

                    - `filters`, when present, fully replaces the current
                    filters object (no field-level merge inside the filters
                    tree).

                    - The autopilot on/off toggle is NOT changed here — use
                    `POST .../autopilot/enable` or `POST .../autopilot/disable`.
                  properties:
                    filters:
                      type: object
                      title: Autopilot filters
                      description: >-
                        Account- and contact-level filter configuration used by
                        autopilot when searching for new contacts to add to the
                        sequence.


                        Most collections are capped at 25 items.
                        `accountKeywords` and `contactKeywords` are always
                        present and non-null in responses even when empty (`{
                        "values": [], "type": "or" }`).
                      properties:
                        accountListIds:
                          type: array
                          maxItems: 25
                          description: Saved account-list ids the search is scoped to
                          items:
                            type: object
                            title: Integer filter value
                            description: >-
                              A single integer value used in an autopilot
                              filter, with include/exclude polarity.
                            required:
                              - value
                            properties:
                              value:
                                type: integer
                                minimum: 1
                                description: The literal integer id to match
                              type:
                                allOf:
                                  - type: string
                                    title: Filter polarity
                                    description: >-
                                      Whether matching values are included in or
                                      excluded from the autopilot search.
                                    enum:
                                      - include
                                      - exclude
                                description: >-
                                  Whether the value is included in or excluded
                                  from the search. Defaults to `include`.
                        industries:
                          type: array
                          maxItems: 25
                          description: Industry filters
                          items:
                            type: object
                            title: Filter value
                            description: >-
                              A single string value used in an autopilot filter,
                              with include/exclude polarity.
                            required:
                              - value
                            properties:
                              value:
                                type: string
                                maxLength: 200
                                description: The literal value to match (non-empty)
                              type:
                                allOf:
                                  - type: string
                                    title: Filter polarity
                                    description: >-
                                      Whether matching values are included in or
                                      excluded from the autopilot search.
                                    enum:
                                      - include
                                      - exclude
                                description: >-
                                  Whether the value is included in or excluded
                                  from the search. Defaults to `include`.
                        companyLocations:
                          type: array
                          maxItems: 25
                          description: Company location filters
                          items:
                            type: object
                            title: Filter value
                            description: >-
                              A single string value used in an autopilot filter,
                              with include/exclude polarity.
                            required:
                              - value
                            properties:
                              value:
                                type: string
                                maxLength: 200
                                description: The literal value to match (non-empty)
                              type:
                                allOf:
                                  - type: string
                                    title: Filter polarity
                                    description: >-
                                      Whether matching values are included in or
                                      excluded from the autopilot search.
                                    enum:
                                      - include
                                      - exclude
                                description: >-
                                  Whether the value is included in or excluded
                                  from the search. Defaults to `include`.
                        companySizes:
                          type: array
                          maxItems: 25
                          description: Company size bands to include
                          items:
                            type: string
                            title: Company size
                            description: >-
                              Headcount band used when filtering companies for
                              autopilot search.
                            enum:
                              - none
                              - selfEmployed
                              - ten
                              - fifty
                              - twoHundred
                              - fiveHundred
                              - oneThousand
                              - fiveThousand
                              - tenThousand
                              - overTenThousand
                        headcountGrowth:
                          allOf:
                            - type: object
                              title: Headcount growth range
                              description: >-
                                Min/max range applied to the company's total
                                headcount growth (percent). Either bound may be
                                omitted.


                                When both are provided, `min` must be less than
                                or equal to `max`.
                              properties:
                                min:
                                  type: integer
                                  minimum: 0
                                  nullable: true
                                  description: Lower bound (inclusive), percent
                                max:
                                  type: integer
                                  minimum: 0
                                  nullable: true
                                  description: Upper bound (inclusive), percent
                          nullable: true
                          description: Overall company headcount growth range
                        departmentHeadcountGrowth:
                          allOf:
                            - type: object
                              title: Department headcount growth range
                              description: >-
                                Min/max range applied to a specific department's
                                headcount growth (percent). Either bound may be
                                omitted.


                                When both are provided, `min` must be less than
                                or equal to `max`.
                              required:
                                - department
                              properties:
                                min:
                                  type: integer
                                  minimum: 0
                                  nullable: true
                                  description: Lower bound (inclusive), percent
                                max:
                                  type: integer
                                  minimum: 0
                                  nullable: true
                                  description: Upper bound (inclusive), percent
                                department:
                                  type: string
                                  maxLength: 200
                                  description: >-
                                    Department name the growth range applies to
                                    (non-empty)
                          nullable: true
                          description: Per-department headcount growth range
                        minRevenue:
                          allOf:
                            - type: string
                              title: Company revenue tier
                              description: >-
                                Annual revenue tier used when filtering
                                companies for autopilot search.
                              enum:
                                - zeroMillion
                                - halfMillion
                                - oneMillion
                                - twoAndHalfMillion
                                - fiveMillion
                                - tenMillion
                                - twentyMillion
                                - fiftyMillion
                                - oneHundredMillion
                                - fiveHundredMillion
                                - oneThousandMillion
                                - overOneThousandMillion
                          nullable: true
                          description: Minimum company revenue tier
                        maxRevenue:
                          allOf:
                            - type: string
                              title: Company revenue tier
                              description: >-
                                Annual revenue tier used when filtering
                                companies for autopilot search.
                              enum:
                                - zeroMillion
                                - halfMillion
                                - oneMillion
                                - twoAndHalfMillion
                                - fiveMillion
                                - tenMillion
                                - twentyMillion
                                - fiftyMillion
                                - oneHundredMillion
                                - fiveHundredMillion
                                - oneThousandMillion
                                - overOneThousandMillion
                          nullable: true
                          description: >-
                            Maximum company revenue tier. When both `minRevenue`
                            and `maxRevenue` are provided, `minRevenue` must be
                            less than or equal to `maxRevenue`.
                        accountKeywords:
                          allOf:
                            - type: object
                              title: Keyword filter
                              description: >-
                                Boolean keyword filter applied to account or
                                contact searches.


                                In responses this field is always present and
                                non-null even when no keywords are configured
                                (`{ "values": [], "type": "or" }`).
                              properties:
                                values:
                                  type: array
                                  maxItems: 25
                                  description: Keyword values combined according to `type`
                                  items:
                                    type: object
                                    title: Filter value
                                    description: >-
                                      A single string value used in an autopilot
                                      filter, with include/exclude polarity.
                                    required:
                                      - value
                                    properties:
                                      value:
                                        type: string
                                        maxLength: 200
                                        description: The literal value to match (non-empty)
                                      type:
                                        allOf:
                                          - type: string
                                            title: Filter polarity
                                            description: >-
                                              Whether matching values are included in
                                              or excluded from the autopilot search.
                                            enum:
                                              - include
                                              - exclude
                                        description: >-
                                          Whether the value is included in or
                                          excluded from the search. Defaults to
                                          `include`.
                                type:
                                  allOf:
                                    - type: string
                                      title: Keyword combination
                                      description: >-
                                        Boolean combinator applied across
                                        keyword filter values.
                                      enum:
                                        - or
                                        - and
                                  description: >-
                                    Boolean combinator across `values`. Defaults
                                    to `or`.
                          description: >-
                            Free-text keyword filter applied at the account
                            level. Always present and non-null in responses.
                        isHiringOnLinkedIn:
                          type: boolean
                          description: >-
                            When `true`, restrict to companies currently hiring
                            on LinkedIn. `false` (the default) applies no filter
                            — it is treated the same as omitting the field.
                        contactLocations:
                          type: array
                          maxItems: 25
                          description: Contact location filters
                          items:
                            type: object
                            title: Filter value
                            description: >-
                              A single string value used in an autopilot filter,
                              with include/exclude polarity.
                            required:
                              - value
                            properties:
                              value:
                                type: string
                                maxLength: 200
                                description: The literal value to match (non-empty)
                              type:
                                allOf:
                                  - type: string
                                    title: Filter polarity
                                    description: >-
                                      Whether matching values are included in or
                                      excluded from the autopilot search.
                                    enum:
                                      - include
                                      - exclude
                                description: >-
                                  Whether the value is included in or excluded
                                  from the search. Defaults to `include`.
                        jobTitles:
                          type: array
                          maxItems: 25
                          description: Contact job-title filters
                          items:
                            type: object
                            title: Filter value
                            description: >-
                              A single string value used in an autopilot filter,
                              with include/exclude polarity.
                            required:
                              - value
                            properties:
                              value:
                                type: string
                                maxLength: 200
                                description: The literal value to match (non-empty)
                              type:
                                allOf:
                                  - type: string
                                    title: Filter polarity
                                    description: >-
                                      Whether matching values are included in or
                                      excluded from the autopilot search.
                                    enum:
                                      - include
                                      - exclude
                                description: >-
                                  Whether the value is included in or excluded
                                  from the search. Defaults to `include`.
                        departments:
                          type: array
                          maxItems: 25
                          description: Contact department filters
                          items:
                            type: object
                            title: Filter value
                            description: >-
                              A single string value used in an autopilot filter,
                              with include/exclude polarity.
                            required:
                              - value
                            properties:
                              value:
                                type: string
                                maxLength: 200
                                description: The literal value to match (non-empty)
                              type:
                                allOf:
                                  - type: string
                                    title: Filter polarity
                                    description: >-
                                      Whether matching values are included in or
                                      excluded from the autopilot search.
                                    enum:
                                      - include
                                      - exclude
                                description: >-
                                  Whether the value is included in or excluded
                                  from the search. Defaults to `include`.
                        seniorities:
                          type: array
                          maxItems: 25
                          description: Seniority slugs to include
                          items:
                            type: string
                            minLength: 1
                            maxLength: 200
                        yearsInCompany:
                          type: array
                          maxItems: 25
                          description: Tenure bands to include
                          items:
                            type: string
                            title: Years in current company
                            description: >-
                              Tenure band used when filtering contacts for
                              autopilot search.
                            enum:
                              - none
                              - lessThanOneYear
                              - oneToTwoYears
                              - threeToFiveYears
                              - sixToTenYears
                              - moreThanTenYears
                        contactKeywords:
                          allOf:
                            - type: object
                              title: Keyword filter
                              description: >-
                                Boolean keyword filter applied to account or
                                contact searches.


                                In responses this field is always present and
                                non-null even when no keywords are configured
                                (`{ "values": [], "type": "or" }`).
                              properties:
                                values:
                                  type: array
                                  maxItems: 25
                                  description: Keyword values combined according to `type`
                                  items:
                                    type: object
                                    title: Filter value
                                    description: >-
                                      A single string value used in an autopilot
                                      filter, with include/exclude polarity.
                                    required:
                                      - value
                                    properties:
                                      value:
                                        type: string
                                        maxLength: 200
                                        description: The literal value to match (non-empty)
                                      type:
                                        allOf:
                                          - type: string
                                            title: Filter polarity
                                            description: >-
                                              Whether matching values are included in
                                              or excluded from the autopilot search.
                                            enum:
                                              - include
                                              - exclude
                                        description: >-
                                          Whether the value is included in or
                                          excluded from the search. Defaults to
                                          `include`.
                                type:
                                  allOf:
                                    - type: string
                                      title: Keyword combination
                                      description: >-
                                        Boolean combinator applied across
                                        keyword filter values.
                                      enum:
                                        - or
                                        - and
                                  description: >-
                                    Boolean combinator across `values`. Defaults
                                    to `or`.
                          description: >-
                            Free-text keyword filter applied at the contact
                            level. Always present and non-null in responses.
                        changedJobIn90Days:
                          type: boolean
                          description: >-
                            When `true`, restrict to contacts who changed jobs
                            in the past 90 days. `false` (the default) applies
                            no filter — it is treated the same as omitting the
                            field.
                    referenceUrl:
                      type: string
                    maxPeoplePerCompany:
                      type: integer
                      minimum: 1
                    maxPeopleToAddPerDay:
                      type: integer
                      minimum: 1
                    searchContactPhones:
                      type: boolean
                    addContactsWithoutEmailAddresses:
                      type: boolean
                intentSignals:
                  type: array
                  description: >-
                    Replaces the full list of intent signals on the sequence. At
                    most one signal per `type`; `technologyUsed` and `jobHiring`
                    are mutually exclusive.
                  items:
                    type: object
                    title: Intent signal
                    description: >-
                      Tagged-union intent signal. Exactly one of `postEngagers`,
                      `competitorFollowers`, `technologyUsed`, `jobHiring` is
                      populated, matching `type`. The other three must be
                      omitted or `null`.


                      A sequence may have at most one signal per `type`.
                      `technologyUsed` and `jobHiring` are mutually exclusive —
                      a sequence may include at most one of the two.
                    required:
                      - type
                    properties:
                      type:
                        type: string
                        title: Intent signal type
                        description: >-
                          Discriminator selecting which intent-signal sub-object
                          is populated.


                          - `linkedInPostEngagers` — populate `postEngagers`.

                          - `competitorFollowers` — populate
                          `competitorFollowers`.

                          - `technologyUsed` — populate `technologyUsed`.

                          - `jobHiring` — populate `jobHiring`.
                        enum:
                          - linkedInPostEngagers
                          - competitorFollowers
                          - technologyUsed
                          - jobHiring
                      postEngagers:
                        type: object
                        nullable: true
                        description: Populated when `type` = `linkedInPostEngagers`.
                        required:
                          - mode
                        properties:
                          mode:
                            type: string
                            title: LinkedIn post engagers mode
                            description: >-
                              Selects which sub-object of the LinkedIn post
                              engagers signal is populated.


                              - `monitorProfiles` — populate `monitorProfiles`.

                              - `monitorPosts` — populate `monitorPosts`.
                            enum:
                              - monitorProfiles
                              - monitorPosts
                          icpFitPercentage:
                            type: integer
                            description: >-
                              Minimum ICP fit percentage to consider an engager.
                              Must be one of `20`, `40`, `60`, `80`, `100`.
                            enum:
                              - 20
                              - 40
                              - 60
                              - 80
                              - 100
                          monitorProfiles:
                            type: object
                            nullable: true
                            description: Populated when `mode` = `monitorProfiles`.
                            required:
                              - monitorForDays
                            properties:
                              monitorForDays:
                                type: integer
                                description: >-
                                  Window over which to track engagement. Must be
                                  one of `2`, `3`, `5`, `7`, `15`, `30`.
                                enum:
                                  - 2
                                  - 3
                                  - 5
                                  - 7
                                  - 15
                                  - 30
                              profiles:
                                type: array
                                maxItems: 10
                                description: LinkedIn profiles to monitor (at most 10)
                                items:
                                  type: object
                                  required:
                                    - linkedInUrl
                                  properties:
                                    linkedInUrl:
                                      type: string
                                      minLength: 1
                                      maxLength: 2048
                                      description: Public LinkedIn profile URL
                                    numberOfPosts:
                                      type: integer
                                      description: >-
                                        How many recent posts of this profile to
                                        monitor. Must be one of `3`, `5`, `10`,
                                        `15`, `20`.
                                      enum:
                                        - 3
                                        - 5
                                        - 10
                                        - 15
                                        - 20
                          monitorPosts:
                            type: object
                            nullable: true
                            description: Populated when `mode` = `monitorPosts`.
                            properties:
                              postUrls:
                                type: array
                                maxItems: 10
                                description: >-
                                  Public LinkedIn post URLs to monitor (at most
                                  10)
                                items:
                                  type: string
                                  minLength: 1
                                  maxLength: 2048
                      competitorFollowers:
                        type: object
                        nullable: true
                        description: Populated when `type` = `competitorFollowers`.
                        properties:
                          linkedInUrls:
                            type: array
                            maxItems: 10
                            description: Competitor LinkedIn company URLs (at most 10)
                            items:
                              type: string
                              minLength: 1
                              maxLength: 2048
                          entitiesToFind:
                            type: integer
                            minimum: 100
                            maximum: 500
                            description: Number of follower contacts to surface (100-500)
                          icpFitPercentage:
                            type: integer
                            description: >-
                              Minimum ICP fit percentage. Must be one of `20`,
                              `40`, `60`, `80`, `100`.
                            enum:
                              - 20
                              - 40
                              - 60
                              - 80
                              - 100
                      technologyUsed:
                        type: object
                        nullable: true
                        description: Populated when `type` = `technologyUsed`.
                        properties:
                          industryId:
                            type: integer
                            minimum: 1
                            nullable: true
                            description: Optional industry filter
                          technologies:
                            type: array
                            maxItems: 10
                            description: Technology slugs to match (at most 10)
                            items:
                              type: string
                              minLength: 1
                              maxLength: 200
                          useAndLogicInTechnologies:
                            type: boolean
                            description: >-
                              When `true`, all listed technologies must be
                              present (AND); otherwise any match (OR).
                          entitiesToFind:
                            type: integer
                            minimum: 1
                            maximum: 500
                            description: Number of matching contacts to surface (1-500)
                      jobHiring:
                        type: object
                        nullable: true
                        description: Populated when `type` = `jobHiring`.
                        required:
                          - keyword
                        properties:
                          keyword:
                            type: string
                            minLength: 1
                            maxLength: 200
                            description: Job-posting keyword to match
                          industries:
                            type: array
                            maxItems: 10
                            description: Industry ids to scope the search (at most 10)
                            items:
                              type: integer
                              minimum: 1
                          entitiesToFind:
                            type: integer
                            minimum: 1
                            maximum: 500
                            description: Number of matching contacts to surface (1-500)
      responses:
        '200':
          description: AI SDR sequence settings after update
          content:
            application/json:
              schema:
                type: object
                title: AI SDR sequence settings
                description: >-
                  AI SDR-specific settings of a sequence. Returned by `GET
                  .../settings` and `PATCH .../settings`. Generic sequence
                  fields (name, schedule, accounts, etc.) come from the generic
                  `GET /v3/sequences/{id}` and are NOT included here.
                properties:
                  offerId:
                    type: integer
                    format: int64
                    nullable: true
                    description: >-
                      Id of the saved offer the sequence was seeded from. `null`
                      when the sequence was created with inline
                      `offerGenerationInputs`.
                    readOnly: true
                  offerGenerationInputs:
                    type: object
                    title: Offer generation inputs
                    description: >-
                      Inline offer-context inputs used when the sequence is
                      created without referencing a saved offer. Mirrors the
                      shape of an offer.


                      On create, exactly one of `offerId` or
                      `offerGenerationInputs` must be provided.
                    properties:
                      companyName:
                        type: string
                        maxLength: 200
                        description: Name of the company being represented
                      companyDescription:
                        type: string
                        description: Short description of what the company does
                        maxLength: 3000
                      icp:
                        type: string
                        maxLength: 1000
                        description: Ideal Customer Profile — who the outreach is meant for
                      reasonForOutreach:
                        type: string
                        maxLength: 1000
                        description: >-
                          Free-form rationale shown to the AI SDR for why this
                          outreach is being made
                      caseStudies:
                        type: array
                        maxItems: 10
                        description: Case studies that demonstrate the company's value
                        items:
                          type: string
                          minLength: 1
                          maxLength: 1000
                      painPoints:
                        type: array
                        maxItems: 10
                        description: Customer pain points this outreach addresses
                        items:
                          type: string
                          minLength: 1
                          maxLength: 1000
                      proofPoints:
                        type: array
                        maxItems: 10
                        description: Proof points that back up the offer's claims
                        items:
                          type: string
                          minLength: 1
                          maxLength: 1000
                      valuePropositions:
                        type: array
                        maxItems: 10
                        description: Value propositions presented in messaging
                        items:
                          type: string
                          minLength: 1
                          maxLength: 1000
                      callToActions:
                        type: array
                        maxItems: 10
                        description: Call-to-action phrasings the AI SDR can use
                        items:
                          type: string
                          minLength: 1
                          maxLength: 1000
                  toneOfVoice:
                    type: object
                    title: Tone of voice (response)
                    description: >-
                      Tone-of-voice configuration as returned in sequence
                      responses. All four fields are always populated.
                    properties:
                      language:
                        type: string
                        title: Sales agent language
                        description: >-
                          Language used by the AI SDR when generating outreach
                          messages.
                        enum:
                          - englishUS
                          - englishUK
                          - spanish
                          - albanian
                          - armenian
                          - bengali
                          - bosnian
                          - bulgarian
                          - catalan
                          - chinese
                          - croatian
                          - czech
                          - danish
                          - dutch
                          - estonian
                          - finnish
                          - french
                          - georgian
                          - german
                          - greek
                          - hindi
                          - hungarian
                          - icelandic
                          - indonesian
                          - italian
                          - japanese
                          - kazakh
                          - korean
                          - latvian
                          - lithuanian
                          - macedonian
                          - malay
                          - mongolian
                          - norwegian
                          - persian
                          - polish
                          - portugueseEU
                          - portugueseBR
                          - romanian
                          - serbian
                          - slovak
                          - slovenian
                          - swedish
                          - thai
                          - turkish
                          - ukrainian
                          - vietnamese
                          - arabic
                          - uzbek
                          - hebrew
                      toneOfVoice:
                        type: string
                        title: Sales agent tone of voice
                        description: >-
                          Tone of voice used by the AI SDR when generating
                          outreach messages.
                        enum:
                          - confident
                          - persuasive
                          - witty
                          - straightforward
                          - empathetic
                      messageLength:
                        type: string
                        title: Personalized message length
                        description: Target length for AI-generated personalized messages.
                        enum:
                          - superShort
                          - short
                          - medium
                          - long
                      gender:
                        type: string
                        title: Sales agent gender
                        description: >-
                          Gender used by the AI SDR persona when generating
                          outreach messages.
                        enum:
                          - man
                          - woman
                  generatedStepTypes:
                    type: array
                    description: Step channels the AI SDR is allowed to generate
                    items:
                      type: string
                      title: Generated step type
                      description: >-
                        Channel of a step the AI SDR is allowed to generate when
                        building the sequence.
                      enum:
                        - email
                        - linkedIn
                        - call
                        - linkedInInMail
                        - linkedInAiVoice
                  providerLLM:
                    type: string
                    title: AI content provider
                    description: >-
                      LLM provider that generates the outreach content for the
                      AI SDR sequence.
                    enum:
                      - claude
                      - openAi
                      - gemini
                      - mistral
                  personalizationPoints:
                    type: object
                    title: Personalization points
                    description: >-
                      Which research signals the AI SDR is allowed to weave into
                      personalized messages. Every leaf is optional; absent
                      flags are treated as "no preference / keep the current
                      value".
                    properties:
                      basicResearch:
                        type: boolean
                        nullable: true
                        description: >-
                          Allow lightweight, low-cost personalization based on
                          basic contact and company facts
                      companyResearch:
                        type: object
                        nullable: true
                        description: Per-aspect toggles for company-level research signals
                        properties:
                          description:
                            type: boolean
                            nullable: true
                          mission:
                            type: boolean
                            nullable: true
                          techStack:
                            type: boolean
                            nullable: true
                          tenKReport:
                            type: boolean
                            nullable: true
                          recentReportForInvestors:
                            type: boolean
                            nullable: true
                          financialReport:
                            type: boolean
                            nullable: true
                          fundraisingResearch:
                            type: boolean
                            nullable: true
                          challenges:
                            type: boolean
                            nullable: true
                          recentNews:
                            type: boolean
                            nullable: true
                          predictChallengesAndCompetitors:
                            type: boolean
                            nullable: true
                          productsServicesDeepDive:
                            type: boolean
                            nullable: true
                          mergersAcquisitions:
                            type: boolean
                            nullable: true
                          customerReviews:
                            type: boolean
                            nullable: true
                      prospectResearch:
                        type: object
                        nullable: true
                        description: Per-aspect toggles for prospect-level research signals
                        properties:
                          aboutSection:
                            type: boolean
                            nullable: true
                          hobbiesInterests:
                            type: boolean
                            nullable: true
                          quotes:
                            type: boolean
                            nullable: true
                          achievements:
                            type: boolean
                            nullable: true
                          careerSummary:
                            type: boolean
                            nullable: true
                          jobResponsibilitiesInCurrentCompany:
                            type: boolean
                            nullable: true
                          achievementsInCurrentCompany:
                            type: boolean
                            nullable: true
                      industryResearch:
                        type: object
                        nullable: true
                        description: Per-aspect toggles for industry-level research signals
                        properties:
                          recentIndustryNews:
                            type: boolean
                            nullable: true
                          industryTrends:
                            type: boolean
                            nullable: true
                          competitorsOverviewNews:
                            type: boolean
                            nullable: true
                      contactFields:
                        type: object
                        nullable: true
                        description: >-
                          Which contact-record fields the AI SDR may reference.
                          Default fields and custom fields are selected
                          independently — `defaultFields` is an array of enum
                          values, `customFieldIds` is an array of integer ids.
                        properties:
                          enabled:
                            type: boolean
                            nullable: true
                            description: >-
                              Master toggle for using contact fields in
                              personalization
                          defaultFields:
                            type: array
                            nullable: true
                            description: >-
                              Built-in contact fields to reference. Must contain
                              no duplicates.
                            items:
                              type: string
                              title: Contact default field
                              description: >-
                                Built-in contact field selectable for AI SDR
                                personalization.
                              enum:
                                - firstName
                                - lastName
                                - title
                                - companySize
                                - industry
                                - city
                                - state
                                - country
                          customFieldIds:
                            type: array
                            nullable: true
                            description: >-
                              Ids of custom contact fields to reference. Each id
                              must be positive; the array must contain no
                              duplicates.
                            items:
                              type: integer
                              minimum: 1
                      customResearch:
                        type: object
                        nullable: true
                        description: >-
                          Free-form custom research instructions the AI SDR may
                          follow
                        properties:
                          enabled:
                            type: boolean
                            nullable: true
                            description: Master toggle for using custom research
                          instructions:
                            type: string
                            nullable: true
                            maxLength: 2000
                            description: >-
                              Free-form prompt describing the custom research
                              the AI SDR should perform
                  autopilot:
                    type: object
                    title: Autopilot settings (response)
                    description: Autopilot configuration as returned in sequence responses.
                    properties:
                      status:
                        type: string
                        title: Autopilot status
                        description: >-
                          Current autopilot status of the AI SDR sequence.


                          - `enabled` — autopilot is actively searching and
                          adding contacts.

                          - `disabled` — autopilot is turned off.

                          - `paused` — autopilot is paused.

                          - `disabledByLackOfContacts` — autopilot was
                          auto-disabled because no matching contacts were found.

                          - `disabledByContactsLimitExceeded` — autopilot was
                          auto-disabled because the team contacts limit was
                          reached.
                        enum:
                          - enabled
                          - disabled
                          - paused
                          - disabledByLackOfContacts
                          - disabledByContactsLimitExceeded
                      isSearchInProgress:
                        type: boolean
                        description: >-
                          Whether an autopilot contact search is currently
                          running for this sequence
                      filters:
                        allOf:
                          - type: object
                            title: Autopilot filters
                            description: >-
                              Account- and contact-level filter configuration
                              used by autopilot when searching for new contacts
                              to add to the sequence.


                              Most collections are capped at 25 items.
                              `accountKeywords` and `contactKeywords` are always
                              present and non-null in responses even when empty
                              (`{ "values": [], "type": "or" }`).
                            properties:
                              accountListIds:
                                type: array
                                maxItems: 25
                                description: Saved account-list ids the search is scoped to
                                items:
                                  type: object
                                  title: Integer filter value
                                  description: >-
                                    A single integer value used in an autopilot
                                    filter, with include/exclude polarity.
                                  required:
                                    - value
                                  properties:
                                    value:
                                      type: integer
                                      minimum: 1
                                      description: The literal integer id to match
                                    type:
                                      allOf:
                                        - type: string
                                          title: Filter polarity
                                          description: >-
                                            Whether matching values are included in
                                            or excluded from the autopilot search.
                                          enum:
                                            - include
                                            - exclude
                                      description: >-
                                        Whether the value is included in or
                                        excluded from the search. Defaults to
                                        `include`.
                              industries:
                                type: array
                                maxItems: 25
                                description: Industry filters
                                items:
                                  type: object
                                  title: Filter value
                                  description: >-
                                    A single string value used in an autopilot
                                    filter, with include/exclude polarity.
                                  required:
                                    - value
                                  properties:
                                    value:
                                      type: string
                                      maxLength: 200
                                      description: The literal value to match (non-empty)
                                    type:
                                      allOf:
                                        - type: string
                                          title: Filter polarity
                                          description: >-
                                            Whether matching values are included in
                                            or excluded from the autopilot search.
                                          enum:
                                            - include
                                            - exclude
                                      description: >-
                                        Whether the value is included in or
                                        excluded from the search. Defaults to
                                        `include`.
                              companyLocations:
                                type: array
                                maxItems: 25
                                description: Company location filters
                                items:
                                  type: object
                                  title: Filter value
                                  description: >-
                                    A single string value used in an autopilot
                                    filter, with include/exclude polarity.
                                  required:
                                    - value
                                  properties:
                                    value:
                                      type: string
                                      maxLength: 200
                                      description: The literal value to match (non-empty)
                                    type:
                                      allOf:
                                        - type: string
                                          title: Filter polarity
                                          description: >-
                                            Whether matching values are included in
                                            or excluded from the autopilot search.
                                          enum:
                                            - include
                                            - exclude
                                      description: >-
                                        Whether the value is included in or
                                        excluded from the search. Defaults to
                                        `include`.
                              companySizes:
                                type: array
                                maxItems: 25
                                description: Company size bands to include
                                items:
                                  type: string
                                  title: Company size
                                  description: >-
                                    Headcount band used when filtering companies
                                    for autopilot search.
                                  enum:
                                    - none
                                    - selfEmployed
                                    - ten
                                    - fifty
                                    - twoHundred
                                    - fiveHundred
                                    - oneThousand
                                    - fiveThousand
                                    - tenThousand
                                    - overTenThousand
                              headcountGrowth:
                                allOf:
                                  - type: object
                                    title: Headcount growth range
                                    description: >-
                                      Min/max range applied to the company's
                                      total headcount growth (percent). Either
                                      bound may be omitted.


                                      When both are provided, `min` must be less
                                      than or equal to `max`.
                                    properties:
                                      min:
                                        type: integer
                                        minimum: 0
                                        nullable: true
                                        description: Lower bound (inclusive), percent
                                      max:
                                        type: integer
                                        minimum: 0
                                        nullable: true
                                        description: Upper bound (inclusive), percent
                                nullable: true
                                description: Overall company headcount growth range
                              departmentHeadcountGrowth:
                                allOf:
                                  - type: object
                                    title: Department headcount growth range
                                    description: >-
                                      Min/max range applied to a specific
                                      department's headcount growth (percent).
                                      Either bound may be omitted.


                                      When both are provided, `min` must be less
                                      than or equal to `max`.
                                    required:
                                      - department
                                    properties:
                                      min:
                                        type: integer
                                        minimum: 0
                                        nullable: true
                                        description: Lower bound (inclusive), percent
                                      max:
                                        type: integer
                                        minimum: 0
                                        nullable: true
                                        description: Upper bound (inclusive), percent
                                      department:
                                        type: string
                                        maxLength: 200
                                        description: >-
                                          Department name the growth range applies
                                          to (non-empty)
                                nullable: true
                                description: Per-department headcount growth range
                              minRevenue:
                                allOf:
                                  - type: string
                                    title: Company revenue tier
                                    description: >-
                                      Annual revenue tier used when filtering
                                      companies for autopilot search.
                                    enum:
                                      - zeroMillion
                                      - halfMillion
                                      - oneMillion
                                      - twoAndHalfMillion
                                      - fiveMillion
                                      - tenMillion
                                      - twentyMillion
                                      - fiftyMillion
                                      - oneHundredMillion
                                      - fiveHundredMillion
                                      - oneThousandMillion
                                      - overOneThousandMillion
                                nullable: true
                                description: Minimum company revenue tier
                              maxRevenue:
                                allOf:
                                  - type: string
                                    title: Company revenue tier
                                    description: >-
                                      Annual revenue tier used when filtering
                                      companies for autopilot search.
                                    enum:
                                      - zeroMillion
                                      - halfMillion
                                      - oneMillion
                                      - twoAndHalfMillion
                                      - fiveMillion
                                      - tenMillion
                                      - twentyMillion
                                      - fiftyMillion
                                      - oneHundredMillion
                                      - fiveHundredMillion
                                      - oneThousandMillion
                                      - overOneThousandMillion
                                nullable: true
                                description: >-
                                  Maximum company revenue tier. When both
                                  `minRevenue` and `maxRevenue` are provided,
                                  `minRevenue` must be less than or equal to
                                  `maxRevenue`.
                              accountKeywords:
                                allOf:
                                  - type: object
                                    title: Keyword filter
                                    description: >-
                                      Boolean keyword filter applied to account
                                      or contact searches.


                                      In responses this field is always present
                                      and non-null even when no keywords are
                                      configured (`{ "values": [], "type": "or"
                                      }`).
                                    properties:
                                      values:
                                        type: array
                                        maxItems: 25
                                        description: >-
                                          Keyword values combined according to
                                          `type`
                                        items:
                                          type: object
                                          title: Filter value
                                          description: >-
                                            A single string value used in an
                                            autopilot filter, with include/exclude
                                            polarity.
                                          required:
                                            - value
                                          properties:
                                            value:
                                              type: string
                                              maxLength: 200
                                              description: The literal value to match (non-empty)
                                            type:
                                              allOf:
                                                - type: string
                                                  title: Filter polarity
                                                  description: >-
                                                    Whether matching values are included in
                                                    or excluded from the autopilot search.
                                                  enum:
                                                    - include
                                                    - exclude
                                              description: >-
                                                Whether the value is included in or
                                                excluded from the search. Defaults to
                                                `include`.
                                      type:
                                        allOf:
                                          - type: string
                                            title: Keyword combination
                                            description: >-
                                              Boolean combinator applied across
                                              keyword filter values.
                                            enum:
                                              - or
                                              - and
                                        description: >-
                                          Boolean combinator across `values`.
                                          Defaults to `or`.
                                description: >-
                                  Free-text keyword filter applied at the
                                  account level. Always present and non-null in
                                  responses.
                              isHiringOnLinkedIn:
                                type: boolean
                                description: >-
                                  When `true`, restrict to companies currently
                                  hiring on LinkedIn. `false` (the default)
                                  applies no filter — it is treated the same as
                                  omitting the field.
                              contactLocations:
                                type: array
                                maxItems: 25
                                description: Contact location filters
                                items:
                                  type: object
                                  title: Filter value
                                  description: >-
                                    A single string value used in an autopilot
                                    filter, with include/exclude polarity.
                                  required:
                                    - value
                                  properties:
                                    value:
                                      type: string
                                      maxLength: 200
                                      description: The literal value to match (non-empty)
                                    type:
                                      allOf:
                                        - type: string
                                          title: Filter polarity
                                          description: >-
                                            Whether matching values are included in
                                            or excluded from the autopilot search.
                                          enum:
                                            - include
                                            - exclude
                                      description: >-
                                        Whether the value is included in or
                                        excluded from the search. Defaults to
                                        `include`.
                              jobTitles:
                                type: array
                                maxItems: 25
                                description: Contact job-title filters
                                items:
                                  type: object
                                  title: Filter value
                                  description: >-
                                    A single string value used in an autopilot
                                    filter, with include/exclude polarity.
                                  required:
                                    - value
                                  properties:
                                    value:
                                      type: string
                                      maxLength: 200
                                      description: The literal value to match (non-empty)
                                    type:
                                      allOf:
                                        - type: string
                                          title: Filter polarity
                                          description: >-
                                            Whether matching values are included in
                                            or excluded from the autopilot search.
                                          enum:
                                            - include
                                            - exclude
                                      description: >-
                                        Whether the value is included in or
                                        excluded from the search. Defaults to
                                        `include`.
                              departments:
                                type: array
                                maxItems: 25
                                description: Contact department filters
                                items:
                                  type: object
                                  title: Filter value
                                  description: >-
                                    A single string value used in an autopilot
                                    filter, with include/exclude polarity.
                                  required:
                                    - value
                                  properties:
                                    value:
                                      type: string
                                      maxLength: 200
                                      description: The literal value to match (non-empty)
                                    type:
                                      allOf:
                                        - type: string
                                          title: Filter polarity
                                          description: >-
                                            Whether matching values are included in
                                            or excluded from the autopilot search.
                                          enum:
                                            - include
                                            - exclude
                                      description: >-
                                        Whether the value is included in or
                                        excluded from the search. Defaults to
                                        `include`.
                              seniorities:
                                type: array
                                maxItems: 25
                                description: Seniority slugs to include
                                items:
                                  type: string
                                  minLength: 1
                                  maxLength: 200
                              yearsInCompany:
                                type: array
                                maxItems: 25
                                description: Tenure bands to include
                                items:
                                  type: string
                                  title: Years in current company
                                  description: >-
                                    Tenure band used when filtering contacts for
                                    autopilot search.
                                  enum:
                                    - none
                                    - lessThanOneYear
                                    - oneToTwoYears
                                    - threeToFiveYears
                                    - sixToTenYears
                                    - moreThanTenYears
                              contactKeywords:
                                allOf:
                                  - type: object
                                    title: Keyword filter
                                    description: >-
                                      Boolean keyword filter applied to account
                                      or contact searches.


                                      In responses this field is always present
                                      and non-null even when no keywords are
                                      configured (`{ "values": [], "type": "or"
                                      }`).
                                    properties:
                                      values:
                                        type: array
                                        maxItems: 25
                                        description: >-
                                          Keyword values combined according to
                                          `type`
                                        items:
                                          type: object
                                          title: Filter value
                                          description: >-
                                            A single string value used in an
                                            autopilot filter, with include/exclude
                                            polarity.
                                          required:
                                            - value
                                          properties:
                                            value:
                                              type: string
                                              maxLength: 200
                                              description: The literal value to match (non-empty)
                                            type:
                                              allOf:
                                                - type: string
                                                  title: Filter polarity
                                                  description: >-
                                                    Whether matching values are included in
                                                    or excluded from the autopilot search.
                                                  enum:
                                                    - include
                                                    - exclude
                                              description: >-
                                                Whether the value is included in or
                                                excluded from the search. Defaults to
                                                `include`.
                                      type:
                                        allOf:
                                          - type: string
                                            title: Keyword combination
                                            description: >-
                                              Boolean combinator applied across
                                              keyword filter values.
                                            enum:
                                              - or
                                              - and
                                        description: >-
                                          Boolean combinator across `values`.
                                          Defaults to `or`.
                                description: >-
                                  Free-text keyword filter applied at the
                                  contact level. Always present and non-null in
                                  responses.
                              changedJobIn90Days:
                                type: boolean
                                description: >-
                                  When `true`, restrict to contacts who changed
                                  jobs in the past 90 days. `false` (the
                                  default) applies no filter — it is treated the
                                  same as omitting the field.
                        description: >-
                          Autopilot account/contact filter configuration. Always
                          present.
                      referenceUrl:
                        type: string
                        nullable: true
                        description: >-
                          Optional reference URL used to seed the autopilot
                          search
                      maxPeoplePerCompany:
                        type: integer
                        description: Maximum contacts to add per company
                      maxPeopleToAddPerDay:
                        type: integer
                        description: Maximum contacts to add per day
                      searchContactPhones:
                        type: boolean
                        description: Whether phone numbers are enriched during search
                      addContactsWithoutEmailAddresses:
                        type: boolean
                        description: >-
                          Whether contacts without an email address are still
                          added to the sequence
                  playbookId:
                    type: string
                    nullable: true
                    description: >-
                      Composite id of the attached playbook
                      (`{prefix}-{numericId}`), or `null` when no playbook is
                      attached.
                    readOnly: true
                  knowledgeBaseId:
                    type: integer
                    format: int64
                    nullable: true
                    description: >-
                      Id of the connected knowledge base, or `null` when none is
                      connected.
                    readOnly: true
                  approvalMode:
                    type: object
                    title: Approval mode (response)
                    description: Current approval-mode state of the sequence.
                    properties:
                      enabled:
                        type: boolean
                        description: >-
                          When `true`, AI-generated messages require human
                          approval before sending
                  intentSignals:
                    type: array
                    description: Configured intent signals. At most one per `type`.
                    items:
                      type: object
                      title: Intent signal
                      description: >-
                        Tagged-union intent signal. Exactly one of
                        `postEngagers`, `competitorFollowers`, `technologyUsed`,
                        `jobHiring` is populated, matching `type`. The other
                        three must be omitted or `null`.


                        A sequence may have at most one signal per `type`.
                        `technologyUsed` and `jobHiring` are mutually exclusive
                        — a sequence may include at most one of the two.
                      required:
                        - type
                      properties:
                        type:
                          type: string
                          title: Intent signal type
                          description: >-
                            Discriminator selecting which intent-signal
                            sub-object is populated.


                            - `linkedInPostEngagers` — populate `postEngagers`.

                            - `competitorFollowers` — populate
                            `competitorFollowers`.

                            - `technologyUsed` — populate `technologyUsed`.

                            - `jobHiring` — populate `jobHiring`.
                          enum:
                            - linkedInPostEngagers
                            - competitorFollowers
                            - technologyUsed
                            - jobHiring
                        postEngagers:
                          type: object
                          nullable: true
                          description: Populated when `type` = `linkedInPostEngagers`.
                          required:
                            - mode
                          properties:
                            mode:
                              type: string
                              title: LinkedIn post engagers mode
                              description: >-
                                Selects which sub-object of the LinkedIn post
                                engagers signal is populated.


                                - `monitorProfiles` — populate
                                `monitorProfiles`.

                                - `monitorPosts` — populate `monitorPosts`.
                              enum:
                                - monitorProfiles
                                - monitorPosts
                            icpFitPercentage:
                              type: integer
                              description: >-
                                Minimum ICP fit percentage to consider an
                                engager. Must be one of `20`, `40`, `60`, `80`,
                                `100`.
                              enum:
                                - 20
                                - 40
                                - 60
                                - 80
                                - 100
                            monitorProfiles:
                              type: object
                              nullable: true
                              description: Populated when `mode` = `monitorProfiles`.
                              required:
                                - monitorForDays
                              properties:
                                monitorForDays:
                                  type: integer
                                  description: >-
                                    Window over which to track engagement. Must
                                    be one of `2`, `3`, `5`, `7`, `15`, `30`.
                                  enum:
                                    - 2
                                    - 3
                                    - 5
                                    - 7
                                    - 15
                                    - 30
                                profiles:
                                  type: array
                                  maxItems: 10
                                  description: LinkedIn profiles to monitor (at most 10)
                                  items:
                                    type: object
                                    required:
                                      - linkedInUrl
                                    properties:
                                      linkedInUrl:
                                        type: string
                                        minLength: 1
                                        maxLength: 2048
                                        description: Public LinkedIn profile URL
                                      numberOfPosts:
                                        type: integer
                                        description: >-
                                          How many recent posts of this profile to
                                          monitor. Must be one of `3`, `5`, `10`,
                                          `15`, `20`.
                                        enum:
                                          - 3
                                          - 5
                                          - 10
                                          - 15
                                          - 20
                            monitorPosts:
                              type: object
                              nullable: true
                              description: Populated when `mode` = `monitorPosts`.
                              properties:
                                postUrls:
                                  type: array
                                  maxItems: 10
                                  description: >-
                                    Public LinkedIn post URLs to monitor (at
                                    most 10)
                                  items:
                                    type: string
                                    minLength: 1
                                    maxLength: 2048
                        competitorFollowers:
                          type: object
                          nullable: true
                          description: Populated when `type` = `competitorFollowers`.
                          properties:
                            linkedInUrls:
                              type: array
                              maxItems: 10
                              description: Competitor LinkedIn company URLs (at most 10)
                              items:
                                type: string
                                minLength: 1
                                maxLength: 2048
                            entitiesToFind:
                              type: integer
                              minimum: 100
                              maximum: 500
                              description: Number of follower contacts to surface (100-500)
                            icpFitPercentage:
                              type: integer
                              description: >-
                                Minimum ICP fit percentage. Must be one of `20`,
                                `40`, `60`, `80`, `100`.
                              enum:
                                - 20
                                - 40
                                - 60
                                - 80
                                - 100
                        technologyUsed:
                          type: object
                          nullable: true
                          description: Populated when `type` = `technologyUsed`.
                          properties:
                            industryId:
                              type: integer
                              minimum: 1
                              nullable: true
                              description: Optional industry filter
                            technologies:
                              type: array
                              maxItems: 10
                              description: Technology slugs to match (at most 10)
                              items:
                                type: string
                                minLength: 1
                                maxLength: 200
                            useAndLogicInTechnologies:
                              type: boolean
                              description: >-
                                When `true`, all listed technologies must be
                                present (AND); otherwise any match (OR).
                            entitiesToFind:
                              type: integer
                              minimum: 1
                              maximum: 500
                              description: Number of matching contacts to surface (1-500)
                        jobHiring:
                          type: object
                          nullable: true
                          description: Populated when `type` = `jobHiring`.
                          required:
                            - keyword
                          properties:
                            keyword:
                              type: string
                              minLength: 1
                              maxLength: 200
                              description: Job-posting keyword to match
                            industries:
                              type: array
                              maxItems: 10
                              description: Industry ids to scope the search (at most 10)
                              items:
                                type: integer
                                minimum: 1
                            entitiesToFind:
                              type: integer
                              minimum: 1
                              maximum: 500
                              description: Number of matching contacts to surface (1-500)
        '400':
          description: >-
            Validation failure on the request body, or referenced offer /
            autopilot filters / intent signal rejected, or sequence is not an AI
            SDR sequence.
          content:
            application/problem+json:
              schema:
                oneOf:
                  - allOf:
                      - allOf:
                          - type: object
                            title: Problem Details
                            description: >-
                              Bare RFC 9457 problem-details envelope. Returned
                              by middleware-level errors

                              that don't carry domain context: 401 Unauthorized
                              (auth middleware),

                              429 Too Many Requests (rate-limit middleware), and
                              route-level 404 / 405 /

                              415 (framework middleware).


                              Business and validation responses extend this
                              envelope and add additional

                              fields — see `business-problem.model.yaml` (adds
                              `code` slug) and

                              `validation-problem.model.yaml` (adds `errors[]`
                              array).
                            properties:
                              title:
                                type: string
                                description: Short, human-readable summary of the problem.
                              status:
                                type: integer
                                description: HTTP status code.
                                minimum: 100
                                maximum: 599
                              detail:
                                type: string
                                description: >-
                                  Human-readable explanation specific to this
                                  occurrence.
                          - type: object
                            properties:
                              errors:
                                type: array
                                description: >-
                                  List of field-level validation errors. Always
                                  non-empty when this

                                  envelope is returned. Each entry pins a single
                                  offending field

                                  via JSON Pointer plus a sanitized detail
                                  string.
                                items:
                                  type: object
                                  title: Validation Error
                                  description: A single field-level validation error.
                                  properties:
                                    pointer:
                                      type: string
                                      description: >-
                                        JSON Pointer (RFC 6901) to the offending
                                        field — e.g.

                                        `/steps/0/subject`.


                                        * An empty string (`""`) means the error
                                        applies to the whole
                                          request body (e.g. body is missing or unparseable).
                                        * For route or query parameter failures
                                        the pointer is the parameter
                                          name (e.g. `id`, `top`).
                                      example: /steps/0/subject
                                    detail:
                                      type: string
                                      description: >-
                                        Sanitized, human-readable explanation of
                                        this field's error. One of a

                                        small set of templates — `"Field is
                                        required."`, `"Value has an

                                        invalid type."`, `"Value has an invalid
                                        format."`, `"Request body is

                                        not valid JSON."`, `"The request body is
                                        required and cannot be

                                        empty."` — or a FluentValidator message
                                        on body endpoints.
                                      example: Field is required.
                        title: Validation Problem
                        description: >-
                          Input-validation error response at 400. Returned when
                          the request body

                          fails binding, FluentValidator rules, or when
                          route/query parameter

                          attribute validation (`[Range]`, `[Required]`) fails.
                          Route, query, and

                          body errors are combined into a single `errors[]`
                          array — clients should

                          not assume one error per request.
                      - example:
                          title: Validation failed
                          status: 400
                          detail: The request body contains validation errors.
                          errors:
                            - pointer: /name
                              detail: Field is required.
                  - allOf:
                      - allOf:
                          - type: object
                            title: Problem Details
                            description: >-
                              Bare RFC 9457 problem-details envelope. Returned
                              by middleware-level errors

                              that don't carry domain context: 401 Unauthorized
                              (auth middleware),

                              429 Too Many Requests (rate-limit middleware), and
                              route-level 404 / 405 /

                              415 (framework middleware).


                              Business and validation responses extend this
                              envelope and add additional

                              fields — see `business-problem.model.yaml` (adds
                              `code` slug) and

                              `validation-problem.model.yaml` (adds `errors[]`
                              array).
                            properties:
                              title:
                                type: string
                                description: Short, human-readable summary of the problem.
                              status:
                                type: integer
                                description: HTTP status code.
                                minimum: 100
                                maximum: 599
                              detail:
                                type: string
                                description: >-
                                  Human-readable explanation specific to this
                                  occurrence.
                          - type: object
                            properties:
                              code:
                                type: string
                                description: >-
                                  Stable, machine-readable error slug in the
                                  form

                                  `"<resource>.<variant>"`.


                                  * `resource` is the camelCased domain — e.g.
                                  `sequence`,
                                    `contact`, `inboxThread`, `blacklistDomainRule`.
                                  * `variant` is the camelCased specific failure
                                  mode — e.g.
                                    `notFound`, `forbidden`, `duplicateName`, `globalRuleReadOnly`.

                                  Use `code` for programmatic error handling;
                                  use `detail` for

                                  user-facing messages. Slugs are stable across
                                  server-side enum

                                  reorderings and never change meaning under a
                                  given resource.
                                pattern: ^[a-z][a-zA-Z0-9]*(\.[a-z][a-zA-Z0-9]*)+$
                                example: sequence.notFound
                        title: Business Problem
                        description: >-
                          Domain error response carrying a stable, namespaced
                          error slug.

                          Emitted for most 4xx responses (business 400, 403,
                          404, 409, …) and

                          for 503 when a downstream dependency is unavailable.
                      - example:
                          title: Bad Request
                          status: 400
                          detail: Pagination parameters are invalid.
                          code: sequence.invalidPagination
              examples:
                validation_failed:
                  summary: Body validation failure
                  value:
                    title: Validation failed
                    status: 400
                    detail: The request body contains validation errors.
                    errors:
                      - pointer: /
                        detail: At least one field must be provided.
                mutually_exclusive:
                  summary: offerId and offerGenerationInputs are mutually exclusive
                  value:
                    title: Validation failed
                    status: 400
                    detail: The request body contains validation errors.
                    errors:
                      - pointer: /
                        detail: >-
                          OfferId and OfferGenerationInputs are mutually
                          exclusive.
                invalid_offer:
                  summary: Switched-to offer not found
                  value:
                    title: Bad Request
                    status: 400
                    detail: Offer '4821' not found.
                    code: salesAgentSequence.invalidOffer
                invalid_autopilot_filters:
                  summary: Autopilot filters rejected
                  value:
                    title: Bad Request
                    status: 400
                    detail: Autopilot filters are invalid.
                    code: salesAgentSequence.invalidAutopilotFilters
                invalid_intent_signal:
                  summary: Intent signals rejected
                  value:
                    title: Bad Request
                    status: 400
                    detail: Intent signal payload is invalid.
                    code: salesAgentSequence.invalidIntentSignal
                not_ai_sdr:
                  summary: Sequence is not an AI SDR sequence
                  value:
                    title: Bad Request
                    status: 400
                    detail: Sequence '4821' is not an AI SDR sequence.
                    code: salesAgentSequence.invalidParameter
        '401':
          description: >-
            Unauthorized. The response body is empty; check the
            `WWW-Authenticate` header for the expected scheme.
          content:
            application/problem+json:
              schema:
                allOf:
                  - type: object
                    title: Problem Details
                    description: >-
                      Bare RFC 9457 problem-details envelope. Returned by
                      middleware-level errors

                      that don't carry domain context: 401 Unauthorized (auth
                      middleware),

                      429 Too Many Requests (rate-limit middleware), and
                      route-level 404 / 405 /

                      415 (framework middleware).


                      Business and validation responses extend this envelope and
                      add additional

                      fields — see `business-problem.model.yaml` (adds `code`
                      slug) and

                      `validation-problem.model.yaml` (adds `errors[]` array).
                    properties:
                      title:
                        type: string
                        description: Short, human-readable summary of the problem.
                      status:
                        type: integer
                        description: HTTP status code.
                        minimum: 100
                        maximum: 599
                      detail:
                        type: string
                        description: >-
                          Human-readable explanation specific to this
                          occurrence.
                  - example:
                      title: Unauthorized
                      status: 401
                      detail: Authentication credentials are missing or invalid.
        '403':
          description: >-
            AI SDR feature is not available for the caller's team, or the caller
            does not have access to this sequence.
          content:
            application/problem+json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        title: Problem Details
                        description: >-
                          Bare RFC 9457 problem-details envelope. Returned by
                          middleware-level errors

                          that don't carry domain context: 401 Unauthorized
                          (auth middleware),

                          429 Too Many Requests (rate-limit middleware), and
                          route-level 404 / 405 /

                          415 (framework middleware).


                          Business and validation responses extend this envelope
                          and add additional

                          fields — see `business-problem.model.yaml` (adds
                          `code` slug) and

                          `validation-problem.model.yaml` (adds `errors[]`
                          array).
                        properties:
                          title:
                            type: string
                            description: Short, human-readable summary of the problem.
                          status:
                            type: integer
                            description: HTTP status code.
                            minimum: 100
                            maximum: 599
                          detail:
                            type: string
                            description: >-
                              Human-readable explanation specific to this
                              occurrence.
                      - type: object
                        properties:
                          code:
                            type: string
                            description: >-
                              Stable, machine-readable error slug in the form

                              `"<resource>.<variant>"`.


                              * `resource` is the camelCased domain — e.g.
                              `sequence`,
                                `contact`, `inboxThread`, `blacklistDomainRule`.
                              * `variant` is the camelCased specific failure
                              mode — e.g.
                                `notFound`, `forbidden`, `duplicateName`, `globalRuleReadOnly`.

                              Use `code` for programmatic error handling; use
                              `detail` for

                              user-facing messages. Slugs are stable across
                              server-side enum

                              reorderings and never change meaning under a given
                              resource.
                            pattern: ^[a-z][a-zA-Z0-9]*(\.[a-z][a-zA-Z0-9]*)+$
                            example: sequence.notFound
                    title: Business Problem
                    description: >-
                      Domain error response carrying a stable, namespaced error
                      slug.

                      Emitted for most 4xx responses (business 400, 403, 404,
                      409, …) and

                      for 503 when a downstream dependency is unavailable.
                  - example:
                      title: Forbidden
                      status: 403
                      detail: You do not have permission to access this resource.
                      code: sequence.forbidden
              example:
                title: Forbidden
                status: 403
                detail: AI SDR feature is not available for your team.
                code: salesAgentSequence.forbidden
        '404':
          description: Sequence not found.
          content:
            application/problem+json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        title: Problem Details
                        description: >-
                          Bare RFC 9457 problem-details envelope. Returned by
                          middleware-level errors

                          that don't carry domain context: 401 Unauthorized
                          (auth middleware),

                          429 Too Many Requests (rate-limit middleware), and
                          route-level 404 / 405 /

                          415 (framework middleware).


                          Business and validation responses extend this envelope
                          and add additional

                          fields — see `business-problem.model.yaml` (adds
                          `code` slug) and

                          `validation-problem.model.yaml` (adds `errors[]`
                          array).
                        properties:
                          title:
                            type: string
                            description: Short, human-readable summary of the problem.
                          status:
                            type: integer
                            description: HTTP status code.
                            minimum: 100
                            maximum: 599
                          detail:
                            type: string
                            description: >-
                              Human-readable explanation specific to this
                              occurrence.
                      - type: object
                        properties:
                          code:
                            type: string
                            description: >-
                              Stable, machine-readable error slug in the form

                              `"<resource>.<variant>"`.


                              * `resource` is the camelCased domain — e.g.
                              `sequence`,
                                `contact`, `inboxThread`, `blacklistDomainRule`.
                              * `variant` is the camelCased specific failure
                              mode — e.g.
                                `notFound`, `forbidden`, `duplicateName`, `globalRuleReadOnly`.

                              Use `code` for programmatic error handling; use
                              `detail` for

                              user-facing messages. Slugs are stable across
                              server-side enum

                              reorderings and never change meaning under a given
                              resource.
                            pattern: ^[a-z][a-zA-Z0-9]*(\.[a-z][a-zA-Z0-9]*)+$
                            example: sequence.notFound
                    title: Business Problem
                    description: >-
                      Domain error response carrying a stable, namespaced error
                      slug.

                      Emitted for most 4xx responses (business 400, 403, 404,
                      409, …) and

                      for 503 when a downstream dependency is unavailable.
                  - example:
                      title: Not Found
                      status: 404
                      detail: The requested resource was not found.
                      code: sequence.notFound
              example:
                title: Not Found
                status: 404
                detail: Sequence '4821' not found.
                code: salesAgentSequence.notFound
        '409':
          description: Autopilot search throttled by the upstream service.
          content:
            application/problem+json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        title: Problem Details
                        description: >-
                          Bare RFC 9457 problem-details envelope. Returned by
                          middleware-level errors

                          that don't carry domain context: 401 Unauthorized
                          (auth middleware),

                          429 Too Many Requests (rate-limit middleware), and
                          route-level 404 / 405 /

                          415 (framework middleware).


                          Business and validation responses extend this envelope
                          and add additional

                          fields — see `business-problem.model.yaml` (adds
                          `code` slug) and

                          `validation-problem.model.yaml` (adds `errors[]`
                          array).
                        properties:
                          title:
                            type: string
                            description: Short, human-readable summary of the problem.
                          status:
                            type: integer
                            description: HTTP status code.
                            minimum: 100
                            maximum: 599
                          detail:
                            type: string
                            description: >-
                              Human-readable explanation specific to this
                              occurrence.
                      - type: object
                        properties:
                          code:
                            type: string
                            description: >-
                              Stable, machine-readable error slug in the form

                              `"<resource>.<variant>"`.


                              * `resource` is the camelCased domain — e.g.
                              `sequence`,
                                `contact`, `inboxThread`, `blacklistDomainRule`.
                              * `variant` is the camelCased specific failure
                              mode — e.g.
                                `notFound`, `forbidden`, `duplicateName`, `globalRuleReadOnly`.

                              Use `code` for programmatic error handling; use
                              `detail` for

                              user-facing messages. Slugs are stable across
                              server-side enum

                              reorderings and never change meaning under a given
                              resource.
                            pattern: ^[a-z][a-zA-Z0-9]*(\.[a-z][a-zA-Z0-9]*)+$
                            example: sequence.notFound
                    title: Business Problem
                    description: >-
                      Domain error response carrying a stable, namespaced error
                      slug.

                      Emitted for most 4xx responses (business 400, 403, 404,
                      409, …) and

                      for 503 when a downstream dependency is unavailable.
                  - example:
                      title: Conflict
                      status: 409
                      detail: A resource with this name already exists.
                      code: sequence.duplicateName
              example:
                title: Conflict
                status: 409
                detail: Autopilot search is currently throttled; retry later.
                code: salesAgentSequence.autopilotSearchThrottled
        '502':
          description: Upstream AI SDR service failure.
          content:
            application/problem+json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        title: Problem Details
                        description: >-
                          Bare RFC 9457 problem-details envelope. Returned by
                          middleware-level errors

                          that don't carry domain context: 401 Unauthorized
                          (auth middleware),

                          429 Too Many Requests (rate-limit middleware), and
                          route-level 404 / 405 /

                          415 (framework middleware).


                          Business and validation responses extend this envelope
                          and add additional

                          fields — see `business-problem.model.yaml` (adds
                          `code` slug) and

                          `validation-problem.model.yaml` (adds `errors[]`
                          array).
                        properties:
                          title:
                            type: string
                            description: Short, human-readable summary of the problem.
                          status:
                            type: integer
                            description: HTTP status code.
                            minimum: 100
                            maximum: 599
                          detail:
                            type: string
                            description: >-
                              Human-readable explanation specific to this
                              occurrence.
                      - type: object
                        properties:
                          code:
                            type: string
                            description: >-
                              Stable, machine-readable error slug in the form

                              `"<resource>.<variant>"`.


                              * `resource` is the camelCased domain — e.g.
                              `sequence`,
                                `contact`, `inboxThread`, `blacklistDomainRule`.
                              * `variant` is the camelCased specific failure
                              mode — e.g.
                                `notFound`, `forbidden`, `duplicateName`, `globalRuleReadOnly`.

                              Use `code` for programmatic error handling; use
                              `detail` for

                              user-facing messages. Slugs are stable across
                              server-side enum

                              reorderings and never change meaning under a given
                              resource.
                            pattern: ^[a-z][a-zA-Z0-9]*(\.[a-z][a-zA-Z0-9]*)+$
                            example: sequence.notFound
                    title: Business Problem
                    description: >-
                      Domain error response carrying a stable, namespaced error
                      slug.

                      Emitted for most 4xx responses (business 400, 403, 404,
                      409, …) and

                      for 503 when a downstream dependency is unavailable.
                  - example:
                      title: Bad Request
                      status: 400
                      detail: Pagination parameters are invalid.
                      code: sequence.invalidPagination
              example:
                title: Bad Gateway
                status: 502
                detail: Upstream service failure.
                code: salesAgentSequence.upstreamFailure
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authenticate every request with a Bearer token. Pass your Reply API key
        in the

        `Authorization` header:


        ```

        Authorization: Bearer <your-api-key>

        ```


        Get your API key from the Reply dashboard: **Settings → API Key**.

````