Skip to content دوام Help Center

Customers (CRM)

Deals & pipeline

One-line summary: run your sales opportunities on a stage board or in a table you can filter and sort, read their figures in a stat bar and three reports, import and export them as a CSV file, and move hundreds of deals with a single bulk action.

Plan: Available on the Professional, Advanced, Business and Custom plans (and during the trial), within the Customer management workspace, and it needs the "Access CRM" permission (the admin holds it automatically). "Create quote" from a won deal, however, needs accounting enabled on the company's subscription. Start with the CRM overview first.

Overview

A deal is a single sales opportunity — a prospect, with an expected value, moving through stages until it is won or lost. You reach it from: Switch system → Customer management → Deals.

The screen has two surfaces, and you swap between them with the "Board" and "Table" buttons:

  • The board (Kanban): a column per stage and a card per deal, which you drag from one column to another and watch advance before your eyes.
  • The table: a row per deal, with columns you choose, plus sorting, inline editing and bulk selection.

Above both sits a tab strip for the same page: "Deals", "Pipelines" (for company admins alone), and "Reports" (for whoever may see amounts).

Every company arrives with a "Default pipeline" ready with six stages: Lead (probability 10), then Qualified (25), then Proposal (50), then Negotiation (75), then Won (100), then Lost (0). The last two stages are marked won and lost, so the moment a deal lands on them its status turns automatically to "Won" or "Lost" — no separate button — and everything else stays "Open".

Tip: The pipeline list beside the tabs picks a single pipeline or "All pipelines", in which case a board is drawn for each pipeline with its own heading and counter. Your choice is saved to you alone and comes back on your next visit.

How do I create a deal?

  1. Press "New deal" at the top of the page, and a side drawer opens (not a modal).
  2. Write the "Name" — required.
  3. Add the "Contacts" — required too: either "Add contact" from your book, or a "New contact" you create by name and mobile right there.
  4. Fill in what applies: the "Amount" in the company currency, the "Owner" (otherwise it stays "Unassigned"), the "Company", the "Expected close date", the "Source" (or "No source"), and the "Description".
  5. Pick the "Pipeline" and the "Stage" it starts from, then save — and the card appears at once in its stage column.

Caution: No deal is saved without a name, and no deal without at least one contact. Without it the drawer refuses to save and writes under the field: "A deal needs at least one contact". This is a change from before — the name alone is no longer enough, because a deal with no human to write to is not a sales opportunity.

Note: The "Amount" field is not drawn at all for someone who does not hold the "Deal amounts" permission.

How do I move a deal between stages?

  • Drag and drop the card between columns or within a column. The motion is fluid, with auto-scroll at the edges of the board.
  • On mobile, press and hold for about a third of a second, then drag (so column scrolling stays normal until then). The Esc key cancels a drag and returns the card to its place.
  • In the table, switch the stage straight from the cell's list without opening the deal.
  • Every move is recorded in the "Stage history" inside the deal, with its date, its duration and who moved it.

Caution: Dragging does not cross between two pipelines. A column belonging to another pipeline shows the refusal cursor and nothing is written. To move a deal to another pipeline open its drawer, or use the bulk "Move" — which shows the stages grouped under their pipelines.

How do I record a loss?

Any move into a stage marked lost — by dragging on the board, from the stage list in the table, from the drawer, or in a bulk move — first opens the "Loss reason" dialog, which carries an explicit warning: "A deal never goes to Lost without a reason — the loss report reads it back later."

  1. Pick the "Reason" (required) — otherwise you get: "Pick a reason".
  2. Write a "Note" if you wish. The "Other" reason insists on one: "This reason needs a note".
  3. Press "Mark as lost". Cancelling returns the card to its place and writes nothing.

The six reasons seeded for every company: "Price", "Chose a competitor", "No response", "Bad timing", "No longer needed", "Other". In a bulk move the reason is asked once for the whole batch.

Note: There is no screen today for editing loss reasons or lead sources; both arrive seeded. The six lead sources are: "Referral", "WhatsApp", "Website", "Ad", "Exhibition", "Cold call".

What do I read on the board?

  • The column header carries the stage name, the count of all the stage's deals (not the shown page alone), the total value, and the "weighted" value — the same figure multiplied by the stage probability.
  • "+{n} in other currencies" appears in the header when some of the column's deals are in a currency other than the company's. They are counted and never summed.
  • "Load more" at the foot of the column fetches the next page of that column alone — 50 cards a page by default, 200 at most — without redrawing the board. An empty column says "No deals here".
  • The card carries the deal name and beneath it up to four fields you choose yourself in "Card fields" (with none chosen: company, source and close date), plus a stage-age badge below it — which turns a warning colour on reaching the stale limit set for the pipeline, and a danger colour at twice that.
  • Five quick buttons on every card, each carrying its activity count: "Call" (opens the first contact's phone, then logs a call; with no number: "The contact has no phone"), "WhatsApp" (takes you to the customer's conversation in the Inbox), then "Note", "Task" and "Appointment" — which open the activity composer with the type already picked.

