Creating Spotify Wrapped-like campaigns with Hightouch and Iterable
How brands create compelling product utilization campaigns to provide customers with an in-depth look into how they interact with their products and create deeper customer relationships
Made by: Hightouch, Iterable
/8 minutes
It's that time of year again! No, I'm not talking about the time to drink too much eggnog while listening to neighborhood holiday carolers. It's the time of year when you can't log in to a single social media platform without seeing feeds full of the top songs & artists listened to by every person you follow.
Spotify Wrapped
In what is arguably one of the most popular annual marketing campaigns in the music industry (let alone on the internet), Spotify has dominated social media channels each December since 2016 with its annual Spotify Wrapped campaign. Each year, the campaign empowers millions of global customers to view and promote insights into their own listening preferences and habits across their social media accounts.
Spotify Wrapped provides users insights, including the musicians a user has listened to most often, the songs to which they have listened most, and their favorite music genres. Its release in early December each year has historically correlated with a boost to Spotify's app store ranking as consumers flock to the app to see their stats or download it due to fear of missing out on the fun.
Wrapped will go down in history as one of the most brilliant marketing campaigns of all time, delighting users with in-depth analytics on their usage while giving them an easy means to share across social platforms. The campaign creates millions, if not billions, of free ad dollars for the streaming giant while also opening up a new advertising revenue stream for the business.
More than just Spotify
Although likely the most well-known, Spotify Wrapped is just one example of how modern marketing teams leverage their first-party customer data to create hyper-personalized user experiences. Utilizing the engagement data collected as users interact with applications, any marketing team can create similar product utilization experiences to connect with their users.
One of my favorites, for example, is from our customer Grammarly - the world's leading AI writing assistance company. Each week, Grammarly uses Hightouch to sync data from their warehouse to send users product utilization emails highlighting their stats, from words checked to weekly writing streaks - gamifying the use of the application and creating an even deeper connection between users and their product
Another excellent example of a product utilization campaign is from our friends Grain - a leading meeting insights tool. Grain sends a weekly digest with stats about your workspace usage and the most popular meeting recordings from that week. The insights help us here at Hightouch to quickly access any popular recordings while letting us track our recording utilization.
Building your own product utilization experience:
While building a product utilization campaign may seem like a massive undertaking, once broken down into some simple concepts, you'd be surprised at just how easy creating a campaign like Wrapped could be for your marketing and analytics teams. Using a data warehouse, a Composable CDP like Hightouch & a customer communication platform like Iterable, any marketing team can create a similar campaign in less than a couple of hours of work.
In the below steps, we will walk you through creating a product utilization campaign for a (made-up) streaming company called "MyMusic" that includes a personalized email highlighting the following user stats:
- Top 5 Most Listened Artists
- Top 5 Most Listened Songs
- Top Most Listened-to Music Genre
Note: this is not meant to discredit any amount of the amazing amount of effort put in by the Spotify Wrapped teams each year*
- You are collecting interaction data in a data warehouse like Snowflake, Databricks, or BigQuery.
- In your warehouse, you should have a
users
table, alistens
table, and asongs
table (see the below image for an example of how these should join) - You have a Composable CDP like Hightouch to activate the data from your warehouse to various marketing tools
- You have a customer communication platform like Iterable that can ingest events, store fields on user profiles & deliver dynamic content.
Hightouch supports a variety of data warehouses as sources, but for this example, let's assume Snowflake is being used. If your source has not already been configured, navigate to sources, then select your source and input your credentials.
A data model in Hightouch allows anyone from a marketer to a data engineer to use SQL to stitch together tables in the warehouse to form a "model" that includes all the relevant data you are looking for. The below example can be used to transform your Users
, Listens
, and Songs
tables to a final format that can be easily leveraged in Iterable
with
top_songs as
(
select
l.user_id
, s.title as song_name
, count(distinct listen_id) as listens
from
listens l
left join songs s
on s.song_id = l.song_id
where
date_trunc('year',l.played_at) = '2022-01-01'
group by
1, 2
qualify
rank() over (partition by user_id order by listens desc) <= 5
)
, top_artists as
(
select
l.user_id
, s.artist_name as artist_name
, count(distinct listen_id) as listens
from
listens l
left join songs s
on s.song_id = l.song_id
where
date_trunc('year',l.played_at) = '2022-01-01'
group by
1, 2
qualify
rank() over (partition by user_id order by listens desc) <= 5
)
, top_genre as
(
select
l.user_id
, s.genre as genre
, count(distinct listen_id) as listens
from
listens l
left join songs s
on s.song_id = l.song_id
where
date_trunc('year',l.played_at) = '2022-01-01'
group by
1, 2
qualify
rank() over (partition by user_id order by listens desc) = 1
)
select
u.user_id
, s.top_songs
, a.top_artists
, g.genre as top_genre
from
users u
left join (select user_id, array_agg(song_name) as top_songs from top_songs group by 1) s
on s.user_id = u.user_id
left join (select user_id, array_agg(artist_name) as top_artists from top_artists group by 1) a
on a.user_id = u.user_id
left join top_genre g
on g.user_id = u.user_id
Your final model should come out looking something like this with the specific songs and artists nested inside of top_songs and top_artists objects
If your Iterable destination has not been configured yet, you can follow these quick steps to create an API key and input it into Hightouch.
A sync is configured to map the data from the Source (Snowflake) to the Destination (Iterable). The Sync manages how Iterable will receive data as well as the frequency of the pipeline. When creating this sync, you'll need to define the fields you want to pull in from the model and how you want to map them in Iterable. That mapping could look something like this:
In this case, we will only run the sync once manually. If we wanted to update it on a recurring schedule (ex. a weekly or monthly campaign), Hightouch allows us to do that as well.
Once your sync has run, you should head on into Iterable and QA users. You should see the newly synced properties now being stored in the user profiles.
Any email creative will do, but each time your email references a piece of content specific to a user (dynamic content), it will need to leverage templating language to pull in the various variables. In the case of Iterable, simple handlebar logic will allow you to include the specific fields from the user profiles. The template would look something like this:
Hey {{firstName}},
Your 2022 MyMusic Summary is here! What a year it has been. Take a look back at the songs that got you through this year.
Top 5 Artists you Listened to:
1. {{topArtists.position1}}
2. {{topArtists.position2}}
3. {{topArtists.position3}}
4. {{topArtists.position4}}
5. {{topArtists.position5}}
Top 5 Songs you Listened to:
1. {{topSongs.position1}}
2. {{topSongs.position2}}
3. {{topSongs.position3}}
4. {{topSongs.position4}}
5. {{topSongs.position5}}
And to finish us off, your top Genre listened to was {{topGenre}}.
Want to share with your friends? Social links are below!
With everything set, it's time to schedule the campaign, test & deploy! Pro tip: Iterable offers features like send-time optimization and multi-variate testing on elements like subject lines and preheaders to drive even more engagement from these campaigns.
Modern marketing teams are constantly looking for new opportunities to connect on a deeper level with their customers. Many like Spotify, Grammarly, and Grain turn to product utilization campaigns to deliver hyper-personalized experiences that inform and excite their users by leveraging their product interaction data.
Thanks to Composable CDPs like Hightouch that activate data directly from cloud data warehouses to customer communication platforms like Iterable that enable marketers to deliver personalized omnichannel experiences, building product utilization campaigns has never been easier.
Want to get started with your own? You can get started with a free Hightouch account in under five minutes today or by requesting a demo here. Interested in learning more about Iterable? Request a demo here.