Integration Services

Integrating your ERP system with external system is one of the best ways of improving productivity and reducing user errors. This service is available for Sage 300, Sage Intacct, and Acumatica ERP systems.

Let's say your company provides training services and uses an external training management solution to schedule classes, assign trainers and students to classes, and process billing. If this system does not have a native integration with Sage 300, you will need to manually export new customers and invoices from the training solution and manually enter them into your ERP system. This is not only time consuming, but also prone to user errors, which are hard to detect.

Building an automated integration solves both of these problems. With a click of a button, information is exchanged automatically and all necessary transactions are created in the ERP. The automation also performs validations to ensure all new customers and invoices are imported, and that none of the invoices are accidentally imported multiple times.

Generally, automating an integration is almost always justified. The only exceptions might be if the volume of transactions is so low that they can easily be entered manually, or the other system provides exports in a format that can be imported into your system without any manual manipulation.

Integrations can be unidirectional or bidirectional, manually triggered or scheduled to run automatically, and various reporting options are available to keep an eye on what's going on.

Next: How to Succeed?

When integrating two systems, it might be hard to find a consultant that knows both of them. So you will most likely need to coordinate between the two parties. Let's say you want to integration a Point of Sale System (POS) with your ERP system, say Sage 300. You would need to bring an expert in the POS system, and expert in the ERP system, and a developer who can undertand both of them.

Next step is to determine what are the integration points. Start on high level, don't jump straight into details. First step is to list the integration points and the direction for each integration point. For example, you might have this list:

  • From POS to ERP:
    • Sales orders
    • Invoices
    • Credits
  • From ERP to POS:
    • Customers
    • Credit limits
    • Inventory items
    • Available quantities for items per location
    • Prices and discounts

Once you identify the integration points, dive into details of field mappings between the two systems for each integration points. In this process, you may uncover issues you didn't think before and address them early on in the project.

Get a test environment with a copy of your production data. If possible, provide the developer with access to your test environment. The testing will be more reliable if the developer has access to a copy of your production data instead of having to generate their own test data.

Designate a champion on your side who would understand the project, the proposed solution, and be the leader when it comes to implementing the solution. This champion will then train other people in your organization as necessary, and provide the first level of support in case of issues. The developer will be the second level of support.

Schedule periodic meeting with the developer to review the progress and address any questions that may arise.

If possible, plan on multi-phase development and deployment approach, so you can have something tangible to review and play with before the whole development is finished. This provides a better chance of catching errors early on in the process. However, it may not be practical for small integrations.

Next: Important Questions

Here are some questions that typically come up in integration projects:
  • How is the information exchanged between the two systems. Some options are: a file (CSV, Excel, XML, JSON, etc.), staging table(s) in a database, some sort of APIs.
  • If it's a file, ask for a sample and a documentation of the file format. If it's a database, ask for the documentation of tables and fields. If it's API, ask for the API documentation.
  • Are we integrating with just one business entity (company database) or do we need to support multiple entities?
  • How do we handle taxes? Does the source system provide the tax amounts, or do we let ERP recalculate the taxes based on the customer's setup.
  • Do we need to support multi-currency?
  • For sales related transactions, how do we handle credit limits if they are exceeded, but the sale is already recorded in the other system?
  • Do key fields (customer IDs, item IDs, etc.) match between the two system? If not, how to we map the values from source to target system?
  • Is everything we need in the data source (file, database, etc.) or are there some fields we need to hard-code or infer from some other place.
  • Should the integration be manually triggered or scheduled for automatic execution?
  • Should email notifications be sent upon successful runs and/or in case of errors?
  • How do we handle errors? Do we reject the whole process, or do we allow partial imports? How is user notified about errors? How are errors corrected and retried?

Next: Examples

Here are some examples.

Name Description
Duty Import Customs expose the duties amount in an Excel file. Due to the volume of transactions, these are time consuming to manually enter into, so an automated process reads the Excel file and creates "Additional Cost" invoices to account for the duties.
Training Orchestra Integration This imports customers, invoices, credit notes, payments and sessions from a system that keeps track of training services into Sage 300. Integration is through Excel files and can be triggered manually as well as scheduled for automatic execution. In case of error, an email is sent to the administrator informing of the issue.
FreshIQ Integration FreshIQ is a communication software that updates pricing information in weight scales in retail settings. While it updates the prices in the weight scales, it doesn't do the same in the ERP system, which causes discrepancies in the prices and sales amounts in the two system. This integration synchronizes FreshIQ with Sage 300 ERP.
Shipments Export This integration automatically exports new shipments (since last export) from Sage 300 into a predefined flat file format to be processed by an external application. Supports exports from multiple Sage companies at the same time without user intervention.
Shipping Manifest Foreign receipts are subject to a host of additional charges that all contribute to the landing cost of the items bought. Within Sage each cost has to be added as a separate invoice against all receipts and each receipt within Sage is selected individually. Consequently, the method of allocating additional cost has extended the time is takes to complete the costing function, while also increasing the vulnerability to errors. An integration was built with ISL (shipping solution) to automate all those processes and avoid manual entries.
EDI Integration We have built multiple versions of EDI integration for various clients. In the simplest form, it may just exchange the SO/PO information, in more complicated cases it may support shipments, invoices, etc.
Timecards Import Timecards are processed outside of Sage 300 and need to be imported into Sage Payroll. The source is a CSV file. The application reads the CSV file and auto-creates the timecards in payroll.
AR Import This integration supports importing customers and invoices into AR module of Sage 300. Import files are in CSV format. The process supports importing into different Sage companies, depending on which folder the source files are located in. After successful import, the files are moved to an Archive folder.
Authorize.net Integration The customer uses Authorize.net to capture credit card payments. Their ERP system is Sage Intacct. Before the integration, they had to follow 8 step process that involved running reports in both Intacct and Authorize.net, exporting the reports, copy/pasting large amounts of data, running a macro in a custom Excel file, and using a special Chrome browser extension to push the data into Intacct. Not only was this cumbersome, but the Chrome extension they were using was set to retire. The automation takes the downloaded file from Authorize.net and automates the remaining steps with a click of a button.

Next: Contact Us