Acumatica v2

Provides integration with Acumatica ERP for template-driven create, retrieve, update, delete, action, and file operations through OpenAPI and OAuth.

Revision History

0.0.0.16 - Initial release.
0.0.0.18 - Fixed error message handling.
0.0.0.24 - Split methods by operation type and improved token-authentication fallback messaging.
0.0.0.25 - Improved OAuth handling for instance-specific Acumatica URLs and normalized cached schema content from metadata queries.
0.0.0.26 - Fixed API queries for instance-specific Acumatica URLs and refreshed tokens before following authentication redirects to HTML pages.
0.0.2.1 - Updated authentication recovery and metadata normalization for Acumatica Connections and templates.
0.0.2.2 - Aligned the Runtime connector contract.
0.1.0.2 - Completed the Runtime overhaul with eager first-request startup, lazy continuation, normalized transient URL segments, and authentication errors.
0.1.0.4 - Removed retrieve paging controls from templates and kept continuation paging inside the Node.
0.1.0.5 - Preserved inherited fields in designer templates when OpenAPI schemas use constraints-only allOf overlays.
0.1.0.7 - Improved array item fields in designer templates.
0.1.0.9 - Limited response-template expansion to three levels and flattened value/error fields.
0.1.0.11 - Maintenance release.
0.1.0.12 - Added Compact and Full Schema template views and the Template Max Depth Connection Property.

Connection

Use this Connection to store the Acumatica OpenAPI endpoint and OAuth settings used by all methods.

Property Type Description
Open API URL String Absolute HTTPS URL to the Acumatica Swagger or OpenAPI document for the target endpoint version. Required.
Schema String Cached OpenAPI schema content populated by Acquire Metadata. This property is hidden on the Connection form.
Template Max Depth Integer Maximum field depth shown in Compact templates, from 1 to 20. The default is 3. Full Schema templates and runtime requests are not affected.
Client ID String OAuth client identifier that includes the tenant name in the format client@tenant. Required.
Client Secret Masked OAuth client secret issued by the Acumatica Connected Application. Required.
Username String Username used for password-grant authentication when token refresh is unavailable or fails.
Password Masked Password used for password-grant authentication.
Scope String OAuth scopes requested for token operations. The default is api offline_access.
Access Token Masked Current OAuth access token used for API calls.
Refresh Token Masked Refresh token used to renew the access token.
Token Path String Relative path to the OAuth token endpoint. The default is /identity/connect/token.
Timeout (seconds) Integer Request timeout applied to API and metadata calls. The default is 90.

Setup Notes

  1. Publish or identify the Acumatica REST endpoint that you want to use, then copy its Swagger or OpenAPI URL. The URL typically uses the format https://{instance}/entity/{endpoint}/{version}/swagger.json.
  2. Create or reuse an Acumatica Connected Application that can request the api and offline_access scopes, then record the Client ID and Client Secret.
  3. Configure an API user that can access the selected endpoint. If refresh-token authentication is unavailable or fails, the Node falls back to password-grant authentication, so the Username and Password must be valid for that user.
  4. Configure the Flowgear Connection, then run Acquire Metadata to download the schema and generate operation templates.
  5. If the Open API URL includes an Acumatica instance path before /entity/, Flowgear uses that same instance path when resolving API calls and the default token endpoint. Transient cookieless-session segments such as /(W(3))/ are ignored.
  6. If your Acumatica identity server uses a different token endpoint, update Token Path.

Acquire Metadata stores normalized schema content so template generation can use the downloaded OpenAPI document consistently.

Methods

The Node exposes separate Methods for create, retrieve, update, delete, action, and file operations, so template selection stays aligned with the Acumatica endpoint you want to call.

Create

Creates records using POST operations that are not classified as action or file operations.

Parameter Type Description
Connection Connection Acumatica connection profile.
OperationId String Template-selected OpenAPI operation ID.
Options Object Route and query parameters for the selected operation.
Items Array Optional request body payload streamed into the operation.
Return Type Description
Response Array Response items streamed as JSON objects. Each response item includes Flowgear.IsSuccess and Flowgear.StatusMessage inside Response.Flowgear, plus Flowgear.Request when a request body was supplied. Primitive responses are wrapped in value.

Retrieve

Retrieves records using GET operations.

Parameter Type Description
Connection Connection Acumatica connection profile.
OperationId String Template-selected OpenAPI operation ID.
Options Object Route and query parameters for the selected operation.
Return Type Description
Response Array Response items streamed as JSON objects without Flowgear mutation defaults, with exact Acumatica value/error fields flattened. Primitive responses are wrapped in value.

Update

