For the complete documentation index, see llms.txt. This page is also available as Markdown.

Cosmetics Filling Plant

This cookbook walks you through setting up TilliT for a cosmetics filling and packing plant. By the end, you will have a fully configured site with filling and packing lines, shift patterns, GMP-compliant quality activities, batch traceability, material tracking, and a scheduler that can plan and optimise production runs.

The setup is based on a real-world cosmetics facility that fills and packs products such as shampoos, lotions, body washes, and creams across several filling lines. The plant operates with two-shift patterns, follows GMP (Good Manufacturing Practice) procedures, and integrates with an ERP system (e.g. SAP) for production orders and batch management.

All names used in this guide are generic examples. Replace them with your own site, line, and product names.


Prerequisites

Before you begin, ensure you have:

  • A TilliT tenant provisioned for your organisation

  • An administrator account with access to Settings

  • The Excel Add-in installed (recommended for bulk data loading)

For a general introduction to TilliT setup concepts, see Introduction for New TilliT Customers.


1

Create the Site

A site represents the physical location of your production plant.

Go to Settings -> Asset Hierarchy -> Sites -> Create

Field
Example Value

Name

Cosmetics Plant

Timezone

Europe/Helsinki

Location Code

CP

For more detail, see Site.

2

Define Asset Classes

Asset classes group similar types of equipment. A cosmetics filling plant typically has the following asset classes:

Asset Class
Description

Cosmetic Lines

The parent filling/packing lines

Cosmetic Fillers

Filling machines (volumetric, piston, or gravimetric) — also cap on combined fill/cap monoblocks

Cosmetic Labellers

Labelling machines — also apply batch/date coding

Cosmetic Case Packers

Case/carton packing machines

Cosmetic Palletisers

Palletising machines or stations

Cosmetic QA

Quality assurance station (shared)

Asset classes are global across the tenant. Prefix yours (e.g. Cosmetic Lines) so the cosmetics plant has its own classes instead of inheriting another site's model (e.g. an existing wine-bottling site that also uses generic Lines/Fillers). This keeps reporting, run-rate templates, and activity assignments scoped to the cosmetics line.

This guide models lines where capping is built into the filler and coding is built into the labeller, and weight verification is an in-process check — so there are no separate Capper, Coding, or Checkweigher asset classes. If your plant runs those as standalone machines, add those classes and the matching assets.

Some plants may also have dedicated asset classes for:

  • Bulk Holding - bulk/compounding tanks feeding the filler

  • Shrink Wrappers - overwrap or shrink-wrap stations

Go to Settings -> Asset Hierarchy -> Asset Class -> Create

Create one asset class for each type listed above. See Asset Class for details.

3

Build the Asset Hierarchy

Assets represent the individual machines on each line. In a cosmetics plant the hierarchy follows this pattern:

Site
├── Line 1 (class: Cosmetic Lines)
│   ├── Line 1 Filler (class: Cosmetic Fillers)        ← also caps (capping merged into the filler)
│   ├── Line 1 Labeller (class: Cosmetic Labellers)    ← also codes (batch/date coding merged into the labeller)
│   ├── Line 1 Case Packer (class: Cosmetic Case Packers)
│   └── Line 1 Palletiser (class: Cosmetic Palletisers)
├── Line 2 (class: Cosmetic Lines)
│   ├── Line 2 Filler (class: Cosmetic Fillers)
│   ├── Line 2 Labeller (class: Cosmetic Labellers)
│   ├── Line 2 Case Packer (class: Cosmetic Case Packers)
│   └── Line 2 Palletiser (class: Cosmetic Palletisers)
├── ...additional lines...
└── QA (class: Cosmetic QA)  ← shared across all lines

Key points

  • Filling lines follow a linear flow: Filler -> Labeller -> Case Packer -> Palletiser.

  • On these lines, capping is performed on the filler (combined fill/cap monoblock) and batch/date coding is performed at the labeller, so there are no separate Capper or Coder stations. Weight checks are captured as in-process quality checks rather than a dedicated checkweigher asset.

  • Not every line has every station - some may share a palletiser.

  • Shared assets like QA sit at the top level, not under a specific line.

  • Use Display Order to control the sequence assets appear in the UI (e.g. 100, 200, 300).

  • Each line is typically identified by a work centre code from the ERP (e.g. WC-LINE1).

Go to Settings -> Asset Hierarchy -> Assets -> Create

Create each asset, assign it to the correct asset class, and set the parent asset for child equipment. See Asset for details.

For sites with many assets, use the Excel Add-in to create assets in bulk.

4

Configure Shifts

Shift templates define the working hours for each line. A cosmetics plant typically operates two shifts on weekdays:

Shift Template
Start Time
Duration
Description

Morning 8hr

06:00

8 hours

Standard morning shift

Afternoon 8hr

14:00

8 hours

Afternoon shift

Morning 10hr

06:00

10 hours

Extended morning shift

Afternoon 10hr

16:00

10 hours

Extended afternoon shift

16x5

--

--

2-shift coverage (Mon-Fri, 06:00-22:00)

Creating shift schedules

Setting up shifts is a two-step process: first, you define the overall shift pattern (Shift Template and its Items); then, you link that pattern to your equipment using a Shift Calendar.

