#1-ranked iPaaS on G2 among 236 competing solutions

Statement of Work

This Statement of Work (“SOW”) describes the professional services (the “Professional Services”) to be performed by Celigo Inc. (“Celigo”) for the customer (“Client”) identified on an order, proposal or quotation linked to or referencing these terms (each an “Ordering Document”) pursuant to the Celigo Service Subscription Agreement (“Agreement”), available at https://www.celigo.com/agreements/ssa-ns and into which this SOW is incorporated.

Project Scope

Celigo will implement the Salesforce Connector, Premium (“Connector”) for the Client. The tables below outline the standard functionality of the Connector.

The Connector supports Salesforce Enterprise and above.  The Connector is not currently supported for the Salesforce Professional Edition. All versions of NetSuite are supported with the exception of CRM+.


The customer flow syncs accounts from Salesforce to customers in NetSuite when a Salesforce account is created or updated.  The flow may be configured as follows:

  1. Support parent/child relationships by exporting parent accounts to Netsuite customers first and then creating the hierarchy within the NetSuite customer records. Up to 10 parent levels is supported.
  2. Limit the account to customer sync to trigger only with the opportunity sync.
Salesforce to NetSuite
The contact flow syncs contacts from Salesforce to contacts in NetSuite when a contact is created or updated for an account that has already been synced with NetSuite.
The flow may be configured to filter contacts by role.
NetSuite to Salesforce
The Connector will create or update contacts from NetSuite to Salesforce for any contact associate with a synced Account.
Accounts with a count of 15+ contacts may require a customization to avoid timeouts.
NetSuite to Salesforce

The item export flow exports items from NetSuite to products in Salesforce when a new item is created in NetSuite, or an existing item is updated or inactivated in NetSuite.

Most commonly used item types in NetSuite are supported.
Price levels in NetSuite are exported as price books in Salesforce.  Multi-currency pricing can be exported as a combination of price-level and currency to a single Salesforce price book, but with a currency entry into that price book.  Requires multi-currency to be enabled in Salesforce and NetSuite.
Products are not synced from Salesforce to NetSuite.

This flow enables a user to sync a native Salesforce quote to a NetSuite estimate. The Connector will create an estimate in NetSuite for the Salesforce quote, and based on NetSuite and Connector settings, if appropriate, the NetSuite estimate will be updated with applicable shipping, handling, and tax amounts. The updated estimate will be synced back to the Salesforce quote.
The sync is triggered by pressing a button on the quote.
Estimates originating from NetSuite are not synced to Salesforce.

The opportunity flow syncs Salesforce opportunities, with notes and attachments, to NetSuite sales orders. Once the sales order is created in NetSuite, this record will be replicated back into Salesforce as an order that is attached to the account and opportunity records. The Connector syncs the transaction header and lines. Opportunity line item prices will be synced to the sales order.
Multiple currencies are supported as long as multi-currency is enabled in both Salesforce and NetSuite.
The sync is triggered by pressing a button on the quote.

Customer Import
Prior to creating a sales order in NetSuite, the Connector will check if a prospect or customer already exists in NetSuite for this Salesforce account; if one does not exist, a new prospect/customer will be created.

NetSuite to Salesforce
If configured, when the NetSuite sales order is updated, the Connector syncs the updates to the Salesforce opportunity.
File attachments must adhere to NetSuite’s restrictions on file types and sizes.

NetSuite to Salesforce
This flow syncs NetSuite originating sales orders to Salesforce.
The Connector syncs the transaction header and lines from NetSuite to Salesforce.
NetSuite to Salesforce

The financials export flow provides back office visibility to Salesforce. The flow brings updates from NetSuite to Salesforce as a sales order moves through fulfillment and billing in NetSuite.
The following NetSuite transactions are exported to Salesforce:

  1. NetSuite Invoice
  2. NetSuite Payment/Deposit
  3. NetSuite Credit Memo
  4. NetSuite Cash Sale
  5. NetSuite Cash Refund
  6. NetSuite Customer Refund

The Connector will sync the pdf’s of the following transactions – sales order, invoice/cash sale, customer payment, credit memos/cash refunds – from NetSuite to Salesforce. The PDF will be stored in Salesforce. Only header level data is exported from NetSuite to the Salesforce financial object. Line level data is included in the pdf’s.
Additionally, the Connector will sync the following customer financial information from the NetSuite customer to Salesforce account, on a batch basis or on demand:

  1. credit limit
  2. hold
  3. balance
  4. overdue balance
  5. days overdue
  6. unbilled orders
