🔥 Top Apps in One Subscription! 🔥

Sending offline events from Bitrix24
to Google, Facebook and Instagram

Automatic optimization of the advertising company
Sending offline events from <strong>Bitrix24</strong><br/> to Google, Facebook and Instagram

Why you need send Offline Conversions

Offline conversions with Bitrix24 CRM to Google Analytics, Facebook Pixel and Yandex.Metrica Conversion is the ultimate goal of commercial projects. By passing the conversion, you learn the algorithms of the advertising platform, what kind of leads they buy and how much money they bring, i.e. automatically generate the target audience (TA). Based on this information, advertising platforms give preference to your ad if the Lead fits the description of the target audience and is profitable. Properly trained Artificial Intelligence (AI) selects target audience several times more efficiently than a person (marketer or business owner).

The two most effective types of companies, ROI and pay per conversion, require you to pass on the conversion and its cost. A nice bonus is the formation of advanced statistics based on conversions for reports. All you need to effectively advertise on autopilot is to integrate the advertising platform with your CRM.
Read the article: How to automate and improve advertising on Google, Facebook and Instagram.

How it works

When you add a goal to CRM, a robot is created that works at certain stages of the sales funnel (see How to set up a robot). In the goal card, you enter data for the integration of the plugin and advertising accounts.

When a visitor fills out a form on the site, places an order or writes to a chat, his unique identifier is stored in the CRM card. When changing the CRM stage, the previously configured robot is launched and transfers this data to the plugin. The plugin processes the information and sends the data about the event to the corresponding advertising accounts.

Facebook Events Google Analytics Events
Facebook Events

Facebook Events

Send the desired events using the plugin and the Facebook Conversion API, passing the unique visitor ID from the Facebook Pixel.

You can pass cost and currency to events to determine the value of a conversion.

Setup Facebook Pixel
Google Analytics Events

Google Analytics Events

The plugin sends events and transactions (if the goal has a price) to Google Analytics (GA) linked to the user. Events are displayed in real time, transactions with a delay of 1 hour. There are no restrictions on the number of events.

When submitting a cost, you can specify a currency that will automatically be converted to the currency of your GA account.

How to setup GA4

The module is available as part of the subscription Flamix.Bundle.

🔥 Maximize your business efficiency and convenience with a subscription to all Bitrix24 apps, reducing costs by up to 80% while gaining access to a comprehensive suite of business tools.

Flamix Video Install Apps Instructions for installing and activating a trial.

Free 30 days
$25 month
$240 year


Details about payment methods. Have questions - contact us.

  • Private cloud or on-Premise
  • Custom Development
  • Premium Support
  • No limits
  • Product Training
  • Maximum performance


Integrate any system to get even more information about customers.

Documentations and SDK

