---
title: "How to Get Session Recaps Into Your Group's Discord"
description: "Most tables live in Discord and most recaps live where players never look. Where to post, what to post rather than link, spoiler discipline in a shared channel, and how to automate delivery."
doc_version: "1.46"
last_updated: 2026-08-19
---

# Getting Recaps Into the Room Your Table Is Already In

Plain-text Markdown mirror of [storywright.io/guides/discord-recaps](https://storywright.io/guides/discord-recaps).

You wrote the recap. It is good. It is also sitting in a document your players opened once during session zero, while the party talks in Discord every day. That distance is where most recaps quietly die.

## The recap is not the problem — the delivery is

Plenty of well-written recaps go unread for a dull reason: they live somewhere the reader has no habit of going. Your players have a habit of opening Discord. Put the recap in the path of an existing habit and the read rate changes before you improve a single sentence.

## Post the substance, link for the rest

A bare link with "recap's up!" asks the reader to spend a click before knowing whether it is worth one. Two people click — the two who would have read it anyway. Put the ~150 words in the message and let the link carry the long version. The click should be optional, not the entry fee.

## Use the channel they already talk in

Creating `#recaps` is a tidy instinct and usually the wrong one. A dedicated archive channel has the same problem as the wiki page: correct, organised, unopened. Post where the party actually talks; split it out later only if volume genuinely annoys people.

## Write as though the whole server is reading, because it is

A shared channel usually holds more people than your table — a partner who joined for the memes, a friend between campaigns, a player who left last spring. GM-only material stays out entirely: the twist, an NPC's real motive, the reason the quiet cleric keeps disappearing. Not held back by careful phrasing or by who happens to be in the channel — simply not in the document you are about to post. This matters more once posting is automatic, because "who will see this?" stops having a reliable answer.

## Stop doing it by hand

The step that fails is not the writing. It is the copying — moving finished words from where you wrote them to where people read them, at the end of a long evening. It gets skipped on exactly the weeks the campaign most needs it.

Discord solves this with **incoming webhooks**: a channel gets a URL, any tool can POST to it, and the message appears as though someone sent it. In Discord: *Server Settings → Integrations → Webhooks → New Webhook*, pick the channel, copy the URL. Nothing is installed and no bot joins the server. Any tool that can make an HTTP request can use it — the point is that publishing and delivering become one act instead of two.

## How Storywright does it

Storywright takes that webhook URL once, in world settings, and posts the recap the moment you publish a session briefing. The message carries the opening lines and a link that works without an account, so a player who has never signed in can still read it.

Two details that matter more than they sound. Private material never reaches the channel: story arcs and lore marked private are excluded from what gets posted, because a shared channel is the wrong place to discover a leak. And any player can opt out of having their name forwarded to Discord at all — their table still gets the recap, it simply does not carry their identity to a third party.

Worth reading first: [writing recaps players actually read](https://storywright.io/guides/session-recaps). Automating a recap nobody reads only delivers it faster.
