It’s been almost a year since I wrote about using Keboola Connection in Keboola. A lot of things have happened since then: my Bloodborne board game finally arrived, I'm a double uncle… oh, and I got engaged.
I also celebrated another anniversary this month - seven years of working at Keboola! And I believe that we’ve made some great progress yet again.
Last time, I gave somewhat of an intro to our internal reporting. This time, I’d like to be a little more specific with the topic, while still covering a lot of things under the hood :) So, today’s topic is…
There’s a lot of things that we want to share with our users and (of course) our leads. It’s not just about showing our leads how great Keboola Connection is through our marketing. We also want to provide current users with important information and news about the platform, or share details about project consumption with owners of our pay-as-you-go projects.
For all of that, we use an email campaign tool called customer.io. I can’t compare it to others, as I usually just work with the tool that each department has chosen to best suit their needs :) But it feels like we’ve been using this one for much longer than we actually have, as it was really easy to implement in our data flows. The reason for this is pretty straightforward - good API. Oh, how I love well-documented, functional APIs. Let me start with a general approach as to how we feed that monster and then utilize the data that it generates.
You probably already know how much I like our ‘generic’ components. With that said, it should come as no surprise that we use Generic Writer to load data to the platform and Generic Extractor to get the data out of there.
It goes without saying that the most important part of all of this are the potential recipients. We don’t want to be managing people on two separate platforms, so our core contacts database is (obviously) our CRM. All of our contacts from the CRM are then written to customer.io, so if we acquire a new lead, we have to store it in the CRM first. Of course, we don’t want to keep junk leads in our emailing platform (there’s no point in communicating with them!), so we periodically check to see if contacts in the platform have been marked as ‘junk’ in the CRM. If they have, we delete those records accordingly.
Likewise, if someone unsubscribes from our emails, we receive that information through the platform and then update the contacts in the CRM. Both tools benefit from each other.
Naturally, we add more information to the contacts in customer.io and use different pieces of data to do that, e.g. marking them as recipients of new feature announcements, or flagging pay-as-you-go users. We do this by combining the contacts, i.e. with data from our platform that allows us to identify what type of projects they use. Doing this helps us to better target our general/marketing emails and avoid bothering people who wouldn’t benefit from them. I’m assuming you already know that targeting your campaigns is great, but my main point here is that crafting targeted emails based on many different data sources is even better.
Once the emails are sent, they’re moved to Keboola Connection, processed, and loaded as new contact events to our CRM. These eventually find their way to our internal reporting, which we spoke about last time. The circle is complete :)
Honestly, I hate marketing emails. All of those messages from the bank, ecommerce businesses, or tools that I’m using - there are just too many of them. Things aren’t like they were 20 years ago, when every email that landed in your inbox put a smile on your face and you could still chat to your friends on ICQ.
But it’s a different story when the emails contain valuable information. That’s why I’d like to tell you how we communicate with our actual users - more specifically, with our pay-as-you-go (PAYG) users. Once becoming a PAYG user, you’re thrown into Keboola Connection and you might feel a bit lost if it’s your first time - I definitely recommend trying Keboola Academy to prevent that from happening. It’s for this reason that we track what users actually do and offer them a helping hand.
It’s all based on the data from our platform. We track some milestones in the user journey, like:
We create these events in Keboola Connection and then send them to customer.io, so that our email automation processes can be triggered to send appropriate tips, articles or documentation pieces.
I’m going to take a little tips-and-tricks detour here, so bear with me! We don’t want to send events like these multiple times to the platform, or the automation would be triggered again and again. To avoid this, we store events that have already been sent to Storage and use them as an assurance filter when creating new events. The process looks like this:
You might have noticed that the same Transformation configuration appears twice in the orchestration, but it’s not actually running the same transformation twice. As I don’t want to have two of these configurations to achieve the above sequence, I modify the task’s parameters so that only particular transformations are executed when running the task by the orchestration. You can read my tip in the Keboola Community to find out more about this.
Ok, now that my desire to share some Keboola tips has been satisfied, we can get back to the main topic. The events contain all of the information that’s needed to compose a meaningful message to be sent to the user. Let’s use the “Credit Grant” event as an example.
Of course, we want to earn money, but we also want our users to try Keboola Connection without too much restriction. In many small use cases, they’re even able to run it for free - every PAYG project is created with 5 available credits to start with (each one equal to an hour of Keboola jobs). Every month, we add another 5 credits to the account depending on the user’s consumption over the past month.
We send details of their consumption to customer.io, which allows us to send awesome emails (like the one below) to the user:
And that’s an email I definitely wouldn’t be mad about, as it provides easy-to-process information about my usage of the tool and lets me know that my credits have been topped up. It even points me to our new Telemetry App, where I can find a more detailed rundown of things. I won’t start on that today though, or there’ll be no more topics to talk about in the future! Speaking of which...
This definitely isn’t where it ends. We’ll continue to enhance our targeting and make our content even better, so that people like me won’t be annoyed about receiving emails from Keboola. We’ll use Keboola Connection to analyze the data and feed it to different monsters, which will help us to make the journey with our product a breeze for our users.
One thing to note - even though I can’t imagine my life without Keboola Connection, it’s not just about the tools. You always need great people in your team to achieve great things. Let me thank Milan and Manja here for what they’ve already done. You can think about these two when a Keboola email reaches your inbox, as it’s most likely their work (don’t let Milan’s profile picture deceive you - he’s much more beardy and grey-haired now… ahem, I mean wiser).
Looking forward to bringing you more interesting updates and insights from the Keboola family in the future!