Newsfeed
Introduction
The Newsfeed product integration lets you add one or more feeds, either as RSS feeds or API endpoints, to a Newsfeed page. Users can access this page from a tile on the homepage. The main page of the Newsfeed UI displays the headlines of the items, which it receives from the linked feeds. Users can select these items to view their full content in a Details page. This feature can be used, for example, to incorporate headlines from two feeds, one an RSS feed of breaking stories from a general news agency, and the other an internal news feed from your organization, supplied via an API endpoint and introducing new developments on campus.
Data Sources
Currently, the Newsfeed product integration supports two different data sources for the newsfeeds displayed:
-
- Importing newsfeeds from one or more RSS feeds (see Importing Newsfeeds from an RSS Feed, below).
- Importing newsfeeds from one or more RESTful API endpoints (see Importing Newsfeeds from a JSON API, below).
User Experience
End-users open the main page of the Newsfeed from a Newsfeed tile in the homepage. Initially, the latest items from all of the feeds included in the Newsfeed are displayed, divided into pages, as necessary, depending on how many items there are and on the number of items per page defined in the Newsfeed's configuration (under General > Items Per Page). Users can select individual items in the main page to open their full contents.
Above each item in the main page, the title of its feed appears. When a Newsfeed contains multiple feeds, the feed titles are color-coded to help users differentiate between them.
Newsfeeds are automatically refreshed every five minutes. Users can also refresh them manually at any time – on mobile devices, by selecting Refresh (), and in the Web app, by refreshing the page.
In the main page, users can also search for items, mark items as favorites, show only items that have already been marked as favorites, filter the main page by choosing which feeds to include, and choose a different date to view. These options are described below.
Searching for Items
Users can search for strings of text in the titles of the items currently included in the Newsfeed. The search includes the title of the feed and the title and author of the item, but not the publication information. As the search string is entered, the list of items in the main page is automatically filtered to only include those items that contain the string.
- At the top of the list of items, select Search (
). The Search field opens above the list of items.
- Enter the search string to search for. The search is implemented as you type.
Search Implemented
To clear the search filter, select the . To hide the Search field, select Search (
).
Working with Favorites
Users can mark individual feed items as favorites. When an item is marked as a favorite, it is saved in the system, and remains available even when it is no longer in the current feed. Users can find it later on by turning on the Favorites filter.
- Above the item's title, select the Favorite icon (
). The icon is selected (
).
- At the top of the list of items, select Favorites (
). Only items marked as favorites are displayed.
Filtering by Feed
If multiple feeds are incorporated into the Newsfeed, end-users can filter the display in the main page by selecting which feeds to include.
- Select
. The Filter By page opens.
- Select the checkboxes of the feeds to include in the display.
- Select Show items. The Filter By page closes and the main page is displayed with only items from the selected feeds included in it.
- At the top of the page, select the feeds to display. (If no feeds are selected, all are displayed.)
Choosing a Different Date
Users can choose to see feed items from a previous date or range of dates.
- Select
. A date-picker calendar opens.
- Select a single date to view items from that date. Select two dates to view items from the range of dates from the first selected through the second date. Note that if you select a third date, the first two date selections are cleared.
- Select Show items. If items from the selected date(s) are available, they are displayed in the main page.
- Select
to open the date-picker calendar.
- Select Clear.
- Select Show items. The main page opens with the current newsfeed items displayed.
Authentication
No authentication is required by default. If a specific feed requires authentication, the feed can be configured to provide the necessary credentials when the PI sends its requests to the feed server.
Offline Support
There is no caching of data on the client, except for any local bookmarks the end-user may have saved on their device.
Technical Overview
The Newsfeed product integration can be configured to receive feed input from RSS and JSON feeds. When the Newsfeed page is open in the end-user app, the PI sends requests for feeds to the feed servers it is configured to work with. The servers must respond by sending feed information in the format the PI is configured to handle.
The most basic requirement is that every feed must provide values for the following mandatory fields:
- title – Item title
- pubDate – Item publication date
If a feed will contain additional fields, and you want them to be displayed to the end-user, you can configure the feed settings to bring this about. A number of optional fields exist in the feeds' configuration settings for this purpose, and additional fields can be added to the settings if needed. This enables you to configure Newsfeeds to receive and display a broad range of text, links, and images. Some of these components are displayed in the main feed page, while others are placed in the Details pages of the feed items.
In addition, every feed must have the Publication Date Format field of the configuration (see Fields, below) defined as required by the feed server. It is often necessary to modify the default setting of this field.
For details about configuring feed settings, see Configuration, below.
Importing Newsfeeds from an RSS Feed
In order to be handled by the Newsfeed PI, an RSS feed need only meet the general requirements described. No additional requirements specific to RSS feeds exist.
For most RSS feeds, the value of the Publication Date Format field of the configuration (see Fields, below) must be adjusted, as the default setting will not work correctly. We recommend the following format: E, d MMM yyyy HH:mm:ss z.
The following is an example of a valid RSS feed that could be received from a feed server:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Example RSS Feed</title>
<link>https://www.example.com</link>
<description>This is an example RSS feed.</description>
<item>
<title>Sample Article</title>
<link>https://www.example.com/sample-article</link>
<description>This is a sample article.</description>
<pubDate>Wed, 04 Sep 2023 12:00:00 GMT</pubDate>
</item>
</channel>
</rss>
Importing Newsfeeds from a JSON API
In addition to the general requirements described above, JSON APIs must also meet the following conditions:
- Return the feed title in a srcTitle field. (This is not required for RSS feeds, because the RSS XML always includes it in any case – under channel > title.)
- Return all news items in an array. (This matches the RSS XML feed structure.) The API structure does not support responses that do not return an array of results.
The following is an example of a valid JSON API response:
[
{
"title": "Sample Item #1",
"description": "This is a nice to have.",
"pubDate": "2025-01-20T09:00:00.000+00:00",
"link": "https://www.google.co.uk",
"srcTitle": "Sample Feed"
},
{
"title": "Sample Item #2",
"description": "This is another nice to have.",
"pubDate": "2025-01-20T11:00:00.000+00:00",
"link": "https://www.google.co.uk",
"srcTitle": "Sample Feed"
},
{
"title": "Sample Item #3",
"description": "This is wonderful to have.",
"pubDate": "2025-01-22T09:00:00.000+00:00",
"link": "https://www.google.co.uk",
"encoded": "This is just an additional field",
"srcTitle": "Sample Feed"
}
]
Configuration
This section explains how to create a Newsfeed product integration and configure it.
- In the App Manager, select Product Integrations. The Product Integration Instances page opens.
- Select Add Product Integration Instance. A Product Integration Type list opens.
- Select Newsfeed. The Manage Integration page opens.
- Configure the settings as explained under Fields, below.
- To save the settings you have configured, select Save or Save and Continue Editing.
Fields
The following table describes the configuration options available for the Newsfeed product integration. Fields that are marked as Required ("Yes" in the Required column) must be configured by the admin in the settings (even if they have a default setting, as the URL to retrieve the information field does – the default value is just an example).
Many fields that are not required ("No" in the Required column) are active by default and have default values. This means that if a feed item contains values for these fields, they are displayed in the app. For example, by default the optional field Description is active (the Display Description checkbox is selected), and the Description field has the value description. If a feed item contains a value for a description field, that value is displayed for the item in the app. If you do not want this field to be displayed, you must change the default setting. That is, in our example, you must clear the Display Description checkbox.
Configuration Option | Description | Required | Data Type | Default | Example |
---|---|---|---|---|---|
Manage Integration | |||||
Enable Product Integration | Select to enable this instance of the product integration on end-users' apps. | No | Checkbox | Unchecked | |
Product Integration Description | A description of this instance of the product integration for internal use. | Yes | String | Newsfeed | |
Screen Title | The title that appears in the header of this instance in end-users' apps. | No | String | Newsfeed | |
RSS Feeds / JSON Endpoints | |||||
Test RSS Feed and JSON Endpoint Connections | Once you have configured one or more RSS feeds and JSON API endpoints, and saved the settings, select this option to test the connections you configured. A window opens and displays the test results – whether the connection attempts were successful, and what responses were received. See also, Adding a Product Integration. | ||||
List Of Feeds | This section contains the configuration settings for the RSS feeds from which to retrieve news items. | No | List | ||
List Of Endpoints | This section contains the configuration settings for the JSON endpoints from which to retrieve news items. | No | List | ||
RSS Feed Configuration / JSON Endpoint Configuration API Configuration |
|||||
URL to retrieve the information |
The URL to connect to in order to retrieve the feed items. The base URL should include path parameters, if any are required. If any of these parameters are programmable, they should also be defined under URL Path Parameters. Note that the default value of this field must be changed to the correct URL for the feed. |
Yes | URI | https://myDomain.com | |
URL Query Parameters | A list of additional query parameters required by the feed. Select Add Query Parameter to add a parameter to the list, and then fill in the fields as specified below. | No | List | ||
Parameter Name | Enter the query parameter name as specified in the base URL. For example, if the URL is https://someHostName/serviceName?username=1234, the parameter name is username. |
No | String | username | |
Parameter Type |
The Query Parameter type: Username, Token Property, or Constant. Select Username to use the username attribute associated with the end-user. If you select Token Property or Constant, an additional field is added (see below), in which you can enter the name of the token property or the value of the constant. |
No | Object | Username | |
Token Property Name | For Parameter Type Token Property, enter the name of the property to retrieve from the token – e.g., USERNAME, MAIL, or another name that is defined in the integration profile. | No | String | USERNAME | |
Constant Value | For Parameter Type Constant, enter the value to use. | No | String | ||
URL Path Parameters | A list of the programmable path parameters from the path parameters that were included in the URL specified under URL to retrieve the information. Select Add Path Parameter to add a parameter to the list, and then fill in the fields as specified below. | No | List | ||
Parameter Name | Enter the path parameter name as specified in the base URL (under URL to retrieve the information). For example, if the URL is https://someHostName/serviceName/username, the parameter name (to replace with the actual value) is username. |
No | String | username | |
Parameter Type |
The Path Parameter type: Username, Token Property, or Constant. Select Username to use the username attribute associated with the end-user. If you select Token Property or Constant, an additional field is added (see below), in which you can enter the name of the token property or the value of the constant. |
No | Object | Username | |
Token Property Name | For Parameter Type Token Property, enter the name of the property to retrieve from the token – e.g., USERNAME, MAIL, or another name that is defined in the integration profile. | No | String | USERNAME | |
Constant Value | For Parameter Type Constant, enter the value to use. | No | String | ||
General Headers |
Any additional headers required by the feed. Select Add Header Item to add a header. The Header Key and Header Value fields are added to the settings. |
No | Object | ||
Header Key | The key of the header item. | No | String | ||
Header Value | The value of the header item. | No | String | ||
API Authentication | |||||
Authentication Type |
Defines the authentication required for this feed, if any. When you select an option, the fields required to configure it are added. In addition, for each field, select Cancel editing to prevent the end-user from editing the credentials manually. Select one of the following options:
|
No | Dropdown list | No Auth | |
Fields | |||||
Override Feed Label | Select this option if you want to display a different feed title in the app rather than the one returned by the RSS feed. The Text - "Custom Field Label" field is added to the page. | No | Checkbox | ||
Text - "Custom Feed Label" | Enter the feed title to use instead of the one returned by the RSS feed. | No | String | ||
Mandatory Fields | |||||
Title | The name of the field in the feed code containing the title of the news item. | No | String | title | |
Publication Date | The name of the field in the feed code containing the date the item was published. | No | String | pubDate | |
Publication Date Format (Server) |
The Java-compatible format in which the publication date should be returned in the response from the server. For most RSS feeds, the default value must be modified. We recommend using the following format: E, d MMM yyyy HH:mm:ss z. |
No | String | yyyy-MM-dd'T'HH:mm:ss.SSSXXX | |
Non Mandatory Fields | |||||
Display Description | Select this checkbox to include the contents of the item's description field in the display in the app, if one is included in the response from the server. | No | Checkbox | Checked | |
Description | The name of the field in the feed code containing the description of the news item. | No | String | description | |
Display Image | Select this checkbox to include any images linked in the response from the server in the display in the app. | No | Checkbox | Checked | |
Image | The name of the field in the feed code containing the link to the image. | No | String | image | |
Image Alt Text | Alternative text for the image. If not provided or available, this will be autogenerated for accessibility. | No | String | imageAltText | |
Display Link To Item | Select this checkbox to include links in the response from the server in the display in the app. | No | Checkbox | Checked | |
Link To Item | The name of the field in the feed code containing the link. | No | String | link | |
Additional Fields |
A list of additional fields that may be appear in the feed's code. When these fields appear in the feed, they are displayed in the item's Detail's page. Select Add Item to add a field to the list, and then fill in the fields as specified below. |
No | List | ||
Code | The name of the additional field in the feed code. | No | String | creator | |
Label | The label of the additional code. | No | String | Creator | |
Expect HTML Content |
Select this option if the value sent by the server for this field will be in HTML, so that the PI will render the field properly. When this checkbox is cleared, the PI treates the values as plain text. |
No | Checkbox | Unchecked | |
Display Source Title | If enabled, will display the title, if available, of the feed itself. | No | Checkbox | Unchecked | |
Display Source Description | If enabled, will display the description, if available, of the feed itself. | No | Checkbox | Unchecked | |
Display Source Link | If enabled, will add alink, if available, to the feed's title and/or description. | No | Checkbox | Unchecked | |
Timezone Conversion | If the publication date is adjusted for a timezone that isn't UTC, select the timezone from the list. | No | Dropdown list | UTC | |
General | |||||
News Feed Home Page Image | Used in the "hero" header visible on wider displays. | No | URI | https://defaultImage.jpg | |
Enable Bookmarks | If enabled, allows the user to bookmark news items on their local device, until removed from the feed itself. | No | Checkbox | Checked | |
Items Per Page | Determines how many items are shown on the Newsfeed main page at once. Maximum of 100. | No | Integer | 20 | |
Default Locale | Used in date / datetime presentation. | No | String | en-gb | |
Date Format (short) | Used in the date filter. | No | String | LL | |
DateTime Format (short) | Used on the news item cards in the main page. | No | String | llll | |
DateTime Format (long) | Used on the details page for a news item. | No | String | LLLL | |
Text/Labels | |||||
Main Page Title | No | String | Browse Newsfeeds | ||
Main Page Subtitle | No | String | Immerse yourself in news near to you, or news far away, on a variety of subjects | ||
Filters Title | No | String | Select a feed, or more than one | ||
Main Page Tag Line | No | String | Check out the latest news | ||
Showing Text | No | String | Showing: | ||
Navigation Bar 'Page' Text | No | String | Page | ||
Published At Text | No | String | Published at: | ||
All Items Text | No | String | All items | ||
Filter / Search Result Text | %1 will be replaced with the number in question. | No | String | %1 result | |
Filter / Search Results (Plural) Text | %1 will be replaced with the number in question. | No | String | %1 results | |
Bookmark Text | %1 will be replaced with the number in question. | No | String | 1% bookmark | |
Bookmarks (Plural) Text | %1 will be replaced with the number in question. | No | String | 1% bookmarks | |
All Bookmarks Text | No | String | All bookmarks | ||
Select Dates Text | No | String | Select dates | ||
Filters Tab Title | No | String | Filter By | ||
Clear Button Text | No | String | Clear | ||
Show Items Button Text | No | String | Show items | ||
'Published On' Label | No | String | Published On | ||
'Description' Label | No | String | Description | ||
'Source' Label | No | String | Source | ||
'Link to article' Text | No | String | Link to article | ||
No Items Found Text | No | String | No news items found. Keep digging! | ||
No Items Found Subtitle Text | No | String | Clear your filters if you have any, including the date filter, and try again. | ||
Import/Export Configuration You can configure product integration and then export it to another campusM environment, for example, from sandbox to production or from preview to production. |
|||||
Import your configuration file here | To import the configuration settings from a JSON file of a previously exported product integration, select Choose File to choose the file to load. Then, select Import Configuration to import the settings. | No | |||
Import Configuration | After selecting the JSON file to import, select this option to load the configuration settings from the file. | No | |||
Export Configuration | To export the current settings of the product integration as a JSON file, select this option. | No |