Updates records using PUT or PATCH operations.

Parameter Type Description
Connection Connection Acumatica connection profile.
OperationId String Template-selected OpenAPI operation ID.
Options Object Route and query parameters for the selected operation.
Items Array Optional request body payload streamed into the operation.
Return Type Description
Response Array Response items streamed as JSON objects. Each response item includes Flowgear.IsSuccess and Flowgear.StatusMessage inside Response.Flowgear, plus Flowgear.Request when a request body was supplied. Primitive responses are wrapped in value.

Delete

Deletes records using DELETE operations.

Parameter Type Description
Connection Connection Acumatica connection profile.
OperationId String Template-selected OpenAPI operation ID.
Options Object Route and query parameters for the selected operation.
Return Type Description
Response Array Response items streamed as JSON objects. Each response item includes Flowgear.IsSuccess and Flowgear.StatusMessage inside Response.Flowgear. Primitive responses are wrapped in value.

Action

Executes Acumatica action operations for the selected endpoint.

Parameter Type Description
Connection Connection Acumatica connection profile.
OperationId String Template-selected OpenAPI operation ID.
Options Object Route and query parameters for the selected operation.
Items Array Optional request body payload streamed into the operation.
Return Type Description
Response Array Response items streamed as JSON objects. Each response item includes Flowgear.IsSuccess and Flowgear.StatusMessage inside Response.Flowgear, plus Flowgear.Request when a request body was supplied. Primitive responses are wrapped in value.

File

Executes file-oriented Acumatica operations.

Parameter Type Description
Connection Connection Acumatica connection profile.
OperationId String Template-selected OpenAPI operation ID.
Options Object Route and query parameters for the selected operation.
Items Array Optional request body payload streamed into the operation.
Return Type Description
Response Array Response items streamed as JSON objects. Each response item includes Flowgear.IsSuccess and Flowgear.StatusMessage inside Response.Flowgear, plus Flowgear.Request when a request body was supplied. Primitive responses are wrapped in value.

Usage Notes

  • Wide Acumatica entities can produce templates too large for the designer to render, so every Method lists each operation twice: Compact and Full Schema. Both views set the same OperationId and run identically; they differ only in how many fields the template shows.
  • Compact views limit Items, Options and Response to the Connection's Template Max Depth, counted separately for each payload. Objects and arrays at that depth keep their type and description but omit their child fields. Full Schema views show every field the Node generates for the operation.
  • Steps saved before 0.1.0.12 reselect the Compact view, and their existing mappings are not changed. Select the Full Schema view, or raise Template Max Depth, when you need to map deeper fields.
  • Request fields keep Acumatica's { "value": ... } wrapper, which uses one depth level. With the default depth of 3, fields nested two levels below Items (for example ShippingSettings.ShipToAddress.City or Details[].Allocations[].LocationID) appear without their value field in Compact views.
  • Changing Template Max Depth does not require Acquire Metadata. Save the Connection, then refresh or reselect the template.
  • Response templates expand fields to three levels even in Full Schema views to keep the canvas manageable. This template limit does not discard deeper runtime response data.
  • A response object containing exactly value and error becomes a single field: a non-null error takes precedence; otherwise the Node uses value. For example, "Quantity": {"value": 5, "error": null} becomes "Quantity": 5. Objects with additional fields retain their structure. Update mappings that previously targeted nested value or error fields.
  • Retrieve templates omit $top and $skip. The Node ignores stale saved values and manages continuation paging internally.
  • Retrieve operations complete the first provider request while the Node invoke is awaited. Any later provider pages are fetched only as the Workflow consumes the response stream. The Node requests up to 100 records per page and stops with an error if paging exceeds 1,000 requests.
  • Mutation operations send input items in batches of up to 20 records. The first batch completes while the Node invoke is awaited, and later batches are read and sent lazily as the Workflow consumes the response stream. A single-record batch is sent as an object; larger batches are sent as an array. An empty connected input sends no provider request.
  • If refresh-token authentication fails and valid Username and Password values are configured, the Node falls back to password-grant authentication.
  • If the token endpoint returns HTML or another non-JSON response, the Node reports the status and asks you to verify the Open API URL and Token Path without copying the provider page into the error.
  • Blank retrieve responses emit no rows, so empty result sets do not surface as synthetic success records.
  • Operations without an OpenAPI operationId use their route path as the template name. Deprecated OpenAPI operations are not listed as templates.
  • Array fields in designer templates expose their item properties directly, so nested item fields can be mapped without internal type metadata.

Known Issues

  • Responses that are simple values instead of objects are wrapped in a value property to keep downstream shapes consistent.