Why the standard Bitrix24 card slows down the department's work
The standard deal card in Bitrix24 is assembled on the server: every time it is opened, the system pulls in all entity fields, relations, history, and access rights, and then sends the finished markup to the browser.
While there are few fields and custom properties, this goes unnoticed. But as soon as a company has dozens of custom fields for industry-specific needs, and a deal accumulates product line items, invoices, and correspondence, response time grows exponentially.
The CRM bottleneck is not the server or the communication channel, but the very principle of rendering. The manager waits for the form to load, then scrolls to the needed block, then looks for a field that someone renamed or duplicated.
Every extra action is seconds that multiply by the number of deals per day. At a volume of hundreds of requests, the department loses hours of working time, and the speed of response to the client drops.
The second problem is the rigid structure. The standard card does not allow building a working screen for a specific process: the sales, support, and logistics departments need different fields and a different order of blocks, while the system offers everyone the same form.
As a result, some data is entered into comments, some into tasks, and the deal ceases to be a single source of truth.
A custom card on Vue.js solves this at the interface level: the page is assembled from components, data is loaded as needed rather than in full.
The manager sees only the blocks they need for their work, fields are updated without reloading the form, and heavy sections are pulled in separately. Let's break down how this is addressed and what changes in the speed of processing requests.
What a custom Vue.js card in Bitrix24 delivers
The standard Bitrix24 card is assembled on the server: every time a deal is opened, it means a request, a page re-render, and waiting for a response.
On a deal with history, tasks, and linked contacts, a manager waits several seconds for it to open, and during active work with the pipeline such pauses accumulate into hours.
A custom Vue.js card moves rendering into the browser: the interface receives data once and then updates only the blocks that changed — the card opening speed drops to fractions of a second and stops depending on the volume of the deal history.
The second effect is the number of manager actions. In a typical card, the necessary fields are scattered across tabs, and the typical scenario of "review the terms, set a task, record the next step" turns into back-and-forth navigation.
We build the working screen around a specific process: key fields, status buttons, and linked records on a single canvas. The manager completes the same scenario in fewer clicks, and unnecessary transitions simply disappear from their day.
The third effect is the share of input errors. When a field pulls data from a reference list, validates the format, and highlights a conflict before saving, some typos are caught on the spot rather than surfacing at the reconciliation stage.
This directly affects pipeline quality: fewer retroactive edits and fewer discrepancies between the card and the accounting system.
The fourth is employee onboarding. The Vue.js Bitrix24 interface stays responsive on any screen, and the screen logic follows the department's familiar working order, so a newcomer masters the card in days rather than weeks.
Below we break down what these effects are made of and how they are measured before and after implementation.
Card Implementation Options: Comparing Approaches
Choosing an approach to the card is a choice between the speed of the first result and the reserve of flexibility for the future.
A standard Bitrix24 card covers a standard set of fields and tabs, a native customization extends it through custom fields, business processes, and display rules, while a separate Vue.js interface moves the data-handling logic outside the card, accessing Bitrix24 via REST.
Below is an honest comparison by implementation timeline, configuration flexibility, and limitations, so that the decision is made for the task, not for habit.
| Option | When it fits | Limitations of the approach |
|---|---|---|
| Standard card | Processes fit within standard entities: deal, lead, contact, company | Any non-standard logic hits a ceiling: the structure cannot be rebuilt, and it is difficult to assemble a summary from several entities on a single screen |
| Native customization | You need to add fields, tabs, permissions, automations within the existing card | Configuration flexibility is limited by the builder: non-standard layout, complex calculations, and external data sources require workarounds |
| Separate Vue.js interface | The process is unique, you need your own logic, summary panels, and work with external systems | Requires well-designed authorization, data synchronization, and support — it is a separate product, not a configuration |
What this means in practice
A standard card and native customization deliver results quickly and do not create a separate codebase — support falls to the portal administrator.
A separate Vue.js interface pays off where an employee works daily in a non-standard scenario: the more manual operations it eliminates, the higher the return, but the demands on development discipline are also higher.
How we choose an approach
We start by analyzing the process: which entities are involved, where the data comes from, how many steps the employee goes through. If the task can be solved with native tools — we do not complicate it.
If it hits the builder's limitations — we design a separate interface with synchronization via REST and well-designed authorization.
How we build the interface: from audit to handover
We start the work not with code, but with an analysis of how managers actually run deals in Bitrix24: which fields they fill in, which actions they repeat ten times a day, where they switch between tabs and lose context.
The output is a map of scenarios with usage frequency and bottlenecks, not an abstract "make it look nice". Then we design the card blocks: what we show right away, what we move into a tab, which actions we make one-click.
- Scenario audit. We look at the current deal card, the field export, and calls with the sales department: where time is lost, which data is entered manually, what gets duplicated.
- Block design. We split the card into meaningful zones — summary, history, documents, tasks — and pin down which data and actions are needed in each.
- Component assembly. We build the interface on Vue.js: reusable components for fields, tables, statuses, and modal windows, a unified style, and predictable behavior.
- Data connection. We link the components to Bitrix24 through the standard interface: deals, contacts, tasks, files, and access rights are pulled in without duplicates or desync.
- Testing on real deals. We run the card on managers' live deals: response speed, correctness of permissions, behavior during bulk operations, and on a weak connection.
- Refinement based on feedback. We fix the scenarios that turned out to be inconvenient in practice — before the solution goes into use by the whole team.
- Handover. We hand over the source code, an administrator's guide, and a short training session for managers so the interface can live without us.
This order closes the main risk of custom cards — a beautiful interface that nobody uses. Every stage relies on data from the system, not on guesses, so the output is a working tool, not a demo.
Card components: fields, permissions, integrations
A card in Bitrix24 is not a "form with fields" but a set of independent layers that are assembled for a specific process.
On the interface side, each layer is a separate Vue.js component: it receives data from REST, renders its own part, and knows nothing about the internal structure of its neighbors.
That is why adding a new block does not break the others and does not require rewriting the entire card.
What the card is assembled from
- Field blocks — groups of attributes for a deal, lead, or smart process: details, amounts, assignees, nested entities. Each block is a self-contained component with its own validation and output format.
- Visibility rules — conditions under which a field is shown, hidden, or becomes required: deal stage, user role, value of another field. The logic is described declaratively and is not duplicated in the form code.
- Access roles — read and write separation by department, group, and record owner. The check runs both on the interface and on the service side, so it cannot be bypassed through a direct request.
- Linking with tasks and documents — a task is created from the card with a link to the entity, and files and contracts are pulled in. Links are stored as separate entities, not as text notes in comments.
- Notifications — events for a stage change, overdue item, or new document go to the assignees and to the deal chat.
- Change log — who, when, and which field was changed, with the previous and new value. This is the basis for reviewing disputed deals and for auditing.
How this relates to the platform
The card takes data through Bitrix24 REST methods, and the interface is assembled on Vue.js — this makes it possible to keep display logic separate from the portal's business logic.
Such a layer is compatible with platform updates: changes in the API affect the adapter, not the entire card. The approach has been proven on projects where the card lives for years and grows with new fields without being rewritten from scratch.
What the client receives upon completion
Implementation ends not with a screen demonstration, but with the handover of a complete package that lets the interface live and evolve without us.
Each artifact addresses a specific risk: "it works, but it's unclear how it's built," "the manager doesn't know where to click," "after an update everything broke."
- Assembled interface — a Vue.js card connected to your Bitrix24 through standard extension points. It runs in the production portal, not on a separate staging environment: managers go to the familiar place and see the new blocks.
- Block and connection diagram — which fields, tabs, and actions exist in the card, where data is pulled from, what is written where upon saving. With it, a new developer is onboarded to the project in a day, rather than a week of reading code.
- Access policies — a "role → block → action" matrix: who sees, who edits, who only reads. Permissions are described declaratively and enforced on the portal side, rather than hidden inside conditions within the interface.
- Instructions for managers — step-by-step scenarios: how to create a deal, where to fill in required fields, what to do when validation fails. With screenshots and walkthroughs of typical situations, not just a list of buttons.
- Update regulations — which portal and library versions are supported, how a new build is rolled out, what is checked before publication, and how to roll back to the previous one.
- Logs and control points — which interface events are logged, where to look for errors, and by what signs to determine that the problem is in the card rather than the portal.
- Access and handover — repository, branches, rights to staging environments and the portal, contacts of responsible parties. Everything is registered on your side, without ties to our accounts.
The package is designed so that from here on you work with it yourselves or hand it over to another contractor — without archaeology through someone else's code.
If processes change during support, the diagram and regulations are updated together with the interface, so that the documentation doesn't drift away from reality.
How is a custom card different from a standard customization?
A standard card customization in Bitrix24 is configuration through custom fields, robots, business processes, and built-in tabs.
This option is justified when the logic fits within typical entities: add a field, rearrange blocks, attach a trigger to a stage change, restrict visibility by roles.
All of this lives inside the platform, is updated along with it, and does not require a separate build and deployment cycle.
The boundary of applicability lies where standard tools begin to require workaround constructs: dozens of linked fields, calculations against external reference books, complex validation before a stage change, rendering data from related systems in real time.
A separate interface on Vue.js is needed when the card stops being a form and becomes a workspace.
This manifests in specific signs: a manager opens a deal and keeps three or four tabs open alongside to assemble the picture; standard fields cannot keep up with the data structure, and duplicate entities appear; a business process becomes overgrown with branchings that no one dares to edit.
Then the logic is moved into a separate layer that accesses Bitrix24 data via REST, and the interface is assembled for the real work scenario — with its own validation, state, and reaction to user actions without page reload.
The key difference is not in the technology, but in what exactly becomes the source of truth. With standard customization, the source is the platform, and any complication runs up against its data model.
With a separate interface, the source is your scenario, while Bitrix24 remains the storage and the integration point with the CRM, tasks, and documents.
Hence the difference in solution maintenance: a standard configuration survives platform updates almost without intervention, while a custom interface requires support — version control, compatibility tests against changes in the REST schema, a separate deployment contour.
Therefore, the choice is not "better or worse," but a question of cost of ownership. If the task is solved by configuration in a matter of days and does not grow, a separate interface will bring unnecessary complexity.
But if the card becomes overgrown with logic that standard tools drag along through crutches, the custom layer pays off through the speed of the department's work and the predictability of changes.
We start with an analysis of the scenario and show where this boundary lies in your specific case — and then we discuss which option closes the task with a lower support cost.
Case study: accelerated request processing in the sales department
The sales department worked in a standard deal card: the manager opened it, manually transferred data from the email, duplicated contacts, created line items separately, and only then set a task.
One request took 12 actions, and some fields were filled in from memory — hence typos in phone numbers, duplicate clients, and lost agreements.
What was changed
We rewrote the card on Vue.js and kept in it only what the manager needs in the moment: the contact is pulled up by number, the history of correspondence and calls is on one screen, line items are added from the catalog, and a task is set directly from the form.
The number of steps was reduced from 12 to 4, and required fields are validated on input — the system does not allow saving a card with an empty or incorrect value.
We also set up rules separately: if the client is already in the database, the card is not created anew, but the existing one opens — duplicates stopped appearing at the creation stage.
Implementation result
The average request processing time decreased from 9 to 3 minutes, and the share of input errors fell from 18% to 2%. Managers stopped returning to a request again to clarify data — this relieved part of the load during peak hours.
Bitrix24 remained the core: deals, access rights, reports, and the pipeline work as before; only the card interface changed. Rollback is possible at any moment — the old form is preserved as a backup option.
Feedback from the head of the sales department: "Previously half of the requests were stuck because of unfilled fields; now the manager brings the deal to a task in one pass.
Training a new employee takes not a week, but a day — the card guides them through the steps itself."
Common technical concerns before starting
A custom card built with Vue.js lives inside the portal and accesses data through standard interfaces — REST and the platform's built-in mechanisms.
This is the key point for compatibility: we don't modify the core and don't touch system files, so portal updates don't break the card's logic.
Before every major update, we run integration checks on a test environment and verify contracts — if the platform changes a method's behavior, we find out before the rollout to production.
Data integrity is ensured by the fact that the card doesn't store state itself. All entities — deals, contacts, tasks, custom fields — remain in the portal's database, and the interface only reads and writes through agreed-upon calls.
If the card fails, no data is lost, and rolling back to the previous interface takes minutes: the old version remains available until the new one confirms correctness on real scenarios.
The mobile version is a separate requirement, not a side effect. The layout, tap target sizes, and dropdown behavior are tested on tablets and phones, because managers often work with the card in the field.
If a scenario is inconvenient on a small screen, we simplify it rather than porting the desktop logic one-to-one.
What happens after the project handover?
We hand over the source code, the component schema, a description of the calls to the portal, and deployment instructions.
Your engineers will be able to make changes without us, and we remain on support under an agreed-upon protocol — from incident response to scheduled enhancements.
What implementation risks do you see?
The main risk isn't the code, but undocumented business rules: when the card's logic rests on verbal agreements rather than requirements.
That's why at the start we lock down the scenarios and fields, and move contentious points into a separate list of decisions before development begins.
Let's discuss your task and come back with a plan
To come back with a timeline estimate rather than generalities, we need to understand your current scenario: which entities your department manages in Bitrix24, exactly where managers fall back to Excel and email, which fields and relationships between the deal, contact, and company are critical.
Describe the task in your own words — that's enough for us to propose a block layout for a custom Vue.js card and an implementation plan.
What's worth including with the description:
- the list of roles that work in the card and their day-to-day scenarios (manager, supervisor, back office);
- the current fields, tabs, and relationships that are missing from the standard Bitrix24 card;
- where the data comes from — 1C, telephony, forms, external services — and in which direction the exchange goes;
- which actions should be performed directly from the card: changing the stage, generating a document, launching approval;
- access and role restrictions: who sees what and who can change what;
- examples of similar interfaces you like and what works well in them.
Based on this description, we come back with a card block layout, a timeline estimate by stage, and an implementation plan: where we start, what we roll out first, how we test it on the department's real data. The next step is a short, focused conversation: we'll clarify the details and lock down the scope.

