Partilhar via


Exact Online Premium (Preview)

Connect to your Exact Online Premium account and get notified when business entities are created or updated.

Currently supported entities are Sales Orders, Projects, Accounts and Opportunities.

More entities and events will be added in the future.

This connector is available in the following products and regions:

Service Class Regions
Logic Apps Standard All Logic Apps regions except the following:
     -   Azure Government regions
     -   Azure China regions
     -   US Department of Defense (DoD)
Power Automate Premium All Power Automate regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Power Apps Premium All Power Apps regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Contact
Name Exact
URL https://www.exact.com
Connector Metadata
Publisher Exact MKB Software BV
Website https://www.exact.com
Privacy policy https://www.exact.com/trust/privacy/privacy-statement
Categories Collaboration;Finance

The Exact Online Premium connector for Power Automate allows receiving notifications from Exact Online when a business entity record changes. For certain entities, a trigger can be created that responds to newly created or modified records. In addition, the connector can perform some custom formatting, reducing complexity for the user.

Prerequisites

In order to use the connector, an Exact Online Premium subscription is required.

How to get credentials

This connector uses OAuth authorization on the Exact Online platform. Log in with your personal Exact Online Premium account.

Get started with your connector

The connector provides several triggers for modified or newly created business entity records - at this time for accounts, opportunities, projects and sales orders. Start your flow with one of these triggers.

  • Create a new flow in Power Automate and select one of the triggers as a starting point
    • When a [entity] is created or changed
    • You need to choose one of the available companies in the dropdown control - the trigger will be created for this company only
  • The events need to be enabled in Exact Online as well, otherwise you will not receive anything in Power Automate
    • Go to Master Data > Flow > Overview: Flows and either create a new flow or modify an existing one
    • Select the appropriate Entity and Event, for example Account / When an account is modified
    • You may need to create multiple flows if you want to receive both created and modified records

A message coming from Exact Online contains a field called Payload with the data of the created or modified record. The connector has an action Get Values that prepares this Payload for your needs.

  • As the Entity Type, select the same entity as the trigger
  • As the Value Type, select the following:
    • New Values if you want to be able to select specific fields of the new (changed) state in other actions
    • Old Values if you want to be able to select specific fields of the old (unchanged) state in other actions
    • Table if you want to get the content as a whole collection for use in other actions
    • See the Examples section below for more details
  • The Payload parameter, by default, has a reference to the Payload property of the trigger message. You shouldn't need to change this.
  • Additional parameters Content-Type and Accept are by default set to application/json. You shouldn't need to change this.

Examples

Example 1: only process sales orders valued over 10,000 euros

  • Use trigger When a sales order is created or changed
  • Add an action Get Values with Entity set to Sales order and Value Type set to New values
  • Use a Condition block (Control built-in action)
    • Set the condition to AmountDC | less than | 10000
      • Note, AmountDC is an output of Get values
  • In the true branch of the condition block, add a Terminate action (Control built-in action)

Example 2: output the changed fields to an email

  • Use any of the available created/changed triggers
  • Add an action Get Values with the same Entity as the trigger, and Value Type set to Table
  • Add a Filter action (Data Operation built-in action) with the output of Get values as its input, and as a condition set oldValue | Not equal to | newValue
  • Add a Create HTML Table action (Data Operation built-in action) and use the output of the Filter action
  • Create an Outlook action Send email and include the output of the Create HTML Table action as part of the message

Known issues and limitations

Empty message for connectivity test

When setting up a new flow, or when turning on an existing flow, a message is sent to Exact Online to register the flow. Exact Online in turn sends a test message (without content) to confirm the connection.

If you don't deal with this message within your flow, the flow may end in error, or send notifications with incomplete content. Since it's usually a one-off behavior, you can choose to accept it, but you may get warnings about failing flows.

A more elegant way to deal with it is to test if the message is empty in a Condition action. The test empty(triggerOutputs()?['body']) | equals | true is a good way to do this. In the true branch, add a Terminate action with outcome Succeeded. Then continue the actual flow after the Condition action.

Common errors and remedies

So far no errors have been encountered.

FAQ

What exactly does the Get Values action do?

Get Values performs a couple of actions that would otherwise require multiple more complex actions in your flow. In order, these are:

  • It takes the Payload field from the trigger and converts its text to a JSON object. This is equivalent to the json(...) function;
  • It loads a schema for this JSON object so its properties can be referenced in further actions. You could do this with the Parse JSON action, but you'd need to supply the entire schema yourself;
  • It can convert the incoming payload either to a complete table with all data, or to an object showing the old or new state of the entity. The latter is relatively complex to achieve in a flow.

What should the value for Payload be in the Get Values action?

By default, this is set to triggerOutputs()?['body/Content/Payload'] which is the reference to the Payload field received in the trigger. You shouldn't need to change this.

Why do I need to supply the Entity type for Get Values?

The Get Values action uses a technique called dynamic schema generation, which allows us to select the properties of the chosen entity in further actions. This is a feature of the flow designer. Unfortunately, at design time, the trigger can not pass the selected entity type on to other actions. Therefore the entity type needs to be selected again.

What happens if I select the wrong Entity type for Get Values?

The flow designer will show the wrong properties for the received entity, for example project properties on a sales order. That means some properties that are part of the entity are not shown, and some properties that are shown are not actually part of the entity.

You can still access the properties if they exist on the entity, but you'll have to enter the reference manually.

Choosing a nonexistent property in another action will simply result in an empty value; the consequences of that will depend on the action.

Throttling Limits

Name Calls Renewal Period
API calls per connection 100 60 seconds

Actions

Get values

This loads the values from the trigger's Payload field in a format of choice.

Get values

This loads the values from the trigger's Payload field in a format of choice.

Parameters

Name Key Required Type Description
Content-Type header
Content-Type string

Specify the content type of the payload.

Accept header
Accept string

Specify the accepted response format.

Entity Type
EntityType True string

Select the type of business entity for this operation.

Value Type
ValueType True string

Select the value type for this operation.

Payload
body string

Add reference to Payload field here

Returns

The outputs of this operation are dynamic.

Triggers

When a project is created or changed

This subscribes to create or change events for projects.

When a sales order is created or changed

This subscribes to create or change events for sales orders.

When an account is created or changed

This subscribes to create or change events for accounts.

When an opportunity is created or changed

This subscribes to create or change events for opportunities.

When a project is created or changed

This subscribes to create or change events for projects.

Parameters

Name Key Required Type Description
Company
Company True string

Select the company for which you want to receive the events.

Returns

When a sales order is created or changed

This subscribes to create or change events for sales orders.

Parameters

Name Key Required Type Description
Company
Company True string

Select the company for which you want to receive the events.

Returns

When an account is created or changed

This subscribes to create or change events for accounts.

Parameters

Name Key Required Type Description
Company
Company True string

Select the company for which you want to receive the events.

Returns

When an opportunity is created or changed

This subscribes to create or change events for opportunities.

Parameters

Name Key Required Type Description
Company
Company True string

Select the company for which you want to receive the events.

Returns

Definitions

guidText

EntityChangedEvent

Name Path Type Description
Content
Content ChangeEventContent
HashCode
HashCode string

ChangeEventContent

Name Path Type Description
Topic
Topic string
ClientId
ClientId guidText
Company
Division integer

Company

Action
Action string
Key
Key guidText
ExactOnlineEndpoint
ExactOnlineEndpoint string
EventCreatedOn
EventCreatedOn string
Payload
Payload string