Salesforce to NetSuite
If EchoSign or DocuSign is enabled in Salesforce, when an opportunity is synced to NetSuite, the EchoSign/DocuSign attachments will be synced. The Connector can be configured such that only certain EchoSign/DocuSign document status(es) will be synced.
Salesforce to NetSuite

When syncing transactions from Salesforce to NetSuite, the Connector will associate a NetSuite subsidiary with the transaction. The flow may be configured as follows:

  1. you may hard code one subsidiary for all transactions, or
  2. you may designate a Salesforce field/record to signify subsidiary and map the subsidiaries between Salesforce and NetSuite using this field/record

NetSuite OneWorld must be enabled.


Salesforce to NetSuite

Enhances the capabilities of the ‘Sync Opportunity and Sales Order’ flow with end user and Partner/Reseller/Distributor sales order entity designation.

The Connector supports syncing a partner record from Salesforce to NetSuite. The Connector will create a NetSuite customer record for the appropriate partner account associated to the Salesforce opportunity. The Connector allows you to designate which type of partner you want to sync.

Additionally, the Connector can also designate the Salesforce account on the Salesforce opportunity as an ‘end user’ in NetSuite. The Connector creates a NetSuite customer record for this ‘end user’ and inserts this ‘end user’ customer address as the Ship To address on the NetSuite sales order while inserting the partner account associated with to the Salesforce opportunity as the Bill To address.


Salesforce to NetSuite

The Connector will sync Team Selling Revenue or Overlay splits from the Salesforce opportunity to the NetSuite Sales Order.

For the overlay splits sync, the Connector supports a total split greater than 100%. Since, in NetSuite, you may only assign a sales rep to Team Selling, the Connector gives you an option to map a non-sales-rep to a sales rep role in NetSuite.

Team Selling feature must be enabled in both Salesforce and NetSuite.


NetSuite to Salesforce

When a NetSuite sales order is fulfilled, the NetSuite fulfillment record will be synced to a Salesforce custom fulfillment record. If that NetSuite fulfillment uses NetSuite’s serialized inventory feature, the fulfillment will also sync to a native Salesforce asset record and will be referenced by the Salesforce fulfillment.
NetSuite to Salesforce
The Connector creates an opportunity in Salesforce for a contract renewal transaction in NetSuite opportunity, estimate, or sales order as the renewal transaction.
Transaction types other than opportunity, estimate, or sales order are not supported out of the box.
The Contract Renewals module must be enabled in NetSuite. Note: Implementation of NetSuite’s Contract Renewals Module is not included in this Proposal.
NetSuite to Salesforce

Support for New Business Contract Transactions
When a new Salesforce opportunity is synced as a NetSuite sales order, the Contract Renewals module creates a new contract for this sales order in NetSuite. The Connector syncs this newly created NetSuite contract to a native Salesforce contract object.

Items from the synced NetSuite sales order are added as contract items to the new Contract by the Contract Renewals module. These contract items are also synced to Salesforce as a custom related list in the native Contract object.

Support for Other Contract Transactions

  1. Upsell – An upsell Salesforce opportunity can be created in Salesforce by selecting a previously synced, active contract. When this opportunity is synced as a NetSuite sales order, the Contract Renewals module adds the items from the upsell opportunity to the existing contract and the updated contract is synced back to Salesforce with the newly added contract items.

Support for Direct Sales and Channel Sales for Contract Renewal
Whether the Salesforce opportunity is a direct sale to the End User or an indirect sale via a Reseller or Distributor, the Connector supports the combinations of bill to customer and ship to customer.

