We've been building integrations since 2002 — starting with SOAP APIs when REST didn't exist yet, through the REST era, and now working with GraphQL, webhooks, FTP ingestion, and email parsing where the situation calls for it. Twenty-three years of connecting systems that need to share data.
The most common question in an integration project isn't "how do we build this?" It's "which method should we use?" The answer determines how real-time the data is, how robust the integration is under failure conditions, and how much it costs to maintain when the connected systems update.
Here's the plain guide to each method — what it is, when it's right, and when it isn't.
The six integration methods — what each actually does
REST
Webhooks
GraphQL
SOAP / XML Web Services
FTP / SFTP
Email Parsing
Pull vs push — the most important distinction
Before choosing a method, understand whether you need pull (your system requests data when it wants it) or push (the other system notifies you when something happens). This distinction determines whether REST or webhooks is right — and it's where most integration architects get the decision wrong.
Pull — REST API polling
Push — Webhook
The decision table — situation to method
| If your situation is... | Use this method | Why |
|---|---|---|
| Modern SaaS platform (Zoho, Shopify, Salesforce) — fetching or updating data | REST API | All major SaaS platforms expose well-documented REST APIs. Standard, predictable, well-supported. |
| You need to react immediately when a payment, order, or status change happens | Webhook | Webhooks fire at the moment of the event. REST polling introduces latency that's often unacceptable for event-driven workflows. |
| Shopify Admin API integration | GraphQL | Shopify's Admin API uses GraphQL. Using it gives cleaner access to product and order data than working around it. |
| Legacy ERP or government platform — no REST API available | SOAP | If SOAP is what's exposed, SOAP is what you use. We've been building SOAP integrations since 2002. |
| Supplier sends CSV or Excel exports — no API exists | FTP / SFTP ingestion | Automated file ingestion pipeline — monitored, validated, imported. Same reliability as an API with proper error handling. |
| System sends structured confirmation emails — no API, no FTP | Email parsing | Structured emails become the integration channel. Parser extracts data, writes to system automatically. |
| High-volume data that needs precise field selection | GraphQL | GraphQL returns exactly the fields requested — no over-fetching. Efficient for high-volume integrations where bandwidth matters. |
| Multiple events that trigger different workflows (payment success vs payment failed) | Webhooks + REST | Webhooks for event triggers, REST for data retrieval on demand. Most complex integrations use both. |
What every integration needs — regardless of method
Retry logic with backoff
Full audit logging
Monitoring and alerting
Idempotent processing
Secure credential management
Documentation
What to do when there's no API at all
Most systems support at least one of: structured file export (CSV, Excel) that can be automated, structured email notifications with consistent format, a report that can be scheduled, or a database that can be read directly with appropriate permissions.
The Atlantic LNG engagement is the clearest example: no direct database access permitted, no API, no FTP. We built a two-stream architecture using Excel staging exports and Microsoft PowerApps as a capture layer. Both fed into Power BI. The constraint shaped the approach — the outcome was a fully functional BI platform.
The rule: assess what the system can output, then build the ingestion mechanism around that output. No API doesn't mean no integration — it means a different integration method.
Real integrations we've built — method and outcome
Shopify → Zoho Inventory (Webhooks + REST): Order placed in Shopify → webhook fires → stock committed in Zoho. Stock adjusted in Zoho → REST call updates Shopify quantity. Real-time bidirectional sync for Singapore wine manufacturer and Malaysia phone accessories manufacturer. Overselling eliminated.
Zoho ↔ KeyPay Marketplace extension (REST, published to Zoho Marketplace): Employee records, leave, and attendance sync from Zoho People to KeyPay via REST. 30+ AU/NZ businesses using it. Built to Zoho Marketplace security standards with OAuth credential management.
TSN — warehouse management integration (REST): Project created → REST queries to all warehouse APIs simultaneously → distance calculation → reserve and transfer or raise PO, decided automatically. The BOM reprioritization logic that uses these APIs was subsequently awarded US patents.
Atlantic LNG — Excel staging + PowerApps (no-API approach): No direct database access permitted. Excel exports deposited to SharePoint by system owners. PowerApps forms for data with no digital source. Both ingested by Power BI. Full executive and departmental dashboards delivered without touching a production system.
The honest summary
The right integration method is determined by what the connected systems support, how real-time the data needs to be, and what happens when things fail. Not by preference or convention.
REST is the modern standard and covers most use cases well. Webhooks handle real-time event triggers better than polling ever will. GraphQL wins when precision data fetching matters. SOAP is legacy but still necessary for legacy systems. FTP and email parsing solve the "no API" problem that appears more often than people expect.
What every integration needs — regardless of method — is error handling, retry logic, audit logging, monitoring, and documentation. These aren't extras. They're what separates integrations that run reliably for five years from integrations that fail silently for three days before anyone notices.
If you're unsure which method fits your situation — or if you have systems that seem impossible to connect — that's the conversation we start every integration engagement with. The answer almost always exists.