Setting up tender tracking in Bitrix24 CRM

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 Tender Tracking in Bitrix24 CRM

A tender manager works in three systems simultaneously: EIS (zakupki.gov.ru), SBIS or Kontur.Tender for monitoring, and Excel spreadsheets to track statuses. Bitrix24 CRM plays no part in this workflow. The goal is to make CRM the central hub: tenders flow in automatically, statuses are updated, and the manager works in a single interface.

Tender Data Model in CRM

Instead of standard deals, we use Bitrix24 Smart Processes (available from the Standard plan) — this lets us create a separate "Tender" entity with its own pipeline, without mixing it with regular sales.

Smart Process "Tender" fields:

Field Type Purpose
Registry Number String Procurement number in EIS / on the platform
IKZ String Procurement identification code
NMCK Money Initial maximum price
Our Price Money Our bid price
Platform List ETP, Sberbank-AST, RTS-tender, etc.
Procurement Type List Auction, competition, quotation, sole supplier
Law List 44-FZ, 223-FZ, commercial
Application Deadline Date/Time Deadline
Results Date Date
Contract Number String After winning
Contract Amount Money Final
Rejection Reason List + text On loss
EIS Link URL

Automatic Tender Collection

Option 1: Aggregator APIs. Kontur.Zakupki, Tenderplan, OTC.ru provide search APIs by keywords and OKPD2 codes. Retrieve results and create Smart Process items.

Option 2: EIS RSS Monitoring. Free but limited — only basic fields. Parse RSS and create a tender in CRM:

class TenderMonitorAgent
{
    private array $searchQueries = [
        'server supply OKPD2 26.20',
        'IT services software development',
    ];

    private string $smartProcessEntityTypeId = '183'; // ID of the "Tender" Smart Process

    public function run(): void
    {
        foreach ($this->searchQueries as $query) {
            $tenders = $this->fetchFromEis($query);

            foreach ($tenders as $tender) {
                if ($this->alreadyExists($tender['number'])) {
                    continue;
                }

                $this->createCrmItem($tender);
            }
        }
    }

    private function createCrmItem(array $tender): void
    {
        \Bitrix\Crm\Item\Factory\SmartProcessItemFactory::getInstance(
            (int)$this->smartProcessEntityTypeId
        )->create([
            'TITLE'                   => $tender['name'],
            'STAGE_ID'                => 'DT' . $this->smartProcessEntityTypeId . ':NEW',
            'UF_CRM_TENDER_NUMBER'    => $tender['number'],
            'UF_CRM_TENDER_NMCK'      => $tender['price'],
            'UF_CRM_TENDER_DEADLINE'  => \Bitrix\Main\Type\DateTime::createFromTimestamp(
                strtotime($tender['deadline'])
            ),
            'UF_CRM_TENDER_URL'       => $tender['url'],
            'UF_CRM_TENDER_LAW'       => '44-FZ',
            'ASSIGNED_BY_ID'          => $this->getDefaultManager(),
        ])->save();
    }
}

Automatic Reminders and Deadlines

Bitrix24 robots (no coding, configured through the interface):

When a tender is created:

  • Task for the responsible manager: "Review technical specification"
  • Email reminder 5 days before the application deadline

When transitioning to "Application Preparation" stage:

  • Task: "Prepare technical section"
  • Task: "Compile document package"
  • Task date = Application Deadline minus 2 days

When transitioning to "Win" stage:

  • Task: "Sign contract through the platform" (deadline: +10 days)
  • Notification to the supervisor

Automatic deadlines via PHP for complex logic:

AddEventHandler('crm', 'OnCrmSmartProcessItemUpdate', function(\Bitrix\Crm\Item $item) {
    if ($item->getEntityTypeId() !== 183) return; // Tenders only

    $stageId = $item->getStageId();

    if ($stageId === 'DT183:WON') {
        // Win — create contract execution tasks
        $deadline = (new \DateTime())->modify('+30 days'); // 30 days to sign contract

        \CTaskItem::add([
            'TITLE'          => 'Sign contract through EIS',
            'RESPONSIBLE_ID' => $item->getAssignedById(),
            'DEADLINE'       => $deadline->format('d.m.Y H:i:s'),
            'DESCRIPTION'    => 'Contract signing deadline under 44-FZ — 30 days',
            'UF_CRM_TASK'    => ['T' . $item->getId()],
        ], 1);
    }
});

Tender Analytics

CRM reports show: conversion funnel (applications → wins), average percentage reduction from NMCK in won tenders, performance by procurement type and platform. The standard Bitrix24 analytics works with Smart Process fields without additional configuration.

A custom widget on the CRM homepage — a summary of active tenders with upcoming deadlines:

// Widget: tenders with a deadline within the next 7 days
$urgentTenders = \Bitrix\Crm\SmartProcess\Query::create(183)
    ->addSelect(['ID', 'TITLE', 'UF_CRM_TENDER_NMCK', 'UF_CRM_TENDER_DEADLINE'])
    ->addFilter(['<=UF_CRM_TENDER_DEADLINE' => (new \DateTime())->modify('+7 days')])
    ->addFilter(['!STAGE_SEMANTIC_ID' => 'F']) // exclude final stages
    ->addOrder('UF_CRM_TENDER_DEADLINE', 'ASC')
    ->exec()
    ->fetchAll();

Scope of Work

  • Creating the "Tender" Smart Process with custom fields
  • Tender stage pipeline
  • EIS monitoring agent or aggregator API integration
  • Robots for auto-tasks and reminders
  • Reports and deadline widget

Timeline: 1–2 weeks for CRM setup without integrations. 3–5 weeks with automatic tender collection.