A Node.js + React integration for Monday.com that listens to board item column changes, then stores or updates item data in MongoDB. Built using the Monday.com GraphQL API and SDK, Express.js, and Mongoose.
- Column Change Listener — Detects when item columns are updated on a Monday.com board via webhooks
-
- MongoDB Sync — Stores new items or updates existing ones in MongoDB using custom item mapping
-
- GraphQL API — Communicates with Monday.com via GraphQL queries and mutations
-
- Custom Recipes — Uses Monday.com integration recipes (workflow blocks) with custom actions: "store in MongoDB" and "update in MongoDB"
-
- ngrok Support — Exposes local server for testing Monday.com webhooks during development
-
-
MIT Licensed — Open source
-
| Layer | Technology |
-
|---|---|
-
| Server | Node.js, Express.js |
-
| Frontend | React.js |
-
| Database | MongoDB Atlas |
-
| ODM | Mongoose |
-
| API | Monday.com GraphQL API |
-
| SDK | Monday SDK (JS) |
-
| Dev Tool | ngrok (local tunneling) |
-
- JavaScript (primary)
-
-
MIT License
-
- Node.js installed
-
- MongoDB Atlas account
- Monday.com account with an app created
-
ngrok installed
-
-
Clone the repository
-
git clone https://github.com/moathmushtaha/custom-integration.git cd custom-integration-
Install dependencies
-
npm install
-
Configure environment variables — copy
.envand fill in your values: -
MONGODB_URI=your_mongodb_connection_string MONDAY_SIGNING_SECRET=your_monday_app_signing_secret
-
Get your MongoDB URI from MongoDB Atlas
-
-
Get your Monday signing secret from your app's Basic Information page (App Credentials section)
-
-
Start the server
-
npm run start
-
Create a public URL using ngrok:
-
ngrok http 8302
-
Configure Monday.com — go to your app's Features, add an integration, and paste the ngrok URL
-
-
Create custom recipes (workflow blocks) with actions "store in MongoDB" or "update in MongoDB"
-
-
Add the recipe to your board and test it!
- A Monday.com board item column is updated by a user
- Monday.com triggers a webhook to the ngrok URL
- The Express.js server receives the webhook, validates the signing secret
- Item data is fetched from Monday.com via GraphQL
-
The item is stored or updated in MongoDB using Mongoose
- Monday.com API & SDK — webhooks, GraphQL queries/mutations, custom integrations
- Node.js / Express.js — REST webhook server
- MongoDB / Mongoose — NoSQL document storage and ODM
- GraphQL — data fetching from Monday.com
- React.js — frontend components for Monday.com apps
- Webhook-driven architecture — event-driven integration patterns
- ngrok / local tunneling — development workflow for webhook testing
-
Third-party API integration — connecting external services via authenticated APIs
-
Moath A. Mushtaha
-
GitHub: @moathmushtaha
-
MIT
-
-
-
-
-
-
-
-
-
-
-
-