Skip to content

Lifecycle

How It Works

The lifecycle of a meeting in Prodgy Assistant follows 7 stages:

1. Detection

The bot monitors the email mailbox and detects the invitation.

2. Validation

Verifies the sender and resolves the destination webhook.

3. Scheduling

The meeting is added to the queue with automatic deduplication.

4. Join

The bot joins the meeting 15 seconds before the scheduled time.

5. Transcription

Captures audio and transcribes in real time.

6. Leave

The bot leaves when the meeting ends or becomes empty.

7. Delivery

The transcription is sent via webhook and recorded in the history.


When you forward a Teams meeting invitation to the bot’s email:

  • The bot checks the email mailbox periodically (every few minutes)
  • Upon finding a new message, it identifies whether it contains a valid meeting invitation
  • Automatically extracts the meeting URL, date/time, and duration
  • If the invitation is for a recurring meeting, it identifies all upcoming occurrences

After detecting the invitation, the bot needs to validate who sent it:

  • Identifies the sender: in forwarded emails, the bot identifies who actually forwarded (not the original organizer)
  • Verifies registration: confirms the sender is registered in Prodgy
  • Resolves the workspace: determines which product the transcription should be sent to
  • Locates the webhook: finds the destination URL configured in the workspace

If any of these validations fail (unregistered user, product without active agent, webhook not configured), the scheduling is rejected.


With the invitation validated, the meeting is added to the scheduling queue:

  • The system checks if the meeting is not already scheduled (deduplication by URL and time)
  • If another user already forwarded the same invitation, the new webhook is added to the existing meeting
  • The meeting is persisted to ensure it survives service restarts
  • A history record is created with the meeting_scheduled status

At the scheduled time:

  • The bot joins the meeting 15 seconds before the start time
  • Before joining, it re-validates all users who requested the transcription
  • If a user was deactivated since scheduling, they are removed from the recipient list
  • In case of connection failure, the bot retries automatically (up to 3 attempts)

During the meeting:

  • The bot captures audio from all participants
  • Audio is transcribed into segments, associated with each participant’s name
  • The bot remains in the meeting silently, without interfering with the conversation

The bot leaves the meeting automatically in two situations:

  1. The meeting ends: when the organizer ends it or all human participants leave
  2. Wait time exceeded: if the bot joins and no human participant appears within the configured time

After leaving the meeting:

  • The complete transcription (with segments and participants) is assembled into a payload
  • The payload is sent via webhook to each user who requested the transcription
  • If delivery fails, the system retries automatically
  • A local backup of the transcription is saved as a safety measure

Each lifecycle stage generates a record in the platform’s history:

StageEventVisible on Dashboard
Meeting scheduledmeeting_scheduledYes
Bot joined the meetingmeeting_joinedYes
Bot left the meetingmeeting_leftYes
Transcription deliveredmeeting_transcriptionYes
Error at any stagemeeting_errorYes