Meetings

Meeting created

Sent when a meeting first appears: a calendar sync found it, or a bot was sent to it.

Delivered to every workspace webhook endpoint subscribed to this event, signed with the endpoint's whsec_ secret. See Webhooks for signature verification, retries, and ordering.

postWebhookmeeting.created

Payload

idstring

Stable typed event ID beginning with evt_. Use it to deduplicate retries.

type'meeting.created' | 'meeting.updated' | 'meeting.finished'

The event type. Also sent in the X-HappyScribe-Event header.

  • meeting.created: the meeting first appeared.
  • meeting.updated: something in it changed.
  • meeting.finished: its results reached ready or failed.
created_atstring date-time

When the event happened, in ISO 8601.

Example payload

{
  "data": {
    "object": {
      "id": "mtg_01k6a2r9s8x7c2dvq3m5n6p4ab",
      "object": "meeting",
      "workspace_id": "wks_01k6a2r9s8x7c2dvq3m5n6p4ab",
      "source": "calendar_connection",
      "phase": "past",
      "title": "Weekly sync with Acme",
      "starts_at": "2026-09-29T09:00:00Z",
      "ends_at": "2026-09-29T09:30:00Z",
      "meeting_url": "https://meet.google.com/abc-defg-hij",
      "platform": "meet",
      "organizer": {
        "name": "Marc",
        "email": "marc@gurusup.com",
        "member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab"
      },
      "participants": [
        {
          "name": "Marc",
          "email": "marc@gurusup.com",
          "member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab"
        },
        {
          "name": "Ana Ruiz",
          "email": "ana@acme.com",
          "member_id": null
        }
      ],
      "calendar_event": {
        "id": "cev_01k6a2r9s8x7c2dvq3m5n6p4ab",
        "object": "calendar_event",
        "meeting_id": "mtg_01k6a2r9s8x7c2dvq3m5n6p4ab",
        "ical_uid": "7kq2b@google.com",
        "recurring": true,
        "title": "Weekly sync with Acme",
        "starts_at": "2026-09-29T09:00:00Z",
        "ends_at": "2026-09-29T09:30:00Z",
        "meeting_url": "https://meet.google.com/abc-defg-hij",
        "organizer": {
          "name": "Marc",
          "email": "marc@gurusup.com",
          "member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab"
        },
        "attendees": [
          {
            "name": "Marc",
            "email": "marc@gurusup.com",
            "member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab",
            "response": "accepted"
          },
          {
            "name": "Ana Ruiz",
            "email": "ana@acme.com",
            "member_id": null,
            "response": "needs_action"
          }
        ],
        "source": "calendar_connection",
        "metadata": {},
        "cancelled_at": null,
        "created_at": "2026-09-22T08:00:00Z",
        "updated_at": "2026-09-29T09:31:10Z"
      },
      "policy": {},
      "effective_policy": {
        "recording": {
          "enabled": true,
          "enabled_because": "in_scope",
          "methods": {
            "bot": {
              "start": "on_join",
              "mode": "audio_and_video",
              "silence_detection": {
                "alert": true
              }
            }
          }
        },
        "transcription": {
          "language": "auto"
        },
        "summary": {
          "template": null,
          "language": "en"
        },
        "branding": {
          "brand_kit_id": null
        }
      },
      "recordings": [
        {
          "id": "bot_01k6b0r9s8x7c2dvq3m5n6p4ab",
          "type": "bot",
          "status": "completed",
          "started_at": "2026-09-29T09:00:00Z",
          "ended_at": "2026-09-29T09:31:10Z"
        }
      ],
      "results": {
        "status": "ready",
        "transcript": {
          "status": "ready",
          "language": "en"
        },
        "summary": {
          "status": "ready"
        },
        "media": {
          "status": "ready",
          "duration_seconds": 1834
        }
      },
      "metadata": {},
      "created_at": "2026-09-22T10:14:03Z",
      "updated_at": "2026-09-29T09:41:10Z"
    }
  }
}

Response

Return any 2xx status to acknowledge receipt. Any other status, or a timeout, triggers a retry — up to 21 attempts with backoff.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.