A CRM where the support ticket and the invoice hang off the same record
In Oneop, a contact is not a copy of a contact in another system. The chat conversation, the ticket, the task, the quote and the invoice all point at the same row, in the same database, behind the same tenant boundary. Nothing syncs, because nothing is duplicated.
Free forever · 2 seats · No credit card
- 12Record types a task can attach to
- 13Custom-field types
- 22Record types importable from CSV
- 5Lead lifecycle states, two terminal
- 3Stage-gate types
The shape of the work
Know the customer, control the sales process, keep the context when the work moves on.
Most CRMs stop at the second step. A deal closes, and the thing that actually has to happen next — a project, a sales order, an invoice, a support relationship — starts in a different system with a copy of the customer and none of the history.
Here the record does not end at Closed won. Winter Collection Expansion is a deal until it is won, and the project that delivers it carries the same name because it is attached to the same account, not because someone re-typed it.
A lead arrives
Web form, CSV or manual. Scored and routed on arrival; duplicates flagged as you type.Qualify, or merge
New, working, qualified. A duplicate merges with a preview of what survives.Convert
One action creates the contact, the company and the deal. The lead becomes terminal.Move through gated stages
A stage a deal does not qualify for refuses the move and says why.Won — and the record keeps going
The order, the invoice, the project and the tickets all point back at the same account.
What a bolt-on cannot do
Four things this CRM enforces, rather than suggests.
Each of these is a rule the database keeps, not a convention a team is asked to follow. That is the difference between a CRM that reports what happened and one you can trust to refuse what should not.
Pipelines
Stage gates are enforcement, not advice.
Configure "no deal reaches Proposal without an expected close date," or "none reaches Negotiation without a quote or a logged activity." A move that doesn't qualify comes back as a 422 with the exact list of what's missing — three gate types ship: a required field, a required quote, a required logged activity.
No gates configured means no enforcement — existing pipelines are never retro-blocked. Every record also gets a readable reference, allocated atomically inside the database, so two people creating a deal in the same millisecond cannot collide.
- Expected close date is required for this stage
- A logged activity is required — none found on this deal
Leads
A real state machine, not a status label.
New, working, qualified, converted, merged. Converted and merged are terminal — a lead that owns a downstream contact or deal cannot be moved backwards. Converting turns a lead into a contact, a company and a deal in one action.
Scoring is a transparent rule engine — a 14-rule starter set, every score kept with the factor breakdown that produced it. The tier sets a first-touch deadline: 60 minutes at 80+, down to 24 hours at the bottom. Routing sends matches round-robin, to a named person, or to a territory territories opt-in. Enrichment is a live Apollo.io People Match call against your own key.
Lifecycle
Score 60 → first-touch deadline in 4 hours
Companies
Subsidiaries roll up under a head office.
Northstar Commerce is one account with 2 operating subsidiaries beneath it. A parent-and-child hierarchy, plus a sales-history tab on every account listing every quote, sales order and invoice with drill-down to line items — so the head office total is the sum of what its children actually bought, not a number someone maintains in a spreadsheet.
Opt-in While the Companies module is off, merge endpoints return 404 and company records aren't created automatically during lead conversion. Contacts, leads and deals are unaffected and work without it.
Sales history, one tab
Duplicates
The merge shows you the consequences before it commits them.
Contacts, deals and activities each run a duplicate check while you type, so most duplicates never get created. For the ones that already exist, contacts, companies and leads have a merge flow that renders the outcome first: which value survives on every field, which value is discarded, and which linked records will be re-pointed at the surviving row rather than combined.
The distinction matters more than it sounds. A deal, a ticket and an invoice do not merge — they move. Seeing the count of records about to be re-pointed, before pressing anything, is the difference between a merge you can approve and one you have to regret.
| Name | Dana Kim | D. Kim |
|---|---|---|
| dana@northstar.example | dana@northstar.example | |
| Phone | +1 415 555 0139 | kept from duplicate |
| Owner | Unchanged | Unassigned |
Re-pointed, not merged — 3 linked records
Connected with Oneop
A won deal is the start of the work, not the end of the record.
Support, Projects, Orders, Inventory, Finance, Automation and AI are where the customer context earns its keep — but every module in Oneop sits on this same record, and reaches the CRM the same way.
- Help deskSupport sees the customer, commercial and operational history.
- Project managementSold work becomes delivery without rebuilding customer context.
- Inventory & warehouseSales and operations work from the same product and order context.
- FinanceOperational transactions continue into financial records.
- AutomationA trigger in one module can act in another without an integration between them.
The other 6 modules sit on the same record, and reach CRM the same way:
- Live chatConversations become part of customer context.
- SequencesOutreach works from CRM and customer context under controlled automation.
- ReportingEvery module is already a reportable dataset, so nothing has to be exported to be measured.
- AI chatbotAI responds using permitted business context.
- AI agentsAI acts on the same records people do, under limits that are published rather than described.
- AI governanceWhatever AI touches in any other module is metered on the same path first.
Beyond the core
Work, shape and intake — the parts you configure once.
Work is a first-class object
A task attaches to any of twelve record types, carries subtasks, checklists, threaded @mentions, watchers and dependencies — circular ones are refused with a 422. Recurrence is real: daily, weekly on specific days, or monthly, with an end date or a fixed count. Every task carries an SLA clock.
Thirteen custom-field types, ten record types
Text, number, date, checkbox, dropdown, multi-select, textarea, URL, phone, email, currency, file upload, and a lookup pointing at another record. Required, defaulted, filterable, role-restricted, grouped, reordered, conditionally shown. Rename the built-ins — "Company" becomes "Practice" if that's what your team says out loud. Deleting a field hides it without destroying the history behind it.
Web-to-lead forms on someone else's domain
Build a form, take a two-line snippet, paste it into WordPress, Webflow or plain HTML. It renders and submits cross-origin. Submissions land as leads taggedweb_form, then run straight through scoring and routing. Bots hit a hidden honeypot field and a per-IP submit limit; there is no CAPTCHA.
Getting existing data in, reversibly
Twenty-two record types import from CSV, spanning CRM, support, finance and inventory. Every import validates first and reports total, valid, invalid and duplicate row counts before a single row is written. An admin can roll an import back completely within thirty minutes; exports are neutralised against formula injection.
Not AI Lead scoring, deal scoring, routing and stage gates are points-based and deterministic — change a rule and you can predict the result. The genuinely AI parts of the platform (chatbot, help desk drafts, AI Workforce, OCR) run on Google Gemini, are metered per tenant, and are labelled as such everywhere they appear.
Integrations
The CRM you may be leaving, and the tools a deal passes through.
HubSpot and Salesforce sync bidirectionally, so a migration can run with both systems live rather than as a weekend cutover. Apollo.io enrichment uses your own key. Mailboxes connect per rep, which is what sequences send through.
All nineteen native connections are listed on integrations.
- HubSpot
- Salesforce
- Apollo.io
- Google Workspace
- Microsoft 365
- WordPress
- Zoom
- DocuSign
For the technical evaluator
Stage and state integrity is enforced at the write, not in the interface.
A rejected stage move and a backwards lifecycle transition both fail with a 422 from the API, not from a disabled button. The same rule holds for an import, a bulk edit and an integration sync, because none of them route around the write path.
The rest of the technical detail
Every record carries a readable reference allocated atomically inside the database, with a trigger as a backstop, so two concurrent creates cannot collide on a number.
Tenant isolation is enforced at the data layer: every CRM table carries a tenant column and no query crosses that boundary. A ticket's requester resolves to a CRM contact and a finance customer by tenant-scoped email match — the match cannot reach another workspace even in principle.
Terminal lead states are enforced by the transition rules rather than by field validation, so a lead that already owns a downstream contact or deal has no path backwards regardless of which surface asks.
Imports are transactional per batch and reversible for thirty minutes; CSV exports are neutralised against formula injection before they leave the server.
What it costs
Core CRM is on every plan
Pipelines, contacts, leads and activities are set for Free upward in the plan ladder; quotes and sequences from Starter; forecasting, lead routing and deal scoring from Pro; territories on Business. See the full comparison on pricing.
| Plan | Seats included | AI credits / month |
|---|---|---|
| Free $0 | 2 | 50 |
| Starter $19 | 3 | 1,000 |
| Pro $59 | 10 | 5,000 |
| Business $129 | 25 | 15,000 |
FAQ
Common questions about the CRM
How is this different from a CRM with a help desk integration?
There is no integration, because there is nothing to connect. A ticket's requester resolves to the same CRM contact row that the deal and the invoice reference, and a task attaches to a deal, a contact, a ticket, an invoice or eight other record types through one engine. No sync job, no field mapping, no nightly reconciliation, and no window where the two systems disagree.
Does Oneop catch duplicate contacts before they're created?
Yes. Contacts, deals and activities each expose a duplicate check the form calls while you type. For records that already overlap, contacts, companies and leads have a merge flow that shows a preview of exactly which values will survive the merge, and which linked records will be re-pointed at the surviving row, before you commit to it.
Is lead scoring AI?
No — it's a rule engine, and every score is stored with the factor breakdown that produced it, so you can see exactly why a lead scored what it did. A one-click starter set of 14 rules covers business email domain, seniority, deal value, source, status and more, and you can add your own.
Can I put a Oneop lead form on my own website?
Yes. Build the form in Oneop, take the two-line embed snippet, and paste it into WordPress, Webflow or hand-written HTML. It renders and submits cross-origin from your domain. Submissions arrive as leads tagged web_form and immediately run through scoring and routing rules. Spam is filtered by a hidden honeypot field and a per-IP submit limit; there is no CAPTCHA.
What can I import, and can I undo it?
Twenty-two record types import from CSV, spanning CRM, support, finance and inventory. Every import runs a validation pass first and shows you total, valid, invalid and duplicate row counts before anything is written, and you choose whether duplicates are skipped or overwritten. An admin can roll an import back completely within thirty minutes.
Which parts of the CRM do I have to turn on?
Two: the Companies module and sales territories. Both are off until you ask, and we enable them for your workspace. Contacts, leads, deals, pipelines, activities, tasks and sequences are all on from day one — sequences just need a rep's mailbox connected before anything can send.
Get started
One record. The deal, the ticket and the invoice all point at it.
The free plan, with two seats and every claim on this page traceable to code you can ask us about. No credit card, no sales call.
Free forever · 2 seats · No credit card