Leprechaun PSA

NetSuite integration

Your PSA decides what to bill. NetSuite owns the receivable.

Sixteen record flows between this app and your own NetSuite account — each one a switch you control, each push logged with what was sent and what came back. Built by people who spent ten years putting NetSuite and OpenAir into services firms and watching where the seams tore.

Where the line sits

Most integrations fail on an unstated assumption about which system is in charge of what. This one states it.

This app decides what to bill

Because only it knows which hours a manager approved, at whose rate, against which billing rule and under which change order. An invoice is assembled here from approved hours, milestones, expenses and marked-up purchases.

NetSuite issues it

The invoice crosses and NetSuite owns the receivable from that point on. Status — invoiced, paid, overdue — flows back, so reporting here reflects real billing state rather than an estimate. Nothing here ever marks an invoice paid on its own.

Neither one guesses

A draft, submitted, rejected or void invoice never crosses. An unbalanced revenue journal is refused here rather than by NetSuite. A card charge with no project on it is named in the sync log instead of parked against a placeholder.

Out to NetSuite

Master data crosses before the transactions that name it — a contact cannot exist over there without its company, and an invoice names a job and a customer by external id.

Clients
Push as NetSuite customers. Every invoice names one by external id, so they cross before the transactions that refer to them.
Customer
Client contacts
The people at a client, as contacts under the customer they belong to.
Contact
Projects
Engagements push as NetSuite jobs under their customer. Time, expenses and invoices all name a job.
Job
Employees
People push as employees, which is what a timesheet or expense report is attributed to over there. Bill rate travels; cost rate deliberately does not.
Employee
Catalogue items
Service and purchase items. An invoice line needs one, and it is what decides the GL account the line posts to.
Item
Vendors
Vendor records push so a purchase has a party to be owed to.
Vendor
Vendor contacts
The people at a vendor, as contacts under the vendor they belong to.
Contact
Approved time
Approved timesheets flow across, which is where they turn into payroll or a billable time record. This app tracks and approves them.
Time
Approved expenses
Approved claims flow across, which is where they turn into a reimbursement or an AP entry. Receipt tax travels with them.
Expense report
Invoices
Assembled here from approved hours, milestones, expenses and marked-up purchases, then pushed as the invoice to issue. Draft, Submitted, Rejected and Void never cross.
Invoice
Credit memos
Pushed as their own records linked to the invoice they credit, which is what makes them apply against it rather than sit as an unapplied credit.
Credit memo
Revenue journals
A recognized period posts as one balanced journal entry, with project, department, class and location carried on each line.
Journal entry
Purchases
Purchases booked against a project go out as vendor bills, so the payable side is handled there. Paying the vendor — terms, cash, 1099s — never happens here.
Vendor bill
Invoice payments
Cash recorded here goes out as a customer payment, applied to the invoices it was applied to here. Money on account with nothing applied still crosses.
Customer payment

Back from NetSuite

Invoice status
Invoiced, paid and overdue flow back from NetSuite's AR, so revenue reporting here reflects real billing state. NetSuite's own invoice number comes back on the same change, and its issue date where field mapping says it owns that.
from AR
Credit card charges
Arrive as project costs — one cost per line of the charge's Expenses and Items sublists, coded to the vendor, client and project NetSuite has them against. A line with no project is named in the sync log rather than parked against a placeholder.
to project costs

Several outbound flows can also be reversed where a firm wants NetSuite to be the source — expenses, credit memos, revenue journals and purchases each carry that option.

Questions

Do we need a NetSuite partner to install this?

No. The connector posts to a RESTlet deployed in your own NetSuite account, which needs an administrator there rather than a partner engagement. We deploy and test it as part of the integration add-on.

Are you an Oracle ISV partner?

No, and we would rather say so plainly than let you find out later. Oracle does not take a PSA into the ISV programme, because one competes with its own SuiteProjects. The connector works through a RESTlet in your account — your administrator's access rather than a badge on our website.

Can we turn individual flows off?

Each record type is its own switch, not a sub-toggle under a group. A firm that wants NetSuite to receive its clients and invoices while keeping its own employee list — because employees carry pay-adjacent data — can have exactly that.

What happens when a push fails?

Every push is logged with what was sent and what came back, and each record shows what it became over there. A failure is visible on the record, not silent.

Is the integration required?

No — it is optional and the app is complete without it. Firms on QuickBooks, on Xero, or on nothing at all run the whole system and invoice from inside it.

The integration is a one-time $4,000 add-on to onboarding — mapping and testing the flows against your account, with go-live support. Full pricing.