Why is my Alexa Flash Briefing playing more than one episode at a time?

We launched the Journey to $100 Million Flash Briefing on Jan 2, 2019. It was our first Flash Briefing.

Having mad, but quickly decaying, software development skills, I had already tested out how an RSS feed could be used to play a Flash Briefing on my Echo. My RSS feed exposed a single episode, and after some tinkering, it played on my Echo.

With that successful proof of concept in hand, I began recording episodes.

Really…what could go wrong?

Flash briefing launch

Day 1 — Everything works and my Flash Briefing plays. W00t W00t!

Day 2 — The second episode is out. Sweet! Oh, but wait…after episode 2 plays, yesterday’s episode followed. Huh…that’s weird.

Day 3 — The third episode is out. Awesome! I wonder if the older episodes will play too. Yep, once episode 3 is done then episode 2 plays and then episode 1 again.

Every day the episodes are playing in reverse chronological order.

Sound familiar?

I have a solution. Read on.

Why are multiple episodes playing?

The way your audio file or text is provided to Amazon is via an RSS feed (Real Simple Syndication). An RSS is a textual way for your website or hosting company to tell any other system what content is available.

Amazon reads the RSS feed to determine what gets played. You don’t so much deliver or upload an audio file or text to Amazon as you make it available for Amazon to read when it needs to read it (when someone asks to listen to your Flash Briefing).

Here’s an example of our current RSS for Marketers Anonymous.

An RSS feed can have one or more “item” entries.

Going into this process, I was under the impression that I’d provide all my episodes as items in my RSS and Amazon would keep track of which each person had listened to. So if a person listened to episode 1 on day 1, then on day 2 Amazon would know to not play episode 1 — even though it’s still in my RSS feed — and just play episode 2.

Meme via tenor.com

That was a bad assumption. Looking deeper into Amazon’s Flash Briefing instructions

So if your RSS includes more than one (1) “item”, Alexa will play all of them; up to five (5) items. This was further reinforced on this Amazon Developer Forum posts I found on the subject:

But my RSS automatically posted each item. If you also use your RSS feed for a podcast, as we do, then the RSS must have all episodes listed. If I limit the RSS somehow to just one item, then the RSS wouldn’t work for my podcast. Regardless, there’s not even a way for me to have my audio hosting company publish an RSS feed with just the one latest episode.

Interim Solution — Manual Daily Work

Understanding that the RSS for the Flash Briefing must have just one item/episode at a time, and without a way to make that happen with our hosting company or within Amazon, our first solution was to brute force fix it.

We upgraded hosting plans so that we could have multiple RSS feeds. The original RSS, with all the episodes, remained the same and would continue to feed to the podcasts.

A new RSS feed was created. But for this one, we’d only publish one episode at a time. Episodes can be scheduled to come out in advance. We set them to come out automatically at 5am. But when an episode was published that meant the new RSS had two items on it. The old one would have to be unpublished.

That’s where the manual labor would come in. I already get up at 5am, so I would simply add this to my morning routine. Each morning, I logged into the hosting company and unpublished yesterday’s episode, thus leaving just one item on the RSS that we used for the Flash Briefing.

And… It worked!

But… I tired of that after just one day. I mean, why do something manually when you can automate it?

There had to be a better way.

Zapier to the rescue

After significant searching, I landed on a blog post of someone who was working on a different Flash Briefing problem, but solved it by using Zapier to expose an RSS feed.

If you don’t already know about Zapier, I’ll just say…it’s badass. It lets you connect your web applications so that you can get data out of one system, transform it, and push it into other systems. We use it heavily at my digital marketing agency to automate a ton of work that would otherwise take hours per day to synchronize between systems.

From that blog post, I realized that I could use Zapier to expose an RSS feed. Cool…if I could get the current data into Zapier then I could use Zapier to just expose a subset of the original RSS with just one item in it.

So the goal was to keep the original RSS feed — the one with all published episodes/items. That original RSS would still be used for podcast platforms. Here’s how it would work:

  1. The original RSS would also be an input into Zapier.
  2. Zapier would transform the original RSS to reduce the number of items to just one item.
  3. Zapier would then expose a new RSS feed with just the most recently published item in it.
  4. We’d use the new RSS feed that Zapier exposed for our Flash Briefing.

