{"id":21319510,"url":"https://github.com/zoom/webhook-to-postgres","last_synced_at":"2025-07-12T04:31:58.979Z","repository":{"id":65636116,"uuid":"536780037","full_name":"zoom/webhook-to-postgres","owner":"zoom","description":null,"archived":false,"fork":false,"pushed_at":"2023-02-01T19:57:00.000Z","size":15,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2023-02-26T10:17:09.858Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zoom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-14T22:31:10.000Z","updated_at":"2023-02-04T15:13:42.000Z","dependencies_parsed_at":"2023-02-17T10:30:28.123Z","dependency_job_id":null,"html_url":"https://github.com/zoom/webhook-to-postgres","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fwebhook-to-postgres","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fwebhook-to-postgres/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fwebhook-to-postgres/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fwebhook-to-postgres/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoom","download_url":"https://codeload.github.com/zoom/webhook-to-postgres/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225795416,"owners_count":17525316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-21T19:42:29.416Z","updated_at":"2024-11-21T19:42:29.885Z","avatar_url":"https://github.com/zoom.png","language":"JavaScript","readme":"# Zoom Webhook to Postgress Sample App\n\nThe use of this sample app is subject to our [Terms of Use](https://zoom.us/docs/en-us/zoom_api_license_and_tou.html)\n\nThis is a sample app using a Webhook Only App to send events to a PostgreSQL Database.\n\n## Prerequisites\n\n1. Node JS\n2. Ngrok\n3. PostgreSQL \n4. Zoom Account\n5. Webhook only app credentials\n      - Account ID\n      - Client ID\n      - Client Secret\n\n## Getting started\n\nOpen your terminal:\n\n```bash\n# Clone down this repository\ngit clone https://github.com/zoom/webhook-to-postgres\n\n# Navigate into the cloned project directory\ncd mywebhook-app \n\n# Run NPM to install the app dependencies\nnpm install\n\n# initialize your ngrok session\nngrok http 3000\n```\n\n### Create your Webhook Only App\n\nIn your web browser, navigate to [Zoom Developer Portal](https://marketplace.zoom.us/) and register/log into your developer account.\n\nClick the \"Build App\" button at the top and choose \"Webhook Only\" application, give it a name and click \"Create\"\n\n\u003cimg width=\"700\" alt=\"Screen Shot 2022-08-23 at 5 38 26 PM\" src=\"https://user-images.githubusercontent.com/68508455/186273651-4284b8e6-cc65-43d4-b988-4e6642bf5b49.png\"\u003e\n\nFollow allong with Using Webhook documentation as we set this up:\n\n[Using Webhooks](https://marketplace.zoom.us/docs/api-reference/webhook-reference)\n\n### Config: Information\n\nThe following information is required to activate your application:\n\n    - Basic Information\n        1. App name\n        2. Short description\n        3. Company name\n    - Developer Contact Information \n        1. Name \n        2. Email address\n\n\n### Config: App Features\n1. Name your particular event (Subscription name)\n2. Add the event notification endpoint URL, followed by /webhook (In your terminal where you launched ngrok find the forwarding https value and copy/paste that here)\n3. Click \"+ Add Events\" and from the Meeting tab, select \"Meeting has been created\" and \"Meeting has been deleted\" events and click Done\n4. Lastly, navigate to the Activation tab and make sure your app is activaded\n\n### Config .env\n\nOpen the .env file in your text editor and enter the following information from the Feature section you just configured.\n\n```bash\n# Zoom Secret token from your Webhook only app\nZOOM_WEBHOOK_SECRET_TOKEN=\n\n# PostgreSQL credentials and information (you will come back and fill up this information after we set up our database)\nPORT=\nPG_USER=\nPG_HOST=\nPG_DATABASE=\nPG_PASSWORD=\nPG_PORT=\n\n```\n\n### Config: Creating Database\n\nIf you already  have postgress installed in your local environment you can skip these steps, if not follow along to install pg and create a table in your database. \n\n- If you are using Windows, download a [Windows installer of PostgreSQL](https://www.postgresql.org/download/windows/) or you can use this [PostgreSQL Portable Copy](https://github.com/garethflowers/postgresql-portable)\n- If you are using a Mac and you have Homebrew installed on your computer, open up the terminal and install postgresql with brew:\n\n```bash\nbrew install postgresql\n```\n\nAfter the installation is complete, we’ll want to get postgresql up and running, which we can do with services start\n\n```bash \nbrew services start postgresql\n```\n\nWith PostgreSQL now installed, we will connect to the default postgres database running \n\n```bash\npsql postgres\n```\n\nWe are now inside psql in the postgres database, you will see the prompt ends with an # to denote that we are logged in as the superuser, or root (postgres=#)\n\nCommands within psql start with a backlash \\. To test this, we can check what database, user and por we have connected to using the \\conninfo command\n\n```bash\npostgres=# \\conninfo\n```\n\n#### Creating a role in Postgres\n\nWe are going to create a role called \"me\" and give it a password of \"password\":\n\n```bash\npostgres=# CREATE ROLE me WITH LOGIN PASSWORD 'password';\n```\n\nAnd we want \"me\" to be able to create a database:\n\n```bash\npostgres=# ALTER ROLE me CREATEDB;\n```\n\nNow, we will create a database for the \"me\" user. Exit from the default session with \\q for quit and now we will connect postgres with \"me\"\n\n```bash\npsql -d postgres -U me\n```\n\nWe can create a database with the SQL command as follows:\n\n```bash\nCREATE DATABASE zoomwebhooks;\n```\n\nConnect to the new database \n\n```bash\n\\c zoomwebhooks\n```\nYou are now connected to database \"zoomwebhooks\" as a user \"me\".\n\n#### Creating a table in Postgres\n\nFinally, in the psql command prompt, we will create a table called events with four fields, two VARCHAR types, one BIGINT type and an auto-incrementing PRIMARY KEY ID:\n\n```bash\nCREATE TABLE events (\n  ID SERIAL PRIMARY KEY,\n  name VARCHAR(30),\n  accountid VARCHAR(30),\n  meetingid BIGINT\n);\n```\n\nWe have finished with all our PostgreSQL tasks and make sure to add the credentials in your .env file. \nNow it is time to get our app up and running!\n\n\n## Start the App\n\n### Using your app\n\nRun the npm script to start your application.\n\n```bash\nnpm run start\n```\n\nWhile your app is running on port 3000, go to the WebPortal [here](https://zoom.us) and create a meeting or delete an existing meeting in your account. Once you do this, you will see the event printed in your console and as well a new instance created in your Postgress database.\n\nYou can add as many events as you want and they all will be stored in your database.\n\nHappy coding! \n\n\n## Need help?\nIf you're looking for help, try [Developer Support](https://devsupport.zoom.us) or our [Developer Forum](https://devforum.zoom.us). Priority support is also available with [Premier Developer Support](https://zoom.us/docs/en-us/developer-support-plans.html) plans.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoom%2Fwebhook-to-postgres","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoom%2Fwebhook-to-postgres","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoom%2Fwebhook-to-postgres/lists"}