1

Create and Configure the Shift Template

  1. Go to: Settings -> Asset Hierarchy -> Shift Templates -> Create.

  2. Create the required shift templates.

  3. Within each created template, go to: Items

  4. Define the specific shift periods, including their start times and durations.

See Creating a Shift Template for details.

2

Assign Shifts to Assets

Once your templates and items are ready, create calendars to map these schedules to the correct assets.

Since not every line runs the same schedule, calendars ensure each asset accurately reflects its real-world operating schedule.

  1. Go to: Settings -> Asset Hierarchy -> Calendars -> Create.

  2. Add your Shift Template as a calendar Item.

  3. Select the relevant asset and apply the template.

5

Set Up Units of Measure

Before creating materials and process variables, define the units of measure your site will use.

Unit
Description

PC

Pieces (bottles, caps, labels, cases)

KG

Kilograms (bulk product)

g

Grams (fill weight)

mL

Millilitres (fill volume)

mm

Millimetres (label placement, dimensions)

%

Percentage

EA

Each

Go to Settings -> Configuration -> Unit of Measure -> Create

See Unit of Measure for details.

6

Create Material Groups

Material groups categorise your raw materials, packaging components, and finished goods. For a cosmetics plant:

Group
Description

Finished Goods

Finished packaged cosmetics products (SKUs)

Bulk

Bulk/compounded product (formulations)

BOT

Bottles, tubes, jars, and containers

CAP

Caps, closures, pumps, and applicators

LAB

Labels (front, back, neck, wrap)

CAR

Cartons and cases (shelf-ready, shipper)

PAL

Pallets, slip sheets, stretch wrap, layer pads

BTL

Batch labels (blank and printed)

PKG

Secondary packaging (gift boxes, sleeves, shrink wrap)

Go to Settings -> Material Definition -> Material Groups -> Create

See Material Group for details.

Match your material groups to how your ERP categorises components in the bill of materials. This makes order integration straightforward.

7

Add Materials

Materials represent the specific items consumed or produced. A cosmetics plant typically has hundreds of materials across groups.

Typical material types:

  • Bulk products - the compounded formulation (shampoo base, lotion, cream), measured in KG

  • Bottles/containers - plastic bottles, tubes, jars, identified by volume and mould code

  • Closures - caps, pumps, applicators, flip-tops

  • Labels - front labels, back labels, often product-specific

  • Cases - carton/shipper boxes, sized to the product (e.g. 6x300mL)

  • Batch labels - blank paper labels for batch/lot marking

  • Finished goods - the final packaged product (SKU)

Go to Settings -> Material Definition -> Materials -> Create

For bulk loading, use the Excel Add-in to import materials from a spreadsheet.

See Material for details.

8

Define Attributes

Attributes store metadata against orders, materials, and assets. In a cosmetics filling plant, think of them as the product's "Manufacturing Specification Sheet" or identity card. They hold details about a work order, such as fragrance, colour, and package size. TilliT uses them to show relevant fields and calculate changeover times.

Order Number Attributes

These attach to all work orders that share the same Order Number. They are useful when production orders are split into multiple operations but still need shared information. When orders are loaded via the API, these attribute values can be provided in the payload. See Step 14. Group them by purpose:

Product & Batch

Attribute
Data Type
Purpose

MaterialNumber

STRING

ERP material/SKU code

BatchNumber

STRING

Production batch number

BulkBatchNumber

STRING

Bulk/compounding batch number

BulkMaterialCode

STRING

Bulk material code from ERP

BulkLotNumber

STRING

Bulk lot number for traceability

BestBefore

STRING

Best-before / expiry date

ProductionDate

STRING

Date the bulk was produced

StorageConditions

STRING

Storage temperature range (e.g. 10-30 C)

Fill Specifications

Attribute
Data Type
Purpose

NominalFillVolume

NUMBER

Nominal fill volume in mL

NominalFillWeight

NUMBER

Nominal fill weight in g

MinFillWeight

NUMBER

Minimum acceptable fill weight

FillNozzles

NUMBER

Number of filler nozzles/heads in use

ProductViscosity

STRING

Product viscosity category (low, medium, high)

Packaging Configuration

Attribute
Data Type
Purpose

BottleCode

STRING

Bottle/container material code

ClosureCode

STRING

Cap/closure material code

ClosureType

STRING

Closure type (screw cap, pump, flip-top, applicator)

LabelCode

STRING

Label material code

CaseConfig

STRING

Case packing configuration (e.g. 6x300mL)

UnitsPerCase

NUMBER

Number of units per case

CaseDimensions

STRING

Case dimensions (LxWxH in mm)

Palletising

Attribute
Data Type
Purpose

PalletType

STRING

Pallet type (EURO, standard)

CasesPerLayer

NUMBER

Cases per pallet layer

LayersPerPallet

NUMBER

Number of pallet layers

CasesPerPallet

NUMBER

Total cases per pallet

UnitsPerPallet

NUMBER

Total finished units per pallet

LayerPad

BOOLEAN

Layer pad/divider between layers

UnitWeight

NUMBER

Weight of a single packed unit (kg)

General

Attribute
Data Type
Purpose

EANCode

