Setting up a tender sales funnel in Bitrix24

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Setting Up a Tender Sales Pipeline in Bitrix24

Tender sales are a process governed by strict regulations, multiple stages, and specific deadlines. The standard Bitrix24 sales pipeline was designed for B2B deals where a manager moves a client from first contact to payment. A tender works differently: there is a preparatory phase (requirements analysis, cost calculation), a participation phase (bid submission, auction), and contract execution. Three distinct processes — three separate pipelines, or one extended one.

Architectural Choice: One Pipeline or Several

One pipeline with all stages is convenient for reporting, but results in 15–20 stages. An overly complex pipeline causes managers to stop maintaining it carefully.

Multiple pipelines (smart processes or separate deal categories):

  • "Tender Analytics" — new procurement opportunities, analysis, participation decision
  • "Tender Participation" — bid preparation, auction, awaiting results
  • "Contract Execution" — created upon winning, a separate cycle

For most companies with a tender department of 3–10 people, a single "Tender" smart process with 8–12 stages is sufficient.

Pipeline Stages

NEW
  → ANALYSIS (reviewing requirements, cost calculation)
    → DECLINED TO PARTICIPATE (final — withdrew before submission)
    → BID PREPARATION
      → BID SUBMITTED
        → AUCTION/TRADING (if applicable)
          → AWAITING RESULTS
            → LOST (final — did not win)
            → WON
              → CONTRACT SIGNING
                → CONTRACT EXECUTION
                  → CONTRACT COMPLETED (final — success)
                  → TERMINATED (final — failure)

Stage semantics:

  • FAIL (red) — Declined to Participate, Lost, Terminated
  • SUCCESS (green) — Contract Completed
  • IN_PROCESS (all others)

Creating the Pipeline via API

// Creating stages for a smart process (entityTypeId = 183)
$stages = [
    ['NAME' => 'New',                  'SORT' => 10, 'COLOR' => '#BBBBBB', 'SEMANTICS' => 'P'],
    ['NAME' => 'Analysis',             'SORT' => 20, 'COLOR' => '#47ADE3', 'SEMANTICS' => 'P'],
    ['NAME' => 'Bid Preparation',      'SORT' => 30, 'COLOR' => '#FFA900', 'SEMANTICS' => 'P'],
    ['NAME' => 'Bid Submitted',        'SORT' => 40, 'COLOR' => '#00C4FB', 'SEMANTICS' => 'P'],
    ['NAME' => 'Auction/Trading',      'SORT' => 50, 'COLOR' => '#9DCF00', 'SEMANTICS' => 'P'],
    ['NAME' => 'Awaiting Results',     'SORT' => 60, 'COLOR' => '#ADB7C2', 'SEMANTICS' => 'P'],
    ['NAME' => 'Won',                  'SORT' => 70, 'COLOR' => '#00C4FB', 'SEMANTICS' => 'P'],
    ['NAME' => 'Contract Signing',     'SORT' => 80, 'COLOR' => '#47ADE3', 'SEMANTICS' => 'P'],
    ['NAME' => 'Execution',            'SORT' => 90, 'COLOR' => '#47ADE3', 'SEMANTICS' => 'P'],
    // Final stages
    ['NAME' => 'Contract Completed',   'SORT' => 110, 'COLOR' => '#7BD500', 'SEMANTICS' => 'S'],
    ['NAME' => 'Lost',                 'SORT' => 120, 'COLOR' => '#FF5752', 'SEMANTICS' => 'F'],
    ['NAME' => 'Declined to Participate', 'SORT' => 130, 'COLOR' => '#FF8F61', 'SEMANTICS' => 'F'],
    ['NAME' => 'Terminated',           'SORT' => 140, 'COLOR' => '#FF5752', 'SEMANTICS' => 'F'],
];

foreach ($stages as $stage) {
    \Bitrix\Crm\PhaseSemantics\SmartProcessStageTable::add(array_merge(
        $stage,
        ['ENTITY_TYPE_ID' => 183, 'CATEGORY_ID' => 0]
    ));
}

Robots at Key Stages

On transition to "Bid Preparation", automatically:

  • Task "Analyze Technical Requirements" (deadline: 2 days)
  • Task "Calculate Cost and Margin" (deadline: 3 days)
  • Task "Prepare Documents" (deadline: 2 days before bid submission deadline)
  • Notification to the tender specialist

On transition to "Bid Submitted":

  • Task "Monitor Results" (date: results announcement date)
  • Email to the client confirming participation (if required)

On transition to "Won":

  • Task "Agree and Sign Contract" (deadline: 10 days)
  • Notification to the manager and CFO
  • Creation of a linked "Contract" deal in a separate pipeline (optional)
AddEventHandler('crm', 'OnCrmSmartProcessItemUpdate', function(\Bitrix\Crm\Item $item) {
    if ($item->getEntityTypeId() !== 183) return;
    if (!$item->isChangedStageId()) return;

    $newStage = $item->getStageId();
    if (!str_contains($newStage, ':WON') && !str_contains($newStage, 'VICTORY')) {
        return;
    }

    // Won — create execution tasks
    $taskList = [
        ['Sign contract via platform', '+10 days'],
        ['Obtain bank guarantee (if required)', '+15 days'],
        ['Draft contract execution plan', '+5 days'],
    ];

    foreach ($taskList as [$title, $offset]) {
        $deadline = (new \DateTime())->modify($offset);
        \CTaskItem::add([
            'TITLE'          => $title,
            'RESPONSIBLE_ID' => $item->getAssignedById(),
            'CREATED_BY'     => 1,
            'DEADLINE'       => $deadline->format('d.m.Y H:i:s'),
            'GROUP_ID'       => TENDER_GROUP_ID,
            'UF_CRM_TASK'    => ['T' . $item->getId()],
        ], 1);
    }
});

KPIs and Pipeline Analytics

Standard tender department metrics tracked through CRM:

Metric How It Is Calculated
Participation → win conversion (Wins / Bids Submitted) × 100%
Average % reduction of NMCC (NMCC − Our Price) / NMCC
Reasons for losses Distribution by the "Reason for Decline" field
Portfolio value (active contracts) Sum of "Contract Amount" field in the "Execution" stage
Overdue deadlines Number of tenders with overdue "Bid Submission Date" field

This data is available in standard Bitrix24 analytics without any customisation — it is simply a matter of filling in the fields correctly.

Required Fields per Stage

Required fields on stage transitions are configured in the smart process settings:

  • "Analysis" → "Bid Preparation": "Our Price" and "Responsible for Preparation" must be filled
  • "Won" → "Contract Signing": "Contract Number" must be filled
  • "Execution" → "Contract Completed": "Act Date" and "Contract Amount" must be filled

This prevents transitions without key data.

Scope of Work

  • Creating the "Tender" smart process or configuring a separate deal category
  • 12–15 stages with semantics and colours
  • Custom fields (IKZ, NMCC, platform, procurement law, reason for decline)
  • Robots and tasks on key transitions
  • Required fields on stage change
  • Report and analytics configuration

Timeline: 1–2 weeks for a basic pipeline with fields and robots. 3–4 weeks including EIS integration and full analytics.