RSS Publish

Publishing RSS Feeds in CMS

netFORUM enables you to publish RSS feeds through your CMS beginning in the 2006 Q1 release of netFORUM. The RSS feeds will publish content driven from netFORUM, and direct users to web pages in your CMS. The netFORUM RSS publishing tools enable you to determine exactly which content you want to publish.

netFORUM offers you three avenues to publish or syndicate RSS content:

  • RSSPosting — This tool is the easiest to setup. It publishes CMS web postings.
  • RSSXmlBuilder — This RSS publishing tool is a little harder to setup but, but it enables you to publish content based on any data in netFORUM.
  • RSSXmlBuilderPlus — Building on RSSXmlBuilder, this RSS publishing tool allows for more personalized RSS feeds.

Each of these three RSS publishing methods is explained in greater detail below.

What is RSS?

RSS (Really Simple Syndication) is an XML-based format for sharing and distributing Web content, such as news headlines. Using an RSS reader, you can view data feeds from various news sources, such as www.abila.com, including headlines, summaries, and links to full stories.

How do I access RSS?

RSS/News Aggregators (also called Readers) will download and display RSS feeds for you. A number of free and commercial News Aggregators are available for download. Many aggregators are separate, "stand-alone" programs; other services will let you add RSS feeds to a Web page. When you see an RSS feed on a web page, you can simply copy-and-paste the URL below into your reader, or drag the XML icon into your reader.

How can I get an RSS Reader?

There are hundreds of desktop and web based RSS Readers you can download for free or for a fee. Here are a few from http://www.download.com and some recommended readers from Microsoft's developer network (MSDN).

Why Use RSS?

Many internet users prefer to keep tabs on news sites and other web sites using RSS instead of having to navigate to each and every site. Using RSS, you can reach people who might check their RSS feeds regularly for new content, but who might not take the time or effort to go to your website. When these users see some content that grabs them, then they will go to your site.

Plus, many RSS readers will alert you when new content is published. Your members and other visitors might not even know about the new content if they were not informed by their RSS reader.

Today, you reach your constituents through mail, fax, email, and your website. RSS simply offers you another way to reach people.

RSSPosting — Publish RSS Through Web Postings

Of the three netFORUM RSS publishing tools, RSSPosting is the simplest to get up and running. This publishing tool produces a RSS feed based on a CMS web posting category. The feed will include any web postings in that category that have been approved and published and have not expired yet. The hyperlink for the RSS item will go to a CMS web page that will output that web posting. The feed is engineered to comply with RSS 2.0 specifications.

To configure RSSPosting you must do the following setup in the netFORUM CMS.

Web Posting Category

First, select an existing web posting category, or create a new web posting category, that will be the focus of that RSS feed. The category code must not contain spaces or non-alphanumeric characters.

Web Posting Page

Next, create a page with the same pagecode/webcode as the posting category. The example below uses the web posting category called News:

On this page, in the form parameters textbox, you must enter "rss=yes;" somewhere (at the beginning, or after other parameters). Do remember to add the trailing semicolon. This has the effect of turning on this category as a RSS feed.

This page will need at least one List page detail that will output the content of a web posting. This is the page that the RSS feed will link to if a user clicks on the hyperlink in an RSS item. This is the web page that a user will actually view to read the web posting.

Here is a very basic example of a List content detail on the page:

Here is the List text:

{BeginListSQL}SELECT wps_html_description, wps_titleFROM md_web_posting (nolock) WHERE wps_key={wps_key}{EndListSQL} {BeginListDetail}<DIV class=PageTitle style="PADDING-LEFT: 10px; PADDING-BOTTOM: 8px">{wps_title}</DIV><DIV class=bodyTXT style="PADDING-LEFT: 10px; WIDTH: 98%; PADDING-TOP: 4px">{wps_html_description}</DIV>{EndListDetail}

Beginning in the 2006.01 build of netFORUM, in the RSS section of the eWebPlus site, Avectra has a sample page like the one above called News Posting. You may use this page as a template to create your own pages that are bound to each Web Posting Category. Additionally, there is a page called News Posting XSL (RSSPostXsl) which generates essentially the same output using the XslGenerator control.

When an actual web posting is loaded on this page, it would look like this:

Now, add one or more web postings linked to this posting category. Be sure that the web site to which you add the posting is the same web site as you added the page to in the step above. Update the approval and publish dates of the posting, setting them to be a few days in the past.

Publish the RSSPosting Feed

