Create an RSS feed using Google Docs and update it with a Zap

  • 24 February 2022
  • 1 reply
  • 980 views
Create an RSS feed using Google Docs and update it with a Zap
Userlevel 7
Badge +11

Disclaimer: This method may not play nicely with all RSS readers out there, so be sure to do some testing. Doing it this way worked for me when using it with an app called Feedwind, so I figured I’d share how I did it.

UPDATE: As I was testing this out, to fix something in my own Zap, I hit a limit in Storage by Zapier (the data stored at any given key can’t be more than 25KB. The method below will work for a while — I’ve added dozens of entries — but I’m exploring alternatives, in order to get around the limit.

Not long ago, I wanted to include a feed of our featured articles in the Community sidebar. Our Community platform, however, doesn’t provide a feed for forum categories, so I set out to create my own feed and keep it updated using a Zap.

Here’s what I came up with.

Apps We’ll Be Using

  • Google Docs (for the RSS feed itself)
  • A trigger app that provides new feed items (in our case: our Community platform, inSided)
  • Google Drive (in the Zap, to update the RSS feed)
  • Storage by Zapier (in the Zap, to perform a little magic)
  • Formatter by Zapier (in the Zap to format some dates to be valid in the RSS feed)

In Google Docs

If you’re just looking for a way to format an RSS feed in Google Docs (maybe updating it manually), and to find out which URL you can then use as your feed’s URL, this is the basics of what I’ve been using:

<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0">

<channel>

<title>Zapier Community Articles</title>

<link>https://community.zapier.com/featured-articles-65</link>

<description>Read about creative workflows, awesome app tips and interesting use cases.</description>

<item>

<guid isPermaLink="false">10-1-21-520</guid>
<title>Automate these 5 painful tasks with Zapier workflow automation</title>
<link>https://community.zapier.com/articles/520</link>
<description>by Janine Anderson</description>
<pubDate>Fri, 01 Oct 2021 09:00:00 PST</pubDate>
<category>Automation Inspiration</category>
<enclosure url="https://uploads-us-west-2.insided.com/zapier-ca/icon/150x150/211-nM2BDAJ2JNLE3.jpg" length="27793" type="image/jpeg"/>

</item>

</channel>

</rss>

Things to change:

  • Title: The name of the feed itself.
  • Link: A link to where your feed items can be found (a blog, for example)
  • Description: A brief description of what this feed consists of.
  • Elements of the single item: 
    • guid: this can be a URL, but I chose the date and the ID of the article
    • title: the title of your post, article, etc.
    • link: the direct link to your item.
    • description: in my case, I used the author but you may want to describe the post itself.
    • pubDate: this date has to be formatted as shown above.
    • enclosure:
  • Add more items: everything between the opening <item> and the closing </item>

Getting the RSS Feed URL:

1. Change the share settings for that Google Doc, to “Anyone with the link”
 

Click on Share

 

Change it to this option

 

2. Use the Doc ID to create the RSS feed URL

From the address bar, your URL should be something like this: 

https://docs.google.com/document/d/long-string-of-text-and-numbers/edit

You’ll want to copy that long string of text and numbers and insert it into this:

https://docs.google.com/feeds/download/documents/export/Export?id=insert-your-document-id-here&exportFormat=txt

 

3. Validate your RSS feed to make sure nothing is breaking it

You can use this tool by W3C to make sure your feed is valid.

The Zap

Zap Outline

Here is what my Zap looks like:

Trigger: inSided — New Topic
Filter: Only continue if the topic is in the appropriate category
Action: Formatter by Zapier — Lookup Table (author ID to output multiple values)
Action: Formatter by Zapier — Date Format (for use in my GUID)
Action: Formatter by Zapier — Date Format (for use in pubDate)
Action: Storage by Zapier — Push Value Onto List (adding single feed item)
Action: Storage by Zapier — Get List Values (retrieve all feed items)
​​​​​​​Action: Google Drive — Replace File (update the Google Doc, and thus the RSS feed)

 

Trigger: inSided — New Topic

I can’t say what your app might be, but in our case it’s our Community platform. It provides this Zapier trigger but not an RSS feed, so I can build a Zap that uses this information then construct my own feed :)

 

Filter: Only continue if the topic is in the appropriate category

You may not need something like this, but in my case I want to make sure the topic has been published in our Featured Articles category.

 

Action: Formatter by Zapier — Lookup Table 

Here, I’m using something called Name Variables to output multiple values based on one lookup. So when certain author IDs are present, I output the name, user avatar, and (in some cases) the article category.

 

As you can see here, I then get 3 separate fields. This means I don’t need one lookup table per item I want to output ;)

Action: Formatter by Zapier — Date Format (optional)

 

You may not need this step at all. I’m using it to create a formatted date that I can then use here:

 

Action: Formatter by Zapier — Date Format (required)

Unless your trigger app provides the date in the exact format that is necessary for RSS feeds, you’ll need to format it here in your Zap.

 

Then you can see below where that date gets inserted, between <pubDate> and </pubDate>.

Action: Storage by Zapier — Push Value Onto List

Here is the near-magical part, upon which this whole workflow rests. 

 

I’ve combined some typed text with mapped fields from my previous Zap steps, to create a single item for my RSS feed. If you see that I added a time to the pubDate field, I don’t think it’s necessary but I may have added it after failing an RSS feed validation test.

Action: Storage by Zapier — Get List Values

Now that I’ve added an item to that list, I’ll retrieve the entire list:

 

This will give me a list of items, which I can then place into my Google Drive step (where the orange text and arrow are indicating, below). We’re almost done!

​​​​​​​Action: Google Drive — Replace File

Now’s the time to insert the output from my Get List Values step. If you remember way up at the top of this article, I included the basic text for your RSS feed. You can use that, delete the item that’s there and then insert that into your Zap step. 

Then, map the output of step as shown below and you’re good to go!

 

Wrapping Up

Whew! That was a lot, but I hope this has helped you to figure out whether using a Google Doc for your RSS feed is right for you, and if so, how to accomplish that (with a Zap yo automate the updating of the feed).


1 reply

Hey there, All.

I'm trying to do something similar. Create a RSS feed from a Google Sheet of store products.

However, I only want to include items with a price of $1,000, or higher.

I've created a filter. But, I'm getting backed up every time with lesser valued products. I feel like I've tried everything. Is this even possible?

Thank you for your help!

Reply