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

# Get Campaign

> Loads full details of a single campaign, including linked Style and Context, postActivityFilter, connectingSettings, and dmSettings.



## OpenAPI

````yaml https://api.goextrovert.com/client/v2/docs-json get /client/v2/campaign/{id}
openapi: 3.0.0
info:
  title: Extrovert Client API
  description: >-
    Public API for Extrovert platform integration. Use your API key for
    authentication.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.goextrovert.com/
    description: API Server
security: []
tags: []
paths:
  /client/v2/campaign/{id}:
    get:
      tags:
        - Campaigns
      summary: Get Campaign
      description: >-
        Loads full details of a single campaign, including linked Style and
        Context, postActivityFilter, connectingSettings, and dmSettings.
      operationId: CampaignClientApiController_getOne
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOneResponseDto'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientApiErrorResponseDto'
      security:
        - api-key: []
components:
  schemas:
    GetOneResponseDto:
      type: object
      properties:
        status:
          type: string
          description: Response status
          enum:
            - success
        data:
          type: object
          description: Loaded campaign
          properties:
            id:
              type: string
              format: uuid
              description: Campaign ID
              example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
            updatedAt:
              type: string
              description: Campaign update timestamp
              example: '2025-06-30T14:02:07.456Z'
            createdAt:
              type: string
              description: Campaign creation timestamp
              example: '2025-06-30T14:02:07.456Z'
            name:
              type: string
              description: Campaign name
            ownerContext:
              description: Context linked to the campaign (id + name).
              type: object
              properties:
                id:
                  type: string
                  format: uuid
                  description: Entity ID
                  example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                name:
                  type: string
                  description: Entity name
              required:
                - id
                - name
            ownerStyle:
              description: >-
                Style linked to the campaign. See `campaignOwnerStyleSchema`
                below.
              type: object
              properties:
                id:
                  type: string
                  format: uuid
                  description: Style ID
                  example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                updatedAt:
                  type: string
                  description: Style update timestamp
                  example: '2025-06-30T14:02:07.456Z'
                createdAt:
                  type: string
                  description: Style creation timestamp
                  example: '2025-06-30T14:02:07.456Z'
                name:
                  type: string
                  description: Style name
                isLearningModeEnabled:
                  type: boolean
                  description: >-
                    If `true`, comments the user both approved AND edited are
                    auto-saved as CommentExamples on this Style (capped at 20
                    entries). Untouched auto-approved comments and DMs are not
                    learned.
              required:
                - id
                - updatedAt
                - createdAt
                - name
                - isLearningModeEnabled
            postMaxAgeDays:
              type: number
              description: Legacy field, ignored at runtime. Always `30`. Read-only.
            isActive:
              type: boolean
              description: >-
                Whether the campaign is running. When `false` (paused), the post
                feed stops updating, no DM drafts are suggested, and no
                connection requests are sent.
            sharedUsers:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: User ID
                    example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                  updatedAt:
                    type: string
                    description: User update timestamp
                    example: '2025-06-30T14:02:07.456Z'
                  createdAt:
                    type: string
                    description: User creation timestamp
                    example: '2025-06-30T14:02:07.456Z'
                  firstName:
                    type: string
                    description: User first name
                  lastName:
                    type: string
                    description: User last name
                  name:
                    type: string
                    description: >-
                      Full display name — concatenation of `firstName` and
                      `lastName`, computed on the backend (read-only).
                  linkedInProfile:
                    description: >-
                      LinkedIn profile data scraped when the LinkedIn account
                      was connected (read-only). Missing when no LinkedIn
                      account is connected — its presence is a sufficient signal
                      that LinkedIn is connected.
                    type: object
                    properties:
                      id:
                        type: string
                        description: LinkedIn profile entity id
                      updatedAt:
                        type: string
                        description: LinkedIn profile update timestamp
                        example: '2025-06-30T14:02:07.456Z'
                      createdAt:
                        type: string
                        description: LinkedIn profile creation timestamp
                        example: '2025-06-30T14:02:07.456Z'
                      name:
                        type: string
                        description: >-
                          Name from the LinkedIn profile (scraped; not
                          user-editable in Extrovert).
                      email:
                        type: string
                        description: >-
                          Email used to log in to LinkedIn (may differ from the
                          Extrovert account email).
                      avatarUrl:
                        description: LinkedIn profile avatar URL.
                        type: string
                      linkedInUrl:
                        description: Public LinkedIn profile URL.
                        type: string
                    required:
                      - id
                      - updatedAt
                      - createdAt
                      - name
                      - email
                  selectedWorkspaceSettings:
                    description: >-
                      The current user's member record in the currently selected
                      team (role, creator flag, registrationType,
                      LinkedIn-connected flag). `id` here is the member-record
                      id and `user.id` is the user id; the team id itself is not
                      part of this object.
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Team member record id.
                        example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                      updatedAt:
                        type: string
                        description: Member record update timestamp
                        example: '2025-06-30T14:02:07.456Z'
                      createdAt:
                        type: string
                        description: Member record creation timestamp
                        example: '2025-06-30T14:02:07.456Z'
                      user:
                        description: >-
                          Reference to the user this member record belongs to —
                          carries only `id` and `name`. Fetch the full user
                          record separately if needed. May be missing if the
                          user was removed.
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            description: Entity ID
                            example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                          name:
                            type: string
                            description: Entity name
                        required:
                          - id
                          - name
                      role:
                        type: string
                        enum:
                          - MEMBER
                          - MANAGER
                          - ADMIN
                        description: The member's role in the team.
                      isCreator:
                        type: boolean
                        description: Whether this member is the team creator.
                      isLinkedInProfileConnected:
                        type: boolean
                        description: >-
                          Whether this member has a valid LinkedIn account
                          connected. Can only be `true` for the creator (and
                          only when the profile is actually linked and valid).
                      registrationType:
                        type: string
                        enum:
                          - NEW_USER_SIGNUP
                          - NEW_USER_WORKSPACE_INVITE_CONFIRM
                          - SUB_USER
                        description: >-
                          How this member entered the system. `NEW_USER_SIGNUP`
                          — signed up themselves;
                          `NEW_USER_WORKSPACE_INVITE_CONFIRM` — accepted a team
                          invite; `SUB_USER` — created as a managed account by
                          another user.
                      onboardingState:
                        type: string
                        enum:
                          - IN_PROGRESS
                          - POSTPONED
                          - COMPLETED
                          - SKIPPED
                        description: >-
                          AI assistant onboarding progress. `IN_PROGRESS` — user
                          is going through onboarding; `POSTPONED` — user
                          dismissed onboarding temporarily; `COMPLETED` —
                          onboarding finished; `SKIPPED` — user opted out.
                      onboardingDate:
                        type: string
                        description: ISO timestamp when `onboardingState` was last updated.
                        example: '2025-06-30T14:02:07.456Z'
                    required:
                      - id
                      - updatedAt
                      - createdAt
                      - role
                      - isCreator
                      - isLinkedInProfileConnected
                      - registrationType
                      - onboardingState
                      - onboardingDate
                  notifyAboutNewPosts:
                    type: boolean
                    description: >-
                      Whether email/push notifications about new matching posts
                      are enabled.
                  notifyAboutNewDms:
                    type: boolean
                    description: >-
                      Whether email/push notifications about new incoming DMs
                      are enabled.
                  isDmHistorySynced:
                    type: boolean
                    description: >-
                      When an account is connected, Extrovert syncs its DMs. Can
                      take several hours. Until this becomes `true`, the AI-DMs
                      unibox is not functional.
                  onboardingState:
                    type: string
                    enum:
                      - IN_PROGRESS
                      - POSTPONED
                      - COMPLETED
                      - SKIPPED
                    description: >-
                      AI assistant onboarding progress. `IN_PROGRESS` — user is
                      going through onboarding; `POSTPONED` — user dismissed
                      onboarding temporarily; `COMPLETED` — onboarding finished;
                      `SKIPPED` — user opted out.
                  onboardingDate:
                    type: string
                    description: ISO timestamp when `onboardingState` was last updated.
                    example: '2025-06-30T14:02:07.456Z'
                  linkedinUrl:
                    description: >-
                      User-provided LinkedIn profile URL stored at signup or
                      profile update (distinct from scraped
                      `linkedInProfile.linkedInUrl`).
                    type: string
                required:
                  - id
                  - updatedAt
                  - createdAt
                  - firstName
                  - lastName
                  - name
                  - notifyAboutNewPosts
                  - notifyAboutNewDms
                  - isDmHistorySynced
                  - onboardingState
                  - onboardingDate
              description: >-
                Team members explicitly granted access to this campaign. See the
                `user` config for the user-object shape. Empty if the campaign
                is private or shared with the whole team via
                `shareWithAllWorkspaceUsers`.
            skipTeammatesLeads:
              type: boolean
              description: >-
                If `true`, skip prospects that are already present in teammates'
                campaigns in the same team — avoids double outreach to the same
                person.
            applyCommentIntervalH:
              description: >-
                Natural comment spacing: minimum gap in hours between automated
                comments posted by this campaign (spreads approved comments over
                time so engagement feels natural). Stored in hours but the UI
                only exposes whole-day choices, so the value is always a
                multiple of 24 (currently 24, 48, or 72). Absent when the
                feature is off.
              type: number
            owner:
              description: >-
                Campaign owner — reduced projection of the user shape:
                `linkedInProfile` is omitted, and
                `selectedWorkspaceSettings.isLinkedInProfileConnected` here
                reflects the owner's own selected workspace (may differ from the
                campaign's workspace).
              type: object
              properties:
                id:
                  type: string
                  format: uuid
                  description: User ID
                  example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                updatedAt:
                  type: string
                  description: User update timestamp
                  example: '2025-06-30T14:02:07.456Z'
                createdAt:
                  type: string
                  description: User creation timestamp
                  example: '2025-06-30T14:02:07.456Z'
                firstName:
                  type: string
                  description: User first name
                lastName:
                  type: string
                  description: User last name
                name:
                  type: string
                  description: >-
                    Full display name — concatenation of `firstName` and
                    `lastName`, computed on the backend (read-only).
                linkedInProfile:
                  description: >-
                    LinkedIn profile data scraped when the LinkedIn account was
                    connected (read-only). Missing when no LinkedIn account is
                    connected — its presence is a sufficient signal that
                    LinkedIn is connected.
                  type: object
                  properties:
                    id:
                      type: string
                      description: LinkedIn profile entity id
                    updatedAt:
                      type: string
                      description: LinkedIn profile update timestamp
                      example: '2025-06-30T14:02:07.456Z'
                    createdAt:
                      type: string
                      description: LinkedIn profile creation timestamp
                      example: '2025-06-30T14:02:07.456Z'
                    name:
                      type: string
                      description: >-
                        Name from the LinkedIn profile (scraped; not
                        user-editable in Extrovert).
                    email:
                      type: string
                      description: >-
                        Email used to log in to LinkedIn (may differ from the
                        Extrovert account email).
                    avatarUrl:
                      description: LinkedIn profile avatar URL.
                      type: string
                    linkedInUrl:
                      description: Public LinkedIn profile URL.
                      type: string
                  required:
                    - id
                    - updatedAt
                    - createdAt
                    - name
                    - email
                selectedWorkspaceSettings:
                  description: >-
                    The current user's member record in the currently selected
                    team (role, creator flag, registrationType,
                    LinkedIn-connected flag). `id` here is the member-record id
                    and `user.id` is the user id; the team id itself is not part
                    of this object.
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      description: Team member record id.
                      example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                    updatedAt:
                      type: string
                      description: Member record update timestamp
                      example: '2025-06-30T14:02:07.456Z'
                    createdAt:
                      type: string
                      description: Member record creation timestamp
                      example: '2025-06-30T14:02:07.456Z'
                    user:
                      description: >-
                        Reference to the user this member record belongs to —
                        carries only `id` and `name`. Fetch the full user record
                        separately if needed. May be missing if the user was
                        removed.
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: Entity ID
                          example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                        name:
                          type: string
                          description: Entity name
                      required:
                        - id
                        - name
                    role:
                      type: string
                      enum:
                        - MEMBER
                        - MANAGER
                        - ADMIN
                      description: The member's role in the team.
                    isCreator:
                      type: boolean
                      description: Whether this member is the team creator.
                    isLinkedInProfileConnected:
                      type: boolean
                      description: >-
                        Whether this member has a valid LinkedIn account
                        connected. Can only be `true` for the creator (and only
                        when the profile is actually linked and valid).
                    registrationType:
                      type: string
                      enum:
                        - NEW_USER_SIGNUP
                        - NEW_USER_WORKSPACE_INVITE_CONFIRM
                        - SUB_USER
                      description: >-
                        How this member entered the system. `NEW_USER_SIGNUP` —
                        signed up themselves;
                        `NEW_USER_WORKSPACE_INVITE_CONFIRM` — accepted a team
                        invite; `SUB_USER` — created as a managed account by
                        another user.
                    onboardingState:
                      type: string
                      enum:
                        - IN_PROGRESS
                        - POSTPONED
                        - COMPLETED
                        - SKIPPED
                      description: >-
                        AI assistant onboarding progress. `IN_PROGRESS` — user
                        is going through onboarding; `POSTPONED` — user
                        dismissed onboarding temporarily; `COMPLETED` —
                        onboarding finished; `SKIPPED` — user opted out.
                    onboardingDate:
                      type: string
                      description: ISO timestamp when `onboardingState` was last updated.
                      example: '2025-06-30T14:02:07.456Z'
                  required:
                    - id
                    - updatedAt
                    - createdAt
                    - role
                    - isCreator
                    - isLinkedInProfileConnected
                    - registrationType
                    - onboardingState
                    - onboardingDate
                notifyAboutNewPosts:
                  type: boolean
                  description: >-
                    Whether email/push notifications about new matching posts
                    are enabled.
                notifyAboutNewDms:
                  type: boolean
                  description: >-
                    Whether email/push notifications about new incoming DMs are
                    enabled.
                isDmHistorySynced:
                  type: boolean
                  description: >-
                    When an account is connected, Extrovert syncs its DMs. Can
                    take several hours. Until this becomes `true`, the AI-DMs
                    unibox is not functional.
                onboardingState:
                  type: string
                  enum:
                    - IN_PROGRESS
                    - POSTPONED
                    - COMPLETED
                    - SKIPPED
                  description: >-
                    AI assistant onboarding progress. `IN_PROGRESS` — user is
                    going through onboarding; `POSTPONED` — user dismissed
                    onboarding temporarily; `COMPLETED` — onboarding finished;
                    `SKIPPED` — user opted out.
                onboardingDate:
                  type: string
                  description: ISO timestamp when `onboardingState` was last updated.
                  example: '2025-06-30T14:02:07.456Z'
                linkedinUrl:
                  description: >-
                    User-provided LinkedIn profile URL stored at signup or
                    profile update (distinct from scraped
                    `linkedInProfile.linkedInUrl`).
                  type: string
              required:
                - id
                - updatedAt
                - createdAt
                - firstName
                - lastName
                - name
                - notifyAboutNewPosts
                - notifyAboutNewDms
                - isDmHistorySynced
                - onboardingState
                - onboardingDate
            isDeleted:
              type: boolean
              description: >-
                Whether the campaign has been deleted. Deleted campaigns are not
                usable and should be treated as removed.
            isIndirectEngagementEnabled:
              type: boolean
              description: >-
                Indirect engagement feature. If `true`, Extrovert also pulls
                indirect posts for the campaign — posts from the people the
                prospect engages with most frequently (content the prospect is
                likely to see in their own feed). Main use case: reach prospects
                who rarely post themselves by commenting on third-party posts
                they're likely to see.
            postActivityFilter:
              description: >-
                Post filter applied by this campaign to decide which posts
                qualify for engagement. See `postActivityFilterSchema` above for
                fields.
              type: object
              properties:
                postDate:
                  type: string
                  enum:
                    - NEWER_THAN_1_DAY
                    - NEWER_THAN_2_DAYS
                    - NEWER_THAN_3_DAYS
                    - NEWER_THAN_4_DAYS
                    - NEWER_THAN_5_DAYS
                    - NEWER_THAN_6_DAYS
                    - NEWER_THAN_1_WEEK
                    - NEWER_THAN_2_WEEKS
                    - NEWER_THAN_3_WEEKS
                    - NEWER_THAN_4_WEEKS
                  description: Show only posts within this age window.
                emotionTypes:
                  type: array
                  items:
                    type: string
                    enum:
                      - THOUGHT_LEADERSHIP
                      - BUSINESS_ISSUES
                      - COMPANY_NEWS_OR_ACHIEVEMENTS
                      - OFFLINE_EVENTS
                      - ONLINE_EVENTS
                      - SOCIAL_ISSUES
                      - OWN_PRODUCT_PROMOTION
                      - JOB_RELATED
                      - PERSONAL_LIFE_BLOG
                      - POLITICS
                      - COMMENT_X_TO_GET_Y
                      - EXTRA_SENSITIVE
                      - OTHER
                  description: >-
                    Show only posts whose AI-detected type matches one of these
                    values. Pass an empty array to include all types.
                monitoredTopicIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: >-
                    Show only posts that match at least one of these Monitored
                    Topic ids. Applies to `TARGET_USER` campaigns only — empty
                    for `KEYWORD`.
                prospectLastCommentedTime:
                  description: >-
                    Optional: hide posts from prospects you already commented on
                    within this time window. Applies to `TARGET_USER`
                    (Prospects) campaigns only — omit it for `KEYWORD` (Topic)
                    campaigns; the backend rejects it there.
                  type: string
                  enum:
                    - MORE_THAN_1_DAY_AGO
                    - MORE_THAN_3_DAYS_AGO
                    - MORE_THAN_1_WEEK_AGO
                    - MORE_THAN_2_WEEKS_AGO
                    - MORE_THAN_3_WEEKS_AGO
                    - MORE_THAN_1_MONTH_AGO
                    - MORE_THAN_2_MONTHS_AGO
                prospectNumberOfTouchPoints:
                  description: >-
                    Optional: show only posts whose author you've already
                    commented on this many times. Applies to `TARGET_USER`
                    (Prospects) campaigns only — omit it for `KEYWORD` (Topic)
                    campaigns; the backend rejects it there.
                  type: string
                  enum:
                    - COMMENTED_1_TIME
                    - COMMENTED_2_TIMES
                    - COMMENTED_3_TIMES
                    - COMMENTED_4_TIMES
                    - COMMENTED_5_TIMES
                    - COMMENTED_6_TIMES
                postsNumberPerProspect:
                  description: >-
                    Optional: cap how many posts per prospect appear in the
                    feed. Applies to `TARGET_USER` (Prospects) campaigns only —
                    omit it for `KEYWORD` (Topic) campaigns; the backend rejects
                    it there.
                  type: string
                  enum:
                    - MAX_1_POST
                    - MAX_2_POSTS
                    - MAX_3_POSTS
                    - MAX_4_POSTS
                    - MAX_5_POSTS
                isShowDirectPostFirstEnabled:
                  description: >-
                    Show direct posts (written by the prospect themselves) above
                    indirect posts (posts from people the prospect engages with
                    — content the prospect is likely to see in their own feed).
                  type: boolean
                minPostLikes:
                  description: >-
                    Minimum number of likes a post must have to qualify (1–50).
                    Applies to `KEYWORD` campaigns only; absent when the filter
                    is disabled.
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - postDate
                - emotionTypes
                - monitoredTopicIds
            type:
              type: string
              enum:
                - TARGET_USER
                - KEYWORD
              description: >-
                Campaign type. `TARGET_USER` engages with a specific list of
                LinkedIn profiles; `KEYWORD` discovers posts by bound topics.
                Backend values `TARGET_USER` / `KEYWORD` correspond to
                user-facing 'Prospects campaign' / 'Topic campaign'.
            connectingSettings:
              description: >-
                Connection-request automation settings for this campaign. See
                `connectingSettingsSchema` below.
              type: object
              properties:
                isSendConnectionRequestEnabled:
                  type: boolean
                  description: >-
                    Master switch: enable automatic connection requests from
                    this campaign. When `false`, no connection requests are sent
                    regardless of the trigger flags below.
                sendConnectionRequestOnDirectCommentCount:
                  description: >-
                    Direct-comment trigger: send a connection request once the
                    user has commented this many times under the prospect's own
                    posts.
                  type: integer
                  exclusiveMinimum: true
                  maximum: 9007199254740991
                  minimum: 0
                isSendConnectionRequestOnIndirectCommentEnabled:
                  description: >-
                    Enable the indirect-comment trigger: also count comments
                    left under indirect posts (posts from people the prospect
                    engages with — content the prospect is likely to see in
                    their own feed) toward a connection request. Requires the
                    indirect-engagement feature (`isIndirectEngagementEnabled`)
                    to be on.
                  type: boolean
                sendConnectionRequestOnIndirectCommentCount:
                  description: >-
                    Number of comments under indirect posts needed to trigger a
                    connection request.
                  type: integer
                  exclusiveMinimum: true
                  maximum: 9007199254740991
                  minimum: 0
                isSendConnectionRequestOnTimeoutEnabled:
                  description: >-
                    Enable the timeout trigger: send a connection request after
                    the prospect has been in the campaign for N days even if no
                    other trigger has fired.
                  type: boolean
                sendConnectionRequestOnTimeoutDays:
                  description: >-
                    Number of days in the campaign before the timeout
                    connection-request trigger fires.
                  type: integer
                  exclusiveMinimum: true
                  maximum: 9007199254740991
                  minimum: 0
                isSendConnectionRequestOnNoPostsEnabled:
                  description: >-
                    Send a connection request immediately when there is nothing
                    to comment on. If the indirect-engagement feature
                    (`isIndirectEngagementEnabled`) and the indirect-comment
                    trigger are both on, this fires only when the prospect has
                    no direct posts AND no indirect posts (no point waiting for
                    comments when there's nothing to comment under). Otherwise
                    it fires when the prospect has no direct posts.
                  type: boolean
              required:
                - isSendConnectionRequestEnabled
            dmSettings:
              description: >-
                Direct-message automation settings for this campaign. See
                `dmSettingsSchema` below.
              type: object
              properties:
                isGenerateDmEnabled:
                  type: boolean
                  description: >-
                    Master switch: enable automatic DM drafting for this
                    campaign. When `false`, no DMs are suggested regardless of
                    the trigger flags below.
                isGenerateDmOnConnectEnabled:
                  description: >-
                    Enable the on-connect trigger: suggest a first DM once the
                    prospect accepts the connection request.
                  type: boolean
                generateDmOnConnectAfterDaysCount:
                  description: >-
                    Number of days to wait after the prospect accepts the
                    connection before suggesting the first DM.
                  type: integer
                  exclusiveMinimum: true
                  maximum: 9007199254740991
                  minimum: 0
                isGenerateDmOnRelevantPostEnabled:
                  description: >-
                    Enable the relevant-post trigger: suggest a follow-up DM
                    whenever the prospect posts something referenceable (e.g. an
                    event they attended, a fact about them — not generic thought
                    leadership). The trigger fires on post discovery; commenting
                    on the post is not required.
                  type: boolean
                generateDmOnRelevantPostAfterDaysCount:
                  description: >-
                    Minimum number of days that must pass since the last message
                    in the DM thread before the relevant-post trigger is allowed
                    to fire. Prevents over-messaging the same prospect when they
                    post frequently.
                  type: integer
                  exclusiveMinimum: true
                  maximum: 9007199254740991
                  minimum: 0
                isGenerateDmOnTimeoutEnabled:
                  description: >-
                    Enable the timeout trigger: suggest a follow-up DM after N
                    days of silence in the conversation, regardless of other
                    triggers.
                  type: boolean
                generateDmOnTimeoutAfterDaysCount:
                  description: >-
                    Number of days of silence before the timeout DM trigger
                    fires.
                  type: integer
                  exclusiveMinimum: true
                  maximum: 9007199254740991
                  minimum: 0
              required:
                - isGenerateDmEnabled
            shareWithAllWorkspaceUsers:
              type: boolean
              description: Whether the campaign is shared with all members of the team.
            manualPostsSyncAvailableAfter:
              description: >-
                ISO 8601: earliest time the manual 'Check for new posts' action
                may be triggered again. Omitted when the action is available
                immediately.
              type: string
              example: '2025-06-30T14:02:07.456Z'
        message:
          type: string
          description: Success message
          example: Operation completed successfully
      required:
        - status
        - data
        - message
    ClientApiErrorResponseDto:
      type: object
      properties:
        status:
          type: string
          description: Response status
          example: error
          enum:
            - error
        data:
          type: object
          description: Response data
          example: null
        message:
          type: string
          description: Error message
          example: An error occurred while processing the request
      required:
        - status
        - data
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: X-API-Key
      description: API Key for authentication

````