When do I use the table instead of the board?

The board shows movement; the table shows the list. In "Table":

  • "Columns" picks the fields on show and their order, and "Reset to default" puts them back. Your preference is saved to you alone. You will not find "Probability" or "Loss reason" among them — neither is a table column at all, and their place is the deal drawer and the reports.
  • Sorting by clicking a column header, and it is available on seven columns only: Name, Amount, Expected close, Probability, Days in stage, Last activity, Created. Stage, Owner, Company, Contacts, Source, Pipeline and Status are not sortable.
  • Column width changes by dragging its edge ("Drag to resize · double-click to reset") between 48 and 640 pixels, and it is saved to you.
  • Inline editing in the row for three fields: stage, owner and close date. On success "Saved" appears.
  • Pagination below the table: "1–50 of 240" (for example) and "per page" (25, 50 or 100, default 50) and "Previous" and "Next". An empty table says "No deals match this view".

Note: Every inline edit carries the row's version with it. So if a colleague edited the deal at the same moment, their work is not trampled: the message "This deal changed elsewhere — the row was reloaded" appears, and the row is reloaded with its correct value.

How do I search, filter and save a view?

The "Search" box and the "Filters" condition builder work across both surfaces together: a condition you add above the table narrows the board as well, and the column totals, the stat bar and the reports all describe that same filtered set.

  • Press "Add condition" and pick the field: Name, Stage, Amount, Owner, Expected close, Pipeline, Status, Company, Contacts, Source, Currency, Probability, Days in stage, Last activity, Created, External ID, Loss reason — and your custom fields with them. Conditions combine with "And" or "Or".
  • Saved segments: a small tab strip above the tools saves the search, the filters, the sort, the columns, the pipeline and the surface under one name. Type a "Segment name" and choose "Just me" or "Shared with the team", and "Segment saved" appears. "All" returns to the unrestricted view. A shared segment is deleted only by its owner or an admin.

Tip: The whole page state lives in the URL — the tab, the surface, the pipeline, the search, the filters, the sort, the page number, the open deal, the report panel and its switches. So whatever view you arrive at, copy its address and share it, and it opens at your colleague's end exactly as it is.

Note: There is no standalone status switch above the table. To see "Open" or "Won" or "Lost" alone, add a condition on Status from "Filters".

The five-figure stat bar

Above the board and the table sit five cards describing the deals on show after filtering:

Card What it says
"Open" the value of the open deals, with "{n} deals" and "{n} in another currency" beneath it when needed
"Weighted" the same value multiplied by the probability
"This month" the value won in the company's month on the company's clock, with "14 created · 9 won" (for example) beneath it
"Win rate (90d)" the rate together with the fraction it was built on, such as 12/20
"Avg sales cycle" the average days from creation to win, over 90 days as well

Note: Where nothing happened a dash "—" is written, not a zero. "No deals" and "deals worth zero" are two different truths, and they may not be shown alike.

The three reports

The "Reports" tab is three panels, all describing that same filtered set:

"Close forecast"

A column chart and a table of the open deals spread across the period they are expected to close in, with an "Amount" and a "Weighted" column for each period, alongside "Period" and "Deals" and a "Total" row. The "Bucket size" switch toggles between "Monthly" and "Quarterly" (the periods are then named "Q{n}"). The forecast starts at the current period and runs five periods forward, up to 36 periods at most.

Deals with no close date are not folded into any month; they appear in a separate final column named "No date" in a warning colour, and "Total" counts them in. And if there are deals in a stage whose "In reports" box was cleared, it is written out plainly: "Excluded from reports: {n} deals" — rather than subtracted in silence. And when nothing is open: "No open deals in this range".

"Stage conversion"

A row per stage and seven columns: "Stage", "Entered", "Advanced", "Won", "Lost", "Advance rate", "Avg days" — with a horizontal bar measuring "Entered". The report reads the stage-transition log over a window of "Last {n} days" (from one day to 366, default 90; anything outside the range is clamped, not rejected). And a deal in a stage that was deleted shows as "Deleted stage" so that it never vanishes from the arithmetic. Where there is no real number a dash is written. And when there is no movement: "No movement in this window".

