Start here. This is the direct spoken answer to practice first.
Why this question matters
External sync is a realistic system-design prompt because the provider is slow, rate-limited, inconsistent, or temporarily unavailable. A good design does not pretend the external API is a local database.
I would store integration configuration, credentials reference, last successful cursor or timestamp, and sync status. A scheduler would enqueue sync work, and a worker would fetch pages from the third-party API, transform records, and upsert them into local tables. Each imported record would use a stable external id so repeated pages do not create duplicates. The system would track success, failure, and next retry time.