> ## 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.

# Create Run



## OpenAPI

````yaml /openapi-generated.json post /customer-intelligence/runs
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:
  /customer-intelligence/runs:
    post:
      tags:
        - Customer Intelligence
      summary: Create Run
      operationId: create_run_customer_intelligence_runs_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerIntelRunCreateBody'
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerIntelRunResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    CustomerIntelRunCreateBody:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        company_names:
          items:
            type: string
          type: array
          maxItems: 500
          title: Company Names
        company_websites:
          items:
            type: string
          type: array
          maxItems: 500
          title: Company Websites
        company_linkedin_urls:
          items:
            type: string
          type: array
          maxItems: 500
          title: Company Linkedin Urls
        person_names:
          items:
            $ref: '#/components/schemas/PersonNameInput'
          type: array
          maxItems: 500
          title: Person Names
        person_linkedin_urls:
          items:
            type: string
          type: array
          maxItems: 500
          title: Person Linkedin Urls
        icp:
          anyOf:
            - $ref: '#/components/schemas/ICPConfigBody'
            - type: 'null'
        discovery_count:
          anyOf:
            - type: integer
              maximum: 200
              minimum: 1
            - type: 'null'
          title: Discovery Count
        lookalike_seeds:
          items:
            $ref: '#/components/schemas/LookalikeSeed'
          type: array
          maxItems: 50
          title: Lookalike Seeds
        document:
          anyOf:
            - $ref: '#/components/schemas/DocumentRef'
            - type: 'null'
        deliverables:
          $ref: '#/components/schemas/DeliverableSelection'
        phases:
          $ref: '#/components/schemas/PhaseToggles'
        champion:
          $ref: '#/components/schemas/ChampionConfig'
        concurrency:
          $ref: '#/components/schemas/ConcurrencyConfig'
        providers:
          $ref: '#/components/schemas/ProviderConfig'
        webhook_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Webhook Url
        org_slug:
          anyOf:
            - type: string
            - type: 'null'
          title: Org Slug
        requester_email:
          anyOf:
            - type: string
            - type: 'null'
          title: Requester Email
      type: object
      title: CustomerIntelRunCreateBody
      description: >-
        Unified run input. At least one input source must be provided. Seeds are

        classified server-side; vague seeds climb the resolution waterfall and
        may

        pause at the resolution gate before the expensive research fan-out.
    CustomerIntelRunResponse:
      properties:
        id:
          type: string
          title: Id
        org_id:
          type: string
          title: Org Id
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        status:
          type: string
          title: Status
        phase:
          anyOf:
            - type: string
            - type: 'null'
          title: Phase
        awaiting_gate:
          anyOf:
            - type: string
            - type: 'null'
          title: Awaiting Gate
        temporal_workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Temporal Workflow Id
        targets_total:
          type: integer
          title: Targets Total
          default: 0
        targets_completed:
          type: integer
          title: Targets Completed
          default: 0
        targets_scored:
          type: integer
          title: Targets Scored
          default: 0
        targets_errored:
          type: integer
          title: Targets Errored
          default: 0
        targets_filtered:
          type: integer
          title: Targets Filtered
          default: 0
        outcome_counts:
          additionalProperties: true
          type: object
          title: Outcome Counts
        deliverables:
          additionalProperties: true
          type: object
          title: Deliverables
        report_files:
          additionalProperties:
            type: string
          type: object
          title: Report Files
        shortlist_selection:
          additionalProperties: true
          type: object
          title: Shortlist Selection
        cost:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Cost
        health:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Health
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        created_by:
          anyOf:
            - type: string
            - type: 'null'
          title: Created By
        created_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Created At
        updated_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Updated At
      type: object
      required:
        - id
        - org_id
        - status
      title: CustomerIntelRunResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PersonNameInput:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
        company_name:
          type: string
          title: Company Name
          default: ''
        company_website:
          type: string
          title: Company Website
          default: ''
      type: object
      required:
        - name
      title: PersonNameInput
      description: |-
        A person seed by name, optionally anchored to a company for reliable
        resolution (domain/company preferred over bare name).
    ICPConfigBody:
      properties:
        revenue_min:
          type: integer
          title: Revenue Min
          description: Minimum target company annual revenue, in USD.
          default: 50000000
        revenue_max:
          type: integer
          title: Revenue Max
          description: Maximum target company annual revenue, in USD.
          default: 500000000
        headcount_min:
          type: integer
          title: Headcount Min
          description: Minimum target company employee headcount.
          default: 100
        headcount_max:
          type: integer
          title: Headcount Max
          description: Maximum target company employee headcount.
          default: 5000
        geography:
          type: string
          title: Geography
          description: Target company geography, e.g. 'US', 'EU', 'Global'.
          default: US
        trustpilot_max:
          type: number
          title: Trustpilot Max
          description: >-
            Trustpilot rating (0-5) a company must be AT OR BELOW to show pain.
            Lower means worse reviews and a better prospect, not a quality bar.
          default: 3.5
        bbb_max:
          type: number
          title: Bbb Max
          description: >-
            BBB rating (0-5) a company must be at or below to show pain. Same
            direction as trustpilot_max.
          default: 3
        g2_max:
          type: number
          title: G2 Max
          description: >-
            G2 rating (0-5) a company must be at or below to show pain. Same
            direction as trustpilot_max.
          default: 3.5
        min_review_count:
          type: integer
          title: Min Review Count
          description: >-
            Minimum review count for a company's rating to be treated as
            reliable.
          default: 50
        pain_threshold:
          type: number
          title: Pain Threshold
          description: >-
            Minimum computed pain score (0-100) for a company to qualify as a
            lead.
          default: 50
        deep_enrich_threshold:
          type: number
          title: Deep Enrich Threshold
          description: >-
            Minimum score (0-100) for a target to receive deep enrichment
            (stakeholder mapping, network search).
          default: 50
        stakeholder_threshold:
          type: number
          title: Stakeholder Threshold
          description: >-
            Minimum score (0-100) for a target to get full
            buying-committee/stakeholder research.
          default: 70
        verticals:
          items:
            type: string
          type: array
          title: Verticals
          description: >-
            Industry verticals to target, e.g. ['SaaS', 'Healthcare']. Empty =
            no filter.
        exclusions:
          items:
            type: string
          type: array
          title: Exclusions
          description: Company names or domains to exclude from discovery.
      type: object
      title: ICPConfigBody
      description: >-
        Ideal-customer-profile filters for discovering NEW companies (ICP mode).


        The review-score maxes (`trustpilot_max`, `bbb_max`, `g2_max`) are pain

        signals, not quality bars: this pipeline sells CX-improvement services,
        so

        a LOWER rating means MORE pain and a BETTER prospect. A company only
        needs

        to clear one rating ceiling (or have CFPB complaints) to qualify — see

        `cx_intel/qualification.py:gate_3_pain_threshold`.
    LookalikeSeed:
      properties:
        value:
          type: string
          minLength: 2
          title: Value
          description: A known-good company's name, website, or LinkedIn URL.
      type: object
      required:
        - value
      title: LookalikeSeed
      description: A company name, website, or LinkedIn URL to derive lookalikes from.
    DocumentRef:
      properties:
        key:
          type: string
          minLength: 1
          title: Key
        filename:
          type: string
          title: Filename
          default: ''
        content_type:
          type: string
          title: Content Type
          default: ''
      type: object
      required:
        - key
      title: DocumentRef
      description: >-
        A document the user uploaded to /customer-intelligence/uploads. Claude

        reads it during intake (the ``ci_extract_document`` activity) and
        extracts

        lead identifiers as seeds; low-confidence extractions pause at the

        resolution gate just like vague typed input.
    DeliverableSelection:
      properties:
        kinds:
          items:
            type: string
          type: array
          title: Kinds
          description: >-
            Which deliverables to produce, by kind. Valid values:
            'scored_lead_row' (always-on lead score row, no extra cost),
            'cx_intelligence_report_pdf' (review analysis + live demo, PDF),
            'review_analysis_xlsx' (standardized review workbook, XLSX),
            'sales_deck_pptx' (pitch deck, PPTX), 'roi_model_xlsx'
            (savings/revenue-upside model, XLSX), 'stakeholder_intel_pdf'
            (decision-maker brief, PDF), 'outreach_email' (personalized,
            validated outreach email). Every kind past scored_lead_row only runs
            for shortlist-gate-selected targets and spends real provider/LLM
            money per target.
        models:
          additionalProperties:
            type: string
          type: object
          title: Models
          description: >-
            Optional per-deliverable-kind Claude model override, e.g.
            {'sales_deck_pptx': 'claude-opus-4-8'}.
      type: object
      title: DeliverableSelection
      description: >-
        Which deliverable kinds this run may produce, and optional per-kind
        model

        overrides. Which *targets* get the deep kinds is chosen at the shortlist

        gate, not here.
    PhaseToggles:
      properties:
        deep_enrichment:
          type: boolean
          title: Deep Enrichment
          default: true
        stakeholder_mapping:
          type: boolean
          title: Stakeholder Mapping
          default: true
        network_search:
          type: boolean
          title: Network Search
          default: true
      type: object
      title: PhaseToggles
    ChampionConfig:
      properties:
        titles:
          items:
            type: string
          type: array
          title: Titles
        seniority_levels:
          items:
            type: string
          type: array
          title: Seniority Levels
      type: object
      title: ChampionConfig
    ConcurrencyConfig:
      properties:
        company_concurrency:
          type: integer
          maximum: 20
          minimum: 1
          title: Company Concurrency
          default: 5
        continue_as_new_after:
          type: integer
          maximum: 2000
          minimum: 50
          title: Continue As New After
          default: 500
      type: object
      title: ConcurrencyConfig
    ProviderConfig:
      properties:
        claude_model:
          type: string
          title: Claude Model
          default: claude-sonnet-5
        provider_overrides:
          additionalProperties:
            type: string
          type: object
          title: Provider Overrides
      type: object
      title: ProviderConfig
    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

````