Your RSS feed is now ready to go. Next, we want to create the XML file that RSS readers will read. Open up the following URL:

http://www.mynetforumsite.org/public/rss/rssadmin.asmx

You will need to change www.mynetforumsite.org to the URL of your own site.

You will see an admin console similar to this:

Click the link for PublishRSSFeeds, and you will go to this page:

Press the Invoke button to generate the RSS feeds and publish them as XML files on your web server. Once these files exist, then people may add these files into their RSS readers.

A new page will pop up showing the results of the publishing, and any possible errors:

<?xml version="1.0" encoding="utf-8"?> <rsspublishresults><category><c0de>News</c0de><result>success</result><url>http://www.netforumsite.org/public/rss/feeds/News.xml</url></category><category><c0de>Events</c0de><result>success</result><url>http://www.netforumsite.org/public/rss/feeds/Events.xml</url></category> </rsspublishresults>

The results show the feed, the result (success or failure) the URL to the feed.

When you load this URL, you should see an XML feed. If you see empty item nodes, then be sure that your web postings have an approval and publish date before the current date, and that the remove date is empty or in the future. Also double check that you have a web page with a webcode with the same name as your posting category, and that you have entered "rss=yes;" somewhere in the form parameters field, and that the web postings are in the same website as the page.

Scheduling RSS Feed Updates

Once your RSS feed is going, you want it to be continually updated as new content is added and existing content is updated.

netFORUM contains an automatic scheduling engine that will re-publish these feeds on a set schedule, so that the feeds will contain up to date content. The scheduler will need to be turned on your web server. Contact an Avectra representative for more information.

The scheduler is called rssscheduler.exe and it is located in the /public/rss/ folder on the web server. It is run as a Windows Scheduled Task. In addition to setting the schedule, an important setting must be entered in the /public/rss/app.config file:

In this setting:

<add key="rssscheduler.RSSAdmin.Avectra netFORUM RSS Publishing Tools"value="http://www.mysite.org/netforum/public/rss/rssadmin.asmx"/>

The value should be the URL of the admin page that you loaded in the previous step.

In 2011.01, the configuration in app.config should be:

<configuration><configSections><sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" ><section name="Avectra.netForum.SchedulingEngine.RSSScheduler.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /></sectionGroup></configSections><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><applicationSettings><Avectra.netForum.SchedulingEngine.RSSScheduler.Properties.Settings><setting name="RSSScheduler_RSSAdminWS_Avectra_x0020_netFORUM_x0020_RSS_x0020_Publishing_x0020_Tools"serializeAs="String"><value>http://localhost/netForumEP/NFEP2011/Public/rss/rssadmin.asmx</value></setting></Avectra.netForum.SchedulingEngine.RSSScheduler.Properties.Settings></applicationSettings></configuration>

The property for <value> should be the URL of the rssadmin.asmx page. Depending on how often your content is updated, you could set the scheduling interval to run daily or even hourly; the actual publishing process takes only a few seconds in most cases. If you ever need to update your RSS feed immediately, then you can run the PublishRSSFeeds process described above to regenerate your RSS files immediately with updated content.

Validating Your RSS Feed

Validate your RSS Feed through the RSS Validator located here:

http://www.feedvalidator.org/

Try to resolve any errors it suggests. One common error is the "author", which must be in the form of "someone@somewhere.com (Name)" or "someone@somewhere.com". As explained below, this is not a serious error.

For more technical issues on RSS, see this link:

http://blogs.law.harvard.edu/tech/rss

Telling the World About Your RSS Feed

Once your feed is working and validated, you'll want to let your members and the public know about them.

You can do this easily by adding a new web page to your CMS site with a List page detail that outputs the list of RSS feeds. This way, if you ever publish new Feeds with a new web posting category, you will not need to update this page.

Here is the building block of a List content detail. You will need to manually change the [feedURL] values below to match your own site. You can do this based on the results in the <url> element of the publishing page. This List contains both RSSPosting feeds based on web postings, and the RSSXmlBuilder variety of feeds explained in a section below:

