Overview
Updated 10/05/2021
Oracle Netsuite provides an all-in-one ERP platform with CRM and Accounting capabilities. Netsuite’s Accounting and Financials module allows for invoicing, P/L, GL, and financial reporting capabilities. Integration with Avionte requires customers to have Netsuite as their accounting and financials platform.
User Persona
Setup & Authentication (One time Setup)
System Permissions
User Permissions / Setup
Authentication
Syncing (Implementation)
Revenue Classification Syncing
Invoicing
Custom JSON
Troubleshooting / FAQ
User Persona
Avionte integration with Netsuite is suitable for customers who choose not to Payroll In-house or currently use 3rd party PEO / Payroll providers to run payroll. Integration can also be useful for customers who currently are on Netsuite and choose not to take advantage of the full BOLD Front office AND Back office functionality. Typical customer verticals best suited for are the IT / Professional segments. Avionte Integration allows customers to use Avionte BOLD Timekeeping, run Payroll via 3rd party, and invoice their clients for Perm Placements & Contractor billables.
Typical Users Types to use integration:
- Backoffice (AR / AP / Controller)
- CFO
- Operations Managers
- Payroll Admins
Avionte Integrates with Netsuite via their SOAP API specifications. The following items are contained in the integration:
- User Authentication
- Syncing
- Avionte Division >> Netsuite Classes
- Avionte Regions >> Netsuite Locations
- Avionte Office >> Netsuite Departments
- Avionte Tax Type >> Netsuite Items
- Avionte Billing Terms >> Netsuite Terms
- Avionte Company Profile >> Netsuite Customer
- Invoice Creation
- Avionte Perm Placement
- Avionte Contractor weekly Timesheets
- Custom JSON ***
- Custom JSON attributes is designed for customers that have customized Netsuite and would like additional datapoints.
- These data points are sent via a JSON, Netsuite Developers can use those data points for customer custom requests.
Required Permissions: Users that will Sync and create Invoices, need to have Finance Admin access in BOLD.
Setup & Authentication (One time Setup)
System Permissions
-
- Avionte Bold
- This is an Avionte Marketplace Integration, System Feature permission not needed.
- Netsuite
- Have Customer/Netsuite Admin user create new Integration
Netsuite via Setup >> Integration Management >> Manage Integrations >> New
Matching the below configurations - Once Integration is created go back to
Setup >> Integration Management >> Manage Integrations and take note of the Application ID it will be needed at a later step.
- Have Customer/Netsuite Admin user create new Integration
- Avionte Bold
User Permissions / Setup
-
- Avionte BOLD
- Enable Finance Admin via User Accounts >> User Access >> Management >> Finance Admin
- Ensure Backoffice features are enabled via User Accounts >> User Access >> Back Office >> Timesheets, Timesheet Approver Back Office Manager
- Netsuite (*Please note these requirements should be given to Customer & Netsuite for Setup)
- Netsuite username and Password needed (Netsuite user needs to belong to a User Role other than ADMINISTRATOR)
- Create / Update Netsuite User role (Netsuite should already have created a role for Billing / Accounting). You will need the User Role’s Internal ID for a later step.
- Avionte BOLD
- Disable Two Factor authentication on User Role / User
- Netsuite Setup >> User Role >> Permissions >> Setup
Need to have the following access at minimum (designated by red dot) - Netsuite Setup >> User Role >> Permissions >> Lists
Need to have the following access at a minimum (designated by red dot)
Authentication
Some Items referenced in Section 2 will be needed below)
-
- In Avionte, for all users that will be using the integration
- Navigate to Avionte Marketplace >> Netsuite (search bar) >> Settings
- Navigate to Avionte Marketplace >> Netsuite (search bar) >> Settings
- Definition of inputs
- Username = Netsuite User email used to log in, tied to the User Role (2.b.iii)
- Password = Netsuite Password used to log in, tied to the User Role (2.b.iii) AND for the user email above.
- User Account = Netsuite Customer account #. This can be obtained from Netsuite OR from their Netsuite URL
- In Avionte, for all users that will be using the integration
- Application ID = Netsuite Avionte Application ID. (1.b.ii)
- Internal ID = User Role Internal ID tied to the user logging in. (2.b.ii)
- For each user, fill in the above fields and click save.
Please note there is no user notification that the login was successful- To test if authentication / login was successful, in Avionte
- Navigate to Back Office >> Management >> Netsuite (in search bar) >> click through
- If the page loads then authentication was successful with Netsuite, please note that this could take up to 60 sec to load. See below for successful load.
- If the page loads then authentication was successful with Netsuite, please note that this could take up to 60 sec to load. See below for successful load.
- Navigate to Back Office >> Management >> Netsuite (in search bar) >> click through
- If page continues to spool, then either User Role permissions aren’t set correctly, or Username and password are in correct. Have technical support search the error log for “Netsuite”, error output should clearly state the cause.
- To test if authentication / login was successful, in Avionte
Syncing (Implementation)
This section will cover suggestions for implementation. Traditionally, customers on or moving to Netsuite will most likely partner with Netsuite to convert their historical accounting and financials into their Netsuite instance. This will include their Classes, Departments, Locations, Terms, Open Invoices, Customers, and GL. Please note, that this will be a onetime setup, and maintenance as they add new items throughout the customers Lifecycle. Customers can utilize Netsuite PM team to facilitate any Netsuite configuration changes that need to be made.
Revenue Classification Syncing
Navigate to Back Office >> Management >> Netsuite (in search bar) >> click through
-
- Avionte Regions to Netsuite Locations
- For each row, click Edit to enable a dropdown in the second column. Map each Avionte Region to corresponding Netsuite Location and hit Save. Please note that the naming conventions might be different.
- For each row, click Edit to enable a dropdown in the second column. Map each Avionte Region to corresponding Netsuite Location and hit Save. Please note that the naming conventions might be different.
- Avionte Offices to Netsuite Departments
- For each row, click Edit to enable a dropdown in the second column. Map each Avionte Office to corresponding Netsuite Department and hit Save. Please note that the naming conventions might be different.
- For each row, click Edit to enable a dropdown in the second column. Map each Avionte Office to corresponding Netsuite Department and hit Save. Please note that the naming conventions might be different.
- Avionte Job Types to Netsuite Items
- For each row, click Edit to enable a dropdown in the second column. Map each Avionte Job Type to corresponding Netsuite Item and hit Save. Please note that the naming conventions might be different.
- Staff Services = Regular W-2 / 1099 / C2C placement classifications
- Payroll Services = EOR or Employer of Record W-2 / 1099 / C2C placement classifications.
- Avionte Division to Netsuite Classes
- For each row, click Edit to enable a dropdown in the second column. Map each Avionte Division to corresponding Netsuite Class and hit Save. Please note that the naming conventions might be different.
- For each row, click Edit to enable a dropdown in the second column. Map each Avionte Division to corresponding Netsuite Class and hit Save. Please note that the naming conventions might be different.
- Avionte Billing Terms to Netsuite Terms
- For each row, click Edit to enable a dropdown in the second column. Map each Avionte Billing Terms to corresponding Netsuite Terms and hit Save. Please note that the naming conventions might be different.
- Please note, that the billing terms in Avionte are fixed, Netsuite as the ability to add custom billing terms. For scenarios that a corresponding Billing Term does not exist, inform customer to map Avionte Billing terms that they do not use to Netsuite Term.
- For each row, click Edit to enable a dropdown in the second column. Map each Avionte Billing Terms to corresponding Netsuite Terms and hit Save. Please note that the naming conventions might be different.
- Avionte Companies to Netsuite Customers
- Netsuite includes a CRM similar to Avionte. In order for Netsuite to classify revenue against a customer, invoices need to be created under the customer. Avionte provides the ability to sync Company profiles to Netsuite.
- To prep what customers needed to be Synced, it is suggested that the Active Consultant Report be run to get list of active billable Customers.
- Avionte Regions to Netsuite Locations
- Navigate to Analyze >> Active Consultant Report >> Filter Pane >> Select at minimum upcoming 2 months This is to ensure that all customers with upcoming invoices are in the report.
- Ensure Company and Company ID columns are selected from the column selector. Export report to excel and extract unique Company and Company ID into a separate sheet. This is the list of customers that need to be manually synced.
- Alternative method is to follow the next steps directly from the Active Consultant Report using the Company hyperlink. This might be a faster method.
- The following process needs to be completed for each unique Company in the report.
- Navigate to Company profile in Avionte from list or report directly.
- From the Company Profile, in the left hand pane, scroll down to Operational Information >> Edit >> Netsuite Sync >> Edit Sync
- Navigate to Company profile in Avionte from list or report directly.
Companies not synced to Netsuite will show the following.
- After clicking Edit Sync, a new panel will open to the right. By Default, the integration will do a search to return ALL LIKE Customer names from Netsuite. Use the drop down selection to pick the correct matching Customer in Netsuite and select Sync Selected Company with Netsuite
- If like Customer in Netsuite does exist and is not found in the drop down, it is likely that the names are different in both systems. To sync, do either of the following:
- Change the name of the Company in Avionte to match Netsuite >> Save Profile >> Refresh Page >> redo step 4.f.iv.3
- Change the name of the Customer in Netsuite to match Avionte >> Save Customer >> redo step redo step 4.f.iv.3
- If Customer is new to Netsuite select Create New Company in Netsuite from the panel. By Default, information from the Company profile will prepopulate, update necessary fields and click Create Company in Netsuite Please note, it is recommended to always fill in the Country field, as might be a required field in the Netsuite Configuration.
- Company Subsidiary in Netsuite will default to the Parent Netsuite subsidiary, only change from the default if the Netsuite configuration requires it.
- Company Subsidiary in Netsuite will default to the Parent Netsuite subsidiary, only change from the default if the Netsuite configuration requires it.
*If panel spools after submitting, most likely the Netsuite user does not have the proper permissions to Create / Edit Customers in Netsuite
- Repeat above steps, until all Company’s on the list have been synced. As an ongoing process, as new Company’s get added to Avionte and might be billable, proactively sync using the steps above to avoid interruptions during invoicing.
Invoicing
- Section requires strong understanding of the following and are prerequisites.
Creating Billing Contacts and assigning them to Orders such that Consolidated Invoices are set up properly for Companies/Orders that require them, and entering placements w/ Commissions.
- Contractor Invoicing
- After processing timesheets for Invoice Batches, navigate to Pay & Bill Archive. Export To Netsuite will need to be processed for each batch processed for invoicing.
Click here for more information on Invoice Batches
Click here for more information on Pay & Bill archive - You will be prompted to select the appropriate Netsuite Accounting Period associated with the invoice batch and click Export to Netsuite. It is important to note, that a strong Payroll Process / Contractor Pay workflow.
Click here for more information on Contractor Pay - If a Company has not been synced to Netsuite from the corresponding invoice batch, you will be prompted with an error and an opportunity to click into the Company profile Edit Sync.
- After syncing remaining Company’s to Netsuite, redo steps 5.a.ii
- Successful Invoice sync will give the following prompt, and the ability to view the log. If for any reason, there is an interruption (internet connection/system availability) or error mid batch, you will be able to re-sync the remaining invoices.
- Netsuite Invoice Example & Field mappings
-
- Netsuite Customer = Avionte Company Name
- Date = Timesheet Batch Week Ending
- Due Date = Invoice Create Date + Avionte Billing Term (Order)
- Terms = Avionte Billing Term (Order)
- Item = Avionte Job Type (Initial Mapping)
- Description = Avionte Consultant Name + “|” + timesheet week start – week end
- Class = Avionte Division (initial Mapping) à Based off of Job Office/Branch
- Location = Avionte Region (initial Mapping) à Based off of Job Office/Branch
- Department = Avionte Office (initial Mapping) à Based off of Job Office/Branch
- Rate = Avionte Assignment Pay Rate
- Hours = Avionte Timesheet Hours
- Amount = Avionte Pay Rate * Avionte Timesheet Hours
- Billing Address = Avionte Order Billing address
- Burden % = Avionte Assignment Burden %
-
- Markup % = Avionte Assignment Markup %
-
- Attached Files / Folder = Avionte Timesheet PDF / Default Netsuite Folder
-
- After processing timesheets for Invoice Batches, navigate to Pay & Bill Archive. Export To Netsuite will need to be processed for each batch processed for invoicing.
Custom JSON
- Requires Avionte code changes to allow enable this per customer
- In Netsuite, a custom Transaction Line Field needs to be created to house the JSON.
- Below are the fields/data points that are contained in the JSON
- These data points are the same for all transaction line items on an invoice
Troubleshooting / FAQ
Most silent errors can be found in the Avionte BOLD Error log, with the stack trace pointing to the issue.
- Back Office à Management à Netsuite Setup & Editing page keeps spooling. No error is thrown to the user.
- Check the error log, stack trace will point to the root cause.
- Validate Netsuite Username / Password correctly entered into Avionte
- Validate Netsuite permission settings from Step 1
- Create New Netsuite Company spools
- Check the error log, stack trace will point to the root cause.
- Validate Netsuite permission settings from Step 1
- Validate Country is filled out in the Create New Netsuite Company panel
- Validate State field is two letter ISO State Code
- Some Netsuite configurations do not have a “website” field by default on Customer profiles, try clearing out the Website field on the Create New Netsuite Company panel
- Pay & Bill archive >> Send To Netsuite Errors. All errors that occur here are presented to the user. Most common error is caused by Company not being synced.
- If a Company has not been synced to Netsuite from the corresponding invoice batch, you will be prompted with an error and an opportunity to click into the Company profile Edit Sync.
- An error might be thrown that states that either of the Classes OR Department OR Location is not found. These could be due to not all Avionte Regions / Divisions / Offices are properly synced. Go to Back Office à Management >> Netsuite Setup & Editing and verify all items are properly synced. If problem persists, try “editing” and re-syncing all items covered in section 3.
- If a Company has not been synced to Netsuite from the corresponding invoice batch, you will be prompted with an error and an opportunity to click into the Company profile Edit Sync.
- Pay & Bill archive à Send To Netsuite continues to spool and never completes invoice process
- During peak hours (Invoice / Payroll day) this process can take up to 20 seconds per Invoice, so 100 invoices could take up 33 minutes to complete. If page continues to spool after anticipated time, refresh the page. If there are invoices remaining to be invoiced, attempt to Send To Netsuite. If problem persists, check the error log, root cause will most likely be defined in the stack trace.
- Job Orders are set to consolidated invoice, but multiple invoices are being created for the customer in Netsuite
- This is normally due to the Job Orders not being correctly set to Consolidated Invoices AND Billing Contacts not being the same on all job orders that need to be consolidated.
- Sometimes this is due to running the Contractor Invoice process in multiple batches. It is recommended, to run the Contractor Invoice process for (by) Each customer that needs a consolidated invoice, and then the final batch for all remaining. This will allow for checks and balances before pushing invoices to netsuite.
- Data on invoice is incorrect
- If the invoice was created via the Send to Netsuite process AND data on the invoice is incorrect, that means the data in Avionte is incorrect. Validate invoice data points against Avionte Job Order / Assignment using data mapping from Section 5.a.iv
Comments
0 comments
Please sign in to leave a comment.