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 can sync any table exposed by the Sage 300 CRE ODBC database. Common objects also have friendly stream names (for example vendor, job, bill).
  • Write supports creating (and in some cases updating) vendors, jobs, cost codes, categories, journal entries, bills, and commitments.

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 for the company. 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.
  • Company path: The full path to the Sage 300 CRE company data folder. Example:
  • tsObject.exe path: Path to Timberline tsObject.exe, used for writing transactional and job-cost objects. 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 either a friendly stream name (see Read) or a raw Sage ODBC table name.

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 the objects below. Writes are dispatched by the payload filename (for example vendor.json or bill.json). Objects are processed in dependency order: vendors and job-cost setup first, then journal entries, commitments, and bills.
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. The filename prefix must match the stream name exactly (for example vendor.json, not vendors.json).

Vendors

Payload file: vendor.json Vendors can be created or updated. Field names use Sage dictionary names.
  • Include VRWID to update a specific existing vendor by row id
  • Otherwise, if VENDOR already exists it is updated; if not, a new vendor is created
Additional vendor fields are available — see the AP vendor field list.

Jobs

Payload file: job.json

Cost Codes

Payload file: cost_code.json Cost codes belong to a job. The job must already exist, or be created in the same write job first. Set extraId to attach the cost code to a job extra.

Categories

Payload file: category.json Categories belong to a job and cost code. The parent job must already exist, or be created in the same write job first.

Journal Entries

Payload file: journal_entry.json Each entry must balance (total debits = total credits). Every line needs exactly one non-zero debit or credit.
Journal entries written through this stream do not update Job Cost. Use bills or other job-cost objects when the entry should hit a job, cost code, or category.

Bills

Payload file: bill.json

Invoice header

Distribution lines

Commitments

Payload file: commitment.json Commitments support create, change orders, and updates to existing commitments.

Create a commitment

Use type: "subcontract" for a new commitment.

Change orders

Send type: "change_order" against an existing commitment.

Update an existing commitment

To update an existing commitment, send the lookup key plus the fields to change:
  • SRWID to update by Sage row id, or
  • SUB to update by commitment number

Read

Read syncs any table you enable under tables. You are not limited to a fixed catalog — the connector can query any table exposed by the Sage 300 CRE ODBC database. Configure reads with either:
  1. Friendly stream names (recommended for common objects)
  2. Raw Sage ODBC table names when you need something outside the aliases below
Field names in results (and in columns / replication_key) use Sage dictionary names (for example VENDOR, VNAME, VDSTMP).

Common stream aliases

Use the field-reference PDFs to pick columns and understand stamp / id fields. To sync any other table, use its Sage ODBC table name as the tables key — contact support if you need help identifying the right fields.
If you omit columns, reads can be very slow on Sage tables with a large number of fields. Prefer listing only the fields you need.