Skip to main content

Overview

Webhook events for Note resources. All note events use resourceType: "Note".

Event Details

note.created

  • When starting a live-voice note recording
  • When creating a note from a recording file

note.deleted

  • When a user permanently deletes a note

note.recording.completed

  • When all audio data processing is complete and text conversion and paragraph generation are finished
  • Important: This event can occur multiple times for real-time meeting notes, as recording/stopping may happen several times during a single meeting session
  • When you receive this event, you can retrieve the complete note information at that point in time

note.user_content.updated

  • When a user manually edits the note content

note.ended

  • Triggered when a note is completely finished (after all processing is complete)
  • Fires only once per note lifecycle, unlike note.recording.completed which can fire multiple times
  • This is the definitive event for note completion
  • Use this event when you need to know that a note has reached its final state

Example Payload

Resource Data

Note events include the complete Note resource data. See the Note Schema for field descriptions. Important: Note resources contain only metadata. For transcript content, use the Paragraphs API to retrieve the actual text data.

Guide

Real-time Meeting Notes

  • recording.completed can fire multiple times for the same note in real-time meetings
  • Always fetch fresh note data when receiving this event
Using note.ended Event:
  • note.ended fires only once when a note is completely finished, enabling clearer lifecycle management
  • Unlike recording.completed, which can fire multiple times during a meeting, note.ended signals the definitive end
  • Both recording.completed and note.ended events are supported and can be used together depending on your needs
Example Scenario:
  1. Meeting starts → recording begins
  2. Recording pauses → transcript & summary processing → note.recording.completed fired (Event #1)
  3. Recording resumes → continues processing
  4. Recording stops → transcript & summary processing → note.recording.completed fired (Event #2)
Example Handling:
async function handleNoteRecordingCompleted(event) {
  const noteId = event.data.resourceId;
  
  // Use note metadata from event data
  const note = event.data.resource;
  
  // Fetch paragraph content
  const paragraphs = await fetchNoteParagraphs(noteId);
  
  // Process the complete note data
  processNoteUpdate(note, paragraphs);
}