Overview

Customization Services provides the tools to instantly add customizations to Sage Intacct standard objects. You can add:

This topic provides an overview of Customization Services features for developers. Usage information about Customization and Platform Services is available in the Sage Intacct product help. The product help also covers custom document templates, which are not discussed here.


Subscription

You can subscribe to Customization Services by navigating to Company > Subscriptions. If you see Platform Services instead of Customization Services, you have access to all the features in Customization Services as well as features available only in Platform Services. In other words, Platform Services provides a superset of the functionality.


Customization Services vs Platform Services

Customization Services lets you customize standard Sage Intacct objects (Customer, Vendor, Account, AP Bill, and so forth). For example, you might want to add a field to the Location record to store the number of units in each property for a property management company.

Platform Services lets you extend the Sage Intacct product by creating custom objects, pages, and applications. For example, a human resource manager might create an application that tracks employee benefit programs and integrates with employee information already in your system.

All the features in Customization Services are available in Platform Services, just in a different menu structure.


Types of customizations

Custom reports

You can create custom reports to get insight and answers from the unique information stored in your Sage Intacct company. Unlike financial reports, which are based on financial groupings such as assets and liabilities, custom reports can be based on individual records and fields, as well as non-financial operational information.

See the Sage Intacct product help for usage information on custom reports.

Custom fields

Custom fields, which are likely the most commonly-used feature of Customization Services, let you capture data that is unique to your business practices. Most other Customization Services activities rely on data captured in custom fields. After you add a custom field, it can be used as part of a standard form such as an Order Entry form. Namespaces are recommended for the integration names of custom fields.

See the Sage Intacct product help for usage information on custom fields.

Custom list views

The way a list is arranged, filtered, and sorted is called a view. Sage Intacct provides standard views for displaying list items or recently viewed or modified list items. You can also create custom views to display list items the way you like.

Note: Custom list views cannot be packaged and imported to the system.

There are two types of Smartlinks, Click and Fetch.

You can use conditions and injections as described below when creating Smartlinks.

Smart Rules

Smart Rules are conditions that generate a warning or error message to the user. Smart Rules can be applied to Add, Set, or Delete events on records.

When writing conditions for Smart Rules, understand that the condition is for the rule you want enforced, not the exception. For example, if you want to display an error whenever a bill description is null, the rule’s condition should return true if the description has a value (is not null):

'{!APBILL.DESCRIPTION!}' != ''

You use conditions and injections as described below when creating Smartlinks.

Tips

Smart Events

Smart Events are actions that fire after certain conditions are met. The actions can be performed after Add, Set, or Delete events on records. Smart Events can be used to:

After the conditions are met, Smart Event actions are queued for processing. All actions are fire and forget, meaning feedback about errors is not available. For example, assume a bill is edited and a Smart Event fires a Sage Intacct API function. If there are errors in that API function call, safeguards such as retry logic or admin notifications cannot be used.

Note: If there are multiple Smart Events on the same object, they are typically processed in order. However, there is no guarantee of FIFO since the queue is managed by multiple concurrent workers.

You can use conditions and injections when creating Smart Events. For an example, see Smart Event Walkthrough.


Authorization

You can use Customization Services if you are an administrator in the Sage Intacct company you plan to customize.


Customization packages

Instead of managing individual customizations, you can group them into a single package that can imported. All packages are XML documents that conform to the Sage Intacct package XML schema definition. You may include up to 100 customizations (custom fields, Smart Rules, an so forth) in a package.

Packages are recommended as a best practice if you are a partner writing a solution utilizing Customization Services. Your customer’s administrator can easily install the package file, which means that you do not need administrative access to their Sage Intacct company.

If you are using Platform Services to write an application and also have standard object customizations, these should be included with your platform application. You should not have a separate customization package and a platform application installer. This will create upgrade problems for you in the future.

See Customization Packages for more information.


Injections

Injection parameters, similar to merge fields in Platform Services, are available for use in Smartlinks, Smart Rules, and Smart Events. An injection parameter is very similar to a merge field in your favorite word processing program.

The most basic injection uses the ID of the current object being extended, followed by a period, followed by the ID of the field within that object. The {! and !} characters are used as opener and closer characters respectively. For example, the following shows an injection used in a Smartlink Click URL:

If the external document ID of the record is 12345, the link evaluates to https://www.example.com/view.php?id=12345.

Injections can also be written to related-object records, as long as the relationship type is a to-one and not a to-many related object. For example, the following extends the ARINVOICE using an injection to point to the Primary URL of the contact listed in the BILLTO Field:

ARINVOICE.BILLTO.URL1

Injection parameters can also reference custom fields.

See the Sage Intacct product help for information about the available injection parameters.


Conditions

Conditions are decision mechanisms built into activities to determine when they will appear and how they will behave. Conditions are at the heart of Smartlinks, Smart Rules, and Smart Events. You use the PHP condition format when writing conditions.

Conditions can be composed of:

The following is a simple condition that evaluates to true only if the STOCKSYMBOL field is not empty:

'{!CUSTOMER.STOCKSYMBOL!}' != ''

When working with conditions in Smart Rules, consider using ternary operators to avoid writing overly long conditions. The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE. For example, the following can be used to display an error when a user posts a bill line to account 5000 and location SJC:

('{!APBILLITEM.ACCOUNTNO!}' == '5000' && '{!APBILLITEM.LOCATIONID!}' == 'SJC') ? false : true.

You can also use provided methods, such as left(), to help write your conditions. For example, the following evaluates to true for an APBILL that has an APBILLITEM whose department ID begins with 100-:

left({!APBILLITEM.DEPARTMENTID!}, 4) === '100-'

See the Sage Intacct product help for more usage information, including available operators and methods.


Integration names for standard fields and custom fields

The integration names for standard and custom fields can be found in the Sage Intacct UI under the corresponding object in the Catalog (Customization Services > View Catalog > Object).


Troubleshooting and FAQs

See the FAQs for Customization Services.


What’s Next?

Provide feedback