Skip to content

Opportunities

An Opportunity (a deal in the app) is a potential sale, a specific revenue conversation in flight. It usually belongs to an Account and moves through the stages of a pipeline until it is won or lost.

Anatomy of an opportunity

  • Name: a short, recognisable label, unique within your org.
  • Account: the customer organisation.
  • Amount & currency: the deal's value. Required once the deal is won.
  • Pipeline and stage: which pipeline the deal is in, and where it sits in it.
  • Probability: % chance of closing, auto-filled when you leave it at 0 and overridable per record.
  • Close date: required once the deal is won or lost.
  • Assignees, contacts, tags and teams.
  • Line items, comments, attachments and custom fields.

Pipelines and stages

From django-crm 1.10.0 every org configures its own deal pipelines, and can have more than one (say, new business and renewals). Admins manage them under Settings → Deal pipelines in the web app (/settings/deal-pipelines) and in the phone app. Every member can read them; only admins can change them.

Each stage has:

  • A label and a position in the pipeline.
  • A kind: open, won or lost. Every pipeline keeps at least one stage of each kind.
  • Optional rotting days for an open stage: an expected number of days and an earlier warning.

Every org starts with one default pipeline holding the six stages the app has always had: Prospecting, Qualification, Proposal, Negotiation (open), Closed Won (won) and Closed Lost (lost). A deal saved without a pipeline lands in the default one, and so does a deal created by converting a lead.

Wins are counted by kind, not by name. Goals, the dashboard, account and contact rollups, the "open deals" filter and the invoice-from-deal check all treat a deal as won when its stage's kind is won, whatever you called that stage. Entering a won or lost stage needs a close date; entering a won stage also needs an amount.

A stage cannot be deleted, or have its kind changed, while deals are in it. A pipeline cannot be deleted while it holds deals, and the default pipeline cannot be deleted at all.

Probability is auto-filled from the stage only when it is 0 or unset: 100 for a won stage, 0 for a lost one, and a fixed default for the four seeded open stages. There is no per-stage probability setting for deals, no required lost reason, and no rule that stops a deal skipping a stage.

Rotting deals

A deal records when it entered its current stage. On a stage with rotting days set, the deal is flagged past expected once it reaches the warning days (or the expected days, if no warning is set) and stalled at one and a half times the expected days. A stage with no rotting days never flags. The deals list can be filtered to stalled deals only, and the pipeline header counts them.

Next step

From django-crm 1.11.0 each deal on the deal list and the board shows its next step: the earliest open task linked to the deal (the soonest due date, with undated tasks after dated ones), with its title and due date. An open deal with no open task says No next step and is flagged, as is one whose next step is overdue, so a deal nobody is working stands out. Won and lost deals show no next step line at all. The phone app shows the same line on the deal cards in its list.

Only tasks you are allowed to open count. A deal you can see may carry a colleague's task you cannot, and that task's title and date never reach your card.

Board

The board is a view of the deals page, /pipeline?view=board on the web and the Kanban mode of Deals on the phone, with one column per stage of the pipeline you pick. Drag a card to move it; the move is a server call that checks the stage belongs to the deal's pipeline and applies the close date and amount rules above. The board never moves a deal between pipelines; the edit form does.

Forecasting

The pipeline page shows the plain total beside a weighted one, where each deal counts as its amount times its probability. Deals in different currencies are never added together. There is no separate forecast screen.

Won deal to invoice

A deal in a won stage can be turned into a draft invoice in one step from the deal's page. See Invoices & estimates.

Conversion from a lead

When a Lead is converted, the system creates the Account and Contact and, where the lead carries a deal value, a first name or a company, an Opportunity in the default pipeline. It runs in one transaction with the lead locked: if any step fails, nothing is created and the lead is not converted, and two conversions of the same lead at once produce one deal, not two.

See also