Add a Khoros Community source

A Khoros Community source is an interactive community that enables users to share digital customer experiences on the Khoros platform. Members of a Coveo organization with the required privileges can add the source to index the content of their Khoros Community instance.

Source key characteristics

Features Supported Additional information

Khoros Community version

Latest version

Indexable content

Communities, categories, boards, and discussions (also known as threads and conversations) including topics (texts and products), replies (answers, comments, and reviews), messages (also known as posts), and message attachments.

Content update operations



Takes place every hour by default.

A rescan or rebuild is required to take account of deleted or modified items.



Takes place every day by default.



Content security options

Same users and groups as in your content system


See Permission Account.

Specific users and groups




Leading practice

The number of items that a source processes per hour (crawling speed) depends on various factors, such as network bandwidth and source configuration. See About crawling speed for information on what can impact crawling speed, as well as possible solutions.

Add a Khoros Community source

Follow the instructions below to add a Khoros Community source.

  1. On the Sources (platform-ca | platform-eu | platform-au) page, click Add source.

  2. In the Add a source of content panel, click the Khoros Community source tile.

  3. Configure your source.

Leading practice

It’s best to create or edit your source in your sandbox organization first. Once you’ve confirmed that it indexes the desired content, you can copy your source configuration to your production organization, either with a snapshot or manually.

See About non-production organizations for more information and best practices regarding sandbox organizations.

"Configuration" tab

In the Add a Khoros Community Source panel, the Configuration tab is selected by default. It contains your source’s general and authentication information, as well as other parameters.

General information

Source name

Enter a name for your source.

Leading practice

A source name can’t be modified once it’s saved, therefore be sure to use a short and descriptive name, using letters, numbers, hyphens (-), and underscores (_). Avoid spaces and other special characters.

Community URL

Enter the web address of the community that you want to index. If you want to make more than one address searchable, click the plus sign (+), and then enter the addresses to index on the additional lines.



You can also specify a subset of a Khoros community to crawl by copying and pasting the address of a Khoros community category, board, or thread. The URL is in the form:[...]/<KHOROS-OBJECT-LABEL>/<OBJECT-ID>

The possible values for <KHOROS-OBJECT-LABEL> are given in the Label column of the following table:

Label Khoros Community object




Knowledge base category




Knowledge base




Idea board


Q&A board






Forum thread


Forum thread


Knowledge base article


Contest submission




Q&A Question


Blog article


Group article

Permission account

If you want to replicate your Khoros community’s permission system in your Coveo-powered search interface, enter the username of a newly created Khoros user. This account will be used by Coveo to discover your permission system, so it must be dedicated to this purpose. It can’t be the administrator account required to index a private community.

See Permission Indexing Limitations for details on this feature.

The Permission Account parameter disappears if you choose not to replicate your community’s permission system in the Content security tab.

Optical character recognition (OCR)

If you want Coveo to extract text from image files or PDF files containing images, enable the appropriate option.

The extracted text is processed as item data, meaning that it’s fully searchable and will appear in the item Quick view. See Enable optical character recognition for details on this feature.

"Authentication" section

When the Khoros Community is private, you must enter the credentials of a native Khoros Community account, such as an administrator account, that has access to the content you want to index. See Source credentials leading practices. This account must also have permission to make REST API read calls for all boards and categories of your community.

When you have the administrator rights, this setting is available in your Khoros Community Admin section, under Users tab > Permissions navigation bar section > Defaults tab > Make REST API calls with read access.

  • Boards and categories for which the account doesn’t have this permission are skipped during the indexing process and are therefore not searchable in a Coveo-powered search page. Moreover, if your source Community URL is the address of such a board or category, Coveo returns a KHOROS_COMMUNITY_AUTHORIZATION_ERROR error.

  • Some Khoros communities contain public and private items. Private items are only accessible to users allowed to view this content. If you have such a community, you must enter the credentials of an account that is allowed to access all private content. If you don’t do so, private items aren’t indexed (see Khoros Community Permissions and Limiting Source Content Permissions To Specific Users).

  • When your Khoros Community is secured using a basic authentication, you must modify the source JSON configuration to add a hidden parameter.

  • SSO credentials aren’t supported. You must use a native Confluence account.

"Content to include" section

Optionally, select additional content to index: message attachments, user data, and/or message tags.


Indexing attachments, users, and/or message tags, especially with large Khoros communities, can significantly increase the indexing time, as it requires an additional API call to Khoros per message/user.

  • You can include users only when indexing an entire community. If you only index a community subset such as a category or a board, users aren’t included.

  • The Khoros Community connector populates three fields for folding message item types: @foldingcollection, @foldingparent, and @foldingchild. Other item types such as attachments don’t have the folding field set and therefore can’t be folded. Instead, these items appear as a single result in the search interface.

"Content security" tab

Select who will be able to access the source items through a Coveo-powered search interface. For details on this parameter, see Content security.

Before you select Same users and groups as in your current permission system, see Permission Indexing Limitations for details. Also ensure to enter a permission account in the Configuration tab.

"Access" tab

In the Access tab, set whether each group (and API key, if applicable) in your Coveo organization can view or edit the current source.

For example, when creating a new source, you could decide that members of Group A can edit its configuration while Group B can only view it.

