Intelligent Search App

Prev Next

Rocket.Chat’s Intelligent Search app allows you to find the right information across your workspace, so you can quickly understand the situation and the context across different rooms and threads. This helps you avoid the risks of scattered information, turning dispersed collaboration into actionable data.

Key features

  • The Intelligent Search app adds a DM-based search assistant to Rocket.Chat. Users message the bot in a DM, then the app queries your vector pipeline and returns compact previews with links to the original messages.

  • The app is intent-based (known as semantic search), meaning it focuses on the meaning of search queries rather than the literal words used in the search. This allows you to search the way you think.

  • Based on the configuration, the app can have consolidated and cross-room views of related discussions.

  • The app is access-aware by default, reflecting each user’s clearance and permissions. So each user gets results based on their assigned roles and permissions within the workspace.

How the app works

The Intelligent Search app is built natively on Rocket.Chat’s Apps-Engine framework.

When a user performs a search, the app:

  • Fetches pipeline schema: Retrieves the metadata schema from the configured pipeline endpoint. It works by comparing the meaning of the user’s query to message embeddings produced by the pipeline, enabling users to ask questions in natural language even when the exact words differ.

  • Converts to function definition: Transforms the schema into an LLM function-calling format.

  • Extracts filters (optional): Uses the LLM to extract filters and a refined query.

  • Applies room constraints: Enforces room_id filters for access control.

  • Executes search: Sends a pipeline search request with filters and role-based classifications derived from user roles.

  • Displays results: Posts compact information blocks in a thread reply.

Prerequisites

  • Rocket.Chat AI pipeline.

  • An additional LLM: This is optional. It is useful if you want to incorporate specific filters, such as date ranges.

Install and configure the app

To install the app, follow these steps:

  1. Click the Marketplace icon from the main menu at the top of the workspace.

  2. Click Explore, and the Marketplace page opens.

  3. Search for the Intelligent Search app from the list of apps and click it.

  4. On the Intelligent Search app page, click Install.

  5. Agree to the required permissions. Then the app is successfully installed in your workspace.

To configure the installed app according to your needs, follow these steps:

  1. On the Intelligent Search app page, go to the Settings tab.

  2. Modify the values of the following settings as per your needs:

Field

Description

Pipeline API Base URL*

Enter the base URL of the pipeline API.

Results depend on the embedding model configured in your pipeline, and multilingual support and recall vary by model.

Pipeline ID

Enter the pipeline ID that you want to use.

This field is optional. The app can automatically create a new pipeline.

Pipeline API Key*

Enter the API key generated by the pipeline.

Pipeline API Secret*

Enter the API secret generated by the pipeline.

  1. With these settings configured, you are ready to use the app.

  2. For advanced configuration, modify the values of the following settings:

Field

Description

LLM connection

LLM API URL

