Skip to main content

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.

To be set up in your Sage 100

StepWhere
Connect the Sage Connectivity GatewaySage Server Manager → Externe API
Install the Workist API extensionAppDesigner (metadata import)
Apply permissions and Workist fieldsAppDesigner or SQL Server Management Studio
Enable the databases for the APISage 100 Administrator
Add the Workist client ID as a user and grant permissionsSage 100 Administrator
Restart the application serverSage 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

DetailWhere you find it
EntitlementIDSage Server Manager → Externe API → your server → Konfiguration
DataSetSage 100 Administrator
Document typeSage 100 Materials Management
Version of the Workist API extensionFile 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 versionSupported
9.0.11yes
9.0.10yes
9.0.9yes
9.0.8yes
9.0.7 and olderno

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.

Permissions script

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.

Other products named "Sage 100"

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.

DetailWhere you find itWhat it does
EntitlementIDServer Manager → Externe API → your server → KonfigurationIdentifies your installation in the Connectivity Gateway
DataSetSage 100 Administrator, status bar or login dialogDatabase name, ";" and client number, e.g. WAWI_DB;1 — determines database and client
Document typeSage 100 Materials ManagementDetermines which document type Workist creates
Version of the extensionFile version of the Workist DLLs, last digitDetermines 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:

KeyDocument type
VFRInvoice
VLLDelivery note
VPAQuote
VPMSample document
VSDDirect invoice
VSLImmediate invoice
VSSImmediate order
VVAOrder 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.

VersionWhat Workist additionally uses
5Base scope: reading master data, creating sales documents
7The delivery terms from the document (Incoterm) are passed to the document
9All 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.

Delivery terms from version 7

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.

FeatureSetting in the connectionDefault
Price check against Sage pricingCheck order prices against Sage 100, Compare againstoff
Prices without a customerStandard price listnone
Open quotesSage 100 Offer Document Type, Ignore expired offersVPA, expired ignored
Orders based on a quoteQuote number field in the channel–
Note text as document memoNote Text field in the channel–
Documents as draftsSave documents in Sage 100 as draftsoff
ERP features of the agentsAllow 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:

FeatureWhat the agent providesWorkiInbox agentVoice agent
PriceThe customer's net price after discount, with quantity breaksyesyesyes
AvailabilityStock across all warehousesyesyesyes
Delivery dateDelivery date of an orderyesyes–
Ship dateDate of the first follow-up document of an order, usually the delivery noteyes––
Open quotes and documentsOpen quotes and open documents of a document type, for one or all customersyes––
Order statusAn order with the documents created from ityes––
Read a documentAny sales document with its lines and the documents of the same transactionyes––
Create a documentA sales document directly in Sage 100yes––
Convert a quote into an orderAn order with the quote's lines and prices, in the quote's transactionyes––
Create a customerA customer directly in Sage 100, with the next free customer number of a number rangeyes––
  • 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​

Add-ons

Worki, inbox agents and voice agents are each licensed separately. Your contact at Workist activates them — see Availability.

AgentHow to connect it to your Sage 100Licence
Inbox agentIn 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
WorkiHold 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 agentUnder 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.

AreaSage 100 tablesWhy Workist reads it
Customer masterCustomer master (Sage record recKundenstamm)Customer recognition
Delivery addressesKHKAdressen, KHKAdressenverweise, KHKKontokorrentResolving the delivery address
ContactsKHKAnsprechpartner plus the same address tablesContact on the document
ArticlesKHKArtikel, KHKArtikelVarianten (plus KHKArtikelgruppen, KHKVariantenAnzeigeTexte and others)Article recognition, units of measure
ProjectsKHKProjekteFramework contracts
Sales documents (from version 9)KHKVKBelege, KHKVKBelegePositionenOpen quotes, orders based on a quote, agents
Prices (from version 9)Sage 100 pricingPrice check, agents
Price lists (from version 9)Price listsChoice of the standard price list, prices without a customer
Stock levels (from version 9)Storage location stock and warehousesAgents

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 createsViaResult in Sage 100
Sales document with itemsDocument entryDocument in KHKVKBelege / KHKVKBelegePositionen, saved or parked
Order from a quote (from version 9)Document entryDocument in the quote's transaction
Customer (from version 9, by Worki)Customer masterRecord 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.

FieldLabel in Sage 100TypeTables
USER_WorkistBearbeiterEdited by in Workistvarchar(200)KHKVKBelege, KHKArchivVKBelege, tKHKPrintBelegKopfVK
USER_WorkistReferenzWorkist referencevarchar(200)KHKVKBelege, KHKArchivVKBelege, tKHKPrintBelegKopfVK

The fields are additionally registered in USysClassFields for the VKBeleg class so that they are available inside Sage 100.

Not included in the metadata import

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.