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 Field | NetSuite Field | Data Type | Notes |
---|---|---|---|
code | entityId | String | Project code/identifier |
name | companyName | String | Project name |
customer | parent | Relation | Reference to customer record |
parent_project | parentProject | Relation | Reference to parent project |
status | isInactive | String | true = 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
- Performs full data extraction on first run
- Retrieves all active and inactive projects
- Establishes project hierarchy relationships
- Links projects to customer records
Incremental Sync
- Queries projects modified since last sync timestamp
- Updates existing records or creates new ones
- Maintains relationship integrity
- Processes deletions if configured
Processing Logic
Data Transformation
- Status Conversion: NetSuite's
isInactive
boolean is inverted to Zudello statusisInactive = 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
Issue | Cause | Solution |
---|---|---|
Projects not syncing | Permissions insufficient | Verify SOAP API role has project read access |
Missing customer links | Customer not synchronized | Ensure customer sync runs before projects |
Hierarchy errors | Parent project missing | Check parent project exists in both systems |
Timeout errors | Large dataset | Reduce page size in configuration |
Status mismatch | Boolean logic error | Verify isInactive field mapping |
Related Documentation
- Customers - Customer master data for project associations
- Project Tasks - Task-level project detail
- Subsidiaries - Multi-entity project management
- NetSuite Overview - General integration guidelines