"Loss reasons"

A bar list of the share of each group of the lost deals in the period, headed by "{n} lost deals". The "Group by" switch toggles between "By reason", "By stage" and "By owner". The shares are computed on the count, not the amount. And a reason deleted after it was recorded keeps its row on show as "Deleted reason" so the remaining shares do not shift. Below the list a "Loss notes" section shows what the reps actually wrote, with the deal name and its date — 50 notes by default, 200 at most. And when there is no loss: "No lost deals in this window".

Caution: The "Reports" tab does not refresh itself — it fetches once on first entry, then only when one of its switches moves. And if the fetch fails, "This report could not be loaded" appears.

Note: "Stage conversion" needs one named pipeline. So if you are on "All pipelines", the default pipeline is shown.

How do I act on dozens of deals at once?

Tick rows in "Table" ("Select deal" on each row) and a bar appears at the foot of the screen saying "{n} selected", with these buttons:

Button What it does
"Move" opens "Move {n} deals to a stage" → "Target stage" (the stages grouped under their pipelines) → "Move"
"Assign" opens "Assign {n} deals" → "Owner" (which carries "— Unassign —") → "Assign"
"Export selected" downloads the ticked rows alone
"Delete" asks: "Delete {n} deals? They can be restored within 30 days."
✕ "Clear selection" drops every tick

And when you tick a whole page while the results run beyond it, "Select all {n} matching" appears — the server then runs the action on every row that matches your query, not on the loaded page alone, and "This page only" takes that back. On finishing: "Done for {n}", or "{ok} done, {failed} failed" if some of them stumbled.

Caution: The limit for a single request is 200 deals. Anything above is refused with the message "The limit is 200 deals per action — narrow the selection". The limit here is far below the contacts limit on purpose, because every target in this batch is a stage move with consequences of its own.

Note: In a bulk delete with "Select all {n} matching", the count you confirmed is compared with the live count at the moment of execution. So if it changed — a new deal arrived, say — the whole request is refused with the message "The result count changed — try again" and nothing is deleted. And any change to the search, the filter, the sort or the pipeline clears the selection completely.

How do I import and export deals?

Export

The "Export" button in the toolbar downloads a CSV file holding exactly the set that is on the screen — the same pipeline, search, filters and sort, with no pagination. The columns are the ones you picked along with all your custom fields, references are resolved into names (owner, company, contact, pipeline, source), and whatever no longer resolves is written "—".

Tip: Filter the list first and then export it, and you get exactly the slice you want. And "Export selected" with no rows ticked sends no request at all.

Import

The "Import" button opens a four-step wizard that writes nothing before the third:

  1. "Import deals" — "Choose a file" or paste its contents into the box. The first row is the column headers. Then "Next".
  2. "Map the columns" — the server suggests the mapping and you correct it (make anything you do not want "— ignore —"), and you pick the "Pipeline" and the "Create contacts that do not exist" box. The mappable columns: Deal name, Amount, Currency, Stage, Owner, Expected close date, Contact phone or Contact email or Contact name, Company, Lead source, External id, Description, and any custom field. Then "Check".
  3. "Check result" — a dry run on the server that writes nothing: it counts "ready rows" and "rows that will not import" and "warnings" and "ignored columns" and "contacts to be created", and names every rejected row with its reason. And whoever does not hold the amounts permission sees the money columns ignored with the reason "Hidden: no permission for amounts".
  4. "Import", then "Result" — "Import complete", or "Imported, with rejected rows", along with "deals created" and "rows skipped" and "contacts created".

Import limits: a file size of 2 MB ("The file is over the 2 MB limit — split it and try again"), and 2,000 rows at most; anything above is trimmed and declared plainly: "The first 2,000 rows of 3,500 will be imported" (example numbers) at the check, then "The first 2,000 rows of 3,500 were imported" in the result.

Caution: Import fires no automation. A thousand rows do not launch a thousand runs, nor send a thousand messages. Which is why the creation trigger's own description reads: "When a deal is created one at a time — not on import".

The deal drawer: Activity, Stage history and Details

Click any card or row to open the deal drawer with three tabs:

  • "Activity" — the timeline and the activity composer under the question "What happened?", with four types: "Note" (free-form jotting), "Task" (which has a due date and a completion box), "Call", and "Appointment".
  • "Stage history" — every stage the deal passed through, along with "Entered" and the "Duration" in days and "By", and the source of the move: "Manual" or "Bulk action" or "Automation" or "Import" or "Migration" or "API". The current stage is marked "Current".
  • "Details" — editing all the deal's fields, among them your custom "More fields", and the "Probability" if the pipeline sets probability at deal level.

