# Use Salesforce Components

The five live Salesforce components you can embed in a Document — Status Bar, Record Preview, Related List, Workbench, and Kanban Board.

Salesforce components are what separate a Folio Document from a document that merely *mentions* Salesforce. Each one embeds live CRM data directly in the page — a pipeline board, a list of open cases, a record's stage path — and keeps it current without anyone updating it by hand.

There are five:

| Component | What it shows | `/` shortcut |
| --- | --- | --- |
| **Status Bar** | A record's picklist path, as a clickable progress path | `/sb` |
| **Record Preview** | A highlights panel of key fields from one record | `/rp` |
| **Related List** | Child records under a parent record | `/rl` |
| **Workbench** | Records owned by a chosen set of users, groups, or queues | `/wb` |
| **Kanban Board** | Records in picklist lanes | `/kb` |

<img src="/images/docs-images/Use-Salesforce-Components_Use-Salesforce-Components.png" alt="Use Salesforce Components" class="docs-image" loading="lazy" decoding="async" />

## Two ways to insert one

**From the `@` menu**, starting with a record. Type `@`, search for and select a record, then choose the component. The record you picked becomes the component's anchor. See [Insert Mentions with @](/docs/user-guide/at-commands).

**From the `/` menu**, starting with a position. Type `/` and choose the component — or its shortcut, `/rl` for a Related List. You'll pick the record afterward. See [Formatting Documents](/docs/user-guide/formatting-documents).

Use whichever matches how you're thinking. If you're writing about a specific Opportunity and want its stage path, `@` is faster. If you're building out a page structure and know a board goes here, `/` is.

**Workbench is the exception — it's `/`-only.** A Workbench isn't anchored to an initiating record; it shows records owned by a set of *people*. There's nothing for an `@` mention of a specific record to supply, so it can only be inserted from the `/` menu with `/wb`.

## Status Bar

A **Status Bar** renders a record's picklist path — an Opportunity's Stage, a Case's Status — as a clickable progress path inside the Document.

Placed near the top of a plan, it shows the reader the current state of the record before they read the body.

**Field types.** Status Bars work with **picklist, number, currency, and percent** fields only, and only those your admin has made linkable.

**Editing.** With write-back enabled, you can advance the status straight from the Document — click the stage you want and the record updates in Salesforce.

**Insert with:** `@` → pick a record → **Status Bar** → pick the field. Or `/sb`.

<img src="/images/docs-images/Use-Salesforce-Components_Status-Bar.png" alt="Status Bar" class="docs-image" loading="lazy" decoding="async" />

## Record Preview

A **Record Preview** embeds a highlights panel for a single record — its key fields laid out as a compact card.

Where a Status Bar shows a record's progress, a Record Preview shows its key values. Use it when a reader needs the details of a record without leaving the Document.