use \Flamix\Conversions\Conversion;
try {
    Conversion::add('UID', 150, 'RUB');
} catch (Exception $e) {
curl --location --request GET \
'https://conversion.app.flamix.solutions/api/conversion/add/YOR_CODE' \
--data-urlencode 'DOMAIN=example.com' \
--data-urlencode 'uid=UID' \
--data-urlencode 'price=150' \
--data-urlencode 'currency=RUB'

Version history

Current stable version — v3.0.0, 30.08.2022

The app works in the cloud and updates automatically.

v3.0.0, from 30.08.2022 Show
0 0 0 60
  • Fix journal
  • Envoy update
  • Update Envoy
  • Add new themes to pay
  • New License
  • Delete old theme folder
  • Add Логин: MOBI
  • How to choose Event code
  • New themes UI
  • New themes
  • Add FAQ & Step-by-step guide
  • Remove external_id
  • Fix PRODUCT_ID 0
  • Fix Journal pagenav
  • Add video to FB, GA4, GA and Y.M
  • System will merde Lead and Contact Data
  • Small fix
  • FB: Now sending locations and Birthday
  • FB now sent external_id
  • GA4 Fix
  • Add force upload
  • Remove placement
  • Fix FV error
  • Menu rename
  • Add IP to Facebook
  • Remove old GA4 setting func
  • Full GA4 Support
  • Refactoring && Fix notify users
  • Big refactoring! And finishe FB integrations
  • Receiver from B24 refactoring
  • Refactoring RobotController
  • Refactoring ConversionModel
  • Refactoring FB event to new format and new Controller
  • Move HTTP to independed
  • Add basic FB tests
  • Add fields when open app in first time && Refatoting Views
  • Add translate, refactoring and change env() to config()
  • Change setting to notify
  • Add error_log to gitignore
  • Update YMetrica conversion packege
  • Add Laravel v9 composer script
  • Minimum PHP 8
  • Update to Laravel v.9
  • Update UI to new version
  • Remove conversion packege
  • Update bugs handler
  • Update UI
  • Update JS library
  • Add product to bugging
  • Fix bugging
  • Add bugging mode
  • Fix bug with notify
  • Fix bug when send notify
  • Fix bug when send notify
  • Delete LOG
  • Fix conversion error
  • Fix bug with Google Anal
  • Fix bug
  • Add Pay Version
  • Add Pay Version
v2.0.0, from 06.08.2021 Show
2 0 1 36
  • Refactorin, change FB version, add new document_id to google
  • Better clear GA
  • JS Bugs and Not Admin User Bugs
  • Fix error with google ID
  • Add translate
  • Fix bug when add placement
  • Dont sent ctransaction, if dont need
  • secure:Delete Robot when deleted conversion
  • Add Placement
  • Fixed error
  • Refactoring and add Google fiches
  • Add Contact and Product Functional
  • Refactoring & Add Notify
  • Route to L8
  • Update UI framework
  • secure: Update to php 8
  • secure:Update Laravel to 8
  • secure: Dont loop robot
  • Start refactor
  • Update FB version
  • Remove test data
  • Add sDump
  • Fix GA Problem
  • Add new Error Handler
  • Ignore some handler
  • Fix bug with Admin reverse access
  • Update FB version
  • Optimize CSS and JS
  • Add Envoy Deployment
  • Opechatka
  • Change admin tooltip access to dynamical
  • Global Session
  • Add auto renewal messages
  • Add debugger
  • Moving Kassa to B24 Packeges
  • License problem
  • Send error to Telegram
  • Fix payment
  • Add Flamix.Kassa
v1.0.0, from 23.09.2020 Show
7 2 1 2
  • Add Languages
  • Add inv example
  • Remove composer.lock from git
  • Change Metrika Package
  • Change Metrika packages
  • Change Yandex Metrika Integrations (optimize)
  • Add Lang, change some route
  • Error MSG
  • Change interval to Uploading
  • Fix uploading to FG & GA
  • Hide Admin icon on MSG
  • Payments fix
v0.3.beta, from 04.09.2020 Show
0 1 1 3
  • Add Logs, change some UI
  • secure: Merge with gitignore
  • secure: add gitignore
  • Merge
  • Change License and Pay
v0.2.beta, from 12.08.2020 Show
0 0 1 1
  • Add Views
  • Server
v.0.1.beta, from 05.06.2020 Show
0 0 0 2
  • Api ready
  • Init
Client reviews
Alex A.

Top guys! Technically and design-wise, everything is top notch. The support speed needs to be improved :)

Anna G.

The stability and reliability of your applications for Bitrix24 never ceases to please us.

Julia R.

Thank you for your responsive support of your applications. You can always get the help you need.

Nikita O.

The only cart app that works reliably. Keep it up!

Andry G.

The only cart app that works reliably. Keep it up!

Serhat K.

Very convenient to use - from installation to purchase! I hope for stable work in the future.

Ros K.

Thank you for the improvements and prompt bug fixes!

Youtube: What is a Client ID and why is it needed?

When a client visits the site, the analytics system (Google Analytics, Facebook Pixel or Yandex Metrica) assigns a unique number to this visit, which is called Client ID!

This identifier is a basic property for identifying the user when transferring any information to the analytical system.

Full instructions, examples and SDK can be found on our GitHub.

Adding Client IDs via JavaScript is convenient if you don't have access to the source code of the site, for example, when using SaaS services (WIX, Tilda, etc).

1. In the site header, before the </head> connect the file (exactly this option, otherwise there may be problems with Google Adwords):

<script  type="text/javascript" data-skip-moving="true">
COPY content from file - https://static.flamix.info/js/conversion/script.js

2. As a result, in the browser Console, if you enter the variable UF_CRM_FX_CONVERSION, it should display its value: download.png

3. Below, add the following code, where .flamix-conversion input need be replaced with your form ID:

<script  type="text/javascript" data-skip-moving="true">
var UF_CRM_FX_CONVERSION = FlamixConversion.getPreparedParams();
	UF_CRM_FX_CONVERSION = FlamixConversion.getPreparedParams();
	var flamix_conversion_el = document.querySelectorAll('.flamix-conversion input');
	for (var i = 0; i < flamix_conversion_el_test.length; i++) {
	console.log('Flamix Conversion Plugin Works!');
}, 3000);
Youtube: Online chat integration (Bitrix24 Chat, Jivo, etc.)

