ImportOS · Docs

Deal stages

All deal stages from the state machine: who moves it, what is required to enter, SLA and what happens automatically. The table is generated from code.

Every deal goes through state machine stages, from lead to close. It is one logic for Desk, the client cabinet, Track, the API and the bots.

The table below is not edited by hand

It is generated by the generate script from @core/domain (DEFAULT_MACHINE) when the documentation is built. A test checks that the committed version matches the code. These are the default stages: your company can rename, disable or hide some of them.

How transitions work

  • Forward to the next stage is possible only after its required conditions are met (for example the contract is signed, the deposit received, a VIN and lot price exist, a container or B/L exists). The transition dialog in Desk shows what is missing.
  • Skipping stages. Some stages can be skipped depending on the deal type (the "Can be skipped" column): full service, auction only, logistics only, resale. "Consultation", "Bid approved", "Inland to border", "Certification" and "Registration" can be skipped in all types.
  • Backwards and into side statuses (hold, dispute, cancelled, lost) require a reason. Only the owner can cancel a deal after the "Lot won" stage.
  • Automatic actions on entering a stage: a notification to the client or manager (Telegram, Viber, email, SMS per your settings), tasks with due dates, document generation (a deposit invoice, a lot invoice), ETA recalculation, a client approval request.
  • SLA is the standard time in a stage, in days. A stage becomes "due soon" at 80 % of the time and "overdue" after it. The client's progress is weighted by SLA: 45 days at sea is a big part of the journey.
  • Visibility to the client. The "Client sees" column is the stage name on Track and in the cabinet. A stage can be hidden from the client (public: false).

Your stage settings

In tenant settings (stages_override) for a stage you can:

  • disable it (unless it is mandatory: "New lead", "Car handed over", "Closed" and the side statuses cannot be disabled);
  • change its SLA;
  • rename it for the client and for the manager (per language);
  • hide it from the client.

When you disable a stage, its required conditions are not lost: they move to the nearest transition that "jumps over" the disabled stage (unless you explicitly opt out with dropRequirements). The "Settings → Deal stages" screen is In development; for now the operator changes the settings.

Stage table

Main flow

#StageClient seesPhaseSLA, daysProgressWho moves itRequired to enterCan be skippedAutomatic actions
1lead
New lead
Request receivedAgreement10%owner, manager——
  • notification to client: lead_received
  • notification to manager: lead_received
  • task (manager, 1d): Call the new lead
2consult
Consultation
ConsultationAgreement31%owner, managerContact has no phone, email or messengerall deal types
  • notification to client: consult_scheduled
3contract_signed
Contract signed
Contract signedAgreement33%owner, manager, accountantA signed contract (or uploaded scan) is required—
  • notification to client: deal_stage_changed
  • document: invoice/deposit
  • notification to client: payment_due
  • task (accountant, 3d): Follow up on the deposit payment
4deposit_paid
Deposit received
Deposit paidAgreement25%owner, manager, accountantNo successful deposit paymentlogistics only
  • notification to client: deposit_received
  • task (manager, 1d): Start searching for a car
5searching
Searching
Searching for a carAuction216%owner, manager—logistics only, resale
  • notification to client: deal_stage_changed
6bid_approved
Max bid approved
Bid approvedAuction719%owner, manager, clientClient has not approved the max bidall deal types
  • notification to client: deal_stage_changed
  • notification to manager: deal_stage_changed
7won
Lot won
Car purchasedAuction324%owner, managerEnter the lot price; Enter a valid VINlogistics only, resale
  • notification to client: won
  • document: invoice/lot
  • notification to client: payment_due
  • task (accountant, 2d): Pay the auction lot
  • client approval: estimate (if: estimate_change_requires_approval)
8paid_to_auction
Paid to auction
Car paidAuction326%owner, manager, accountantAuction lot is not paidlogistics only, resale
  • notification to client: deal_stage_changed
  • task (logistics, 1d): Order towing from the auction
