Skip to content
NetSuite OpenAir
OpenAir Scripts Detail

Top Step OpenAir Scripts

A Fast Way To Make Big Productivity Improvements

Populate Text Area With Audit Log

OpenAir keeps a thorough audit trail of changes to virtually every entity.  While this audit trail can be used in detailed reports, it isn’t available on the entities themselves, and it isn’t customizable, exportable, or accessible via API.  This script provides a customized audit log in a custom field directly on the entity itself, which allows it to be exported or accessed via the API or OpenAir scripting.

Populating this audit trail directly on the entities themselves provides insight into the changes for anyone viewing the entity without having to run an OpenAir report.  These audit trails can also be exported to other reporting tools for companies who compile audit information from many systems into a single reporting tool to facilitate internal and external auditing processes.

Recovering Deleted Data

In OpenAir, deleted records are retained in the tables from which they originated, preserved with a “deleted” flag.  Users may set parameters and execute this script, scanning tables and restoring records meeting the parameter requirements.

Normally, administrators can recover deleted data only by exporting entire tables and manually recreating or importing the deleted records via OpenAir Integration Manager.  This script saves that time by allowing users to identify certain ranges of records and restoring them across the system.

Set Default User Preferences

This script updates all users, since last run, preferences to allow newly created users to see the “Actions” column when creating a Timer.  This will allow all users to perform actions within the timer screen which stops or resumes them, providing functionality without requiring users to modify their personal preferences upon first login.

Certain default values can be established for new records, particularly users.  To reduce manual efforts in updating newly added users to standardize preferences, in this case Timer action visibility, this scheduled script can be executed to automate this step.

Auto-Notify Payment Reminders

This script will calculate the days past-due of an invoice and automatically notify the AP recipient of payment reminders or invoice status updates.

This script reduces the manual steps needed to run reports, export invoice information or cross-reference customer contact records

Charge Rollup

The native charge rollup function aggregates charges across an Invoice and displays them in summed rows in the Invoice layout.  This script allows charges to be accumulated in a specified charge stage and later aggregated into a single charge to be invoice.

This script allows for true rollup functionality while preserving the audit trail / history behind the native charge aggregation function.  It can add value in simplifying invoice reporting as well as improve integration functionality for invoices exporting out of OpenAir.  For large organization with tens of thousands of charge lines integrating out of OpenAir, this script can significantly improve overall performance of invoice processing.

Percent Complete Calculation

This script scans projects that meet specific criterion and calculates a project-level percent completion value based on all revenue recognition transactions and the project’s budget.  The resulting value is then populated into a custom field which can further be reported on.

The standard percent completion functionality calculates completion of a project based on task completion.  While this is valuable, some organizations may use more revenue-driven metrics to arrive at project completion rather than effort or cost.

Quickbooks Integration

Using OpenAir’s Script API functionality, Top Step has built a quality Integration between Quickbooks and OpenAir.  This script can pull a variety of fields and record data from Quickbooks to sync with OpenAir, such as Chart of Accounts, Departments, Locations, or Service Allocations.

This script synchronizes your Accounting configuration with OpenAir to ensure a more seamless design between the two systems.  The Quickbooks integration reduces intervening with data manually while improving data integrity for the organization.  This is a cost-effective and reliable alternative to integrator solutions such as Dell-Boomi or Celigo.

Smartsheet Integration

Through this script data stored in Smartsheet pages can be synchronized with OpenAir entities automatically on a scheduled basis.  This can include project plans/Gantt charts, task lists, issue lists, time entries, expenses, schedules, etc.

Smartsheet is a versatile tool that organizations use for a variety of functions.  It has templates for a number of functions, including project and resource planning, and can provide spreadsheet-style functions and accessibility.  Integrating this with OpenAir has allowed customers to manage data for one purpose in Smartsheet while managing the same data for a different purpose (and often at a different level) in OpenAir.  For example, a company might want to build very detailed project plans in Smartsheet but only pull in higher level tasks to use for time entry and billing purposes in OpenAir.

Another benefit of this integration is that it allows data accessibility via Smartsheet for client and partner users outside of an organization.  Typically these users won’t have OpenAir licenses or logins, but the data from OpenAir can be propagated to Smartsheet for access by these users.

Close Tasks, Billing Rules, Project On Stage Change

This script sets tasks, billing rules, and the project itself to a closed or inactive state when the project is moved to a specific stage (or to one of a set of defined project stages).

Clutter within the OpenAir PSA tool can be a problem for many clients.  Leaving projects and tasks open when they are completed complicates reporting, reconciliation, auditing, and other vital business functions.  It induces users to enter time and expenses against incorrect projects and tasks, and billing rules that have expired can pick up time and expenses that should be attributed elsewhere and create erroneous charges.  Rather than rely on a manual process to ensure the projects, tasks, and billing rules are closed or inactivated properly, this script ensures that these entities are in the proper state based on the stage of the project, removing the impact of potential human error.

Populate Budget Hours From Transactional Budgets

This script sums hours from a custom field on transaction budget and copies them to the Project Properties Budget field.

The added functionality of summing budget hours from transactional budgets allows for simplified reporting project-level budget information while accurately representing the total value of an engagement/project without additional steps.

Populate Milestone Dates On Project

This script sums hours from a custom field on transaction budget and copies them to the Project Properties Budget field.