Do you use online chat on the site? Integrate chat with Bitrix24 so that it can catch and transmit Client ID. See an example of Bitrix24 Chat integration.

<script  type="text/javascript" data-skip-moving="true">
COPY content from file - https://static.flamix.info/js/conversion/script.js
Youtube: Forms integration (Bitrix24 Forms, Google Forms, etc.)

If you use third-party forms on your site, then you probably want to send conversions from them. It's easy to do! See an example of Bitrix24 Forms integration.

<script  type="text/javascript" data-skip-moving="true">
COPY content from file - https://static.flamix.info/js/conversion/script.js

You can catch and transmit the Client ID when a client calls, if you have Call-Tracking. This instruction provides an example with call-tracking from Ringostat, but you can use any, the algorithm will be similar.

Ringostat example

Functionality for passing identifiers - https://help.ringostat.com/knowledge-base/article/tracking-entities


1. In the site header, before the </head> connect the file (exactly this option, otherwise there may be problems with Google Adwords):

<script  type="text/javascript" data-skip-moving="true">
COPY content from file - https://static.flamix.info/js/conversion/script.js

2. As a result, in the browser Console, if you enter the variable UF_CRM_FX_CONVERSION, it should display its value: download.png

3. Go to Tracked Entities and add a new entity:

  • Type - Expression
  • Collection Level - Session


4. In the Integrations → Ready-made integrations section, select Bitrix24, click Configure. In the fields for transmission, select the required field on the Bitrix24 side, and on the Ringostat side, select CUSTOM with the value UFCRMFXCONVERSION download-2.png

Youtube: Catch and transfer Client ID in popular CMS (WordPress, WIX, etc.)

If you already have an integration of your site with Bitrix24, then you can ask the programmer to add one field (Read how to do it), or make a new integration that already knows how to pass the Client ID (Show list).

If you do not yet have integration with the site, we recommend that you integrate the site using our plugins, which already capture and transmit the Client ID (Show list).

To write to support (add a ticket), you must:

  • Go to the portal https://cp.flamix.solutions/
  • Enter your mail and password. If you have not registered before, you need register. If, when you try to register, the system says that the user is found, you must reset the password;
  • After successful authorization, click on the "Support" menu item, then the "Add" button;
  • Describe the error in detail, attach screenshots and click the "Submit" button.

The ticket has been successfully created!
It is recommended not to close the tab until the problem is resolved since emails with replies sometimes end up in spam!

Youtube: How to install a module and activate free 30-day trial?
  • Go to the module page and find the "Install" block;
  • In the field next to the "Install" button, enter your Bitrix24 portal domain and click the "Install" button;
  • Accept all agreements and click "Install";
  • Click the button "Start Your Free Trial" (1), or paste your license key (2), if you have one;
  • If you have activated the trial, be sure to enter your valid email, this is where we will send the license key (check the spam if you did not receive it).
  • Open the application in the Bitrix24 portal, go to the "License" page (1) and select the desired subscription period (2).
  • Go to the license verification page - https://flamix.solutions/license/ (1) and enter your license key (2), click the "Check" button (3). If the license key is correct, you will see the "Prolong" button at the bottom (4).

A 20-25% discount is given to anyone who purchases a yearly subscription. You can find the discount amount on the "License" page of the application.

Special prices if we become your Bitrix24 partner. In addition to the special price, and free setup, we can make basic settings for you, and advise on any issues related to the operation of Bitrix24 or the development and optimization of your business's Business Processes. The only thing you require is to buy Bitrix24 through us (the same price, additional benefits from the Bitrix24 gold partner). Write to us if you are interested in this offer.

Note! If you already have an integrator, we can’t become your integrator again even if you want to change it.

Youtube: How to open and send log files

When something goes wrong or you need to send logs to support, then you need to follow these steps.

  • Open the app and scroll to the bottom;
  • Click on the "Log" link.

log_1.png Here you can see all the information that we log. If you are a technical person, you can check the logs and find the problem.

In addition, we sometimes request a link to the log. To generate it, you simply press the "Generate link" button. Copy and send this link to us. The link is valid for 2 days.


