Customer.io has teams spread across the globe. That’s awesome, but it can also present unique challenges. With people managers and their teams spanning 5 continents and more timezones than we can count on both hands and feet, we wanted to create a simple way to give and solicit feedback regularly. We use a weekly company-wide newsletter – with plenty of gifs and conversation-starting questions – to gently nudge team members to talk with their managers, building a space for feedback.
Several services will take care of these kinds of internal messages for you – 15five is a great one. But at the end of the day, this is an email campaign. And that is what Customer.io does! Having newly joined the People Operation Team, I inherited these Weekly Campaigns and just knew there was a way to automate and achieve this goal by using our own platform.
Even if we were to automate these emails, we knew each email should be personalized to the recipient. The email should address them by name, be sent at a time that makes sense in their timezone, and connect them directly with their correct manager. All of that is easy to do out of the box in Customer.io. I also wanted its content to be different each week, ideally seasonally relevant, so people don’t grow blind to the emails. And it should make people smile when they open the email – bring on the gifs and cheesy opening lines!
The easiest way of building this in Customer.io would be an email broadcast. Each week, someone on the People Ops team would build out the newsletter, customize it for the week, and then schedule it to send in the team member’s timezone. But that would be a lot of recurring manual work, setting reminders that often get pushed back, and general human error (read: forgetting).
But I realized that the emails themselves are structured mostly the same week after week, only the content changes. If we could set up a year’s worth of content in a spreadsheet, then all the campaign would have to do is pull in the current week’s information. And if we want to add content to any particular week- no problem! Just open the Collection’s spreadsheet and toss in that new gif you came across or share a recently found article with the team. With a combination of Google Sheets, Collections, and Event-Triggered Campaigns, we got it working!
Here are the steps to follow if you want to build this out for your team:
Each weekly email has the same structure. It starts with an opening line, goes into some questions, and then has a closing line. There’s also a fun gif at the bottom and top. Each element gets its own column, and each row is identified with the send date. Here’s what that looks like:
Collections are one way in Customer.io to store data not directly tied to a user. You can upload a CSV or link a Google Sheet to Customer.io, and then query that data in your campaigns. With the Google Sheet already set up and filled out, you can import the email content in just a couple clicks.
We have a workspace in our Customer.io instance that’s just for People Ops. Each team member has their own profile. Each profile includes their full name, timezone, manager’s name, and anything else we’d need to personalize the messages they receive.
This campaign starts with a Time Window to wait until Thursday afternoon in the team member’s timezone. Next, we set up the Collection query. Since each row in the spreadsheet (and therefore the Collection) is identified with a date, we need to add an attribute to everyone’s profile that matches the current date. We do that with an attribute update and some liquid logic formatting to match the format we have in the Collection:
Once that attribute is set, we can query the Collection. We want the row in the Collection with the date that matches the current date. Once that’s found, each column in that row is added as a new attribute against the team member’s profile.
Now we’re ready to create the email! Using liquid logic, we can pull in the email content we queried for from the Collection, including the gifs.
To end the campaign, we wait 6 days and then fire an event. That event triggers next week’s email, starting the campaign over again.