---
title: "Accept proposed prompts"
method: POST
path: "/outbound-agents/{agent_id}/proposals/accept/"
tags: ["outbound-agents"]
---

# Accept proposed prompts

`POST /outbound-agents/{agent_id}/proposals/accept/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/outbound-agents/{agent_id}/proposals/accept/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Write the accepted prompts as the agent's next version and mark the feedback they were written from as taken in. Refused when the agent has changed since the proposal was made.

## Path parameters

- `agent_id` string, uuid, required

## Request body

- OutboundPromptProposalAcceptSchema: Accept a proposal, writing the prompts as the agent's next version.
  - `base_version` integer, required: The version the proposal was written against.
  - `feedback_cutoff` string, date-time, nullable: The proposal's read time; feedback edited later stays pending.
  - `feedback_ids` string[]: The feedback the proposal read, stamped as consumed.
  - `items` object, required: The accepted prompt per slot key; the reply prompt travels under 'reply'.

## Response `200`

Successful Response

- OutboundAgentReadSchema: One sequence's outbound agent: what it writes with, and how.
  - `column_names` object: The audience column each column id in the configuration is, by name: the columns the goal and the prompts point at with /, and the ones taken out of Write from. Filled on a read; a column that is gone is missing from it.
  - `config` OutboundAgentConfig, required: The versioned configuration one outbound agent carries, stored as JSON on its row. Everything a person sets on the Agent tab that is not already a column of the saved-agent row (``model_key`` and the research switch live there). ``message_prompts`` is keyed by an opaque slot key the caller mints (the step id); the agent never learns what a slot means.
    - `campaign` CampaignBrief: What one sequence's campaign is: the tested campaign it runs and why. Written by tailoring and by nothing else; the Agent tab reads it and never sends it back (the service keeps the stored one on every other write). Tailoring now rewrites the steps' instructions themselves and writes only ``reason`` and ``goal`` here. ``audience``, ``why_now``, ``angle`` and ``step_notes`` are what it wrote before: kept, and still read by the writer, for the agents that carry them. They were written by a model from the audience table, so they are background, never facts: only ``intent``, the person's own words, may be stated as fact.
      - `angle` string
      - `audience` string
      - `campaign_key` string, required
      - `chosen_by_person` boolean
      - `goal` string
      - `intent` string
      - `minted` string[]
      - `reason` string
      - `step_notes` object
      - `table_name` string
      - `tailoring_off` boolean
      - `why_now` string, nullable
    - `cta_label` string, nullable
    - `cta_url` string, nullable
    - `goal` string
    - `language` string
    - `message_prompts` object
    - `person_research` boolean
    - `personality_preset` 'direct' | 'consultative' | 'bold' | 'custom': The voice an agent writes in. Each preset is a real prompt; CUSTOM is the author's.
    - `personality_prompt` string
    - `reply_drafting` boolean
    - `reply_prompt` string
    - `translate` boolean
    - `write_from_excluded_column_ids` string[]
  - `created_at` string, date-time, required
  - `id` string, uuid, required
  - `model_key` string, required
  - `name` string, required
  - `research` boolean, required
  - `updated_at` string, date-time, required
  - `version` integer, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Outbound agent not found.
- `409`: The agent changed since it was read.
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/4a6bd71e3f02?raw)
