Releases: sendbird/sendbird-ios-distribution
SendbirdAIAgentMessenger-v1.7.0
New Features
-
Multiple Files Message (MFM) support
- Users can now select and send multiple images at once as a
MultipleFilesMessage - Documents are restricted to single-file sending only; only images support multi-selection
- Add button is automatically disabled when a document is attached or the image limit is reached
- Users can now select and send multiple images at once as a
-
SBAMultipleFilesMessageCell— new cell for renderingMultipleFilesMessage- Customizable via
SBAConversationModule.List.MultipleFilesMessageCell
- Customizable via
-
SBAQueryParamsSet.Conversation— nowpublicmultipleFilesMessageParamsSendBuilder: a static builder closure to pre-configureMultipleFilesMessageCreateParamsbefore sending
Improvements
-
Conversation list last message display —
MultipleFilesMessagenow correctly renders last message previews:- Shows message text if present
- Otherwise shows photo count (e.g., "3 photos") or file count (e.g., "2 files")
-
Debounced table view reload in
SBAConversationListViewControllerto prevent excessive UI updates during multi-file uploads -
SBA_Conversation_Input_Placeholder_noConversationlocalization key added
Localization
- Added new strings across 11 languages (en, ko, ja, de, es, fr, hi, it, nl, pt-PT, tr):
SBA_Common_okSBA_Common_Alert_maxImageSelection— shown when photo picker limit is reachedSBA_Common_Alert_someFilesExcluded— shown when files are excluded due to upload restrictionsSBA_Conversation_List_AttachmentIndicator_fileAttachedFormat/filesAttachedFormatSBA_ConversationList_List_lastMessageFile/lastMessagePhotosFormat/lastMessageFilesFormat
SendbirdAIAgentCore-v1.7.0
New Features
-
Multiple Files Message (MFM) support
- Users can now select and send multiple images at once as a
MultipleFilesMessage - Documents are restricted to single-file sending only; only images support multi-selection
- Add button is automatically disabled when a document is attached or the image limit is reached
- Users can now select and send multiple images at once as a
-
SBAMultipleFilesMessageCell— new cell for renderingMultipleFilesMessage- Customizable via
SBAConversationModule.List.MultipleFilesMessageCell
- Customizable via
-
SBAQueryParamsSet.Conversation— nowpublicmultipleFilesMessageParamsSendBuilder: a static builder closure to pre-configureMultipleFilesMessageCreateParamsbefore sending
Improvements
-
Conversation list last message display —
MultipleFilesMessagenow correctly renders last message previews:- Shows message text if present
- Otherwise shows photo count (e.g., "3 photos") or file count (e.g., "2 files")
-
Debounced table view reload in
SBAConversationListViewControllerto prevent excessive UI updates during multi-file uploads -
SBA_Conversation_Input_Placeholder_noConversationlocalization key added
Localization
- Added new strings across 11 languages (en, ko, ja, de, es, fr, hi, it, nl, pt-PT, tr):
SBA_Common_okSBA_Common_Alert_maxImageSelection— shown when photo picker limit is reachedSBA_Common_Alert_someFilesExcluded— shown when files are excluded due to upload restrictionsSBA_Conversation_List_AttachmentIndicator_fileAttachedFormat/filesAttachedFormatSBA_ConversationList_List_lastMessageFile/lastMessagePhotosFormat/lastMessageFilesFormat
SendbirdAIAgentMessenger-v1.6.0
New Features
-
Context-Based Conversation Search
Added
AIAgentMessenger.searchConversation(params:completionHandler:)to find existing conversations that match specific context criteria. This allows you to look up conversations associated with particular attributes (e.g., order ID, page URL) without manually tracking channel URLs.- Searches only open conversations for the specified AI Agent
- Context matching uses AND condition — all provided key-value pairs must match
- Returns an array of matching channel URLs
let params = AIAgentMessenger.SearchConversationParams( aiAgentId: "AI_AGENT_ID", context: ["key": "value"] ) AIAgentMessenger.searchConversation(params: params) { result in switch result { case .success(let channelURLs): // Use channelURLs to open or manage matched conversations case .failure(let error): // Handle error } }
Improvements
- Offline Mode Support: Automatically fallback to cached settings when Messenger Settings API fails
Deprecations
- Deprecated
MessageForm.isValidVersion,MessageFormItem.LayoutType.keyboardType,MessageFormItem.LayoutType.returnKeyType,MessageFormItem.ResultCount.isUpdatable()
SendbirdAIAgentCore-v1.6.0
New Features
-
Context-Based Conversation Search
Added
AIAgentMessenger.searchConversation(params:completionHandler:)to find existing conversations that match specific context criteria. This allows you to look up conversations associated with particular attributes (e.g., order ID, page URL) without manually tracking channel URLs.- Searches only open conversations for the specified AI Agent
- Context matching uses AND condition — all provided key-value pairs must match
- Returns an array of matching channel URLs
let params = AIAgentMessenger.SearchConversationParams( aiAgentId: "AI_AGENT_ID", context: ["key": "value"] ) AIAgentMessenger.searchConversation(params: params) { result in switch result { case .success(let channelURLs): // Use channelURLs to open or manage matched conversations case .failure(let error): // Handle error } }
Improvements
- Offline Mode Support: Automatically fallback to cached settings when Messenger Settings API fails
Deprecations
- Deprecated
MessageForm.isValidVersion,MessageFormItem.LayoutType.keyboardType,MessageFormItem.LayoutType.returnKeyType,MessageFormItem.ResultCount.isUpdatable()
SendbirdAIAgentMessenger-v1.5.1
Improvements
- Optimized layout update cycle in conversation message list to prevent redundant UI refresh calls
SendbirdAIAgentCore-v1.5.1
Improvements
- Optimized layout update cycle in conversation message list to prevent redundant UI refresh calls
SendbirdAIAgentMessenger-v1.5.0
New Features
- Scroll Mode: Added ChatGPT-style fixed scroll mode for conversation list
- New
SBAScrollModeenum with.auto(default) and.fixedoptions - Configure via
AIAgentMessenger.config.conversation.list.scrollMode - In
.fixedmode, sent messages stay positioned at the top of the collection view
- New
- New Message Indicator: Added floating indicator for new incoming messages
- Shows count of unread messages when scrolled away from bottom
- Tap to scroll to the latest message
- Enable/disable via
AIAgentMessenger.config.conversation.list.isNewMessageIndicatorEnabled(default: true)
- Custom Message Template: Added support for custom message template rendering
- New
SBACustomMessageTemplateDatamodel for template data structure - New
SBACustomMessageTemplateViewbase class for custom template UI - Event handling system for custom template interactions via
sendEvent(name:data:) - Register custom views via
SBAModuleSet.ConversationModule.List.Cell.CustomMessageTemplateView
- New
- CSAT Always Visible Option: Added
always_visiblesupport for CSAT follow-up questions- Follow-up questions can now be displayed without requiring CSAT score selection
- New
alwaysVisibleproperty inSBAMessageCSATData.FollowUp
Public API Changes
- New enum:
SBAScrollMode
public enum SBAScrollMode {
case auto // Default scroll behavior
case fixed // Fixed message positioning (ChatGPT-style)
}- New configuration properties in
SBAConfig.Conversation.List:isNewMessageIndicatorEnabled: Bool - Controls new message indicator visibilityscrollMode: SBAScrollMode - Sets the conversation scroll behavior
- New localization class:
SBALocalization.Conversation.NewMessageView- title: String - Customizable title for the new message indicator
- New struct:
SBACustomMessageTemplateData
public struct SBACustomMessageTemplateData: Codable {
public let templateId: String
public let response: Response
public let error: String?
public struct Response: Codable {
public let status: Int
public let content: String?
}
}- New class:
SBACustomMessageTemplateView- Base class for custom template UI rendering - New delegate event:
SBAConversationModule.List.DelegateEvent.didReceiveCustomMessageTemplateAction(name:data:message:) - New property in
SBAMessageCSATData.FollowUp:alwaysVisible: Bool? - Controls whether follow-up is shown without CSAT score selection
Improvements
- Renamed SBANewMessageInfo to SBANewMessageView with enhanced functionality
- Improved collection view reload handling with context-based approach
SendbirdAIAgentCore-v1.5.0
New Features
- Scroll Mode: Added ChatGPT-style fixed scroll mode for conversation list
- New
SBAScrollModeenum with.auto(default) and.fixedoptions - Configure via
AIAgentMessenger.config.conversation.list.scrollMode - In
.fixedmode, sent messages stay positioned at the top of the collection view
- New
- New Message Indicator: Added floating indicator for new incoming messages
- Shows count of unread messages when scrolled away from bottom
- Tap to scroll to the latest message
- Enable/disable via
AIAgentMessenger.config.conversation.list.isNewMessageIndicatorEnabled(default: true)
- Custom Message Template: Added support for custom message template rendering
- New
SBACustomMessageTemplateDatamodel for template data structure - New
SBACustomMessageTemplateViewbase class for custom template UI - Event handling system for custom template interactions via
sendEvent(name:data:) - Register custom views via
SBAModuleSet.ConversationModule.List.Cell.CustomMessageTemplateView
- New
- CSAT Always Visible Option: Added
always_visiblesupport for CSAT follow-up questions- Follow-up questions can now be displayed without requiring CSAT score selection
- New
alwaysVisibleproperty inSBAMessageCSATData.FollowUp
Public API Changes
- New enum:
SBAScrollMode
public enum SBAScrollMode {
case auto // Default scroll behavior
case fixed // Fixed message positioning (ChatGPT-style)
}- New configuration properties in
SBAConfig.Conversation.List:isNewMessageIndicatorEnabled: Bool - Controls new message indicator visibilityscrollMode: SBAScrollMode - Sets the conversation scroll behavior
- New localization class:
SBALocalization.Conversation.NewMessageView- title: String - Customizable title for the new message indicator
- New struct:
SBACustomMessageTemplateData
public struct SBACustomMessageTemplateData: Codable {
public let templateId: String
public let response: Response
public let error: String?
public struct Response: Codable {
public let status: Int
public let content: String?
}
}- New class:
SBACustomMessageTemplateView- Base class for custom template UI rendering - New delegate event:
SBAConversationModule.List.DelegateEvent.didReceiveCustomMessageTemplateAction(name:data:message:) - New property in
SBAMessageCSATData.FollowUp:alwaysVisible: Bool? - Controls whether follow-up is shown without CSAT score selection
Improvements
- Renamed SBANewMessageInfo to SBANewMessageView with enhanced functionality
- Improved collection view reload handling with context-based approach
SendbirdAIAgentMessenger-v1.4.3
Changes
- Updated dependency SDK versions to the latest stable releases
- SendbirdChatSDK: v4.35.0
- SendbirdMessageTemplate: v3.33.0
New Features
- User Input Blocking System: Implemented server-driven user input disabling
SendbirdAIAgentCore-v1.4.3
Changes
- Updated dependency SDK versions to the latest stable releases
- SendbirdChatSDK: v4.35.0
- SendbirdMessageTemplate: v3.33.0
New Features
- User Input Blocking System: Implemented server-driven user input disabling