Features

What you get, in detail

No feature on this page is a roadmap item. Where something is still being built, it says so.

Pipelines and the board

One move, not four fields

Dragging a lead into Qualified changes its stage, its status, its probability and — if the stage is a closing one — its close date and its position on the board. All of it happens as a single action, so a record cannot end up half-moved and your won/lost reporting cannot disagree with what the board shows.

Each column carries a live count and two values: the raw total and the weighted one, using each stage's probability. Those totals are calculated over the records the person looking is allowed to see, so a rep's column header matches a rep's column.

Two pipeline types

Leads and deals each get their own pipelines and stages. A new workspace starts with a sensible one of each, already staged and weighted.

Stages that rot

Give a stage a limit in days. A lead that sits there longer notifies its owner — you find out from the CRM, not from the customer going quiet.

Conversion in one step

A won lead becomes a contact, joins the right company (reused if you already have it) and opens a deal — while the lead itself stays, so source reporting still works.

Inbound leads

Five channels, one address, no middleware

Each workspace has its own inbound address and its own secret. Paste them into the platform, and the leads you are already paying for start arriving on the board within seconds.

Channel What it is for What you have to do
Meta Facebook and Instagram lead ads Subscribe the page. The name, email and phone are fetched from Meta afterwards, because Meta's notification does not include them.
Google Ads Lead form extensions Paste the address and your key into the form's delivery settings.
Website The contact form you already have Point it at the address. It reads whatever your form calls its fields — your-name, Your Name and your_name all mean the same thing.
Telegram A bot you advertise as a way to reach you One setWebhook call. A shared contact card gives you a number; a typed enquiry gives you the handle to reply on.
Generic Zapier, Make, n8n, an internal script Post our field names as JSON. One request may carry several leads.

A lead is never lost to a bad mapping

Every delivery is stored exactly as it arrived, whether or not it became a lead. If a field was named something we did not expect, the fix is a change and a replay — not an apology to the customer who never got a call.

Retries do not duplicate

Ad platforms retry aggressively, and several keep retrying for hours. The second delivery of the same submission returns the first answer rather than putting the same person on the board twice.

Duplicates are flagged, not refused

A returning customer enquiring again is a good thing, so nothing is blocked. The response says what the new lead resembles, so your own form can even tell the person filling it that you already know them.

Campaign data travels with the lead

Ad id, campaign, form id and the UTM parameters are lifted out and kept alongside the lead — so revenue by source is a report you run, not a spreadsheet you build.

Calls

The call log nobody has to keep

Connect your telephony provider once — Exotel and Twilio are built in, and a generic shape covers anything else — and every call comes back on its own: direction, whether it connected, how long it lasted, the outcome, and a link to the recording.

Each one attaches itself to the right lead and the right rep by comparing the last ten digits of the number, so +91 98765 43210 and 09876543210 are recognised as the same person. That is the same rule duplicate detection uses, so the two features can never disagree about who somebody is.

  • Eleven call outcomes, from connected to switched off, so "we tried" becomes something you can report on.
  • The first outgoing call on a lead stamps its response time, measured from when it was assigned.
  • Reassigning a lead resets that clock — the new owner is not accountable for the last owner's silence.

Calls arrive from your provider. There is no dialler built into the product — you place calls the way you place them today.

Reports and dashboard

Twenty-five reports, and no report builder to learn

The reports a sales manager runs are the same everywhere. They are all here, already written, each with a date range and filters for owner, source and pipeline — and each exportable in full, not just the page you are looking at.

Leads — count 6 reports

Leads by owner and stage, by source and stage, and closed-won and closed-lost counts split both ways. The shape of the funnel, and whose funnel it is.

Leads — revenue 9 reports

Won revenue by owner and by source, lost revenue by both, active pipeline by expected close date, plus detail listings of every active, won and lost lead.

Calls 7 reports

Incoming against outgoing, answered against unanswered, call outcomes by rep, first-response times, and the full call log by date.

Tasks 3 reports

Open, overdue and completed, per person. The three lists a manager reads before a Monday meeting.

And a dashboard that loads in one request

Open leads, pipeline value, weighted value, new and won leads for the period, won value, win rate and overdue tasks — eight figures, a funnel of the open pipeline, and your own day's work. Win rate is calculated over the leads that actually closed in the period, not over everything in the system, which is why the number moves when your selling does.

Team and access

Five roles, fifty-two permissions, one owner

