UniSender for Bitrix: Email Marketing & Transactional Emails

UniSender for Bitrix: Email Marketing & Transactional Emails Manual export of subscriber lists, losing leads after unsubscription, lack of connection between an order and the subsequent email — these are typical problems with email marketing on Bitrix. Clients waste up to 10 hours per month on sy

Our competencies:

Frequently Asked Questions

UniSender for Bitrix: Email Marketing & Transactional Emails

Manual export of subscriber lists, losing leads after unsubscription, lack of connection between an order and the subsequent email — these are typical problems with email marketing on Bitrix. Clients waste up to 10 hours per month on synchronization, and deliverability drops due to incorrect configuration. A typical scenario: after placing an order, the client does not receive confirmation; the manager manually sends the email. Or a subscriber unsubscribes but continues to receive newsletters because of missing synchronization.

We solve these problems in 2–3 days by setting up a seamless data exchange via the UniSender REST API. Experience: over 50 completed projects. Integration pays for itself in 2–3 months due to automation.

Why UniSender is the optimal choice for email marketing?

UniSender is a Russian service with deliverability to Mail.ru and Yandex.Mail 1.2 times better than foreign alternatives. Simple REST API, clear documentation, and flexible pricing. Unlike Mailchimp, it does not require domain verification and works without delays with Russian mail systems. Stable operation under loads of up to 500 contacts per request.

How contact synchronization works

Synchronization is based on the importContacts method. Example API client implementation:

class UniSenderClient { private string $apiKey; private string $baseUrl = 'https://api.unisender.com/ru/api/'; public function __construct() { $this->apiKey = COption::GetOptionString('site', 'unisender_api_key'); } public function importContacts(array $contacts, int $listId): array { // Batch import up to 500 contacts per call $fieldNames = ['email', 'email_list_ids', 'Name', 'Phone']; $fieldValues = []; foreach ($contacts as $c) { $fieldValues[] = [ $c['email'], (string)$listId, $c['name'] ?? '', $c['phone'] ?? '', ]; } $http = new \Bitrix\Main\Web\HttpClient(); return json_decode($http->post($this->baseUrl . 'importContacts', [ 'api_key' => $this->apiKey, 'format' => 'json', 'field_names' => $fieldNames, 'data' => $fieldValues, 'overwrite_tags' => 1, 'overwrite_lists' => 0, ]), true); } } 

The importContacts method is the main one for mass synchronization. Up to 500 contacts per call. For exporting the entire database, we split into batches. For subscribing a new user, we use subscribe with double opt-in: a confirmation email is sent automatically. If a contact unsubscribed, the status is updated upon resubscription.

How to set up triggered emails after an order?

After an order is placed, we send a series of transactional emails via UniSender Automation. We use the OnSaleOrderSaved event:

AddEventHandler('sale', 'OnSaleOrderSaved', function($order) { if (!$order->isNew()) return; $email = getOrderEmail($order); // Send transactional email via UniSender $client = new UniSenderClient(); $client->sendEmail([ 'to' => [['email' => $email, 'name' => getOrderName($order)]], 'subject' => 'Order #' . $order->getId() . ' confirmed', 'body' => renderOrderEmailTemplate($order), 'list_id' => UNISENDER_TRANSACT_LIST_ID, 'sender_name' => 'Store', 'sender_email' => '[email protected]', ]); }); 

We also set up a subscription handler via OnSubscribeSubscribe:

AddEventHandler('subscribe', 'OnSubscribeSubscribe', function($id, $email, $fields) { $listId = COption::GetOptionString('site', 'unisender_list_id'); $client = new UniSenderClient(); $client->subscribe($email, $listId, [ 'Name' => $fields['NAME'] ?? '', 'Phone' => $fields['PERSONAL_PHONE'] ?? '', ]); }); 

The subscribe method adds a single contact and sends a confirmation email (double opt-in) if this option is enabled in UniSender. On API errors (e.g., rate limit exceeded), we implement retries with exponential backoff to avoid data loss.

Deliverability analytics and monitoring

UniSender provides statistics via getCampaignStatus and getCampaignCommonStats. We retrieve data for each campaign and log them into a custom Bitrix infoblock for trend monitoring. We track open rate, CTR, bounces, and unsubscribes. If bounce rate exceeds 5%, we automatically stop the campaign and notify the marketer. This helps maintain a clean database and high deliverability.

Getting contact status

Before creating a campaign, it is useful to know the subscriber's status — active, unsubscribed, etc.:

public function getContactStatus(string $email): string { $http = new \Bitrix\Main\Web\HttpClient(); $response = json_decode($http->get( $this->baseUrl . 'getContact?api_key=' . $this->apiKey . '&format=json&email=' . urlencode($email) ), true); return $response['result']['status'] ?? 'unknown'; // 'active', 'unsubscribed', 'bounced', 'spam' } 

We use it when processing an order: if the buyer is unsubscribed, we do not add them to new mailing lists.

Common problem: emails landing in spam

Emails end up in spam — this is solved by setting up SPF records and using a dedicated IP. UniSender provides tools for reputation checking. We include this in the integration.

Comparison: UniSender vs foreign services

Criteria UniSender Foreign (Mailchimp, SendGrid)
Deliverability to Russian mail systems 95–98% 70–80%
Domain verification Not required Mandatory (DKIM, SPF)
Adaptation for Russian mail systems Full Partial
API documentation in Russian Yes No
Double opt-in support Built-in Configurable

How we integrate: step by step

  1. Analyze the current subscriber database and email scenarios.
  2. Set up the API client on the Bitrix side.
  3. Implement contact synchronization (subscribe/unsubscribe) via events.
  4. Create trigger emails for order, registration, abandoned cart.
  5. Integrate UniSender statistics into Bitrix infoblocks.
  6. Test deliverability and make adjustments.
  7. Train staff and provide documentation.

What's included in the work

  • API client configuration and authentication setup
  • Contact synchronization implementation (subscribe/unsubscribe)
  • Trigger email creation for events (order, registration)
  • UniSender statistics integration into Bitrix infoblocks
  • Documentation of customizations and staff training
  • One month of support after launch

Estimated time requirements

Task Time
API client + subscription handlers 3–5 h
Batch export of subscriber database 3–4 h
Transactional emails for events 4–6 h
Analytics collection in Bitrix 3–4 h

Completion time: 2 to 5 days depending on complexity. Cost is calculated individually after analysis of your project. Order a turnkey implementation with a result guarantee. Get a consultation on integration — contact us, and we will estimate the scope of work.