Enter the LLM endpoint value (by default: https://api.openai.com/v1). You can use an open-source LLM or deploy one yourself.

LLM API Key

Enter the API key of the LLM that you are using.

LLM Model Name

Enter the model name to be used for filter extraction. For example, gpt-4o-mini, gpt-oss-120b.

Enable Filter Extraction

The above settings are only used when this option is enabled for LLM-based filter extraction.

This is useful when you want to search based on specific filters with natural language queries. For example, if you want to search for messages from a particular user within the last two months, this setting allows you to filter the metadata and retrieve the correct results.

These settings are optional, and filtered search will work even without configuring these settings. If you need strict filters, such as author, room, or date ranges, enable LLM filter extraction.

Logging & access

Log Level

The logging settings are optional and only used when debugging the app. For general use, you don’t need to configure these settings.

Select the type of logs you want to receive. The options are:

  • Debug

  • Info

  • Warn (This is the default value.)

  • Error

Log Output Target

Select where you want to receive the logs. The options are:

  • Rocket.Chat Logger

  • Console Only

  • Logger and Console

  • Disable Additional Logs (This is the default value.)

Log Tool Call Details

Enable this option to get structured tool-call payloads in the logs.

Slash Command Roles

Enter the roles (comma-separated values) that are allowed to run the app’s slash commands. Leave this field empty to allow all users.

Search experience

Default Search Lookback (Days)

This setting determines the number of days to consider when performing a search. For example, the value 60 means that by default, the last 60 days will be considered when returning results.

This value may not be considered or may be the second priority if the user query contains specific time-based filters.

Indexing

Initial Index Window (Days)

Enter the number of days of messages that the app should load for searching. This value applies to all rooms where searching is enabled. The maximum value is 360 days.

Modify this value to set a different number of days of messages to be indexed.

Auto-ingest Interval

Enter the number of hours to index new messages automatically. The range is 1 to 168 hours.

For example, if you enter the value as 2, every two hours new messages in rooms will be indexed and included in subsequent searches.

Search management commands

After the app settings are configured, administrators must select the rooms to be indexed and included in the search. To do this, first create a DM with the Intelligent Search app bot (the username is intelligent-search.bot). To do this, click the plus icon Screenshot 2025-12-22 194724.png from the main menu and search for the Intelligent Search bot user.

In the DM, you can use the slash commands described below. To view the list of all commands, use the command /search help.

Enable or disable search for rooms

Use the following commands in the DM with the Intelligent Search bot to enable and disable search for specific rooms:

Slash command

Description

/search enable #room-name

Enable search for a room. Note that encrypted rooms cannot be included in the search results.

Enter the # symbol before the room name to list the rooms for quick access and to ensure that you provide the correct room name.

For example, /search enable #Special-Ops

/search disable #room-name

Disable search for a room.

Bulk enable or disable search

In the DM, use the following commands to enable or disable search in bulk by room category:

Slash command

Description

/search enable channels|teams|discussions|dm

Enable search in channels, teams, discussions, or DMs. Use one room type at a time. For example, /search enable channels

Bulk jobs run in the background, and new rooms are automatically added to the indexing process.

/search disable channels|teams|discussions|dm

Disable search in channels, teams, discussions, or DMs. Use one room type at a time. New rooms will also not be included in the indexing process.

Search status and inventory

In the DM with the bot, use the following commands to view the status of the search and indexing processes:

Slash command

Description

/search list

List the rooms where intelligent search is enabled.

/search status [#room-name|global]

Display the indexing status for a room (/search status #room-name) or the entire workspace (/search status global).

This returns details such as the number of tracked rooms, initial and cleanup jobs, and other background processes.

/search stats

Shortcut to display only workspace-level stats.

/search status unscheduled [initial|cleanup]

List rooms without initial indexing jobs (/search status unscheduled initial) or cleanup jobs (/search status unscheduled cleanup) in the queue.

/search status bulk

Display the status of bulk index jobs.

Search maintenance

In the DM, use the following commands for specific configuration according to your needs:

Slash command

Description

/search setup

Attempt to auto-create the pipeline. Use this command when the pipeline ID is not configured in the app settings. The app automatically creates a new pipeline that will index rooms.

/search reload <messageId|messageUrl>

Manually reload a message to the index. You can enter the message ID (/search reload messageId) or the message URL (/search reload messageUrl).

Get the message URL by clicking the kebab menu against any message and selecting Copy link. To get the message ID, you can use one of the GET endpoints from the Rooms or Messaging API.

/search delete <messageId|messageUrl>

Delete a message from the search index using the message ID or the message URL.

/search check <messageId|messageUrl>

Check if a message exists in the search index.

Use the app

To use the search app, workspace users can follow these steps:

  1. Create a DM with the Intelligent Search app bot. To do this, search for Intelligent Search in the search bar at the top. Click the bot user that is displayed in the results to join the DM.

  2. In the DM room, users can enter any search queries they need. Results are posted as a thread reply. The bot responds based on the indexed room messages and the user's access level. The bot also returns the list of rooms from which the results were sourced.

Note that very short or vague queries can be noisy, and semantic search can surface relevant messages outside your intended timeframe unless a timestamp filter is applied in the prompt.

Troubleshooting

I get the error that the "Pipeline is not ready".

Ensure that you have entered the correct pipeline API URL in the app settings. If you have not created one previously, you can use the /search setup command in the DM with the bot to create a new pipeline.

I’m getting zero search results.

  • Ensure that you have enabled rooms for indexing.

  • Verify that the value of the Default Search Lookback (Days) setting is greater than zero.

  • Check the status of indexing jobs.

Some relevant messages are missing from the results.

One cause for this may be that the messages were deleted or no longer available in the pipeline. The app hides missing messages and logs a cleanup attempt.

Bulk jobs are stuck.

  • Run the /search status bulk command in the DM with the bot for details.

  • Check the server logs for lock or paging issues.

    • This depends on the value of the Log Output Target setting in the Logging and access section of the app’s settings. If this is set to Rocket.Chat Logger, then the logs are displayed under the app’s Logs section. If the selected option is Console, then the logs are displayed on the server logs where Rocket.Chat was deployed.