WordPress - Monday Integration
WordPress is used by 30% of the top 10 million websites. No Doubt it's the first choice for content publishers. In our startup, we were using WordPress as a content publishing platform. Working with a team of people we found monday.com could be a great tool to manage the publishing, collaborate, and keep everything on track. So, we set-up a Monday board with automation and workflow that was suited for us. Monday soon we realized there was a lot of back and forth between Monday and WordPress in which users had to manually update things. We tried zapier , intergromat, and other solutions but these all were the one-sided solution and changes didn't synchronize. We saw this as an opportunity and started integrating with Monday API V2. As we built it on top of WordPress, we realized that we can actually extract the core and make it an open service for anyone using WordPress.
What it does 🤔
This integration lets users synchronize there WordPress site with Monday to create efficient workflows and automation. Monday users can synchronize posts, pages, users, comments, and taxonomies from WordPress to Monday and vice versa. This opens a new window of automation opportunity for publishers, content creators, or simply anyone using WordPress to create custom workflows and connect various other platforms without any additional plugin installation on WordPress.
Monday users would be able to do following Integrations -
- When a WordPress Post is created create a new item and sync future changes. Additionally - a. Assign user if exists. b. Assign Tags and categories using tags fields. c. Load Comments as updates to the posts. d. Synchronize post status and Monday status e. Add the preview post link.
- When a WordPress Page is created create a new item and sync future changes.
- When a new Monday item is created, Create a Draft post in WordPress.
- When an item status changes to something, change WordPress post status to something
- When a new WordPress user is added, create a new item on Monday
- When a new Comment is added create a new item.
How we built it 🧑🏼💻
The whole integration has 3 parts -
- Monday Recipes - This contains a set of actions and triggers that users can choose as his desired sync between WordPress and Monday.
- Middleware - This is built with MongoDB and express.js where we keep a record of all users and there chosen integration and forward the request to their desired WordPress website. This middleware is hosted on EC2 and performs 3 basic functions - a. Authorization - User enters his WordPress credentials with an API key and secret generated by our WordPress plugin b. Callback - This shares the access token directly to the WordPress site so that for future interaction middleware is not required. c. Subscription and Run URL forwarding - This simply forwards the subscription ID for direct action to the WordPress site by identifying account and user.
- WordPress Plugin - This is the part that does the heavy lifting. All the synchronization, run, actions, and hooks are performed here as we wanted to maintain the privacy of the user and didn't wanted to store and transaction at our end. WordPress Plugin does the following things - a. Generates API key and the secret of middleware used during the authorization process. b. Manages subscription triggered by Monday user c. Then depending upon the trigger chosen by user we look for that action in WordPress and perform that action on Monday using API V2. d. We keep an association of WordPress entities and Monday items so that they can be synchronized in the future.
Challenges we ran into 😅 -
- Authorizations took most of the time because at first, we were not sure how we can connect any WordPress site in the world on Monday integrations. Also, we found there was no example project that involved such a custom authorization process, so we had to create one on our own.
- Deciding between webhooks or API V2 was also a challenge and we were not sure how sync can happen for independent items and it was impractical to trigger so many webhooks for so many items. Hence we went with the association approach where every WordPress entity connects with Monday will have an association with Monday user, item, tags, labels.
- Another big problem was mapping the fields. When planning the integration, we though integration mapping would be out by the time we come to that part. But that didn't happen. As we didn't have any way of finding which column was being used for what field of WordPress, so we went with a novel approach and triggered column creation on Monday if that field wasn't associated with WordPress. This prevents any data misconduct or error from API. ( We create what we don't have). Once integration mapping is released, we will replace this with that.
Accomplishments that we're proud of
- We are onto something big. We have built first of its kind WordPress a no-code platform with Monday a WorkOS. In simple words, WordPress can be automated and connect with any app that will ever exist on Monday in the future without installing additional plugins on WordPress.
- We can't wait to see what people are going to build with this. WordPress can be used for anything using its modular approach and connecting it with the world's best automation platform is steroids for WordPress.
- It's free and always will be.🥳 Just like WordPress, our integration will always remain free for users. 🤩
- It's completely opensource and we can't wait to build a community around it.
What we learned 🧐
- Planning an integration
- Monday work culture is amazing
- The persistent effort pays off
- Learning a completely new platform and building something amazing, which doesn't exist before.
What's next for WordPress - Monday Integration 👍🏻
- Building more integrations
- Implemented Integration mapping
- Connecting multiple WordPress sites with multiple Monday's
- Building a community around it.