How the Editor Works
The new retrospective editor provides a rich text editing experience with real-time collaboration, dynamic data blocks, and template support. This page covers everything you need to know to create and edit retrospectives effectively. The editor is designed to be intuitive. You can type naturally, use slash commands for quick actions, and let autosave handle the rest.Getting Started with the Editor
Where to Find the Editor
Retrospective documents automatically populate with your team’s default template. You can configure this template in Retrospectives → Document Templates.
Quick Start
- Type naturally to add text
- Press Enter to create new nodes in the document
- Type
/to open the slash command menu - Select text and use the toolbar for formatting
- Drag and reposition nodes of content in your document
- All changes save automatically
Rich Text Formatting
The editor supports standard rich text formatting through the toolbar, keyboard shortcuts, and slash commands.Text Formatting
| Format | Keyboard Shortcut |
|---|---|
| Bold | Cmd/Ctrl + B |
| Italic | Cmd/Ctrl + I |
Cmd/Ctrl + Shift + X | |
Inline Code | Cmd/Ctrl + E |
Headings
| Level | Keyboard Shortcut | Slash Command | Description |
|---|---|---|---|
| Heading 1 | # | /h1 | Main section headers |
| Heading 2 | ## | /h2 | Subsection headers |
| Heading 3 | ### | /h3 | Minor section headers |
Lists
| Type | Keyboard Shortcut | Description |
|---|---|---|
| Bullet List | - | Unordered list with bullet points |
| Numbered List | 1. | Ordered list with numbers |
Other Blocks
| Block | Slash Command | Description |
|---|---|---|
| Blockquote | /blockquote | Indented quote block for callouts |
| Code Block | /codeblock | Multi-line code with syntax highlighting |
| Table | /table | Insert a 3x3 table (expandable) |
| Image | /image | Upload and insert an image |
Slash Commands
Slash commands provide quick access to all editor features. Type/ anywhere in the editor to open the command menu.
Incident Data Blocks
With incident data blocks, you can insert dynamic content that pulls data from the incident.| Command | Description |
|---|---|
/timeline | Insert the incident timeline block |
/followups | Insert the follow-ups (action items) block |
/liquid-variables | Insert a single liquid variable into the document |
/liquid-block | Insert a code block that render outputs from more complex liquid syntax or conditional variables. |
Basic Blocks
Basic blocks insert standard document elements.| Command | Description |
|---|---|
/text | Insert a paragraph |
/h1 | Insert Heading 1 |
/h2 | Insert Heading 2 |
/h3 | Insert Heading 3 |
/bulletList | Insert bullet list |
/orderedList | Insert numbered list |
/blockquote | Insert blockquote |
/code | Toggle inline code |
/codeBlock | Insert code block |
/table | Insert 3x3 table |
/bold | Toggle bold |
/italic | Toggle italic |
/strike | Toggle strikethrough |
The slash command menu filters as you type. For example, typing /time will show the timeline command at the top.
Incident Data Blocks
Incident Data Blocks are dynamic elements that pull live data from the incident. They update automatically when the underlying data changes.Timeline Block
The Timeline block displays all events from the incident timeline, including user actions, system events, and status changes.To insert a Timeline block:
- Type
/timelinein the editor - Press Enter or click the command
Timeline block features:
- Shows event date/time, source, user, and description
- Pagination controls help keep the document compact
- Drag the block to reposition it in the document
- Click the node to select the entire block, then use backspace to delete
The Timeline block pulls live data from the incident. If new events are added to the timeline, the block updates automatically.
Follow-ups Block
The Follow-ups block displays action items associated with the incident.To insert a Follow-ups block:
- Type
/followupsin the editor - Press Enter or click the command
Follow-ups block features:
- Shows action item title, priority, status, assignee, and due date
- Sort options: Due Date, Priority, or Status
- Drag the block to reposition it in the document
- Click the node to select the entire block, then use backspace to delete
When follow-ups are added or updated on the incident, the block reflects those changes automatically.
How Data Blocks Render on Export
When you publish or export the retrospective to an external provider, data blocks are rendered as static content at the time of export. This includes:- Timeline events formatted as a table
- Follow-ups formatted as a list with metadata
- Liquid variables or blocks resolved to their actual values
Using Templates
Templates provide pre-built content structures that ensure consistency across retrospectives.Inserting a Template
What Templates Can Include
- Headings and sections (Summary, Root Cause, Timeline, etc.)
- Placeholder text to guide authors
- Liquid variables (e.g.,
{{ incident.title }}) - Data blocks (
/timeline,/followups) - Formatting and structure
Templates are configured by administrators in Settings → Retrospective Templates. Contact your admin to create or modify templates.
Liquid Variables
Liquid variables are dynamic placeholders that resolve to actual values from the incident.Inserting Liquid Variables
- Type
{{to start a liquid variable - Continue typing to filter available variables
- Select from the autocomplete dropdown
- The variable appears as a chip in the editor
Common Variables
| Variable | Description |
|---|---|
{{ incident.title }} | Incident title |
{{ incident.severity }} | Severity level |
{{ incident.status }} | Current status |
{{ incident.started_at }} | Start timestamp |
{{ incident.resolved_at }} | Resolution timestamp |
{{ incident.duration }} | Total incident duration |
{{ incident.commander.name }} | Incident commander’s name |
{{ incident.slack_channel }} | Slack channel name |
{{ post_mortem.title }} | Retrospective title |
Liquid variables display as visual chips in the editor. On publish or export, they resolve to their actual values.
Liquid Blocks
Liquid Blocks are standalone template blocks that support the full Liquid templating language, including conditionals, loops, and complex logic.Liquid Block vs Liquid Variable
| Feature | Liquid Variable | Liquid Block |
|---|---|---|
| Scope | Inline (within text) | Block-level (standalone) |
| Syntax | {{ variable }} only | Full Liquid: {% if %}, {% for %}, filters |
| Rendering | Inline chip | Edit/Preview panel with live rendering |
| Best for | Inserting dynamic values | Conditional content, loops, complex logic |
Use Liquid Variables for simple value substitution inline within your text. Use Liquid Blocks when you need conditionals, loops, or multi-line template logic.
Inserting a Liquid Block
- Type
/liquidto open the slash command menu - Select Liquid Block from the options
- Write your Liquid template in the editor panel
- Click Preview to see the rendered output with real incident data
- Toggle back to Edit to make changes
Example Use Cases
Conditional severity messaging:{{ incident.commander.name }}”
Use Liquid Blocks when:
You need conditional logic ({% if %}...{% endif %}) You need to loop over collections ({% for %}...{% endfor %}) You have multi-line template content You need complex formatting with multiple variables Example: Showing different content based on incident severity
Collaboration
Multiple users can edit the retrospective simultaneously.What You’ll See
- Presence indicators: Avatars/initials of users currently viewing the document
- Collaborative cursors: Coloured cursors showing where each user is working
- Real-time updates: Changes from other users appear instantly
Comments
Select text and click the comment button to start a discussion:- Select the text you want to comment on
- Click the comment button in the toolbar
- Type your comment and submit
- Others can reply, creating a threaded conversation
- Mark comments as resolved when addressed
Comments are visible to all collaborators and sync in real-time. Use them for async review and feedback.
Best Practices
- Use slash commands for speed: Typing
/is faster than reaching for the toolbar, especially for common actions. - Insert data blocks instead of copying: Timeline and Follow-ups blocks stay in sync with the incident. Manual copy-paste becomes stale.
- Use templates for consistency: Starting from a template ensures all retrospectives follow the same structure.
- Add comments for review feedback: Instead of sending feedback in Slack, add comments directly in the document for better context.
- Use headings to structure content: Clear section headers (Summary, Timeline, Root Cause, Action Items) make retrospectives easier to scan.
Troubleshooting
The slash command menu doesn't appear when I type /
The slash command menu doesn't appear when I type /
A data block shows 'Loading...' indefinitely
A data block shows 'Loading...' indefinitely
This usually means the block couldn’t fetch data from the incident. Check your network connection and refresh the page. If the problem persists, the incident may not have any data for that block type (e.g., no timeline events or follow-ups).
Template insertion failed
Template insertion failed
Ensure you have permission to access retrospective templates. If templates aren’t appearing, contact your administrator to verify templates are configured for your team.
I accidentally deleted content. Can I undo?
I accidentally deleted content. Can I undo?
Use
Cmd/Ctrl + Z to undo recent changes. You can also access version history to restore a previous version of the retrospective.