Return to site

Speed wins the marketplace

How to build exceptional customer service platform in no time.

No matter what kind of startup you push forward, make sure that customer service is done right. At least so they say. It is the Customer Service that impacts pretty all other areas of your business. It's something to pursue relentlessly. Something to build ASAP. That’s why we’ve enhanced our Sparta Product Development series with an article that will help you build an exceptional customer service software platform in no time.

Know your process

The very first thing before you go dive deep into software is to picture a minimal process for your CS. Forget about details at this point. Just outline the full process from a birds-eye view and draw basic dependencies. If you’re an e-commerce/marketplace type of startup, you can imagine a couple of elements to be involved: funnel, payments, invoices, reports, customer lifecycle monitoring, complaints, refunds, business intelligence, seo, invoices once again, churn, resource allocation, discounts, referrals, more reports, data security and privacy.

Each of them is important and each of them has to be constantly improved. Each of them requires tons of experiments and A/B testing. Each of them will be iterated many times in the first 6 months and will be eventually evaluated by your customers. Then, hopefully, your customer base will grow. But with great customer base, comes great complexity. Put this in the back of your mind and think of small steps that will get your product going - now. Pick the ones that are really important. Your plan might look like this:

First round:

  • basic funnel
  • invoices
  • reports and basic business intelligence

Second round:

  • funnel and marketing enhancements
  • improving systems performance and reliability
  • customer service automation

Third round:

  • advanced BI
  • automatic resource allocation
  • security enhancements

This will vary depending on your product category or market but the key part is to build it, measure and learn quickly. Let’s see how to make it happen.

Use Force

Now that you know what to achieve and why, let’s think of how to make it work and generate value from day 1. One way forward is to run Rails scaffolding tool and try to come up with some order processing webapp. But before you set up a development environment, lay out a DB schema or prototype a first user interface, stop for a while and take a look at different approach. The one that might bring a profound customer service implementation much faster.

Meet Salesforce. A powerful cloud-based CRM platform based on years of providing its services for businesses of each size. Let’s see how can we use it to our advantage.

Salesforce delivers ultimate tool for modeling and shipping the CS chain. Starting from simple CRM entities like Leads, Orders or Accounts you can use to collect customer data, to workflows, dashboards, cases, reports, email templates and many more! Every feature is based on SF experience in serving business that will help you refine your customer relationship management. You definitely won’t have to reinvent the wheel.

If, however, an out-of-the-box configuration doesn’t meet your needs, SF overcomes this with its killer feature - customization. Not only does the platform allow non-tech founders to tweak the process, but it also provides a software framework for engineers to literally build and incorporate new components and plugins.

Although you might get discouraged by their pricing model, they’ve prepared a special offer for startups. You can count on massive discounts for enterprise version for the time you are struggling with finding a product/market fit. Check out

Look Ma - No database!

Besides built-in development capability, SF platform is an integration beast. It has a great, well-documented API with a number of clients for different languages. That’s why you can easily use your current software base to manage SF objects. No matter what kind of programmers you have on board - be it Ruby, PHP, Java or even JavaScript.

When you combine it with configuration features, such as custom entities, autoincrement fields, triggers, workflows or data integrity you’ll get to the point that you realise your product doesn’t really need an external database!

At early stage SF gives you more than you need in terms of data model. If something doesn’t fit, you can easily change it in the configuration panel. If something is missing, you can add one of these. And this means less hassle when you iterate on your process fast, when you release to production multiple times a day.

Let’s take data migration for example, thanks to a wonderful wizard from you can easily adjust your model using a spreadsheet only!

That’s nice. So can I put my business logic inside?

Good question. We are not fans of that for a few reasons. The first is low Apex (SF programming language) popularity. Second, it doesn’t support Sparta development we use to work with. The development framework is simply not maintainable enough to handle our process: deployment is slow and it doesn’t support fluent version control. Besides, in a rapidly changing environment we prefer JavaScript over Java ;)

What we suggest instead is leveraging Callouts mechanism.

Whenever a SF object's state changes or a user triggers an action SF informs external back-end system. Then it runs respective logic and returns the information back to SF or triggers another action. By doing this we can:

  • use JavaScript and its great community
  • deploy faster using heroku
  • log and monitor application state using better tools
  • scale irrespectively of Salesforce limits
HTTP callouts are not always super-reliable, in that case - you can enhance it with persistent queues (internal or external). Possibilities are endless, this is just the very base setup for your platform.

Heroku is a new component here. It is a leader of platform as a service products that enables developers to build and run applications in the cloud. SF acquired it in 2010 and has built a decent integration ever since. We use it, for example, to run business intelligence reports.

If you want to get familiar with details of the configuration supplemented with caveats we found the hard way, signup here.

"While software eats everything, speed of development is critical. Competition is on product development processes, not the product itself." @flomotlik from @codeship

Need more power?

The described setup proved us to be a good foundation for rapid development. When the basic process is established and first orders are processed successfully, you might start wondering how to go the extra mile for your customers. Our architecture is ready to help here as well. Just look at data, define a problem and come up with solution.

Get some idea first at or There’s a good chance that somebody has already solved this problem, at least to some extent. Many of SaaS are well-integrated with heroku. Make sure to check it before you start coding it yourself. Another good idea is to visit Salesforce Marketplace and look through over 2500 apps that might come in handy. Finally, there’s a lot of good open source libraries or tools on github that easily fit into your code base: accounting.js, moment.js or redis to name a few.

Watch out for poor services though. Not all of SaaS products are rock-solid. Schedule some time for investigation before you treat them as trusted in production environment. Follow small steps approach and have fallback plan for each component.

But where’s the trick?

Great. Instead of clear-cut, enterprise software development lifecycle ruled by proven, formal methods, I have a pile of SaaSes glued with some JavaScript code. How come it is reliable and adds up to my competitive advantage? Well, our answer goes: it really works - we release 12 times a day on average.

We have seen it scaled from a few to thousands of orders per day while being way cheaper than a formal approach based on bespoke software. The iteration speed was good and the system remained open for further changes. Of course we haven’t avoided 100% of bugs. But we’ve learnt to deal with it and we’ll show how in next posts. Stay tuned!

All Posts

Almost done…

We just sent you an email. Please click the link in the email to confirm your subscription!