BTerrell Group Blog

A First Step with Intacct Smart Events

Posted by Chris Firra on Mon, Feb 24, 2014

Recently, I've learned about what I believe are two of the best features of Intacct Platform Services, Smart Rules and Smart Events.  These tools add logic, data validation and control to the core Intacct applications without writing complex code.  With this entry, I want to share my experience with Smart Events.  To learn more about Smart Rules, I'd suggest visiting the excellent blog posting by Joe Zhou from our sister company, CodePartners, entitled How to Create Intacct Smart Rules.  

Smart Events may be thought of as a way to add an action to an event that matches a pre-defined condition.  The triggering event could be the addition of a new master record, such as a vendor, or the posting of a transaction, like an A/P bill.  The defined action could range from a simple email notification to a call to the Intacct application, or even posting a transaction or update to another web application in the form of an HTTP post. 

On a recent project, problems were occurring when incomplete vendor addresses were encountered during bill payment.  Based on the customer’s business model, it made sense to let the A/P supervisor know when a vendor with missing address info had been created.  I had little experience with creating Intacct Smart Events, so I turned to Joe Zhou at CodePartners for assistance.  Although it took a little bit of trial and error to complete it, I was surprised to see just how simple the resulting Smart Event was.

I should reiterate that creating a Smart Event requires that Customization Services has been subscribed and activated.  A link appears in the Platform Services or Customization menu that enables creation or maintenance of Smart Events.

Intacct Customization Menu

When the icon is launched, a wizard appears that prompts the user to select the Owner Object or the primary object that is the basis for the event.  In my case, I wanted to check the vendor address when the A/P bill was saved, so the Owner Object was A/P Bill.

Intacct Smart Event: Owner Object = event to kick off action

The next step involved defining the Event and the conditions related to the event.  This step also included specifying the type of Action that was to occur, which affected the next step for the wizard.  For my smart event, the events included Add and Set (update).  It would not be necessary to check the address when an A/P bill was deleted, so I did not include that event.

Next, the specific conditions to trigger the action needed to be specified.  Conditions are specified in a format that Intacct refers to as Injection Parameters.  The same format is used with applying Smart Rules, and the general format of an injection parameter looks like the following:

{!OWNER_OBJECT_ID.SECONDARY_OBJECT_ID.FIELD_ID}!

Use of a secondary object is optional and is only used when the field to be tested resides in a related object.  Multiple secondary objects may be referenced as long as there is a relation between it and the preceeding object.  Also, multiple injection parameters may be linked using && (AND) and || (OR).  For my Smart Event, the Condition looked like the following:

({!APBILL.VENDOR.DISPLAYCONTACT.MAILADDRESS.ADDRESS1!} == '' || {!APBILL.VENDOR.DISPLAYCONTACT.MAILADDRESS.STATE!} == '' || {!APBILL.VENDOR.DISPLAYCONTACT.MAILADDRESS.CITY!} == '' || {!APBILL.VENDOR.DISPLAYCONTACT.MAILADDRESS.ZIP!} == '')

 The next to last step was to define the action, in this case, an email notification containing details of the issue to be addressed.  Fortunately, Intacct allows the same injection parameters values to be used in the body of the email.

Intacct Smart Events: Defining Action

Finally, the last step was to name, describe, enable and save the new smart event.

Intacct Smart Events: name, describe, enable and save

Hopefully, this simple smart event will save the A/P supervisor some heartache during future vendor payment runs by proactively identifying issues before they become problems.  It's clear that using Intacct's smart events can help manage by exception, and that I’m just scratching the surface with this application.  It will also be interesting to see how it can be used to synchronize other web enabled applications.

Feel free to contact us if you would like to learn more about customization of or integration with Intacct.

I'll once again take a moment to thank Joe Zhou for his help with this task.  I'll suggest that readers that are interested in learning more should check out the blog at CodePartners.com 

Tags: Intacct