Webhooks When Real-Time
Webhooks for event-driven. CRM tells you when something changed. Idempotent handler required — duplicates happen.
Polling for Stability
Polling is the fallback. Cron a sync every N minutes. Tolerates flaky networks better than webhooks alone.
Bulk APIs for Volume
Initial loads, full-refresh syncs, bulk updates — use bulk APIs. Per-record APIs at volume = rate limit hell.
Idempotency
Every integration must tolerate replay. Use external IDs, not internal. Upsert, not create. Assume at-least-once delivery.
Error Handling
Retry with backoff. Dead-letter queue for terminal failures. Alert on DLQ growth — silent failure is the worst failure.