---
title: "Edit your feedback"
method: PUT
path: "/outbound-agents/{agent_id}/feedback/{feedback_id}/"
tags: ["outbound-agents"]
---

# Edit your feedback

`PUT /outbound-agents/{agent_id}/feedback/{feedback_id}/`

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

Replace only the signed-in author's feedback, refusing an older copy.

## Path parameters

- `agent_id` string, uuid, required
- `feedback_id` string, uuid, required

## Request body

- OutboundFeedbackUpdateSchema: The complete replacement verdict, tied to the feedback the author reviewed.
  - `comment` string, nullable, required
  - `edited_body` string, nullable, required
  - `edited_subject` string, nullable, required
  - `expected_updated_at` string, date-time, required
  - `rating` 'good' | 'bad', required: The human verdict on one message: a thumb, not a scale.

## Response `200`

Successful Response

- OutboundFeedbackReadSchema: One person's verdict on one message the agent wrote.
  - `comment` string, nullable, required
  - `consumed_in_version` integer, nullable, required
  - `created_at` string, date-time, required
  - `edited_body` string, nullable, required
  - `edited_subject` string, nullable, required
  - `id` string, uuid, required
  - `kind` 'email' | 'linkedin_connection_note' | 'linkedin_message' | 'linkedin_inmail' | 'reply_email' | 'reply_linkedin', required: What one written message is, which decides its rules, its length and its channel.
  - `message_id` string, uuid, nullable, required
  - `original_body` string, required
  - `original_subject` string, nullable, required
  - `rating` 'good' | 'bad', required: The human verdict on one message: a thumb, not a scale.
  - `slot_key` string, nullable, required
  - `source` 'approval_card' | 'inbox_draft' | 'agent_tab' | 'approved_unchanged' | 'positive_reply', required: Where a piece of feedback came from, which says how much it means.
  - `teaches` boolean, required: Whether the writer and a prompt rewrite learn from it: a Needs work, a note given without a Looks good, or a rewrite. A Looks good with no rewrite, a note on it and an approval kept as approved as written included, is a record and never teaches.
  - `updated_at` string, date-time, required
  - `user_id` string, 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)
