Related lists

A related list puts child records on the parent’s payload as rows. It’s what turns a flat field list into a 360.


Add one

In the entity builder, click + Add Related List under Related Objects.

SettingWhat it does
Related ListThe child relationship. Named relationships and lookup-based ones both appear
LabelWhat the agent calls it. “Open Opportunities” beats “Opportunities” if it’s filtered
ColumnsWhich level of the child entity supplies the columns
Sort By / DirectionWhich field orders the rows
Max RowsHow many rows come back
FiltersWhich rows qualify

Related lists render at detailed only — rows × fields is expensive. For a summary at a leaner level, use a metric.

Columns come from the child

A related list’s columns are the child entity’s curated fields at the level you pick. You set them on the child entity, never on the parent.

If Contacts under an Account show the wrong columns, edit the Contact entity’s list fields. That changes every table Contacts appear in. A child object with no entity has nothing to curate from, so give it an entity first.

For Columns, list is almost always right. standard occasionally suits one high-value relationship; detailed is 30 fields × N rows — avoid it.

Files

Files attached to a record come through the Document entity, which ContextWorks ships on ContentDocumentLink. Opportunity and Account carry a Files list out of the box — newest first, five rows. Add it to any other entity like any other related list: pick ContentDocumentLinks as the relationship.

Each row carries the file’s name, type, size and a download link. ContextWorks never inlines the contents. A 1.5 MB PDF costs about 35 tokens as a link; inlined it would cost roughly 710,000, far beyond any payload budget. Apex cannot extract text from a PDF anyway.

The agent hands over the link; a person with a Salesforce session opens it.

IMPORTANT

Use ContentDocumentLinks, not a ContentVersion list. ContentVersion’s only link to a record is where the file was first uploaded, so a file uploaded elsewhere and attached here never appears. That list reports zero documents when the record has documents, which is worse than showing none. It also returns one row per version.

Filter aggressively

An unfiltered list bloats the payload and buries the rows that matter.

Instead ofUse
All OpportunitiesOpen Opportunities — IsClosed = false
All CasesOpen Cases — IsClosed = false
All ActivitiesLast 90 days — ActivityDate ≥ LAST_N_DAYS:90
All ContactsUsually fine — contacts per account are few

The filter builder offers the child object’s fields with operators =, !=, <, <=, >, >=, IN, and LIKE. Date fields accept literals like THIS_QUARTER, LAST_N_DAYS:90, and TODAY. → Filters

Name the list for what it now contains. A list filtered to open deals but labeled “Opportunities” reads as everything.

You can add two lists over the same child object with different filters, and that often beats one mixed list: Open Cases (5 rows, newest first) and Recently Closed Cases (3 rows, newest first).

Set max rows

Keep Max Rows small. Five to ten covers most questions. The payload marks a list as truncated when more rows qualified, so the agent can say the list is partial.

If the honest answer is “there are 340 of these”, that’s a metric. The best lists pair with one: “Open Cases: 34” alongside the five most recent.

Sort

Sort By picks the field; Direction picks ascending or descending. The default is last modified, newest first. Sort so the top rows are the most useful ones: newest activity, largest amount, soonest close date.

You wantUse
The actual rows, to reason about individuallyRelated list
A count or totalMetric
A parent record’s detailsReference

The usual fix for an oversized payload is to turn a related list nobody reads row-by-row into a metric.

What’s next