*Version: 1.0 | Last Updated: 2025-02-25* ## Overview - **Integration Name:** Google meet - **Purpose:** Integrating Google meet to initiate a meeting using webhook from the MoovingON.AI platform - **Audience:** Support team, TAM - **Prerequisites:** - A valid Google meet account - MoovingON AI account access with integration permissions --- ## Table of Contents - [[#Setup Instructions]] - [[#Configuration]] - [[#Testing the Integration]] - [[#Related Links]] --- ## Setup Instructions 1. Step 1: In MoovingON AI, navigate to Settings -> Integrations. **![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcRlVOIXdQo-3K1ZK6_yb3RassT5Hwm4HV4HbrMYQXOEGy84c_b-GkCM8dniycVDIIFCnO2aZjV4JlFtbdfGglmJyazL4q0aVk0BgHiuV4HBeSf9DGLdSRe2LJ4YQR5PKlMwKNbag?key=KBEKAuRqwRONFDBsNTxVIo1q)** 2. Step 2: On the right side of the page, select "Add Webhook." ![add-webhook.png](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcIK0v0mFX3JZay_sfhiCIID1caSrVTm13IU9eFcBS6OLZaubWz9b7ryjIiTF-vLXoK_ZUbj9u3M4vAMxIdBRAdbzOGo8fY7TpAJaxdCAAnFp41yA6Ohp-37MjWjSnxNXxkl0-wSA?key=pWeWSRwPH8MCV1bVqRvIPmbR) 3. Step 3: Enter an integration name for the webhook and click "Submit." ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXegXOiH_ed_yvnovas7N8A_4Gy0f7cdbR1R0eILGQ8iL5ZiuSCpGff9k1YuDRo5Xe2fdgQ4IWSCY-lIimkAyG44-YodYT8QzU6KZRk8mXP3_JEfaH3dKNLP-ThTE2Lmbhxcyis-DA?key=KBEKAuRqwRONFDBsNTxVIo1q) 4. Step 4: A webhook basic authentication (Username and Token) will be created after submission. **![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdftB0KFsctdudQ70rgU0rCtuwFirMXIieZRJF5g8CSVfPwbokdBuDG0BcAOYWS3NApNu0xYPGRtP4SASRVuT9jjNn92sFW9iNDMRJsww8pEpzgWOaUoPJAv9uSGEGDCh_p0JV_?key=KBEKAuRqwRONFDBsNTxVIo1q)** - Save the generated Username and Token for use in Google meet --- ## Configuration - Navigate to [https://console.cloud.google.com/](https://console.cloud.google.com/) - Create a new project. - Navigate to **APIs & Services**. - Enable the API - Search for Google Calendar API and enable it. - Click Create **Credentials** → **OAuth Client ID**. - Select Web Application as the application type. - Configure the Redirect URLs (you can use any active URL, for example, [https://www.example.com/oauth2callback](https://www.example.com/oauth2callback)) - Create → Download the JSON file, and save the client ID & Client Secret - Navigate to the **OAuth** consent screen and configure the required scopes. - Navigate to **APIs & Services** → **OAuth overview** → **Data access** → **Add Scopes**. - Manually Add the Required Scope → [https://www.googleapis.com/auth/calendar.events](https://www.googleapis.com/auth/calendar.events) - Add users: Click on **APIs & Services** → **OAuth Consent Screen** → **Audience** → **Add Users**. - Enter your email. - Click **Save & Continue**. - Use this URL to generate the Auth code : [https://accounts.google.com/o/oauth2/auth?response_type=code](https://accounts.google.com/o/oauth2/auth?response_type=code) &client_id=YOUR_CLIENT_ID &redirect_uri=YOUR_REDIRECT_URI &scope=[https://www.googleapis.com/auth/calendar.events](https://www.googleapis.com/auth/calendar.events) &access_type=offline &prompt=consent replace the placeholders with your credentials. - Copy the Auth code from the URL to generate a REFRESH_TOKEN. - Run the following **cURL command** (replace placeholders with actual values): curl -X POST "[https://oauth2.googleapis.com/token](https://oauth2.googleapis.com/token)" -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id=YOUR_CLIENT_ID" \ -d "client_secret=YOUR_CLIENT_SECRET" \ -d "code=YOUR_AUTHORIZATION_CODE" \ -d "grant_type=authorization_code" \ -d "redirect_uri=YOUR_REDIRECT_URI" - Copy the Refresh_token from the response. Create a Lambda function: ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfLGePTy9kyYDtmDtLQEqoeH3JmmyhYc7BzQzPae42yFm8Wt29wmm0GiC-BHkBNFv_lwzVlVszlSL0N3cGx_0mTilA01ZNGVwNApw5U4ZChM4K8VvnxUAOhSEDp_TAEC8JpNMwI-w?key=KBEKAuRqwRONFDBsNTxVIo1q) - Select the function name - Choose Python runtime. - Create function ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcvlVegZmwCFr9mahX3que6gmFvy8JD5EMyFlDxlR9u3R2bE5vYtO95XNYZQ-NlcuqCVApQ4JEf2YAU0byP6r-pxfJHF-CuSZud-697-omXfldfkfDchWK5EAHWuvQuJ6WWhNVCMg?key=KBEKAuRqwRONFDBsNTxVIo1q) On the right side, you can upload a ZIP file from your local machine. ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdJe8iTZXK1aAnXFQfG0RZpTZEaG9XyrQBLRSvdA4999zpoUTWlHVGqgU9Pw4UsnNeuOHzENM1mQez8mf4apwTihXL4-wpQWHPYDqx3eQhnuVZjMDfqgTb7tnyb7at4QdkzG2sWJw?key=KBEKAuRqwRONFDBsNTxVIo1q) After uploading the lambda script, you need to configure the Environment variables: - Navigate to the configuration - Environment variables - Edit, and add your variables & values ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXd1czR4k0IkNm46Y_G2IbzhnLVCR--cUNVdunZakQFvqFfW5f1Q0oYDIxSzo_U5sP8VUIFBgco9njWdq7DNwhbsYu_FTqHGNhu4opezHjw38KyBlCAxu2E1PW59ByTPPnQC49KGZQ?key=KBEKAuRqwRONFDBsNTxVIo1q) Now we need to create an API to invoke the lambda from our system. - Navigate to Add Trigger - Choose API Gateway - If you already have an API gateway, you can use it; if not follow the next step - Create a new API > IAM - Navigate to Routes > Create > Choose the method (POST, GET, PUT, DELETE) > Choose the path > Create - Navigate to Stages > Create > Enter your Stage name and Enable automatic deployment > Create > in the top right, Deploy. - Go again to Routes, click Deploy, and choose the stages you created > Deploy. ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXf5E6fTwHGpi_O-tPzt1M6Pp6Y16xSHSZ44RHDROI4Vr6P2PPM5sCgdhgqcEnc7lmQ83yQBQo-uVfgDD1yQ1XijwCIKgzJyY3IIXXFO_2E3ruRo4_8V5nEozcj7l1NWjS6kx1BoSg?key=KBEKAuRqwRONFDBsNTxVIo1q) **![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeZSm4MTXIwL26ldTaCqINHFSw3iCxJOziH-7al1JMLMXXMptRSa1XN0gBUy2b7OsFOo0cNNJdmT0M0kMgA0dUEI1xRnGVMGZZEH_zoydylJahatGeGIxghuzAjOIe7ujQr9H4GWQ?key=KBEKAuRqwRONFDBsNTxVIo1q)** **![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcIqSiTaYVQjOz50aG4mYpH3yZt_Jvjlw9atkO5G1QOdgO7i57JBilOUarum85Ox2oMwffoVSKC5CtZyvhHCK0ET6JvmNa9CnZDAmd-fr8Pu5VOUANQp9e-czEc7jUOviG_E7vW_w?key=KBEKAuRqwRONFDBsNTxVIo1q)** **![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcZ0HQRkBs7quMNrFT4_PK3YAElvWB7gHbKvYlT3B0_FqwxmVuspd2kCTkzoRweTi4jeelfA4p1S1oaMkP56ogYqsm6FDaq64MCRfmS5m7R1WBAWcu7tBkbMWJvr2w7lc0fGAPtGQ?key=KBEKAuRqwRONFDBsNTxVIo1q)** **![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcc5H-VK3sZe2k35r1JohfSEs5ZwXzUeulhhDpG0jhuFZyQxaZ17F6GkXanH-b37X6ovbR77l9k1qzBWsk6h_-pUUFAgPKmlzVXSr-_-uOyJvHNEWeavGAUyct-qlqnOrLR8St6cg?key=KBEKAuRqwRONFDBsNTxVIo1q)** After that, you can use the **API gateway** to invoke the Lambda, On our side, you need to use this API while you creating the Webhook. (URL = API gateway) When invoking the lambda, it will create a new token and create a new meeting with its link. After that, it will create an alert in our system that includes a Google Meet link --- ## Testing the Integration - **Test Cases:** ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeEyAZis3XTV0b3xekAAAk2UwT6Ybb52TICAaeF2ML9U4q_eUKgujqZiwGFx1Gwad-h-zkv6Lv6C5H2fJp-apCjnn9FpufSlEKnweyxFVyXmH98zJrj9S0r7fDEDi2CsSrwvlNnNw?key=YhUG4hRSoBC1ByVWUMTK6B7-) Navigate to Audit and open the Webhook Request, here you can see the Output on API Request with the Meeting Link. ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdf_h49BEvxSiAqsG018OuvW9plXaGz9jdcuU8E-tII_tEppMZ2igeg5w0k0WkXiSEdTh7OxM2A3tVQnZDSwvOdZXuEYdq7jLit2nBMwAI1qWSLmjPe5i0nkvmGSW6gQkcCUblrfQ?key=YhUG4hRSoBC1ByVWUMTK6B7-) --- ## Related Links - **External Resources:** [Google Meet Documentation](https://developers.google.com/meet/api/guides/overview)