The added functionality of summing budget hours from transactional budgets allows for simplified reporting project-level budget information while accurately representing the total value of an engagement/project without additional steps.

Custom Notification on Remaining Monetary Budget

When X% of a project’s budget has been used this script will send a notification to the project owner indicating the percentage and amount remaining on the project.  Multiple thresholds can be established, and multiple contacts can be notified.  This can also communicate through Slack in addition to (or instead of) email.

Implementing this script allows project owners as well as executive sponsors, team members, etc., to be alerted as soon as a project hits a certain budget threshold, rather than waiting for a scheduled report or a periodic status evaluation.  This allows immediate course corrections if necessary before the project experiences further budget challenges.

Notification For Contract Expiration Or Project End Date

This script will notify a project owner X days prior to the project’s end date or to a custom date field representing a contract expiration (or other applicable milestone).  This notification can be an email or a Slack message.

Often OpenAir is used to track contract expiration dates and/or expected project completion dates.  This script will ensure the project owner (or other required personnel) are actively alerted to these dates prior to their arrival, giving time to prepare for closing invoices, contract extensions, etc.

Notification For Booking Or Task Assignment Expiration

This script will notify a user and/or project owner X days prior to the last date the user is booked or assigned to a project.  This notification can be an email or a Slack message.

With this script in place user’s are notified when their time on a project is expected to come to an end and can start actively looking for new work or making themselves available to other projects.  This also can be used to open conversations about resource extensions on a project if that resource is still needed past these dates.

Populate Project Fields

On a nightly schedule, this script updates custom fields within the Project Properties to reflect recent updates to the overall project progress.  Information includes the latest time-entry date, total billable hours and total dollars generated.

Some information can be populated through cleverly stacked custom calculations for optimized reporting in OpenAir.  However, this script can perform much of the heavy-lifting, as well as enhance functionality by accessing field types otherwise inaccessible to custom calculations, such as dates.

PTO Approval Notification For PMs

This script sends email alerts for approved Schedule Requests affecting certain projects in OpenAir.  When a schedule request is approved for a user and that schedule request coincides with dates he or she is assigned to a project, the project owner is notified of the approval.

The default Schedule Request notification offers meta-data notification recipients including Approvers, Approvers’ managers, or Submitters, but is limited to those.  This script relates the approved user’s record to Project assignments and/or bookings to tactfully notify key personnel.

Create Bookings From Task Assignments

Upon triggering this script bookings can be created based on task assignments on a project, or task assignments can be created automatically from the project’s bookings.

Using OpenAir project templates as the basis for creating projects provides many benefits.  One of those benefits is that each template can be established with a set of tasks and task assignments, with either named or generic users.  Bookings, however, can not be associated with an OpenAir template.  This script mimics the template functionality of task assignments for bookings, allowing the company to create a set of bookings at the start of the project automatically that match the task assignment structure from the template.  Then these bookings can be manipulated as needed to show the true project schedule in a resource management setting.

Create Bookings From A Template

When a template is used to duplicate Phases/Tasks from another project, this script will also duplicate the bookings from that template allowing the project owner to update these “open” bookings to represent the newly created project booking requirements.

Some companies have product offerings that go beyond the native templatized functionality within OpenAir.  They may wish to offer “packages” whereby their engagements with their clients requires a more fully templatized project plan, including bookings.  This script simplifies the booking process for newly created projects while allowing the environment to utilize “sku” styled packages for engagements.

Auto Reject Timesheets That Exceed Bookings

This script relies on a system account as a pseudo- approver introduced to the timesheet approval process.  When timesheets are submitted, the timesheet is sent to this account for approval.  This script analyzes all of the timesheets in this account’s approval queue and determines if any of the time entries exceed that user’s bookings on the associated projects, rejecting the timesheets in that situation.

For companies who match their bookings to their project or task budgets this script can ensure that projects do not go over those budgets.  The auto-rejection feature can be equipped with a custom message that displays the budget along with the hours that are in excess of that budget, making for simple identification of the steps required for remediation.

Timesheet Compliance

This script collects the status for timesheets that have not been approved by an organization’s defined deadline and sends an email notification to key stakeholders.  The email is formatted in an HTML table as a report, summing the timesheet compliance values.

The missing timesheet report provides certain detail data of users’ compliance in OpenAir, however this script offers an optimized summary useful to stakeholders to make tactical decisions to improve timesheet submission and approval times.  It provides a clean, simple overview of the organization’s overall performance in this area.

Entity Tagging

This script that has benefited dozens of clients who need to retain historical data. This script automates updates to entity tags based on changes to standard OpenAir data so that reporting remains accurate and useful.

Entity tags are OpenAir’s answer to time-binding data. These tags can be assigned to a user record and set dates when the tag was active.

Auto-Populate Holiday Hours

This script allows organizations to enter the holiday schedule in OpenAir before the holiday. The hours will then auto-populate in employee timesheets, negating the need for manual entry and saving back offices the time it takes to ensure accuracy.

This script provides time-saving convenience for businesses and employees. While we have implemented many other complicated scripts that are big time savers, this one continues to be at the top of the list of favorites.

Don't see what you need?

No worries!  We can develop a custom OpenAir script to fit your needs.

About Us:  Our mission is to enable and empower Professional Services Organizations to become profitable, scalable, and efficient through change management, technology deployment, and skill set training with a Customer First approach.

Scroll To Top