Skip to main content
Version: Current

Projects

Overview

📥 Direction: NetSuite → Zudello
🔄 Sync Type: Incremental sync
⏱️ Frequency: Based on lastModifiedDate

Project data flows from NetSuite to Zudello to maintain comprehensive project tracking across your organization. This integration uses NetSuite's SOAP API with universal pagination to efficiently synchronize project records, including their relationships to customers and parent projects.

Key Benefits

Hierarchical Project Support - Maintain parent-child project relationships
Customer Association - Link projects directly to customer records
Efficient Synchronization - Universal pagination ensures reliable data transfer
Status Tracking - Monitor project lifecycle with active/inactive status

Field Mappings

Zudello FieldNetSuite FieldData TypeNotes
codeentityIdStringProject code/identifier
namecompanyNameStringProject name
customerparentRelationReference to customer record
parent_projectparentProjectRelationReference to parent project
statusisInactiveStringtrue = INACTIVE, false = ACTIVE

API Configuration

SOAP API Settings

  • Service: NetSuite SOAP API
  • Record Type: Project
  • Pagination: Universal pagination for reliable data retrieval
  • Page Size: Configurable (typically 500-1000 records)

Search Criteria

  • Incremental: Uses lastModifiedDate for delta synchronization
  • Filters: Can filter by subsidiary or other custom criteria

Sync Configuration

Initial Sync

  1. Performs full data extraction on first run
  2. Retrieves all active and inactive projects
  3. Establishes project hierarchy relationships
  4. Links projects to customer records

Incremental Sync

  1. Queries projects modified since last sync timestamp
  2. Updates existing records or creates new ones
  3. Maintains relationship integrity
  4. Processes deletions if configured

Processing Logic

Data Transformation

  • Status Conversion: NetSuite's isInactive boolean is inverted to Zudello status
    • isInactive = false → Status = "ACTIVE"
    • isInactive = true → Status = "INACTIVE"
  • Code Standardization: Project entityId is used as the unique code
  • Relationship Handling: Customer and parent project references are preserved

Relationship Management

  • Customer Links: Projects are associated with customer records via parent.internalId
  • Project Hierarchy: Parent-child relationships maintained through parentProject reference
  • Orphan Handling: Projects without customers can be processed based on configuration

Special Features

Universal Pagination

NetSuite's SOAP API universal pagination ensures:

  • Consistent data retrieval across large datasets
  • Automatic handling of timeout scenarios
  • Resume capability for interrupted syncs
  • Memory-efficient processing

Multi-Level Hierarchies

  • Supports multiple levels of project nesting
  • Parent projects must exist before child projects
  • Circular references are prevented during processing

Troubleshooting

IssueCauseSolution
Projects not syncingPermissions insufficientVerify SOAP API role has project read access
Missing customer linksCustomer not synchronizedEnsure customer sync runs before projects
Hierarchy errorsParent project missingCheck parent project exists in both systems
Timeout errorsLarge datasetReduce page size in configuration
Status mismatchBoolean logic errorVerify isInactive field mapping