STRING

Consumer package EAN barcode

GS1String

STRING

Full GS1 barcode string for case label

SpecialInstructions

STRING

Special handling or production notes

PreviousProduct

STRING

Previous product on line (for line clearance)

WorkCentre

STRING

ERP work centre code

Material Attributes

Attribute
Data Type
Purpose

ProductCategory

STRING

Product category (shampoo, lotion, cream, body wash, etc.)

Fragrance

STRING

Fragrance family or code

Colour

STRING

Product colour

Go to Settings -> Configuration -> Attributes -> Create

See Attribute for details.

You do not need to create all attributes manually before loading orders. When you use the order upsert API in Step 14, any attribute that does not already exist will be created automatically.

9

Set Up Process Variables

Process variables define the measurements and checks that operators capture during production. In cosmetics, fill weight and label placement are the most critical.

Fill Weight

Process Variable
UoM
Upper Limit
Lower Limit
Notes

Fill Weight

g

NominalFillWeight+5

MinFillWeight

Referenced from order attributes

Tare Weight

g

--

--

Bottle + closure empty weight

Label Placement

Process Variable
UoM
Upper Limit
Lower Limit
Notes

Label Height From Base

mm

13

9

Distance from bottle base to label edge

Label Alignment

mm

2

-2

Front-to-back label alignment offset

Checkweigher

Process Variable
UoM
Upper Limit
Lower Limit
Notes

Checkweigher Weight

g

NominalFillWeight+10

MinFillWeight-5

In-line 100% weight verification

Tolerance settings

