Skip to main content
Updates the configuration of a bot that has not yet joined the meeting. This is useful for modifying scheduled bots before they join.

Method Signature

bot.updateScheduledBot(params: UpdateScheduledParams): Promise<BotDetails>

Parameters

id
string
required
The unique identifier of the bot to update
meeting_url
string
Update the meeting URL the bot should join
bot_name
string
Update the display name for the bot
join_at
Date
Update when the bot should join the meeting
real_time_transcription
RealTimeTranscription
Update real-time transcription configuration
destination_url
string
Webhook URL to receive transcription events
partial_results
boolean
Whether to send partial transcription results
enhanced_diarization
boolean
Enable enhanced speaker identification
real_time_media
RealTimeMedia
Update real-time media streaming configuration
transcription_options
TranscriptionOptions
Update transcription processing configuration
provider
string
required
Transcription provider to use
recording_mode
string
Update recording mode: “speaker_view”, “gallery_view”, or “audio_only”
recording_mode_options
RecordingModeOptions
Update additional recording configuration
automatic_video_output
AutomaticVideoOutput
Update the bot’s video appearance configuration

Response

Returns the updated bot details with all current configuration.
id
string
Unique identifier for the bot
meeting_url
object
Updated meeting information
status
BotStatus
Current status of the bot
join_at
string
Updated ISO 8601 timestamp for when the bot will join
bot_name
string
Updated display name of the bot

Example

import { Recall } from '@recall.ai/sdk';

const client = new Recall({
  apiKey: 'your-api-key',
  region: 'us-west-2'
});

// Create a scheduled bot
const joinTime = new Date();
joinTime.setHours(joinTime.getHours() + 2);

const bot = await client.bot.create({
  meeting_url: 'https://zoom.us/j/123456789',
  join_at: joinTime
});

// Update the join time
const newJoinTime = new Date();
newJoinTime.setHours(newJoinTime.getHours() + 1);

const updatedBot = await client.bot.updateScheduledBot({
  id: bot.id,
  join_at: newJoinTime
});

console.log(`Updated join time: ${updatedBot.join_at}`);

Example: Update Bot Name

const updatedBot = await client.bot.updateScheduledBot({
  id: 'bot_1234567890',
  bot_name: 'Updated Bot Name'
});

console.log(`Bot name updated to: ${updatedBot.bot_name}`);

Example: Update Transcription Settings

const updatedBot = await client.bot.updateScheduledBot({
  id: 'bot_1234567890',
  real_time_transcription: {
    destination_url: 'https://new-webhook.com/transcription',
    enhanced_diarization: true,
    partial_results: false
  },
  transcription_options: {
    provider: 'deepgram'
  }
});

console.log('Transcription settings updated');

Example: Change Meeting URL

// Update bot to join a different meeting
const updatedBot = await client.bot.updateScheduledBot({
  id: 'bot_1234567890',
  meeting_url: 'https://meet.google.com/new-meeting-code'
});

console.log(`Updated meeting platform: ${updatedBot.meeting_url.platform}`);

Notes

  • This method can only update bots that haven’t joined yet (status is ready or similar early states)
  • Once a bot has joined a meeting, most configuration cannot be changed
  • All update parameters are optional - only provide the fields you want to change

Build docs developers (and LLMs) love