A command-line Customer Relationship Management software.
Who is it for?
The geek entrepreneur.
- You own your data.
- Use an open text-based format:
- JSON it is.
- You can create custom reporting tools.
- You can create your own integrations (import, export, ...)
- The code is very concise, hack into it!
npm install -g crm-cli
Get into the directory where you want your data to be stored. Something shared on Dropbox (or whatever) is a good idea.
The run the bellow command to initialize your data file.
This creates a file called
The full list of commands supported by the tool is available by just entering
crm on the command line.
usage: crm COMMAND [filter] Available commands: - reports: i,interactions ... list of interactions. com,companies .... list of companies. con,contacts ..... list of contacts. a,apps ........... list of apps. about ............ all we know about a contact / company. f,followup ....... list of required follow-up. - data entry: add-company ............ register a new company. add-contact ............ register a new contact. add-app ................ register a new app. add-i,add-interaction .. register a new customer interaction. edit-company .............. edit an existing company. edit-contact .............. edit an existing contact. edit-app .................. edit an existing app. edit-i,edit-interaction ... edit an existing interaction. done ...................... remove follow-up date from interaction. - email: template FILE .......... fill in values for an email template. template-help .......... show the list of template fields. - system: init-crm ........ create data file in current directory.
Note on filters
All reports commands accepts a filter argument, used to restrict the data display.
The filter is a fuzzy case-insensitive operator.
crm about microsftwill show all data you have about
crm about marc twainwill show all data you have about
- Put the
crm.jsonfile in version control.
Here is how I use the template feature.
I create a file that contains the headers and body of an email (see templates/subscriber-followup.txt for an example)
To initiate an email to our newly subscribed customer (Microsoftware in this example):
crm template tempates/fup-registration.txt Microsoftware > email.txt neomutt -H email.txt
This will open a Draft in mutt with all fields replaced.
I guess not everyone uses neomutt, but it's easy to adjust to your need. You can simply paste the output of the
crm template command and compose your email from gmail or whatever.
crm.json contains JSON formatted data.
The root element is an array of Companies.
A Company has the following attributes:
contacts: array of Contacts
interactions: array of Interactions
apps: array of Apps
A Contact has the following attributes:
An Interaction has the following attributes:
kind: string -- the type of interaction (email, github, automated, ...)
Dateconstructor can parse)
from: string -- email address of the contact
summary: string -- short summary of the interaction
content: string (optional) -- full interaction
followUpDate: string (optional) -- when a follow-up is due
An App has the following attributes:
Apps is basically one of your products or subscription you're trying to sell... It's specific to my use case, if the tool is useful to others, we might make the App concept a little more generic.
Interested by the idea?
Am I launching a rock in the water by sharing this on github? Do you have some interest? Let me know!
PRs are welcome, of course.