9pickup_scheduled
Towing ordered
Pickup scheduledUSA728%owner, manager, logisticsEnter a valid VIN; Enter the pickup dateauction only, resale
  • notification to client: deal_stage_changed
  • ETA recalculation
10at_us_warehouse
At US warehouse
At US warehouseUSA1032%owner, manager, logistics—auction only, resale, land (car-carrier) route
  • notification to client: deal_stage_changed
  • task (logistics, 3d): Book container space
11loaded
Loaded
Loaded into containerUSA739%owner, manager, logisticsEnter the container or bill of lading numberauction only, resale
  • notification to client: deal_stage_changed
  • ETA recalculation
12in_transit_sea
In transit (sea)
On the way by seaSea4544%owner, manager, logisticsEnter the vessel; Enter the departure date (ETD); Enter the estimated arrival (ETA)auction only, resale, land (car-carrier) route
  • notification to client: shipped
  • ETA recalculation
13at_eu_port
At EU port
Arrived at portEU773%owner, manager, logisticsEnter the actual arrival date (ATA)auction only, resale, land (car-carrier) route
  • notification to client: arrived_port
  • ETA recalculation
  • task (logistics, 2d): Arrange pickup from the port
14inland_to_border
Inland to border
On the way to the borderEU577%owner, manager, logistics—all deal types
  • notification to client: deal_stage_changed
  • ETA recalculation
15customs_clearing
Customs clearing
Customs clearanceCustoms581%owner, manager, logisticsCreate a customs case (declarant or declaration number)auction only, logistics only, resale
  • notification to client: customs_started
  • document: customs_package
  • document: invoice/customs
  • notification to client: payment_due
  • task (accountant, 2d): Invoice and follow up on customs payments
16customs_cleared
Customs cleared
Customs clearedCustoms384%owner, manager, logisticsEnter the customs release dateauction only, logistics only, resale
  • notification to client: customs_cleared
  • ETA recalculation
17certification
Certification
CertificationCustoms1086%owner, manager, logistics—all deal types
  • notification to client: deal_stage_changed
  • notification to client: certification_done
18registration
Registration
RegistrationCustoms792%owner, manager, logistics—all deal types
  • notification to client: deal_stage_changed
19ready_for_handover
Ready for handover
Ready for handoverHandover597%owner, manager, logistics——
  • notification to client: ready_for_handover
  • document: act
  • document: invoice/final (if: client_has_debt)
  • notification to client: payment_due (if: client_has_debt)
  • task (manager, 1d): Agree the handover date with the client
20handed_over
Handed over
Car handed overHandover14100%owner, manager, logisticsA signed handover act is required—
  • notification to client: handed_over
  • notification to client: review_request +3d
21closed
Closed
Order completed (hidden from the client)Handover—100%owner, accountantClient has an outstanding balance—
  • notification to manager: deal_stage_changed

Side statuses

#StageClient seesPhaseSLA, daysProgressWho moves itRequired to enterCan be skippedAutomatic actions
—lost
Lost
Request closed (hidden from the client)Other——owner, managerEnter a reason——
—cancelled
Cancelled
Order cancelledOther——owner, managerEnter a reason—
  • notification to client: deal_stage_changed
  • notification to owner: deal_stage_changed
  • task (accountant, 2d): Settle the cancelled deal (deposit)
—on_hold
On hold
On holdOther14—owner, managerEnter a reason—
  • notification to client: deal_stage_changed
—dispute
Dispute
Reviewing your claimOther14—owner, manager, clientEnter a reason—
  • notification to client: deal_stage_changed
  • notification to owner: deal_stage_changed
  • task (manager, 1d): Contact the client about the claim

Side statuses

  • Lost: a lead did not become a client (from "New lead" and "Consultation").
  • Cancelled: from contract signing to ready for handover; creates a task to settle the deposit.
  • On hold and Dispute: from any non-terminal stage; you return to the stage you came from. A dispute can also be opened by the client.

On this page