Markdown

AI Companion in Meeting SDK

Control AI Companion features in embedded Zoom meetings.

Overview

The Meeting SDK provides `InMeetingAICompanionController` to manage AI Companion features within meetings. This allows you to check status and available features.

**Important**: The Meeting SDK is for human use cases only. It does NOT support bots or AI notetakers. For bot/automated AI processing, use **rtms**.

Availability

| Platform | Controller Available | |----------|---------------------| | Web | Limited (settings-based) | | Android | ✅ `InMeetingAICompanionController` | | iOS | ✅ `MobileRTCAICompanionController` | | Windows | ✅ `IMeetingAICompanionController` | | macOS | ✅ `ZoomSDKMeetingAICompanionController` |

AI Companion Features

| Feature | Constant | Description | |---------|----------|-------------| | Query | `QUERY` | Ask AI Companion questions during meeting | | Smart Summary | `SMART_SUMMARY` | Auto-generate meeting summary | | Smart Recording | `SMART_RECORDING` | Highlight key moments in recording |

Android

import us.zoom.sdk.*;

// Get AI Companion controller
InMeetingService inMeetingService = ZoomSDK.getInstance().getInMeetingService();
InMeetingAICompanionController aiController = inMeetingService.getInMeetingAICompanionController();

// Check if AI Companion is enabled for this meeting
boolean isEnabled = aiController.isAICompanionEnabled();
Log.d("AICompanion", "Enabled: " + isEnabled);

// Get available features
List<AICompanionFeature> features = aiController.getAvailableFeatures();
for (AICompanionFeature feature : features) {
    Log.d("AICompanion", "Feature available: " + feature.name());
}

// Check specific feature
boolean hasSummary = aiController.isFeatureAvailable(AICompanionFeature.SMART_SUMMARY);

AI Companion Events (Android)

// Listen for AI Companion status changes
inMeetingService.addListener(new InMeetingServiceListener() {
    @Override
    public void onAICompanionActiveChanged(boolean isActive) {
        Log.d("AICompanion", "Active state changed: " + isActive);
    }

    @Override
    public void onAICompanionFeaturesChanged() {
        // Re-check available features
        List<AICompanionFeature> features = aiController.getAvailableFeatures();
    }
});

iOS (Swift)

import MobileRTC

// Get AI Companion controller
guard let meetingService = MobileRTC.shared().getMeetingService(),
      let aiController = meetingService.getInMeetingAICompanionController() else {
    return
}

// Check if AI Companion is enabled
let isEnabled = aiController.isAICompanionEnabled()
print("AI Companion enabled: \(isEnabled)")

// Get available features
if let features = aiController.getAvailableFeatures() as? [MobileRTCAICompanionFeature] {
    for feature in features {
        print("Feature: \(feature.rawValue)")
    }
}

// Check specific feature
let hasSummary = aiController.isFeatureAvailable(.smartSummary)

AI Companion Events (iOS)

// Implement delegate
class MeetingDelegate: NSObject, MobileRTCMeetingServiceDelegate {
    func onAICompanionActiveChanged(_ isActive: Bool) {
        print("AI Companion active: \(isActive)")
    }

    func onAICompanionFeaturesChanged() {
        // Refresh available features
    }
}

Windows (C++)

#include "zoom_sdk.h"

// Get AI Companion controller
IMeetingService* meetingService = SDKInterfaceWrap::GetInst().GetMeetingService();
IMeetingAICompanionController* aiController = meetingService->GetMeetingAICompanionController();

// Check status
bool isEnabled = aiController->IsAICompanionEnabled();

// Get features
IList<AICompanionFeature>* features = aiController->GetAvailableFeatures();
for (int i = 0; i < features->GetCount(); i++) {
    AICompanionFeature feature = features->GetItem(i);
    // Process feature
}

macOS (Objective-C)

#import <ZoomSDK/ZoomSDK.h>

// Get AI Companion controller
ZoomSDKMeetingService *meetingService = [[ZoomSDK sharedSDK] getMeetingService];
ZoomSDKMeetingAICompanionController *aiController = [meetingService getAICompanionController];

// Check status
BOOL isEnabled = [aiController isAICompanionEnabled];
NSLog(@"AI Companion enabled: %d", isEnabled);

// Get features
NSArray *features = [aiController getAvailableFeatures];
for (NSNumber *feature in features) {
    NSLog(@"Feature: %@", feature);
}

Web SDK

The Web SDK doesn't expose direct AI Companion controls. AI Companion behavior is determined by:

  • Account settings
  • Meeting settings
  • Host controls
// AI Companion features are controlled by meeting/account settings
// The Web SDK respects these settings automatically

// You can check meeting info for AI-related settings
ZoomMtg.getCurrentMeetingInfo(function(result) {
  console.log('Meeting info:', result);
});

Use Cases

Display AI Companion Status

// Android: Show UI indicator based on AI Companion status
public void updateAICompanionUI() {
    InMeetingAICompanionController aiController = getAIController();

    if (aiController.isAICompanionEnabled()) {
        aiIndicator.setVisibility(View.VISIBLE);

        if (aiController.isFeatureAvailable(AICompanionFeature.SMART_SUMMARY)) {
            summaryBadge.setVisibility(View.VISIBLE);
        }
    } else {
        aiIndicator.setVisibility(View.GONE);
    }
}

Inform Users About AI Features

// iOS: Show alert about AI features
func showAICompanionInfo() {
    guard let aiController = getAIController() else { return }

    var features: [String] = []

    if aiController.isFeatureAvailable(.smartSummary) {
        features.append("Meeting Summary")
    }
    if aiController.isFeatureAvailable(.smartRecording) {
        features.append("Smart Recording")
    }

    if !features.isEmpty {
        let message = "AI Companion features active: \(features.joined(separator: ", "))"
        showAlert(title: "AI Companion", message: message)
    }
}

Limitations

| Limitation | Notes | |------------|-------| | No bot support | Meeting SDK is for human use only | | Read-only | Cannot enable/disable features via SDK | | Settings-dependent | Features depend on account/meeting settings | | No transcript access | Use REST API or RTMS for transcripts |

Related

  • **[AI Companion Integration Use Case](../../general/use-cases/ai-companion-integration.md)** - Full integration guide
  • **rtms** - For real-time transcript access
  • **zoom-rest-api** - For meeting summaries and transcripts after meeting