Have you extended your license, but the term has not changed? The license key is cached upon purchase and is only reset upon automatic renewal. If for some reason it did not last, try to throw off the license cache in billing(Licenses are displayed on the Services -> Licenses page) and update the "License" page in the module.


If that doesn't work, please write to support.

An Enterprise license is required in the following cases:

  • You regularly more than 500 hits to the plugin per day;
  • We need a modification of the Bitrix24 plugin for you;
  • You want the program to work on your servers.


  • We sign NDA and service contracts;
  • We allocate a separate VPS for you;
  • Setting up environments, deploying a repository with a plugin (if you need support and updates);
  • We send separate assemblies of plugins for CMS or set up the integration ourselves;
  • We organize monitoring and support 24/7.

For purchasing write in any convenient way.

Important! We do not share the code with the customer.

What are conversions for?

Conversions are necessary to teach Google or Facebook AI to make automatic bids depending on the chance of a purchase. We have an article detailing how it works ( link in the description below).

In a few words, this can be explained as AI analyzing a large amount of statistical data about the user (for example his age, region, and interests) and other data (time, weather etc) and after that builds neural connections between the dependent data of those buyers who bought. The more buyers and for a BIG amount with a certain set of data make purchases, the stronger connection will be. Based on these neural connections, when users search for a product, the AI evaluates the chance of purchase and selects the optimal bid for participation in the auction.

For example. This is how any auction in the real world works, the higher the bid, the higher the position and the chance of a user going to your site increases. You will be the last here, or you can burn the budget and be the first. But if you have transferred enough data and AI determines that, for example, people in this age category from this region with such interests buy often, and people in the 65+ category with the same interests very rarely, then AI will set the desired bid amount and in the first case you will the first, and in the second you will be the last or will not take part at all.If you do not believe that the advertising system collects your interests and sorts into categories, then follow the link and you will see all the information about yourself - https://adssettings.google.com/

What is offline conversion?

There are excellent official articles from Google and Facebook, in which everything is described in detail (link in the description below). From myself, I want to explain with a simple example what it is. Imagine that you have a simple website with an order form. Most people set form submission as a successful conversion. In fact, a successful conversion should be paid for your work or product. If 100 people visited your site, 10 of them left a request, and you sent offers to all of them, but after some time only 2 bought, then it is reasonable to tell Google and Facebook who exactly bought, and not who filled out the form.

How it technically works

Okay, just imagine that client visits your site. At this moment Google Analytics and Facebook Pixel will assign the special ID and put it in the Cookies file. Okay, when a customer makes a purchase or submits a request, we must catch his Client ID and transfer it to the CRM with all other data. When the order is marked as successful in Bitrix24, we will send information to Google and Facebook that the user with this Client ID actually bought some products or services. If the same client bought from us again, we will already know his Client ID and can just re-send conversions with the same Google Client ID. For Google, you don't need to send UTM tag or name of the client, because he already knows this info. We only report that this customer makes event purchase with some products and send transactions.

CRM conversions make value

CRM knows everything about the client - when, what and how much the client bought. By passing this information on the fact of the occurrence of events, you are passing on the conversions that have already occurred with the exact amount.

For example, the popular "Submit form" conversion does not guarantee that the customer will be the target and make a purchase, so the cost of this conversion is not transmitted. If the site has several services/products with the same form (for example, the "Call me back" form), then for the advertising platform the conversion of this form is the same for the entire site, whether it's an expensive VIP service or a free consultation. If you "teach" the advertising platform for such conversions, this may lead to the fact that the advertising office will send you low-quality leads. In the case of CRM, ordering a call through the "Call me back" form is not recorded as a conversion until the client completes a transaction for a certain amount.

How to choose an event code

Now that you have a complete understanding of how this works, let's talk about how to choose an event name. In the example, we chose PURCHASE and I may not have explained why. So, all events on Facebook are divided into standard and others. The only difference is that standard events are default conversions. This means that standard events, in our case conversions, you can use to optimize your ads. Let's look at our example. We have chosen PURCHASE. We find this event in the list of standard events, the link will be in the description under the video. Here we can see what this standard event means, and very importantly, what required fields you must sent. Of course, we recommend using the standard events. But if in your case there is some kind of non-standard event, you can always equate these events with conversion.


Facebook does not have real-time report functionality, so you need to wait a few hours. Here we see that Facebook received our Purchase event, recognized it as standard and set “Event match quality”. Here you can click and see what data you are transferring. About what data can be transmitted and how it is formed, read the article under the video.

Show text