See Custom access level for more information.


  1. Finish adding or editing your source:

    • When you want to save your source configuration changes without starting a build/rebuild, such as when you know you want to do other changes soon, click Add source/Save.

    • When you’re done editing the source and want to make changes effective, click Add and build source/Save and rebuild source.


      On the Sources (platform-ca | platform-eu | platform-au) page, you must click Launch build or Start required rebuild in the source Status column to add the source content or to make your changes effective, respectively.

      Back on the Sources (platform-ca | platform-eu | platform-au) page, you can follow the progress of your source addition or modification.

      Once the source is built or rebuilt, you can review its content in the Content Browser.

  2. Once your source is done building or rebuilding, review the metadata Coveo is retrieving from your content.

    1. On the Sources (platform-ca | platform-eu | platform-au) page, click your source, and then click More > View and map metadata in the Action bar.

    2. If you want to use a currently not indexed metadata in a facet or result template, map it to a field.

      1. Click the metadata and then, at the top right, click Add to Index.

      2. In the Apply a mapping on all item types of a source panel, select the field you want to map the metadata to, or add a new field if none of the existing fields are appropriate.

        • For details on configuring a new field, see Add or edit a field.

        • For advanced mapping configurations, like applying a mapping to a specific item type, see Manage mappings.

      3. Click Apply mapping.

    3. Depending on the source type you use, you may be able to extract additional metadata from your content. You can then map that metadata to a field, just like you did for the default metadata.

      More on custom metadata extraction and indexing

      Some source types let you define rules to extract metadata beyond the default metadata Coveo discovers during the initial source build.

      For example:

      Source type Custom metadata extraction methods

      Push API

      Define metadata key-value pairs in the addOrUpdate section of the PUT request payload used to upload push operations to an Amazon S3 file container.

      In the JSON configuration (REST API | GraphQL API) of the source, define metadata names (REST API | GraphQL API) and specify where to locate the metadata values in the JSON API response Coveo receives.


      Add <CustomField> elements in the XML configuration. Each element defines a metadata name and the database field to use to populate the metadata with.



      Some source types automatically map metadata to default or user created fields, making the mapping process unnecessary. Some source types automatically create mappings and fields for you when you configure metadata extraction.

      See your source type documentation for more details.

    4. When you’re done reviewing and mapping metadata, return to the Sources (platform-ca | platform-eu | platform-au) page.

    5. To reindex your source with your new mappings, click Launch rebuild in the source Status column.

    6. Once the source is rebuilt, you can review its content in the Content Browser.

Refine the content to index

You may want to avoid indexing certain communities, or to index only a few of them. To do so:

  1. If not already done, create and save your source with a broad community URL.

  2. In your source JSON configuration, enter an address filter to refine the targeted content.


    Your community URL must match one of your inclusion addressPatterns and not match any of your exclusion addressPatterns.

  3. Build or rebuild your source.

  • With the following filter, Coveo doesn’t index the board whose ID is PrivateBoard.

      "AddressPatterns": [
          "Expression": ".*board:PrivateBoard\/.*",
          "PatternType": "RegEx",
          "Allowed": false
  • With the following filter, Coveo doesn’t index categories whose ID contains Private, private, Moderator, moderator, Archive, or archive.

      "AddressPatterns": [
          "Expression": ".*category:([Pp]rivate|[Mm]oderator|[Aa]rchive).*",
          "PatternType": "RegEx",
          "Allowed": false

Permission indexing limitations

When you replicate your community’s permission system in your Coveo-powered search interface, the interface end users only see the Khoros content they’re allowed to see in your Khoros community. Their Khoros-related search results vary based on the roles they’ve been assigned in Khoros Community. However, this option has some limitations.

User privacy settings

Khoros Community user data includes private information such as user full names and email addresses. Privacy settings (My settings > Preferences > Privacy Settings) lets users choose who can see their private information on their profile. Options are: "All", "Friends only", and "No one", which is the default option. When "No one" is selected, the user’s private information is visible to administrators only.

If you decide to index Khoros Community user data, Coveo will crawl user information, including private data. However, since Coveo doesn’t support user privacy settings, it handles user private information as regular data. As a result, depending on your mapping rules, user private information could be available to anyone who can see your Khoros Community content in their search results.

If you want user private information to appear in your Coveo-powered search interface, create mapping rules for fields containing sensitive information such as email and fullname.

If don’t want user private information to appear in your Coveo-powered search interface, ignore these fields. As a result, Coveo will crawl the private information in the sensitive fields, but won’t index it due to the lack of mapping rule.

Restriction roles on public boards

Public Khoros boards are accessible to all users, including unauthenticated users. Khoros administrators can forbid users that have a certain role to access a certain public board. However, this doesn’t affect unauthenticated users. In other words, a user that has a role preventing them to see a certain public board could log out of Khoros and access this board. Since public boards are ultimately public, Coveo doesn’t replicate this behavior. When a board is public, any Coveo user that can access your search interface can also access the board’s content through it.

User-specific permissions

User-specific permissions (Users > Edit Users > Permissions) aren’t supported.

Khoros recommends setting permissions for roles, and then assigning roles to users, rather than using user permissions on a permanent basis.

Required privileges

You can assign privileges to allow access to specific tools in the Coveo Administration Console. The following table indicates the privileges required to view or edit elements of the Sources (platform-ca | platform-eu | platform-au) page and associated panels. See Manage privileges and Privilege reference for more information.


The Edit all privilege isn’t required to create sources. When granting privileges for the Sources domain, you can grant a group or API key the View all or Custom access level, instead of Edit all, and then select the Can Create checkbox to allow users to create sources. See Can Create ability dependence for more information.

Actions Service Domain Required access level

View sources, view source update schedules, and subscribe to source notifications







Edit sources, edit source update schedules, and view the View and map metadata subpage






Source metadata




What’s next?