Set Up Push Notifications for 1C-Bitrix Mobile App

Set Up Push Notifications for 1C-Bitrix Mobile App Mobile applications built on 1C-Bitrix (Bitrix Mobile) include a built-in push notification mechanism. But without proper configuration, notifications don't reach users. We handle push setup from obtaining keys to custom scenarios with segmentati

Our competencies:

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Website development for FIXPER company
    995
  • 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
    733
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    863
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    772
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    1134

Set Up Push Notifications for 1C-Bitrix Mobile App

Mobile applications built on 1C-Bitrix (Bitrix Mobile) include a built-in push notification mechanism. But without proper configuration, notifications don't reach users. We handle push setup from obtaining keys to custom scenarios with segmentation and frequency control. We have extensive experience with Bitrix24 and have completed over 50 mobile app projects. A typical case: an e-commerce store with 10,000+ products where price-drop push notifications increased user return rate by 25%. Configuration took 3 days and included a custom scenario. Get a free project assessment from our engineers.

Why do push notifications stop working after the app is built?

Developers often encounter the situation: the app is built, published, but push messages never arrive. The cause is usually incorrect Firebase Cloud Messaging (Android) or APNs (iOS) keys, or improperly configured notification templates in the Bitrix admin panel. According to statistics, 60% of push problems are solved by correctly registering the keys.

Firebase Cloud Messaging (Android)

  1. In the Firebase Console, create a project and add an Android app with the correct bundle ID.
  2. Download google-services.json and place it in the Bitrix Mobile project.
  3. Copy the Server Key from Firebase Console → Cloud Messaging.

In the Bitrix administration panel: Settings → Product Settings → Mobile Applications → Push and Pull — paste the Firebase Server Key.

APNs (iOS)

  1. In Apple Developer: create an APNs Key (.p8 file), note the Key ID and Team ID.
  2. In Bitrix: paste the contents of the .p8 file, Key ID, Team ID, and Bundle ID.

After this, standard Bitrix push notifications (new order, status changes via standard events) will start working.

Comparison of FCM and APNs

Feature FCM (Android) APNs (iOS)
Key type Server Key (string or JSON) .p8 file with Key ID and Team ID
Security Requires additional SHA configuration Built-in certificate verification
Background delivery WorkManager/JobScheduler Background Task Framework
Token lifetime Can change on app update Stable until app uninstall
Deactivation of outdated tokens Automatic on FCM response Manual on HTTP 410 from APNs

How to implement custom push notifications for e-commerce scenarios?

For sending non-standard notifications (e.g., "Your order has been shipped" with tracking number or "Price drop on a wishlist item"), use the pull module and the \Bitrix\Pull\MobileNotify class. This built-in mechanism reduces development time by three times compared to manual WebSocket implementation.

use Bitrix\Pull\MobileNotify; // Notification about order status public function sendOrderStatusPush(int $userId, array $order): void { if (!\Bitrix\Main\Loader::includeModule('pull')) return; $message = [ 'module_id' => 'local.shop', 'command' => 'orderStatusChanged', 'expiry' => 3600, // seconds 'user_list' => [$userId], 'message' => "Order #{$order['ID']}: status changed to «{$order['STATUS']}»", 'params' => [ 'orderId' => $order['ID'], 'status' => $order['STATUS'], 'trackCode' => $order['TRACK_CODE'] ?? '', ], 'push' => [ 'sound' => 'default', 'badge' => 1, ], ]; MobileNotify::send($message); } 

In the mobile app (if custom-built with React Native), the event handler for module.local.shop.orderStatusChanged updates the order screen.

Price drop notifications (wishlist)

Trigger — an event handler for price updates in the catalog:

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'catalog', 'OnPriceUpdate', function (\Bitrix\Main\Event $event) { $priceData = $event->getParameter('fields'); $productId = $priceData['PRODUCT_ID']; $newPrice = $priceData['PRICE']; // Find users who have this product in their wishlist $wishlistUsers = WishlistTable::getUsersByProduct($productId); foreach ($wishlistUsers as $userId) { $oldPrice = $this->getLastNotifiedPrice($userId, $productId); if ($newPrice < $oldPrice * 0.95) { // discount > 5% $this->sendPricePush($userId, $productId, $oldPrice, $newPrice); } } } ); 

Segmentation and rate limiting

Mass push sending via Bitrix — done by iterating through users with a frequency limit. Users can disable certain notification types in the app settings. Bitrix stores device_token in the b_pull_client table, and permission status in b_pull_push_settings.

Rate limit: no more than 1 push of a specific type within N hours for a single user — implemented with PHP logic, check before sending.

if ($this->canSendPush($userId, 'price_drop', 24)) { // no more than once per day MobileNotify::send($message); $this->recordPushSent($userId, 'price_drop'); } 

Delivery monitoring

FCM and APNs return delivery statuses. Undelivered tokens (app uninstalled, device replaced) must be deactivated — otherwise the token table becomes cluttered. Bitrix handles FCM responses automatically when properly configured. For APNs with custom sending, check for HTTP 410 (token invalid) and delete the token from b_pull_client. Keeping the token table clean saves up to 30% of administrator time.

Work stages

Expand detailed work plan
  1. Audit of current infrastructure — check Bitrix version, pull module status, existing tokens.
  2. Obtain keys — register in Firebase Console and Apple Developer, generate keys.
  3. Configure Bitrix panel — enter Server Key, APNs keys, run test.
  4. Develop custom scenarios — write commands, events, integrate with mobile app.
  5. Testing — verify on Android and iOS, simulate delivery failures.
  6. Deploy and monitor — enable in production, track delivery for 2 weeks.

What's included in the work

  • Create Firebase and Apple Developer projects, obtain and register keys
  • Configure FCM and APNs in Bitrix admin panel
  • Test standard notifications (orders, statuses)
  • Develop custom push notifications: price drop, new promotions, reminders
  • Segmentation: send to user groups
  • Rate limiting, deactivation of outdated tokens
  • Integration documentation and access transfer
  • Delivery guarantee: monitoring for 2 weeks after launch

Timeline

  • Standard notifications: 1 to 2 days
  • Custom scenarios with segmentation: 1 to 2 weeks

Comparison of standard and custom approaches

Parameter Standard push Custom push
Setup time 1–2 days 1–2 weeks
Flexibility Only system events Any business scenarios
Segmentation No By groups, frequency, interests
Delivery control Via Bitrix logs Custom monitoring, retries

Get a free project estimate. Request an engineer consultation to discuss details.