Integration
This domain tests how data moves in and out of NetSuite reliably: available mechanisms, authentication, idempotency, and the limits that break naive designs.
Mechanisms
- SuiteTalk SOAP and REST web services for record-level CRUD; RESTlets for custom endpoints; Suitelets for UI-facing pages.
- CSV Import for bulk loads; SuiteAnalytics Connect (ODBC/JDBC) for read-only analytics.
- Authentication uses OAuth 2.0 or token-based authentication; SAML handles user SSO.
- Every integrated record should carry an External ID, which makes upsert idempotent.
- Concurrency limits and request quotas are per account and shared across all integrations.
- Responses carry status codes and error detail; log them and retry only transient failures with backoff.
Worked example
A nightly sync pushes 10,000 customers from a CRM. Map the CRM ID to External ID and upsert, so re-runs update rather than duplicate. Batch requests and keep parallelism low; if the account returns a request-limit error, reduce concurrent threads or move bulk volume to CSV Import. Reasoning: external IDs survive re-runs, while internal IDs differ between sandbox and production and cannot serve as the key.
Traps that cost marks
- Using internal IDs as the integration key across environments.
- Assuming sandbox data mirrors production, so external IDs must be seeded in both.
- Ignoring governance units consumed by RESTlet logic.
- Designing real-time calls where scheduled bulk import would be safer and cheaper.
- Retrying without idempotency, which creates duplicate records.