Sage 100 Connector
Overview
Setting up the connection requires a supported Sage 100 version. From there it takes two things: you configure access inside your Sage 100, and you give us three details that we store on the Workist side.
Prerequisite for your Sage 100
Sage 100 by Sage GmbH (Germany, Austria, Switzerland), version 9.0.8 and above, plus a 3rd Party Gateway licence.
| Step | Where |
|---|---|
| Connect the Sage Connectivity Gateway | Sage Server Manager → Externe API |
| Install the Workist API extension | AppDesigner (metadata import) |
| Apply permissions and Workist fields | AppDesigner or SQL Server Management Studio |
| Enable the databases for the API | Sage 100 Administrator |
| Add the Workist client ID as a user and grant permissions | Sage 100 Administrator |
| Restart the application server | Sage Server Manager |
The complete step-by-step guide with downloads, client ID, permissions and troubleshooting is at Sage 100 – Installation.
Details Workist needs from you
| Detail | Where you find it |
|---|---|
| EntitlementID | Sage Server Manager → Externe API → your server → Konfiguration |
| DataSet | Sage 100 Administrator |
| Document type | Sage 100 Materials Management |
| Version of the Workist API extension | File version of the Workist DLLs, last digit |
Version 9 of the extension adds the price check, open quotes, orders based on a quote and the ERP features of the agents — see Features from version 9.
Supported Sage 100 versions
The connector works with Sage 100 by Sage GmbH — the edition for Germany, Austria and Switzerland. These versions are supported:
| Sage 100 version | Supported |
|---|---|
| 9.0.11 | yes |
| 9.0.10 | yes |
| 9.0.9 | yes |
| 9.0.8 | yes |
| 9.0.7 and older | no |
The Workist API extension contains a separate package for each of these versions. Only the package matching your Sage 100 version is installed — the packages are not interchangeable. Your Sage 100 partner can tell you which version you are running.
If your Sage 100 runs on an older version, an update to at least 9.0.8 is a prerequisite for the connection. If your version is not listed here, talk to us — we will check whether a matching package is available.
From version 9.0.9 onwards, the metadata import creates permissions. With version 9 of the extension, run the supplied SQL script on every Sage 100 version anyway — see Installation, step 4.
In other markets, Sage sells separate products under the same name — for example Sage 100 in the US (formerly Sage MAS 90 and MAS 200) or Sage 100 Comptabilité and Gestion Commerciale in France. These have a different data model and their own version numbering. The Workist Sage 100 connector is not compatible with them.
Setup in your Sage 100
For Workist to read data from your Sage 100 and create documents in it, additional API endpoints are installed in Sage 100. The setup is usually carried out by your IT or your Sage 100 partner, mostly together with Workist. Plan a maintenance window for it: at the end, the application server has to be restarted.
All steps, the downloads and troubleshooting are at Sage 100 – Installation.
Details for the Workist configuration
For Workist to reach your Sage 100 we need three details from you. All three come from your Sage 100 — there is nothing for you to set up on the interface itself. On top of that comes the version of the installed Workist API extension.
| Detail | Where you find it | What it does |
|---|---|---|
| EntitlementID | Server Manager → Externe API → your server → Konfiguration | Identifies your installation in the Connectivity Gateway |
| DataSet | Sage 100 Administrator, status bar or login dialog | Database name, ";" and client number, e.g. WAWI_DB;1 — determines database and client |
| Document type | Sage 100 Materials Management | Determines which document type Workist creates |
| Version of the extension | File version of the Workist DLLs, last digit | Determines which fields and features Workist uses |
EntitlementID
The EntitlementID identifies your Sage 100 installation to the Connectivity Gateway. It is created when the 3rd Party Gateway is licensed and can be viewed in the Sage 100 Server Manager under Externe API → your server → Konfiguration. It cannot be changed there — it is set when the connection is established, see Installation, step 1. The same dialog is where you set which application server requests are forwarded to, and configure a proxy if needed.
DataSet
The DataSet determines which database and which client of your Sage 100 Workist reads from and
writes to. It consists of the database name, a semicolon and the client number — for example
WAWI_DB;1. Write the database name exactly as it appears in Sage 100, without spaces.
You find the database name and client number here:
- Status bar — at the very bottom of the main window of the open Sage 100
- Login dialog — when you select the client, the client number appears directly before the company name
- Sage 100 Administrator — in the left tree under Mandanten (clients)
A connection works in exactly one client. That client's database must be enabled in the Sage 100 Administrator with the option Für API freigeben (enable for API) — see Installation, step 6. Workist creates a separate connection for the test and the production database.
Document type
You decide which document type Workist creates — usually your sales or order processing team. Technically it is addressed through a key. Only sales initial document types can be created; purchase documents such as an order to a supplier are not possible. In standard Sage 100 these are:
| Key | Document type |
|---|---|
VFR | Invoice |
VLL | Delivery note |
VPA | Quote |
VPM | Sample document |
VSD | Direct invoice |
VSL | Immediate invoice |
VSS | Immediate order |
VVA | Order confirmation |
What counts is which document types are configured in your Sage 100 — initial document types you
have created yourself, with their own key, can be used as well. If you do not specify a document
type, Workist creates immediate orders (VSS).
You can also create a document type of your own — for example with the key VVK and the name
"Workist-Bestellung" — so that documents from Workist are recognisable in Sage 100 at a glance.
What is stored in Workist is always the key, not the name. If the key does not exist in the
client, Sage 100 rejects the document with a message that the value is not valid for the document
type key field (Belegtyp-Kennzeichen).
Instead of creating an order confirmation directly, a preliminary document without effect can also be worthwhile: your order processing team checks it and then converts it into an order confirmation. If you change the document type later, check on the next transferred document that the change has taken effect.
One connection creates exactly one document type. If, say, orders and requests for quotation should arrive as different document types, Workist sets up separate connections, each with its own channels.
Sage publishes the full overview in its document API documentation:
Document API – Sage documentation ↗Version of the Workist API extension
The last digit of the file version of the Workist DLLs shows which version of the extension is installed – see Installation, step 9. Workist stores it in the connection (Sage 100 API Version: version 5, 7 or 9). Without a value, Workist works as with version 5.
| Version | What Workist additionally uses |
|---|---|
| 5 | Base scope: reading master data, creating sales documents |
| 7 | The delivery terms from the document (Incoterm) are passed to the document |
| 9 | All features from version 9 |
Workist does not read the version from your Sage 100 itself. Let us know after an update of the extension so we can adjust the version in the connection.
With version 7, Workist passes the delivery terms from the document into the Lieferbedingung (delivery terms) field of the document. Sage 100 only accepts delivery terms that exist in your client there. Check this on a test document before the version is switched.
Quote document type
To match orders against open quotes, Workist reads the quotes of one document type,
VPA (quote) by default. If you use a key of your own for quotes, Workist stores it instead
(Sage 100 Offer Document Type). Requires version 9 of the extension.
Features from version 9 of the extension
With version 9 of the Workist API extension, Workist also reads prices, price lists, stock levels and sales documents from your Sage 100. In Workist, the following features are only available when the connection is set to version 9. With older versions, the related settings are greyed out.
| Feature | Setting in the connection | Default |
|---|---|---|
| Price check against Sage pricing | Check order prices against Sage 100, Compare against | off |
| Prices without a customer | Standard price list | none |
| Open quotes | Sage 100 Offer Document Type, Ignore expired offers | VPA, expired ignored |
| Orders based on a quote | Quote number field in the channel | – |
| Note text as document memo | Note Text field in the channel | – |
| Documents as drafts | Save documents in Sage 100 as drafts | off |
| ERP features of the agents | Allow agentic writes (for writing only) | writing off |
Price check against Sage pricing
For every order line, Workist asks for the price Sage 100 determines for this customer, article, quantity and unit of measure — with your price lists, quantity breaks and customer discounts. Workist checks the ordered unit price against this price. If someone changes the quantity, unit, article or customer in the Workbench, Workist asks for the price again.
- Compare against sets what is compared: the unit price before discount (default) or the net price after the customer discount.
- The unit price check must be switched on in the channel.
- If Sage 100 cannot price a line, for example because the article is missing, Workist checks that line without a target price.
Prices without a customer
Sage 100 only determines a customer price with a customer number. If no customer is known, Workist takes the price from the connection's standard price list (Standard price list). You can choose from the active price lists of your Sage 100 that are valid today. Lists with gross prices are marked in the selection: their prices include VAT.
- The price applies to the article's sales unit and takes quantity breaks into account.
- Workist uses it when no customer is known: for unrecognised callers of the voice agent, in Worki and the inbox agent without a customer, and for the price check of an order without a customer number. The agent gives it as a general price, not as the customer's price.
- Without a standard price list, Workist gives no price without a customer.
Open quotes
With the master data update, Workist reads all open quotes of the quote document type, across all customers. Each article line becomes an entry for quote matching:
- Quote number as document year and number, e.g.
2026-30006 - Customer, quote date and, if set, Angebot gültig bis (valid until)
- Line number from Sage 100, article, description, quantity and unit of measure
A quote is open as long as Sage 100 does not mark it as taken over and nothing has been created from it. Workist does not read quotes with the quote status Übernahme in Vorgang (taken over into the transaction) or Angebot im erfüllten Vorgang (quote in a completed transaction). With Ignore expired offers (on by default), Workist also leaves out quotes whose validity has passed. A quote without a validity date is valid from the quote date. Workist cannot recognise rejected quotes, because Sage 100 does not provide this status through the interface.
Workist only reads the quotes if a quote master data list is set up in a channel of the connection.
Orders based on a quote
If the quote number field is set up in the channel and an order names an open quote from Sage 100, Workist creates the document with a reference to this quote. Sage 100 then keeps the quote and the order in the same transaction (Vorgang) and sets the quote to Angenommen (accepted).
- The lines come from the order, not from the quote.
- If the lines name different quotes or the quote is no longer open, Workist creates the document without a reference.
- Sage 100 enters the quote in the order's Beleg zu field.
Note text as document memo
If the header field Note Text is set up in the channel, Workist puts its content into the Memo of the document.
Documents as drafts
With Save documents in Sage 100 as drafts, Workist creates documents parked instead of saved. Parked documents get a number from the number range for parked documents and are completed by your staff in Sage 100. The setting applies to every document Workist creates in Sage 100 — from orders as well as from agents.
ERP features of the agents
With version 9, Worki, inbox agents and voice agents access your Sage 100 live:
| Feature | What the agent provides | Worki | Inbox agent | Voice agent |
|---|---|---|---|---|
| Price | The customer's net price after discount, with quantity breaks | yes | yes | yes |
| Availability | Stock across all warehouses | yes | yes | yes |
| Delivery date | Delivery date of an order | yes | yes | – |
| Ship date | Date of the first follow-up document of an order, usually the delivery note | yes | – | – |
| Open quotes and documents | Open quotes and open documents of a document type, for one or all customers | yes | – | – |
| Order status | An order with the documents created from it | yes | – | – |
| Read a document | Any sales document with its lines and the documents of the same transaction | yes | – | – |
| Create a document | A sales document directly in Sage 100 | yes | – | – |
| Convert a quote into an order | An order with the quote's lines and prices, in the quote's transaction | yes | – | – |
| Create a customer | A customer directly in Sage 100, with the next free customer number of a number range | yes | – | – |
- Writing is off by default. Worki only creates documents, quote conversions and customers if Allow agentic writes is switched on in the connection, and only after the user has confirmed. Otherwise Worki answers that writing is switched off.
- Without a customer, the standard price list applies. The voice agent gives an unrecognised caller the price from the standard price list, as a general price. If none is set, it gives no price.
- Availability is the stock level. The interface provides neither reservations nor incoming goods. Stock in blocked warehouses is counted.
- Open means for documents: no follow-up document has been created from it yet. Workist does not recognise partial deliveries.
- Document types are addressed by their key. The agent sees which keys exist in your client from the documents it reads.
Setup in the agents
Worki, inbox agents and voice agents are each licensed separately. Your contact at Workist activates them — see Availability.
| Agent | How to connect it to your Sage 100 | Licence |
|---|---|---|
| Inbox agent | In the agent under Integrations → ERP, choose Sage 100 and, if there are several, the connection. Under Skills, switch on price request, availability and delivery date. | Inbox agents |
| Worki | Hold the conversation in the project of an inbox agent that is connected to Sage 100. Worki then uses its connection, including the features for reading and creating documents. | Worki (chat agents) |
| Voice agent | Under Tools, in the ERP Live Connection category, choose Sage 100 and the connection, and switch on the Article price and Article availability tools. | Voice agents |
For Worki to write to Sage 100, Allow agentic writes must also be switched on in the Sage 100 connection.
What Workist touches in your Sage 100
What matters for a rollout is less the interface itself than the data model behind it: which tables Workist reads, where it writes, and what the installation changes in your data.
Data read
Workist reads in order to resolve details from the incoming document against your system — customer, article, delivery address, project. From version 9 of the extension, Workist also reads prices, stock levels and sales documents.
| Area | Sage 100 tables | Why Workist reads it |
|---|---|---|
| Customer master | Customer master (Sage record recKundenstamm) | Customer recognition |
| Delivery addresses | KHKAdressen, KHKAdressenverweise, KHKKontokorrent | Resolving the delivery address |
| Contacts | KHKAnsprechpartner plus the same address tables | Contact on the document |
| Articles | KHKArtikel, KHKArtikelVarianten (plus KHKArtikelgruppen, KHKVariantenAnzeigeTexte and others) | Article recognition, units of measure |
| Projects | KHKProjekte | Framework contracts |
| Sales documents (from version 9) | KHKVKBelege, KHKVKBelegePositionen | Open quotes, orders based on a quote, agents |
| Prices (from version 9) | Sage 100 pricing | Price check, agents |
| Price lists (from version 9) | Price lists | Choice of the standard price list, prices without a customer |
| Stock levels (from version 9) | Storage location stock and warehouses | Agents |
All read access is client-scoped — the queries filter on the client of the DataSet being addressed.
Data written
Workist does not write to your tables via SQL. Documents are created through Sage 100 document entry, customers through the customer master. Your number ranges, pricing, tax logic and validations therefore all still apply.
| What Workist creates | Via | Result in Sage 100 |
|---|---|---|
| Sales document with items | Document entry | Document in KHKVKBelege / KHKVKBelegePositionen, saved or parked |
| Order from a quote (from version 9) | Document entry | Document in the quote's transaction |
| Customer (from version 9, by Worki) | Customer master | Record in the customer master |
Existing documents are not changed or deleted — creation is the only operation. When Workist creates an order with a reference to a quote, Sage 100 itself sets the quote to Angenommen (accepted).
Additional fields in your tables
The installation adds two user-defined fields. They are created by the supplied
…-UpdateUserFields-Workist.sql script and serve traceability.
| Field | Label in Sage 100 | Type | Tables |
|---|---|---|---|
USER_WorkistBearbeiter | Edited by in Workist | varchar(200) | KHKVKBelege, KHKArchivVKBelege, tKHKPrintBelegKopfVK |
USER_WorkistReferenz | Workist reference | varchar(200) | KHKVKBelege, KHKArchivVKBelege, tKHKPrintBelegKopfVK |
The fields are additionally registered in USysClassFields for the VKBeleg class so that they
are available inside Sage 100.
These two fields are not created by the metadata import. The …-UpdateUserFields-Workist.sql
script from the package's SKRIPTE folder has to be run against the affected databases — see
Installation, step 5.
Field reference
Which fields Workist writes to the sales document in detail, and which master data fields it reads from your Sage 100, is documented in the Sage 100 field reference.