Master Data
Master data forms the basis for correct automated processing. Workist matches all extracted document information against your master data.
You manage your master data in the Master Data Hub: there you create master data lists, assign them to channels, configure the import and check the imported data. Step 2 of the implementation guide describes how to set up the first delivery.
Master Data Types
| Type | Description |
|---|---|
| Customers & Suppliers | Master data for recognising customers or suppliers |
| Customer Contacts | Master data for recognising contact persons |
| Delivery and Invoice Recipients | Addresses for delivery and invoicing |
| (Customer-specific) Articles | Article lists (at least one is required) |
| Unit Conversion | Conversion quotients for units |
| Framework Agreements | Master data for validating framework agreement numbers |
| Quotes | Master data for matching orders against your quotes |
| Orders to Be Matched | Master data for matching order confirmations and invoices against your orders |
Even though customer data is treated as a type of address in many systems, Workist uses its own format for customers!
Which Document Type Uses Which List
In its configuration, a channel points to one master data list per field. The same list can be used in several channels. Delivery and invoice addresses have the same structure, and so do general and customer-specific articles; the channel field determines the role a list plays. You make the assignment in the Master Data Hub.
| Master data list | Channel field | RFQs | Orders | Order confirmations | Invoices | Delivery notes | Lists of services |
|---|---|---|---|---|---|---|---|
| Customers | Client Lookup ID | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Receivers (customer list) | Receiver Lookup ID | ✓ | ✓ | ||||
| Customer contacts | Contact Lookup ID | ✓ | ✓ | ✓ | ✓ | ||
| Internal contacts (contact list) | Internal Contact Lookup ID | ✓ | ✓ | ||||
| Framework agreements | Framework Contract Lookup ID | ✓ | ✓ | ||||
| Invoice addresses | Invoice Address Lookup ID | ✓ | ✓ | ✓ | ✓ | ||
| Delivery addresses | Delivery Address Lookup ID | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Articles (general list) | Article Lookup ID | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Customer-specific articles | Debtor Article Lookup ID | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Unit conversion | Conversion Factor Lookup ID | ✓ | ✓ | ✓ | |||
| Orders to be matched | Order Matching Lookup ID | ✓ | ✓ | ||||
| Quotes | Offer Matching Lookup ID | ✓ |
There are also fields for learned assignments (mappings). Workist fills these lists itself, see Learned data.
File Format
Workist imports CSV files. Files delivered via SFTP can also be Excel files (.xls, .xlsx). The first row contains the column names.
You set the delimiter and encoding in the list's import configuration. Without a setting, Workist reads the file comma-separated and as UTF-8. Workist does not detect the delimiter automatically during the import; the dry run suggests suitable values, though.
Workist recommendation:
| Parameter | Value |
|---|---|
| Delimiter | ; or , |
| Escape character | \ |
| Quote character | " |
| Encoding | UTF-8 |
How Workist Normalises Values During the Import
- Spaces and line breaks: Workist removes leading and trailing spaces from values and column names. It replaces line breaks within a cell with spaces.
- Duplicate rows: Workist imports identical rows only once.
- Numbers (prices, quantities): both comma and point are allowed as decimal separator. If a value contains both, the last one is the decimal separator:
1.234,56and1,234.56both result in 1234.56. Workist always reads a single separator as the decimal separator:1.000results in 1. Exception: theconversion_quotientof the unit conversion requires a point as decimal separator. - Dates:
YYYY-MM-DD(e.g.2024-12-31) or with the day first (e.g.31.12.2024). Dates that Workist cannot read are left empty. - Countries (
country): Workist converts country names and country codes to the two-letter ISO code (e.g.Germany→DE). Values it does not recognise are left empty. - Domains (
domain): Workist lowercases domains and drops free-mail domains such asgmail.com. - Unit lists (
order_units,sales_units): as a list in one cell, e.g.["BOX","PCE"]or['BOX','PCE']. A single value becomes a list with one entry;BOX,PCEwithout square brackets is a single unit. An empty cell is imported as["ST"]. partition_id: Workist stores an emptypartition_idasmain, see the next section.
Assignment to Customers: partition_id
Many lists have a partition_id column. It contains the client_id1 of the customer (or business partner) a row belongs to. Workist then only searches the rows of the recognised customer, which significantly improves recognition.
- Empty
partition_id: Workist stores the row with the partitionmain. Workist offers contacts, addresses, framework agreements, quotes and orders withmainfor every customer, in addition to the rows of the recognised customer. - Articles: There is no fallback to
mainhere. Rows with apartition_idonly apply to this customer. Maintain the general article list without apartition_id. - Unit conversion: The
partition_idonly takes effect if partition-specific unit conversion is enabled in the channel. If Workist finds no conversion for the customer, it uses the conversions without apartition_id. - No check: During the import, Workist does not check whether a customer exists for the
partition_id.
How an Import Replaces Your Data
- Full import (default): Every successful import replaces the entire content of the list. Workist removes rows that are missing from the new file. The new version is active immediately; there is no draft or approval mode.
- Delta import (on request): On request, Workist sets up delta imports for a list. Your file then only contains changed rows and a status column: Workist creates or updates rows with the status
A, deletes rows with any other status (e.g.X), and leaves rows that are not in the file unchanged. Workist agrees with you during setup which columns uniquely identify a row and what the status column is called. If a file has no status column or the column is empty, Workist treats the file as a full import. - Empty file: If a file contains no data rows after reading, Workist cancels the import and keeps the previous data.
- Unchanged file: If neither the file nor the import configuration has changed since the last successful import, Workist takes over its result without processing the file again.
- Newer delivery: If a new file arrives for a list while an older import is still waiting, Workist cancels the older import and imports the new file.
- At most about 12 imports per hour: Per list, Workist starts at most about 12 imports per hour. Workist skips files delivered via SFTP beyond that; via the API and when importing from the SFTP folder in the Master Data Hub, you get an error message.
Data Model
The lists are linked to each other by numbers. These are loose references: during the import, Workist does not check whether a referenced number exists. client_id1 and article_id1 do not have to be unique; an article can, for example, appear several times per customer or per sales organisation. Delivery and invoice addresses (DeliveryAddress, InvoiceAddress) have the same structure, and so do general and customer-specific articles (Article, ClientArticle). The extra_data column is not shown, for clarity.