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

# Launch initiative

> Launch a draft initiative — it goes active and Boom starts reaching out. Its journey is published as part of the launch, on every channel (fails with the journey's issues if it cannot be), so no separate journeys_publish is needed. A WhatsApp initiative also needs an approved template first. Over MCP, requires the org:initiatives:launch permission (Owner and Admin roles).



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/initiatives/{id}/launch
openapi: 3.1.0
info:
  title: Boom API
  version: 1.0.0
  description: >-
    Boom's public REST API — one uniform surface over every platform capability.
    CDP: upsert people and custom objects, define object and relationship types,
    link and unlink relationships, and record behavioral events — one record per
    request or up to 1000 per request via the `/batch` endpoints. Segments: read
    (list, read, membership) and full authoring — discover the filterable
    catalog, validate a filter, create and update segments, preview match
    counts, and trigger evaluation. Initiatives: create and configure outreach
    initiatives, link WhatsApp templates, drive the lifecycle (launch, cancel,
    archive), and read collected-data summaries. Participants: enroll people
    into an active initiative, track their status, read conversation
    transcripts, and stop outreach. Journeys: read-only access to always-on
    message flows and their metrics. WhatsApp templates: list your WhatsApp
    numbers and list, read, and create message templates. The same capabilities
    are exposed as MCP tools with identical schemas.
servers:
  - url: https://www.useboom.ai
    description: Production
  - url: https://dev.useboom.ai
    description: Development (sandbox — use a development organization API key)
security:
  - bearerAuth: []
paths:
  /api/v1/initiatives/{id}/launch:
    post:
      tags:
        - Initiatives
      summary: Launch initiative
      description: >-
        Launch a draft initiative — it goes active and Boom starts reaching out.
        Its journey is published as part of the launch, on every channel (fails
        with the journey's issues if it cannot be), so no separate
        journeys_publish is needed. A WhatsApp initiative also needs an approved
        template first. Over MCP, requires the org:initiatives:launch permission
        (Owner and Admin roles).
      operationId: initiatives_launch
      parameters:
        - name: id
          in: path
          required: true
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            type: string
            minLength: 1
            description: The initiative id.
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  id:
                    type: string
                    description: Initiative id.
                  name:
                    type: string
                  channel:
                    type: string
                    enum:
                      - WHATSAPP
                      - EMAIL
                    description: >-
                      Which identifier this initiative reaches people by,
                      derived from its journey: `EMAIL` when the journey only
                      mails, `WHATSAPP` when anything phone-shaped sends. See
                      `sendChannels` for what it actually sends on — this field
                      cannot express SMS or the Meta DMs.
                  sendChannels:
                    type: array
                    items:
                      type: string
                      enum:
                        - WHATSAPP
                        - EMAIL
                        - SMS
                        - INSTAGRAM
                        - FACEBOOK_MESSENGER
                    description: >-
                      Every channel this initiative's journey sends on — the
                      authoritative answer. Empty when it has no journey yet, in
                      which case `channel` falls back to the value stored at
                      creation.
                  status:
                    type: string
                    enum:
                      - DRAFT
                      - ACTIVE
                      - PAUSED
                      - COMPLETED
                      - CANCELED
                  language:
                    type: string
                    description: Conversation language, e.g. `es`.
                  objective:
                    anyOf:
                      - type: string
                      - type: 'null'
                  isRecurring:
                    type: boolean
                    description: >-
                      Splits campaigns from initiatives (a Transactional is the
                      third kind, see `isTransactional`): `false` is a campaign
                      (one-time outreach, listed under Campaigns), `true` is an
                      initiative (ongoing work, listed under Initiatives). A
                      campaign auto-completes once its outreach run finishes; an
                      initiative stays ACTIVE afterward, though no scheduled
                      process currently re-triggers outreach for it.
                  isTransactional:
                    type: boolean
                    description: >-
                      True for a Transactional (one event, one message per
                      channel; listed under Transactional).
                  flagCondition:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: >-
                      Natural-language condition; matching conversations get
                      flagged during analysis.
                  identityDeflection:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: >-
                      Custom reply when a contact asks whether they are talking
                      to a bot.
                  smartSendingMode:
                    type: string
                    enum:
                      - DEFER
                      - DROP
                      - FORCE
                    description: 'Smart Sending mode: DEFER, DROP or FORCE.'
                  createdAt:
                    type: string
                    description: ISO 8601 timestamp.
                  updatedAt:
                    type: string
                    description: ISO 8601 timestamp.
                  activatedAt:
                    anyOf:
                      - type: string
                      - type: 'null'
                  completedAt:
                    anyOf:
                      - type: string
                      - type: 'null'
                  canceledAt:
                    anyOf:
                      - type: string
                      - type: 'null'
                  pausedAt:
                    anyOf:
                      - type: string
                      - type: 'null'
                  context:
                    anyOf:
                      - type: string
                      - type: 'null'
                  maxAttempts:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  guidingQuestions:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        questionText:
                          type: string
                        answerType:
                          type: string
                        priority:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        scaleMin:
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                        scaleMax:
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                        options:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              label:
                                type: string
                              position:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                            required:
                              - id
                              - label
                              - position
                            additionalProperties: false
                      required:
                        - id
                        - questionText
                        - answerType
                        - priority
                        - scaleMin
                        - scaleMax
                        - options
                      additionalProperties: false
                required:
                  - id
                  - name
                  - channel
                  - sendChannels
                  - status
                  - language
                  - objective
                  - isRecurring
                  - isTransactional
                  - flagCondition
                  - identityDeflection
                  - smartSendingMode
                  - createdAt
                  - updatedAt
                  - activatedAt
                  - completedAt
                  - canceledAt
                  - pausedAt
                  - context
                  - maxAttempts
                  - guidingQuestions
                additionalProperties: false
        '400':
          description: Validation failed or the request cannot proceed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '401':
          description: Missing, malformed, or revoked API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '404':
          description: The resource does not exist in this organization.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '409':
          description: >-
            Conflicts with the current state (duplicates, wrong lifecycle
            state).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '422':
          description: The request is well-formed but semantically invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '429':
          description: Rate limit exceeded — retry after `Retry-After`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '503':
          description: Transient error — retry with a narrower request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable error code (snake_case).
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Organization API key, sent as `Authorization: Bearer boom_org_...`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.