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

# Form Instance Updated

> Triggered when a form submission is updated.

<Info>
  For general webhook concepts like bubble-up behavior, payload visibility rules, and versioned snapshots, see [Webhook Concepts](/graph-api-reference/webhooks/concepts).
</Info>

## Description

This event is triggered when a form instance is updated.

## Integration Details

* **Subscription Key**: `form.form_instance.updated`
* **Use Case**: Track form revision history or detect changes to submitted data.
* **Related Events**: [`form.form_instance.created`](/graph-api-reference/webhooks/form/form-instance-created)

## Trigger

* **Event Type:** `form_form_instance_updated`
* **Source:** Update of a record in the `frm.form_instance` table.

<Warning>This is a **versioned-snapshot** event. The payload includes both `old` (previous state) and `new` (current state) at the root level because `frm.form_instance` has no history table. See [Versioned-Snapshot Objects](/graph-api-reference/webhooks/concepts#versioned-snapshot-objects).</Warning>

## Payload Example

```json theme={null}
{
  "old": {
    "id": 601,
    "form_data": {
      "uuid-1": "Jon",
      "uuid-2": "Doe",
      "uuid-3": "Good experience"
    },
    "submitted_at": "2023-11-10T11:00:00Z",
    "updated_at": "2023-11-10T11:00:00Z"
  },
  "new": {
    "id": 601,
    "external_id": "ext_form_601",
    "model_id": 1234,
    "old_id": 5001,
    "form_data": {
      "uuid-1": "John",
      "uuid-2": "Doe",
      "uuid-3": "Great experience!"
    },
    "form_version_id": 701,
    "submitted_by": 123,
    "submitted_at": "2023-11-10T11:00:00Z",
    "meta": {},
    "created_at": "2023-11-10T11:00:00Z",
    "created_by": 1,
    "updated_at": "2023-11-10T12:00:00Z",
    "updated_by": 1,
    "form_version": {
      "id": 701,
      "version": 1,
      "status": "published",
      "structure": {},
      "created_at": "2023-11-01T10:00:00Z",
      "created_by": 1,
      "updated_at": "2023-11-01T10:00:00Z",
      "updated_by": 1,
      "form_fields": [
        {
          "id": 901,
          "uuid": "uuid-1",
          "name": "First Name",
          "type": "text",
          "external_name": "first_name",
          "created_at": "2023-11-01T10:00:00Z",
          "created_by": 1,
          "updated_at": "2023-11-01T10:00:00Z",
          "updated_by": 1
        }
      ],
      "form": {
        "id": 801,
        "name": "Candidate Feedback Form",
        "type": "feedback",
        "url": "https://example.com/forms/feedback",
        "is_active": true,
        "external_id": "ext_frm_801",
        "old_id": 4001,
        "created_at": "2023-11-01T10:00:00Z",
        "created_by": 1,
        "updated_at": "2023-11-01T10:00:00Z",
        "updated_by": 1
      }
    }
  }
}
```

## Payload Type Showcase

```typescript theme={null}
{
  old: Partial<FormInstance>;
  new: FormInstance;
}

// where FormInstance is:
{
  id: number;
  external_id: string | null;
  model_id: number | null;
  old_id: number | null;
  form_data: Record<string, any>;
  form_version_id: number;
  submitted_by: number | null;
  submitted_at: string | null;
  meta: Record<string, any> | null;
  created_at: string;
  created_by: number;
  updated_at: string;
  updated_by: number;
  form_version: {
    id: number;
    version: number;
    status: string;
    structure: Record<string, any>;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
    form_fields: {
      id: number;
      uuid: string;
      name: string;
      type: string;
      external_name: string | null;
      created_at: string;
      created_by: number;
      updated_at: string;
      updated_by: number;
    }[];
    form: {
      id: number;
      name: string;
      type: string;
      url: string | null;
      is_active: boolean;
      external_id: string | null;
      old_id: number | null;
      created_at: string;
      created_by: number;
      updated_at: string;
      updated_by: number;
    };
  };
}
```

## Field Notes

* `form_data` is JSONB containing the actual submission values keyed by field UUID. Use `form_fields` to interpret the keys.
* `meta` is JSONB with submission context (source, device, etc.).
* `structure` on `form_version` is JSONB defining the form layout and field configuration.
* The `form_version → form` join provides the parent form metadata (name, type, active status).
