Smile And Dial CRM – Part 4 – As If By Magic

Sherman On Software Logo

SmileAndDial CRM was built around the concept that people are nothing but a number.  Phone numbers were a fundamental constraint in the software; it was impossible to have a contact that didn’t have a number. 
With the introduction of TheeSeeShipping and months of Invisible Shipping SmileAndDial has been able to free themselves of this incremental constraint.  Through many iterative releases the company has slowly been transforming itself.  


The data model has gone from using Phone as a key in all tables.

To a normalized model with foreign keys that don’t carry extra meaning.

Changes were small.  They were low risk and had no customer impact.  There was little work in flight, and occasional priority shifts didn’t result in code rot.  Their slow accumulation removed a fundamental constraint that was built into the company’s founding principles.

Happy Ending?

SmileAndDial CRM is still the go to CRM for boiler rooms, pump and dumps, extended car warranties, and other outbound call center activities.


Now, as if by magic, they are also ready to help their customers expand and spam prospects with ads for bitcoin, blockchain technologies, and of course, male enhancement pills.


Thankfully this is a fable and we can pretend that this is a happy ending!

Smile And Dial CRM – Part 1 – The problem with direct change

Sherman On Software Logo

Welcome back to SmileAndDial CRM’s journey to remove phone numbers as a fundamental constraint.  In the introduction I introduced SmileAndDial CRM, a loathsome service for boiler rooms, pump and dumps, extended car warranties, and other horrid outbound call centers needs.  SmileAndDial has a problem, all contacts need a phone number and they need to transition away from phone numbers to enable their customers to send spam.How fundamental are phone numbers?  Let’s begin with the data model and how it reinforces the constraint.

Phone Numbers As Primary Keys

As the data model leaves no doubt, to SmileAndDial, you are nothing but a number.
Phone number is the primary key used throughout the system.  The developers made an interesting trade off - in exchange for a bigint primary key, which doesn’t have great indexing, they got a system with no joins.

No Joins?

That’s right!  Because the phone number is the primary key, users can enter a phone number into any search field and the system can use it directly without having to join against the Contact table.


When was the last time I called a contact?
“Select max(Date) from Calls where phone = [phone]”

How much have we sold to a contact?
“Select sum(price) from Sales where phone = [phone]”

Few operations need to join back to the Contact table, which reduces code complexity.

What Happens If There’s No Phone?

Now we get to the crux of the constraint - nothing works without a phone number.


Simply updating the Contact creation logic to allow phoneless contacts won’t work.  The new contact can’t have notes or sales without a phone number.


In part 2, we will start TheeSeeShipping our way out of this mess.  By delivering incremental, iterative changes that we will reduce risk and increase customer value.

Smile And Dial CRM, A Fable About Transforming Fundamental Constraints

Sherman On Software

Data assumptions are baked into your CRM’s makeup and can seem impossible to change.  Email marketing requires contacts to have an email, because you can’t do email marketing without one.  Call center software requires prospects to have phone numbers so that agents can do outbound sales.

But what happens when your business needs to change and your fundamental constraints are no longer fundamental?  How do you change your core data model assumptions without starting over or freezing development?

SmileAndDial CRM has spent years positioning themselves as the go to CRM for boiler rooms, pump and dumps, extended car warranties, and other outbound call centers on the strength of their dialer integrations.  They’ve done well, making a quality product for horrible people.  But the FTC is cracking down on junk calls and putting their customers out of business.  They need to expand into email spamming and help support their horrid customers.  After all, keeping your customers out of jail massively extends Customer Lifetime Value.

This series will follow SmileAndDial on their journey to remove phone numbers as a fundamental constraint in their software.  

Part 1 - The problem with direct change
Part 2 - Start TheeSeeShipping
Part 3 - Invisible Shipping
Part 4 - Numberless Contacts appear as if by magic

Actions Over Objects

Sherman On Software Logo

After a few weeks, a customer’s first page of contacts will become static.  Same with tags, lists, and every other object that your CRM supports.  When the data on the first page becomes static, users stop seeing it entirely.

Instead the first page becomes muscle memory on the way to your user’s real actions.

How long do you make your customers wait to load a page of data objects that won’t even register in their minds?  How many extra hoops do they have to jump through to get to the actions they want to take?  How much slower is the process for your biggest customers?

Customers log in to take actions, not objects.  Don’t waste their time showing data objects until you know enough context to show meaningful data.  

Data scales, actions and attention don’t.  You can wage a constant fight to scale your UI, or you can choose Actions over Objects, and avoid the issue entirely.

The C in CRM Grows Unbounded

Sherman On Software Logo

There’s no upper limit on the number of Contacts that customers will want to add to your CRM.  Until you can support billions of contacts, there’s always an argument that you should support more.

On the other hand, Relationship and Management options are constrained by the choices you present to your users.  You can’t support everything and need to consider which options make sense for your CRM.  Every option adds complexity and cost to you; and cognitive load on your users.  Adding features often decreases value.

When it comes to contacts, think about what scales.  For everything else, remember that people have limits.

Site Footer