Skip to main content
For general webhook concepts like bubble-up behavior, payload visibility rules, and versioned snapshots, see Webhook Concepts.

Description

This event is triggered when a new form instance is created — for example, when a candidate submits a survey or registration form.

Integration Details

  • Subscription Key: form.form_instance.created
  • Use Case: Automatically process form data or sync survey responses to an external CRM.
  • Related Events: form.form_instance.updated

Trigger

  • Event Type: form_form_instance_created
  • Source: Insertion of a record into the frm.form_instance table.

Payload Example

{
  "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-10T11: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

{
  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).