Case study · Pink Group Holdings · SuiteProjects
Pink Group: SuiteProjects with Salesforce Quote-to-Project automation.
An end-to-end NetSuite SuiteProjects implementation where the Salesforce Opportunity becomes the Project header and each Quote line becomes a Project line — wired through rate cards, resource allocation, billing schedules, timesheets, change orders, budgeting and reporting.
1The challenge
Pink Group ran a sophisticated Salesforce CRM for the front-end sales motion — Opportunities, Quotes, line-level pricing, deal stages — but every project that came out of a closed-won deal had to be manually re-keyed into NetSuite. Project managers were typing in Quote details twice, missing line items, getting rate cards wrong, and starting projects with budgets that didn't match what Sales had actually sold.
The downstream pain compounded: resource allocation was guesswork, timesheets posted to the wrong project codes, billing didn't match the agreed milestones, change orders weren't tracked back to the original sale, and revenue recognition required heroic month-end reconciliation between Sales' view of the deal and Finance's view of the project.
The team needed SuiteProjects to be more than a NetSuite module — it had to be the operational backbone that took a Salesforce Quote and ran it end-to-end through delivery, billing and revenue, without anyone re-keying anything.
2The approach
Treat the Salesforce Opportunity as the Project header and each Quote line as a Project line — with SuiteFlow and SuiteScript wiring the lifecycle from closed-won deal through project activation, resourcing, billing and revenue.
The Project record in NetSuite was extended with custom fields to capture the Salesforce IDs (Opportunity, Account, Quote, Quote Line) so every Project line traced back to the exact Quote line that sold it. SuiteFlow drove the activation lifecycle; SuiteScript handled the line-level transformation logic and rate-card resolution.
3What was built
Seven SuiteProjects lifecycle stages, fully wired from Salesforce Quote through to revenue recognition.
Lifecycle stages automated
Capabilities delivered
- Quote-to-Project automation — a SuiteFlow trigger on Salesforce Opportunity status = Closed-Won creates the NetSuite Project header with Customer, Project Manager, Currency, Start/End Date and Salesforce reference IDs auto-populated. Each Quote line is converted into a Project line via SuiteScript, preserving item, quantity, rate, role and any line-level pricing overrides agreed during the sale.
- Rate cards — role-based rate cards configured per customer and per project type. The conversion logic resolves the correct rate per Project line based on resource role, customer agreement and effective-date hierarchy, so what Sales quoted is what Finance bills.
- Project activation workflow — a multi-step SuiteFlow approval before the Project goes live: PM acknowledgement, Finance approval of margin and rate card, Operations approval of resource availability, and final activation. The Project can't accept timesheets until activation completes — preventing time charging to half-defined projects.
- Resource allocation — named resources allocated to Project lines with planned hours, start/end dates and role mapping. The allocation feeds the resource utilisation dashboard and identifies conflicts before they happen.
- Timesheets — timesheet entries validated against active allocations: time can only be booked to projects the resource is allocated to, and only to roles the rate card supports. Approval routing goes to the Project Manager named on the Project header.
- Billing schedules — milestone, time-and-materials and fixed-price billing schedules per Project line, with auto-generated invoices on schedule dates. Time-and-materials billing pulls approved timesheet entries; milestone billing fires on PM sign-off of the milestone.
- Change orders — a dedicated Change Order workflow extending the original Project: additional scope, revised rates or extended duration, all routed through customer approval and stamped with the Salesforce Opportunity reference, so the audit trail from original sale through every variation is intact.
- Budgeting & reporting — Project budgets seeded from the original Quote, with budget vs actual reporting at Project, Project line and Resource level. Custom saved searches and SuiteAnalytics dashboards for utilisation, margin-by-project, billed-vs-unbilled WIP, and forecast revenue.
- Revenue recognition handoff — Project lines and milestones feed into Advanced Revenue Management for IFRS 15-compliant recognition, so the project P&L finance reports on matches the operational reality of the project.
4The outcome
Zero re-keying from Sales to delivery
Every Project in NetSuite started life as a Salesforce Quote. No transposed line items, no missing rates, no projects starting with the wrong scope.
Sold = booked = billed
What Sales quoted, the delivery team activated, and Finance billed. The three teams stopped arguing about what the customer had actually agreed to.
Faster project activation
Activation went from days of manual setup to a structured approval workflow measured in hours — with no shortcut paths that bypassed proper margin and resource sign-off.
Clean change-order audit trail
Every variation stamped with its parent Opportunity, every approved change linked to its original scope. Customer disputes resolved by pulling up the audit trail in one click.
Margin visibility in real time
Budget vs actual at Project line and Resource level, available continuously rather than at month-end. Underperforming projects identified while there was still time to act.
Audit-grade PSA-to-revenue pipeline
Project lines flow into ARM with IFRS 15 treatment intact; revenue, AR and project P&L reconcile by design rather than by reconstruction effort.
5Technologies used
"The Quote that Sales sold the customer should be the Project that Delivery runs and the schedule that Finance bills. Anything else is just three teams writing the same number into different systems and then arguing about which one is right."