SaaS Operations

SaaS integration: APIs, webhooks, iPaaS and the patterns that hold up

How SaaS tools exchange data through APIs, webhooks, iPaaS connectors and batch syncs, with rate-limit and task-count math and the failure modes to plan for.

Isometric 3D illustration of a thick steel blue jigsaw puzzle piece floating at an angle, on a pale grey background.

You run a CRM, a billing tool and a help desk, and the same customer has a different email address in each one. A paid invoice never reaches the sales record, and support cannot see who is on which plan. You need the tools to share data, and you need to pick how before someone builds a fragile script at midnight.

A SaaS integration is any connection that moves data or triggers actions between two hosted applications. Because you do not control either vendor’s servers, every integration goes through what the vendors expose: APIs, webhooks and connector platforms. If SaaS itself is new to you, start with What is SaaS?.

Integration in plain terms

Think of a restaurant. An API is the counter: you walk up, ask for something and get an answer. A webhook is the buzzer they hand you: you do not keep asking whether your food is ready, the buzzer tells you. An iPaaS (integration platform as a service) is a delivery service that carries orders between many restaurants for you, for a fee per trip.

Each one solves a different problem:

  • API (application programming interface): a documented way for your code to ask another application for data or to change it.
  • Webhook: an HTTP message an application sends to a URL you choose when something happens, such as “invoice paid”.
  • iPaaS: a hosted service with ready-made connectors where you define “when this happens in app A, do that in app B” without running your own servers.
  • Batch sync: a scheduled job that copies records in bulk, often nightly.

Four patterns compared

Pattern How data moves Good for Watch out for
Direct API calls Your code asks app B for data or writes to it Full control, complex logic Rate limits, authentication, code you maintain
Webhooks App A pushes an event to your endpoint Reacting fast to changes Duplicates, events out of order, endpoint downtime
iPaaS connectors A hosted platform runs “if this, then that” flows Small volumes, no developers Per-task pricing, limited error handling
Batch sync Bulk copy on a schedule Reporting, data warehouses Stale data between runs, long run times

Many setups end up with a mix. A webhook tells you a payment happened, an API call fetches the details, and a nightly batch feeds reporting. The table is a starting point for choosing per flow, not per company.

API rate limits: the arithmetic you need first

Every SaaS API limits how many requests you can send. The limits are public, and they decide whether a sync finishes overnight or runs into the next morning. HubSpot publishes its limits for privately distributed apps by subscription tier (HubSpot usage guidelines, as of October 2026):

  • Free and Starter: 100 requests per 10 seconds per app, 250,000 per day per account.
  • Professional: 190 per 10 seconds, 625,000 per day.
  • Enterprise: 190 per 10 seconds, 1,000,000 per day.

The 10-second limit applies to each app. The daily limit is shared by every app in the account.

Example: you plan a nightly job that updates 250,000 contact records, one API request per record.

  • On a Starter account: 100 requests per 10 seconds = 10 per second. 250,000 / 10 = 25,000 seconds, or 25,000 / 3,600 = 6.9 hours.
  • The job also uses 250,000 of the 250,000 daily requests. Every other app on that account then hits the shared daily limit.
  • On Professional: 190 per 10 seconds = 19 per second. 250,000 / 19 = 13,158 seconds, or 3.7 hours, and 250,000 / 625,000 = 40% of the daily allowance.

A bigger plan is not the only fix. Send only the records that changed since the last run, and use the vendor’s batch endpoints where they exist. If 5% of contacts change on a given day, the same job needs 250,000 x 5% = 12,500 requests, which takes 12,500 / 10 = 1,250 seconds, about 21 minutes, on Starter.

Webhooks: fast, but plan for repeats

Webhooks spare you from asking “anything new?” every minute. They also come with delivery rules you have to handle. Stripe’s documentation is explicit about three of them (Stripe webhooks, as of October 2026):

  1. Retries. If your endpoint does not answer with a success code, Stripe retries delivery for up to three days in live mode, with exponential backoff.
  2. Duplicates. The same event can arrive more than once. Stripe advises logging the event IDs you have processed and skipping repeats.
  3. Order. Stripe does not guarantee events arrive in the order they were created. An “invoice paid” event can arrive before “subscription created”.

Stripe also advises returning a success response quickly, before running slow logic, and processing events from a queue. That pattern applies to webhooks from any vendor: accept, store, answer, then process.

iPaaS: priced by the task

Connector platforms charge for the work they do. Zapier, for example, counts a task “whenever Zapier successfully completes a unit of work for you”. Triggers and failed actions do not count. Billed annually, its Professional plan costs $19.99 a month for 750 tasks or $39.00 for 1,500 tasks. The Team plan starts at 2,000 tasks for $69.00 a month (Zapier pricing, as of October 2026).

Example: each new order runs one flow with three actions: create the invoice line, update the CRM deal and post a message to the sales channel.

Orders per day Tasks per month (orders x 3 x 30) Smallest listed tier that covers it (billed annually)
5 5 x 3 x 30 = 450 Professional, 750 tasks, $19.99
15 15 x 3 x 30 = 1,350 Professional, 1,500 tasks, $39.00
40 40 x 3 x 30 = 3,600 Above Team’s 2,000 tasks; check the price of a larger tier

The table shows where iPaaS fits. At low volume it costs less than a developer’s time. As volume grows, the task bill climbs with every order, while a direct API integration costs roughly the same at 40 orders a day as at 5.

How to choose, flow by flow

  • Who owns the data? Pick one system as the source of truth for each field, such as billing for plan and price, CRM for owner and stage. Integrations copy from the owner, never both ways on the same field.
  • How fresh must it be? Seconds means webhooks. Hours means a scheduled sync. Next day means a batch.
  • How much volume? Multiply records by changes per day and compare with the API limits and task prices above.
  • Who fixes it at 2 a.m.? An iPaaS flow a manager built has no on-call engineer. Decide who receives the error emails.

For how vendors open their products to integrations through APIs and app marketplaces, see What is a SaaS platform?. For a CRM-side view of the same problem, see CRM SaaS. For who runs what in a hosted application, see SaaS in cloud computing.

Common mistakes

  1. Syncing both ways on the same field. Two systems overwrite each other in a loop, and the last writer wins at random. Why it happens: each team wants to edit data in its own tool. Instead: name one owner per field and sync one way.
  2. Ignoring rate limits until the first full sync. The test with 100 records works; the real run with 250,000 takes hours and uses up the daily allowance. Why it happens: limits sit in a separate documentation page. Instead: do the arithmetic in the example above before you build.
  3. Processing a webhook twice. A retried “invoice paid” event creates two receipts or two credits. Why it happens: the handler assumes one delivery per event. Instead: store each event ID and skip any you have already processed.
  4. Letting an iPaaS flow fail silently. A changed field name breaks a flow, and nobody notices for weeks. Why it happens: error alerts go to the person who built it, who may have left. Instead: send failures to a shared channel and review the run history monthly.

Sources

In three sentences

SaaS integration connects hosted applications through APIs, webhooks, iPaaS connectors or batch syncs, and you will usually need a mix chosen flow by flow. At HubSpot’s Starter limit of 10 requests a second, a full sync of 250,000 records takes 6.9 hours and uses the daily allowance, while syncing only the 5% that changed takes about 21 minutes. Name one owner per field, do the rate-limit and task arithmetic before building, and design every webhook handler for retries, duplicates and events out of order.