For the past 5 months, we have been implementing a full-scale customized CRM application for one of the largest non-profits in India. And we’re building it using CiviCRM.
We have been working with social organizations since our inception. Seeing the challenges and low-tech adoption of non-profits in India, we started building our product ManageMyNGO to cater to non-profits’ day-to-day operations. That’s when we learned about CiviCRM. There were various discussions among the team, especially between Prateek and the tech leadership, on how to utilize the benefits of CiviCRM and open-source and take inspiration in building ManageMyNGO.
We worked closely with CiviCRM’s founders when building Glific during the pandemic. Their outlook on social impact through technology and open source helped us understand more about what it takes for software adoption on a scale.
We have much to share about our CiviCRM experiences, but we’ll keep this article focused on a specific problem we encountered. A problem that is a crucial factor in CiviCRM’s limited adoption among Indian nonprofits.
As technology adoption has been growing more than ever in the social domain, especially post-pandemic, major payment gateway services like Razorpay have become crucial for core activities like donations and fundraising. That’s what we also planned to integrate with our CRM implementation.
While popular internationally, CiviCRM has seen limited adoption in India, with only around 100 implementations. Its existing payment extension, Omnipay, lacks compatibility with Razorpay and similar utilities used by a large number of Indian non-profits.
For ColoredCow, recommending a switch to a different Omnipay-compatible payment platform was an option. However, this would have entailed extensive research, testing, and potential disruptions to our client’s financial processes. Using a globally available service like Stripe would have been complex and time-consuming. Not to mention this would also cause a significant bottleneck in our project plan
Rather than offloading this problem, we took it as an opportunity for us. If only we could develop an extension that would support Razorpay. Why not? And that’s when we decided to develop a CiviCRM Razorpay Extension.
During the project requirements phase, we thought Omnipay would help us as it is marketed as a multi-processor extension supporting a variety of services. For example, this Stack Exchange thread suggested we can use it. Only when trying it out, we figured there were some problems:
Looking deeper into the extension’s codebase made us realize that it hasn’t been maintained well enough to work with the latest versions of CiviCRM. The last code commit was more than 3 years old (in Jul 2021). It was clear that it would be easier to develop our solution than to contribute to this legacy package.
Following best practices, we prioritized simplicity and usability. We began with a basic Razorpay payment flow using Vanilla PHP, then gradually added features like an admin interface, configuration options, and documentation to create a complete CiviCRM payment processor.
The extension is now available at CiviCRM’s GitLab and also under the CiviCRM Extensions page.
Relevant links:
Here’s a video to see the CiviCRM Razorpay flow in action. There isn’t anything special in the flow and that’s how we wanted it to work. To run business as usual.
We believe CiviCRM has vast potential to address nonprofits’ operational challenges. With rising technology adoption in India’s social sector, fueled by AI advancements, we’re excited to contribute further to the CiviCRM ecosystem. This is just the beginning of our journey to build more impactful open-source solutions.
We thank the CiviCRM community for their support and seamless extension process.
We also welcome open-source contributions to this extension and collaborations on future CiviCRM projects. Feel free to write to us at contact@coloredcow.com or reach out through any social media platform. Learn more about our open-source work on our GitHub profile.