Integrating Salesforce with IBM i Applications

Salesforce IBM iWe recently built APIs to enable real-time data updates between Salesforce and custom applications running on IBM i and a Linux-based system for a large financial services company.

As various departments entered customers, leads, and orders into these systems, the salespeople needed to access that information from within Salesforce, no matter where the data originated from.

Our client understood the value of IBM i as the system of record, and they wanted to continue using it as such. They called on us to design and program reliable communication between the IBM i and Linux systems and Salesforce.

Integration via APIs

A key requirement was two-way data transfer for elements such as contact information. Regardless of where an employee entered updates to contacts, our client wanted their other systems updated.

Other data elements, such as orders, are entered only on the IBM i. Although that data flows only one way, we still needed to update Salesforce in real time.

To enable this real-time data communication, we built APIs. On the Salesforce side, developers used Salesforce’s proprietary APEX language to build API consumers and providers. On the IBM i side, we worked with the client to build REST APIs in PHP and RPG, using JSON to communicate.

The salespeople did not require all data to be transferred in real time, so to optimize traffic, certain data is batched and run in a nightly process.

Now that the integration is complete, the salespeople have up-to-date marketing and order data at their fingertips. They also have access to automated marketing tools, metrics, and reporting to help them better serve their client base.

Tips for Salesforce/IBM i Integration

If you are contemplating a similar integration, consider these lessons that we learned along the way.

Salesforce Limits

Be aware of the data limitations set by Salesforce. Plan to slice large batches of data into smaller ones and queue them to prevent exceeding these limits.

Plan, Plan, Plan . . . and Document!

Documentation and planning will be critical. Make sure you have thorough workflow and process diagrams. Develop detailed use cases, including branching logic, for the developers.

If a JSON schema is not available, request sample JSON payloads to facilitate communication between developers on different platforms about the data.

In addition, you can avoid pain if you define data standards up front, including such things as date formats and how to interpret empty/zero values.


Testing is perhaps the most critical step of all, so make sure you’ve allotted ample time for it.  Even in our situation, where we were careful with planning, end users unearthed some unexpected user scenarios during testing that needed to be handled.


The more you log, the happier you’ll be when you’re trying to troubleshoot an issue. Make sure to log all incoming and outgoing JSON payloads throughout the development and testing phases, as well as response codes and error messages.

Error Handling

To work smoothly with Salesforce error scenarios, plan to devise a graceful error handling strategy within your IBM i API. You’ll want to log the error, notify the correct person of the error, and ensure that it doesn’t interrupt the end user’s work.

Additional Salesforce/IBM i Integration Tips

For additional tips on a successful integration, see Alan’s blog post Salesforce Talks to PHP and IBM i.

Help with Your Salesforce Integration

If you are considering the Salesforce journey, we can offer objective advice and assistance. Given the effort, cost, and potentially large business benefits of such implementations, consider talking to us about: guidance during the discovery/feasibility phase, documenting requirements and use cases, analysis, API development, or even code reviews.

Let us know if you’re thinking about integrating Salesforce with IBM i and other core systems.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.