Why ERPNext fits a services firm or agency without warehouses
A consultancy, agency or professional practice sells time, retainers and deliverables, not stock. ERPNext supports this model through non-stock service items, sales orders that can be invoiced without a Delivery Note, projects and timesheets, and Frappe HR for people operations. According to ERPNext's guide for service organizations, services are normally configured as non-stock Items, so a service Sales Order can be invoiced and then marked Completed once fully billed. That removes the warehouse, pick and delivery steps a product business carries, so the day-to-day workflow centers on how work is scoped, logged and billed.
The change from a product business is mostly in what gets counted. A product firm asks whether goods left the warehouse, while a services firm asks whether hours were logged against the right project, approved and billed under the agreed rate or fixed fee. Before build starts, the firm still has to decide what counts as billable time, such as whether internal meetings, training and rework are excluded, and how retainers that roll over or expire are handled. It also has to decide how deliverables are accepted, since that acceptance is usually what triggers invoicing on fixed-price work.
Revenue recognition is the decision that most often gets postponed and most often causes trouble later. Ask your accountant or auditor which method applies to each contract type, including time and materials, fixed fee, milestone and retainer, and confirm how ERPNext's accounting settings and deferred revenue options will carry that method before the first invoice is raised. Those answers determine the Sales Order, timesheet and project structure, so settle them in the design phase rather than after go-live.
Services requirements and what they mean for the build
This table maps the requirements a professional services firm or agency usually brings to ERPNext against the configuration each one leads to. Use it to see where ERPNext's service-organization guidance covers the need and where your finance and HR teams must confirm the rules before build starts.
| Requirement | What ERPNext guidance supports | Configuration consequence |
|---|---|---|
| Billing on completion or milestones | Services are normally set up as non-stock Items, so a service Sales Order can be invoiced without a Delivery Note and marked Completed once fully billed | Model each engagement as a service Sales Order. Confirm with your finance team which billing events trigger invoices and how partial billing is handled |
| Time-based billing | Timesheets and projects are part of the service-organization setup in ERPNext, as described in the service organization guide | Define activity types and billing rates, then decide whether timesheet entries are invoiced directly or through a Sales Order. Confirm the rate rules with your commercial team |
| Project profitability | Projects sit alongside Sales Orders and invoices in the same ERPNext accounting records | Tag costs and revenue to projects consistently from the start. Confirm which costs your firm counts as direct and which go to overhead |
| Staff records and leave | HR operations are available when Frappe HR is installed alongside ERPNext | Install Frappe HR if you need leave and employee records in the same system. Confirm which payroll rules apply in your country before configuring them |
| Warehouse or delivery tracking | Not required for service items, since they do not move through stock or Delivery Notes | Keep stock features off for service-only items. Confirm that no tangible goods, such as hardware resold to clients, are sold on the same Items |
| Audit trail and access control | ERPNext manages user roles and permissions, and LDAP or social login can connect it to your identity provider | Set roles per department before go-live. Confirm with your security team which login methods and two-factor policies apply |
Modules and settings that matter for a services business
A services firm on ERPNext mostly uses the selling, projects, timesheet and billing path, and can leave warehouse features switched off. The cards below cover the settings that shape how service work is priced, invoiced and closed, and the point where Frappe HR becomes a separate install.
Non-stock service items and their accounts
Service work is normally modeled as Items flagged as non-stock, so they never create stock ledger entries. Each service Item needs an income account, a default unit of measure and a sensible default rate or price list entry. Check that every billable service maps to the revenue account your accountants expect, because this mapping drives how billing appears in the general ledger. Agree the Item list with finance before data entry starts, since renaming or restructuring Items later affects historical reporting.
Service sales orders without delivery notes
A service Sales Order can be invoiced directly, without a Delivery Note, because nothing physically ships. Billing can run against the order in milestones or as work is logged, and the order can be marked Completed once it is fully billed. Confirm with your accountants whether they expect advance billing, retainers or percentage-of-completion invoicing, since the Sales Order and invoice flow supports some of these patterns only with configuration and review. Test one full order from quotation to final invoice before go-live.
Projects and tasks
Projects group the work for a client engagement, and Tasks break it into trackable units that people log time against. Link each project to its customer and to the Sales Order it bills against, so that hours and costs roll up to the right commercial record. Decide early whether fixed-fee and time-and-materials engagements will share one project structure or use separate ones, because this choice shapes margin reporting. Ask your team to confirm how change requests and scope extensions will be recorded.
Timesheets feeding billing
Timesheets record hours against projects and tasks, and they can be converted into sales invoices at the agreed billing rate. Set activity types and billing rates per employee or per activity so the invoice reflects contracted prices, not internal cost rates. Define who approves timesheets and by what day of the period they must be submitted, because unapproved hours silently stay out of invoices. Reconcile billable hours against invoiced hours each period as a control check.
Frappe HR for people operations
Frappe HR is a separate app that installs on top of ERPNext, and it is needed for employee records, leave, attendance and payroll-related HR operations. Without it, the core ERPNext install covers selling and billing for service work but not those HR workflows. Confirm the Frappe HR version matches your ERPNext version before planning the install, and confirm which payroll rules your country requires, since payroll configuration is a separate project. Stock modules can remain unused in every case.
How a service order moves from quote to invoice
In ERPNext, a service order moves from quote to invoice without touching stock. The service is set up as a non-stock Item, so the Sales Order can be invoiced directly, with no Delivery Note in the chain. Once every line has been billed, the Sales Order can be marked Completed. The firm's first decision is therefore how each billable service is modeled: one Item per service type, with a standard rate or a Price List entry, and whether the rate is fixed, hourly or set per engagement. Those choices determine what appears on the Sales Invoice and what the team can report on later. Confirm the Item setup, tax templates and Price Lists with your finance lead before the first quote is sent.
The billing trigger is the decision that drives most of the configuration. A firm billing by time will usually draw invoice lines from approved Timesheets against a project, so the timesheet approval step and the link between timesheet entries and Sales Order lines need to be designed and tested first. A firm billing by milestone will invoice a fixed amount when a project stage is accepted, which means partial billing against the Sales Order must be planned, including how the remaining balance is tracked and what happens if a milestone slips. Change orders add a second layer: an agreed scope change should result in an amended or new Sales Order rather than edits that silently alter an invoiced order. Ask your implementation partner to document each trigger with a worked example using your own contract terms, and confirm which steps need custom scripts, print formats or approval workflows that are not part of the standard flow.
How a services ERPNext rollout usually runs
The sequence moves from agreeing how the firm sells, delivers and bills work to a go-live that the team can support, with each phase closing on a check the firm can verify before the next one starts.
Map scope and billing processes
Start by listing how work is sold, scoped, delivered, tracked and invoiced, including fixed-fee, time-and-materials and retainer engagements. The firm's leads and finance owner describe each path, and DeployOpen records where ERPNext's service Sales Order flow, projects and timesheets fit each one, and where the firm needs a custom field or report. The step closes when the firm signs off a written process map with one owner per handoff and a list of gaps to resolve in configuration.
Set up chart of accounts and service items
Configure the chart of accounts, tax templates, currencies and cost centers to match how the firm reports revenue and expenses. Service offerings are created as non-stock Items, so a service Sales Order can be invoiced without a Delivery Note and closed once it is fully billed. The finance owner reviews a sample Sales Order through to a Sales Invoice and payment, and the step closes when that test posts to the expected accounts.
Design projects and timesheet rules
Define project templates, task structure, activity types, billing rates and the rules that link timesheet hours to billable projects or retainers. Decide who approves timesheets, how non-billable time is recorded and how over-budget work is flagged. The output is a configured project and timesheet setup that the firm tests with a few realistic engagements, closed when the test timesheets produce the invoice lines the finance owner expects.
Prepare and load master data in batches
Clean the client, contact, item and open-engagement lists in spreadsheets before loading them. Use the ERPNext Data Import tool with its downloadable templates, starting with customers and items, then projects and open orders. The documentation advises importing only a few thousand records at a time, so load in small batches, check each batch against the source file, and keep the error log. The step closes when record counts and sample balances match the source reports.
Pilot with one delivery team
Run live work for one team through the full cycle: engagement, project, timesheets, invoicing and collection. Parallel running with the old tool or spreadsheet is useful during the pilot so that totals can be compared. Collect feedback on timesheet entry, approval steps and invoice layouts, and record each change as a configuration item, a custom field or a report request. The pilot closes when the finance owner agrees that the invoices and project margins match the parallel records.
Go live with a support plan
Before cutover, confirm user roles and permissions, backup and restore arrangements, the owner of each master data list and who handles change requests after go-live. Move all teams onto ERPNext, freeze the old system for new entries, and publish short guides for timesheets, invoicing and people requests. The step closes when the support owner, escalation path and first post-go-live review date are written down and accepted by the firm.
Identity, access and integrations for client-facing firms
Agencies with many staff and contractors need login to follow their HR records, not manual account lists. ERPNext supports LDAP login against Active Directory or OpenLDAP through LDAP Settings, with SSL/TLS options and automatic mapping of LDAP groups to ERPNext roles at each login. Decide early which directory groups should map to roles such as Sales User, Projects User or HR Manager, and who approves changes to that mapping. Contractors who sit outside the directory need a separate path, so confirm whether they will be created as local users with a reduced role set and when their accounts expire. Social Login Keys can add Google, Microsoft, GitHub, Facebook or Frappe sign-in, and custom OAuth or OpenID Connect endpoints. Check which of these your firm actually uses before enabling any of them, because each provider becomes another sign-in path that needs its own offboarding step.
Map the directory groups before go-live and test a leaver account end to end. Confirm that a user removed from the directory loses access at the next login, and that any local accounts for contractors are disabled on the contract end date. Role mapping only controls what a user can open once logged in, so pair it with the permission rules that limit which billing and timesheet records each role can see.
Custom billing logic is the point where hosting choice matters. Server Scripts run Python on document events or as API endpoints, and from version 15 they are disabled by default and must be enabled with the server_script_enabled setting. Frappe Cloud public shared benches do not allow them, so a firm that needs custom invoice rules, rate calculations or approval checks should confirm the hosting tier it needs before choosing a platform. Client-side scripts and custom apps are the alternatives, each with their own upgrade and review cost. Ask your implementation partner to document which logic runs where, since that decides the cost of every future upgrade.
Compliance questions a services firm should answer early
Do we need a SOC 2 report to win services clients?
Not by law, but many clients ask for assurance evidence, and SOC 2 is a common format for it. SOC 2 examinations use the AICPA 2017 Trust Services Criteria across five categories: security, availability, processing integrity, confidentiality and privacy. The security common criteria, CC1 to CC9, apply to every SOC 2 report, while the other categories are added only when they fit your services and commitments. A Type 1 report describes your system and whether controls are suitably designed as of a date. A Type 2 report adds an opinion on whether those controls operated effectively over a period. SOC 2 reports are generally restricted in use to specific parties, so decide early who needs one. DeployOpen can prepare the ERPNext environment, access controls, change records and evidence for that review. Only an independent CPA firm issues the report.
How long does an ISO/IEC 27001 certification last?
Accredited certification bodies certify an organization against ISO/IEC 27001:2022 on a three-year cycle, with at least one audit in every calendar year of that cycle. ISO itself does not certify organizations. The Annex A reference set has 93 controls in four themes: organizational, people, physical and technological. For a services firm, the controls that touch ERPNext most often involve access management, logging, backups, supplier relationships and change control. Your certification body will decide scope, so confirm with them whether the ERPNext instance, its hosting and any connected tools belong inside the scope boundary. DeployOpen can document how the system is built and operated and help gather evidence, but the certification decision rests with the accredited body.
What does GDPR require in a processor contract for ERPNext?
When a provider or implementer processes personal data for you, GDPR Article 28(3) requires a written contract that binds the processor to act only on your documented instructions, including for transfers outside the EEA. The contract must also require the processor to take the security measures demanded by Article 32. For ERPNext, personal data often sits in customer, contact, timesheet and payroll records, so the contract should name where the data is hosted, who has administrative access, how backups are handled and how subprocessors are approved. Ask your counsel to confirm the exact clauses. DeployOpen can describe the technical setup and access model so your contract reflects reality.
Can we switch providers if our ERPNext host is a cloud service?
Under the EU Data Act, Regulation (EU) 2023/2854, data processing service providers must let customers switch to another provider or to on-premises ICT infrastructure. The Act sets a maximum two-month notice period and a 30-day transitional period, and it has applied since 12 September 2025. From 12 January 2027, providers may not impose any switching charges. Before that date, reduced charges may not exceed costs directly linked to switching. Check your hosting contract for export formats, data return and deletion terms. A self-hosted ERPNext install in infrastructure you control, with documented backups and an exportable database, reduces dependence on any single host. Confirm how your provider handles these rights with them directly.
Does NIS2 apply to our clients if we manage their IT?
It can. NIS2 Annex I lists managed service providers and managed security service providers under ICT service management, both treated as sectors of high criticality. Whether a given client falls under NIS2 depends on its own sector and size, and on national transposition, so confirm that with the client and a lawyer. Commission Implementing Regulation (EU) 2024/2690 sets technical and methodological requirements for Article 21(2) measures for managed service providers and several other digital providers. If your firm is a managed service provider, expect clients to ask how your own systems, including ERPNext, handle access, incident handling, supplier management and continuity. DeployOpen can help document those controls and gather evidence for your review.
Who actually issues the compliance report or certificate?
An independent party issues it, never the implementer. SOC 2 reports come from an independent CPA firm, ISO/IEC 27001 certificates come from an accredited certification body, and regulators or auditors assess NIS2 and GDPR conformity in their own ways. DeployOpen plans, builds, hardens and documents the ERPNext system, and prepares the controls and evidence those assessors will ask for. DeployOpen does not issue audit reports, attestations or certifications. When you scope the work, ask your auditor which evidence they need and in what format, then agree with DeployOpen on what gets produced and when.
What compliance work should we budget for before go-live?
The cost depends on which assurance you need, how many systems fall into scope and how much evidence your current processes already produce. Main cost components are the implementation of access controls, logging and backups, the documentation of the system and its operations, the auditor's fees and any internal staff time. Costs recur for periodic audits, access reviews and patching. Ask any implementation partner for a fixed-scope quote that lists which controls, systems and evidence are included, and what the client must provide. Auditor fees are quoted by the auditor, so request those separately. DeployOpen does not publish prices and quotes from written scope.
How DeployOpen scopes and delivers a services ERPNext implementation
DeployOpen plans, implements, customizes, integrates, hardens, documents and supports self-hosted open-source platforms inside your own infrastructure. For professional services firms and agencies, we start from how your engagements are sold, delivered, timed and billed, then configure ERPNext around that workflow in your cloud accounts, data center or air-gapped network.
How we scope
- Map how engagements are quoted, delivered, timed and billed before choosing any ERPNext configuration.
- Confirm which service items are non-stock, which billing rules apply and where Frappe HR is needed.
- Agree scope, deliverables and timelines in writing before work starts, as most engagements are fixed-scope.
How we build
- Configure service Items, Sales Orders, Projects, timesheets and billing without a warehouse setup where it does not apply.
- Test billing from completed timesheets through invoice and payment with sample engagements your finance team supplies.
- Connect identity, such as LDAP or social login, and set role permissions so staff only see the projects they work on.
How we hand over
- Document configured doctypes, workflows, scripts and custom apps so your team can maintain them after go-live.
- Run a supervised data import of clients, contacts and open projects, checked against your source records.
- Provide runbooks for backups, upgrades and user administration, written for the people who will run the system.
How we support
- Offer ongoing support, version upgrades and continuous testing as a retainer after go-live.
- Track ERPNext and Frappe version support status so upgrades are planned before a release reaches end of life.
- Review Server Script and customization changes against your change process before they reach production.

