> ## 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.

# Webhook events

> Payloads gotoHuman sends when a review is completed or a trigger form is submitted.

The webhook is a `POST` request to your endpoint with `Content-Type: application/json`.

### Events

* `review.completed` - Whenever a review is completed
* `trigger.submitted` - When a [trigger form](/manual-triggers) is submitted.

<ResponseExample>
  ```json title="review.completed" theme={null}
  {
    "event": "review.completed",
    "accountId": "abFMvLv4HafQymWxKDAov",
    "reviewId": "123456abcdef",
    "agentId": "agent123456abcdef",
    "sessionId": "session789abcdef",
    "formId": "123456abcdef",
    "formName": "Review AI Draft",
    "reviewResult": {
      "response": "approved",
      "respondingUser": "jess@acme.org",
      "respondedAt": "2027-10-05T14:48:00.000Z",
      "data": {
        "crmUpdate": {
          "entryId": "123456abcdef",
          "amount": 42000,
          "stage": "proposal",
          "contact": {
            "name": "John Doe",
            "email": "john.doe@example.com",
            "phone": "+1234567890"
          }
        }
      }
    },
    "meta": {
      "example": "LLM thread id"
    },
    "gthLink": "https://app.gotohuman.com/accounts/abFMvLv4HafQymWxKDAov/inbox/agents/agent123456abcdef/reviews/123456abcdef"
  }
  ```

  ```json title="trigger.submitted" theme={null}
  {
    "event": "trigger.submitted",
    "accountId": "abFMvLv4HafQymWxKDAov",
    "reviewId": "123456abcdef",
    "agentId": "agent123456abcdef",
    "sessionId": "session789abcdef",
    "formId": "abcdef123456",
    "formName": "Create Marketing Campaign",
    "reviewResult": {
      "respondingUser": "jess@acme.org",
      "respondedAt": "2027-10-05T14:48:00.000Z",
      "data": {
        "name": "Black Friday Campaign",
        "targetAudience": "customers-active-last-30-days",
        "campaignType": "email"
      }
    },
    "gthLink": "https://app.gotohuman.com/accounts/abFMvLv4HafQymWxKDAov/inbox/agents/agent123456abcdef/reviews/123456abcdef"
  }
  ```
</ResponseExample>

### Properties

<ResponseField name="event" type="string">
  `review.completed` or `trigger.submitted`.
</ResponseField>

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

<ResponseField name="sessionId" type="string">
  Use it in subsequent [review requests](/api-reference/request-review#sessionId) to link reviews of the same session.
</ResponseField>

<ResponseField name="formId" type="string">
  ID of the [review type](/create-template) or [trigger form](/manual-triggers).
</ResponseField>

<ResponseField name="agentId" type="string">
  ID of the [agent](/agent-setup) this review belongs to.
</ResponseField>

<ResponseField name="reviewResult" type="object">
  The reviewer's submission once responded.

  <Expandable title="properties" defaultOpen={true}>
    <ResponseField name="response" type="string">
      `approved` or `rejected`. Reviews only.
    </ResponseField>

    <ResponseField name="respondingUser" type="string">
      Email of the reviewer who submitted.
    </ResponseField>

    <ResponseField name="respondedAt" type="string">
      ISO 8601 timestamp.
    </ResponseField>

    <ResponseField name="data" type="object">
      Data after the review – same structure as your [request](/api-reference/request-review#data) `data`, including any reviewer edits or selections.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="meta" type="object">
  Echo of any `meta` you sent with the request.
</ResponseField>

<ResponseField name="fileCache" type="object">
  Map of original media URLs to CDN URLs. See [Images and videos](/images-videos#cdn-urls-in-webhooks).
</ResponseField>

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