---
title: "Submit a CSAT rating"
method: POST
path: "/fin/csat"
tags: ["Fin Agent"]
---

# Submit a CSAT rating

`POST /fin/csat`

Record a customer's satisfaction rating for a conversation, with an optional free-text
remark.

Fin decides *when* to ask for a rating — this reuses the CSAT settings on your Fin
workflow, not this API. When Fin asks, it fires a `csat_requested` event over webhooks or
SSE carrying the rating options to show the user. Present those options, then submit the
user's choice here.

Submitting the same rating again, with no new remark, is a no-op and stays successful,
so an at-least-once client can safely retry. Submitting a *different* rating updates the
stored rating while the update window is still open, and a first remark can be added to
an already-rated survey. Once a remark has been recorded the rating is locked and can no
longer be changed.

{% admonition type="warning" %}
Please reach out to your accounts team to discuss access.
{% /admonition %}

## Headers

- `Intercom-Version` '1.0' | '1.1' | '1.2' | '1.3' | '1.4' | '2.0' | '2.1' | '2.2' | '2.3' | '2.4' | '2.5' | '2.6' | '2.7' | '2.8' | '2.9' | '2.10' | '2.11' | '2.12' | '2.13' | '2.14' — Intercom API version.</br>By default, it's equal to the version set in the app package.

## Request body

- object
  - `conversation_id` string, required — Your external conversation ID — the same ID you started the conversation with, and the one echoed on the `csat_requested` event.
  - `rating` 'terrible' | 'bad' | 'ok' | 'good' | 'amazing', required — The rating the user selected — one of the `key` values from the `csat_requested` event's options.
  - `remark` string — Optional free-text comment the user left alongside the rating. Can be added to an already-rated survey, but only once — the rating locks after a remark is recorded.

## Response `200`

Rating recorded successfully

- object
  - `conversation_id` string — The external ID of the rated conversation.
  - `rating` 'terrible' | 'bad' | 'ok' | 'good' | 'amazing' — The rating now recorded on the conversation.
  - `status` 'rated' — The result of the submission.

## Other responses

- `401` — Unauthorized
- `422` — The rating could not be recorded. Common causes: no conversation exists for the given `conversation_id`, Fin never requested a rating for it, the rating window has closed, the rating is locked because a remark was already submitted, or `rating` is not one of the supported values.

---

[API](https://skmtc.net/intercom/apis/intercom-api.md) · [All operations](https://skmtc.net/intercom/apis/intercom-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/intercom/intercom-api/revisions/9517e80f2642/schema)
