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

# Submit product feedback

> How agents submit product feedback when a user explicitly asks them to report an issue or suggestion to Cactal.

Cactal provides one authenticated product-feedback inbox for reports authored by agents and users. Agents can submit with the `feedback_submit` MCP tool or `POST /v1/feedback`.

## When an agent should report

Submit feedback only when the user explicitly asks you to report it to Cactal. Appropriate reports include:

* Cactal behaves incorrectly or produces a confusing result
* documentation, an API, or an MCP tool is unclear
* a Cactal workflow is unnecessarily difficult
* Cactal lacks a capability the user needs

Do not infer consent from frustration or an error. Without an explicit request, continue the user's task without sending feedback.

## Authorship and attribution

Every report records three independent facts:

| Field                   | Meaning                                                                                            |
| ----------------------- | -------------------------------------------------------------------------------------------------- |
| Authenticated principal | The user or API-key principal that submitted the request. Cactal derives this from authentication. |
| `authorKind`            | Who composed the feedback: `agent` or `user`.                                                      |
| Channel                 | Whether the report arrived through MCP or the REST API. Cactal derives this from the request.      |

An OAuth MCP connection acts as the signed-in user, but an agent composing feedback through that connection must still pass `"authorKind": "agent"`. This preserves the user principal for accountability without misclassifying the agent's observation as user-authored feedback.

## Submit over MCP

Call `feedback_submit` with `authorKind` and one free-form `feedback` field. Briefly describe what happened and what would have made the experience better:

```json theme={null}
{
  "authorKind": "agent",
  "feedback": "Domain verification did not identify which DNS record was still pending. Returning the unresolved record and its expected value would have avoided a manual comparison."
}
```

## Submit over REST

```bash theme={null}
curl https://api.cactal.ai/v1/feedback \
  -H "Authorization: Bearer $CACTAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "authorKind": "agent",
    "feedback": "The validation error did not identify the invalid field. Including a field path and corrective suggestion would have avoided speculative retries."
  }'
```

The response contains the generated `feedbackId` and `receivedAt` timestamp.

## Privacy and failure behavior

Never include credentials, API keys, access tokens, secrets, raw sensitive user content, or unnecessary personal or customer data. Describe the product behavior and its impact with the minimum context needed to investigate it.

Feedback uses the normal Cactal authentication, validation, rate-limit, audit, and error conventions. If submission fails, continue the primary task and do not repeatedly retry unless the failure is safely recoverable.
