Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

START MEET / JOIN MEET Keywords

The START MEET and JOIN MEET keywords enable bots to create and participate in video meetings, bringing AI capabilities directly into video conferencing.

Keywords

KeywordPurpose
START MEETCreate a new meeting room and get join link
JOIN MEETAdd the bot to an existing meeting
LEAVE MEETRemove the bot from a meeting
INVITE TO MEETSend meeting invitations to participants

START MEET

Creates a new video meeting room and optionally adds the bot as a participant.

Syntax

room = START MEET "room-name"
room = START MEET "room-name" WITH BOT
room = START MEET "room-name" WITH OPTIONS options

Parameters

ParameterTypeDescription
room-nameStringDisplay name for the meeting room
WITH BOTFlagAutomatically add the bot to the meeting
optionsJSONMeeting configuration options

Options Object

' Options can be set as a JSON string
options = '{"recording": true, "transcription": true, "max_participants": 50}'

Example

' Create a simple meeting
room = START MEET "Team Sync"
TALK "Meeting created! Join here: " + room.url

' Create meeting with bot participant
room = START MEET "AI-Assisted Workshop" WITH BOT
TALK "I've joined the meeting and I'm ready to help!"
TALK "Join link: " + room.url

' Create meeting with full options
options = '{"recording": true, "transcription": true, "bot_persona": "note-taker"}'
room = START MEET "Project Review" WITH OPTIONS options

Return Value

Returns a room object with:

PropertyDescription
room.idUnique room identifier
room.urlJoin URL for participants
room.nameRoom display name
room.createdCreation timestamp
room.host_tokenHost access token

JOIN MEET

Adds the bot to an existing meeting room.

Syntax

JOIN MEET room_id
JOIN MEET room_id AS "persona"
JOIN MEET room_url

Parameters

ParameterTypeDescription
room_idStringMeeting room ID
room_urlStringMeeting join URL
personaStringBot’s display name in the meeting

Example

' Join by room ID
JOIN MEET "room-abc123"

' Join with custom persona
JOIN MEET "room-abc123" AS "Meeting Assistant"

' Join by URL
JOIN MEET "https://meet.gb/abc-123"

' Join and announce
JOIN MEET meeting_room AS "AI Note Taker"
TALK TO MEET "Hello everyone! I'm here to take notes. Just say 'note that' followed by anything important."

LEAVE MEET

Removes the bot from the current meeting.

Syntax

LEAVE MEET
LEAVE MEET room_id

Example

' Leave current meeting
LEAVE MEET

' Leave specific meeting (when bot is in multiple)
LEAVE MEET "room-abc123"

' Graceful exit
TALK TO MEET "Thanks everyone! I'll send the meeting notes shortly."
WAIT 2
LEAVE MEET

INVITE TO MEET

Sends meeting invitations to participants.

Syntax

INVITE TO MEET room, participants
INVITE TO MEET room, participants, message

Parameters

ParameterTypeDescription
roomObject/StringRoom object or room ID
participantsArrayList of email addresses
messageStringOptional custom invitation message

Example

' Create room and invite team
room = START MEET "Sprint Planning" WITH BOT
participants = ["alice@company.com", "bob@company.com", "carol@company.com"]
INVITE TO MEET room, participants

TALK "Invitations sent to " + LEN(participants) + " participants"

' With custom message
INVITE TO MEET room, participants, "Join us for sprint planning! The AI assistant will be taking notes."

TALK TO MEET

Sends a message to all meeting participants (text-to-speech or chat).

Syntax

TALK TO MEET "message"
TALK TO MEET "message" AS CHAT
TALK TO MEET "message" AS VOICE

Example

' Send as both chat and voice (default)
TALK TO MEET "Let's start with the agenda review."

' Chat only (no voice)
TALK TO MEET "Here's the link to the document: https://..." AS CHAT

' Voice only (no chat message)
TALK TO MEET "I've noted that action item." AS VOICE

HEAR FROM MEET

Listens for speech or chat messages from meeting participants.

Syntax

HEAR FROM MEET INTO variable
HEAR FROM MEET INTO variable TIMEOUT seconds

Example

' Listen for meeting input
HEAR FROM MEET INTO participant_message

IF INSTR(participant_message, "note that") > 0 THEN
    note = REPLACE(participant_message, "note that", "")
    notes = notes + "\n- " + note
    TALK TO MEET "Got it! I've noted: " + note