Roles are a starting point; the permissions behind them are what the software actually checks. Nothing anywhere in the product asks "is this person an admin" — it asks whether they may do the specific thing.

Owner
Exactly one per workspace. Cannot be removed, demoted, or invited — somebody has to be able to close the account.
Admin
Everything the owner can do except billing. The role you give the person who actually runs the system.
Manager
Sees the whole book, runs every report, imports and bulk-edits, publishes shared views. Cannot change workspace settings or remove members.
Agent
Sees their own records and anything unassigned. Their list, their board, their reports and their column totals all agree, because they are all narrowed the same way.
Viewer
Reads. Useful for finance, for an agency, or for somebody on their first week.

Nobody can promote somebody above themselves. Removing a member revokes their access to that workspace and no other — a consultant working with two of your clients keeps the one you did not end.

Data integrity

The boring things that decide whether a CRM is trusted

Duplicate detection

Clusters leads and contacts on normalised email and phone across the whole workspace. It advises; it never blocks a save, because a repeat enquiry is a real event.

Audit trail

Who changed what, when, from where. Foreign keys are resolved to names, so an entry reads owner: Priya → Arjun. A save that changed nothing writes nothing.

Trash and restore

Leads, deals, contacts, companies, calls, activities and notes all go to a recoverable trash. A delete is a decision you can walk back.

No silent overwrites

If two people edit the same record, the second save is refused and shown what changed underneath it — instead of quietly winning.

Retries are safe

A form submitted twice on a flaky connection, or an app resending a queued write, returns the original result rather than creating a second record.

Import that shows you first

CSV import validates against the same rules the app itself uses and runs as a dry run by default, listing the problem rows before anything is written.

Exports that behave

Leads, contacts, companies, deals, calls and every report export to CSV, streamed so a hundred thousand rows does not time out, written so Excel opens accented names correctly, and escaped so a value beginning with = cannot execute as a formula on the machine that opens it — while +91 98765 43210 stays dialable and -1200.50 stays a number.

Customise

Make it fit how you actually sell

  • Custom fields on leads, contacts, companies and deals — twelve types including select, multi-select, date, currency-free decimal, email, URL and phone, each with its own validation and help text.
  • Saved views — name the filter set your team keeps re-typing. Private by default, publishable to everyone by a manager.
  • Pipelines and stages you define, with probabilities and rotting limits per stage.
  • Bulk actions across leads, deals, contacts and companies — assign, tag, move stage, delete or restore, with a per-record result rather than an all-or-nothing outcome.
  • Attachments on any record, up to 25 MB, served only to people who are allowed to see them.
  • Notifications for assignment, tasks falling due, tasks gone overdue and leads going stale — plus a daily digest that arrives at 8am in each person's own timezone.

For your developers

An API you can actually build on

Everything the web app does, your systems can do. The specification is not a courtesy document — it is checked against the real routes, so an endpoint cannot ship undocumented.

142 documented operations

An OpenAPI 3.1 specification covering every endpoint, served from the API's own address with a live console — sign in, paste your token, and call anything from the browser.

A change feed, not a polling loop

Ask what has changed since a cursor and get back the updates and the deletions, so a local copy can stay correct rather than slowly drifting.

Ordinary HTTP, ordinary tools

Conditional requests for safe concurrent edits, idempotency keys for safe retries, cursor pagination, CSV streaming. No bespoke protocol to learn.

Run it yourself

Docker Compose brings up the whole stack — API, workers, scheduler, web app, docs — in one command, behind your own reverse proxy. MySQL, PostgreSQL, MariaDB or SQL Server.

Mobile

An offline-first app, in development

Not released yet. The Android and iOS app is built and under test; it is not something you can download today. It is on this page because it is being built, not because it is available — ask us where it has got to and we will tell you plainly.

The design problem it solves is the one every field team has: a rep in a basement, a lift or a village with one bar needs to open a lead, change its stage and write a note — and needs those changes to survive the journey home.

  • Every screen works with no signal. Writes queue and are sent in order when the connection returns.
  • A queued edit sends only the fields that were actually changed, so two people working on the same lead do not overwrite each other's untouched fields.
  • Where a real conflict exists — you both changed the same field to different values — it is shown side by side and you choose, field by field. Nothing is discarded quietly.
  • A refusal from the server keeps the server's own explanation, so a rejected write says why rather than vanishing.

Half an hour, your pipeline, your lead sources

We will set it up with your stages and your real numbers, and you can decide from there.