Getting Started
Basic Concepts
Advanced Concepts
How-to Guides
Building integration flows
Data transformation
Integration patterns
Developing Components
Tenant Management
CRM Components
ERP Components
E-Commerce Components
Basic Components
Utility Components
Component Descriptor
Covered in this article
Related articles
Contracts and Workspaces Understanding credentials Data Sample Overview Creating your first integration flow Getting Started What is an integration component? What is an integration flow? What is a tenant? Take a tour of the product Creating a webhook flow Building a component in Java Building a component in Node.js Content-Based Routing Deploying a component How-to Guides Managing flow history Managing OAuth Clients Managing user roles in a tenant Managing Workspaces Mapping data Building real-time flows Sending data to a list of recipients REST API component Managing your SSH keys Managing your Teams/Components Allmysms component Amazon MWS component AMQP component AppDirect Component AWS Lambda component AWS SNS component Bazaarvoice component ChannelAdvisor component Code component Configuration component CSV component Docusign component Dun-and-bradstreet component Ebay component Edifact-parser component Email component Filter component Google PubSub component Google-shopping component Google-translate component Goto-webinar component Google Spreadsheets component Components JDBC Component JDBC Component JDBC Component Jsonata component Key-value-component component Ldap component Lightspeed-ecom component Lightspeed-retail component Lionbridge-translation component Magento1 component Magento2 component Mailchimp component Mandrillapp component Mapper component Microsoft Dynamics CRM component MsSQL component NetSuite component ODATA component Outlook component Petstore-nodejs component Pipedrive component Postgresql component Quickbooks-component component Request-reply component Rest API component Router component Salesforce-cpq component Salesfoce Component Sdl-translate component Sftp component Shopify-admin component Shopware component Simple-trigger component Smarty-streets component Soap component Splitter component Stripe component Sugar-crm component Timer component Twitter component Webhook component Xml component Component Descriptor Structure References Sailor compatibility matrix View Classes

Exact Online component


An integration component for Exact Online ERP. It interacts withe Exact Online API.


Environment variables

None required.


Here are the credentials necessary to authenticate the component with the Exact Online API:

  • Your Exact Online Division - This is your division number
  • Application Client Id - Here should be the OAuth client Id (client dev). More about how to obtain your OAuth credentials check below.
  • Application Client Secret - Here should be your OAuth secret (client secret).
  • Location of the root of the OData API - The default is /api/v1. If not value is provided the default will be used.
  • Print OAuth Token - for debugging purposes

Information about how to retrieve OAuth keys is described in the Register an app document.

The Application Client Id and Application Client Secret keys could be found here where you should choose API.

Working with dynamic metadata

On the Configure input step, firstly, you should choose an entity (object) type you want to work with. Click on the Object type to… and wait for data uploading. Then you’ll see a list of entities which are available for this action or trigger. You should choose one.


Then you wait for uploading metadata (input object structure). After metadata uploaded you can complete input object to retrieve response sample. Be careful of required fields with a red mark.


Structure of the input object will be based on objectType field content.


Webhook Subscription

Webhook enables the receiving of real-time data updates from Exact Online division. These updates are generated by user transactions as the envelope progresses through actions to completion. The Exact Online webhook provides updated information about the entities changes. Notification messages include information about the current status of the entity.

See trigger limitations


Lookup Objects

Allows to get a list of all entities with current type in your division or to get entities that satisfy the filter. This action emits multiple results of required objects.

Input fields

  • Object type to get - drop-down list with all types of the entities, required field. Select the type of entity you want to get.
  • Number of search terms - not required field, number of search terms. Determines the number of search terms that the entity must match. Need to be an integer value from 1 to 100. If this field is empty, action emits all entities with selected type.

Input metadata

Metadata is depending on the input field Number of search terms. If Number of search terms is empty, metadata does not exist. If Number of search terms = 1, metadata has only one search term. If Number of search terms > 1, metadata has a number of search term equal Number of search terms and a number of criteria link equal ‘Number of search terms - 1’.

Each search term has 3 fields: image

  • Field Name - chosen entity’s field name. You need to select the one field from Value section: image
  • Condition - You need to select the one condition from Value section: image
  • Field Value - the value that the field must match with the specified condition.

Between search terms, there is Criteria Link. You need to select the one criteria from Value section: image

For example, if you want to find all entities with types Contacts with field ID greater than 1 and field IsMainContact equal true: image

Output metadata

JSON schema location folder: schemas/io/…. The necessary schema begins with the get and ends with the .out and has an entity type between. For example, for entity Accounts schema has name getAccounts.out.json

Known limitations

See action limitations

Upsert Entity

Allows to add new Entity or update one of the existing entity in your division. To add a new Entity you should provide Account (account ), FirstName, and LastName in the request body. To update entity you should provide primary key (usually entity’s GUID) and fields which you want to update. This action contains dynamic metadata.

Insert Entity

Allows adding a new entity to your division. To Insert Entity you must provide mandatory fields and fields which you want to update. This action is available ONLY for entities which can’t be updated with API. This action contains dynamic metadata.

Update Entity

Allows updating one of the existing entities in your division. To update entity you should provide primary key (usually entity’s GUID) and fields which you want to update. This action is available ONLY for entities which can’t be inserted with API. This action contains dynamic metadata.

See action limitations

Delete Entity

Allows removing one of the existing entities in your division. To remove Entity you should provide a primary key (usually entity’s GUID) in the request body. This action contains dynamic metadata.

Current Limitations

Webhook Subscription

According to Exact Online documentation, you can’t create more than one webhook for the same topic, so webhook subscription trigger will remove, on start, all existing webhooks with callback URL or topic which are same to current.

Lookup Objects

  • action currently does not support filtering by a null value
  • action currently does not support choosing fields to return
  • if any entity was not found, the action did not provide data
  • you need to set the Field Value according to the field type, Field Value is string in the metadata and is checked only when executed. You can check type of the field in the schema there. The necessary schema begins with the get and ends with the .in and has an entity type between. For example, for entity Accounts schema has name

Update Entity

Can be used for entities that can’t be inserted via API only. This action was not fully tested due to the lack of documentation at the Exact Online official documentation. Action’s metadata should be additionally discussed with Exact Online developers or support team.

To interact with Exact Online platform, this component interacts with Exact Online REST OData API (v1).

Get, Upsert, Update, Insert and Delete actions are providing all possible CRUD operations which are in Exact Online docs.