---
title: "Propose better prompts from the agent's feedback"
method: POST
path: "/outbound-agents/{agent_id}/proposals/"
tags: ["outbound-agents"]
---

# Propose better prompts from the agent's feedback

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

## 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/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Rewrite the agent's prompts from what people said needs work (a thumbs down, a note, a rewrite), and return the before and after for each one; a Looks good never trains. Nothing is written until the proposal is accepted. Spends one of the workspace's daily assistant turns.

## Path parameters

- `agent_id` string, uuid, required

## Request body

- OutboundPromptProposalRequestSchema: Ask for a rewrite of the agent's prompts from its feedback.
  - `also_slots` string[], nullable: Teach the same feedback to these prompts too, even though none was given on their messages. Feedback names the one message it was given on, so without this a note on the opener can only ever change the opener. Each prompt is still rewritten against its own wording.
  - `revision_request` string: What to change about a proposal already seen.
  - `slot_keys` string[], nullable: Only rewrite these prompts; every prompt that has feedback when null.

## Response `200`

Successful Response

- OutboundPromptProposalReadSchema: A proposed rewrite of the agent's prompts, tied to the version it was written against.
  - `agent_id` string, uuid, required
  - `base_version` integer, required
  - `feedback_count` integer, required
  - `feedback_cutoff` string, date-time, nullable
  - `feedback_ids` string[], required
  - `items` OutboundPromptProposalItemReadSchema[], required
    - `current` string, required
    - `feedback_ids` string[]
    - `proposed` string, required
    - `rationale` string, required
    - `review` ProposalReviewDTO: Readable explanation and an explicitly illustrative outcome, never a scored run.
      - `changes` string[]
      - `example_after` string, nullable
      - `example_before` string, nullable
      - `example_label` string, nullable
      - `summary` string, required
    - `slot_key` string, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Outbound agent not found.
- `422`: Invalid request made to the API.
- `429`: The workspace has no assistant turn left today.
- `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)