<!-- You will need to modify the URL in the [feedURL] to get the link to show correctly -->{BeginListSQL}SELECT [feedText] = wxm_web_method ,[feedURL] = 'http://www.mysite.org/public/rss/feeds/' + wxm_web_method + '.xml' FROM ws_web_service_method m (nolock) JOIN ws_web_service (nolock) ON wxs_key = wxm_wxs_key WHERE wxs_service_name = 'RSS' AND wxm_delete_flag = 0 UNION SELECT DISTINCT [feedText] = wpc_category,[feedURL] = 'http://www.mysite.org/public/rss/feeds/' + wpc_category + '.xml'FROM md_web_posting_category (nolock)JOIN md_web_content (nolock) ON wbc_code = wpc_categoryWHERE charindex( 'rss=yes;' , wbc_parameters) > 0AND wbc_delete_flag = 0 ORDER BY 1{EndListSQL}  <DIV class=PageTitle style="PADDING-LEFT: 10px; PADDING-BOTTOM: 8px">Our RSS Feeds</DIV><table>{BeginListDetail}<tr><td width="20%"><DIV class=tinyTXT style="PADDING-LEFT: 10px; WIDTH: 98%; PADDING-TOP: 4px">{feedText}</DIV></td><td  width="60%"><SPAN class="bodyTXT"><a _target="blank" href="{feedUrl}" class="bodyTXTbold">{feedUrl}</a></SPAN><LINK rel="alternate" TYPE="application/rss+xml" TITLE="{feedText}" HREF="{feedUrl}"></td><td  width="20%"><a _target="blank" href="{feedUrl}"><img border="0" src="images/img_rssxml.gif"></a></td></tr>{EndListDetail}</table><BR> {EndListDetail}

The standard eWebPlus site in netFORUM delivered in the 2006.01 build and later contains a template page called RSS Feeds Listing (RSSFeeds) for this purpose. The web code of this page is RSSFeeds and it looks like the screen shot below. The "Our RSS Feeds" is a page detail sandwiched between two HTML page details above and below it.

Once you have this page developed, you must add a link to it so users will navigate to it and add your feeds to their RSS readers. Many websites have the ubiquitous orange RSS links on their site menus on the footer of their site. Beginning with the 2006.01 build, the eweb site contains six small orange RSS, XML and POD images for this purpose:

/images/img_rss.gif

/images/img_rss_tiny.gif

/images/img_rss_xml.gif

/images/img_rss_xml_tiny.gif

/images/img_pod.gif

/images/img_pod_tiny.gif

The larger images are 14 pixels tall by 25 pixels wide, and the "tiny" versions are 10 pixels wide by 25 pixels wide.

Limiting Feeds to Members Only

RSS feeds cannot be restricted, but if the user clicks on a link to a page in a secured section (or if the page itself is secured), then they will be prompted to login.

Limiting the Size and Age of Feeds

By default, RSSPosting will publish the 30 most recent web postings in that category that are less than 90 days old. If you have many web postings, then the RSS feed will grow too large and cumbersome. Also, you might want to expire RSS items that are too old, but not enter a "remove date" on the posting as you still want to leave them on your website.

If you want to override these default settings, then in the form parameters of the web posting page, you may add the following:

rssdaysprune=n;

where n is the number of days to keep content in the RSS feed after the publish date of the web posting, and:

rssitemmax=n;

where n is the maximum number of items to publish in the RSS feed. You must enter the trailing semicolon after the integer number.

Most RSS feeds will contain anywhere from 5 to 20 items. Note that if you limit the number of items, then the RSSCat method will select and sort the items by publish date, from newest to oldest. This means that as new postings are published, the oldest will be dropped to make room for the new.

For example, if you want to keep items in the RSS feed for a maximum of 30 days after the publish date of the posting, and never publish more than ten items, then in the form parameters you will enter:

rss=yes;rssdaysprune=30;rssitemmax=10;

If you do not care about the age of postings, but you want to cap the number at 15, then enter this:

rss=yes;rssitemmax=15;rssdaysprune=9999;

If you are content to return at most 30 items, but you want to expire content after only 2 days, then enter:

rss=yes;rssdaysprune=2;

If you want to return a large number of items, then override the count at a very high number (Avectra generally does not recommend this):

rss=yes;rssitemmax=1000;rssdaysprune=9999;

As a best practice, Avectra recommends capping the items at around 10 to 15, and limiting the age of the postings to a reasonable date. If users see that the RSS feeds contain old content that they have seen before, they may start to ignore the feed.

Adding Additional Elements to the Channel Node

The RSS channel contains information about the feed, such as the title, description, link, language, copyright, etc. Many of these elements are optional. In the RSS 2.0 specification, only title, description and link are required; the RSSCat feed will automatically publish these three required fields. If desired, you may override them by adding additional form parameters to the web page in the format:

rss<<elementname>>=value;

