Help center Customer portals Liquid article pages: display content, translation notices and related knowledge Updated Wednesday, October 28, 2026 · Marc Staine A useful article page lets a customer read the solution, check whether it applies, and find the next relevant step. sb.article contains the authorized knowledge article for the current page. It supplies the rendered body plus metadata and optional related lists, so a portal designer can improve presentation while preserving the publication and audience rules managed by the knowledge team. At a glanceFor: portal administrators and designers working with support operations. Applies to: Supportbench Core.Start here: Settings → Customer Portal → select the portal → Page templates What this object gives you · Choose the correct page and customer context · Supported values and how to use them · Example: show the article and a useful translation alternative · Design related knowledge around the customer’s next step · Make and verify the change · Common problems and recovery · Keep the portal useful over time What this object gives you sb.article is a single article object, or null when no authorized article is available for the page. It is different from the compact rows in a topic’s article list. The full article’s content is the portal-rendered HTML; a list row is not a substitute for that body.Language handling deserves an explicit design. If a requested translation is missing, translation_missing is true and the translated body is empty. A default-language link may be available. The template must not silently claim it is showing a complete translated article. Choose the correct page and customer context Use an article-page template with an actual article route and authorized article context. Related-in-container data also needs the selected container context. Public eligibility alone does not bypass topic, role or other portal audience rules.Open the intended portal in Settings → Customer Portal, then choose Page templates. You need permission to administer communities or the applicable portal-edit override. Work on the existing page for this task; adding an object name to a different page does not make its records available. Keep existing forms, input names, navigation and scripts intact.Liquid is a presentation language. Expressions inside {{ ... }} print values; statements inside {% ... %} control a loop or condition. A collection must be looped through before reading an individual row. These examples are display fragments to adapt within a working template, not replacement page templates. Supported values and how to use them MemberMeaning and operational useid / id_title / slugArticle identity and route-related text. Preserve existing canonical-link conventions; the basic supported article route uses /article/ followed by id.title / summaryHuman-readable heading and summary. Use safe text output.contentRendered portal article HTML. Display it as the supplied body rather than escaping the entire body into visible markup.cssArticle/template styling when supplied. Preserve the existing article-style integration; do not turn arbitrary customer text into CSS.modifiedArticle modification date. It is not automatically a review or next-review date.like_count / comment_countCounts exposed as strings. Display as metadata; do not assume numeric type for calculations.author / author_description / author_imageAuthor/presentation metadata; optional image may be absent.translation_missing / default_language_url / default_language_nameMissing-translation flag and an available alternative-language destination/label. Check for a usable URL before offering the link.public_tagsLazy list of visible tag rows with id, name and url. Use supplied URLs for tag navigation.related / articles_in_container / suggestedOptional related article lists with id, id_title, slug, title and summary. Container-based suggestions need container context. Example: show the article and a useful translation alternative {% if sb.article %} <h1>{{ sb.article.title | escape_once }}</h1> {% if sb.article.translation_missing %} <p>This article is not available in the selected language.</p> {% if sb.article.default_language_url != nil and sb.article.default_language_url != empty %} <a href="{{ sb.article.default_language_url | escape }}"> Read in {{ sb.article.default_language_name | escape }} </a> {% endif %} {% else %} <div class="article-body">{{ sb.article.content }}</div> {% endif %} {% else %} <p>This article is not available in this portal context.</p> {% endif %}This fragment preserves the distinction between a missing translation and an unavailable article. Keep the page’s existing feedback, navigation and article styling around it. Do not add a sign-in promise unless your portal configuration actually makes that article available after sign-in. Design related knowledge around the customer’s next step For an equipment fault article, a useful related link could explain how to collect diagnostic information or verify a repair. Show a short title and summary so readers can choose. Do not describe every automatically supplied suggestion as an approved troubleshooting sequence; the knowledge team should review the resulting recommendations.{% for item in sb.article.related %} <p><a href="/article/{{ item.id | escape }}">{{ item.title | escape_once }}</a></p> {% endfor %} Make and verify the change Write down the customer task this change should improve. For example, make the correct request or relevant knowledge easier to find. Decide what should appear when there is no data.Copy the current template into your approved change record before editing. Add the fragment in the correct page context without removing functional controls.Choose Save Changes to save the draft, then Design to preview it. Check a populated example and an empty or signed-out example as applicable.Inspect desktop and narrow-screen layouts. Test long customer names, long titles, missing optional values, readable links and keyboard navigation.Use Review changes → Publish when the draft is ready. A saved draft does not update the live visitor page.Open the actual portal as an intended customer and follow the full task. Verify another relevant role or customer scope where visibility differs. Record the account, page, role and outcome with the change.Preview is only part of the checkDesigner examples use synthetic data. They can show layout and syntax problems, but do not prove that a real customer has access to a record. Keep portal access rules and the actual customer test separate from visual preview. Common problems and recovery ProblemWhat to checkThe body appears as HTML codeThe whole content value was escaped. Use the supplied rendered article body in its intended HTML container; continue escaping ordinary text fields.An English body is not automatically shownHandle translation_missing and the optional default-language link. Do not assume automatic body fallback.The related-in-topic list is emptyCheck the selected container context as well as article access.A displayed modification date is mistaken for a review dateLabel modified accurately; do not claim a review was completed solely from this timestamp.The template renders in preview but the live page has not changedConfirm that you published the reviewed draft for the correct portal, page and language. Reopen the live page.A customer sees fewer records than an agentCheck the customer’s portal role, company/contact relationship and the record’s audience. Do not attempt to broaden access by changing a Liquid loop.A layout change breaks a form or navigationCompare the changed template with the saved working version. Restore missing form IDs, inputs, URL patterns or callbacks before publishing the corrected draft. Keep the portal useful over time Keep the title, short summary and useful answer near the beginning of the page. Preserve meaningful article headings and descriptive related links. These practices help readers and answer retrieval understand the content; they do not guarantee search-engine placement.Use clear labels and meaningful empty states. Do not display a raw ID when a customer needs a descriptive name, and do not describe an absent value as a service failure. After changes to portal roles, topic placement, custom fields or language coverage, revisit the relevant customer examples. A successful render alone does not establish that the instructions, links and customer visibility are still correct. Continue learning Plan and publish a safe Liquid portal customizationDisplay article comments safelyUse compact article-list rowsConfigure the customer portal Was this article helpful? Yes No Thank you for your feedback.