Customer Relationship Management (CRM) Systems are the place organisations store contact data, communication history and "status" or "sales progression" for current and potential customers.
All CRMs store personal data by definition and in general the data is stored in a relational database; that part is solved1.
The key differences from one CRM to the next are:
In our experience, many companies large and small that have a CRM use it ineffectively because of inadequate business process definition, insufficient training given to people using the system and sheer volume of "features" nobody sees the need for.
This is the "Dark side of CRM" no SaaS Vendor will talk about. See: https://www.emeraldinsight.com/doi/abs/10.1108/07363761311290812
To achieve "success" with CRM there are a few steps that should be taken:
delete
it?
1
The subject of how data is stored is technically,
still a topic of "debate". While most CRMs use RDBMs,
a few use "document storage" such as MongoDB
in order to store "semi-structured" free-text data.
I favour the structured approach
combined with "append-only log" as a way of building
a CRM because it lends itself to better guarantees
and arguably a simpler message-based architecture which will
allow for more innovation; more on that later!
2 With GDPR the EU has enacted a law to help put the customer in control of their personal data; we think this is excellent! What it means for any company that captures and stores customer is they need to re-think how data is acquired, and is appropriate consent sought? Exactly what data they store and why it's needed, how it's protected while it's in your "care" and what the process is for deleting it when the customer no longer wants to have a "relationship" with you.
We need to store the data from our web enquiries (people who contact us to work with or for dwyl) in a database and have a clearly defined workflow for managing/progressing the data.
At present we are using an "MVP" solution for this: an HTML form that posts to a Google Spreadsheet. This has worked "OK" for us, and it's even one of our most popular tutorials but we have come up against 3 issues:
Data stored in a spreadsheets is not "secure" even if it's
restricted to a handful of trusted people,
it's still a ton of personal data stored in
plaintext
without fine-grained access controls or restrictions on exporting.
Note: we are big proponents of Hyper Transparency in dwyl; we believe that everyone in the team should be able to see our "pipeline". But this is not really "compatible" with data protection (GDPR) because if for any reason someone on our team were to leave their device unattended in a public place (e.g. coffee shop or co-working space) a "bad person" could "steal" our entire customer "database" in seconds with only a few clicks; Google spreadsheets makes it easy to "share" the spreadsheet with a random G-Account or even make the sheet
public
without approval process. This is a massive risk we should not (and don't need to) take even if the probability is low the impact is super high and we should just avoid it!
A spreadsheet "workflow" is not effective/optimised at all,
the communication history (email, phone calls, SMS, instant messages)
is not stored in the spreadsheet
which means that only the one person who engaged in the conversation
is aware of the full history
thus that person becomes a "bottleneck" in the system
or worse the "single point of failure".
a. Activity of people editing/updating the spreadsheet
is not automatically tracked.
If someone sees an enquiry come in and follows up
(by email or phone) and the forgets to update
the relevant row/cell there can be duplicated effort.
b. Business Process Automation is non-existent;
it's all manual.
For example scheduling a proposed time
for a call/meeting is all manual.
c. Contacts become "stale" over time as people change jobs,
our spreadsheet does not reflect this without manual update.
d Date Prioritisation is very manual in the spreadsheet
and in general ineffective. We don't capture
the urgency of the inquiry/request,
so we have "missed out" on interesting opportunities,
which is frustrating!
Spam! last, but not least, spam. In the last month we've had over 50 SPAM requests. (in fact this is a catalyst for us wanting to re-think our enquiry process in recent weeks we've had an increasing volume of Spam submissions through our "contact us" html form which pollute our Google spreadsheet and clog up our inbox! and because the "origin" of the email is our script, Gmail does not know how to intelligently filter the messages as junk!)
Note: we consider unsolicited messages from "recruiters" wanting to sell us "talent" to be "Spam" and we want to eliminate it.
We need to "fix" this! It's costing us time/money every day and risking personal data loss unnecessarily.
We need to be focussed on "workflow automation" to be more effective at handling our enquiries.
We receive several types of inbound enquiries, the list of enquiry "sources" in (descending) order of frequency is:
public
on the website!)This is where we will be spending the bulk of our time for the next few weeks.
Our plan is to use a Twilio to handle our both our inbound and outbound voice calls with a telephone number people can call when they need our help.
At present we receive email directly to our Gmail inbox. This "works" for now so we don't need to change it. But as soon as we have our "web-to-lead" process nailed, we will be tackling "email-to-lead" from scratch.
At present we don't have any "process" or "workflow" for Twitter. We need to have alerts for both mentions and specific topics/hashtags. TBD once we have "Web-to-Lead" working.
We intend to solve this by building something. But we feel that it needs to "feed" into our "Web-to-Lead" workflow if none of us are online to help the person wanting to chat. So we will return to this once we have the first few elements working.
We are in the fortunate position that we have not needed to do any "outbound" marketing to get work. All of our clients have come to us through word of mouth or inquiry form.
However, we are planning to begin publishing our "blog" posts and weekly newsletter once we are focussing on our SaaS Product.
We do not consider this to be "marketing", rather it's "sharing updates" with our community.
For the foreseeable future, our "internal" team of people who already handle the enquiries will be using the "CRM".
Our goal is to find (or build) a CRM that any business can use to safely/securely store the details of the prospective customers.
default
not as "after though".
In addition to having encryption of all sensitive/personal data
By default each "instance" should have
For "MVP++" we will be using a Web (HTML) form to capture data and store it in a Database.
Note" we will require a "GDPR form" to be completed by the data controller and evidence that the person is registered with the relevant data protection authority before we run the
export
script for their data.
Use "deploy to Heroku" button? Or "Terraform" to AWS Lambda...?
While we need to make the CRM as user-friendly and intuitive as possible for first-time and casual users, it's the "power users" who will be interacting with the system most and need the fastest UX day-to-day.
See:
market-research.md
We have tried:
Both are PHP-MySQL and both get painfully slow with any volume of data ...