Support for Monthly and Annual Pricing of Items
The Connector supports items setup with monthly and annual pricing and adjusts accordingly to appropriately calculate total order amount for a given contract. The Connector also shows the Total Amount calculation done by the NetSuite Contract Renewals module within the Salesforce opportunity.
The Connector does not support discount calculations in contract items.
The Contract Renewals module must be enabled in NetSuite. Note: Implementation of NetSuite’s Contract Renewals Module is not included in this Proposal.


  1. Any functionality of the Connector not explicitly stated as in or out of scope requires further review by Celigo. As a result, a customization and a change order may be required.
  2. Multi-select field mappings are not supported out-of-the-box and will require a customization for each multi-select mapping.
  3. Logical mappings are not supported out-of-the-box, but can be handled with a customization and change order. Logical mappings are field mappings that require logic to be performed to determine which fields or values should be imported or exported.
  4. Salesforce custom objects and related lists that are associated with the records the Connector imports or exports are not included in scope. If the Client requires custom objects or related lists to be imported or exported, this will require a customization and change order.
  5. When the Connector imports or updates NetSuite records, server-side NetSuite scripts will be triggered. Client-side NetSuite scripts are not triggered by the Connector. If there are existing scripts on the NetSuite records, or if scripts are added in the future, it is not within the scope of this Proposal or Celigo’s support policy to debug and resolve any issues resulting from these NetSuite scripts.
  6. The Client is responsible for the creation and maintenance of any mapped fields in both Salesforce and NetSuite. Implementation of either system is not in scope.
  7. The Client is responsible for the maintenance of units tests for any packages, triggers, workflow rules, and validation rules within Salesforce.  Salesforce maintains a 100 query limit on these tests.  Celigo has streamlined its unit tests for the Connector and it does not materially impact this limit.  Should the Celigo install fail due to the query limit, it is the Client’s responsibility to review and modify their existing unit tests.  If a Client installs additional packages after the installation of the Connector and receives errors concerning their existing packages, it is the Client’s responsibility to review and modify their existing unit tests.  If there are specific errors with Celigo’s tests, Celigo will review and modify the Connector’s unit tests.
  8. Setup fees include pre-production linking between Salesforce and NetSuite of up to 5000 records for each record type (accounts, contacts, and items). Additional record linking is not included in the scope of this proposal unless otherwise specified.

Project Approach

Celigo’s delivery approach is collaborative, whereby both Celigo and the Client assume responsibilities required to bring the project to a successful conclusion. This will be a hands-on project, jointly managed by Celigo and the Client. The Client must provide resources as described in the project team section below. These Client resources and timely completion of responsibilities are necessary for the project to be completed successfully and on time.

Resourcing Model

Celigo operates under a shared-resource model, which means that your Celigo resource(s) work on multiple projects at once; they are not dedicated to your project on a full-time basis. Celigo’s resources are located worldwide, with the majority of resources working out of the following offices:

  1. California, U.S.A: standard operating hours are 7am-5pm PST, Monday through Friday
  2. Hyderabad, India: standard operating hours are 1am-10am PST, Monday through Friday.

Meetings will take place within these standard operating hours. Celigo will conduct all sessions online. Additional costs will apply for off-hours and/or weekend meetings.

By default, your Celigo project team will be assigned based on availability. This may result in a fully onshore, offshore, or blended resource model.

Project Environment

Celigo recommends that the Client utilizes sandbox (or test/development) environments for development and testing. Ideally, each system impacted by the solution should have a sandbox environment.

If the Client does not have a sandbox environment for any system being integrated, all project stages will be completed in the Production instance.

  1. If the Client obtains a sandbox environment during the course of the project, additional charges may apply to migrate the solution to the sandbox environment. The remaining work would be completed in the sandbox environment.
  2. If the Client purchases a sandbox after Go Live, additional charges may apply to migrate the solution to the sandbox environment. Immediately prior to this work, the Client must request that the 3rd Party Provider refresh the sandbox from production. Once the Sandbox has been refreshed, Celigo will configure the solution in the sandbox environment.

If the Client has purchased the Sandbox subscription, which is an additional instance of the integration that is deployed in the sandbox environments, this Perpetual Sandbox subscription will include the following:

  1. Implementation, testing, and Client UAT will be performed in the sandbox environments. Once Client UAT has been completed and approved, the Solution will be bundled and installed into the production environments.
  2. Client is responsible for ensuring that configuration or customizations made by the Client are made in both the sandbox and production environments.
  3. Client is responsible for final testing and sign-off in the production environment.  Unless explicitly asked by the Client, Celigo will not make any modifications in the production environment. Any fixes or changes will be made in the sandbox environment and then bundled and installed into the production environment. This approach will be used throughout the entire project.
  4. If the Client has a sandbox environment for each system being integrated, the Solution will continue to be available in the sandbox environments after Go Live. Further modifications can be made and tested first in sandbox and then migrated to the production environments.
  5. The subscription accommodates two annual sandbox events, as described below, after project closure, without incurring additional fees.
    1. Sandbox Refresh: If Client refreshes the sandbox environment(s), Celigo will re-configure the Solution to point to the sandbox after it has been refreshed. See assumptions below for additional details regarding sandbox refreshes.
    2. Sandbox Switch: If Client has more than one sandbox environment for a particular platform (e.g. 2 NetSuite sandbox instances), Celigo will switch the Solution to work with one sandbox instead of the other.

