Key features
Real-time messaging
AI agent integration
Session management
Message history
Knowledge Base integration
Reasoning transparency
Flexible display modes
Display modes
Mode details
- Inline
- Overlay
- FullScreen
- Floating
- Can be a child of any container or card
- Embeds directly into the page layout
- Best for dedicated chat pages or inline chat experiences
- Width and height follow the parent container; supports Fill or Fixed sizing
Sizing defaults
Theming per display mode
Theme values can be set independently for each display mode and per platform (Web, Android, iOS) through Design Assets → Themes → Components → Chat.Chat header button and URL synchronization
The chat header includes a state-aware button that adapts based on the current display mode (for example, toggling between fullscreen and overlay views). Chat session state is also synchronized to the browser URL viapopstate, so navigating back or refreshing the page restores the correct session context.
Global component
The Chat component can be added as a Global Component in UI Flows, making it persist across pages without needing to add it to each page individually. When configured as a global component:- The chat appears in the Global Components section of the left navigation panel
- It persists as users navigate between pages in the UI Flow
- You can attach or detach the chat from specific pages to control where it appears
- The chat maintains its conversation state across page navigation
Sizing
The Chat component and floating action button support fixed sizing, allowing you to set a specific width and/or height value for precise control over the chat container dimensions.Subcomponents
Reasoning display
The reasoning subcomponent shows users how the AI agent is processing their request. When enabled, a thinking indicator appears while the agent works through its reasoning steps.Error handling and regeneration
When a message fails to generate, the chat displays an error state with an option to retry:Chat History
Chat History displays a list of conversations started by the current user, grouped by time period: Today, Yesterday, Previous 7 Days, Previous 30 Days, and Older.
Behavior
- The chat history button is always visible in the chat header
- When opened, the list shows each conversation with its title and timestamp (displayed in a tooltip)
- Available actions: New chat, Expand/Minimize, Dock (hide chat)
- Opening a conversation from the list resumes the session:
- Messages are prefilled with the last exchanged messages
- Scrolling up loads older replies
- New messages continue on the same session ID
- Conversations are per-user — attempting to access another user’s history shows an access denied error and redirects to a new chat session
Theming
Chat History adds three new themed elements configurable per display mode (Inline, Floating, FullScreen) and per platform (Web, Android, iOS) through Design Assets → Themes → Components → Chat:sys_ChatHistory and sys_ChatBack.
Localization
Chat History uses system substitution tags for all labels. Override these in CMS → Substitution Tags to customize or localize:Markdown rendering in messages
Agent (receiver) messages support Markdown formatting, allowing AI-generated responses to include structured content. The renderer automatically converts Markdown syntax to styled HTML. Supported syntax:Suggested Prompts
The Suggested Prompts subcomponent displays a set of pre-configured prompt suggestions to the user before they begin typing. When a suggestion is clicked, its text is sent as the user’s input, starting the conversation immediately.
Props
Behavior
- The subcomponent only renders when at least one prompt is provided in the
promptsarray. If the array is empty or not set, the section is hidden entirely. - Clicking a suggestion sends that prompt text as the user’s input, triggering the chat workflow as if the user typed and submitted the message.
- Long prompt strings that exceed the display area are truncated and shown in full via a tooltip on hover.
Theming
Full theming support is available in both Angular and React SDKs. Styles can be configured per display mode (Inline, Floating, FullScreen) and per platform (Web, Android, iOS) through Theme Admin (Design Assets → Themes → Components → Chat → Suggested Prompts).AI-generated prompt suggestions
In addition to the static suggested prompts configured above, the chat component can display AI-generated prompt suggestions that are dynamically created by Custom Agent nodes in chat-driven workflows. When a Custom Agent node has Prompt Suggestions enabled (via its satellite panel), the agent generates contextual follow-up suggestions alongside each reply. These appear as clickable chips below the agent’s message, similar to static suggested prompts but tailored to the conversation context. Key differences from static suggested prompts:label is displayed as the user’s message while the full content is sent as input to the next workflow run.
For configuration details, see the Custom Agent node documentation.
Voice input
Users can send voice messages in addition to typed text. When voice input is enabled, a microphone button appears in the chat input. Clicking it records audio in the browser; the recording is uploaded and sent as the user’s next message, appearing in the chat history as an audio player alongside text messages.Enabling voice input
Voice input is configured on the Chat Input sub-component in UI Designer:Runtime behavior
- Recording limit: 2 minutes per message. Longer recordings stop automatically.
- Blocked during replies: The microphone is disabled while the agent is streaming a response (SSE in progress) to prevent interleaved turns.
- Single player: Only one audio message can play at a time — starting a new playback pauses any other voice message.
- History: Voice messages are persisted with the rest of the conversation and replayed with a progress bar when the user scrolls back.
Stop agent response
When the user presses Stop:- The running chat-driven workflow is cancelled. If cancellation happens before any AI node executes, the user prompt is persisted as cancelled and no AI call is made. If it happens while an AI node is executing, the in-flight AI call is stopped and any partial response is discarded.
- The chat receives a
chatCancelledSSE event on theCHAT_WORKFLOW_RESPONSEchannel, signalling the UI to exit the streaming state. - The user message is stored with a
cancelled: trueflag on the chat message record.
Theming
The Stop button uses a system icon registered asstopResponseIcon under each chat input area. Defaults preloaded by cms-core:
stopResponseIcon in the active theme to swap the icon, the same way you would override sendMessageIcon or voiceInputIcon.
Localization
The chat input action labels are configurable via system substitution tags. Thea11y variants are used as accessibility labels (screen reader text); the non-a11y variants are used as visible labels and tooltips.
Chat configuration
ThechatConfig object controls the behavior and appearance of the chat:
Runtime behavior
Starting a chat
User initiates chat
API call
Session created
chatSessionId that is persisted for the userInitial message
Message exchange
- Sending messages
- Receiving messages
- User types message in input field
- Message is sent to the workflow via Chat Input node
- Workflow processes the message through AI nodes
- Response is returned to the chat interface
Session management
Session persistence
sessionIdstored in browser session/local storage- Enables conversation continuity across page refreshes
- Session data includes message history
Message history retrieval
- On page refresh, system loads existing
sessionId - Retrieves and displays previous messages
- Restores conversation state automatically
Data storage
Chat sessions are persisted in the FlowX Database:Conversation history API
FlowX provides REST API endpoints for retrieving conversation history programmatically. These are useful for building custom dashboards, analytics, or integrating conversation data into external systems.List conversations
Retrieve all conversations for the current authenticated user within a workspace and app.Fetch a single conversation
Retrieve a single conversation with its full message history.Custom chat persistence workflow
For advanced use cases where you need full control over chat session storage, you can build a custom workflow that manages chat persistence using FlowX Database. This approach allows you to:- Customize the chat data model
- Add additional metadata to chat sessions
- Integrate with external systems
- Implement custom session management logic
Workflow overview
The chat persistence workflow handles two main scenarios:- Loading chat history - When a user returns to an existing chat session
- Processing new messages - When a user sends a new message
Setting up the FlowX database data source
Create the data source
Configure the collection
chat) and define the schema based on your data model.Define the data model
Building the workflow
Create the workflow
action parameter determines whether to load history (LOAD_HISTORY) or process a new message.Add Get chat session node
Add action type condition
- If true: Route to the “Return chat history” end node
- Else: Continue to message processing
Add Return chat history end node
LOAD_HISTORY branch, add an End Flow node that returns the chat history:Add session exists condition
Add Create chat session node
Add Update history script node
Add Update chat session node
Add Return response end node
Chat session data model example
UI Flow integration
The Chat component integrates with UI Flows: Chat Component Wrapper- Chat component is embedded within UI Flow structure
- Follows UI template hierarchy
- Shares session context with other components
Event-based communication
Event-based communication
- Components emit and listen for custom events
- Enables loosely coupled interactions
- Example: Chat triggers process start event
On-demand communication
On-demand communication
- Direct component-to-component calls
- For tightly integrated features
- Example: Chat updates task management state
Audit and debugging
UI Flows audit
Chat sessions tracking
- Track when chats are started
- Monitor active and completed sessions
- View session duration and message count
Console logging
- View workflow execution logs
- Debug conversation flow
Debug interface
UI Flow Sessions Console Access comprehensive debugging tools through the UI Flow Sessions panel:- Nodes
- Logs
- Input/Output
SDK integration
The Chat component is available through the FlowX SDKs for both Angular and React applications.Angular SDK
FlxChatRendererComponent in Angular applicationsReact SDK
FlxChatRenderer component in React applicationsKey SDK parameters
Best practices
Workflow design
Do
- Keep chat workflows focused on a single use case
- Use clear, natural language prompts
- Test with various user inputs
- Handle errors gracefully with helpful messages
Don't
- Don’t create overly complex conversation flows
- Don’t send responses from multiple Custom Agent nodes
User experience
Do
- Provide clear initial greeting messages
- Show typing indicators during processing
- Display helpful error messages
- Allow users to restart conversations
Don't
- Don’t make users wait too long for responses
- Don’t use technical jargon in agent messages
- Don’t lose conversation context
Performance
Do
- Optimize workflow execution time
- Cache frequently accessed data
- Limit message history retrieval
Don't
- Don’t load entire conversation history every time
- Don’t make unnecessary API calls
Troubleshooting
Chat not loading
Chat not loading
- Workflow is not properly configured
- Workflow is not published
- UI Flow has incorrect agent ID/workflow name
- Verify the workflow is properly configured
- Check that the workflow is published and active
- Ensure UI Flow has correct agent ID/workflow name
Messages not sending
Messages not sending
- Network connectivity issues
- Workflow is in error state
- Configuration errors
- Check network connectivity
- Verify workflow is not in error state
- Review workflow console logs for errors
Session lost on refresh
Session lost on refresh
- sessionId is not persisted in storage
- Browser storage permissions issues
- Ensure sessionId is persisted in storage
- Check browser storage permissions
- Verify session management configuration
Knowledge Base integration
The Chat component can use Knowledge Bases to provide contextual, grounded AI responses.How it works
Create Knowledge Base
Content processing
Link to Custom Agent
Context retrieval
Supported file formats
Configuration options
Knowledge Base Documentation
Platform availability
- Web
- Mobile
- All four display modes: Inline, Overlay, FullScreen, Floating
- Complete feature set including Suggested Prompts, Markdown rendering, and voice input
- Angular and React renderer support

