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

# Add Campaign Contacts

> Add contacts to the audience. Each contact is recorded in AnyCRM, then
upserted into Salesforge (created if new, updated if the email already
exists) and enrolled into the sequence right away. Allowed while the campaign
is draft or paused (enrolling a not-yet-sending sequence is fine; leads simply
wait for launch/resume); once it is actively sending or terminal the audience
is frozen (409 ``campaign_audience_locked``).



## OpenAPI

````yaml /openapi-generated.json post /outreach/campaigns/{campaign_id}/contacts
openapi: 3.1.0
info:
  title: anycrm-api
  version: 0.0.1
servers: []
security: []
tags:
  - name: Customer Intelligence
    description: >-
      Company research and ICP-fit scoring — create a research run, track its
      progress, and read back scored companies as leads.
  - name: Outreach
    description: >-
      The cold-email management console — domains, mailboxes, and campaigns — as
      a thin control plane over the SalesForge stack.
  - name: AnyCard
    description: >-
      Authenticated CRUD for AnyCard, the org's digital business-card /
      lead-capture product.
  - name: AnyCard Events
    description: >-
      Event-attribution analytics for AnyCard — which captured leads converted,
      broken down by source, owner, and deal.
  - name: AnyCard Share Links
    description: >-
      Unauthenticated endpoints reached by anyone who scans a QR code or opens a
      shared AnyCard link.
  - name: AI
    description: >-
      A streaming (SSE) AI chat endpoint with account-commit actions it can take
      on the caller's behalf.
  - name: Analytics Assistant
    description: >-
      The natural-language analytics assistant — a guarded text-to-SQL loop
      (SSE) that answers ad-hoc questions over the org's CRM data as a
      least-privilege, read-only database role.
  - name: Account Readiness
    description: >-
      Account Readiness Profiles — AI-scored signals on whether an account is
      ready for outreach or expansion, computed via a Temporal workflow.
  - name: Integrations
    description: >-
      Pipedream Connect — issuing connect tokens and managing the org's
      connected third-party accounts.
  - name: Feedback
    description: >-
      User-submitted platform feedback (bug reports, feature requests) — global,
      not scoped to one organization.
  - name: Public Media
    description: >-
      Unauthenticated image reads for publicly-embeddable assets (card photos,
      inline email images) — allowlisted by key shape; everything else in the
      storage bucket stays private.
  - name: Service Health
    description: Service liveness.
paths:
  /outreach/campaigns/{campaign_id}/contacts:
    post:
      tags:
        - Outreach
      summary: Add Campaign Contacts
      description: >-
        Add contacts to the audience. Each contact is recorded in AnyCRM, then

        upserted into Salesforge (created if new, updated if the email already

        exists) and enrolled into the sequence right away. Allowed while the
        campaign

        is draft or paused (enrolling a not-yet-sending sequence is fine; leads
        simply

        wait for launch/resume); once it is actively sending or terminal the
        audience

        is frozen (409 ``campaign_audience_locked``).
      operationId: add_campaign_contacts_outreach_campaigns__campaign_id__contacts_post
      parameters:
        - name: campaign_id
          in: path
          required: true
          schema:
            type: string
            title: Campaign Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactIdsBody'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: >-
                  Response Add Campaign Contacts Outreach Campaigns  Campaign
                  Id  Contacts Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    ContactIdsBody:
      properties:
        contact_ids:
          items:
            type: string
          type: array
          title: Contact Ids
      type: object
      required:
        - contact_ids
      title: ContactIdsBody
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````