Note: The "Activities" pillar in the side menu gathers your own tasks and notes across every deal in one place — while the thread inside a deal belongs to that deal alone.

What happens after a win?

The moment a deal reaches a winning stage, its drawer opens on "Activity", where a panel says "Deal won — create a quote for the customer" with a "Create quote" and a "Later" button.

Pressing it creates one quote in accounting with a single line — the deal itself — and writes into the deal's log that the quote was created; the deal then carries a "Quote" chip with an "Open the quote" and an "Issue an invoice" button.

Caution: Never issue an invoice from here — the quote only. Issuing the invoice is a decision taken on the quote screen after the tax category and the buyer's details are settled. See Sales & invoicing.

And the quote is refused rather than approximated in four cases, each with its own plain message:

  • "Cannot create a quote: the deal has no amount"
  • "Cannot create a quote: the deal's currency differs from the company currency" — a foreign currency is refused, never converted
  • "Cannot create a quote: the deal has no contact"
  • "Cannot create a quote: accounting is not enabled on this plan"

And one quote per deal, no more. Creating it needs the post-ledger permission alongside the amounts permission, and otherwise you get: "Cannot create a quote: you need the post ledger permission".

Who sees what?

Permissions here are cumulative: they start from the "Access CRM" permission alone, and add what is needed on top of it.

Permission What it opens
"Access CRM" alone only the deals assigned to them
"Team's deals" adds the deals of the members of the teams they lead, alongside their own
"All deals" every deal in the company
"Deal amounts" the amounts, the totals and the forecasts
"Export CRM data" the "Export" and "Export selected" buttons
"CRM bulk actions" "Move", "Assign" and "Delete" in the bulk bar

And the company admin sees it all by virtue of the role, and is the only one who sees the "Pipelines" tab and edits the pipelines and the deal custom fields.

Caution: "Export CRM data" and "CRM bulk actions" are two new, standalone permissions, and they are not granted automatically to whoever already held the CRM permission. So if the export or bulk-action buttons have disappeared for someone who used to use them, they are not broken — the admin grants them from the permissions.

Note: Amounts are stripped on the server before the data leaves, not in the browser. So someone without "Deal amounts" sees no amount field in the form, no figures in the column headers (the counter alone stays), no stat bar, and no "Reports" tab at all — even though "Stage conversion" holds no money — no money columns in the export, and cannot filter by amount.

How do I build a pipeline?

From the "Pipelines" tab (for company admins):

  • "Pipeline name", then its stages: each stage has a name, a colour, a "Probability" (a whole number between 0 and 100, otherwise: "Between 0 and 100"), a "Kind" ("Regular" or "Won" or "Lost") and an "In reports" box.
  • "Display colours": "No colour" or "Coloured dot" or "Background tint".
  • "Opportunity-level probability" if you want the rep to set it per deal rather than inherit it from the stage.
  • "Stale after (days)" — a whole number between 1 and 365, default 14, otherwise: "Between 1 and 365 days". It is what the stage-age badge and the "Deal Stale" trigger measure against.
  • "Card fields" with an n/4 counter: "Shown under the deal name on the card — up to four fields. With none chosen: company, source and close date." After the fourth the remaining boxes are disabled.
  • "Make default" so that new deals start from it.

The constraints: at least one stage per pipeline, only one won stage, and only one lost stage. And the won stage is pinned to probability 100 and the lost stage to 0. The number of pipelines goes by plan: Professional 3, Advanced 5, Business 10, Custom unlimited — and on reaching it: "You reached your plan's pipeline limit ({limit})".

Caution: A pipeline holding deals is not deleted: "This pipeline holds {n} deals. Move them to another pipeline before deleting." And deleting a stage that holds deals asks first where they move to, under the heading "These stages hold deals".

Deal custom fields

In Settings → the Customer management group → "Deal custom fields" (for company admins): "Add fields of your own to deals — they show in the deal drawer, on the card if you choose, and in the filters and the table." And every definition carries a "Show on the card" box.

The field you define becomes at once a column in the table, a condition in the filter builder, a column in the export file, and a mappable column in the import wizard. And the number goes by plan: Professional 10, Advanced 15, Business 25, Custom unlimited.

Deal automation

From Automation you will find seven triggers under "Customers":

