Platform integration
API strategy
iPaaS integration for third-party APIs: a seven-step guide covering OpenAPI import, connector generation, OAuth 2.1, idempotency, and drift monitoring.

By the end of this guide you'll have a working iPaaS integration pattern for third-party APIs that survives contact with an AI agent — one that scans an OpenAPI spec, generates a connector, wires up per-user auth, ships to production behind a flag, and stays current as the upstream API drifts.
Prerequisites: an iPaaS account (Workato, Boomi, Prismatic, Paragon, or similar), an OpenAPI 3.x spec for the target API, OAuth 2.0 credentials from the API vendor (we'll use the OAuth 2.1-recommended authorization code + PKCE flow), and a CI pipeline you control. Time required: about a day for the first integration end to end, plus a recurring maintenance loop.
One thing before you start. iPaaS integration is the right tool for system-to-system data movement. If the caller is an AI agent invoking tools at runtime, the shape of the problem changes. This guide flags where the pattern holds and where it stops short.
The fastest way to sink an iPaaS project is to model every third-party API on day one. Don't.
Pick one workflow. One direction of data flow. One upstream API. If your team wants to sync deals from Salesforce into an internal system, that's the scope — not "CRM integration."
Write the workflow down in one sentence: "When a Salesforce Opportunity moves to Closed Won, create a matching record in our billing service and post a Slack message." If you can't get it into a sentence, split it.
Most iPaaS platforms can import an OpenAPI spec and generate a connector scaffold. Workato calls this the Connector SDK (which supports importing from an OpenAPI spec). Boomi has the Connector SDK, plus an OpenAPI Connector Builder for spec-driven connectors. Prismatic uses the Prism CLI (prism components:init --open-api-path …) to scaffold a custom component from an OpenAPI spec. The mechanic is the same: point it at the spec, get a typed connector.
Before you import, verify the spec.
# Fetch and lint the spec
curl -o vendor-api.yaml https://api.vendor.example/openapi.yaml
npx @stoplight/spectral-cli lint vendor-api.yaml
# Diff against the last known-good version
# oasdiff is a Go binary — install via `brew install oasdiff`,
# `go install github.com/oasdiff/oasdiff@latest`, or run via Docker:
docker run --rm -v "$PWD":/specs tufinio/oasdiff breaking \
/specs/vendor-api.previous.yaml /specs/vendor-api.yaml
If spectral throws warnings on missing operation IDs, missing response schemas, or untyped parameters, fix them in your local copy before generating the connector. A spec with holes generates a connector with holes.
Expected result: a lint-clean spec and a diff showing zero unexpected breaking changes since the last import.
Run your iPaaS platform's connector generator against the verified spec. In Prismatic:
prism components:init vendor-connector --open-api-path ./vendor-api.yaml
cd vendor-connector
npm install
npm run build
In Workato, import the spec through the Connector SDK and let it emit the action stubs. In Boomi, use the OpenAPI Connector Builder to generate a connector from the spec.
What you get back is a set of actions, one per operation in the spec. Rename them so they read as workflow verbs, not HTTP verbs. POST /opportunities/{id}/close should become Close opportunity, not postOpportunitiesIdClose. Agents and humans both benefit — but this matters most when the connector's actions later become tool descriptions an LLM has to disambiguate.
The default in most iPaaS templates is a single service-account credential shared across the tenant. Don't ship that. It collapses the audit trail and breaks the moment the upstream API enforces per-user rate limits.
Configure the connector's auth block for the OAuth 2.1-recommended authorisation code flow with PKCE:
authorization:
type: oauth2
grant: authorization_code
authorization_url: https://vendor.example/oauth/authorize
token_url: https://vendor.example/oauth/token
scopes:
- opportunities:read
- opportunities:write
pkce: required
refresh_token: rotating
Store refresh tokens per end-user, not per workspace. When the workflow runs, the iPaaS platform mints a short-lived access token scoped to that user's permissions. This is the boundary security review will actually ask about.
Drop the generated connector into a workflow. Trigger on the Salesforce event, call Close opportunity on the downstream, then post to Slack.
Every write step needs an idempotency key. Third-party APIs retry. iPaaS platforms retry. Agents retry. Without a key, you'll double-charge, double-notify, or double-close.
// In the Close opportunity action
headers: {
"Idempotency-Key": `${workflowRunId}-${opportunityId}-close`
}
Use a key that's deterministic on retry — workflow run ID plus resource ID plus action — so the same input always produces the same key.
Deploy to production with the workflow disabled for everyone except one pilot customer. Watch the run log for:
Fix each of these before widening the flag. The last one is the hardest to catch and the one browser-automation-based integration approaches routinely miss.
This is where iPaaS integrations quietly die. The vendor ships a v2 of their API. Your connector, generated six months ago, still points at v1. Nothing breaks for weeks — until v1 hits its sunset date.
Set up a nightly job in CI:
# .github/workflows/connector-drift.yml
name: Connector drift check
on:
schedule:
- cron: "0 3 * * *"
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Fetch upstream spec
run: curl -o current.yaml https://api.vendor.example/openapi.yaml
- name: Install oasdiff
run: |
curl -fsSL https://raw.githubusercontent.com/oasdiff/oasdiff/main/install.sh | sh
- name: Diff against committed spec
run: |
oasdiff breaking committed.yaml current.yaml \
--format json > drift.json
- name: Alert on breaking change
if: failure()
run: ./scripts/notify-integrations-team.sh drift.json
When the diff shows a breaking change, the alert lands with the team that owns the connector. Not the customer. Not the on-call at 3 a.m. after production breaks. This is the discipline connector deprecation actually requires.
Treating the OpenAPI spec as authoritative. Vendors publish specs that don't match runtime behaviour — undocumented required fields, response shapes that differ from the schema, enum values the spec doesn't list. Assume drift. Test against the live API, not just the generated types.
Sharing one OAuth app across all customers. Rate limits get tripped by your loudest tenant. Move to per-tenant OAuth apps if the vendor supports it.
Skipping the sandbox. Every meaningful third-party API has a sandbox. Test in it. Production data is not where you discover that the connector's delete action doesn't ask twice.
Assuming iPaaS covers the agent case. iPaaS integration was designed for scheduled system-to-system data movement. It handles that well. When an AI agent needs to call these same actions at runtime — with delegated identity, sub-second latency, and per-call authorisation — the iPaaS runtime model starts to strain. That's a different problem, and worth naming honestly rather than papering over with the same connector.
Stay up to date on the ever changing agentic landscape.