Turns out, Zapier will not only create an RSS feed for you, but it will also read an existing feed.

The Zapier RSS feed with just one item

Jumping into Zapier, I added the appropriate tasks…

  1. Consume an RSS feed
  2. Transform the data slightly as needed. In my case, the hosting company exposed some URLs as https and I use a bit of JavaScript to transform those URLs into their https versions.
  3. Expose the transformed RSS feed

Here’s what the zap looks like in Zapier…

Once the zap was created, Zapier will give you a URL for the RSS feed it creates.

I looked at the output in the browser. Sure enough, the original RSS had three items, but Zapier’s RSS had only one. SWEET!

After a day of testing, just to make sure it wasn’t too good to be true, we updated our Flash Briefing to use the URL to the Zapier RSS with just one item in it. Consistently now for several days, the Zapier RSS contains just the most recent episode, and only the most recent episode.

With that, we were able to downgrade our hosting plan because we only needed one RSS feed again. More importantly, I didn’t have to remember to unpublish older episodes from a second RSS feed every morning at 5am!

Meme via InsuranceBusters.net

Make sense?

Need help setting up this solution? Email me at erik.olson@thisisarray.com.

UPDATE: Inside the individual Zapier steps

I was wondering if you could send me some guidance on how you only pulled the newest episode for your flash briefing. In the article you wrote you really don’t go into detail and I was wondering if you could share this with me. Thx a bunch and have a great day.
~ Nicholas Sawka

You betcha Nick!

Zapier step #1

The first step is to consume the existing RSS feed from your hosting company. If you’re like me then that RSS feed must continue to include every episode you’ve ever published so that it can be used to populate the podcast platforms (ex: iTunes, Google Podcast, etc).

It’s a pretty simple configuration. Just point to your RSS URL. I’ve masked part of mine…not sure if it matters, but I’d rather keep the source URL out of the public eye.

Zapier step #2

Within the RSS feed that my hosting company provides, the URL to the mp3 file starts with http. That is a no-no for Flash Briefings. Amazon requires a URL that starts with https.

Either will work with my hosting company, but they just happen to provide an http URL. I’m not sure why, but I’m also not going to wait for them to do something about it. So step #2 is simply to convert the http URL to an https URL. I used some of those aging programming skills to pull it off, yo!

Zapier step #3

This is where the magic happens. The first two steps really just got the data that we needed. Step #3 actually exposes a new RSS feed.

It’s a long screen and I had to break it up into four screenshots.

Screenshot 1 of 4

  • You can type whatever you want in for the last part of the URL that Zapier will expose for you. That URL is what you’ll copy/paste into Amazon’s dev console when you setup your Flash Briefing.
  • Max Records is the key here. Set to 1. That means that the RSS feed that Zapier produces will expose only one item regardless of how many items are received from the source.

Screenshot 2 of 4

  • Wherever you see green is where I’ve transferred data from previous steps. So the Title and Content fields of the source RSS episode fields are literally passed through to the RSS feed that Zapier will be exposing.
  • I’m not sure what the best value for Automatically Truncate Messages over 10KB is, so I went with the default of no.
  • Author name — type your name here.

Screenshot 3 of 4

  • Again, some fields will be populated from previous steps. Other fields are static text I typed in.
  • Notice for Media URL I’m pulling from Step #2 which is where I transformed the URL to the mp3 from http to https.

Screenshot 4 of 4

  • The last field is for setting the publication date. As you can see, Zapier provides some shorthand codes. I used “now”.
  • OK, so “now” is not technically correct because I may schedule an episode to be released at 4am, but when someone asked Alexa for their Flash Briefing at 5:17am then Alexa will think my episode came out at “now”…at 5:17am. But in the end I concluded — so what? The pub time is not important. As long as the right episode comes out that day then we’re all good.

Make sense?

Need help setting up this solution? Email me at erik.olson@thisisarray.com.