END IF

Complete Example: AI Meeting Assistant

' AI Meeting Assistant Bot
' Joins meetings, takes notes, and provides summaries

TALK "Would you like me to join your meeting? Share the room ID or say 'create new'."
HEAR user_input

IF user_input = "create new" THEN
    TALK "What should we call this meeting?"
    HEAR meeting_name
    
    room = START MEET meeting_name WITH BOT
    TALK "Meeting created! Share this link: " + room.url
    
    TALK "Who should I invite? (comma-separated emails, or 'skip')"
    HEAR invites
    
    IF invites <> "skip" THEN
        participants = SPLIT(invites, ",")
        INVITE TO MEET room, participants
        TALK "Invitations sent!"
    END IF
ELSE
    room_id = user_input
    JOIN MEET room_id AS "AI Assistant"
    TALK "I've joined the meeting!"
END IF

' Initialize notes
notes = "# Meeting Notes\n\n"
notes = notes + "**Date:** " + FORMAT(NOW(), "YYYY-MM-DD HH:mm") + "\n\n"
notes = notes + "## Key Points\n\n"

TALK TO MEET "Hello! I'm your AI assistant. Say 'note that' to capture important points, or 'summarize' when you're done."

' Meeting loop
meeting_active = true

WHILE meeting_active
    HEAR FROM MEET INTO message TIMEOUT 300
    
    IF message = "" THEN
        ' Timeout - check if meeting still active
        CONTINUE
    END IF
    
    ' Process commands
    IF INSTR(LOWER(message), "note that") > 0 THEN
        note_content = REPLACE(LOWER(message), "note that", "")
        notes = notes + "- " + TRIM(note_content) + "\n"
        TALK TO MEET "Noted!" AS VOICE
        
    ELSE IF INSTR(LOWER(message), "action item") > 0 THEN
        action = REPLACE(LOWER(message), "action item", "")
        notes = notes + "- **ACTION:** " + TRIM(action) + "\n"
        TALK TO MEET "Action item recorded!" AS VOICE
        
    ELSE IF INSTR(LOWER(message), "summarize") > 0 THEN
        ' Generate AI summary
        summary = LLM "Summarize these meeting notes concisely:\n\n" + notes
        TALK TO MEET "Here's the summary: " + summary
        
    ELSE IF INSTR(LOWER(message), "end meeting") > 0 THEN
        meeting_active = false
    END IF
WEND

' Save and share notes
filename = "meeting-notes-" + FORMAT(NOW(), "YYYYMMDD-HHmm") + ".md"
SAVE notes TO filename

TALK TO MEET "Meeting ended. I'll send the notes to all participants."
LEAVE MEET

' Email notes to participants
SEND MAIL participants, "Meeting Notes: " + meeting_name, notes
TALK "Notes saved and sent to all participants!"

Example: Quick Standup Bot

' Daily Standup Bot
room = START MEET "Daily Standup" WITH BOT

team = ["dev1@company.com", "dev2@company.com", "dev3@company.com"]
INVITE TO MEET room, team, "Time for standup! Join now."

TALK TO MEET "Good morning team! Let's do a quick round. I'll call on each person."

updates = ""

FOR EACH member IN team
    TALK TO MEET member + ", what did you work on yesterday and what's planned for today?"
    HEAR FROM MEET INTO update TIMEOUT 120
    updates = updates + "**" + member + ":** " + update + "\n\n"
NEXT

TALK TO MEET "Great standup everyone! I'll post the summary to Slack."

' Post to Slack
POST "https://slack.com/api/chat.postMessage" WITH
    channel = "#dev-standup",
    text = "📋 **Standup Summary**\n\n" + updates

LEAVE MEET

Configuration

Configure Meet integration in config.csv:

name,value
meet-provider,livekit
meet-server-url,wss://localhost:7880
meet-api-key,vault:gbo/meet/api_key
meet-api-secret,vault:gbo/meet/api_secret
meet-bot-default-persona,AI Assistant
meet-recording-enabled,true
meet-transcription-enabled,true
meet-max-participants,50

Bot Capabilities in Meetings

When a bot joins a meeting, it can:

CapabilityDescription
ListenTranscribe speech from participants
SpeakText-to-speech announcements
ChatSend text messages to meeting chat
RecordCapture meeting recording
Screen ShareDisplay content (dashboards, docs)
ReactSend emoji reactions

See Also