Feeds and status pages
A channel can follow a blog, a YouTube channel, a podcast, a status page or a subreddit. Each new item posts as a card from the feed's own bot.
Before you start
- Plans. Available on the Ministry, Creator and Business plans (Ministry and Creator: up to 25 feeds per org, Business: 50). Self-hosted servers have every feature on.
- Who. The Manage integrations permission (Owners, Admins, or a custom role that grants it). The channel must be a text channel you can post in.
- What it reads. Anything that publishes RSS, Atom or JSON Feed, on the public internet.
Follow a feed
- Open Org Settings → Integrations → Feeds → Follow a feed.
- Paste an Address and choose Preview. It can be the feed itself, or a page that links to one: Missived reads the page's feed links. You see the feed's title and its newest item, exactly as it will post.
- Pick the channel under Posts into, and optionally a Name (shown on its posts, with a BOT badge; the feed's own title by default).
- Choose Follow.
The newest item posts straight away, so you can see it works. Older items are not posted: following a blog with fifty old posts doesn't flood the channel. From then on, each new item posts as it appears.
On a phone you can see each feed's status and recent checks; following and changing feeds is done on a computer.
What you can paste
| You paste | Missived follows |
|---|---|
A feed (…/feed, …/rss.xml, …/atom.xml, …/feed.json) |
That feed |
| A blog's or site's home page | The feed the page links to |
youtube.com/@name or youtube.com/channel/UC… |
The channel's uploads |
youtube.com/playlist?list=… |
The playlist |
| A podcast's RSS address | Its episodes |
A status page (status.example.com, …/history.rss) |
Its incidents |
reddit.com/r/name |
The subreddit's new posts |
A single YouTube video is refused, with a hint to paste the channel instead.
What gets posted
- Blogs and news: the title (linking to the post), the first lines of the summary, the post's main image and the author.
- YouTube: the video's title and thumbnail, and the start of its description.
- Podcasts: the episode art, its length and a Download episode link.
- Status pages: the incident's title, its newest update and a coloured bar (red while investigating, amber while monitoring, green when resolved). Later updates to the same incident post as replies in that incident's thread, so the channel shows one line per incident.
Summaries are plain text: a feed's HTML, scripts and styles never reach the app. Images are shown through Missived's image proxy, so the publisher never learns who is reading. A link that is only http:// appears as text, not as a card link. A feed's posts can't mention anyone.
How often it checks
- Status pages every 5 minutes; everything else every 15 minutes, give or take a little so feeds don't all fetch at once.
- Every check is a conditional request: a feed that hasn't changed answers "not modified" and costs almost nothing.
- Check now on the feed's card checks at once.
- At most 5 new items post per check. If a check finds more, the oldest of them are skipped, not queued.
- An org's feeds post at most 60 items an hour between them. Anything held back by that hourly limit posts on a later check.
Instant updates
Some feeds (every YouTube channel, and blogs that name a "hub", such as WordPress.com, Blogger, Medium and Ghost) can push new items the moment they are published. Missived uses that only when the server's operator has turned it on and the server can be reached from the internet. Otherwise every feed is checked on the timer above; nothing else changes.
A pushed feed is still checked every six hours, in case a push goes missing. The card says Push: on (WebSub) while it works, Push: waiting for the hub to confirm while it starts, and Push: off (…); checked on a timer instead if the hub refused.
Status and recent checks
Each feed's card shows one of these:
| Status | Means |
|---|---|
| Active | Checked fine. The line under it says when it last posted and when it checks next. |
| Failing | The last check failed; the reason is shown. It tries again later, waiting longer each time (doubling from its usual interval, up to 12 hours), or as long as the site's Retry-After asks. |
| Paused | Someone paused it. Nothing is checked or posted. |
| Paused automatically | It failed 10 times in a row, or the site said the feed is gone for good (410 Gone). Whoever added it gets an email and an item in their Activity feed. |
Fix the feed or its address, then choose Resume: it checks at once with a clean slate.
Recent checks lists the last 50 checks (when, the result, the HTTP status and how many items posted) and the items it posted recently. Results read Posted, Nothing new, Unchanged, Held back (the hourly limit), Failed or Refused.
Private feeds
Some feed addresses carry a key, such as a private podcast feed (…/feed?key=…). Missived stores every feed address encrypted, shows it on the page with everything after ? hidden, and never writes it to the audit log.
Anyone in the channel sees what the feed posts, so only follow a private feed in a channel whose members may read it.
Change or remove a feed
- Edit renames the feed (its bot is renamed too) or moves it to another channel. To follow a different address, remove the feed and follow the new one.
- Pause stops checks until you choose Resume.
- Remove stops it. Its old posts stay.
Every change appears in the org's Audit log.
The same management is listed in the API reference (listFeeds, createFeed, previewFeed, updateFeed, deleteFeed, checkFeed, listFeedRuns). These routes take a signed-in session of someone with Manage integrations; API tokens are not accepted yet.
What data moves
- Missived's server fetches the feed. Your members' browsers never contact the publisher, and images come through Missived's image proxy, so the publisher sees Missived, not your readers.
- With instant updates on, Missived subscribes to the feed's hub with a callback address for that one feed. The hub sends new items to it.
- Missived stores the feed's address (encrypted), its title, site and icon, a key for each item it has seen (so nothing posts twice), and its recent checks. Posted items are ordinary messages in the channel.
- Nothing about your org or its members is sent to the publisher.
Limits
- Feeds per org depend on the plan (see Before you start). The Follow a feed button is disabled when the plan's feeds are all in use.
- A feed may be at most 5 MB.
- Feeds must be on the public internet, on the standard web ports (80 or 443).
- A feed's name is up to 80 characters and can't be a mention such as
@everyone.
Troubleshooting
| Message | What to do |
|---|---|
| "That address points to a private or internal network. Feeds must be on the public internet." | Missived never fetches addresses on a local network or a cloud's metadata service. Use a public address. |
| "Feeds must be on the standard web ports (80 or 443)." | Use the feed's address on port 80 or 443. |
| "That page doesn't advertise a feed." | Look for an RSS link on the site, or paste the feed's own address. |
| "The feed is larger than 5 MB." | Rare; some very long podcast feeds. Ask the publisher for a shorter feed. |
| "Your plan's feeds are all in use." | Remove a feed to follow another, or move to a plan with more. |
| "You can't post in that channel, so you can't point a feed at it." | Pick a channel you can post in. |