Automate processes with Smart events

Smart events get triggered when a given event occurs and certain conditions are met. A Smart event can be something as simple as an email to the sales manager when a sales quote over £10,000 is created. Smart events allow you to automate communications and processes according to events that arise in your financial management process.

If you currently use Smart events, consider using platform triggers instead. Platform triggers give you a powerful way to automate tasks using both standard and custom objects. They automatically make input, output, update, validations, emails, and Web Services calls in response to data changes.

To find the Smart events list, go to Customization Services or Platform Services > Object customization > Smart events.

How do Smart events work?

A Smart event is a condition that triggers an email or a post to a web application. Users can add, set, or delete a record in the object to which a Smart event is added. If the user's action meets the condition of the Smart event, Intacct sends an email or posts information to a web address based on the Smart event settings. Have you ever had a CEO ask to be notified when an AP purchase invoice comes in from a particular supplier? Add a Smart event to send the CEO an email when your AP manager enters the AP purchase invoice. See Customization Services cheat sheet (PDF).

Other actions you can take with Smart events include using:

  • API calls to update bill descriptions based on total due.
  • HTTP post to send bill record numbers to an external app.

Note that when working with Purchasing approval states, Smart events cannot fire based on partially approved or declined states.

Synchronous API Smart events

If you create an API Smart event, you can make it synchronous to avoid abnormal asynchronous errors. Synchronous API Smart events also:

  • Eliminate the possibility of collision, concurrency, and overwriting between events because they’re executed one after another.
  • Give direct feedback when a synchronous API Smart event fails through an error message.
Synchronous Smart events are not listed on the Smart events Job page.
See the Sage Intacct Developer portal (Legacy XML API) for more information about API Smart events.

Execution triggering and rollback

When an action triggers a synchronous API Smart event, Intacct tries to execute all synchronous events included in the resulting chain of actions. Intacct executes events in alphabetical order, according to Smart link IDs. The execution happens before the triggering action gets committed. If the chain executes successfully, the triggering action is saved, and any asynchronous Smart events are then executed.

If the chain of synchronous events cannot successfully execute, the transaction or record is rolled back. Then, the originating trigger action is prevented, and an error message is issued. Synchronized API Smart events or asynchronous Smart events, of any type, that are part of the unsuccessful chain, are not executed.

Smart events do not execute on transactions saved as drafts.

Best practices

Though powerful, using synchronous API Smart events adds a level of complexity. For this reason, we recommend the following:

  • Only use synchronous API Smart events to ensure that a group of events are executed in a particular order.
  • Ensure that triggering actions are related with event actions for successes and failures by using synchronous API Smart events.
  • Use a prefix in your IDs to group your related synchronous API Smart events and ensure that they execute in the correct order. A good format to use is NAMESPACE_PREFIX_DESC. For example, you could use a convention like:
    • FA_01_DESC
    • FA_02_DESC
    • FA_03_DESC
  • Deactivate synchronous API Smart events in a package and create new ones to re-order them.

Use the Smart events wizard

The Smart events wizard includes four steps:

  1. Choose an object to extend.

    Select the object to which you want to add a Smart event. For example, you might want to add a Smart event to an AP purchase invoice or to a type of Order Entry transaction.

  2. Select event properties.

    Specify the event that will be triggered and the condition that triggers it. The condition must be written as an expression, such as {!ARINVOICE.TOTALENTERED!} >10000.

  3. Select or enter action properties.

    The fields change depending on the action that you select in step 2.

  4. Select deployment options.

    Name your Smart event and describe what it does.