Skip to content

moathmushtaha/custom-integration

Repository files navigation

Custom Monday.com Integration

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.

🚀 Features

  • 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

            • 🛠 Tech Stack

            • | 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) |

            • 📦 Languages

              • JavaScript (primary)
                • MIT License

                • ⚙️ Setup & Installation

                • Prerequisites

                  • Node.js installed
                    • MongoDB Atlas account
                    • Monday.com account with an app created
                    • ngrok installed

                    • Steps

                      1. Clone the repository

                      2. git clone https://github.com/moathmushtaha/custom-integration.git
                        cd custom-integration
                        1. Install dependencies

                        2. npm install
                          1. Configure environment variables — copy .env and fill in your values:

                          2. MONGODB_URI=your_mongodb_connection_string
                            MONDAY_SIGNING_SECRET=your_monday_app_signing_secret
                            1. Get your MongoDB URI from MongoDB Atlas

                              1. Get your Monday signing secret from your app's Basic Information page (App Credentials section)

                                1. Start the server

                                2. npm run start
                                  1. Create a public URL using ngrok:

                                  2. ngrok http 8302
                                    1. Configure Monday.com — go to your app's Features, add an integration, and paste the ngrok URL

                                      1. Create custom recipes (workflow blocks) with actions "store in MongoDB" or "update in MongoDB"

                                        1. Add the recipe to your board and test it!

                                        2. 📊 How It Works

                                        3. A Monday.com board item column is updated by a user
                                        4. Monday.com triggers a webhook to the ngrok URL
                                        5. The Express.js server receives the webhook, validates the signing secret
                                        6. Item data is fetched from Monday.com via GraphQL
                                        7. The item is stored or updated in MongoDB using Mongoose

                                        8. 💡 Skills Demonstrated

                                        9. Monday.com API & SDK — webhooks, GraphQL queries/mutations, custom integrations
                                        10. Node.js / Express.js — REST webhook server
                                        11. MongoDB / Mongoose — NoSQL document storage and ODM
                                        12. GraphQL — data fetching from Monday.com
                                        13. React.js — frontend components for Monday.com apps
                                        14. Webhook-driven architecture — event-driven integration patterns
                                        15. ngrok / local tunneling — development workflow for webhook testing
                                        16. Third-party API integration — connecting external services via authenticated APIs

                                        17. 👤 Author

                                        18. Moath A. Mushtaha

                                        19. GitHub: @moathmushtaha

                                        20. 📄 License

                                        21. MIT

About

Custom Monday.com integration use for listen on item column changes then update it or store -if not exists- in MongoDB, getting data from Monday.com using custom item mapping.

Topics

Resources

License

Stars

Watchers

Forks

Contributors