All you need to know about CRM — and the common pitfalls to avoid
Did you know we have an online conference about digital marketing coming up? Re:Brand will share strategies on how brands can still succeed in these unprecedented times.
Let’s say you are working for a startup that sells robots across all industries. You take in orders from a variety of clients, and an operations team evaluates the orders and works with third-party providers to get your clients just the right robot.
Building the MVP was stressful but also a lot of fun. Your investors are excited and shower you with money. 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. Resources are scarce, but you still need to make sure to keep the company running.
As often preached for smaller companies, focusing on the things you are good at is a great rule of thumb. But what about all the areas that keep your company’s everyday operations running? You certainly don’t want to build a Customer Relationship Management (CRM) system or an accounting system. 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?
This is where third-party integration comes in handy. So, let’s dive in and see if we can avoid some common pitfalls.
CRM integration
Whether you are doing low-touch sales (content marketing, social media ads, or newsletters) or high-touch sales (cold calling, attending conferences, or following up with existing clients via phone), a CRM system can give you a lot of visibility about how you are doing with existing clients and how successful you are with convincing new clients.
Oftentimes, the selection of a CRM system is mostly left to the sales and marketing department. In general, there is nothing wrong with that. 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 doesn’t properly work together with your robot ordering system.
Include your tech department in the decision
Whether it’s the CTO or a dedicated engineer, keep them in the loop from the beginning. They are very likely to give you more insight on how the two systems will work together in the future.
And a word for the engineers: Keep an open mind toward third-party solutions. It’s 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 like “Do 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? Once the scope is out of the way, there also needs to be a technical discussion about implementation details such as webhooks or evaluation of the API limits.
Do you need a custom integration?
When it comes to integration, it’s not surprising that there are already existing platforms out there that promise to solve some of the problems you are likely to encounter. Currently, Zapier and IFTTT are the most promising ones.
Depending on the problem you are trying to solve, your robot order system might not even be involved in the integration. Say you are managing your newsletter subscribers with a CRM system such as Salesforce or HubSpot and just want a more convenient way to reach out to them via an email service provider such as Mailchimp, Zapier has tons of existing integrations to help you with that. From this point, choosing a provider that has a Zapier connector is a good way forward.
And even if it comes to integrating custom data (ordered robots and their price), Zapier Webhooks can act as a middleman for your integration.
On the other hand, if you are already sending data to a third party, why not send it directly to the CRM system? 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?
Usually, an integration starts out with a simple requirement such as Can we get all our clients into our CRM system? , typically combined with the values of individual robot orders, making it easier to utilize client segmentation tools.
However, sooner or later, it might be the case that people will want to make use of contact management tools that a CRM suite typically offers. These include features like deduplication, amending contact details with social media data, normalizing shipping addresses, or just simply deleting old contacts.
Changing contacts in a CRM system will most likely mean you will need to change contact details in another system, i changes need to go both ways.
The implementation effort for this is way beyond a simple one-way sync, so this is an excellent point to think about how you want to use a new system strategically.
How will you be notified of changes from the CRM?
If you decide to have a two-way sync, there is a follow-up question: How do you know that something changed on the CRM side?
Most system providers have tools for this, but the best one for immediate changes is webhooks—essentially, an HTTP notification system that can be configured to let you know about relevant changes (for some systems, even on a field-by-field basis).
If the system doesn’t offer webhooks, at least check if you can get a list of all entities that have recently been updated. This way, you don’t have to go through all contacts and deals only to update your own data. But please keep in mind that you will need to poll the system on a regular interval.
In this case, your order system would still change and create data via an API call on the CRM system. But all changes from the CRM system would be polled in a defined interval.
What is worth noting is that the updates will be restricted to this interval and can lead to temporary data inconsistency. For example, when you only sync once a day from your CRM system to your order system, the data you are looking at in your order system can be up to 24 hours old.
Depending on what features the system offers, the integration task can vary in complexity and implementation time. Make sure 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.
An example here is HubSpot’s CRM, which offers webhooks in general but the webhook feature is only available in their Enterprise package. The accounting tools Zoho Books will offer five automated workflows (which include webhooks) in their lowest tier.
Is your data in good shape?
When it comes to creating data sets in an external system, it’s good to know what the data looks like in your own system. Luckily, there are not too many different ways of presenting contacts and deals, but one field that always causes trouble is the email field.
Different systems have different ideas of what a valid email address is, and here’s a spoiler alert—your clients might have provided you with invalid email addresses of all kinds. A lot of CRM systems will reject the creation of a contact with an invalid email address (and of course, the CRM provider defines what is valid and what isn’t).
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.
Assuming there is an API (which is basically a must-have for any integration), it is beneficial to look at the limitations of the API. 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 use OAuth ). Market leader Salesforce only allows 100,000 every 24 hours but offers to purchase more.
Most of the time, you will easily fall within those limitations, but there is one thing to consider: What about your initial run? In the beginning, you will be pushing a lot of contacts and deals to your CRM (and possibly multiple times if there are problems). As a result, you might hit the daily API limit.
To mitigate this, you could test with a small data set and slowly increase the number throughout the implementation to remain within the API’s 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. When you are in the evaluation phase (and haven’t paid for the system yet), they might be willing to increase your API allowance a little.
CRM implementation
Let’s 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. Therefore, two-way sync is not necessary, and address changes are only going to be handled in your own order system.
There are still a couple of best practices to follow during the implementation phase.
Try everything out on a test environment
In most cases, the CRM system will only be used after your integration is completed and ready to use. 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. Once the development is done, you will simply remove all the test data you created, run an initial migration, and point your order system to this environment.
There are a couple of issues with this approach:
All of these issues can be avoided by developing against a test system from the beginning. The production is only introduced at the very end, right before everything goes live. This way, you end up with a clean configuration, don’t run the risk of forgetting to disconnect local systems, and have a heads-up when implementing new features.
Define ID for matching up entities
Now, let’s start writing the actual integration code. Let’s take the example of syncing contacts to a CRM system. Presumably, you will need to create new contacts and update existing contacts. In order to distinguish a create from an update, you need to link the two entities. That way, you can check if the contact in your system exists on the external system.
While it seems appealing to just use the email address (after all, it’s a common identifier for a contact record), there is a more general solution—for every record, you sync to an external system hold and ID in your own database.
So, amend your contact table with a column called crm_id or external_id . This approach has a couple of advantages:
Because it is an ID, it will not change (unlike an email address or a phone number).
You can see if you need to create or update the entity without doing an API call first (if the external id field is empty, you can assume the contact doesn’t exist).
Before:
After :
For example, let’s say you are a Ruby on Rails developer working on an application that needs to sync existing and new customers to HubSpot.
A simplified code example could look like this:
Notice how we are taking advantage of saving the companyId that is returned from HubSpot. Not only does it help us to determine if we want to update or create a company on HubSpot, but we can also see in the database table which entities are already synced to HubSpot and which are still missing.
When it comes to mapping fields, go freestyle
I have seen projects where implementation is preceded by creating a giant Excel spreadsheet defining which columns go where in the CRM system, with annotations of how data should be transformed.
In reality, there are just a few ways to represent contacts and deals. So instead of spending a lot of time thinking about how exactly you want to map, why not start with an experiment? Give the developer some space to figure out the mapping but also keep in touch so that questions can arise early.
At least for the general contact fields (name, email address, phone number, address), the mapping will be very simple, and transformations are usually trivial.
When it comes to status mapping for deals, a little bit more communication is helpful (sometimes, the first status is called open , sometimes new , and sometimes, the status model doesn’t match 100% so you’ll have to group statuses together). Instead of coming up with the perfect solution, look at your current data and see how it would best fit into the data model of the CRM. After all, you are an agile company, right?
In the example above, you can see a map method that converts our Rails model into a regular hash that is understood by HubSpot. For this particular use case, the only synced item is the name. For more advanced usage, you probably want to include more fields, but for a great outcome, start with an educated guess and communicate with the business side often for the details.
Consider retries
Let’s get down to the more technical level: implementing the actual sync between your system and the CRM. It’s 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.
Unfortunately, no matter how much money you spend on a CRM system, eventually, it won’t be reachable. This will happen at some point and there is nothing you can do about it. So, you might as well factor this in when you are developing your integration.
What this means in practice is—whenever you call an API, make sure your call is retried in case of a problem (500 status code from the other side). 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.
So, instead of spamming your error channel with resolved issues, record all callouts with the number of retries to get a feel of how reliable the system is – a system that you just paid a lot of money for.
If we take the class that we created as an example and we stay in the context of Ruby on Rails, we can simply wrap the call in an ActiveJob and be fairly certain the call will succeed eventually. The handle_response method will raise an error in case of an unexpected status code, and ActiveJob will attempt a retry with an exponential backoff. For a more advanced solution, you should also consider 4xx status codes so that a retry is prevented and an error message is raised instead.
Make sure the system is actually used
OK, let’s assume you shipped it all. You are super proud of your work, and the system goes live. Now what? 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. And this happens for all kinds of reasons—the sales department is currently too busy to start using it, strategy changed, or even new systems are already being evaluated.
So, in order to avoid potential issues in the long term, make sure you have eliminated all obstacles that prevented production usage of the system. Communicate often between teams to get new requirements aligned. And if you find out that the system is just not going to work for you, turn off the integration. It sounds harsh and can feel very frustrating, but it’s less frustrating than always having to fix data inconsistency issues and deal with workarounds.
In the end, an integration project is a hell of a project, and there are a lot of things that can go wrong. It’s not very popular among engineers for a number of reasons, but it can be rewarding to see that an implementation has a positive impact on the productivity of people sitting next to you.
So for engineers—try to understand the needs of an external system such as a CRM or an invoicing system by asking concrete questions such as: How will this product make your life easier? Have you considered competitors? Why don’t they work?
For everyone else involved—get the engineers in as early as possible, trust them when they point out red lines, and don’t opt for a cheap plan when you can see that the implementation of the integration will make it a lot harder in the long run.
The Toptal Engineering Blog is a hub for in-depth development tutorials and new technology announcements created by professional software engineers in the Toptal network. You can read the original piece written by Leif Gensert here . Follow the Toptal Design Blog on Twitter and LinkedIn .
What healthtech founders need to know about scaling in Europe
We often forget how fast medicine is advancing. It’s not just about improving treatments and diagnostics with cutting edge technology like AI — which is already impacting cancer diagnosis — it’s also about improving the entire process for patients, making medical advice more accessible than ever through apps and telemedicine.
But the road towards improved healthcare is far from being easy. Healthcare is a tightly regulated industry — disasters such as the Theranos fiasco have proved just how important it is for the industry to keep innovation in check — and while this is necessary, stringent controls can prove a significant entry barrier for new companies. So how can startups break through and not only advance their businesses, but also healthcare in general?
We spoke with several healthtech entrepreneurs — some of whom participated in the X-Europe program run by TNW and four other partners — who opened up about the challenges they’ve faced when scaling and expanding their businesses across Europe.
For context, the program is helping 27 healthtech founders grow their business in the continent — here’s what some of them had to say.
Hardware is notoriously difficult
The hardware industry is notoriously challenging — but if the device you’re building pertains to the medical field, the difficulties increase.
Perhaps the biggest challenge for medical device manufacturers is to overcome the burgeoning cost of product development.
“Founding a healthtech business in Europe that also has hardware involved was, and is, very challenging,” says Vitor Crespo, CEO and co-founder of Criam , a four-year-old startup working to provide “fast, affordable, and in-situ blood test analysis.”
VCs are still not investing in early-stage, specially hardware related, and there is a real valley of death of this kind of startups,” he adds.
Crespo explains that he had to turn to the US for funding and China for manufacturing.
Indeed, the European tech industry is known for being more risk-averse, but it’s worth noting that VCs are actively pouring money into healthtech solutions — a trend that’s likely to increase in the wake of the COVID-19 pandemic .
According to Atomico — a well-known European VC firm — healthtech companies in Europe received a staggering $3.6 billion between January and September 2019. This, by the way, is a six-fold increase on the $624 million raised by startups four years earlier hroughout the whole of 2015.
Even though this is positive, the sector’s complexities mean there’s a real need for more specialized investors, particularly in the preventative healthcare field.
VC model will need to change
“European VC is still looking for outsize return investments, and as a consequence, being able to portray or illustrate the size of the opportunity is still hugely important,” Grierson, who founded preventative healthcare company Thriva around four years ago, says.
Grierson’s company may not have participated in X-Europe ‘s program, but he echoes the concerns aired by those who have.
The company, was started in 2016 and Hamish Grierson, it’s CEO and co-founder, had absolutely no experience in the healthcare industry and previously worked in fintech.
“Firstly, my background in fintech taught me how critical trust and security are as the foundation to customer relationships. This is true with finance and it’s true with health,” he adds.
His lack of medical expertise gave him the freedom and perspective to emphasize with the end-user, “to see the product from a customer perspective,” which he believes is critical when it comes to healthcare.
“There’s some early recognition within the VC community that proactive or consumer-led health is a necessarily emergent category but it’s not as well funded as it needs to be,” he adds.
Agreeing with Crespo, Grierson believes that European investors are much more focused on the immediate commercial reality and there is, therefore, less willingness to invest in something without having clarity on the commercials.
The coronavirus pandemic has also put the spotlight on the industry, as investors look to find the next big thing and entrepreneurs hurry to create it — but still, there’s room for improvement.
“While people are acknowledging that health and wellbeing is one of the largest markets in the world — not all VCs have spent a lot of time analyzing them,” says Grierson, adding that healthcare is operationally more complex than other sectors.
“So, venture capitalists’ traditional model will need to be flexible to accommodate it. I think there’s a role to play for a healthtech specific VC,” says the entrepreneur.
The opportunity is huge — but fragmentation is a problem
The European healthtech industry is huge — in fact, the market was worth €110 billion in 2016 , representing 29% of the global HealthTech market.
To put this into context, the European healthtech industry employed over 675,000 people in 2016. Data for the same year suggests that there are around 27,000 healthtech companies in Europe, with the overwhelming majority (95%) of them being SMEs.
“The market is huge and there is a huge need for disruption in some verticals,” Crespo agrees.
“Once the product is ready, it’s not complicated to test in-market and get some early adopters to validate the concept,” he notes.
According to Crespo, the other big advantage is that the cost to develop a company in the EU is much lower than that of the US: “The EU is helping to create standard regulations in order to be able to operate in different countries with the same regulations.”
It seems Europe is also the perfect testing ground and launchpad for overseas growth.
“Once a company proves its concept in Europe, it’s not hard to scale to different geographies that trust the EU’s regulatory environment,” Crespo adds.
Timo Heikkilä is the co-founder and COO of Popit , a Finnish startup helping to improve patient adherence with its smart consumer devices, which benefited from the X-Europe program.
“The market fragmentation can be challenging at times,” Heikkilä concedes, “There are a lot of local regulations and country-specific rules especially in the pharma industry, not to mention the language spread.”
“Additionally, the medical device regulation in Europe poses its own challenges for small, resource-constrained startups — especially when you compare it with the flexibility afforded by the FDA in the US,” he adds.
More opportunities on the horizon
Anastasia Georgievskaya, the principal CEO at Haut.ai , an Estonian startup developing AI algorithms for recognition of skin pathologies, describes her experience as an entrepreneur in Europe as “fabulous.”
“In Europe, there is a great heritage of multiple research schools in natural science and a very targeted business focus,” she says, while highlighting the variety of startup programs and accelerators available.
“People connect very quickly. We were contacted by TNW on LinkedIn and had a call the same week and applied in a week to join X-Europe . We were lucky to make it to the finals. Things are moving fast, and the environment is friendly while it is quite competitive, which forces you to be at your best and beyond,” she notes.
Georgievskaya believes there is great potential in new fields, including digital medicine, telemedicine, and drug discovery. “The new opportunity is longevity and wellness. The first frontier will be to live longer, then to extend a healthy life span, and the more advanced stage will see us figure out how we can slow down aging and revert it.”
For the most part, Heikkilä agrees: “Our expectation is that healthtech will be increasingly digital in Europe, as consumer behavior moves into the digital domain and digital health solutions prove their worth.”
Europe is not perfect, but with its diverse culture and strict privacy laws, it may well offer the perfect place to develop and test new products.
“Once you have a solution that works across European markets, you already have a solid foundation to satisfy or exceed requirements elsewhere in the world,” Heikkilä says.
The ecosystem already exists and there’s plenty of support available. It’s now up to entrepreneurs to fill gaps in the market and up to VCs to fund them.
The X-Europe program bridges regions and tech companies across Europe through events, media, training, and acceleration. With a focus on the Baltics, the Visegrad region, and Western Europe, the programme will connect 150 deeptech startups with corporations, investment firms, and ecosystem builders. Join us!
Stop complimenting your colleagues
Boris is the wise ol’ CEO of TNW who writes a weekly column on everything about being an entrepreneur in tech — from managing stress to embracing awkwardness. You can get his musings straight to your inbox by signing up for his newsletter!
It was just after lunch, and I had asked for a doggy bag for the extra dish I had ordered but not touched. We were walking back to the office when I noticed a homeless man asking for some money to buy food. I figured I probably wouldn’t eat it anyway, so I told my friend to wait for me so I could walk over to offer him my food.
My friend grabbed my arm and stopped me. “You can’t do that,” he told me. “People don’t like that.” Instead of giving him the food directly, he suggested I would place it on top of the wastebasket near him so he could grab it himself.
When I asked why the detour, my friend explained a homeless person is trying to hold on to their self-worth and pride. People want to hold on to a sense of independence, especially in a position where they’re highly dependent on others.
Even though you’re giving them money or food, they still don’t like to feel inferior, and they hate it when you act superior. However, if I left my food on top of the wastebasket, it would be his choice to whether to pick it up or not — which empowers him and also helps him keep his independence.
Weirdly, it made sense, so I did as instructed. There are always power dynamics at play in all human interactions, and sometimes you think you’re doing someone a favor, but unconsciously you’re just elevating your own position. Actually, it’s not just true for humans.
My daughter showed me a video of two cats cleaning each other. It started cute, with one cat licking the ears of the other cat. To me, it seemed like a loving and gentle gesture. But then the licking became more forceful, and the embrace turned into a stranglehold and then a fight.
My daughter explained that cats use cleaning to assert dominance. By stating, “I clean you,” the cat places itself in a dominant position, and sometimes the other cat disagrees with the proposed new power structure and fights to clean the other.
I recognize this behavior in organizations as well. A compliment can be justified and honest feedback and praise. But saying “great presentation!” can also come across as super condescending. The comment can imply that you don’t hold the person in high regard and are surprised with their work. That’s not a compliment, that’s an insult.
When you give feedback, it’s vital to realize whether you’re sincerely giving a compliment or whether it comes from a position of (perceived or wanted) dominance, and that’s valid whether you’re dealing with people… or licking a cat’s ear.
Can’t get enough of Boris? Check out his older stories here , and sign up for his newsletter here .