---
title: "Send Campaign Brief Message"
method: POST
path: "/campaigns/audience-builds/{build_id}/brief/messages"
tags: ["campaigns"]
---

# Send Campaign Brief Message

`POST /campaigns/audience-builds/{build_id}/brief/messages`

One operator turn: the brief is rebuilt from the whole exchange and returned.

## Path parameters

- `build_id` string, required

## Request body

- CampaignBriefMessageRequest
  - `message` string, required

## Response `200`

Successful Response

- CampaignBrief
  - `id` string, required
  - `build_id` string, required
  - `campaign_id` string, nullable
  - `status` 'collecting' | 'ready', required
  - `messages` CampaignBriefMessage[]
    - `role` 'operator' | 'assistant', required
    - `text` string, required
    - `at` string, required
  - `brief` CampaignBriefData — The HOW of a campaign, parsed from the Message-step intake conversation.
    - `summary` string
    - `offers` CampaignBriefOffer[]
      - `name` string
      - `price` string
      - `includes` string[]
      - `terms` string[]
    - `promotions` CampaignBriefPromotion[]
      - `name` string
      - `details` string
      - `valid_until` string
    - `sample_messages` string[]
    - `tone` string
    - `must_say` string[]
    - `must_not_say` string[]
    - `handling_rules` string[]
    - `escalate_when` string[]
    - `facts` string[]
  - `open_questions` string[]
  - `rendered_instructions` string
  - `updated_at` string, nullable

## Other responses

- `404` — Not found
- `422` — Validation Error

## Changes

- **2026-09-14** `0d7ad1d56e7d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/noso/apis/crucible-backend-api/changes/campaigns/audience-builds/:build_id/brief/messages/post.md)

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) · [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/noso/apis/crucible-backend-api/revisions/6242f8ed3b67?raw)
