- Live sync - when a user signs up in your app, call
add-userto mirror them. - Nightly reconciliation - a batch job runs
add-user-bulkto catch anything the live sync missed.
Live sync - single user
Bulk sync - up to 10,000 users
For CRM snapshots, onboarding migrations, or reconciliation jobs, use the bulk endpoint.skipped entries are users whose email already exists for this tenant - this is a no-op success. Inspect failed to see which rows couldn’t be ingested.
Nightly CRM sync pattern
1
Export delta
Grab users created or updated in the last 24 hours from your CRM.
2
De-duplicate by email
Guarantees the bulk endpoint’s
skipped count is meaningful.3
Chunk to 1,000
We accept up to 10,000 per call - 1,000 gives smaller retry units.
4
Retry on 429
Honor
Retry-After. Use the rate-limit helper.5
Log failed[] to your ops channel
So someone can fix invalid emails before the next run.
Event on success
Each added user fires atenant.users.invite webhook. Subscribe if you want to drive downstream automation (welcome email, Slack alert, analytics event).