--- title: About the architecture slug: '1246' canonical_url: https://docs.coveo.com/en/1246/ collection: coveo-for-salesforce source_format: adoc --- # About the architecture ![Coveo for Salesforce Pro and Enterprise architecture diagram](https://docs.coveo.com/en/assets/images/coveo-for-salesforce/coveo-for-salesforce-architecture.svg) This diagram illustrates the architecture of the Coveo for Salesforce Pro and Enterprise solutions: . The Coveo for Salesforce integration is installed in your Salesforce organization. It comes with [Coveo components](https://docs.coveo.com/en/1031/), the [Coveo JavaScript Search Framework](https://docs.coveo.com/en/375/), and the [Coveo Interface Editor](https://docs.coveo.com/en/1852/). . The integration connects to your [Coveo organization](https://docs.coveo.com/en/185/), which hosts the Coveo [index](https://docs.coveo.com/en/204/), the [Coveo Search API](https://docs.coveo.com/en/13/), and [Coveo Machine Learning (Coveo ML)](https://docs.coveo.com/en/188/). The Coveo organization also hosts the [data](https://docs.coveo.com/en/259/) coming from the Coveo components in your Salesforce organization. You can view this data in the [Coveo Administration Console](https://docs.coveo.com/en/183/). . When a user accesses a Coveo component, the Coveo for Salesforce integration issues an authentication request (that is, a secret key and a [user ID](https://docs.coveo.com/en/268/)) to the Coveo Search API. In turn, the Coveo Search API generates a [search token](https://docs.coveo.com/en/1346/) for the authenticated user. For more information, see [Search Token Authentication](https://docs.coveo.com/en/56/). . When you index Salesforce data, the following actions occur: .. The Salesforce [connector](https://docs.coveo.com/en/2734/) initiates the crawling of the Salesforce objects through an account with the **Modify Metadata Through Metadata API Functions** and **Manage Sharing** permissions. For more information, see [Create a dedicated Salesforce crawling user](https://docs.coveo.com/en/1052#prerequisite-create-a-dedicated-salesforce-crawling-user). .. The Salesforce connector sends API requests to your Salesforce organization, using SOQL queries and other APIs, and indexes the returned records inside the Coveo index. . When a query is performed in one of the Coveo components, the following actions occur: .. A query is sent from a Coveo component, inside your Salesforce organization, to the Coveo Search API in the Coveo organization. .. The Coveo Search API validates the search token, authorizes it, and sends the query through a [query pipeline](https://docs.coveo.com/en/180/) to modify and enhance the query. The modified query is then sent to the Coveo index to find the relevant results from your Salesforce records and external content. .. The Coveo index returns the results to the Coveo Search API, which takes input from Coveo ML to organize the results in order of relevance. .. The Coveo Search API returns the ordered results to the Coveo component in your Salesforce organization, which displays them to the user. . In the meantime, the Coveo component sends user behavior information such as search queries and page views through the [Usage Analytics Write API](https://docs.coveo.com/en/1430/). > **Note** > > Analytics [dashboards](https://docs.coveo.com/en/256/) can be used to view the usage analytics data in your Coveo organization. . Coveo ML continually learns from usage analytics data and deducts user behavior patterns, allowing it to return more relevant results with every interaction (see [Overview](https://docs.coveo.com/en/1727/)).