Overview
The createBot function creates and initializes a bot instance with the specified provider, database, and conversation flows.
Function Signature
const createBot = async <P extends ProviderClass = any, D extends MemoryDB = any>(
{ flow, database, provider }: {
flow: FlowClass;
database: D;
provider: P
},
args?: Omit<GeneralArgs, 'listEvents'>
): Promise<CoreClass<P, D>>
Parameters
The conversation flow instance created with createFlow(). Contains all the conversation logic and flows for your bot.
The database adapter instance for storing conversation state and user data.
The messaging platform provider instance created with createProvider().
Optional configuration arguments for the bot instance.
Array of phone numbers to block from interacting with the bot.
Global delay in milliseconds between bot responses.
globalState
Record<string, any>
default:"{}"
Initial global state object accessible across all flows.
extensions
Record<string, any>
default:"[]"
Custom extensions to add functionality to the bot.
Queue configuration for message processing.
Maximum time in milliseconds for processing a message.
Maximum number of concurrent message handlers.
Return Value
Returns a Promise that resolves to the initialized bot instance with full functionality.
Usage Examples
import { createBot, createFlow, createProvider, MemoryDB } from '@builderbot/bot'
import { BaileysProvider } from '@builderbot/provider-baileys'
const main = async () => {
const adapterDB = new MemoryDB()
const adapterFlow = createFlow([])
const adapterProvider = createProvider(BaileysProvider)
const bot = await createBot({
flow: adapterFlow,
database: adapterDB,
provider: adapterProvider
})
// Bot is now ready
}
main()
const { createBot, createFlow, createProvider, MemoryDB } = require('@builderbot/bot')
const { BaileysProvider } = require('@builderbot/provider-baileys')
const main = async () => {
const adapterDB = new MemoryDB()
const adapterFlow = createFlow([])
const adapterProvider = createProvider(BaileysProvider)
const bot = await createBot({
flow: adapterFlow,
database: adapterDB,
provider: adapterProvider
})
// Bot is now ready
}
main()
With Custom Configuration
import { createBot, createFlow, createProvider, MemoryDB } from '@builderbot/bot'
import { BaileysProvider } from '@builderbot/provider-baileys'
const main = async () => {
const adapterDB = new MemoryDB()
const adapterFlow = createFlow([])
const adapterProvider = createProvider(BaileysProvider)
const bot = await createBot(
{
flow: adapterFlow,
database: adapterDB,
provider: adapterProvider
},
{
blackList: ['+1234567890'],
delay: 1000,
globalState: {
apiKey: process.env.API_KEY,
adminNumbers: ['+1987654321']
},
queue: {
timeout: 60000,
concurrencyLimit: 20
}
}
)
// Bot is now ready with custom configuration
}
main()
const { createBot, createFlow, createProvider, MemoryDB } = require('@builderbot/bot')
const { BaileysProvider } = require('@builderbot/provider-baileys')
const main = async () => {
const adapterDB = new MemoryDB()
const adapterFlow = createFlow([])
const adapterProvider = createProvider(BaileysProvider)
const bot = await createBot(
{
flow: adapterFlow,
database: adapterDB,
provider: adapterProvider
},
{
blackList: ['+1234567890'],
delay: 1000,
globalState: {
apiKey: process.env.API_KEY,
adminNumbers: ['+1987654321']
},
queue: {
timeout: 60000,
concurrencyLimit: 20
}
}
)
// Bot is now ready with custom configuration
}
main()