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

# Create review

> Send a request for human review.

See [Introduction](/api-reference/introduction) for the base URL and authentication.

### Body

<ParamField body="agentId" type="string" placeholder="ag123456" required>
  The ID of the [agent](/agent-setup) identity you created in gotoHuman.
</ParamField>

<ParamField body="formId" type="string" placeholder="abcdef12345" required>
  The ID of your [review type](/create-template).
</ParamField>

<ParamField body="data" type="object" required>
  The data to review.

  You can either send the data in its existing shape and map each field in the [review type](/create-template) to the corresponding property path (e.g. map a dropdown field `stageSelect` to the path `crmUpdate.stage`). Or you use the default shape shown in the example request after adding your fields.

  <Info>
    Input fields that you don't send any value for will be hidden or show as empty inputs depending on the field's setting.
  </Info>
</ParamField>

<ParamField body="config" type="object">
  Dynamic configuration for certain field types:

  * Dropdown, Checkboxes, Buttons: Available options
  * [Image fields](/images-videos): Transformations and base64 flag
  * Link: Link text

  Check the "Review Config" section or `config` property in the example request of your review type in the web editor to see available settings, for example:

  ```json theme={null}
  {
    "fields": {
      "stageSelect": {
        "options": [
          { "id": "proposal", "label": "Proposal" },
          { "id": "negotiation", "label": "Negotiation" },
          { "id": "won", "label": "Won" }
        ]
      }
    }
  }
  ```
</ParamField>

<ParamField body="title" type="string">
  A custom title for the review request. This title is displayed in the [Agent Inbox](/agent-inbox) and in [notification emails](/email-notifications) and [Slack messages](/slack), making it easier for reviewers to identify pending reviews.
</ParamField>

<ParamField body="sessionId" type="string" placeholder="session789abcdef">
  Links multiple reviews of the same session or workflow run.

  When a run started from a [trigger form](/manual-triggers), use the `sessionId` from its webhook event.
</ParamField>

<ParamField body="meta" type="object">
  Additional data that should not be part of the review but that you want to receive back in the webhook.
</ParamField>

<ParamField body="assignTo" type="string[]">
  Email addresses of reviewers from your organization to assign. [Read more](/send-requests#assign-reviewers).
</ParamField>

<ParamField body="webhookUrl" type="string">
  Webhook URL for this request. You can do this instead of setting the webhook on the [review type](/create-template#type-webhook) or on the [agent](/agent-setup#webhook).
</ParamField>

<ParamField body="autoApprove" type="boolean">
  Set to automatically approve the review request.\
  You can also set this on the [review type](/create-template#auto-approval).
</ParamField>

<RequestExample>
  ```json Request theme={null}
  {
    "agentId": "ag123456",
    "formId": "abcdef12345",
    "data": {
      "crmUpdate": {
        "entryId": "123456abcdef",
        "amount": 42000,
        "stage": "proposal"
      }
    },
    "config": {
      "fields": {
        "stageSelect": {
          "options": [
            { "id": "proposal", "label": "Proposal" },
            { "id": "negotiation", "label": "Negotiation" },
            { "id": "won", "label": "Won" }
          ]
        }
      }
    },
    "meta": {
      "example": "LLM thread id"
    },
    "title": "Review AI draft",
    "sessionId": "session789abcdef",
    "assignTo": ["reviewer@acme.org"],
    "webhookUrl": "https://example.com/webhooks/gotohuman",
    "autoApprove": false
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "reviewId": "123456abcdef",
    "sessionId": "session789abcdef",
    "gthLink": "https://app.gotohuman.com/accounts/acc12345678/inbox/agents/all/reviews/123456abcdef",
    "extReviewerLinks": [
      {
        "email": "reviewer@acme.org",
        "link": "https://app.gotohuman.com/..."
      }
    ]
  }
  ```
</ResponseExample>

## Response

The API responds with a link to the pending review.

<ResponseField name="reviewId" type="string">
  ID of the created review.
</ResponseField>

<ResponseField name="sessionId" type="string">
  Session this review belongs to. Reuse it in later review requests to link multiple steps of the same session or workflow run.
</ResponseField>

<ResponseField name="gthLink" type="string">
  Link to open the pending review in gotoHuman.
</ResponseField>

<ResponseField name="extReviewerLinks" type="object[]">
  Included when [external reviewers](/web-ui#external-reviewers) have been assigned to the review request.

  <Expandable title="properties">
    <ResponseField name="email" type="string">
      Email address of the external reviewer.
    </ResponseField>

    <ResponseField name="link" type="string">
      Unique link for that reviewer.
    </ResponseField>
  </Expandable>
</ResponseField>
