BlogUse CaseAIAutomationTechProductivity · · 7 min read

Automating CRMs: Manual Data Entry to Background Automation

Edward Frazer
Written by Edward Frazer

The worst part of using CRMs is manually inputting data. In this post, I share my personal introduction to CRMs and how my pain points shaped our approach to building an automation product that auto-updates CRMs in the background.

Automating CRMs: Manual Data Entry to Background Automation

How I got into CRMs

About 2 months into building a company with my co-founder Sam, I realized that we were a little too disorganized. We wouldn’t follow up with people we had outbound Sales calls with, we’d forget names and contacts, and we’d forget to respond to people in Slack. To be completely clear — we were dropping the ball, all day every day. It was bad.

I figured, at this point, that the thing we needed was a CRM. Now having just dropped out of college and having only worked infrastructure engineering jobs, I didn’t really know what a CRM was. But I knew I had a problem, and I knew what the solution I wanted looked like, and I was pretty sure that the solution was a CRM. With the CRM that existed in my mind, I’d be able to look at a pretty table and know exactly what the state of our business was, I’d be able to follow-up with people in 3 seconds, and we’d stop dropping the ball every day. Surely this was the reason this CRM thing was a $100b market.

Sam and I then spent a couple of hours looking at CRMs. The first thing we did was set up a Google Sheet, but this was ugly and hard to parse. Then, we tried CRMs like Close, Hubspot, and Salesforce.

It turns out that I was… kind of right. All of them had pretty interfaces for checking the state of my customer relationships.

But I was also really wrong about one pretty important thing: the CRM doesn’t simply import stuff automatically… you actually have to go put stuff in there.

Why not build a CRM?

This fact astounded me. After every interaction, email, slack message, etc. — I would need to add an additional 30 seconds to go into my CRM (whether it was Sheets, Hubspot, or something else) and actually update it. This was insane to me.

It was so insane that I argued to my cofounder Sam that this is the business we should build — a CRM that simply auto-updates with everything.

We ended up… not doing this, for a lot of reasons. Building a CRM is hard, the market is tough, and we never really did meaningful sales. But, a couple of months after our first foray into CRM-land, we did build an automation product, and my favorite use-case for it is auto-updating CRMs for our customers (and myself).

So What Does This Automation Actually Do?

When a business interacts with customers, it often happens online in email, calendars, and chat.

I personally do a ton of emailing, I set up meetings on my calendar, I send Slack messages back and forth, and I jot down notes in Google Docs.

One of our users runs a marketplace, and he does a ton of emailing to literally make the market — manually putting these interactions into hubspot would cost hours.

One of our users has an unbelievable number of meetings, with thousands and thousands of contacts and accounts. Finding the right account, plugging in a new event, and keeping the info in sync as the events get updated and deleted is really hard.

The goal of the automation is to track all of this hubbub in email apps, calendar apps, and chat apps and intelligently update the associated records in Salesforce or Hubspot.

For example — a new meeting gets created with 3 emails. One of the emails is internal to the firm, an Account Executive. One of the emails is from an existing contact who works for OldCo. One of the emails is from a contact not inside the firm who works for NewCo.

The first thing the automation needs to do is create a new event (the calendar invite) and associate it with the existing contact from OldCo. I also need to add it to the account for OldCo.

The second thing the automation needs to do is create a new account contact for NewCo. To get info on this account, we need to enrich the lead email for the NewCo guy on the invite. Then, we’ll need to create the account, create the contact for the NewCo guy, and associate the event with both of them.

Finally, we’ll need to listen for any additional updates to the calendar event (say another guy from OldCo gets added or the whole event gets cancelled — that needs to be reflected in Salesforce too).

This is pretty complicated! Lots of conditions, a fair amount of ambiguity, some judgement calls. There’s a reason CRMs don’t support this natively — it’s not a task you can do without an AI Agent.

How Do We Make It Work?

There’s two answers to that — the user side (e.g. what do our users do to set this up) and the developer side (what do we do to make this happen).

The user side is, unbelievably, very simple. All you do is describe the sync you need, like I did when setting up our syncs below…

Chat

Describing the sync needed

We made it a focus for the interaction to be very intuitive and exclusively in plain English — imagine training a coworker or new hire to do this job. That’s what the experience is like in DryMerge. We try to resolve any ambiguity and create clear instructions (that you of course can edit).

Instructions

Clear instructions for the automation

The other side of this is monitoring — it’s super important to understand exactly what’s going on in the background as the sync goes on. The activity screen is a ledger of what’s happening, and our users typically manage everything there.

Activity

Activity screen showing the automation ledger

The final piece of the puzzle is adding approval steps for stuff you're not certain about — here's a sample for a new slack user => sheet automation we have.
Approval

Approval step for uncertain actions

This is incredibly important early in the automation cycle (when you’re not as confident it knows how your business works fully, like an employee’s first day). Users usually say “check with me before doing xyz” in the instructions and this works like a charm.

The developer side of this is very complicated, very fun, and nightmarishly hard. The broad overview is that we integrate with CRM services, email services, calendar services, etc. and provide action infrastructure with basic operations like “Add a new contact”, “Update an event”, etc. We then link this up to an LLM and iteratively solve the problem with the set of actions. I’m planning to dive a little bit deeper soon, so stay tuned :)

Why I’m Excited about CRM Sync Automations

I hate busywork. So much. This automation probably eliminates the most busywork out of any automation we see our users make at DryMerge — order dozens of hours a month, which scales with the size of the organization using it.

It’s also something that just intuitively feels like it should just work. Again, I was shocked that this isn’t how CRMs worked out of the box! Building DryMerge is a lot like building glue for all the broken parts of the internet, and this felt like a really really broken part of it. It feels awesome to fix :)

If you want to chat about CRM automation or anything else, I’m always available here! And I would highly encourage you to try out the product if this sounds interesting, it’s truly a joy to build and use.