Nutrition

    nutrition

    Learn how to manage and display compliant nutrition labels across your product catalog using the US FDA, EU FIC, and UK Traffic Light formats.

    Nutrition Facts — User & Admin Guide

    A practical guide for brand managers and marketing teams using the Nutrition Facts app.


    1. What this app does

    Nutrition Facts is a small app that lets your brand show clear, compliant nutrition information for every product in your catalogue — and lets your team manage that information without spreadsheets or developers.

    It supports three label formats out of the box:

    FormatWhere it's used
    US FDAUnited States — the classic black-and-white "Nutrition Facts" panel
    EU FICEuropean Union — the per-100g/ml table required by EU 1169/2011
    UK Traffic LightUnited Kingdom — the colour-coded front-of-pack labels

    It's designed for:

    • Food & beverage brands that need to publish nutrition data per product
    • Marketing teams who want to show consumers what's in a product without involving engineering
    • Operations teams managing multiple SKUs, recipe families, or product lines

    You can enter data per product (one product, one set of values) or as a rule that applies to many products at once (e.g. all "Wholewheat Bread" products share the same panel) — and you can scan a physical label with your phone camera to fill the form automatically.


    2. Getting started

    Opening the admin

    The app is opened from inside the SmartLinks Admin Console:

    1. Go to your collection in SmartLinks
    2. Open the Nutrition Facts app
    3. Pick a product, or open it at the collection level to manage rules that span many products

    If you open the app without a collection selected, you'll see a friendly reminder asking you to open it from the Admin Console with a collection (and optionally a product).

    First-time collection setup

    When you install the app for the first time on a collection, you'll be asked four setup questions:

    QuestionWhat to choose
    Default label formatThe format shown to customers by default. Pick Auto to let it follow each visitor's location (US visitors see FDA, UK visitors see Traffic Light, everyone else sees EU FIC), or lock it to one format for your main market.
    Available label formatsTick every format you want to be selectable. Most brands enable all three.
    Display validated health claims?On if you want to show approved claims like "Low fat" or "Source of fibre" on the public label.
    Food or beverage?Affects whether values are shown per 100 g (food) or 100 ml (beverage), and how traffic lights are calculated.

    You can change all of these later — they're not locked in.


    3. Entering nutrition data

    When you open the app you'll see a records manager with three parts:

    • Left rail — a browser listing the records you've created, with a scope picker at the top.
    • Editor (middle) — the nutrition form for whatever you've selected.
    • Live preview (right) — the customer-facing label, updating as you type. A scope picker lets you preview at product, variant, or batch level.

    Choosing a scope

    The scope picker at the top of the left rail decides what a set of values applies to:

    ScopeUse it for
    RuleValues shared by many products at once, matched by their facets (e.g. category = bread AND gluten-free = true). Reach for this first if products share a recipe.
    ProductValues for one specific product. Always wins over any rule that also matches it.
    VariantValues for a specific variant of a product (e.g. the 500 ml size), when variants are enabled on the collection.
    BatchValues for a specific production batch, when batches are enabled.

    Rule of precedence: the most specific record wins. A batch beats a variant, a variant beats a product, and a product always beats a rule. A rule only applies when nothing more specific exists.

    The Variant and Batch scopes only appear when those features are switched on for the collection.

    Creating and editing a record

    1. Pick a scope (Rule, Product, Variant, or Batch) in the left rail.
    2. Select an existing entry, or create a new one (for Rule, you also define the facet conditions that decide which products it covers).
    3. Fill in the form in the middle. The preview on the right updates live.
    4. Save or Discard using the buttons in the footer at the bottom of the editor.

    If a product is currently getting its values from a less-specific record (e.g. a rule), you'll see a notice at the top of the editor telling you it's inherited. You can leave it as-is, or click Start from parent values to copy those numbers in and override them just for the current scope.

    The nutrition form

    The form is split into three sub-tabs:

    Nutrients tab

    All values are entered per 100 g (food) or per 100 ml (beverage). Leave a field blank if you don't have the data — it just won't appear on the label.

    FieldUnitNotes
    EnergykJ and kcalEU labels need both; US needs kcal only
    FatgRequired for traffic lights
    Saturated FatgRequired for traffic lights
    Mono- / Poly-unsaturated FatgOptional, EU only
    Trans FatgRequired on US labels
    Carbohydrateg
    SugarsgRequired for traffic lights
    Added SugarsgUS-required, useful elsewhere
    Polyols, StarchgOptional EU detail
    Fibreg
    Proteing
    SaltgRequired for traffic lights (UK uses salt, US uses sodium)
    CholesterolmgUS-required

    Serving tab

    FieldWhat it does
    Product TypeFood or Beverage. Switches the per-100 unit between g and ml, and adjusts traffic light thresholds.
    Serving SizeA number plus unit (g or ml). Used to calculate per-serving values shown on the label.
    Serving DescriptionFree text shown to customers, e.g. "1 slice (30 g)" or "1 can (330 ml)".
    Servings per ContainerOptional. Required on US FDA labels.

    Health Claims tab

    Add any approved nutrition or health claims for the product (e.g. "Low fat", "Source of fibre", "High in protein").

    For each claim:

    • Claim text — what appears on the label
    • Regulation — which framework approved it: EU, UK, or US
    • Valid — toggle on once you've confirmed the claim meets the regulation. Only validated claims are shown to customers when "Display validated health claims" is on.
    • Trash icon — remove the claim

    Filling the form with AI label scanning

    Instead of typing values, click AI Label Scan at the top of the form. A dialog opens where you can:

    1. Take a photo with your camera (preferred on phone/tablet)
    2. Or upload a photo of an existing nutrition label

    The AI reads the label, extracts the values, and fills the form for whichever record you're currently editing. Review the values, edit if needed, then Save in the footer.

    Saving

    Use the Save / Discard buttons in the footer at the bottom of the editor. If you try to switch records with unsaved changes, the app prompts you so you don't lose work.


    4. What customers see

    When a customer opens a product page that has nutrition data, they see:

    1. The product name at the top
    2. A nutrition label in your collection's default format (US FDA, EU FIC, or UK Traffic Light)
    3. Validated health claims below the label (if you enabled this in setup)

    If the customer's link allows format switching (configurable in your collection settings), they can toggle between formats.

    If a product has no per-product data and no matching rule, the customer sees a friendly "Nutrition information has not been configured for this product yet" message instead of an empty label.


    5. Widgets

    The app ships one embeddable widget you can drop into other SmartLinks surfaces (product cards, landing pages, etc.):

    Nutrition Widget

    A compact card showing the most important info at a glance:

    • Calories per serving — large number at the top
    • Traffic-light pills for Fat, Saturates, Sugars, and Salt (green / amber / red)
    • A View full label button that opens the full app

    Available in three sizes:

    SizeWhen to use
    compactTight spaces — sidebars, list rows. Smaller text and pills.
    standardDefault. Full card with all the highlights.
    largeHero placement — larger numbers and more padding.

    The widget pulls data automatically using the same rules as the admin: the most specific record wins (product over rule).


    6. Managing your records

    Previewing

    The live preview pane on the right of the editor always shows exactly what the customer will see for the currently selected scope. The scope picker above the preview lets you check product, variant, or batch level. A badge tells you whether the data is set here or inherited from a less-specific record.

    Editing

    Select the record in the left rail, change the values, and Save in the footer. There's no separate "edit" mode — the form is always editable.

    Removing nutrition from a record

    Use the Delete action on a record to remove it. Once a product's own record is deleted, it falls back to any rule that matches it — or shows no nutrition if nothing else applies.

    Switching display settings later

    The defaults you picked during setup (default format, enabled formats, health claims toggle, food vs beverage) can be changed at any time. The quickest way to change the default label format is the label-format popover in the top-right of the admin header — pick Auto or a specific format and it saves for the whole collection. The other display settings are runtime/tunable settings in the SmartLinks Admin Console and don't require re-doing setup.


    7. Bulk import (CSV)

    For brands with many products, you can import nutrition for multiple products at once instead of entering them one by one. This is the fastest way to load data from a PIM or ERP export.

    CSV template

    productId,energyKcal,energyKj,fat,saturatedFat,carbohydrate,sugars,fibre,protein,salt,servingSize,servingSizeUnit,productType
    prod_001,250,1046,12,3.5,30,8,2.5,8,1.2,30,g,food
    prod_002,180,753,4.2,1.1,28,6,3.0,7,0.8,40,g,food
    prod_003,42,176,0,0,10.5,10.5,0,0,0.01,330,ml,beverage
    

    Field reference

    ColumnRequiredTypeNotes
    productIdYestextThe SmartLinks product ID (must already exist in the collection)
    energyKcalYesnumberEnergy in kcal per 100 g/ml
    energyKjNonumberEnergy in kJ per 100 g/ml — recommended for EU labels
    fatYesnumberTotal fat, g per 100 g/ml
    saturatedFatYesnumberSaturated fat, g per 100 g/ml
    carbohydrateYesnumberg per 100 g/ml
    sugarsYesnumberg per 100 g/ml
    fibreYesnumberg per 100 g/ml
    proteinYesnumberg per 100 g/ml
    saltYesnumberg per 100 g/ml
    servingSizeNonumberDefaults to 100
    servingSizeUnitNotextg or ml. Defaults to g.
    productTypeNotextfood or beverage. Defaults to food.

    Tips

    • Save the file as UTF-8 CSV.
    • Make sure productId exactly matches the IDs in your collection — typos are the #1 cause of skipped rows.
    • For beverages, set servingSizeUnit to ml so labels show per-100 ml.
    • Imports overwrite existing per-product data for the same product — no merge.

    8. FAQ & troubleshooting

    Why doesn't anything show up for my product? There's no product record saved and no rule that matches it. Open the product in admin and either fill in the form on the Product scope, or create a Rule whose facet conditions match it.

    My product is showing values I didn't enter. It's inheriting from a less-specific record — usually a rule. Look at the inherited notice at the top of the editor — it tells you the values are coming from a parent scope. To override, click Start from parent values (or just type new ones) and save on the Product scope.

    I changed a rule's values but one product still shows the old numbers. That product probably has its own product record, which always wins over a rule. Delete the product record if you want it to inherit from the rule again.

    The AI scan got the numbers wrong. Always review the values after a scan. Lighting, glare, and rotated photos reduce accuracy. Re-take the photo in good light, or just edit the wrong fields by hand and save.

    Traffic light colours look wrong. Traffic lights use UK FSA thresholds and depend on Product Type. Check the Serving tab — if you've set a beverage as "food" (or vice versa), thresholds will be off. Switch the Product Type and save.

    My CSV import skipped some rows. Most common causes:

    • A productId doesn't exist in this collection
    • A required column (energy, fat, sugars, salt etc.) is blank or non-numeric
    • The file isn't saved as UTF-8 CSV Re-export and try again — the importer will tell you which rows failed.

    Can I change the default label format after going live? Yes. It's a runtime setting — change it any time from the label-format popover in the top-right of the admin header (or the SmartLinks Admin Console) without re-running setup. Choose Auto to follow each visitor's locale.

    Can I have a product show in US FDA format while another shows in EU FIC? The collection has one default format. Customers can switch formats themselves if you've enabled multiple formats in setup.

    What happens to health claims I haven't validated? They're saved with your record but not shown to customers until you toggle them as "Valid". This stops draft or unverified claims from accidentally going public.

    Future surfaces

    This app does not currently ship a MobileAdminContainer. If a field/operator workflow (NFC/RFID/QR scanning, in-the-field check-in/authorisation) is added later, follow migration step 12.