For example, the default title will be the same code as the web posting category. If you wanted to change it, then you could enter in the form parameters:

rss=yes;rsstitle=Top Industry News;

If you wanted to add a language and copyright as well, then you would enter:

rss=yes;rsstitle=Top Industry News;rsslanguage=en-us;rsscopyright=Copyright 2005, XYZ;

Please see this web page below for a description of the other RSS channel elements. Note that some of these channel elements are in mixed case, and that these elements are case sensitive. Here is the link:

http://www.feedvalidator.org/docs/rss2.html

At this time, RSSPosting does not support the use of elements with subnodes, such as cloud, image and textInput.

Finally, bear in mind that the form parameters field is 500 characters long, which could limit long descriptions.

Elements of the Item Node

The item node in RSS contains each individual news item, which is generated based on a web posting. The elements that RSSPosting publishes are:

title - contains the value entered in the web posting "title".

link - contains the hyperlink to the eWeb page that will display the web posting.

description - contains the value entered in the "short description" of the web posting.

author - contains the value entered in the "author" of the web posting; if no value is entered, then the element is omitted. Proper RSS syntax requires this to be formatted like "someone@somewhere.com" or "someone@somewhere.com (Person Name)", although if you choose not to follow that syntax, most news readers will not have any problem with it. (For example, the New York Times publishes the "author" as "First Middle Last", which violates RSS 2.0 standards, and that does not seem to hurt them.)

category - the web posting category.

pubDate - the "publish date" of the web posting.

The comments, enclosure, guid and source elements are not used.

For example, observe this web posting:

Next, observe the <item> node for it in the RSS feed, and notice the link between the two. The "link" will be the hyperlink to the web page to display the web posting.

Using the RSSXmlBuilder Feature