**Fields shown** are controlled by your admin through [Choose Linkable Fields](/docs/admin/admin-panel/settings#choose-linkable-fields).

**Editing.** Fields with write-back enabled can be edited inline from the preview.

**Insert with:** `@` → pick a record → **Record Preview**. Or `/rp`.

<img src="/images/docs-images/Use-Salesforce-Components_Record-Preview.png" alt="Record Preview" class="docs-image" loading="lazy" decoding="async" />

## Related List

A **Related List** embeds a live, filterable list of child records under a parent record — *all Open Opportunities under this Account*, *all Cases on this Contact*.

**Configuration.** Two buttons in the upper right of the node control how it behaves.

**Filters** — define up to **10** row filters controlling which child records appear. The **Logic** dropdown above the rows sets how they combine:

- **All conditions must be true** — `AND` across every row.
- **Any condition must be true** — `OR` across every row.
- **Custom logic** — write your own expression using `(`, `)`, row numbers, and the `AND` / `OR` keywords. It's validated before you can save: every `(` needs a matching `)`, every filter row you've defined must appear at least once, and every number must correspond to a row that exists.

**Settings** — column layout and pagination:

- **Show / hide fields** for the displayed columns. Only fields your admin made linkable on the *child* object are available.
- **Records per page** — **5**, **10**, **15**, or **20**.
- **Sort column** and **Sort order** — ascending or descending.

Every Related List is configured independently, so two lists of the same object in the same Document can show different columns.

**Where the controls live.** With the component's header shown, its controls sit in that header. **With the header hidden, use the [node handle](/docs/user-guide/document-editor#the-handle-menu)** — it offers **Filter Records**, **Related List Settings**, and **Show Header**. The same applies to a Workbench, where the middle option reads **Workbench Settings**.

**Editing.** Columns backed by write-back-enabled fields can be edited inline, right in the list.

> **Both objects must be linkable.** For a Related List of Cases under an Account, your admin must have enabled *both* Case and Account as [Linkable Objects](/docs/admin/admin-panel/settings#choose-linkable-objects).

**Insert with:** `@` → pick the parent record → **Related List** → pick the child relationship. Or `/rl`.

<img src="/images/docs-images/Use-Salesforce-Components_Related-List.png" alt="Related List" class="docs-image" loading="lazy" decoding="async" />

## Workbench

A **Workbench** lists records owned by a chosen set of **users, groups, or queues** — not records under a parent.

A Related List answers "what's attached to this record." A Workbench answers "what does this person or team own." Use it for a personal working doc, a team standup page, or a queue review.

Because it's driven by ownership rather than a parent record, a Workbench needs no anchoring record at all — which is why it's `/`-only, and why it works in a Template with no Source Object.

**Insert with:** `/wb`.

<img src="/images/docs-images/Use-Salesforce-Components_Workbench.png" alt="Workbench" class="docs-image" loading="lazy" decoding="async" />

## Kanban Board

A **Kanban Board** shows records in **picklist lanes** — a pipeline by stage, a support board by status. With write-back enabled, dragging a card between lanes updates the record in Salesforce.

**Two modes**, and the distinction matters:

- **Parent Record mode** — shows child records under a specific parent record. This is what you get when you insert from `@`, with the record you picked as the parent.
- **Assigned mode** — shows records by owner, like a Workbench arranged into lanes. It needs no parent record, so it works in a Template with no Source Object.

**Insert with:** `@` → pick the parent record → **Kanban Board** → pick the child object and the picklist field for the lanes. Or `/kb`.

### Record types are handled for you

Salesforce record types often restrict which picklist values are available — a Standard Opportunity and an Enterprise Opportunity may each allow a different set of stages. The Kanban Board handles this automatically, with no configuration.

**When the board returns records of more than one record type, and those record types enable different picklist values on the lane field, the board splits into a separate group of lanes per record type.** Each group shows only the values its own record type allows, so you never see a lane a given record couldn't legitimately move into.

**Dragging respects the split.** A tile can only be dropped into a lane belonging to its own record type. You can't drag an Enterprise Opportunity into a lane that exists only for Standard Opportunities, because that value isn't valid for that record — so the drop is simply not allowed.

If every record on the board shares a record type, or the record types all enable the same values on the lane field, the board renders as a single set of lanes and none of this is visible.

<img src="/images/docs-images/Use-Salesforce-Components_Record-types-are-handled-for-you.png" alt="Record types are handled for you" class="docs-image" loading="lazy" decoding="async" />

## What your admin controls

Components can only display what an administrator has made available:

- **[Linkable Objects](/docs/admin/admin-panel/settings#choose-linkable-objects)** determine which objects a component can point at. For a component spanning two objects — a Related List, a Kanban in Parent Record mode — both parent and child must be enabled.
- **[Linkable Fields](/docs/admin/admin-panel/settings#choose-linkable-fields)** determine which fields can appear as columns, tile fields, preview fields, or status fields.
- **Write-back** determines whether you can edit from inside the Document. It needs [two gates open](/docs/admin/admin-panel/settings#the-two-gate-rule): the org-wide setting *and* the per-field one. With either closed, the component still displays data but is read-only.

**Write-back never exceeds your Salesforce access.** If you can't edit a field on a record in Salesforce, you can't edit it from a Document either.

If a component you want isn't offered, that's configuration rather than a bug — ask your admin.

## Staying current

Components re-read Salesforce whenever the page loads, so a refresh always shows current data.

Beyond that, changes can stream in live while you're reading. That works automatically for Account, Contact, Opportunity, and Case; for other objects an admin sets it up per object. See [Set up Real-Time Updates](/docs/admin/real-time-updates).

## Components in Templates

Admins can build components into [Templates](/docs/admin/admin-panel/templates), so a new Document arrives with its boards and lists already pointed at the right records. You can reconfigure them afterward — change columns, adjust filters — without affecting the Template or anyone else's Document.

**Related:** [Insert Mentions with @](/docs/user-guide/at-commands) · [Formatting Documents](/docs/user-guide/formatting-documents) · [Using the Folio Document Editor](/docs/user-guide/document-editor) · [Create Documents from Templates](/docs/user-guide/create-documents-from-templates)
