Understanding the Coveo for Salesforce Pro and Enterprise Architecture

Coveo for Salesforce Pro and Enterprise schema

Coveo for Salesforce Pro and Enterprise can be understood as shown in this diagram:

  • The Coveo for Salesforce application is installed in your Salesforce organization. It comes with the Coveo components and the Coveo JavaScript Search Framework.
  • The application is connected to your Coveo organization in Coveo Cloud, which hosts the Coveo index, the Coveo Search API, and Coveo™ Machine Learning (Coveo ML).
  • Coveo Cloud also hosts the analytics data coming from the Coveo Components in your Salesforce organization. You can view the analytics data by connecting to your organization in Coveo Cloud.
  • When indexing Salesforce data, the following things happen:
    • The Salesforce connector initiates the crawling of the Salesforce objects through a user with the Modify All Data permission (see Going to Production with Coveo for Salesforce).

      You can enable the API Enabled permission without selecting the Modify All Data permission.

      Be aware that, when crawling the content of a Salesforce source by a user without the Modify All Data access (see About the ‘Modify All Data’ permission), the security on your documents will not be applied on the search results.

      If you do not enable Modify All Data, the crawler will also only index content to which the user has access, so set up read access to objects accordingly.

    • The crawling user sends a request to the Salesforce index to know how many items need to be indexed.
    • The crawling user sends SOQL queries to the Salesforce index, and indexes the returned objects inside the Coveo index.
    • Once the number of indexed items reaches the expected amount of items, the crawling stops and is considered completed.

      By default, the Salesforce connector crawls your Salesforce index every 15 minutes. You can easily change the frequency at which the connector crawls your Salesforce content in your Coveo Cloud organization (see Schedule Source Updates).

  • When a query is performed in one of the Coveo components, the following things happen:
    • The user enters a query in a Coveo Component inside your Salesforce organization.
    • The Coveo component sends the query to the Coveo Search API in Coveo Cloud.
    • The Search API takes input from Coveo ML to modify the query according to the behavior of previous users, and sends the query to the Coveo index.
    • The Coveo index returns the results to the Search API, which takes input from Coveo ML to order them in the most relevant order.
    • The Search API sends the ordered results to the Coveo components in your Salesforce organization, which displays them to the user.
    • Meanwhile, the Coveo Component sends user behavior information through the Usage Analytics API.
    • The Usage Analytics API stores the behavior information in the analytics data.
    • Coveo ML continually takes input from the Coveo Cloud Usage Analytics data to learn your users behavior, allowing it to return more relevant results with every interaction (see Coveo Cloud Usage Analytics).