# Setting Up MSN RSS Feed with Outbound Feeds

Source: https://dev.arcxp.com/arc-io/developer-docs/setting-up-msn-rss-feed-with-outbound-feeds/

The MSN RSS block is an out-of-the-box template that uses custom fields to quickly and easily set up, configure and manage your feed.

## Feed Setup

The MSN RSS feed is a platform level Arc feed block with configurable and customizable parameters.

See [How to set up and configure an Outbound Feed](https://dev.arcxp.com/arc-io/developer-docs/how-to-set-up-and-configure-an-outbound-feed/) to configure the MSN RSS feed.

## Channel Configuration

### 1\. **RSS Title**

Value for RSS title.

default: `feedTitle environment value`

### 2\. **RSS Description**

Value for RSS description.

default: `feedTitle + " News Feed"`

### 3\. **RSS Language**

Value for RSS language using an [ISO-639](https://www.rssboard.org/rss-language-codes) value. If left blank it will default to the value of feedLanguage set in your blocks.json. The tag can be removed by entering “Exclude” in the field.

default: `blank (uses feedLanguage)`

### 4\. **Copyright**

Optional value for copyright.

default: `no copyright`

### 5\. **Time to Live**

Suggested number of minutes that the consumer could cache the results.

default: `1`

### 6\. **Update Period**

Used in combination with Update Frequency, this is the unit of time. If Excluded both Update Period and Update Frequency will be excluded from the feed.

Select one: hourly, daily, weekly, monthly, yearly or Exclude field

default: `hourly`

### 7\. **Update Frequency**

Used in combination with Update Period, this is the interval expressed as an integer. Combining the two default values results in 1 hour. A suggestion for how often the page is requested.

default: `1`

### 8\. **Category**

Optional string value for a category to describe the RSS feed.

default: `no category`

### 9\. **Logo URL**

Optional fully qualified URL of an image to use as the logo for the RSS feed.

default: `no logo`

## Item Configuration

### 1\. **Title**

Arc XP Native Specification (ANS) field(s) to use for the article headline, supports a JMESPath statement.

default: `headlines.basic`

### 2\. **Description**

ANS field(s) to use for the article description, supports a JMESPath statement.

default: `description.basic`

### 3\. **Publication Date**

ANS date field to display.

Select one: `created_date`, `display_date`, `first_publish_date`, **`last_updated_date`**, or **`publish_date`**.

default: `display_date`

### 4\. **ANS credits key**

ANS field to use for the article credits `<dc:creator>`, supports a JMESPath statement. Multiple authors will be joined with a comma.

default: `credits.by[].name`

### 5\. **Category**

Optional ANS field(s) to use for the article category, supports a JMESPath statement.

default: `no category`

### 6\. **Number of paragraphs to include**

Number of paragraphs of the article body to include. Value ranges from 0 to 10, or all.

default: `all`

## Featured Image Configuration

### 1\. **Path to promo\_items**

ANS field to use for the featured image, supports a JMESPath statement.

default: `promo_items.basic || promo_items.lead_art`

### 2\. **Image height and or width**

A set of key value pairs where you can set an integer height and or width to resize all images. Zero means no resizing will be performed.

default: `height: 0, width: 0`

### 3\. **ANS image title key**

ANS field for the promo\_items title.

default: `title`

### 4\. **ANS image caption key**

ANS field for the promo\_items caption.

default: `caption`

### 5\. **ANS image credits key**

ANS field for the promo\_items credits.

default: `credits.by[].name`

## Video

### **Video encoding**

A set of key value pairs to select the video encoding you want to use in the feed. It filters the video streams array using the provided keys and values to choose an encoding.

default: `bitrate: 2000, stream_type: mp4`

## Resolver Configuration

Each feed template needs to have a resolver applied. To [create a resolver](https://dev.arcxp.com/arc-io/developer-docs/setting-up-resolvers-for-outbound-feeds/), you must configure the following fields:

### 1\. **Resolver Name**

Unique name given to the resolver

### 2\. **Resolver Priority**

Number to indicate priority order regex will be evaluated in (1 to 100). Lower numbers are evaluated first.

### 3\. **Regex Pattern**

```regex
^/arc/outboundfeeds/msn/?$|
^/arc/outboundfeeds/msn/category/(.*)/?$|
^/arc/outboundfeeds/msn/author/(.*)/?$|
^/arc/outboundfeeds/msn/keyword/(.*)/?$|
^/arc/outboundfeeds/msn/tags/(.*)/?$|
^/arc/outboundfeeds/msn/tags_slug/(.*)/?$
```

### 4\. **URL Parameters**

![URL Parameters](https://dev.arcxp.com/_astro/KB0010290-1.D3GS9Xkc_Z1hOlOU.webp)

### 5\. **Websites**

all

### 6\. **Content Source**

feeds-content-api

There are also two optional content sources available out-of-the-box. See [Content sources with Outbound Feeds](https://dev.arcxp.com/arc-io/developer-docs/content-sources-with-outbound-feeds/) for more information.

### 7\. **Patterns**

These positions come from the regex pattern. There are a number of ways to pass a section (or author, keyword or tag) to the content source from the resolver. All of them use a grouping () in the regex.

**Section** \- Pattern 1

```regex
^/arc/outboundfeeds/msn/?$|
^/arc/outboundfeeds/msn/category/(.*)/?$|
^/arc/outboundfeeds/msn/author/(.*)/?$|
^/arc/outboundfeeds/msn/keyword/(.*)/?$|
^/arc/outboundfeeds/msn/tags/(.*)/?$|
^/arc/outboundfeeds/msn/tags_slug/(.*)/?$
```

**Author** \- Pattern 2

```regex
^/arc/outboundfeeds/msn/?$|
^/arc/outboundfeeds/msn/category/(.*)/?$|
^/arc/outboundfeeds/msn/author/(.*)/?$|
^/arc/outboundfeeds/msn/keyword/(.*)/?$|
^/arc/outboundfeeds/msn/tags/(.*)/?$|
^/arc/outboundfeeds/msn/tags_slug/(.*)/?$
```

**Keywords** \- Pattern 3

```regex
^/arc/outboundfeeds/google-news-feed/?$|
^/arc/outboundfeeds/google-news-feed/category/(.*)/?$|
^/arc/outboundfeeds/google-news-feed/author/(.*)/?$|
^/arc/outboundfeeds/google-news-feed/keyword/(.*)/?$|
^/arc/outboundfeeds/google-news-feed/tags/(.*)/?$|
^/arc/outboundfeeds/google-news-feed/tags_slug/(.*)/?$
```

**Tags - Text** \- Pattern 4

```regex
^/arc/outboundfeeds/msn/?$|
^/arc/outboundfeeds/msn/category/(.*)/?$|
^/arc/outboundfeeds/msn/author/(.*)/?$|
^/arc/outboundfeeds/msn/keyword/(.*)/?$|
^/arc/outboundfeeds/msn/tags/(.*)/?$|
^/arc/outboundfeeds/msn/tags_slug/(.*)/?$
```

**Tags - Slug** \- Pattern 5

```regex
^/arc/outboundfeeds/msn/?$|
^/arc/outboundfeeds/msn/category/(.*)/?$|
^/arc/outboundfeeds/msn/author/(.*)/?$|
^/arc/outboundfeeds/msn/keyword/(.*)/?$|
^/arc/outboundfeeds/msn/tags/(.*)/?$|
^/arc/outboundfeeds/msn/tags_slug/(.*)/?$
```

**Include - Terms**

If you don’t want to use the default query you can enter a query here. It must be an array formatted like `[{“term”:{“type”: “story”}},{“range”:{“display_date:{“gte”:“now-2d”,“lte”:“now”}}}]`. For more details on custom queries, see [How to create a custom query with Outbound Feeds](https://dev.arcxp.com/arc-io/developer-docs/how-to-create-a-custom-query-with-outbound-feeds/).

**Exclude - Terms**

If you need to exclude terms in your query, i.e. NOT, enter them here as an array formatted the same as the Include-Terms. For example to exclude all content with language “es” you would use `[{“term”:{“language”: “es”}}]`. For more details on custom queries, see [How to create a custom query with Outbound Feeds](https://dev.arcxp.com/arc-io/developer-docs/how-to-create-a-custom-query-with-outbound-feeds/).

**Exclude - Sections**

You can enter a comma separated list of sections to exclude. For example `/premium`,`/paid-content`.

**Feed - Size**

Integer 1 to 100\. Defaults to 100\. If you added a size URL parameter, select the parameter option and select size and enter a default value.

**Feed - Offset**

Integer. Defaults to `0`. If you added a from URL parameter, select the parameter option and select from and enter a default value.

**Sort** **\-** publish\_date:desc

If left blank it will default to `publish_date:desc`. Which ever date field you selected to display for the Published Date is the date you should enter here. The format is `date_field` \+ `:` \+ `sort order` (`desc` or `asc`). Valid date fields are `created_date`, `display_date`, `first_publish_date`, `last_updated_date`, or `publish_date`.

**Source-Exclude** \- A comma separated list of ANS fields to remove from the default list of ANS fields. See the default list of fields on [Content sources with Outbound Feeds](https://dev.arcxp.com/arc-io/developer-docs/content-sources-with-outbound-feeds/#included-data).

**Source - Include** \- A comma separated list of ANS fields to add to the default list of ANS fields. See the default list of fields on [Content sources with Outbound Feeds](https://dev.arcxp.com/arc-io/developer-docs/content-sources-with-outbound-feeds/#included-data).

**Include - Distributor - Name**

If you only want content from a single distributor, enter the name here. You may only populate one distributor field.

**Exclude - Distributor - Name**

If you want to exclude content from a single distributor, enter the name here. You may only populate one distributor field.

**Include - Distributor - Category**

If you only want content from a single distributor category, enter the name here. You may only populate one distributor field.

**Exclude - Distributor - Category**

If you want to exclude content from a single distributor category, enter the name here. You may only populate one distributor field.

### 8\. **Default Template**

Select the msn-feed template to apply resolver.

### 9\. **Default output type**

Select xml.

### 10\. **Content Mapped Template**

blank

## MSN RSS URL

To preview your MSN RSS XML, modify the URL below with your client org and website name.

```
https://outboundfeeds.{CLIENTORG}.arcpublishing.com/pf/arc/outboundfeeds/msn/?_website={CLIENTWEBSITE}
```

![MSN RSS XML file](https://dev.arcxp.com/_astro/KB0010290-2.DGhYn4i7_1HnYvo.webp)

## Additional Information

- [How to set up and configure an Outbound Feed](https://dev.arcxp.com/arc-io/developer-docs/how-to-set-up-and-configure-an-outbound-feed/)
- [Content sources with Outbound Feeds](https://dev.arcxp.com/arc-io/developer-docs/content-sources-with-outbound-feeds/)
- [How to use Jmespath to map to custom fields ANS values in Outbound Feeds](https://dev.arcxp.com/arc-io/developer-docs/how-to-use-jmespath-to-map-to-customfields-ans-values-in-outbound-feeds/)
- [Setting up resolvers for Outbound Feeds](https://dev.arcxp.com/arc-io/developer-docs/setting-up-resolvers-for-outbound-feeds/)
- [Regex Debugger](https://regex101.com/)
