HxGN EAM Sync
Internal integration. The HxGN EAM puller runs inside Treedis — it is not a public API and is intentionally not part of the API Reference. This page documents how to set it up and how it behaves for operators and support.
The HxGN EAM integration is a passive puller: on a schedule you choose, Treedis authenticates to your Infor ION API gateway, pulls rows from the HxGN/Infor EAM grids you map, and upserts them into your Connected-Workers asset tables. Nothing is pushed back to EAM — it is read-only against your EAM instance.
It is configured per workspace from Workspace → Settings → Integrations → HxGN EAM.
1. Authenticate
HxGN EAM authenticates through the Infor ION API using an OAuth2 service account. Download the service-account credentials file (.ionapi) from Infor ION API and copy these values into the integration form:
| Treedis field | .ionapi key |
What it is |
|---|---|---|
tokenEndpoint |
pu + ot |
The ION OAuth2 token URL (the portal URL joined with the token path). |
clientId |
ci |
OAuth2 client id. |
clientSecret |
cs |
OAuth2 client secret. |
saak |
saak |
Service-account access key. |
sask |
sask |
Service-account secret key. |
tenant |
ti |
Your ION tenant id (on-prem deployments use infor). |
eamBaseUrl |
— | The EAM REST base URL behind the ION gateway. |
organization |
— | The EAM organization the grids belong to. |
clientSecret, saak, and sask are secrets — once saved they are never shown again (the form only indicates whether each is set). Treedis exchanges saak/sask (with clientId/clientSecret) for a short-lived bearer token, caches it until just before expiry, and sends it with the tenant header on every grid request.
2. Choose how often it syncs
Once authenticated, open Configure and pick a sync frequency: every 1 hour, 6 hours, 12 hours, or 24 hours (default: 24h).
A single background job ticks hourly and runs a workspace only when its chosen interval has elapsed since the last successful run — so "every 6 hours" means the next tick at or after the 6-hour mark, not exactly on the hour you saved. Use Sync now in the Configure dialog to run an out-of-band sync immediately; the dialog shows the last sync time and status (and the error, if the last run failed).
3. Map HxGN fields to your asset columns
Mapping is configured per table from the HxGN Mapping button on that table's toolbar (available on your workspace location, equipment, and asset tables once the integration is enabled). For each table you set:
- HxGN entity — the grid/entity in EAM to pull from (e.g. a functional-locations or equipment grid). Treedis fetches that entity's available field names to pick from; you can also type a field name directly.
- Field → column rows — each maps one HxGN field to one of your columns. Only the columns you map are written; everything else on the row is ignored.
- Primary-key column — the column Treedis uses to recognise an existing row. Defaults to the table's title column.
All tables are workspace-owned — the puller sees only (table, field map, primary-key column) and upserts into that table.
4. Upsert behaviour — no duplicates
Every sync upserts keyed on the primary-key column: a row whose primary-key value already exists is updated in place (only the mapped columns are touched; other columns are left alone), and a new value is inserted. Re-running a sync over unchanged EAM data is a no-op. A row whose primary-key value is empty in EAM is skipped. If no primary-key column is set, the table's title column is used.
This means syncing the same grid repeatedly never creates duplicate rows — it keeps your asset table in step with EAM.
5. Sync status & troubleshooting
The integration records, per workspace, the last sync time, a status (idle / running / success / failed), and the last error when a run fails. A failed run does not block the next scheduled run.
Common things to check when a sync fails:
- Auth errors → re-download the
.ionapifile and re-enter the credentials; confirm thetenantvalue. - No rows / wrong rows → verify the HxGN entity name and the field → column mapping.
- Rows updated but a value didn't change → confirm that field is actually mapped and that the primary-key column matches the unique key in EAM.

