For my third project, I decided to make a CRM.
After being in sales for 10 years, I have had my fair share of experience in CRMs. Each one excels in their own way and I wanted to take my experiences and create the beginning of a CRM that I felt I would like to use.
I had a grand obsession with making a CRM that would make everything easier for the sales rep, and after a few weeks of toying with these ideas I finally decided on framework that could work.
My CRM, of course, uses Ruby on Rails, and allows the user to focus most of its attention on two pages: the account show page and the dashboard. My reasoning behind this is that many of the CRMs I’ve used force the sales rep to go from one page to the next and overcomplicates the daily tasks needed to improve sales. For example, the account show page is the only place where a user can create contacts, tasks, connections and opportunities.
The other page the user will spend the most time on is the dashboard. I thought I would end up doing more with this page, but at this time it contains recent tasks, accounts, and opportunities. It also has a way to keep a tally of calls and emails made each day and has a progress bar that allows the user to know visually where they stand each day.
In the future, I would add weekly, monthly, and quarterly kpis that could help the user stay on track for the long-term. Beyond that, adding different roles as a user would evolve the CRM into a way for managers to manage their teams and create more KPIs that would improve efficiency beyond what the sales rep can see.
Some challenges I faced when creating this app were mostly with the routes and associations that were needed in order to allow the user to continuously circle back to the right pages. For instance, when a user creates a task, a contact is required, and that means that the account must have a has_many, through relationship with a contact. In the other direction, the contact will only have_one account.
I really enjoyed making this project, and wish to spend more time creating more evolutions of it. I think the functionality opportunities it presents are endless and it was interesting to decide on what would be needed.