What erp.io is
erp.io is a suite of applications that share one account, one organisation, and one address. You sign in once at app.erp.io and every module you are entitled to is a path on that same origin — app.erp.io/accounting, app.erp.io/crm, app.erp.io/pm. There is no second login, no per-app subdomain to remember, and no cross-site hand-off for a browser to lose.
That shared origin is the single most consequential design decision in the product and it is worth understanding early, because it explains a lot of the behaviour documented here. One origin means one session cookie. One session cookie means a module that has never seen you before can tell that the suite already knows you, and sign you in without asking. It also means data one module holds is a same-origin fetch away from another, which is why the Accounting module can put a client name on an invoice that the CRM owns.
The part of the product that owns your identity — accounts, organisations, membership, entitlement, billing — is called the shell. Everything in Platform is the shell. Everything in Modules sits inside it.
Good afternoon, Dana
Northwind Trading — 14 people, 6 modules
Start here
Create an account, set up an organisation, invite people, turn modules on.
By stageAvailableWhat to actually do while evaluating, piloting, migrating, rolling out, and running.
PlatformAvailableIdentity, roles, module access, billing, audit — the parts every module shares.
ModulesAvailableThe twelve applications, screen by screen, with what each one cannot do.
PeyIn progressPayment intelligence. A separate product with its own database and its own rules.
DevelopersIn progressAPI keys, the module token model, webhooks, and rate limits.
What is live today
Twelve modules answer on app.erp.io right now. This table is the honest version — a module being reachable is not the same as every screen inside it doing something, and the module pages say which screens are which.
| Module | Address | Status | What it is for |
|---|---|---|---|
| Accounting | /accounting | Available | Double-entry books, invoicing, bills, bank feeds, close |
| CRM | /crm | Available | Contacts, companies, pipeline, sequences, shared inbox |
| Projects | /pm | Available | Projects, tasks, portfolios, goals |
| Chat | /chat | Available | Channels and direct messages, with AI in the thread |
| Phony | /phony | Available | Voice and chat agents that answer and qualify |
| Marketing | /marketing | Available | A workbench of marketing agents and their runs |
| Client Portal | portal.erp.io | Available | Work orders and a client-facing workspace |
| PLM | /plm | In progress | Parts, BOMs and suppliers; change and quality not built |
| Sign | /sign | Available | Send, track and countersign documents |
| CFO | /cfo | Available | Forecasting, KPIs, scenarios and advisory |
| Canvas | /canvas | Available | Whiteboards and visual collaboration |
| Legal | /legal | Available | Caselaw research, drafting and legal agents |
| Pey | separate | In progress | Payment intelligence — no public origin yet |
A Social module used to appear in the rail. Its host stopped answering and its publishing moved into Marketing, so it was deleted from the registry rather than shown greyed out. A module nobody can reach is noise in the rail and a support question waiting to happen.
How to read these pages
Every page carries a status badge next to its title, and the badge is about whether you can do the thing today, not whether code exists.
| Badge | Means | Example |
|---|---|---|
| Available | Shipped, reachable, does what the page says. | Bank reconciliation in Accounting |
| In progress | Partly built. The page says which part works. | PLM — parts and BOMs yes, change orders no |
| Planned | Named in the product, no behaviour behind it yet. | PLM quality: NCR, CAPA, SCAR, FMEA |
Pages also carry the address of the screen they describe, so you can open the thing while you read about it. Every screenshot on this site is drawn, not captured — see why — and every figure in them is invented.
Per-seat billing meters seats and shows a total it does not charge. Phony's outbound telephony is wired but the carrier on the account cannot place outbound calls. Both are documented as In progress with the specific gap named, because discovering that after building a workflow on top is expensive.
Questions
Do I need every module?
No. Modules are enabled per organisation and narrowed per person. A workspace with only Accounting and Chat is a normal workspace, and the rail shows only what you are entitled to. See Module access.
Is there one bill or twelve?
One. Billing lives in the shell and prices users against modules, not per app. See Billing and plans.
Why is Pey documented separately?
Because it is a separate product with its own repository, its own database, and a rule that it never writes journal entries. It is designed to work on top of QuickBooks or Xero as readily as on our own books, and folding it into the suite docs would misrepresent that. See Pey.
Where do I report something wrong in these docs?
Mail [email protected] with the URL. Documentation drift is treated as a defect — a stale list of what is broken is worse than none, because it gets believed.