The Sandbox Subscription is bound to the same terms and conditions as a Production Subscription.


  1. At the time that Implementation starts, the Sandbox instance is an exact replica of the Production instance.
  2. Once implementation has started, if the Sandbox is refreshed, expired, or deleted and Celigo loses any work in progress, additional charges will apply to re-implement the solution in the Sandbox instance and the Client is responsible for these additional fees.
  3. If the Implementation has been completed in Sandbox and, for reasons beyond Celigo’s control, the solution cannot yet be deployed in Production, Celigo will consider the project closed. When the Client is ready to deploy the solution in Production, the Client may log a support case to get this accomplished.

Delivery Methodology

Celigo’s delivery methodology is iterative and consists of the stages below. Celigo will manage the project and maintain open communication via regular, periodic status meetings, a collaborative, shared project plan, and collaborative/shared project documentation, such as an issues log. Celigo utilizes Google Drive to create, store, and share project documentation with the Client. If Client is not willing to utilize this tool, Client must provide an equal tool that provides the same level of collaboration.

  1. Initiation & Planning
  2. Implementation & Testing
  3. Client UAT
  4. Deployment & Go-Live Support

Initiation & Planning: The Initiation & Planning stage lays the groundwork for later stages of the project by establishing the objectives of the project, the scope, and the staffing. Celigo and Client will jointly kick-off the project, which includes completing any necessary prerequisites, reviewing and gathering all requirements, finalizing design of the total solution, and finalizing the project strategy and plan. If new requirements are identified, they will be addressed via a change order or they will be tabled for a future phase/project. Regular, ongoing status meetings will be scheduled and started. Project tracking documents will be created and shared. The Client’s responsibilities include, but are not limited to: providing Celigo access to relevant systems, assigning project team members, detailed review of the requirements document and sign off on final solution design, discuss dependencies with the NetSuite implementation and other projects, and joint development and sign off on the final project plan.

Implementation & Testing: The solution will be developed and tested iteratively. For each iteration, Celigo will configure or develop the solution as agreed upon. Celigo will develop unit tests and perform testing and validation to ensure the solution works as designed. Celigo will perform knowledge transfer to prepare the Client for User Acceptance Testing (UAT).  The Client’s responsibilities include, but are not limited to: actively participate in the project meetings, provide answers to Celigo’s questions, escalate issues internally to obtain timely resolution, and proactively identify changes, risks, or environmental factors that may affect the project. Unless otherwise stated in this proposal, the Client is also responsible for configuring and implementing their system to support this solution. The Client will also begin design of the UAT plan.

Client UAT: The Client will perform UAT and full system testing. As issues are uncovered, the Client must enter them into the issues log. Celigo will work with the Client to resolve the issues that are within project scope. Issues identified as out of scope will be addressed either via a change order or flagged to be part of a subsequent project. The Client’s responsibilities include, but are not limited to: executing the test plan, logging issues in the issues log, providing timely resolution and answers towards issue resolution. If Client has completed UAT and, for reasons beyond Celigo’s control, the project cannot yet be closed, final project fees will be invoiced.

Deployment & Go-Live Support: Celigo will provide a final, high-level knowledge transfer of the solution. Celigo will work with Client to bring the solution live. After go-live, for a predefined number of weeks, the Celigo project team will continue to work closely with Client for post go-live support. Upon completion of this post go-live support, the deployment stage is completed, the project is closed, and the Client is transitioned to Celigo Client support. The Client’s responsibilities include, but are not limited to: perform additional testing to confirm the solution works as planned within normal business situations, identifying and logging issues within the predefined go-live support period, resolving issues in a timely manner, solution sign off, and training end users and stakeholders.

The Client will receive:

  1. Kick-off Presentation: slides used to kick off the project, set expectations, and communicate key project processes
  2. Working Solution: implemented per the Project scope
  3. Solution Document: if customizations are included in scope, the original requirements document(s) will be kept up to date throughout the project and, upon project closure, will represent the as-built solution.
  4. Mapping Document: outlines the flows and/or fields being implemented

