API rate limits, batching and retries: keeping CRM integrations from falling over
Every CRM and enrichment API has limits, and integrations that ignore them fail at the worst moment. The patterns — batching, backoff, queues, idempotency — that make integrations boring in the best way.
24 Jan 2026 · 2 min read · by HeiSyn
An integration works perfectly in testing with ten records and breaks in production with ten thousand: the API returns 'too many requests', the workflow errors out, and half the records are updated and half are not. Rate limits are a fact of every API. Integrations that respect them are not slower in practice; they are the ones that finish.
Know the limits
Every API documents requests per second, per minute or per day, and often separate limits per endpoint. Read them. HubSpot, Salesforce, Zoho and the enrichment providers all differ, and they change. Build the limit into the workflow as a configuration value, not a guess.
Batch where the API allows
Most CRMs accept batch create and update calls — a hundred records in one request instead of a hundred requests. Use them for bulk work. For single-record real-time work, a queue with a worker that pulls at the allowed rate keeps within limits without dropping anything.
Retry with backoff
On a limit or a transient error, wait and retry — a second, then two, then four, with a cap and a maximum attempt count. Respect the retry-after header when provided. Log the retries; a rising retry rate is an early warning that volume is outgrowing the plan or the design.
Make writes safe to repeat
A retry after a timeout might repeat a write that actually succeeded. Use idempotency keys where the API supports them, and where it does not, check before creating — search by email or external ID, then create or update. Duplicates from retries are the most common data-quality bug in CRM integrations and the easiest to prevent.
Questions people ask next
- How do we know we are approaching a limit?
- Most APIs return remaining-quota headers on every response; log them and alert when they fall below a threshold. A rising retry rate in the workflow logs is the other early signal.
- Is it worth paying for a higher API tier?
- When the workflow spends more time waiting for quota than working, or when real-time flows are delayed by bulk jobs sharing the limit. Before paying, check whether batching and caching would remove the need.
- Should real-time flows and bulk jobs share an API key?
- No — separate keys or apps where the platform allows, so a bulk import cannot exhaust the quota a speed-to-lead flow needs. Where they must share, schedule bulk work outside the hours when real-time flows matter.
Want this built for your team?
A free scoping call: we map your motion, name the number that should move, and quote a fixed-scope build.
Related
- Documenting automations so they survive the person who built them
- Choosing data and enrichment providers: coverage, accuracy, compliance and cost by region
- Prompt engineering for business automations: writing instructions a model follows on the ten-thousandth run
- Migrating from Zapier to n8n without breaking anything on a Tuesday

