Meetings

Meeting updated

Sent when anything in the meeting changes: its schedule, people, settings, a recording's status, its phase, or the status of a part of its results. A meeting that becomes past only because its end time went by, with nothing recorded, sends nothing.

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

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.