AI

Rate an AI job's response

Rate an AI job's response — the same thumbs up / thumbs down (plus optional comment) a user can give under a response in the Omni chat UI or in Slack. The job must have finished (COMPLETE or FAILED); any other state returns 409. The completion webhook fires just before the stored state reaches COMPLETE, so poll GET /api/v1/ai/jobs/{jobId} and rate once it reports COMPLETE rather than rating from inside a webhook handler. Feedback is append-only: each call records a separate event, so submit once per job. Feedback is not returned by any read endpoint. User-scoped keys can only rate their own jobs; organization keys can rate any job in the organization and may pass userId to attribute the feedback to a specific user — use the same userId the job was submitted with.

post/api/v1/ai/jobs/{jobId}/feedback

Path parameters

jobIdstring uuid required

The unique identifier of the AI job

Example:123e4567-e89b-12d3-a456-426614174000

The unique identifier of the AI job

Query parameters

userIdstring uuid

Target user membership ID (for org-scoped API keys)

Target user membership ID (for org-scoped API keys)

Request body

commentstring nullable

Free-text feedback about the response — what was wrong, or what an automated evaluation found. Whitespace is trimmed; null is treated as no comment.

rating'good' | 'bad' required

The verdict on the response. good is a thumbs up, bad a thumbs down — the same signal as the buttons under a response in the Omni chat UI.

Example request

{
  "comment": "Grouped by order date instead of ship date.",
  "rating": "bad"
}

Response

Feedback recorded.

commentstring nullable required

The comment as recorded, or null when none was sent.

conversationIdstring uuid required

The conversation the rated job belongs to. Analytics keys feedback by job id and conversation id.

jobIdstring uuid required

The job whose response was rated.

rating'good' | 'bad' required

The verdict on the response. good is a thumbs up, bad a thumbs down — the same signal as the buttons under a response in the Omni chat UI.

submittedAtstring date-time required

When the feedback was recorded.

Example response

{
  "comment": "Grouped by order date instead of ship date.",
  "conversationId": "660e8400-e29b-41d4-a716-446655440001",
  "jobId": "550e8400-e29b-41d4-a716-446655440000",
  "rating": "bad",
  "submittedAt": "2025-01-15T10:00:00.000Z"
}

Changes

Changed in 1 of the 48 revisions of this API.1