Set a target, upper limit and lower limit on each measured process variable. The tolerance lives on the process variable (and can be overridden per order via the order's tolerances — see Step 14), so any activity item that measures it is judged automatically — you don't add a separate "in tolerance?" checkbox. Default tolerances for this plant:

Process Variable
Target
Lower
Upper
UoM

Fill Weight

315

310

320

g

Tare Weight

8

7

9

g

Checkweigher Weight

315

305

325

g

Label Height From Base

11

9

13

mm

Label Alignment

0

-2

2

mm

Go to Settings -> Configuration -> Process Variable -> Create

See Process Variable for details.

Process variables that reference attributes (like NominalFillWeight) will automatically pull the correct spec from the current work order. This means one activity template works for all products.

When an activity item measures a process variable, set the item's tolerance type to Process Variable and link the PV. The operator enters the reading and the item flags out-of-tolerance against the PV's limits — no separate pass/fail field. The fill weight, tare weight, label height, and label alignment checks all work this way.

10

Create Activity Classes

Activity classes group related activity templates in the UI. For a cosmetics filling plant:

Activity Class
Purpose

Line Setup

Line clearance, changeover, and startup checks

Quality

In-process quality checks (weight, label, visual)

Machine Checks

Equipment verification and sensor testing

Data Capture

Material booking, batch logging, consumption records

Sampling

Lab sample collection (start, during, end of batch)

Cleaning

CIP, line cleaning, and sanitation

End of Run

End-of-batch and teardown activities

Palletising

Pallet configuration and label verification

Go to Settings -> Activity Template -> Activity Classes -> Create

See Activity Class for details.

11

Build Activity Templates

Activity templates are the digital forms that replace the paper-based operation system documents used on the production floor. A cosmetics plant typically has a comprehensive set covering GMP requirements.

Core Activity Categories

Pre-Start Preparation (on Order ready, before the order starts)

These fire on the Order ready event — the order is staged and the line prepared so it can start cleanly. "Ready" precedes "start".

Activity
Triggered by
Assigned to (where)

Stage Order Materials

Order ready

Cosmetic Lines

Bulk Product Hook-up

Order ready

Cosmetic Fillers

Change Parts Setup

Order ready

Cosmetic Lines

Label and Coding Reel Load

Order ready

Cosmetic Labellers

Pre-Start Readiness Confirmation

Order ready

Cosmetic Lines

Line Setup & Clearance (before production starts)

Activity
Triggered by
Assigned to

Previous Product Clearance

Order start

operators

Line Inspection & Cleaning

Order start

operators

Wash & Disinfection Confirmation

Order start

operators

Capper Rejection Test

Order start

operators

Rejection Sensor Test

Order start

operators

Case Packer Program Verification

Order start

operators

Checkweigher Setup

Order start

operators

Line Function Confirmation

Order start

operators

Material & Batch Verification

Activity
Triggered by
Assigned to

Work Order Verification

Order start

operators

Material Verification

Order start

operators

Bulk Product Verification

Order start

operators

Printed Material Verification

Order start

operators

EAN Barcode Verification

Order start

operators

Material Booking Confirmation

Order start

operators

In-Process Quality Checks

Activity
Triggered by
Assigned to

Closure Tightness Check

Order start

operators

Closure Leak Test

Interval (hourly)

operators

Reject Lane Inspection

Interval

operators

Visual Quality Check

Interval

operators

Batch Marking Verification

Order start

operators

Fill Weight Check

Interval (hourly)

operators

Tare Verification

Batch change

operators

Label Placement Check

Order start

operators

Sampling

Activity
Triggered by
Assigned to

Start-of-Batch Lab Samples

Order start

operators

Mid-Batch Lab Samples

Interval

operators

End-of-Batch Lab Samples

Order end

operators

Lab sample activities collect physical samples from the line for laboratory testing. Each activity should prompt the operator to record the sample details and confirm the sample has been taken. Below are example form structures for each sampling point.

Start-of-Batch Lab Samples - collected from the first units off the line to confirm the product meets specification before full production begins.

Form Item
Type
Example / Notes

Sample Time

Date/Time

Auto-filled with current timestamp

Batch Number

Text (read-only)

Pulled from order attribute BatchNumber

Bulk Batch Number

Text (read-only)

Pulled from order attribute BulkBatchNumber

Fill Weight Sample 1

Number (g)

Weigh first sample unit

Fill Weight Sample 2

Number (g)

Weigh second sample unit

Fill Weight Sample 3

Number (g)

Weigh third sample unit

Appearance Check

Select

Clear / Cloudy / Off-colour / Contains particles

Fragrance Check

Select

Correct / Incorrect / Weak / Strong

Viscosity Check

Select

Within spec / Too thin / Too thick

pH Reading

Number

Measured with pH meter (e.g. target 5.0-6.5 for shampoo)

Closure Torque Sample

Number (Nm)

Torque test on 3 units (e.g. target 1.2-1.8 Nm)

Label Adhesion OK

Checkbox

Confirm label is firmly adhered, no peeling or bubbling

Sample Sent to Lab

Checkbox

Operator confirms physical sample placed in lab tray

Operator Comments

Text

Free-text field for any observations

Mid-Batch Lab Samples - collected at regular intervals (e.g. every 2 hours or every 3000 units) during the run to monitor ongoing quality.

Form Item
Type
Example / Notes

Sample Time

Date/Time

Auto-filled with current timestamp

Units Produced at Sample

Number

Count at time of sampling

Fill Weight Sample 1

Number (g)

Weigh first sample unit

Fill Weight Sample 2

Number (g)

Weigh second sample unit

Fill Weight Sample 3

Number (g)

Weigh third sample unit

Average Fill Weight

Number (g)

Auto-calculated from samples

Appearance Check

Select

Clear / Cloudy / Off-colour / Contains particles

Viscosity Check

Select

Within spec / Too thin / Too thick

pH Reading

Number

pH meter reading

Closure Torque Sample

Number (Nm)

Torque test on 3 units

Label Placement OK

Checkbox

Confirm label height and alignment within spec

Print Quality OK

Checkbox

Batch code, expiry date, and EAN legible

Micro Swab Taken

Checkbox

If required by GMP schedule (e.g. every 4 hours)

Sample Sent to Lab

Checkbox

Operator confirms physical sample placed in lab tray

Operator Comments

Text

Free-text for drift observations or adjustments made

End-of-Batch Lab Samples - collected from the last units off the line to confirm the product remained within specification throughout the run.

Form Item
Type
Example / Notes

Sample Time

Date/Time

Auto-filled with current timestamp

Total Units Produced

Number (read-only)

Final production count

Fill Weight Sample 1

Number (g)

Weigh first sample unit

Fill Weight Sample 2

Number (g)

Weigh second sample unit

Fill Weight Sample 3

Number (g)

Weigh third sample unit

Appearance Check

Select

Clear / Cloudy / Off-colour / Contains particles

Fragrance Check

Select

Correct / Incorrect / Weak / Strong

Viscosity Check

Select

Within spec / Too thin / Too thick

pH Reading

Number

pH meter reading

Closure Torque Sample

Number (Nm)

Torque test on 3 units

Retention Sample Collected

Checkbox

Retain sample stored for shelf-life stability testing

Retention Sample Quantity

Number

Number of units retained (e.g. 6)

Micro Swab Taken

Checkbox

End-of-batch environmental swab if required

Sample Sent to Lab

Checkbox

Operator confirms physical sample placed in lab tray

Batch Release Recommendation

Select

Pass / Conditional / Fail

Operator Comments

Text

Summary observations from the run

Retention samples are a GMP requirement - most cosmetics plants retain 6-12 units per batch for stability and complaint investigation purposes. The retention period is typically equal to the product shelf life plus one year.

Packing & Palletising

Activity
Triggered by
Assigned to

Case Packing Verification

Order start

operators

Case Label Verification

Order start

operators

Pallet Configuration Check

Order start

operators

Transfer Quantity Confirmation

Order end

operators, supervisors

End of Run

Activity
Triggered by
Assigned to

Case Packer Cleaning

Order end

operators

Line Cleaning & Teardown

Order end

operators

Complaint/Reject Sample Collection

Order end

operators

Material Return & Verification

Order end

operators

Run Values Recording

Order end

operators

Deviation Log

Manual

operators, supervisors

Form item types

Each form item has a data type that controls how it is captured and judged. Choose the right one — for a GMP record the difference matters:

Notation
Item data type
Use it for

P/F

Pass / Fail

A quality verdict — the operator records pass or fail, a fail is a recorded non-conformance that can block the order, trigger an event, or require a comment. Use for every GMP check/confirmation.

# → PV

Number with Process-Variable tolerance

A measurement judged automatically against a process variable's target + upper/lower limits (set the item's tolerance type to Process Variable). The reading itself flags in/out of spec — no separate pass/fail item.

