Skip to main content
The CometChat Angular UIKit supports extending the message system with custom message types. You can register custom bubble templates, override how messages appear in the conversation list, and include custom types in message fetching — all without modifying UIKit source code.

Custom Message Bubble

Use MessageBubbleConfigService to register templates for custom message types. The message type key format is {type}_{category} (e.g., location_custom).

Register a Custom Content View

The template receives the message object as $implicit context, so let-message gives you full access to the CometChat.BaseMessage.

Full Bubble Override

To replace the entire bubble structure (header, content, footer, status), register a bubbleView:
The bubbleView template context includes $implicit (message), alignment, and group.

Partial Override

Register only the parts you want to customize. Unregistered parts use defaults:

Conversation Subtitle Override

Use ConversationSubtitleService to control the last message text shown in the conversation list for specific message types.

Register a Subtitle Formatter

Override Subtitle Icon

Unregister


Custom Message Fetching

By default, the message list fetches these types and categories: Default Types: text, file, image, audio, video, groupMember, form, scheduler, card, assistant, extension_sticker, extension_poll, extension_whiteboard, extension_document, meeting Default Categories: message, custom, call, interactive, agentic, action (action is excluded when hideGroupActionMessages is true)

Inspect Current Defaults

Add Custom Types and Categories

Append to the existing defaults:

Replace Types and Categories Entirely

Fully replace the defaults with your own list:
Pass null to revert to the built-in defaults:

Remove Custom Types

If you provide a custom MessagesRequestBuilder via setMessagesRequestBuilder, custom types/categories registered via addCustomMessageTypes/addCustomMessageCategories are not appended. The custom builder is used as-is.

End-to-End Example: Location Sharing

A complete example showing a custom “location” message type with bubble template, subtitle override, and fetch inclusion.

API Reference

MessageBubbleConfigService

ConversationSubtitleService

MessageListService


Next Steps

Message Bubble

Customize the message bubble component.

Conversations

Customize the conversations list.

Localization

Override text and translations.

Date/Time Formatting

Customize date and time display.