INTRODUCTION
Recently, I worked on an interesting hybrid integration use case involving Salesforce, Portal.io (Proposal System), Zapier, and Apex callouts. The requirement was to create Quotes and Quote Line Items in Salesforce based on Proposal data coming from Portal.io. Initially, Zapier was used as the middle ware layer to orchestrate and push proposal-level data into Salesforce. However, during implementation, we identified an important gap. While the Portal.io API response contained detailed line item data, the payload reaching Zapier did not expose the complete Quote Line Item information required for Salesforce-side processing.
The Challenge We Faced
During the initial implementation, we encountered a critical limitation in the middle ware layer. The Portal.io API provided comprehensive line item data, but this complete information wasn’t being transmitted through the Zapier workflow to Salesforce. This created a significant gap in our integration pipeline.
THE APPROACH
The Hybrid Integration Design
Instead of forcing all logic into a single layer, we adopted a hybrid integration design:
Key Points:
- Zapier handled middle ware orchestration and proposal triggering
- Apex performed direct API callouts to Portal.io for detailed line item retrieval
- Salesforce handled Quote and Quote Line processing, validations, and mappings

WHY THIS DESIGN WORKED
Using both middle ware and Apex together helped us:
Benefits:
- Keep the middle ware layer lightweight
- Handle Salesforce-specific logic closer to the platform
- Maintain flexibility for future API or payload structure changes
- Reduce unnecessary complexity in Zapier workflows
- Improve scalability and long-term maintainability

KEY LEARNING
A lot of integration discussions usually become “middle ware vs Apex.” But while working on this use case, I realised that some of the best solutions actually come from using both together in the right way.
Zapier helped simplify orchestration and event flow, while Apex provided deeper control over Salesforce processing and API-level data handling that wasn’t directly available through the middle ware payload.
What initially looked like a limitation eventually became a really solid design decision point.