The RSSXmlBuilder feature enables you to publish any kind of RSS feeds based on any sort of data in your netFORUM database. RSS feeds were originally developed for news, but RSS has evolved to encompass any kind of content you can imagine. For example, you can publish feeds for:

  • Committee rosters with links going to a page showing a roster of members on that committee
  • A listing of upcoming events, with each item link going to an event information page for each event
  • A feed showing discussion group threads
  • New Products, with a link to an information page, or an "add to cart" page
  • Personalized RSS feeds with a URL including a customerkey, so a user may view personalized data about their certifications or other information (just be certain to limit this to non-critical personal information and consider getting each user's consent to authorizing personalized RSS feeds)

Unlike web postings, the destination url in the link element of the RSS item node could be any page, and the content can be pulled from a variety of different tables. Publishing these kinds of RSS feeds requires more database and CMS expertise, consequently, but you may mine any part of the database.

To develop this kind of RSS feed, you must do the following.

Create a DynamicXmlBuilder web service definition. You may do this by navigating to:

Setup a Dynamic Xml Web Builder Service

Name the web service name and namespace "RSS". You must name it exactly "RSS".

Next, add a web method to the RSS web service, and check the allow anonymous access checkbox to enable this feed to be published.

You will then add a series of web service method nodes for rss, channel, item, and, optionally, image. When you are completed, the structure will look like this for an example of an RSS Feed called Events:

Each web service method node must return a record set with the elements needed for an RSS feed. Let's look at each of them one at a time.

rss node

The root node is rss and its definition is:

The node sql defines the rss root node and the version attribute:

select [rss~nodeattribute~version] = '2.0'

channel node

The channel node definition looks like this:

In the node sql you will simply hard code any channel elements you need:

SELECT[title] = 'XYZ Upcoming Events',[description] = 'Upcoming Events from XYZ',[link] = 'http://www.xyz.org',[LANGUAGE] = 'en-us'',[copyright] = 'Copyright 2005 XYZ, Inc.',[ttl] = 240

image node

The image node is optional; some RSS readers will display your corporate logo as a clickable image in RSS readers. The URL location of the image file is in the url element and the hyperlink it should go to is in the link element:

In the node sql of the image, you only need url, title and link:

SELECT[url] = 'http://www.xyz.org/eweb/Images/Powered_by05.gif',[title] = 'XYZ Inc.',[link] = 'http://www.xyz.org'

item node

Finally, we get to the most complex node, which is the item node. The item node should return a title, description, and link, and should also return a pubDate and any other item elements you wish. You are free to write any kind of SQL, including stored procedures, to assemble this data.

Here is an example of an item node that returns a list of events. The link will take the user to the online registration page. You might, alternatively, take the user to an event information page. For each RSSXmlBuilder method you create, you must design a corresponding CMS web page that will be the link.

Here is the node sql in this example. We recommend testing this first in a SQL Query Analyzer if possible:

SELECT [title] = evt_title, [description] = isnull(evt_short_description, 'Click link for more information.'), [link] = 'http://www.xyz.org/eweb/DynamicPage.aspx?webcode=EventInfo&action=add&evt_key=' + lower(convert  (varchar(36), evt_key)),  pubDate = [dbo].[fnRFC822Date] (isnull(evt_post_to_web_date , evt_add_date)) FROM ev_event (nolock) WHERE (evt_end_date> getdate()OR evt_end_date IS NULL) AND (evt_post_to_web_date IS NOT NULL AND evt_post_to_web_date <= getdate()) AND (evt_remove_from_web_date >= getdate() OR evt_remove_from_web_date IS NULL) ORDER BY evt_start_date

To help format the pubDate according to RSS RFC 822 standards, pass the DateTime column into the SQL User-Defined-Function called fnRFC822Date, as illustrated above. This UDF is contained in the netFORUM database. Note that this UDF returns the date with the GMT time zone. In most cases, you probably need not be concerned about the time difference, but if greater accuracy is required, then you may develop a more precise way of returning the pubDate. Since many of the datetime columns you will be using do not contain a time dimension anyway, this issue is often irrelevant.

Designating a XSL and CSS Style Sheet

In the root RSS node, you may add processing instructions for a XSL and CSS stylesheet. This can be useful as you can have a formatted RSS document that looks "normal" instead of looking like XML, in case a user should open the URL feed in their browser. You can do this as shown here:

The syntax here is tricky. Let's look at the first processing instruction:

[~PI~a] = 'target|xml;data|version="1.0" encoding="UTF-8"'

The column alias must contain: ~PI~. This is the notation for "processing instruction". You may add whatever you like after the second tilde (~). The letters a, b, and c are purely for differentiating each.

The result returned by the column must have the keywords of target and data, separated by a semicolon. The pipe character (|) must follow the keyword target or data, with the actual value of the data following the pipe character. The target can be xml or xml-stylesheet or any other allowable target. The data must be the data you want to supply to the target. The example above, for example, will result in the following:

<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="av_rss.xsl"?> <?xml-stylesheet type="text/css" href="netFORUM.css"?> <rss version="2.0"> <channel>…

Obviously, the href locations you supply must have the actual documents relative to where the feed is being loaded. To be safe, you should probably enter absolute URLs.

At this time, the RSS Feeds based on web postings do not support this feature.

Publishing RSSXmlBuilder

These feeds are published the same way as RSSPosting, as described earlier.

Ending or Removing RSS Feeds

If you wish to end a RSSPosting RSS Feed, you should go to the web page and change the form parameters from "rss=yes;" to "rss=no;". If you ever want to turn the page back on, then you can just change it back to "rss=yes;". To end an RSSXmlBuilder feed, you may un-check the allow anonymous access checkbox.

The physical XML file will still be on the webserver, however, so those users who were consuming the feed at one time will still be able to view the feed in their RSS Reader, even if the feed never updates. If you need to delete the feed, then this must be done manually in the file server.

In practice, if you really need to end a feed, we recommend keeping a single web posting alerting people, or change the channel title or description to alert the consumers of this feed that it has been ended.

Using the RSSXmlBuilderPlus Feature

Note: this feature is temporarily disabled in 2006.02.

RSSXmlBuilderPlus goes beyond the RSSXmlBuilder to allow for dynamic RSS feeds that accept parameters that allow for more tailored RSS feeds.

RSSXmlBuilder RSS feeds are static in the sense that everyone who subscribes to this feed will be delivered the exact same content.

RSSXmlBuilderPlus RSS feeds, by contrast, can deliver different content to different subscribers based on parameters.

Imagine this RSS feed:

http://www.mysite.org/public/rss/feeds/committeenews.xml

Just by looking at the URL, you can deduce that this is a static file.

Now, look at these links:

http://www.mysite.org/public/rss/feeds/rss.asmx/RSSFeed?FeedName=RSSXYZ&FeedMethod=committeeminutes%26cmt_key%383dd6469-7530-4669-95d3-b82b08bee5a4

http://www.mysite.org/public/rss/feeds/rss.asmx/RSSFeed?FeedName=RSSCert&FeedMethod=roadmap%26cst_key%39635da65-11a9-482c-9aea-a5bd440b3449

The two hyperlinks above do not point to a static XML file, but to a web service. You can tell this by the "rss.asmx" page, which signifies that the link is to a web service. Next, we see parameters for FeedName and FeedMethod. These tells us the DynamicXmlBuilder web service name and method, respectively. Last, we see a querystring parameter for cmt_key for the first link and cst_key for the second link. These parameters will direct the web service to return only the minutes for a single committee, and only the certification road map for a single person (based on that person's cst_key).

Let's take a look at the first example. For this RSS feed, we want to return committee minutes for a single committee. This way, a subscriber could have feed that returns only the minutes for the committees on which he or she belongs.

Here is the Dynamic Xml Builder web service and web method:

To avoid mixing these RSS feeds up with the RSSXmlBuilder feeds, you must not call the web service name "rss". Name it anything but that.

Look carefully at the channel node. This is very similar to the channel mode illustrated in RSSXmlBuilder except for the last line of the node sql:

The record set is return a column alias:

[_cmt_key] = {cmt_key}

The value of {cmt_key} is coming from the URL querystring parameter, and it is returning it to the [_cmt_key] column in the recordset.

Next, look at the item node:

Note the WHERE clause in the node sql:

WHERE cmn_cmt_key = {_cmt_key}

The parsed value of {_cmt_key} is taken from the parent row in the channel, enabling you to write a SQL Select statement that will return committee minutes only for the single committee.

This principle can be used to create any other personalized RSS feeds. You can pass in parameters based on event type, customer key, geographic state or region, or any other sort of syndicated content that is appropriate for dividing in this manner. The parameter name must start with a 3 letter prefix not used by netFORUM. It is recommended you use something with a number like a01 or a99 or rs1 or fd1. You can use rss as long as that doesn't become a prefix in netFORUM in the future.

Publishing the RSSXmlBuilderPlus RSS Feeds

Unlike the RSSPosting and RSSXmlBuilder RSS feeds, this type of feed does not exist as a static XML file. Instead, it is called through a web service. The URL will be:

http://www.mysite.orgPublic/rss/rss.asmx/RSSFeed?FeedName=RSSXYZ&FeedMethod=committeeminutes%26cmt_key%3De272f1b1-2674-42e8-873e-d0d91ff92c57

Note that the URL Querystring parameters for FeedName and FeedMethod correspond to the Dynamic Xml Builder's web service name and web method respectively. Directly after the value of the FeedMethod, you then need to add additional ampersands in the URL-encoded syntax of "%26" and any equal signs in the URL-encoded characters "%3D". If you simply use the ampersand and = symbols, then the web service will not work.

Here is the XML returned by this web service:

In order to tell people about these RSS feeds, you must broadcast them in emails or on your web pages. The RSS listing page displayed above will NOT show these sorts of feeds as these feeds have personalized content. You will need to build web pages or emails that define them correctly.

Although it will take more work and design to generate and publish RSSXmlBuilderPlus feeds, they offer you a powerful way to syndicate targeted and personalized content to your members.

Other Possibilities of RSSXmlBuilderPlus

Here are some more general personalized feeds:

  • Events by State — if you host many events, a single event RSS feed may be overwhelming; consider having a feed for events by state
  • Committee Minutes or meetings
  • Discussion Group threads

Here are some ideas for individual-oriented personalized feeds. Each of these feeds would need to contain a customer key:

  • Certification milestones
  • Status of product fulfillment or events registration
  • Events at which I am presenting or speaking
  • Status of my abstract submissions
  • Any other possibility, taking care to shield confidential data

[Security Concerns with RSSXmlBuilderPlus

You need to take care with publishing confidential, personal or restricted data with these feeds. For example, if you have a personalized feed that shows confidential information, you run the risk that someone could forward the personalized RSS URL, or figure out how to change the URL querystring parameters to return data that should not be seen by them.

Therefore, for any personalized RSS feed you create, assume the worst, and don't publish any information that you would not want the wrong person to see. For these scenarios, you should direct the person to the website where they can log in and view and manage this data in a controlled and more secure setting.

If you do choose to publish any individual data, you might consider a page that asks the user to confirm that they have agreed to use the RSS Feed only for their own use and that they have agreed to do so. Only then will you output the personalized RSS hyperlink.

To keep the feed even safer, you might want to consider a querystring that includes both a customer key and a second field (such as customer ID or their hashed web password) to prevent people from trying to change the URL querystring parameters to surreptitiously get at other people's information.