#

Number

A plain count or value with no tolerance (e.g. units produced, reject count).

barcode

Barcode

Operator scans a code; validate by length/fields (e.g. EAN-13) or GS1 structure.

material

Material

Scan or select a material; validates the scan against the order's expected material (via the material's barcode reference).

txt

Text

Free text or a reference code (batch number, operator name).

Date / Time

Timestamps (e.g. sample time).

Every activity carries the items operators complete. The three lab sampling activities are detailed in full above (their fill-weight, torque, and pH readings are # → PV measurements); the rest use the concise sets below.

Pre-Start Preparation (Order ready)

Activity
Form items

Stage Order Materials

P/F Bulk Staged, P/F Bottles Staged, P/F Caps Staged, P/F Labels Staged, P/F Cases Staged

Bulk Product Hook-up

Bulk Batch Number, P/F Bulk Connected, P/F Lines Purged

Change Parts Setup

Bottle Size, P/F Change Parts Fitted, Closure Type, P/F Tooling Set

Label and Coding Reel Load

Label Code, P/F Reel Loaded, P/F Coding Ribbon Loaded, P/F Print Verified

Pre-Start Readiness Confirmation

P/F All Materials Staged, P/F Line Set Up, P/F Ready to Start, Confirmed By

Line Setup & Clearance

Activity
Form items

Previous Product Clearance

Previous Product, P/F Line Cleared of Previous Product, Cleared By

Line Inspection & Cleaning

P/F Line Visually Clean, P/F No Foreign Material Present, Inspected By

Wash & Disinfection Confirmation

P/F Wash Completed, Disinfectant Used, P/F Contact Time Met

Capper Rejection Test

P/F Test Cap Rejected, P/F Reject Mechanism OK

Rejection Sensor Test

P/F Sensor Triggered, P/F Reject Confirmed

Case Packer Program Verification

Program Number, P/F Correct Program Loaded

Checkweigher Setup

# Checkweigher Weight → PV (g), P/F Calibration Check Passed

Line Function Confirmation

P/F All Stations Operational, Confirmed By

Material & Batch Verification

Activity
Form items

Work Order Verification

P/F Order Number Correct, P/F Material Matches Order

Material Verification

Material Code, Batch Number, P/F Material Verified

Bulk Product Verification

Bulk Batch Number, Bulk Material Code, P/F Bulk Verified

Printed Material Verification

Label Code, P/F Print Correct

EAN Barcode Verification

barcode Scan EAN (EAN-13), material Verify Material (scan is validated against the order's product)

Material Booking Confirmation

# Quantity Booked, P/F Booking Confirmed

In-Process Quality

Activity
Form items

Closure Tightness Check

# Torque Reading → PV: Closure Torque

Closure Leak Test

# Units Tested, P/F Leak Detected

Reject Lane Inspection

P/F Rejects Present, # Reject Count

Visual Quality Check

P/F Appearance OK, Defects Noted

Batch Marking Verification

P/F Batch Code Legible, P/F Expiry Date Correct

Fill Weight Check

# Fill Weight → PV: Fill Weight (g)

Tare Verification

# Tare Weight → PV: Tare Weight (g)

Label Placement Check

# Label Height → PV (mm), # Label Alignment → PV (mm)

Packing & Palletising

Activity
Form items

Case Packing Verification

# Units Per Case, P/F Case Config Correct

Case Label Verification

P/F Case Label Correct, P/F GS1 Scan OK

Pallet Configuration Check

# Cases Per Layer, # Layers Per Pallet, P/F Config Correct

Transfer Quantity Confirmation

# Quantity Transferred, Confirmed By

End of Run

Activity
Form items

Case Packer Cleaning

P/F Cleaning Completed, Cleaned By

Line Cleaning & Teardown

P/F Teardown Completed, P/F Line Clean

Complaint/Reject Sample Collection

# Samples Collected, P/F Samples Stored

Material Return & Verification

Material Returned, # Quantity Returned, P/F Return Verified

Run Values Recording

# Total Produced, # Total Rejects, # Downtime Minutes

Deviation Log

Deviation Description, Action Taken

These are starter item sets to get each activity functional. Expand them with option lists, barcode scans, and calculated fields as your GMP procedures require.

When and where (triggers and placement)

Each activity needs a When (a trigger / activity starter) and a Where (an assignment to an asset class). For these lines:

When — triggers

Trigger
Event
Activities

Order ready

Order ready

Pre-start prep: Stage Order Materials, Bulk Product Hook-up, Change Parts Setup, Label and Coding Reel Load, Pre-Start Readiness Confirmation

Order start

Order started

All line-setup & clearance, all material/batch verification, Closure Tightness, Batch Marking, Label Placement, Start-of-Batch Lab Samples, Case Packing/Label Verification, Pallet Configuration Check

Hourly

Order started + 60-min interval

Closure Leak Test, Fill Weight Check

Periodic

Order started + 120-min interval

Reject Lane Inspection, Visual Quality Check, Mid-Batch Lab Samples

Batch change

Order changeover started

Tare Verification

Order end

Order completed

End-of-Batch Lab Samples, Transfer Quantity Confirmation, Case Packer Cleaning, Line Cleaning & Teardown, Complaint/Reject Sample Collection, Material Return & Verification, Run Values Recording

Manual

Activity Manual Start

Deviation Log

Where — assigned to asset class

Asset class
Activities

Cosmetic Lines

Clearance/inspection/wash, Line Function, Work Order/Material/Bulk/Booking verification, Reject Lane, Visual Quality, all Lab Samples, Transfer Quantity, all End-of-Run

Cosmetic Fillers

Capper Rejection Test, Rejection Sensor Test, Checkweigher Setup, Closure Tightness, Closure Leak, Fill Weight, Tare Verification (capping + weight live on the filler)

Cosmetic Labellers

Printed Material & EAN Verification, Batch Marking, Label Placement (labelling + coding)

Cosmetic Case Packers

Case Packer Program Verification, Case Packing & Case Label Verification, Case Packer Cleaning

Cosmetic Palletisers

Pallet Configuration Check

When = an Activity Starter (event type, plus an interval for periodic checks). Where = an Activity Assignment binding the template + starter to an asset class. Assigning to a class (e.g. Cosmetic Fillers) applies the activity to that station on every line automatically. Interval checks combine the start event with a repeat interval (e.g. every 60 minutes after the order starts).

Building an activity template

For each activity, you need to:

  1. Create the template with a name and activity key.

  2. Assign it to an activity class.

  3. Set the "Claimable By" field to define who can see and claim the activity.

  4. Configure the trigger to define when it fires.

  5. Build the form items that operators fill in.

Go to Settings -> Activity Template -> Activity Template -> Create

See Creating an Activity for a complete walkthrough.

For trigger types, see When and Where.

Start with the line setup and clearance activities first. These are the GMP-critical checks that must happen before every production run. Expand to in-process and end-of-run activities once the team is comfortable.

12

Configure Order Templates

Order templates define how a work order is executed across a line. They specify which machines within the line participate in the order and the operation type for each stage.

Filling Line (Line 1 example)

Order Template
Operation
From Asset
To Asset

Line 1 Filler

FILLER

Line 1

Line 1 Filler

Line 1 Labeller

LABELLER

Line 1

Line 1 Labeller

Line 1 Case Packer

CASE_PACKER

Line 1

Line 1 Case Packer

Line 1 Palletiser

PALLETISER

Line 1

Line 1 Palletiser

QA

QA

Line 1

QA

Repeat this pattern for each line. (No separate Capper/Coder/Checkweigher templates — capping runs on the filler and coding on the labeller.)

Order template components

Each order template can declare the material groups it consumes, so the bill of materials cascades to the right station when an order is created. For these combined lines:

Order Template
Consumes (material groups)

Filler

Bulk, BOT (bottles), CAP (closures — capping is on the filler)

Labeller

LAB (labels)

Case Packer

CAR (cases), BTL (batch labels)

Palletiser

PAL (pallets)

QA

Go to Settings -> Asset Hierarchy -> Order Templates -> Create

See Order Template for details.

13

Set Up the Scheduler

Once Digital Operations is configured, you can set up the Scheduler to plan and optimise production runs.

1

Create the Data Template

The Default Data Template links the Scheduler to the Digital Operations site and connects scheduler equipment to live production data.

In newly provisioned environments, sections such as Equipment, Availability, Optimisation, and Changeovers may not be available until a Data Template has been created.

Go to Scheduler -> Data Templates -> Create

Create the Default Data Template.

See Data Templates for details.

2

Create Scheduler Equipment

Each filling line becomes a piece of equipment in the Scheduler:

Equipment (Name)
External ID (Code)
Display Order

Line 1

Line 1

1

Line 2

Line 2

2

Line 3

Line 3

3

See Equipment for details.

3

Create Availability Templates

Typical availability patterns for a cosmetics plant:

Template (Code)
Name
Description
Days

16x5

16 Hours Mon-Fri

Mon-Fri, 06:00-22:00 (2 shifts)

Mon-Fri

8x5

8 Hours Mon-Fri

Mon-Fri, 06:00-14:00 (day shift only)

Mon-Fri

After creating the templates, assign one to each line - a line with no availability has no working calendar and the scheduler can't place work on it. Assign 16x5 to all three lines for two-shift coverage (or 8x5 for a day-shift-only line).

See Availability for details.

4

Define Optimisation Properties

Optimisation properties are the characteristics the scheduler uses to sequence orders and calculate changeover times. For cosmetics filling:

Property (Name)
Example Values
Description

Product Category

Shampoo, Lotion, Cream, Body Wash, Conditioner

Drives cleaning requirements between categories

Fragrance

Unscented, Floral, Citrus, Fresh Mint...

Fragrance changes may require line flush

Colour

Clear, White, Pink, Blue...

Dark-to-light transitions need more cleaning

Bottle Size

100mL, 200mL, 300mL, 500mL

Size changes require filler head and packer adjustments

Closure Type

Screw Cap, Pump, Flip-Top, Applicator

Closure changes require capper changeover

A property only affects sequencing if your finished-good materials carry its value. Each finished good should be tagged with all five properties (e.g. Moisturising Shampoo 300mL = Product Category Shampoo, Fragrance Floral, Colour Clear, Bottle Size 300mL, Closure Type Screw Cap). The scheduler reads these values off the order's product and applies the matching changeover rule. Components (bottles, caps, labels) don't need optimisation properties.

See Optimisation for details.

5

Configure Changeover Rules

Changeovers define the downtime required to clean or mechanically reconfigure a line when switching between products. In cosmetics, changeovers are driven by cleaning and mechanical adjustments.

Key changeover rules for cosmetics filling:

  • Same product category, same fragrance - 15-30 minutes (mechanical changeover only)

  • Same category, different fragrance - 30-60 minutes (partial line flush)

  • Different product category - 60-120 minutes (full wash and disinfection)

  • Colour change (dark to light) - additional 30-60 minutes for cleaning

  • Bottle size change - 20-40 minutes (filler, capper, labeller, case packer adjustments)

  • Closure type change - 15-30 minutes (capper changeover)

Changeover times are entered as a matrix of from-value to to-value for each optimisation property.

These rules are grouped into a changeover set (e.g. Cosmetics Filling). Remember to assign that changeover set to each line - a line not linked to a set won't apply any changeover times when sequencing.

See Changeovers for details.

6

Define Operations and Production Routes

Equipment, availability, and changeovers tell the scheduler where and when it can work. Operations tell it what the work is and how long it takes.

The model is a small hierarchy:

Operation (one per finished good - code = the product's material code)
  └── Route
        └── Segment "Fill and Pack"
              ├── Consumed materials  - the bill of materials (bulk, bottle, cap, label, case, batch label)
              ├── Produced material   - the one finished good this operation makes
              └── Run rate            - throughput in units per second

For each finished good, create an operation with a single Fill and Pack segment that:

  • consumes its components - e.g. Moisturising Shampoo 300mL consumes the shampoo bulk, a 300mL bottle, a screw cap, the 300mL front label, a 6x300mL case, and a batch label;

  • produces the one finished good (the SKU); and

  • declares a run rate in units per second. The scheduler derives an order's duration from quantity ÷ run rate (e.g. 10,000 units at 2 units/s ≈ 1.4 hours of run time, before changeovers). Smaller bottles typically run faster (2.0-2.5 u/s) than larger ones (≈1.5 u/s); and

  • declares an equipment requirement. Match the segment to an equipment class (e.g. Lines) rather than a single line, so the scheduler can place the order on any line in that class. Without an equipment requirement the scheduler has nowhere to run the order.

The run rate replaces a fixed duration: a segment is timed either by a fixed duration or by a throughput rate. For filling lines, the per-product run rate is what you want, since duration then scales with order quantity.

See Operations for details.

7

Load Scheduler Data

For bulk loading of scheduler master data, including equipment properties, availability calendars, and changeover matrices, use the Excel Add-in.

See Loading data with Excel Add-in for details.

14

Integrate Order Loading from ERP

In most cosmetics plants, production orders originate in an ERP system such as SAP and need to flow into TilliT automatically. Use the POST:/core/order-instances/upsert endpoint to load orders with all their attributes, tolerances, and components.

Order Payload Structure

The upsert endpoint accepts an array of orders. Below is an example based on a typical cosmetics production order for a 300mL shampoo:

[
  {
    "orderNumber": "WO-20260428-001",
    "orderDate": "2026-04-21",
    "dueDate": "2026-04-29",
    "scheduledStart": "2026-04-28T06:00:00",
    "scheduledEnd": "2026-04-29T14:00:00",
    "quantityTarget": 9500,
    "defaultRunRate": 120,
    "status": "NEW",
    "name": "Moisturising Shampoo 300mL",
    "asset": "Line 1",
    "batchNumber": "B26041",
    "material": {
      "externalId": "FG-SH-300",
      "name": "Moisturising Shampoo 300mL"
    },
    "attributes": [
      { "attributeName": "MaterialNumber", "value": "FG-SH-300" },
      { "attributeName": "BatchNumber", "value": "B26041" },
      { "attributeName": "BulkMaterialCode", "value": "BLK-SH-001" },
      { "attributeName": "BulkBatchNumber", "value": "B26040" },
      { "attributeName": "BulkLotNumber", "value": "LOT-2026-04-001" },
      { "attributeName": "ProductionDate", "value": "2026-04-22" },
      { "attributeName": "BestBefore", "value": "2029-04" },
      { "attributeName": "StorageConditions", "value": "10-30 C" },
      { "attributeName": "NominalFillVolume", "value": "300" },
      { "attributeName": "NominalFillWeight", "value": "315" },
      { "attributeName": "MinFillWeight", "value": "310" },
      { "attributeName": "BottleCode", "value": "BOT-300-RND" },
      { "attributeName": "ClosureCode", "value": "CAP-SC-28" },
      { "attributeName": "ClosureType", "value": "Screw Cap" },
      { "attributeName": "LabelCode", "value": "LAB-SH-300" },
      { "attributeName": "CaseConfig", "value": "6x300mL" },
      { "attributeName": "UnitsPerCase", "value": "6" },
      { "attributeName": "PalletType", "value": "EURO" },
      { "attributeName": "CasesPerLayer", "value": "55" },
      { "attributeName": "LayersPerPallet", "value": "4" },
      { "attributeName": "CasesPerPallet", "value": "220" },
      { "attributeName": "UnitsPerPallet", "value": "1320" },
      { "attributeName": "LayerPad", "value": "true" },
      { "attributeName": "UnitWeight", "value": "1.8" },
      { "attributeName": "EANCode", "value": "5901234123457" },
      { "attributeName": "WorkCentre", "value": "WC-LINE1" },
      { "attributeName": "SpecialInstructions", "value": "" }
    ],
    "tolerances": [
      { "processVariableName": "Fill Weight", "target": 315, "lowerLimit": 310, "upperLimit": 320 },
      { "processVariableName": "Checkweigher Weight", "target": 315, "lowerLimit": 305, "upperLimit": 325 },
      { "processVariableName": "Label Height From Base", "target": 11, "lowerLimit": 9, "upperLimit": 13 }
    ],
    "orderComponents": [
      { "componentExternalId": "BOT-300-RND", "componentGroup": "BOT", "componentName": "300mL Round Bottle", "target": 9785 },
      { "componentExternalId": "CAP-SC-28", "componentGroup": "CAP", "componentName": "28mm Screw Cap", "target": 9785 },
      { "componentExternalId": "LAB-SH-300", "componentGroup": "LAB", "componentName": "Shampoo Front Label 300mL", "target": 10450 },
      { "componentExternalId": "CAR-6x300", "componentGroup": "CAR", "componentName": "Case 6x300mL", "target": 1635 },
      { "componentExternalId": "BTL-100x74", "componentGroup": "BTL", "componentName": "Batch Label 100x74mm", "target": 1666 },
      { "componentExternalId": "BLK-SH-001", "componentGroup": "Bulk", "componentName": "Moisturising Shampoo Bulk", "target": 2994 }
    ]
  }
]

Key points

  • asset - set to the parent line name. If order templates are configured in Step 12, the order automatically cascades to child assets.

  • batchNumber - the production batch number from the ERP. This is critical for GMP traceability.

  • attributes - all values are strings, even for BOOLEAN and NUMBER types.

  • tolerances - override the default process variable limits for this specific order.

  • orderComponents - the bill of materials for the order. Quantities can include overages.

  • Upsert behaviour - if you send a work order that matches an existing combination of orderNumber, operation, and asset, TilliT updates the existing order instead of creating a duplicate.

  • Auto-creation - materials, attributes, UoMs, and tolerances that do not already exist will be created automatically.

Typical attribute categories in the payload

Category
Attributes
Purpose

Product & batch

MaterialNumber, BatchNumber, BulkBatchNumber, BulkMaterialCode, BulkLotNumber, BestBefore

GMP traceability

Fill specs

NominalFillVolume, NominalFillWeight, MinFillWeight, FillNozzles, ProductViscosity

Filler setup and weight checks

Packaging

BottleCode, ClosureCode, ClosureType, LabelCode, CaseConfig, UnitsPerCase

Line setup and material verification

Palletising

PalletType, CasesPerLayer, LayersPerPallet, CasesPerPallet, UnitsPerPallet, LayerPad

Pallet build configuration

Barcoding

EANCode, GS1String

Barcode verification and case labels

General

SpecialInstructions, WorkCentre, PreviousProduct

Operator notes and line clearance

For the full API reference, see Upload Production Schedule.

15

Create Your First Work Order

With all master data in place, you can test by creating a work order manually:

  1. Navigate to the line where you want to run the order.

  2. Click Create Order.

  3. Select the material to produce.

  4. Enter the quantity and batch number.

  5. Fill in the order number attributes.

  6. Start the order.

When the order starts, TilliT automatically triggers the configured activities and the order flows through each machine according to the order template.

See Create adhoc Order and Start an Order for details.

16

Schedule Production (Scheduler)

With the scheduler configured, you can now plan production:

  1. Open the Scheduler.

  2. Import orders from your ERP or create them manually.

  3. Assign orders to lines.

  4. Let the scheduler optimise the sequence based on changeover rules.

  5. Publish the schedule to Digital Operations.

Scheduler orders

A scheduler order is lighter than a Digital Operations work order - it tells the optimiser what to make and by when, and references the operation (the finished good) rather than carrying the full BOM and attributes:

Field
Example
Notes

Order code

WO-2606-001

Unique key (upserts match on it)

Operation

FG-SH-300

The finished good's operation (defines BOM + run rate)

Quantity

10000

In finished units; duration = quantity ÷ run rate

Earliest start / Due date

2026-06-01 / 2026-06-05

The window the optimiser must fit the run into

Priority

1-5

Relative importance when sequencing

Status

Planned

Load new orders as Planned - the optimiser plans these. (Released is for orders already committed/locked.)

New orders should be created with status Planned so the scheduler is free to place and sequence them. Scheduler orders are scoped to the location, not the data template - so a site whose lines share one location shares one order pool.

To load a backlog (e.g. two weeks of orders) in bulk, upsert them via the scheduler order API or the Excel Add-in, then optimise.

See How to Schedule and Scheduler to Digital Operations integration for details.


Summary Checklist

Use this checklist to track your progress:


Last updated