703.868.6393 contact@focalcxm.com

Businesses rely on effective and streamlined solutions to improve cooperation and efficiency in the constantly changing world of digital communication. Many businesses have chosen Coveo as their preferred enterprise search platform because of its strength. However, the lack of Google Chat as an indexing source has been one of the issues Coveo users have had to deal with. At Focalcxm, we have worked with customers to solve this problem.   In this blog, we will walk you through the process of seamlessly integrating Google Chat with Coveo using AWS Lambda, API Gateway, and Coveo Push Source. This step-by-step tutorial will empower you to unlock the full potential of your communication data.

Architecture Diagram


The process begins when the user requests the indexing of their Google Chat data into Coveo. Subsequently, the system generates an authentication link, which is then sent to the user via email. Upon clicking the authentication link, the user initiates the authentication process and verifies their identity, thereby validating the request. After successful authentication, the trigger activates a Lambda function specifically designed to handle the indexing of Google Chat data. The Lambda function starts executing, accessing the authenticated user’s Google Chat data. The data is then extracted, transformed, and prepared for indexing. The prepared data is indexed into Coveo using a Push source, making it searchable and accessible to the user. Following successful authentication and indexing, a thank-you message appears on the user interface, confirming to the user that their Google Chat data has been successfully indexed into Coveo.

Step 1: Setting up Google Chat API in GCP

Begin by creating a project in Google Cloud Platform (GCP) and enable the Google Chat API service. Setting up OAuth 2.0 API keys and granting necessary scopes is crucial.

1. Create a new project in GCP, and search for Google Chat API services




2. Enable the service

3.Configure the OAuth consent screen and add necessary scopes

4. Create OAuth client ID, select application type as a Web application, enter a name, type “https://mail.google.com” as Authorized JavaScript origins and add generated get method API gateway in Authorized redirect URIs.

Step 2: Create a Push source in Coveo


Create a Push source in Coveo, obtain the API key and push API URL.

Step 3: Creating the AWS Lambda Function and Pushing Data into Coveo Using Push Source


In your AWS Management Console, create a Lambda function with the runtime set to Python 3.11. Implement a GET method in API Gateway to receive an authentication code. Configure the integration request to map the query parameters correctly. The Lambda function should handle the authentication process, obtaining an access token. Now, you can use this access token to create a Bearer header with your API key. Additionally, design a schema for pushing data to Coveo Push Source, Store the push API URL as the endpoint, and add the document ID. With these components in place, you can make a PUT request to the endpoint, passing the schema in the request body and the Bearer header for authentication.

After a few minutes, the Google chat data will be indexed into the push source and we can check that in the content browser.


By following these steps, you can seamlessly integrate Google Chat with Coveo, enhancing your search capabilities significantly. This integration not only bridges the gap between these platforms but also unlocks a world of possibilities for businesses. The ability to index and search Google Chat conversations alongside other content sources ensures a holistic and efficient search experience.

Remember, this integration relies on robust communication between Google Cloud Platform, AWS services like Lambda and API Gateway, and Coveo’s Push source. Detailed configuration and adherence to API specifications are essential for a smooth implementation. With this integration in place, businesses can streamline their search processes, improve collaboration, and ultimately boost productivity.