Trigger When it fires
"Deal Stage Changed" on every move, and the "Reaches stage" field pins it to one particular stage (or "Any stage")
"Deal Won" on reaching a winning stage
"Deal Lost" on reaching a losing stage
"Deal Created" "When a deal is created one at a time — not on import"
"Deal Assigned" when the owner changes
"Deal Stale" "Once a day at 08:00, when a deal has sat in its stage longer than the pipeline allows"
"Close Date Approaching" "Once a day at 08:00, 7 / 3 / 1 days before the expected close date"

And four of them — created, assigned, stale and close-date-approaching — accept a "Pipeline filter" (whose default value is "Any pipeline"). And close-date-approaching alone has a "Days before" field where you choose 1, 3 or 7.

And the actions available on a deal: "Move Deal to Stage" (which carries a "Loss reason (for a losing stage)" field, since a losing stage is never moved into without a reason), "Create Task on Deal" with "Due in (days)", "Notify Deal Owner", "Assign Deal Owner", "Log a Note", and "Tag the Contact".

And in the variable picker there is a section for the deal: {{deal.name}}, {{deal.amount}}, {{deal.currency}}, {{deal.stage}}, {{deal.owner}}, {{deal.closeDate}}, {{deal.daysInStage}}, {{deal.url}} and {{deal.id}}.

Note: "Tag the Contact" tags the contact, not the deal. Deals themselves carry no tags, and there is no tag button in their bulk bar.

FAQ

Q: How do I declare a deal won or lost? A: Move it to a stage marked won or lost — its status updates automatically and needs no separate button. The difference is that a loss asks you for the "Loss reason" first.

Q: I dragged a card by mistake. A: Drag it back to its place, or press Esc during the drag to cancel it before you drop.

Q: Why can't I drag a card to another pipeline? A: Dragging does not cross between two pipelines by design. Open the deal drawer and change the "Pipeline", or use the bulk "Move".

Q: Can I link more than one contact to a deal? A: Yes, and a deal needs at least one and is not saved without it.

Q: Why can't I see the amounts or the "Reports" tab? A: Because you do not hold the "Deal amounts" permission. The stripping happens on the server, so the tab is not drawn at all — and a direct link to it lands on the board.

Q: The "Export" button and the bulk-action buttons have disappeared for me. A: They are two standalone permissions now — "Export CRM data" and "CRM bulk actions" — and they are not granted automatically. Ask the company admin to grant them.

Q: I tried to move 400 deals in one go and the request was refused. A: The limit for a single batch is 200 deals. Narrow the selection with a filter, then try again in two batches.

Q: I imported hundreds of deals and the creation automation never fired. A: That is deliberate. Import fires no automation, protecting you from hundreds of messages and tasks all at once.

Q: My deal is in another currency and did not enter the total. A: There is no currency conversion on this screen, by design. A deal in a currency other than the company's is counted and never summed, and it is declared in the column header with "+{n} in other currencies" and in the stat bar with "{n} in another currency".

Q: I deleted a deal by mistake — how do I get it back? A: The delete is soft and does not erase the record straight away, but there is no restore screen today for deals. Treat a delete as final at your end, and contact support if the matter is serious.

Q: Can I add fields of my own to a deal? A: Yes — from Settings → "Deal custom fields". And they are not the same as the custom fields that belong to tasks and projects.

Q: Why don't the report figures keep up with the board? A: The board and the table refresh themselves every 45 seconds (and for the visible tab alone, and never while a card is being dragged or a form is open). The "Reports", however, do not join that refresh; move one of their switches, or reopen the tab.

Quick reference

Action Path
Open the deals Switch system → Customer management → Deals
Swap between the two surfaces The "Board" and "Table" buttons in the toolbar
A new deal "New deal" → the name + at least one contact
Move a deal to a stage Drag the card between columns, or switch the stage cell in the table
Cancel a drag The Esc key during the drag
Record a loss Move it to the lost column → "Loss reason" → "Mark as lost"
Filter "Filters" → "Add condition" → "And" or "Or"
Save a view The segment strip above the tools → "Just me" or "Shared with the team"
Pick the columns "Table" → "Columns"
A bulk action "Table" → tick rows → "Move" / "Assign" / "Delete"
Export "Export" in the toolbar, or "Export selected" after ticking
Import "Import" → choose a file → "Map the columns" → "Check" → "Import"
The reports The "Reports" tab → "Close forecast" / "Stage conversion" / "Loss reasons"
A quote from a won deal Open the deal → "Activity" → "Create quote"
Build a pipeline The "Pipelines" tab (admins)
Card fields "Card fields" in the toolbar, or the "Pipelines" tab
Custom fields for deals Settings → the Customer management group → "Deal custom fields"
My tasks and notes Customer management workspace → Activities