Establish a compatible data format and transport protocol between systems
The most common data format combinations are CSV or XML over FTP server, JSON over REST, or web services over HTTPS using SOAP/XML. The gotcha here is how both systems authenticate (e.g. ID and password or token) to each other. Make sure these methods are compatible. If not, use a FTP server or Amazon S3 to exchange data.
Collect API documentation, file samples and login credentials at beginning of project
This may seem obvious, but when working with 3rd party vendors, gathering this information or getting credentials take a long time and delay your project. If you are working with a bank, triple the time you think it will take to get access to their systems such as for ACH file transfer.
Build integration data flows in order to support business processes
Verify which data dependencies there may be for a data flow such as item or customer data being synced between the systems and build these data flows first. Also, group data flows to support business processes, such as sales order export/import -> shipment confirmation import/export or Purchase order export -> item receipt import.
Have client establish user acceptance testing (UAT) use case scenarios early in the project
Often UAT testing can drag on much longer than planned because new things are discovered or the client isn’t ready. By establishing the testing use cases early, these scenarios can be used by the development team to incorporate to their unit and system testing. This will reduce surprises late in the project and gets stakeholders involved much sooner in the project.
Understand data volume and file sizes restrictions that will impact design
Several 3rd party vendors may throttle how much volume their API can handle or have a file size restriction similar to the NetSuite 5mb file size limitation for SuiteScripting. Keep in mind that some vendors can only handle a single transaction per file. It’s important to understand these restrictions and incorporate into your flow design early.