Skip to main content
Reads rows from a single Sage Intacct object — for example LOCATIONENTITY (entities/locations), DEPARTMENT, GLACCOUNT, or CLASS. Display name follows the registry name. Off by default. This is a generic, read-only engine for the plain-read family: name the object, optionally list fields, optionally add structured filters. It does not replace the tools that carry extra logic — use sage_intacct_get_vendor (fuzzy matching), sage_intacct_get_po / sage_intacct_get_receipts_by_po (multi-object joins), or sage_intacct_get_payments (join) for those objects. Typical use is behind a pinned configured-tool wrapper (e.g. an entity-lookup wrapper that binds object=LOCATIONENTITY) so the agent supplies only the lookup value, not the object.

Authentication and enablement

Requires a workspace Sage Intacct integration. company_id, user_id, and user_password are injected from the integration config and are not shown as per-run inputs. Enable the tool and bind the integration.

Inputs

  • object (required) — the Sage Intacct object/integration name. Case-insensitive. Restricted to an allowlist: LOCATIONENTITY, DEPARTMENT, GLACCOUNT, CLASS. Any other object is refused (see limits below).
  • fields — array of field names to return. Omit (or pass ["*"]) for all fields. Field names accept letters, digits, and underscore only. Dotted names (e.g. VENDOR.NAME) are refused: Sage treats them as traversal into a related object, which would reach past the object allowlist.
  • filters — array of { field, operator, value } conditions combined with AND. operator is equals (default) or like (use % wildcards). Field names are validated (letters/digits/underscore, no dots); values are single-quote escaped internally.
  • max_results — default 100; clamped to a maximum of 1000 (Sage’s page-size ceiling).
  • entity_id — scopes the read to a specific entity in a multi-entity company. Empty reads at the top level.

Output

Matching records as structured rows (one field → value map per record). Metadata carries the returned count, the queried object, Sage’s total_count and num_remaining, and a truncated flag. When num_remaining is greater than zero the result set is incomplete — raise max_results or narrow the filters.

Limits and side effects

  • Read-only. Never creates or modifies records.
  • Object allowlist. Only LOCATIONENTITY, DEPARTMENT, GLACCOUNT, and CLASS may be read. This is a deliberate floor no configuration can widen, so the generic reader cannot be pointed at sensitive objects (employees, contacts, payment/bank records). Adding an object is a reviewed code change.
  • Targets plain (flat) objects. Nested/relationship elements more than one level deep are not expanded — use a dedicated get_* tool for objects with line items or joins.
  • Only equals and like operators are supported; other operators return an error.

Expected errors

  • Integration credentials missing (company_id / user_id / user_password).
  • object not provided, or not on the allowlist.
  • Invalid field name (in fields or a filter field).
  • A filter with a value but no field — rejected outright rather than dropped, so a malformed filter can never silently widen the read to every row.
  • Unsupported filter operator.
  • Sage Intacct API error (e.g. unknown object or field) / no match.