When Saving a Comment in the Call Card BackgroundCallCard::addCommentButtonClick

Choose a tool for developing with an AI agent:

  • use Alaio Vibecode to build an app for Bitrix24 from a task description without knowing any programming language. The agent writes the code and deploys the app to a server, with no manual hosting setup
  • use the MCP server to develop a REST API integration in your own project. The agent refers to the official REST documentation

Scope: placement — registration of the placement, telephony — registration of the call that raises the card

Who can subscribe: any user

The BackgroundCallCard::addCommentButtonClick event occurs when the operator saves a comment in the call card.

The "Comment" button opens an input field and changes its label to "Save". Clicking it again saves the text. Bitrix24 stores the comment with the call itself, and the event passes the same text to the application.

The event can also occur without a click. If the card is hidden, for example with the telephony.externalCall.hide method, while the comment field is open, the card stays on screen for another 65 seconds. Each input in the field restarts this countdown. When the time runs out, Bitrix24 saves the comment and sends the event itself.

The event operates within the application context in the PAGE_BACKGROUND_WORKER placement. This is a JS interface event, not a REST event: you cannot subscribe to it with a request to /rest/.

What the Handler Receives

Data is passed to the callback BX24.placement.bindEvent

callback("Operator's comment");
        

Event Handler Parameters

Required parameters are marked with *

Parameter
type

Description

eventData*
string

The entire content of the comment field at the moment of saving.

It can be an empty string if the operator saved the field without text. The field is not cleared after saving, so a repeated save passes the whole text again

Event Subscription Parameters

The handler is registered from the widget with the BX24.placement.bindEvent method.

Required parameters are marked with *

Name
type

Description

event*
string

The name of the interface event.

For this event — BackgroundCallCard::addCommentButtonClick

callback*
callable

The function Bitrix24 invokes when the event occurs. The handler arguments are described above

Code Examples

How to Use Examples in Documentation

BX24.ready(function () {
            BX24.init(function () {
                BX24.placement.bindEvent('BackgroundCallCard::addCommentButtonClick', function (eventData) {
                    console.log(eventData);
                });
            });
        });
        
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide)
        import type { B24Frame } from '@bitrix24/b24jssdk'
        
        declare const $b24: B24Frame
        
        await $b24.placement.bindEvent('BackgroundCallCard::addCommentButtonClick', (eventData: string) => {
          console.log(eventData)
        })
        
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
        <script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
        <script>
          document.addEventListener('DOMContentLoaded', async () => {
            const $b24 = await B24Js.initializeB24Frame()
        
            await $b24.placement.bindEvent('BackgroundCallCard::addCommentButtonClick', (eventData) => {
              console.log(eventData)
            })
          })
        </script>
        

Errors

Check the following conditions.

  • The widget is open in the PAGE_BACKGROUND_WORKER placement. In other placements, the BackgroundCallCard::* events are not registered, and the subscription silently fails
  • The event name is passed without typos and with the correct capitalization. The list of events available in the current placement is returned by BX24.placement.getInterface
  • The call was raised by the application with the telephony.externalCall.register method. For calls made by Bitrix24 itself, the BackgroundCallCard::* events are not emitted at all

Continue Learning