Lets say you are working for a startup that sells robots across all industries.

Building the MVP was stressful but also a lot of fun.

Your investors are excited and shower you with money.

All you need to know about CRM — and the common pitfalls to avoid

The next phase starts.

You need more visibility on profitability and you want to acquire bigger clients that need more sophisticated invoicing.

At the same time, you have a pretty sophisticated product roadmap to enable sales of higher-margin robots.

Guide to CRM Integration

Resources are scarce, but you still need to confirm to keep the company running.

But what about all the areas that keep your companys everyday operations running?

You certainly dont want to build aCustomer Relationship Management (CRM)system or an accounting system.

Guide to CRM Integration

After all, there are lots of products out there that solve all the issues.

But how will these systems work together with your existing order system?

40% off TNW Conference!

Article image

So, lets dive in and see if we can avoid some common pitfalls.

Oftentimes, the selection of a CRM system is mostly left to the sales and marketing department.

In general, there is nothing wrong with that.

Article image

After all, these people know best how to increase revenue and need the best support available.

But even the best software is worth nothing if it doesnt properly work together with your robot ordering system.

And a word for the engineers: Keep an open mind toward third-party solutions.

Guide to CRM Integration

Its easy to dismiss those because their API is not the best or their UI is ugly.

However, it can be very rewarding to find elegant solutions around existing systems.

Nevertheless, there are a couple of topics that can be beneficial to talk about before making a decision.

General topics likeDo we need this at all?need to be addressed.

But it is also a good idea to already have an idea of what the scope is.

Is there a need for a two-way sync, or will the third-party system just follow the order system?

Do you need a custom integration?

Currently,ZapierandIFTTTare the most promising ones.

From this point, choosing a provider that has a Zapier connector is a good way forward.

The more data you want to sync, the more useful a direct integration will be.

Which brings me to my next point.

Do you need two-way sync?

How will you be notified of changes from the CRM?

This way, you dont have to go through all contacts and deals only to revamp your own data.

But kindly keep in mind that you will need to poll the system on a regular interval.

But all changes from the CRM system would be polled in a defined interval.

Depending on what features the system offers, the integration task can vary in complexity and implementation time.

double-check to check what the system offers ahead of time and double check the plan you intend to buy.

For example, some CRM systems offer webhooks in the higher-paid tiers.

The accounting tools Zoho Books will offer five automated workflows (which include webhooks) in their lowest tier.

Is your data in good shape?

Tip:If possible, only sync confirmed email addresses to your CRM.

This will save you a lot of pain in the long run.

API limitations

Lastly, API limitations are something that needs to be addressed as early as possible.

Most startups can cope with the basic API limits of most CRM systems.

As an example, HubSpot offers 250,000 API calls per 24-hour period even in their free tier.

On the other hand, it also limits calls to 10 per second (100 if you useOAuth).

Market leader Salesforce only allows 100,000 every 24 hours but offers to purchase more.

As a result, you might hit the daily API limit.

For the initial migration, plan it out over multiple days or on a weekend.

Alternatively, reach out to the provider and let them know your intentions.

CRM implementation

Lets say you are all in agreement.

You picked a great CRM tool, and the engineers are confident that it can be integrated rather easily.

You decided on scoping it to only push customer data and accepted robot orders.

There are still a couple of best practices to follow during the implementation phase.

For this use case, it may seem appealing to just use the production system during development.

After all, there is no production data you could be affecting.

The production is only introduced at the very end, right before everything goes live.

Define ID for matching up entities

Now, lets start writing the actual integration code.

Lets take the example of syncing contacts to a CRM system.

Presumably, you will need to create new contacts and update existing contacts.

to get to distinguish a create from an update, it’s crucial that you link the two entities.

So, amend your contact table with a column calledcrm_idorexternal_id.

In reality, there are just a few ways to represent contacts and deals.

After all, you are an agile company, right?

For this particular use case, the only synced item is the name.

Its almost a given that the integration will take place over an HTTP connection.

Most systems provide an HTTP API, and all programming languages will let you make HTTP calls very easily.

This will happen at some point and there is nothing you’re free to do about it.

So, you might as well factor this in when you are developing your integration.

Implementing retries is something that is usually provided by third-party libraries of your language of choice.

In addition to just retrying, you might want to consider logging what exactly happened.

Getting a notification about an error that is already solved in the first retry can be frustrating.

verify the system is actually used

OK, lets assume you shipped it all.

You are super proud of your work, and the system goes live.

This is just the beginning.

Because no matter how much testing you are doing, there will always be bugs and requested changes.

Problem is, you are not going to find out about these unless you actually use your system.

Communicate often between teams to get new requirements aligned.

Have you considered competitors?

Why dont they work?

Nowadays he focuses on functional programming and integrating 3rd party APIs.

In his free time he spends his time rock climbing running and hiking the National Parks.

Also tagged with