.png)

NetSuite SuitePeople Integration Guide
Integrate SuitePeople workforce data through NetSuite REST Web Services, SuiteTalk SOAP, RESTlets, CSV exchanges, analytics access, and selected outbound callbacks.
NetSuite SuitePeople integration options at a glance
SuitePeople functionality is exposed through the NetSuite account and its enabled features, roles, permissions, and configured records. NetSuite REST Web Services provides the primary JSON interface for supported Employee, Time-Off Request, Timesheet, and related records. SuiteTalk SOAP remains useful for WSDL-based integrations and selected operations, while RESTlets support account-specific logic. CSV import and export provide batch exchange, and SuiteAnalytics Connect supports analytical access rather than transactional updates. Selected SuiteScript, workflow, and RESTlet designs can provide outbound callback behavior, but NetSuite does not offer a universal webhook stream for every SuitePeople event. Martini can orchestrate these methods through authenticated workflows, mappings, validation, retries, and monitoring.
| Integration point | Supported by NetSuite SuitePeople? | Common use cases | How Martini supports it |
|---|---|---|---|
| REST APIs | Yes | NetSuite REST Web Services provides record-oriented JSON operations for supported Employee, Time-Off Request, Timesheet, and other account-enabled records. It is the primary interface to evaluate for new integrations. | Martini can consume the REST API from workflows, store credentials in secure configuration, map JSON payloads, apply business rules, and handle pagination, retries, and response errors. |
| SOAP APIs | Yes | SuiteTalk SOAP Web Services exposes NetSuite records and operations through WSDL-based services. It remains useful for existing SOAP clients, generated bindings, or operations not available through REST. | Martini can consume SOAP services, transform XML request and response structures, and orchestrate SOAP calls with validation and fault handling. |
| RESTlets | Yes | RESTlets are custom SuiteScript HTTP endpoints for account-specific validation, combined operations, or behavior not directly available through standard REST Web Services. | Martini can call a RESTlet as an authenticated API endpoint and treat its contract as a reusable workflow boundary, subject to the RESTlet deployment and role permissions. |
| Webhooks / outbound callbacks | Limited | SuiteScript, workflows, RESTlets, and outbound HTTPS requests can provide selected notifications or callbacks, but NetSuite has no universal webhook stream for every SuitePeople event. | Martini can receive configured webhook-style requests and then retrieve the current NetSuite record, deduplicate the notification, and continue processing through a workflow. |
| Bulk / async / batch APIs | Limited | SuiteTalk supports asynchronous processing for selected operations. CSV processing and scheduled scripts provide additional batch approaches for larger or less time-sensitive exchanges. | Martini can orchestrate bounded batches, queue work, process asynchronous results, and record checkpoints and rejected rows. |
| CSV import and export | Yes | CSV exchange supports batch employee updates and file-based workforce data exchange when real-time API operations are unnecessary or unavailable. | Martini can receive or retrieve files, validate headers and rows, transform CSV data, submit results, and preserve processing outcomes for rejected records. |
| Database / analytics access | Yes | SuiteAnalytics Connect provides analytical access through supported ODBC, JDBC, or ADO.NET methods and is intended primarily for reporting and read-oriented analysis. | Martini can consume analytical data through supported database connectivity or coordinate extracts, while keeping transactional updates on REST or SOAP services. |
| Authentication | Yes | NetSuite documents OAuth 2.0, token-based authentication, and other account-dependent methods. Integration records, scopes, roles, and record permissions are all relevant. | Martini can manage environment-specific credentials and secrets and use authenticated API workflows without placing tokens or sensitive employee data in workflow logs. |
How NetSuite SuitePeople exposes data and business events
NetSuite REST APIs
NetSuite REST Web Services exposes record-oriented JSON operations for supported NetSuite records. For SuitePeople, the available Employee, Time-Off Request, Timesheet, payroll-related, and custom fields depend on enabled features, account configuration, roles, and permissions.
Martini implementation pattern
Martini implementation pattern: a workflow authenticates to the REST service, retrieves or receives the required record data, maps it to a canonical model, applies business rules, and writes to the target system. The workflow can maintain a synchronization watermark and handle pagination, rate responses, validation failures, and retries.
Implementation sequence
SuiteTalk SOAP APIs
SuiteTalk SOAP Web Services provides WSDL-based access to NetSuite records and operations. It remains relevant when an existing integration uses generated SOAP bindings or when a needed operation is available through SOAP.
Martini implementation pattern
Martini implementation pattern: Martini consumes the SOAP service, transforms XML messages, invokes the selected operation, and routes SOAP faults according to whether they represent authentication, validation, permission, throttling, or transient service failures.
Implementation sequence
RESTlet callbacks
RESTlets are custom SuiteScript HTTP endpoints that can expose account-specific logic. SuiteScript and related automation can also issue outbound HTTPS requests, enabling selected callback patterns rather than a universal SuitePeople event stream.
Martini implementation pattern
Martini implementation pattern: Martini receives a configured callback or calls a RESTlet, verifies the request context, retrieves the authoritative record when necessary, and deduplicates notifications before applying downstream processing. Coverage depends on the NetSuite implementation.
Implementation sequence
CSV import and export
NetSuite supports CSV import and export for supported records. This method is useful for batch employee, time-off, or time-entry exchange when real-time APIs are not required or a legacy target requires files.
Martini implementation pattern
Martini implementation pattern: a scheduled or file-triggered workflow validates the CSV structure, transforms rows into the target format, submits or produces the file, and records row-level outcomes. Invalid rows are separated from successfully processed records.
Implementation sequence
SuiteAnalytics Connect
SuiteAnalytics Connect provides analytical access through supported database drivers and account-specific schemas. It is intended primarily for reporting and read-oriented extraction rather than transactional Employee or Time-Off Request updates.
Martini implementation pattern
Martini implementation pattern: Martini can execute controlled analytical reads, transform the results, and deliver them to reporting or downstream stores. Transactional writes remain routed through supported REST, SOAP, RESTlet, or file mechanisms.
Implementation sequence
Common NetSuite SuitePeople integration patterns
Pattern 1: Synchronize employees with an HR platform
When to use this pattern
Use this pattern when NetSuite SuitePeople or another HR platform owns employee master data and the other system requires current worker profiles, organizational relationships, and employment status. A scheduled incremental query is usually more predictable than relying on incomplete event coverage.
Integration direction
Example Mapping
| NetSuite SuitePeople Field | Canonical Field | Target Field |
|---|---|---|
| internalId | sourceEmployeeId | netSuiteWorkerReference |
| externalId | employeeKey | workerId |
| employmentStatus | employmentStatus | workerStatus |
| subsidiary | organizationUnit | companyCode |
Martini implementation pattern
Martini retrieves Employees using a saved search, REST query, or supported service with pagination and a persisted modified-date watermark. It normalizes identifiers and dates, enriches organizational references, applies create-versus-update rules, and retries eligible transient failures while sending permission, validation, and duplicate errors to an exception path.
Martini capabilities used
- workflows
- API consumption
- scheduling
- data mapping
- business rules
- error handling
Pattern 2: Synchronize approved time-off requests
When to use this pattern
Use this pattern when approved, rejected, or canceled Time-Off Requests must be shared with payroll, workforce scheduling, or reporting systems. Because event coverage is partial, the design can combine selected callbacks with periodic reconciliation.
Integration direction
Example Mapping
| NetSuite SuitePeople Field | Canonical Field | Target Field |
|---|---|---|
| employee | employeeKey | workerId |
| timeOffType | leaveType | absenceType |
| startDate | absenceStart | startDate |
| status | approvalStatus | requestStatus |
Martini implementation pattern
Martini receives a configured callback where available or polls incrementally for changed requests. It retrieves the authoritative record, maps date ranges and configured statuses, ignores duplicate notifications, and sends only approved or otherwise permitted states to the target. Rejected status mappings and incomplete employee references are routed for review.
Martini capabilities used
- workflows
- webhook consumption
- API consumption
- data mapping
- idempotency
- error handling
Pattern 3: Exchange timesheets and payroll-related data
When to use this pattern
Use this pattern when Timesheets or permitted payroll-related employee and pay records must be delivered to payroll, finance, or project accounting. It is appropriate for controlled batch processing where the data is sensitive and period rules matter.
Integration direction
Example Mapping
| NetSuite SuitePeople Field | Canonical Field | Target Field |
|---|---|---|
| employee | employeeKey | workerId |
| date | workDate | payDate |
| hours | workedHours | regularHours |
| classification | costClassification | earningOrCostCode |
Martini implementation pattern
A Martini workflow retrieves records in bounded pages or batches, validates pay period and classification values, minimizes sensitive fields, transforms the payload, and submits it to the target API or file process. It records batch results, prevents duplicate submissions, and retries only transient transport or service errors.
Martini capabilities used
- workflows
- API consumption
- batch processing
- data mapping
- validation
- monitoring
Pattern 4: Run a file-based workforce exchange
When to use this pattern
Use this pattern when a legacy or high-volume target requires CSV and the required SuitePeople data can be exported or imported through supported NetSuite file processes. It provides a controlled alternative to real-time record calls.
Integration direction
Example Mapping
| NetSuite SuitePeople Field | Canonical Field | Target Field |
|---|---|---|
| externalId | employeeKey | accountId |
| date | entryDate | worklogDate |
| hours | timeQuantity | timeSpent |
| department | organizationalUnit | projectContext |
Martini implementation pattern
Martini retrieves or receives the CSV, validates structure and required values, maps rows to the target format, and submits the result. Row-level failures are retained for correction, while successful rows are checkpointed. A reconciliation step compares accepted rows with the source batch.
Martini capabilities used
- scheduled workflows
- file processing
- data mapping
- validation
- business rules
- error handling
Applications commonly integrated with NetSuite SuitePeople
SuitePeople data can participate in broader HR, payroll, service-management, finance, and workforce processes. The exact system of record and direction should be defined for each object because these relationships are typically enterprise architecture patterns rather than guaranteed native SuitePeople pairings.
| Application | Scenario | Direction | Martini Pattern |
|---|---|---|---|
| Workday | Synchronize employee master data, organizational structures, worker status, and HR changes between the systems. | Workday → Martini → NetSuite SuitePeople | Martini can consume Workday data, normalize employee identifiers and organization fields, apply ownership rules, and upsert NetSuite Employee records using REST Web Services or SOAP. Validation, checkpoints, and retry handling protect against duplicate or partial updates. |
| ADP Workforce Now | Exchange employee, payroll, tax, benefits, or time data when ADP performs payroll processing and NetSuite supports financial operations. | NetSuite SuitePeople → Martini → ADP Workforce Now | A Martini workflow retrieves permitted employee, timesheet, or payroll-related data, minimizes sensitive fields, maps the payload to ADP requirements, and routes validation or authorization failures separately from transient service errors. |
| Salesforce | Align employee, owner, or operational information where Salesforce supports customer-facing processes and NetSuite is the financial or workforce platform. | NetSuite SuitePeople → Martini → Salesforce | Martini can retrieve approved Employee attributes, transform them into Salesforce user or ownership data where appropriate, and expose a controlled API for downstream requests. Stable identifiers and idempotent updates prevent duplicate provisioning. |
| ServiceNow | Synchronize employee identity, department, manager, and employment status for onboarding, access management, service requests, and employee workflows. | NetSuite SuitePeople → Martini → ServiceNow | Martini polls or receives a configured callback for relevant changes, maps employee and organizational fields to ServiceNow, applies status rules, and records the NetSuite internal ID alongside the ServiceNow identifier. |
| Shopify | Support broader NetSuite commerce and operational processes where employee data or ownership references are needed alongside orders, customers, inventory, and fulfillment. | Shopify → Martini → NetSuite SuitePeople | Martini should keep SuitePeople employee synchronization separate from commerce flows, using reusable identity mappings and explicit field allowlists where employee references are required. |
| Jira | Synchronize employee identity or project time information where Jira supports engineering work management and NetSuite supports financial or time accounting. | Jira → Martini → NetSuite SuitePeople | A scheduled Martini workflow retrieves approved Jira time or identity data, maps users and projects to NetSuite identifiers, validates period and classification fields, and submits supported Timesheet data with retry and duplicate controls. |
| Coupa | Align employee, department, cost-center, requester, approval, expense, and procurement data between Coupa and NetSuite. | NetSuite SuitePeople → Martini → Coupa | Martini can synchronize approved organizational and employee reference data, apply system-of-record rules, transform cost-center relationships, and route rejected records to an operational exception process. |
How to build a NetSuite SuitePeople integration in Martini
Objective
Establish the NetSuite account, integration record, role, permissions, scopes, and environment-specific credentials required for the selected service.
Instructions in Martini
- Choose OAuth 2.0 or token-based authentication according to the NetSuite service and account guidance.
- Store client credentials, tokens, and secrets in secure Martini configuration.
- Confirm permissions for Employee, Time-Off Request, Timesheet, payroll-related records, subsidiaries, and required services.
Objective
Select a trigger based on event coverage, data volume, and the required freshness of the integration.
Instructions in Martini
- Use a scheduled workflow for predictable incremental polling and reconciliation.
- Use a configured callback only for selected SuiteScript or workflow events that the NetSuite account implements.
- Use a file trigger when the exchange is CSV-based.
Objective
Read the authoritative NetSuite resource or file while respecting account-specific schemas, pagination, and service limits.
Instructions in Martini
- Use REST Web Services first for supported JSON record operations.
- Use SuiteTalk SOAP or a RESTlet where the integration requirement justifies it.
- Persist a modified-date, effective-date, or batch watermark after successful processing.
Objective
Coordinate retrieval, enrichment, validation, target calls, checkpoints, and exception routing in a maintainable Martini workflow.
Instructions in Martini
- Separate transport failures from business and permission failures.
- Use bounded batches and controlled concurrency for larger employee or time-entry datasets.
- Retrieve the current record after a callback when the notification does not contain authoritative data.
Objective
Convert SuitePeople records into a canonical model and then into the target application or file structure.
Instructions in Martini
- Preserve NetSuite internal IDs, external IDs, source identifiers, and synchronization timestamps.
- Normalize dates, status values, subsidiaries, departments, locations, and classifications.
- Minimize payroll and other sensitive fields to the approved integration purpose.
Objective
Enforce account-specific approval, ownership, effective-date, duplicate, and status-transition rules before writing data.
Instructions in Martini
- Do not treat creation of a Time-Off Request or Employee Change Request as approval.
- Use external identifiers and idempotent upsert logic to prevent duplicate Employees or requests.
- Route unknown statuses, missing references, and read-only fields to an exception process.
Common NetSuite SuitePeople data objects used in integrations
| Object | Typical Use | Common target systems | Martini handling |
|---|---|---|---|
| Employee | Synchronize worker profiles, employment status, supervisor, subsidiary, department, location, contact details, and employment dates. | Workday, ADP Workforce Now, ServiceNow, Salesforce, Coupa | Martini preserves internal and external identifiers, validates account-specific fields, maps organizational relationships, and applies idempotent create or update logic. |
| Time-Off Request | Exchange vacation, sick leave, personal leave, approval status, cancellation, and date-range information. | ADP Workforce Now, Workday, workforce scheduling platforms, reporting stores | Martini maps status transitions explicitly, distinguishes new requests from changes, and prevents duplicate processing of repeated notifications or polling results. |
| Time-Off Balance | Share accrued, used, available, or remaining leave amounts where the configured SuitePeople records expose them. | Workday, ADP Workforce Now, employee portals, reporting stores | Martini treats balances as account-specific data, validates effective dates and employee keys, and routes unavailable or permission-restricted fields to exceptions. |
| Timesheet | Exchange employee time entries associated with dates, projects, customers, tasks, or classifications. | ADP Workforce Now, Jira, finance systems, project accounting platforms | Martini validates periods and classifications, batches records when appropriate, maps internal IDs, and separates business validation failures from transient service failures. |
| Employee Change Request | Represent requests to change selected employee or employment information through an approval process. | ServiceNow, Workday, approval and reporting platforms | Martini distinguishes requested, approved, rejected, and completed states and does not treat creation as equivalent to approval. |
| Payroll-related employee and pay records | Support employee payroll information and payroll processing data when SuitePeople Payroll and the relevant permissions are enabled. | ADP Workforce Now, finance systems, reporting stores | Martini applies field minimization, strict role and secret controls, limited logging, and account-specific schema validation before transferring sensitive data. |
Authentication and security considerations
Authentication and authorization
NetSuite documents OAuth 2.0 and token-based authentication for applicable services, with other methods depending on account and integration requirements. Authentication is configured through NetSuite integration records, credentials, tokens, scopes, and roles.
Access to SuitePeople data also depends on record permissions, subsidiaries, enabled features, service permissions, and account-specific configuration. Martini should store credentials and tokens in secure environment configuration rather than workflow content.
- Use least-privilege NetSuite roles for Employee, Time-Off Request, Timesheet, payroll-related, REST, SOAP, RESTlet, and analytics access.
- Minimize payroll, compensation, health-related, tax, and other sensitive fields transferred between systems.
- Keep personally identifiable information and credentials out of ordinary workflow logs.
- Use separate read and write permissions where practical and test authorization in the target account.
Operational considerations for NetSuite SuitePeople integrations
Operational controls
NetSuite applies account- and service-dependent request, concurrency, and governance limits. Use pagination, bounded batches, controlled concurrency, exponential backoff, and persisted synchronization watermarks.
Design Employee, Time-Off Request, Timesheet, and payroll-related flows for idempotency. Preserve internal IDs and external IDs, distinguish transport retries from business failures, and validate approval and effective-date transitions explicitly.
- Test account-specific fields, custom forms, workflows, scripts, saved searches, permissions, and RESTlet contracts.
- Separate authentication, permission, validation, duplicate, rate, record-not-found, and service failures.
- Monitor records read, created, updated, skipped, rejected, retried, and the current checkpoint.
- Test attachments and File Cabinet behavior separately from ordinary JSON operations.
Why use Martini instead of scripts or point-to-point integrations?
Maintainable integration orchestration
Point-to-point scripts often combine authentication, record retrieval, transformation, business rules, retries, and monitoring in a single implementation. Martini separates these concerns into workflows, APIs, mappings, reusable logic, and secure configuration.
Martini can combine REST, SOAP, RESTlet, callback, CSV, and analytical access patterns while presenting a consistent process to downstream systems. This is useful when SuitePeople coverage varies by account or when an integration must support both event-style notifications and scheduled reconciliation.
- Centralize mappings, validation, status rules, and identifier management.
- Support scheduled, callback-driven, batch, and API-led workflows in one integration environment.
- Provide consistent error routing, retry behavior, checkpointing, and operational visibility.
- Expose a controlled API façade when consumers should not depend directly on NetSuite contracts.
Frequently asked questions
SuitePeople is accessed through the NetSuite account using REST Web Services, SuiteTalk SOAP Web Services, RESTlets, CSV import and export, and SuiteAnalytics Connect for analytical access. Selected SuiteScript and workflow designs can provide outbound callbacks, but NetSuite does not offer a universal webhook stream for every SuitePeople object. The available records and fields depend on account configuration, enabled features, roles, and permissions.
Yes. Martini can integrate with SuitePeople by consuming NetSuite REST Web Services or SuiteTalk SOAP Web Services, calling RESTlets, processing CSV files, receiving configured callback requests, and using supported analytical access for read-oriented workloads. Martini can orchestrate workflows, map data, apply business rules, and manage retries without requiring a documented native SuitePeople connector.
No. A dedicated NetSuite SuitePeople connector is not required. Martini can use NetSuite's confirmed REST, SOAP, RESTlet, CSV, analytics, authentication, and selected outbound integration mechanisms through workflows and APIs.
Lonti does not charge an additional per-connector or per-vendor fee to integrate NetSuite SuitePeople. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from NetSuite, cloud infrastructure, or other third-party systems depending on subscription, usage, and deployment model.
REST Web Services is generally the first interface to evaluate for new JSON-based integrations and supported record operations. SOAP may be appropriate for existing SuiteTalk clients, generated WSDL bindings, or operations not available through REST. RESTlets are useful when account-specific SuiteScript logic or combined operations are required.
Not as a universal native event stream for every Employee, Time-Off Request, Timesheet, or payroll event. Selected outbound behavior can be implemented through SuiteScript, workflows, RESTlets, or HTTPS callbacks. For predictable coverage, Martini can poll supported records or searches incrementally and reconcile changes.
A Martini workflow can retrieve records using pagination and a modified-date, effective-date, saved-search, or batch watermark. It preserves NetSuite internal and external identifiers, maps account-specific fields, applies status and approval rules, and writes to the target system. Late changes, overlapping windows, and retries should be handled through checkpoints and idempotent updates.
Martini can transform JSON, XML, or CSV data into canonical and target models, validate required fields, and route business failures separately from transient service failures. Upserts based on stable external identifiers, stored internal IDs, and idempotency keys help prevent duplicates. Rate, concurrency, and temporary service errors can be retried with bounded backoff.
Yes. Martini can expose a controlled API that hides NetSuite-specific contracts, applies authorization and validation, and invokes REST, SOAP, or RESTlet workflows behind the interface. This can provide a stable contract to consuming applications while keeping NetSuite roles, identifiers, and account-specific behavior inside the integration layer.
Related Martini documentation
APIs
Data
Integrate NetSuite SuitePeople with Martini
Use Martini to connect SuitePeople workforce data with HR, payroll, finance, service, and workforce applications through secure APIs, workflows, mappings, and operational controls.