How We Got Here
Originally Published 2015-12-16
When I first started at my company about 18 months ago, I was first tasked with finding a replacement for InfusionSoft. For those that have never heard of it, InfusionSoft is a financial CRM for small to medium sized businesses. It handles things like lead generation, affiliate programs, checkout systems, email marketing, and a host of other things. It works fairly well for most average businesses.
When I got here, people really didn’t like InfusionSoft. I was given the low down from many different employees about how it screws up everything and nothing ever works right. I was a Senior Software Engineer, and I was expected to create a replacement system for this software.
So, before I go too far, InfusionSoft is not a bad system. My company had been using the system for about a year without understanding most of its features or how it works behind the scenes. Bad decisions were made, and the data in the system became confusing and unruly. Garbage in, Garbage out is true, no matter what you’re using. But hey, that’s startups.
So we’re using InfusionSoft for lead generation, checkout, affiliate services, and some email marketing. I am set to focus on replacing the checkout system. But that also includes affiliates, so that has to be new, too.
Now, there are tons of checkout systems on the market, and many of them are very good. I did a bunch of research to start; I didn’t want to reinvent the wheel. I decided we should try using Stripe. We’re not a typical “online store” type of company. The data behind the purchase matters to us in a lot of different areas, and we need everything neatly integrated in a custom way. Stripe had a pretty slick API, and I could see ways of using the data in all the ways we needed.
So like many decent ideas, this was shot down. I believe the issue was mostly cost/benefit analysis by leadership, or maybe hubris, but we wanted OUR OWN checkout system. With saved credit cards, and subscription payments, and PayPal integration. And financial reporting. And Affiliate tracking. And custom sales pages. And full integration with our existing (and quite complex) members system, but also think about replacing the members system.
Oh, and we wanted to use it for the gigantic sales launch in 6 weeks.
And I look around me, and the people I have at my disposal are:
-A Senior Developer that lives in Maine and I have never met. He works on the members system, which I have only had the chance to glance at. It is written on a framework that I didn’t know at the time (CodeIgniter)
-A mid level developer who was the one to hire me, who was busy keeping the rest of the site running.
-1 junior developer who has never written a line of PHP in his life. He became our analytics expert.
-Another junior developer who might have written 3. And none of them worked.
-A promise that we’ll hire another guy.
So yeah. That’s not even remotely possible, but I’ve performed miracles before, right? So I dive in, and work a ton of hours, and get a system limping along almost in time. The other guy we hired got the affiliate piece sort of limping along too. But we haven’t tested it very thoroughly (did you see a QA guy up there? That’s because we didn’t have one), and it kinda…well..it failed. It didn’t have anything that any of these other systems would have built in. I could have gotten there, but that would have taken time that we didn’t have. But you and I knew that like 3 paragraphs ago.
So we went back to InfusionSoft, and we stayed there for a few more months. I write some other systems, I learn CodeIgniter, we rebrand and reskin the entire codebase, I build a quick and dirty integration system for putting InfusionSoft checkout forms on our website.
All the while I plan on getting our custom checkout system to work, or at least using some of the gargantuan amount of work I’ve done. It would be really neat to have members data, sales data, lead data, email data, and everything else we do all working together to do some really slick analytics. InfusionSoft is great for some things, but it can only integrate with our system so much. It’s built for small online stores, and maybe basic online content systems. We’re aiming a lot bigger than that, and we do a lot of stuff with data that can make things difficult. And we also have a ton of garbage data in there from the Dark Times, which makes fixing stuff a little harder.
And then our CFO says “we’re getting rid of InfusionSoft, we’re going to replace it with NetSuite”.