Celigo will advise Client when deliverables are ready for review. If Client identifies any deficiencies in the deliverables, when evaluated against the specifications reflected in this Proposal and any other mutually agreed criteria, then Client shall notify Celigo in writing of the deficiencies. If Client and Celigo agree on the deficiencies, Celigo’s obligation shall be to re-deliver or re-perform the deliverables so that the deliverables conform to the specifications. If Client does not notify Celigo of deficiencies within 10 days following Celigo’s notice that the deliverables are ready for evaluation, then the deliverables are deemed accepted.


  1. Celigo will conduct weekly status meetings during Implementation & Testing. During Client UAT and Deployment & Go-Live Support, Celigo may conduct up to 3 status meetings per week.
  2. The Client is responsible for putting together a UAT plan and performing the actual testing. Celigo will provide guidance and suggestions for performing UAT.
  3. The Client is responsible for defining and creating the data necessary to perform UAT. The Client is also responsible for deleting any test data that was created during the course of this project. Celigo will not delete the Client’s data from any NetSuite environment, including the Sandbox.
  4. Celigo will resolve issues identified during UAT as per the project scope. Changes outside of project scope will be tracked as future enhancements, to be scoped and completed as a separate, future project.
  5. The Client is responsible for creating training materials and delivering end user training.
  6. The Client is responsible for any and all data migration and data management both during the project and after project closure.
  7. The Client is responsible for performance and volume testing.

Project Team

Client Team Roles & Responsibilities

Client is responsible for acknowledging and responding to requests during this Project implementation. These requests could be requirements documents, escalation issues, end-of-project notices, signature requests, etc. Some deliverables will require Client’s signature before Celigo can continue with the implementation and Customer is responsible for responding in a timely and collaborative fashion in order to meet the agreed-upon project timelines. Failure to respond in a timeline manner may lead to commensurate changes in the timeline.
It is important to understand that this is a list of project roles, not individuals, required to complete the Project. Depending of the size of the Client organization and functionality being implemented, a single individual may take responsibility for multiple roles.

Client Team Role Description Tactical Responsibilities
Project Manager Provides leadership to the project team and is responsible for overseeing the project. Will work with the Celigo Project Manager on scheduling and planning. Has an understanding of the overall goals of the project and is able to make and/or act upon most implementation decisions. This role is responsible for managing all Client resources and tasks to adhere to the project schedule. • Attend all meetings
• Point of contact for all day to day project operations
• Coordinate Client project team members & tasks
• Manage decision making
• Serve as gatekeeper for project issues log
• Point of contact for project status
• Manage Client tasks and assignments
• Manage and participate in user acceptance testing, including testing documents
Administrator Responsible for administering the solution set after go live. This resource will be trained as the superuser and will typically train other Client resources. Should have an understanding of the overall goals of the project.
This role will be responsible for maintaining and monitoring the solution when the project is completed.
• Attend all meetings
• Complete project action items
• Learn and be familiar with the solution design and functionality
• Perform user and system testing
Business Process Owners Responsible for designing and approving business process
flows for each department. Responsible for ensuring the solution designed and implemented meets the business needs. Signs off on UAT for his/her business processes.
• Participate in the design of the solution
• Define processes and approvals
• Perform user and system testing

Celigo Team Roles & Responsibilities

Celigo Team Role Description
Technical Consultant(s) Responsible for developing and deploying the solution as well as adherence to project plan, adherence to the Proposal, as well as any risk and project issues that might need to be addressed. This resource will work with the project team to define requirements, design the solution, and address project issues. This individual will ensure the solution is tested prior to the Client’s UAT. The consultant will conduct weekly status meetings with the Client’s project team.

Project Assumptions

Deviations from these assumptions may lead to commensurate changes in the timeline and pricing.

  1. Client acknowledges that its participation, availability, and cooperation is critical for the success of the Project. Project timelines are based on availability of Client resources and key decision makers. Lack of access to project stakeholders or lack of timely decision making will impact project timelines and pricing. Client agrees to provide Celigo with prompt and adequate responses to its requests for information and other requests related to the services to be performed under this Proposal.
  2. The services in scope of this Proposal will be delivered in one project phase. If the Client chooses a partial deployment of the solution, additional charges may apply to implement the remaining scope in a future project phase.
  3. The following circumstances may cause the project to be put on hold. When a project is put on hold, Celigo’s resources will be removed from the project and reallocated to other work. Celigo will make multiple attempts to contact the Client prior to putting the project on hold, however if Celigo does not receive a response, the project will be put on hold.
    1. If the Client is not ready to start the project within 2 weeks of the start date Celigo and the Client agreed to
    2. Once the project has started, if, for any reason, the Client or a 3rd Party is unresponsive or stalls the project for more than 2 weeks
  4. If the project has been put on hold, in order to re-engage, additional charges may apply as set forth in the Agreement; additionally, the subscription price and term is not adjusted.
  5. If the project has been on hold for 12 months, it is assumed that the Client wishes to cancel the project and Celigo will initiate the project cancellation process. The Client will be subject to the cancellation fees as set forth in the Agreement.
  6. Client agrees to provide Administrator access to all relevant accounts as necessary for Connector installation.