manage your internal sales - xrm development project
TRANSCRIPT
DEVELOPMENT CASE STUDY
CARAMEL CRMA story of building a custom CRM that fully
covers internal Sales needs and adapts to any
business model.
“It was a complex project, but I loved how we dealt with it!”
Sergey VerklovProject Manager
“It was a CRM system development project that was based on our own experience of system usage for in-house needs. The step-by-step improvements led us to excellence, but we never stop improving and provide custom CRM development for customers’ projects.”
Olga ZhukAccount Manager
As an outsourcing company that deals with a large number of clients daily, the Mobilunity Sales team faced the problem of tracking those clients in a way that was simple and non time-consuming. Our story starts years ago, with a simple spreadsheet that the team used to keep track of leads and clients via Google Drive. The file was growing exponentially and within a year was unable to provide answers to a number of important business questions.The desire to have all contacts along with a growing number of leads organized internally led to CaRaMel, our custom CRM development project. Key problems the new system had to solve included:
With the motto “no contact is lost” in mind, our back-end development team started crafting the product, what would be the beginning of our new lead man-agement system.
PROBLEM
1
Project Team
Project ManagerBusiness AnalystUI/UX Designer2 Backend PHP Developers1 QA Engineer
Organization of all Company contacts
Differentiation of contacts by type and source
Assignment of clients to proper Account Managers
Notifications/reminders to Sales associates to follow up
with prospects
Status tracking of every lead
Communication with clients directly through the system
Decreased time spent on email communication
Report on sales team KPIs
As with any project, our Project Manager began researching and comparing existing CRM solutions on the market. We looked at the industry giants and defined what our Sales team might be lacking with those client relationship systems.
THE CASE STUDY
2
BUSINESS ANALYSIS
Requirements Zoho Hubspot Bitrix24Insightly
Client contacts
Leads
Potentials
Mailing system
Scheduled emails
Tasks
Project board
Campaigns
Easy customization
Analytics per project
Analytics per client
Additional features
Cost
X
X
X
X
-
X
X
X
X
-
records for emails, events, campaigns, closed and opened activities
online meeting rooms, calendar
up to 10 members - free, more - $25/user a month
X
X
-
-
X
X
-
-
-
-
X
all additional functionality is not free
free
X
-
-
X
X
X
X
X
X
X
X
very simple to use and similar to gmail
from $12/user a month
X
X
X
X
X
X
-
-
X
calendar, drive, chat, complex UI
free for up to 12 users
Based on market analysis, feature requests received from research department, and the needs of our project and sales teams; our Project Manager closed the project definition phase with creating a full technical requirements document along with the CRM system wireframes. It was crucial for the system to be able to handle large volumes of contacts - currently the database includes over 30 000 contacts, while technically the system is able to handle over 1 000 000 contacts.
Technical requirements to the lead tracking system included:
TECHNICAL REQUIREMENTS
3
Project plan
System database architecture
User flow and user stories
CRM wireframes
Reporting Manager - is allowed to view all clients and
users, as well as generate reports
Researcher - is allowed to create and edit information
about clients, and can manage clients added by users
Manager - is allowed to create and manage all clients
Admin - is allowed to create, edit, and delete information
about all clients, add users, and change CRM settings
The concept of the whole system was based on optimizing sales
processes and promoting interaction of Sales and Account Man-
agement Teams with contacts.
Our Project Manager defined the following user roles for the system:
User profiles covered all relevant information including name, email, gender, and position. Client profiles
included more detailed information such as the source, Researcher, Account Manager, date of creation,
contact email, phone number, LinkedIn profile, company name, position, industry, and website, as well as
fields for comments, and an ability to attach files. Clients were separated by the following types:
Leads (found and added by research team)
with the statuses:
Attempted to contact
Contacted
Junk
Lost
Not interested
Qualified lead
Idle
Prospects (clients, who agreed to a meeting;
physical or a call) with the statuses:
Junk
Lost
Not interested
Idle
4
Potential (clients, who received our
proposal after a call) with the statuses:
Junk
Lost
Not interested
Idle
Customer (clients, who signed a service
contract) with the statuses:
Active
Inactive & Potential
Inactive & Lost
Canceled
The first version of the customer relationship management system had the following features:
Ability to add new clients and assign them any category
Importation of MS Excel databases
Ability to Filter by date, source, Researcher and Account Manager
Ability to Filter by client statuses
Execution of the logic that changes the status of the client, who is not replying for a week, to Idle
Reports on the number of new clients added and lost within a specified period
Further versions of the lead follow up system included the development of an advanced calendar
and reporting features along with a separate HelpDesk module. This would enable communication
between users and clients, allow for the creation of email templates, provide functionality to do
mass mailing, define SLA’a, allow automatic follow-ups to be sent, and receive reminders.
Email attachment wireframe suggested by the Project Manager
The Project Manager defined the custom workflow for the whole CRM project in Redmine in line
with Scrum Agile framework methodology for development, splitting the development into the
initial Sprints.
5
Screenshot of the CaRaMel project in Redmine
Our CRM designer suggested mockups to meet the acceptance criteria defined by the Product Owner, and focused on creating an intuitive interface for lists and cards of users, clients, tasks and tags. The UX design for the CRM was done using Photoshop and presented in InvisionApp.
DESIGN
6
CRM clients list design
CRM clients list design
7
The project involved 2 PHP backend developers, who coded it from scratch and who continue to work on improving it now. Technologies used in the development of the CRM include:
BACKEND DEVELOPMENT
Yii2 PHP framework due to its fast speed, stability and flexibility.
Apache Lucene-based ElasticSearch was used for quick records discovery.
Thanks to Ajax scripts our Yii developers enabled quick refreshes of data
without the need to reload the page.
MySQL and MariaDB systems were used to manage the databases.
Emailing was implemented through Sendgrid SMTP service, our developers
used its API to send continuous queries and fight spam issues particular to
large CRMs.
TinyMCE JavaScript HTML WYSIWYG editor was implemented in the email
module to enable the creation of aesthetically appealing emails.
The QA Lead prepared a Master Test Plan and Smoke Checklist for the CRM project. Along with basic client and user cards testing our team thoroughly worked out possible test cases for security vulnerabilities.
TESTING &BUGFIX
Deployment environments included development, testing
and production servers.
CRM clients list design
8
Custom CRM development lasted 4 months and was quite a challenging experience for the team. Our backend frontend developers and Project Managers came across the following issues:
Thread identificationTo implement convenient email communication, our PHP backend developer had to split emails into threads.
To solve this issue we developed thread identification algorithms, which checked every email for the thread
and subject ID and of course emails of users involved into communication.
Slowly loading pages Our team detected a bug with the theme used in the first release of the CRM MVP, which loaded a long list of
contacts on every page, thus, causing issues with the page loading speed. To fix the problem we disabled the
calendar and stopped showing clients on every screen.
Email issuesHaving the whole system depend on one email server always raises the risks of possible downtimes and
even bans, due to the large volume of emails and spam prevention AI algorithms on the server side. To avoid
such issues our team implemented 2 independent mail servers.
Possible SMTP downsUsage of any third-party service creates dependencies on the service uptime. To be aware of possible SMTP
service downtimes, our CRM developers applied the system of SMTP service status notifications.
Advanced reportingKPIs of any mailing campaign includes a number of replies, the open rate, and click through rate. To have this
information in the CRM our team wrote an algorithm, which retrieves this data through Sendgrid API.
Contacts importTo optimize the work of the research team and diminish the need of manual client data entry into the CRM,
we developed an “Import of contacts” feature. Now any user of the system can download a csv template,
which includes all required columns in the system, and then upload lists of contacts from an Excel spread-
sheet. The system will validate them and automatically create new clients.
CHALLENGES & SOLUTIONS
https://mobilunity.com [email protected]
The New custom CRM system turned out to be a successful project with implementation of such technologies as:
Despite that fact that the system was developed based on our internal Sales team’s request, the final CRM system is fully customized to the needs of any industry from an ecommerce startup to large manufacturing corporations.
TECHNOLOGIES USED
Yii2 PHP framework
Ajax
MySQL and MariaDB
ElasticSearch
SendGrid API
TinyMCE JavaScript HTML WYSIWYG editor
Are you ready to scale your sales to the next level? Let’s develop a CRM for
your business together!