Skip to main content

Connector Details

Overview

Sage 300 CRE (Construction and Real Estate), formerly Timberline, is on-premise accounting software for construction and property management. It is a distinct product from Sage 300. The hotglue Sage 300 CRE connector is an installed Windows program (.exe) that runs on the same machine as Sage 300 CRE. While it is running, you can read and write data the same way you would with a cloud connector.
  • Read uses ODBC against the Timberline DSN to query any table in the Sage 300 CRE company database.
  • Write uses either direct ODBC inserts or Sage import-file operations (tsObject.exe + a Timberline macro), depending on the object.

Tenant setup guide

Use the guide below to configure the Sage 300 CRE connector.

Initial credential configuration

Before installing the connector locally, gather the following:
  • Username and password: Sage 300 CRE credentials used for ODBC and for import macros. Empty values are valid for open or sample companies that do not require a login. For production companies, create a dedicated integration user rather than using an active interactive login.
  • DSN: Sage 300 CRE data is stored in an underlying Timberline database. The connector reads (and can write) through an ODBC DSN that points at that database. Sage typically installs a system DSN named Timberline Data Source. To confirm it is present:
    • Click the Search button on the bottom left of your Windows toolbar
    • Search for ODBC and select ODBC Data Sources (64-bit)
    • Click System DSN. You should see Timberline Data Source (or a custom DSN you created that uses the Timberline driver). This is the DSN name to configure.
  • Company path: The full path to the Sage 300 CRE company data folder. This is the folder that contains the company files the Timberline driver should open (passed as DBQ on the ODBC connection). Example:
  • tsObject.exe path (required for import-file writes): The Timberline tsObject.exe used to run import macros for transactional objects such as bills, invoices, journal entries, and payments. The default install location is:
Once you have these credentials, provide them to support. In return, you will get the connector file, which is an exe Windows program that you will run, and a connector password.

Sample config

Tenant config is stored in hotglue and pulled down by the connector on each cycle. A typical config looks like:

Table options

Each key under tables is a Sage 300 CRE table name (for example APM_MASTER__VENDOR).

Run the connector

Now you have all you need to run the connector.
  1. Download the Connector launcher file.
The Sage 300 CRE connector is packaged as an .exe file. Read and write run in the same process.
  1. Run the launcher .exe file as administrator. This registers the connector as a service and starts setup.
  2. The connector will open a pop-up requesting your connector password. Enter your connector password and click OK.
That’s it. The connector is now running and ready to sync your Sage 300 CRE data. Config and logs live under C:\Program Files\hotglue by default.

Supported Objects

Write

The Sage 300 CRE connector supports writing master records and transactions out of the box. Writes are dispatched by the payload filename (for example vendor.json or bill.json). Master records (vendors, customers, jobs, accounts, employees) are processed before transactional objects so dependencies exist before import. There are two write methods:
In addition to the fields listed below, all objects support the optional externalId field. This is used to associate the created record in Sage with your own id. This field is not mapped to Sage 300 CRE, and only persists within hotglue.
When writing data to Sage 300 CRE, ensure that the .json files are written to the etl-output folder in your jobs. Otherwise the connector will not process them.
Import-file writes require tsObject.exe and the corresponding .mac file in the company data folder (for example import-ap.mac for bills). The connector does not install these macros.

Vendors

Payload file: vendor.json Vendors are created with a direct ODBC insert into APM_MASTER__VENDOR.

Customers

Payload file: customer.json Customers are created with a direct ODBC insert into ARM_MASTER__CUSTOMER.

Jobs

Payload file: job.json Jobs are created with a direct ODBC insert into JCM_MASTER__JOB.

Accounts

Payload file: account.json GL accounts are created with a direct ODBC insert into GLM_MASTER__ACCOUNT.

Employees

Payload file: employee.json Employees are created with a direct ODBC insert into PRM_MASTER__EMPLOYEE.

Bills

Payload file: bill.json Bills (AP invoices) are written as a Sage AP import file, then imported with the Timberline import-ap.mac macro. The connector:
  1. Maps each bill JSON record to Sage AP import rows (API header + APD distribution lines)
  2. Writes import-ap.csv into the company data folder
  3. Runs tsObject.exe against import-ap.mac with the configured company credentials

Invoice header (API)

Distribution lines (APD)

Customer Invoices

Payload file: invoice.json AR invoices are written as a Sage AR import file, then imported with import-ar.mac.

Journal Entries

Payload file: journalentry.json General ledger journal entries are imported with import-gl.mac.

Vendor Payments

Payload file: vendorpayment.json AP payments are imported with import-appay.mac.

Commitments

Payload file: commitment.json Commitments (purchase orders / subcontracts) are imported with import-cm.mac.

Read

Read syncs any table you enable under tables. The table list is not a fixed catalog — the connector can query any table exposed by the Sage 300 CRE (Timberline) ODBC database. Use the exact Timberline table name as the key (for example APM_MASTER__VENDOR). Set sync to true, optionally add a replication_key for incremental sync, and prefer an explicit columns list.
If you omit columns, the connector runs SELECT *, which can appear hung on Timberline tables with a large number of columns. Prefer listing only the fields you need.