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 meeting is successfully scheduled.

Integration Details

  • Subscription Key: sch.meeting.created
  • Use Case: Sync interviews or meetings with an external CRM or shared team calendar.
  • Related Events: sch.meeting.updated

Trigger

  • Event Type: sch_meeting_created
  • Source: Insertion of a record into the sch.meeting table.

Cross-Service References

  • Auth (auth.user): user_details on each participant provides an identity snapshot from the auth service.

Payload Example

{
  "id": 456,
  "external_id": "ext_meet_456",
  "old_id": null,
  "name": "Technical Interview - Jane Doe",
  "meeting_type": "interview",
  "meeting_status": "scheduled",
  "from": "2023-11-01T14:00:00Z",
  "to": "2023-11-01T15:00:00Z",
  "duration": "01:00:00",
  "timezone": "UTC",
  "location": {
    "type": "virtual",
    "url": "https://meet.talview.com/abc-123"
  },
  "additional_params": {},
  "drive_occurrence_id": 101,
  "room_id": null,
  "provider_service_id": null,
  "workflow_candidate_step_id": 4001,
  "cancelled_at": null,
  "cancelled_by": null,
  "created_at": "2023-10-25T09:00:00Z",
  "created_by": 1,
  "updated_at": "2023-10-25T09:00:00Z",
  "updated_by": 1,
  "meeting_participants": [
    {
      "id": 1,
      "participant_role": "interviewer",
      "participation_status": "active",
      "rsvp_status": "accepted",
      "guest_id": null,
      "user_id": 123,
      "online_meeting_link": "https://meet.talview.com/abc-123",
      "meta": {},
      "external_id": null,
      "old_id": null,
      "created_at": "2023-10-25T09:00:00Z",
      "created_by": 1,
      "updated_at": "2023-10-25T09:00:00Z",
      "updated_by": 1,
      "user_details": {
        "id": 123,
        "identity_id": "auth0|abc",
        "azure_object_id": "00000000-0000-0000-0000-000000000000",
        "external_id": "ext_u_123",
        "username": "johndoe",
        "email": "john.doe@example.com",
        "name": "John Doe"
      }
    }
  ],
  "meeting_files": []
}

Payload Type Showcase

{
  id: number;
  external_id: string | null;
  old_id: number | null;
  name: string | null;
  meeting_type: string;
  meeting_status: string;
  from: string | null;
  to: string | null;
  duration: string | null;
  timezone: string;
  location: Record<string, any> | null;
  additional_params: Record<string, any> | null;
  drive_occurrence_id: number | null;
  room_id: number | null;
  provider_service_id: number | null;
  workflow_candidate_step_id: number | null;
  cancelled_at: string | null;
  cancelled_by: number | null;
  created_at: string;
  created_by: number;
  updated_at: string;
  updated_by: number;
  meeting_participants: {
    id: number;
    participant_role: string;
    participation_status: string;
    rsvp_status: string | null;
    guest_id: number | null;
    user_id: number | null;
    online_meeting_link: string | null;
    meta: Record<string, any> | null;
    external_id: string | null;
    old_id: number | null;
    created_at: string;
    created_by: number;
    updated_at: string;
    updated_by: number;
    user_details: {
      id: number;
      identity_id: string | null;
      azure_object_id: string | null;
      external_id: string | null;
      username: string;
      email: string;
      name: string;
    } | null;
  }[];
  meeting_files: {
    id: number;
    file_id: number;
    created_at: string;
    created_by: number;
  }[];
}

Field Notes

  • location and additional_params are JSONB — shape varies by meeting configuration.
  • meta on participants is JSONB with provider-specific metadata.
  • user_details is a cross-service join to auth.user — provides the participant’s identity snapshot.
  • meeting_files are recordings or attachments linked to the meeting.
  • duration is a Postgres INTERVAL rendered as a string (e.g., "01:00:00").
  • Participant and file changes trigger bubble-up to the meeting root.