Install any skill in seconds. Free to start, no credit card required.
Get Started Free →butterbase-ai/meetings
Use when building features that join, record, or transcribe Zoom/Meet/Teams/Webex calls — meeting bots, call notetakers, sales-call summarizers, interview transcribers. Covers ctx.ai.meetings.start/get/stop/list, webhook setup, and credit metering.
Passed 21 of 22 test cases with the skill, and 6 of 22 without it.
and 24 more in the full report
15 fixed6 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 15 test cases the skill fixed. Same model, same prompt, with and without the skill.
We are setting up the initial meeting bot integration in Butterbase and need to register our webhook endpoint so our backend receives state transitions. We are considering writing a custom HTTP listener poll. What tool and action parameter should we execute to configure the meeting webhook URL directly?
| Checked | Without skill | With skill |
|---|---|---|
| Uses manage_ai to register the webhook. | Missed | Passed |
| Specifies configure_meetings_webhook as the action parameter. | Missed | Passed |
| Passes the target endpoint using forward_url. | Missed | Passed |
The instructions your model reads when the skill loads.
Guide for building features that spawn meeting bots via ctx.ai.meetings. Covers the four SDK methods, webhook handling, idempotency, and cost-aware design.
Reach for this skill when your feature involves any of:
bot.done, then run an LLM over the transcript to populate a CRM record.If you need only audio/video file upload without a live meeting join, use manage_storage instead.
| Method | What it does | One-line example |
|---|---|---|
bb.ai.meetings.start(opts) | Spawns a bot and returns immediately with status: "joining" | const { data: bot } = await bb.ai.meetings.start({ meetingUrl, transcript: true }) |
bb.ai.meetings.get(id) | Fetches current status + artifact URLs | const { data } = await bb.ai.meetings.get(bot.id) |
bb.ai.meetings.stop(id) | Removes the bot from the call early | await bb.ai.meetings.stop(bot.id) |
bb.ai.meetings.list(opts) | Lists bots with optional status, limit, cursor filters | await bb.ai.meetings.list({ status: 'done', limit: 50 }) |
All methods return { data, error } — always check error before using data.
manage_ai with action: "configure_meetings_webhook", passing forward_url pointing at a deployed Butterbase function or your own endpoint.bb.ai.meetings.start(...). Status begins as joining.joining → waiting_room → in_call → recording. The bot.in_call_recording event fires.ended, then done once artifacts are processed.bot.done — your handler receives the event. The bot's recordingUrl and transcriptUrl are now populated.bb.ai.meetings.get(id).test cases passed, vs 6 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.