Chapter 5: CMS (2.A)
Exam topic 2.A: Create, relate, and manage Collections to support dynamic content architecture.
Exam topic 2.A: Create, relate, and manage Collections to support dynamic content architecture.
Key terms: Collections, Collection fields, reference fields, multi-reference fields, Collection lists, filters, Collection templates.
Weight: 18% of the exam (about 9 questions). The single largest topic.
If you remember one thing from this chapter: the CMS is a database, and you’re the database designer. The exam’s first official sample question asks how to structure a resource center with articles, authors and topics. The answer is separate Collections linked with reference fields, which is plain relational modelling. This chapter teaches you to think that way in Webflow.
5.1 Collections are tables; items are rows; fields are columns
| Database concept | Webflow CMS |
|---|---|
| Table | Collection (Blog Posts, Authors, Topics) |
| Row | Collection item (one post) |
| Column | Collection field (Title, Summary, Author) |
| Primary key | Slug (unique per Collection, used in the URL) |
| Foreign key (one) | Reference field |
| Join table (many-to-many) | Multi-reference field |
| Detail view | Collection template page |
| Query result | Collection list (with filters, sort, limit) |
Every Collection starts with two required fields: Name and Slug.
Field types and when to use each
| Field | Use for | Developer notes |
|---|---|---|
| Plain text | Titles, short labels, SEO fields | Can be single-line or multi-line; bindable to attributes |
| Rich text | Article bodies | Outputs semantic HTML (H2, p, ul, img, embeds), styled by tag styles (Chapter 4) |
| Image | Thumbnail, hero | Bind alt text; Webflow generates responsive variants |
| Multi-image | Galleries | Rendered with a nested list/lightbox |
| Video link | YouTube/Vimeo URL | For Video element binding |
| Link | External URLs | e.g. “Read the original” |
| Email / Phone | Contact data | Bind to mailto: / tel: links |
| Number | Price, rating, sort order | Filterable and sortable numerically |
| Date/Time | Publish dates, events | Filter “is in the future/past”, sort chronologically |
| Switch (boolean) | “Featured”, “Show in nav” | Ideal for filters and conditional visibility |
| Color | Per-item accent colour | Bind to backgrounds/text colour |
| Option | Small fixed set (Status: Open/Closed) | No page per value, no extra fields |
| File | PDFs, downloads | Bind to link URL |
| Reference | One related item (Post → Author) | One-to-many relationship |
| Multi-reference | Many related items (Post ↔ Topics) | Many-to-many relationship |
Option field vs. reference field: a classic decision
Use an Option when the values are a small, stable set with no data of their own and no page of their own (e.g. Difficulty: Beginner/Intermediate/Advanced).
Use a Reference to a separate Collection when each value needs its own fields (description, icon, colour), its own template page (/topics/seo), or will grow and be managed by editors.
5.2 Modelling relationships
One-to-many: Reference
Blog Post.Author → Authors (each post has one author; each author has many posts).
- On the post template, you can show the author’s name, photo and bio directly by binding to Author: Name, Author: Photo. No extra list needed.
- On the author template, show all posts by this author with a Collection list of Blog Posts filtered by
Authorequals Current Author. This “reverse lookup” is one of the most tested patterns.
Many-to-many: Multi-reference
Blog Post.Topics → Topics (a post has many topics; a topic has many posts).
- On the post template, add a Collection list whose source is the multi-reference field (Topics) to show the post’s topic tags.
- On the topic template, show posts with a Blog Posts list filtered by
Topicscontains Current Topic.
Anti-patterns the exam uses as distractors
- One Collection with a “type” text field to hold articles, authors and topics together. Fields don’t fit, filtering is fragile, and template pages become conditional chaos.
- Duplicating items for each category so filtering is “simpler”. Duplicate content, duplicate URLs, double maintenance.
- Static pages for things that repeat (authors, team members, locations). Every new author means building a page by hand.
- Free-text fields to hold relationships (“Author name” typed into each post). Typos break consistency and you can’t build author pages from it.
Normalisation in practice
Store each fact once. The author’s bio lives on the Author item, not copied into 200 posts. Change it once, and every post’s author box updates.
5.3 Collection lists
A Collection list queries a Collection and repeats a template structure for each item.
Settings
| Setting | What it does |
|---|---|
| Source | Which Collection (or, on a template page, a multi-reference field of the current item) |
| Filter | Conditions on fields: equals, contains, is set/not set, greater/less than, date in past/future, and comparisons with the current item on template pages |
| Sort | One or more fields, e.g. Featured (on first), then Date (newest) |
| Limit / Start at | Show n items; skip the first n (offset) |
| Pagination | Split long lists into pages with Next/Previous controls |
| Empty state | What to show when no items match |
Limits worth knowing
- A Collection list shows a maximum of 100 items at a time. Use pagination for longer lists.
- Nested Collection lists (a list inside a list item, sourced from a multi-reference field) have stricter limits on how many items they show and how many you can have on a page. Check the current limits for your plan.
- Plans cap the total number of CMS items, Collections and fields. Factor that into large architectures.
Common patterns
- Featured post + rest of the list: List A: filter
Featured = on, limit 1. List B: sort by date, filterFeatured = off(or Start at item 2 if sorted the same way). - Related posts on a template page: a Blog Posts list filtered by
Categoryequals Current Post’s Category, excluding the current item, limited to 3. - Upcoming events: filter
Date is in the future, sort ascending. Past events:Date is in the past, sort descending. Filtering by dates is evaluated at publish time, so a scheduled publish keeps this fresh.
5.4 Conditional visibility
Any element bound inside a list or template can be shown or hidden based on field values: show “Sold out” badge when Available is off, hide the image wrapper when Image is not set, show “Watch video” only when Video link is set.
Conditional visibility removes the element from the page output (it’s not just hidden with CSS). That makes it the right tool for empty fields, so you don’t get broken image icons or blank headings.
5.5 Collection template pages
Each Collection gets one template page that renders every item at /{collection-slug}/{item-slug}, e.g. /blog/how-to-use-grid.
- Bind headings, images and rich text to the current item’s fields.
- Page settings for templates bind SEO and Open Graph fields to CMS fields: SEO title from
SEO Title(falling back toName), meta description fromSummary, OG image fromThumbnail. One configuration gives every item unique metadata (Chapter 12). - Custom code in template page settings can insert field values, e.g. JSON-LD schema (Chapter 12).
- Changing a Collection’s slug or an item’s slug changes URLs. Add 301 redirects from the old paths (Chapter 12).
5.6 Content lifecycle
| State | Meaning |
|---|---|
| Draft | Not visible on the live site |
| Staged / queued | Ready, published with the next site publish |
| Published | Live |
| Scheduled | Will publish at a set date/time |
| Archived | Kept, but removed from the live site and lists |
Content editors can publish individual items without republishing the whole site, which matters for collaboration workflows (Chapter 10). Archive instead of delete when content may come back. Deleting loses the item and its URL.
5.7 Getting data in and out
- CSV import creates items in bulk. Map columns to fields, and prepare reference fields so they match existing items.
- CSV export for backups or migration.
- The Data API reads and writes items programmatically for syncing with external systems (Chapter 7).
- Rich text cleanup: imported HTML may bring inline styles. Clean it so tag styles apply consistently.
5.8 Architecture walkthrough: a resource center
Requirements: articles, authors, topics, a featured article, topic pages, author pages, related reading.
Authors (Name, Slug, Photo, Bio, Role, LinkedIn)
Topics (Name, Slug, Description, Icon, Color)
Articles (Name, Slug, Summary, Body [rich], Thumbnail, Publish date,
Featured [switch], SEO title, Meta description,
Author → Authors [reference],
Topics → Topics [multi-reference])
Pages:
/resources: Featured list (Featured = on, limit 1) + All articles list (paginated, sorted by date)./articles/{slug}template: author box via reference, topic tags via a list from the multi-reference field, related list filtered by shared topic, excluding the current item./authors/{slug}template: articles filtered by Author = current author./topics/{slug}template: articles filtered by Topics contains current topic.
Adding a new topic or author is now pure content entry. No design work needed. That’s what scalable architecture means on this exam.
5.9 CMS checklist
- ☐ Each entity type has its own Collection.
- ☐ Relationships use reference/multi-reference fields, not typed text.
- ☐ Option fields only for small, stable sets without their own pages.
- ☐ Field names and help text are clear for content editors.
- ☐ Template SEO/OG settings bound to fields with sensible fallbacks.
- ☐ Conditional visibility handles empty fields.
- ☐ Lists use filters/sort/limit instead of manual curation.
- ☐ Slug changes are paired with 301 redirects.
- ☐ Plan limits checked for item counts and nested lists.
Practice questions: CMS
Q1 A resource center has articles, authors and topics. Authors need their own pages, and each article can belong to several topics. Which structure is most scalable?
Show answer
Answer: b. Separate Collections give each entity its own fields and template pages. A reference models one author per article, and a multi-reference models many topics per article. This matches the official sample question. (a) mixes unrelated fields and makes filtering fragile. (c) duplicates content and URLs. (d) static pages don’t scale, and typed names can’t power relationships.
Q2 On an Author template page, how do you list all articles written by that author?
Show answer
Answer: b. The “reverse lookup” is a Collection list of the referencing Collection, filtered by the reference field against the current template item. (a) manual curation goes stale. (c) lists authors, not articles. (d) is a fragile hack.
Q3 (Multi-select) When should you use a reference field to a separate Collection instead of an Option field? (Choose two.)
Show answer
Answer: a and b. References are needed when values carry their own data or need their own pages. (c) a small fixed set with no data is exactly what Option fields are for. (d) both give editors a picker, so it’s not a deciding factor.
Q4 A blog shows 340 posts in one Collection list, but only 100 appear. What’s the correct explanation and fix?
Show answer
Answer: a. Collection lists display at most 100 items at a time. Pagination (or several lists using offsets) solves it. (b) item limits are much higher on CMS plans. (c) drafts aren’t the cause of an exact 100 cap. (d) sort order doesn’t change the count.
Q5 On an article template, some items have no hero image, and the empty wrapper leaves a large gap. What’s the best fix?
Show answer
Answer: b. Conditional visibility removes the wrapper from the output when the field is empty, so there’s no gap. (a) placeholder images add useless content and weight. (c) opacity: 0 still takes up space and hides it everywhere. (d) only one template exists per Collection; branching logic belongs in conditional visibility.
Q6 (Multi-select) On a blog post template, you want a “Related posts” section. Which settings produce a correct result? (Choose three.)
Show answer
Answer: a, b and c. Related posts come from the same Collection, filtered by a shared attribute relative to the current item, excluding the current post, with a sensible limit. (d) Authors is the wrong source.
Q7 An article has several topics (multi-reference). How do you display that article’s topic tags on its template page?
Show answer
Answer: a. On template pages a Collection list can be sourced from the current item’s multi-reference field, showing exactly its topics, each linkable to its topic page. (b) loses the relationship and links. (c) shows every topic. (d) hacky and inaccessible.
Q8 Editors change a Collection’s slug from blog to insights. What must you do to protect SEO?
Show answer
Answer: b. Changing the Collection slug changes every item’s URL. A pattern 301 redirect with a capture group ((.*) → %1) sends old URLs, and their search value, to the new paths. (a) Webflow doesn’t create these automatically. (c) would remove posts from search. (d) unnecessary and destructive.
Q9 A homepage needs a large featured article and a grid of the other latest articles, with the featured one not repeated. Which setup is cleanest?
Show answer
Answer: a. Two filtered lists give a clear, automatic split that updates as editors toggle Featured. (b) manual styling can’t stop duplication. (c) duplicates content. (d) manual upkeep.
Q10 An event listing should show only upcoming events in date order. Which filter and sort fit?
Show answer
Answer: a. A date filter for future items plus ascending date sort lists the next event first. (b) is set includes past events, and sorting by name ignores chronology. (c) shows past events, newest first. (d) unrelated.
Q11 (Multi-select) What’s the benefit of storing author bios on Author items rather than in each article? (Choose two.)
Show answer
Answer: a and b. Normalised data means a single source of truth and consistency. (c) author pages are still valuable, and are made possible by this model. (d) unrelated.
Q12 A blog post item should be removed from the live site temporarily but may come back later with the same URL and content. What’s the best action?
Show answer
Answer: b. Archiving (or drafting) removes the item from the live site while keeping its content and slug, so it can be restored with the same URL. (a) deletion loses everything. (c) breaks the URL. (d) the page is still live and indexable.