Skip to content
Components

SuiteProjects Pro

Extract projects, tasks, time entries, invoices, approvals and about 160 other object types from NetSuite SuiteProjects Pro, formerly OpenAir, through its XML API.

NetSuite SuiteProjects Pro, formerly NetSuite OpenAir, is a professional services automation suite. The SuiteProjects Pro data source connector reads it through the XML API, which covers about 160 object types, including projects, tasks, time entries, invoices, charges, approvals and revenue recognition, several of which the REST API does not expose. One configuration row reads one object type into one table.

Incremental fetch is the default: after the first run, each run reads only the objects changed since the previous one, which keeps the requests against the account’s shared API limits small. A row can also read the approval history of expense reports and timesheets, write custom fields into a separate table, and store attachment files in Keboola File Storage.

  • API access, a licensed SuiteProjects Pro add-on. When it is enabled for the account, SuiteProjects Pro issues the API namespace and the API key.
  • A dedicated API user that signs in with a password. Single sign-on does not work for the API. The connector reads only the objects that this user’s role and filter sets allow.
  • The account-specific domain from the address bar after you sign in.

Create a new configuration of the SuiteProjects Pro data source connector.

FieldDescription
Account domainThe account-specific domain from the address bar after you sign in to SuiteProjects Pro.
Company IDThe company ID you enter on the sign-in page.
User IDThe user ID of the API user.
PasswordThe API user’s password. Stored encrypted.
API namespaceIssued by SuiteProjects Pro together with the API key.
API keyStored encrypted.

Click Test connection, then save.

Screenshot - SuiteProjects Pro connection settings

Click Add Row for each object type. A row has four parts.

Source

FieldDescription
Object typeThe object type, or approval history, this row extracts into one table. Click Load object types to pick from the list.
Fetch modeIncremental fetch (default) reads only the objects changed since the previous run. Full fetch reads all of them. Date window reads the objects between Date start (included) and Date end (excluded).
Fetch fieldThe date property that incremental fetch and date window compare. Click Load date fields to pick from the object type’s dates. updated is the last change of an object and suits incremental fetch; pick another date, such as date of Task, for a date window.
LookbackHow far before the previous run to read again, as a whole number of minutes, hours, days or weeks, for example 2 days or 6 hours. The connector always adds an overlap of its own on top.
Date start, Date endBounds of the date window in SuiteProjects Pro server time; Date start is included and Date end excluded. Enter YYYY-MM-DD, YYYY-MM-DD HH:MM:SS or a relative value such as 30 days ago, yesterday or today.

Some object types add options of their own, for example Download files and Keep files permanently for attachments, Base currency and Rate precision for exchange rates, or Include placeholder users for users.

Filters

FieldDescription
Read methodAll objects of the type, objects equal to or not equal to a field value, or the objects of selected users or projects.
Conditions and date conditionsField and value pairs, or date comparisons, that narrow the read.
Status filtersOnly objects in the selected statuses.
Not exported toOnly the objects not yet exported to this application, as ImportExport names it.

Screenshot - SuiteProjects Pro row, Source and Filters

Destination

FieldDescription
Table nameStorage table name. Empty uses the object type in lowercase.
Load typeIncremental load (default) updates rows by primary key and keeps the rest. Full load replaces the table: with full fetch it mirrors SuiteProjects Pro, with incremental fetch or a date window the table holds only each run’s objects. Object types without a primary key, such as Term, need full load.

Read options

FieldDescription
ColumnsThe properties to read. Empty reads all of them.
Batch sizeObjects per API request, at most 1,000.
Custom fieldsInline columns (default) writes custom field values as columns, Separate table writes them to their own table, optionally only the named custom fields, and Off skips them.
Include deletedAlso reads the objects marked as deleted and flags them in an is_deleted column.

One table per row, named after the object type in lowercase unless you set a table name. With custom fields set to a separate table, their values land in their own table. Attachment contents go to File Storage when Download files is on.

Every request counts against the account’s API limits for 60 seconds and for 24 hours, which the account shares with its other integrations. Keep row parallelism off, and keep incremental fetch wherever the object type has an updated field.

Ask Kai

Hi, I'm Kai — Keboola's AI assistant for the docs. Ask me anything and I'll answer from the documentation and cite the pages I use.

Kai is an AI and can make mistakes. Check the sources it links.