*Version: 1.0 | Last Updated: 2025-02-25* ## Overview - **Integration Name:** Zoom - **Purpose:** Integrating Google meet to initiate a meeting using webhook from the MoovingON AI platform - **Audience:** Support team, TAM - **Prerequisites:** - A valid Zoom 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 Zoom --- ## Configuration 1. **Step 1**: Sign in to [zoom App Marketplace](https://marketplace.zoom.us/), to create an App. ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdK00VvPkMItvDvUJEtjR4qPldFcoG6ITCYs-b_sYRq9CqKTKHLfbKAvv2mZG_mLxHU_YmclR9jcnrMpSII7nI4cI9x2L8oaoaiYNLO334e-31Gc0Xq3bSNPntytHXNLhgWv_Kemw?key=SsJ_3cukOjmT5cEffqj1PpdV)  2. **Step 2**: In the top right side, navigate to Develop and choose Build App.  ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcwCoPsn8FCTyf7F_rfMifEhlYFnNM6cR8IUFhV-646OnZ70xC3tj0NYKH576MSWcmf8b9aTF1EzrVzEi-TUYXWjeHk18G-t43FjgDR5SfzIKCUMuTNmIdolaWU22SXDAgVh5P6Kw?key=SsJ_3cukOjmT5cEffqj1PpdV) 3. **Step 3**:  Choose Server-to-Server OAuth App and click on Create. ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcmaXdVRp77p1jME6AbJHfEEH_TvGn9ezzb3DAnEV8QVnAHiiwGmn_HRfrDpTH7_5HQVwe_bTF7ji8Z_mAMLeAwOOvxVPf5sJBZdC42hmJbTmc5QkWJgCT-r6otT6i6Bgq2-Lbc?key=SsJ_3cukOjmT5cEffqj1PpdV) 4. **Step 4**:  App Credentials. ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdX_ziAfnCX6u18FfzsQi57PQDIatec7h1oR1cPIiqB4Qnw-mrRacYpQobz-_pySKaqCbm9dklevqF12EHzw4vQcR5gF3EnqOePOqWOCw3GqVn-QtTOivbPknqtCptze3yeh_4p?key=SsJ_3cukOjmT5cEffqj1PpdV) 5. **Step 5**: Add Scopes. Required Scopes: 1. meeting:write:meeting:admin. 2. meeting:write:poll:admin 3. meeting:write:registrant:admin ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfrRHE_NpVVVTKizuDeDc4krkLX4M49gjN61lkJuRyLDZv7fROPt1l-oJgym6iH3Gb5oxBzzdkJ8B5cZh4ufYIX-_JCQDsIoFSDNMny-rJJ9rQzMFxyZoJgr5tzkoiT-eAF_TjM?key=SsJ_3cukOjmT5cEffqj1PpdV)Navigate to the + Add Scopes button and select the relevant scopes accordingly. 6. **Step 6**: To generate a meeting link, you should use: 1. ZOOM_ACCOUNT_ID 2. ZOOM_CLIENT_ID 3. ZOOM_CLIENT_SECRET 4. Use this API to generate a token: https://zoom.us/oauth/token 5. Use this API to create a meeting: [https://api.zoom.us/v2/users/me/meetings](https://api.zoom.us/v2/users/me/meetings)  You can find those values in App Credentials. You should run a Python script using a Lambda Function to generate a new token, create a Zoom meeting, and return a meeting link. 7. **Step 7**: Scopes for Zoom meeting to create a meeting **![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc49P4HFLE8e8yPSVUyJQFXWiqvThTXmOTBrouZODte36XtixjrnM4LiVZtD1-eKuPK-YXXrPbLfFOKbKwicvM0cJ8650XfAuMOMws_e6xunX0R4CT0Q1Hxu3Xkad7BkMosAXKh6g?key=KBEKAuRqwRONFDBsNTxVIo1q)** 8. **Step 8**: Create a Lambda function: **![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfLGePTy9kyYDtmDtLQEqoeH3JmmyhYc7BzQzPae42yFm8Wt29wmm0GiC-BHkBNFv_lwzVlVszlSL0N3cGx_0mTilA01ZNGVwNApw5U4ZChM4K8VvnxUAOhSEDp_TAEC8JpNMwI-w?key=KBEKAuRqwRONFDBsNTxVIo1q)** - Select func name - Choose Python runtime. - Create function **![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcvlVegZmwCFr9mahX3que6gmFvy8JD5EMyFlDxlR9u3R2bE5vYtO95XNYZQ-NlcuqCVApQ4JEf2YAU0byP6r-pxfJHF-CuSZud-697-omXfldfkfDchWK5EAHWuvQuJ6WWhNVCMg?key=KBEKAuRqwRONFDBsNTxVIo1q)** You can upload a ZIP file from your local machine on the right side. **![](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_4nXfAiLmZz7PShRFKopJG3_sE0pJqGiwZVLZVvi5L8omb48240rEa-aR9m4cCd_iRrf8__pp1uTAmUyVIXmbD1fook6322nptvEPNJqyn2oEesEUUWj8-etMSBKtTr3sid2gzLsltTA?key=KBEKAuRqwRONFDBsNTxVIo1q)** 9. **Step 9**: 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 are 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 Zoom link --- ## Testing the Integration - **Test Cases:** ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfBnPsNt49L2dz1YKgl3LVEEZ1hp3L5i6NjnnXwEvGltKharRHzui66SC7Sqk_H8RoKGQwvaur679rgqNm1vMpAJRHXSaEEwqUjiphCBm78gLx3t_4oyaGX4CSF9sA23xsB2VjEDg?key=SsJ_3cukOjmT5cEffqj1PpdV) Navigate to Audit and open the Webhook Request. Here, you can see the Output on the API Request with the Meeting Link. ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcz6qao6tZ2fz8dOglqgx8dLQa6j9M4qShHw8CY_3itvlh1BbE6Aj87_ZjcTCKfeXkeu1FtLlspnGL0Ufb1iD3LFqSQDSymSZpbhQ7ieta75KGcLksmiW9ztm8UVkx0Qx9WRze7aw?key=SsJ_3cukOjmT5cEffqj1PpdV) Here you can use the meeting link to open a meeting. --- ## Related Links - **External Resources**: [Zoom Documentation](https://developers.zoom.us/docs/)