Skip to main content
Altcraft Docs LogoAltcraft Docs Logo
User guide iconUser guide
Developer guide iconDeveloper guide
Admin guide iconAdmin guide
English
  • Русский
  • English
Login
    User documentationGetting StartedFAQAltcraft glossaryPlatform limits
      Profiles and databasesarrow
    • Subscription resourcesManaging databasesSubscriber profileProfiles import and data updateCommon Errors When Importing ProfilesScheduled customer data importManaging Data TablesAutomatic data collectionBulk customers profiles updateDouble opt-in subscriptionSuppression listsProfile relationsProfile history exportProfile exportCreating a static segment based on import resultsHow to open a CSV fileMatchingTypes of fields in the databaseGlobal control groupsSubscription Manager
      Communication channelsarrow
      • Email channelarrow
      • Email: ISP interactions best practices
          First mailingarrow
        • Quick StartEmail
        Email: sending domain configurationEmail: setting up and using postmastersHow email tracking works
        Push Channelarrow
        • Mobile Pusharrow
        • First Mobile Push Mailing
            Mobile Push Providersarrow
          • Firebase Cloud MessagingApple Push Notification ServiceHuawei Mobile ServicesRuStoreYandex.AppMetrica
          Integrate your app with Altcraft
            Deprecated: Manual Push Setuparrow
          • Deprecated: Setup and ConnectionProcessing and adding a subscriptionEvent registrationProviders: push message structure
          Web Pusharrow
        • First Web Push MailingResource and Website Setup
            Web Push Providersarrow
          • Firebase Cloud messagingApple SafariMozilla Services
          Transferring Data to the PlatformWeb Push SDK MethodsPWA and Push Notifications
            Migration and Subscription Transferarrow
          • Migrating push subscriptions from third-party servicesHow to transfer push subscriptions configured for Safari?Migration from OneSignal
        Push token deactivation
        SMS channelarrow
      • SMS
        In-Apparrow
      • First In-App PlacementSDK Setup and Integration
      WhatsAppViber*™
        Telegramarrow
      • Telegram BotTelegram Group
        Maxarrow
      • MAX BotMAX Group
      NotifyCommunication Channels WorkflowРуководство: SMS-рассылка через VK NotifyРуководство: SMS-рассылка через УТШРуководство: push-рассылка через сервис от "Согласие"
      Segmentationarrow
    • Static SegmentsDynamic SegmentsUpdatable Segments
        Segmentation Conditionsarrow
      • Segmentation by Profile dataSegmentation by Interactions with EntitiesSegmentation by Activity of the channel
          Segmentation by external dataarrow
        • Segmentation by external dataSegmentation by external SQL tablesRecommendations for segmentation by external data
        Segmentation by Profile structure
      Best Send Time (BST)Logical operators "AND" and "OR"Recommendations for working with segments
      Message templatesarrow
      • Working with message templatesarrow
      • Working in the editorEmail templateSMS templatePush templateTemplate for In-AppMAX templateTelegram templateWhatsApp templateViber templateNotify template
        Visual editor for email-templatearrow
      • Visual editor interfaceAdding blocksElements and their settingsCustom blocksElement stylesLayer manager
      Template fragmentsImage galleryContent personalizationCreating tables based on array elementsBlock editor for email template
        Altcraft Variables and Functionsarrow
      • Logical expressions in messagesLoops in messagesMarket variables in templatesUsing the JSONPath functionality
        Dynamic content in messagesarrow
      • Dynamic HTML contentDynamic JSON contentContent from SQL database in templatesDynamic API content
      Importing and exporting a message templateImporting a template from a third-party serviceExporting a template from Pixcraft
      Mailingsarrow
    • Broadcast mailingsTrigger mailingRegular mailingMultivariate testingMailing testingMailing schedulePlacementsMailings calendarMailing log — errors and troubleshootingManaging the Sender Queue
      Automation scenariosarrow
    • Managing scenariosScenario NodesClassic marketing scenariosStep-by-step welcome scenario guideScenario for automatic notification of the managerAbandoned cart scenarioCycle Handling in Automation ScenariosHigh-priority scenarios
      Campaignsarrow
    • Working with CampaignsLocal control groups (LCG)Stratification violation error when limit is reachedAudience expansion in campaignsAudience building
      Marketarrow
    • Market settings
        Productsarrow
      • How to create a product manuallyHow to import a product from a fileScheduled product importProduct and SKU SegmentsPreparing the YML file
      OrdersMarket variables in message templateGuide: how to send an order confirmation email
      Loyalty programsarrow
    • Loyalty programsLoyalty integration with external systemsCreating a loyalty program from scratchBasic loyalty program use casesOrder SegmentsPromotion codes
      Reports and analyticsarrow
    • Channel reportTraffic report
        Summary reportarrow
      • Summary report metrics
      Cohorts reportLifetime reportFunnels reportGoals reportAudience growth reportClick map reportLoyalty programs reportBounces reportUndeliveries reportReport on global control groups
      Weblayersarrow
      • Formsarrow
        • Create a formarrow
        • General settingsForm customization with custom codeForm constructorAppearanceActions and form publicationConditional logic in forms and surveys
        Data analyticsBinding data channel and formsNPS testing
        Pixelsarrow
      • Goal customer actions and scoring
        Pop-upsarrow
      • Creating and publishing a pop-upSetting up a popup in the code editorManaging pop-ups manually via scriptPopup analyticsGuide: pop-up for push subscriptionsCase: Creating a pop-up with the "Wheel of Fortune" widgetBasic cases of placing a popup via the Tag Manager
        Tag Managerarrow
      • Configuring and installing Tag ManagerTrigger typesVariable typesLinking a pixel and the Tag manager
      Settingsarrow
    • Account settingsCustom linksVirtual sendersSending policiesAudit journalTags FAQ
        Connectionsarrow
      • Connection to Facebook AdsConnection to Google AdsConnecting to Yandex.Audience™Connection to 360dialogConnection to EdnaConnection to Devino TelecomConnection to SMSTrafficConnection to VK Ads™Connection to MTS OmniChannelConnection via OAuth 2.0Basic Authentication connectionToken Authentication connectionCustom Authentication ConnectionConnecting to MAXConnection to NotifyConnection to Rapporto
        Users, groups and accessarrow
      • Password and login securityTwo-Factor Authentication (2FA)
      Attribute settings
      Integrationsarrow
    • Facebook Ads Manager
        Yandexarrow
      • Yandex AppMetricaYandex.Audience™
      Google Ads AudiencesWhatsAppStatic segment synchronizationViberVK AdsNotifyMAX
        Action hooksarrow
      • Lpgenerator™Tilda™Altcraft Action HooksAction hooks event typesEvent Capture Message StructuresJSON batch request (HTTP POST action hook)Message to RabbitMQ brokerMessage to RabbitMQ exchangerMessage to Kafka brokerTest event
        Integration of third-party services using Albatoarrow
      • Connecting Altcraft to Albato Launching the welcome scenario using AlbatoTransmitting event dataSetting up a trigger mailingEvent registrationGoogle Sheets and Altcraft integration AmoCRM and Altcraft integration
        Additional Informationarrow
      • Integration scopeData Transmitted During Synchronization
      API requests: where to startarrow
    • Import or update a profileTrigger mailing launchEngage profile in scenario
      Changelogarrow
    • v2026.3.79v2026.3.78v2026.2.77v2026.1.76v2025.4.75v2025.4.74v2025.3.73v2025.2.72v2025.1.71v2024.4.70v2024.3.69v2024.2.68.2v2024.1.68
    Documentation archiveEmail Marketer's Library
  • Changelog
  • v2026.3.78

v2026.3.78

Reconfiguration required when upgrading to v2026.3.78

As of version v2026.3.78, deferred custom channel tasks are processed only by the master procpiper. For cluster installations, reconfiguration of main.json is required after the upgrade: add the CLUSTER.PROC_PIPER section and set the master flag (FORCE_MASTER_ROLE: true) on only one node — the same way procloyalty is configured. Until this configuration is set, deferred custom channel tasks will not be processed.

Example section:

"PROC_PIPER": [
{
"HOST_ID": "app1",
"RPC_HOST": "0.0.0.0",
"RPC_HOST_CLI": "app1",
"RPC_PORT": 8062,
"FORCE_MASTER_ROLE": true
},
{
"HOST_ID": "app2",
"RPC_HOST": "0.0.0.0",
"RPC_HOST_CLI": "app2",
"RPC_PORT": 8062,
"FORCE_MASTER_ROLE": false
}
]
Migrations required when upgrading to v2026.3.78

This update requires running migrations. If you have profile databases with more than 5 million profiles, increase the timeout in main.json before running the migrations:

"MONGODB_SOCKET_TIMEOUT_MIN": 360

Restarting the platform is not required — the parameter is needed to run the migrations. After the migrations are complete, restore the original value or remove the parameter if it was not set.

Manual installation
  1. Take the akd, aktool, and migrate binaries from the new build archive.
  2. For cluster deployments (multiple platform instances), stop the processes on all servers before the first migration run: ./akd stop webcontrol api procevent procloyalty proctask procworkflow.
  3. Run PRE-UPGRADE with ./akd upgrade. At the Unpack v78 and confirm [Y/n]: prompt, enter n to abort POST-UPGRADE.
  4. Update the platform and restart the nodes in the admin panel.
  5. Run POST-UPGRADE with the same command ./akd upgrade.
  6. Make sure all processes have started: ./akd start.
Docker
  1. Stop the platform container (on all platform instances).
  2. Run PRE-UPGRADE via docker run with ./akd upgrade, using the new image without starting the platform itself. At the Unpack v78 and confirm [Y/n]: prompt, enter n to abort POST-UPGRADE.
  3. Start the container with the new platform.
  4. Restart the nodes in the admin panel.
  5. Run POST-UPGRADE with the same command ./akd upgrade.

v2026.3.78.507 — Scenario priorities, unified segment condition editor, and fixes​

This update introduces scenario priorities, rolls out the unified segment condition editor across the rest of the platform, and makes the profile history API more informative. Platform stability and security have been improved, the loyalty program now works faster, and attribute handling has been improved.

Scenario priorities​

You can now mark the most important scenarios — for example, business-critical ones. Their tasks are processed first and do not wait in a queue behind others.

High priority checkbox in scenario settings

  • A High priority checkbox has been added to the scenario settings. Tasks of such scenarios are processed by dedicated workers; their count is set by the administrator in the cluster configuration (the HIGH_PRIORITY_WORKERS parameter). The configuration is validated: if the parameter is missing on some cluster nodes, it will be rejected.
  • Mailings inside a high-priority scenario are also sent on a priority basis — no extra setup is needed, the platform sets this automatically.
  • Changing a scenario's priority applies to new tasks only: profiles that are already in the scenario continue processing with the previous priority.

Unified segment condition editor​

The unified segment condition editor is now used in all places where profile selection is configured — conditions look and work the same in every module: funnels, profile relations, filtering mailings by channel fields, and profile capture in trigger scenarios by goals.

Profile history API enrichment​

The profile history API (subscribers/history_get and subscribers/history_get_all) has become more informative: events now return detailed data about related objects. For a goal (pixel), this includes its name and ID, captured data, referrer, utm tags, browser and user device. A complete picture of a profile's activity can now be obtained with a single request. Existing response fields have not changed — new data is added as additional fields, so current integrations will keep working without changes.

Read more: Get profile action history.

Added​

  • The campaigns/list API now supports a filter by template ID (message_id) — you can find all mailings that use a specific template. The response now returns complete information about each template: subject, sender name and email, reply-to address, template ID and name.
  • Push channel events now include the Read indicator — analytics on push notification reads is now available.
  • Added complaint handling from the Altcraft Cloud SMTP mail server — complaints about emails are correctly recognized and taken into account.
  • In the custom channel editor, an option has been added for external object (Entity) fields: "Do not use the field when sending a mailing". If enabled, the field data is not included in the sent message — this reduces the load when the field stores a large list of values.

Improved​

  • Improved stability: fixed crashes of internal processes that could make the platform unresponsive, and an error in the Market order import API. The loyalty program no longer stops due to lack of memory.
  • Platform updates now complete correctly even with non-standard configuration paths, background queues are processed faster, and database hangs after Market queries have been fixed.
  • Fixed a severe slowdown when sending mailings to many different domains — delivery speed no longer drops.
  • Fixed traffic distribution in a virtual sender: mailings are now sent strictly according to the configured percentages and groups.
  • Lists of participants and transactions in the loyalty program now load faster — they open quickly even with a large number of records.
  • Fixed points calculation in the loyalty program: the balance no longer goes negative when blocked points are debited, API data matches the interface, and the points expiration date is set correctly.
  • Improved attribute handling: when creating an attribute, the name and API name are auto-filled (e.g., new_field_1), the "add values from entities" function is enabled by default, and attribute conflicts produce a clear error message.
  • Fixed segment calculation errors: static segments correctly handle large data volumes, updatable segment calculation no longer fails, and numeric lists in dynamic segments and the "Relative to current date" condition display are fixed.
  • Optimized task execution in scenarios: fixed an issue where tasks could take several tens of hours to process; manual broadcast mailing launch is now distributed across the cluster and does not overload the system.
  • Fixed deactivation of a regular mailing with the "Active (Running)" status — without the "interrupt current sending" checkbox, the mailing now correctly switches to the "Inactive" status.
  • Fixed an issue where users with view-only permissions could not view platform objects.

Other​

  • Fixed duplication of delivery events when sending mailings through the Sendsay provider.
  • Fixed an error in the subscription manager: a subscription to a resource is no longer deleted if the resource is not added to the subscription manager.
  • Fixed form fill export: exporting for specific dates now creates one task instead of two; the data order in the export is preserved.
  • When exporting data and history from a profile page, all profile subscriptions are now exported.
  • Fixed UTM tag analytics in popups: tags are now correctly taken into account.
  • Fixed a login page error that could prevent the account from opening, and an endless reload loop when refreshing authorization.
  • When activating a broadcast, the "Active" checkbox no longer resets before the mailing is complete.
  • The segment condition selection menu in scenarios is no longer cut off.
  • In goal capture, the "in range" condition now supports a range of values (for example, a purchase amount from and to) — previously only a single value was available.
  • The mailing testing menu no longer shows invalid subscriptions.
  • Fixed custom channel operation: sending mailings with external objects, the params and out service fields became optional, added protection against duplicate tasks when running on schedule and queue settings in the listener.
  • Fixed encoding of event data values when inserted into links — Cyrillic and other special characters no longer break URLs.
  • Fixed event capture: data from one hook no longer leaks into the data of other hooks.
  • Fixed an error when creating cache tables for external SQL query results.
  • Fixed referrer registration in profile events.
  • Improved error diagnostics in the Soglasie SMS provider.
  • Fixed an error creating indexes in MongoDB that could cause data operations to hang.
  • Data sorting processes now terminate correctly and no longer accumulate on the server.
References

v2026.3.78.507: PL-22978 PL-22314 PL-22965 PL-22925 PL-22926 PL-22949 PL-22927 PL-22943 PL-22935 PL-22672 PL-22909 PL-22863 PL-22819 PL-22723 PL-22864 PL-22905 PL-22740 PL-22862 PL-22824 PL-22790 PL-22741 PL-22742 PL-22694 PL-22552 PL-22822 PL-22869 PL-22185 PL-22802 PL-22579 PL-22434 PL-19404 PL-22883 PL-22806 PL-22056 PL-22089 PL-21664 PL-22421 PL-22708 PL-22688 PL-22583 PL-22644 PL-22748 PL-22734 PL-22753 PL-22766 PL-22278 PL-22737 PL-22715 PL-22580 PL-22721 PL-22674 PL-22505 PL-22300 PL-22353 PL-20019 PL-21920 PL-22017 PL-14389 PL-22697 PL-22712 PL-22699 PL-22682 PL-22648 PL-22514 PL-22646 PL-22637 PL-22601 PL-22447 PL-22592 PL-22565 PL-22193 PL-22476 PL-22440 PL-21681 PL-22590 PL-22585 PL-22576 PL-22528 PL-22351 PL-21461 PL-20327 PL-19751 PL-22529 PL-18282 PL-18655 PL-22247 PL-22126 PL-21818

v2026.3.78.640 — Channel priority queues and fixes​

This update adds priority queues for all sending channels. The stability of segments, campaigns, mailings, and scenarios has also been improved.

Channel priority queues​

All types of sending channels now support priority queues: trigger and test messages go first, ahead of background bulk messages.

Priority also works for built-in channels — Email, SMS, and Push get dedicated priority queues on the provider side.

The custom channel settings now include a Dedicated queue checkbox: an enabled channel gets its own queue instead of the shared one.

Improved​

  • Updatable segment recalculation is faster: profiles are now fully counted only on manual launch and the first recalculation.
  • Push notifications via Firebase are sent faster: extra data has been removed from the sending queue, and delivery confirmation now takes noticeably less time.
  • Push event registration requests (post_events) are no longer interrupted by a timeout.

Other​

  • Fixed an issue where not all profiles were included in a segment.
  • Profiles no longer get stuck in the Condition node (dynamic segment membership check), and recalculation no longer hangs — including with an order filter and when the SEGMENT_SQL_ABSORB_QUERIES parameter is enabled.
  • Scenario processing tasks no longer hang.
  • Updatable segments no longer fail with unexplained errors or hang during recalculation, and the recalculation error text is now shown in the segment log.
  • Fixed campaign launch: the segment audience is no longer counted as empty, and profiles are correctly split into the test and control groups.
  • Removing profiles from the control group no longer puts excessive load on the database.
  • Sending is no longer blocked when the tariff is exceeded with no limit set, and mailings are no longer sent from a forbidden sender address.
  • Clicking a link in an SMS again no longer registers a duplicate delivery event.
  • Blocking unsubscribe for one resource category no longer blocks the entire subscription manager — only that category becomes unavailable.
  • Push delivery statistics are now more accurate: the "Device unregistered" error and RuStore delivery failures are now counted as permanent (hard bounce).
  • Segments and push mailing analytics let you select a specific link from a template — clicks on links in notifications are now tracked correctly.
  • In the profile history, the "Opened" and "Link click" actions now correctly show the device's push provider.
  • Fixed crashes of message processing during bulk push sending.
  • Custom channel templates no longer lose system form settings, templates with JSONPath in logical expressions are saved again, and processing of fields with bound external objects during mailings no longer fails.
  • Fixed variable auto-substitution: saving a template no longer replaces words in the email subject with variables.
  • Loyalty program points are now activated when the activation date arrives, and loyalty events no longer pile up unprocessed due to queue failures.
  • Points accrual events (points_accrual) now include the currency, and redemption for a promo code now carries correct transaction data.
  • The group of an account user can now be changed.
  • In the API, the error for a missing required parameter now points to that exact parameter, paginated subscription retrieval (subscriptions/list_all) no longer returns empty pages, and failed order imports now return external_id.
  • The channel reports page no longer fails with an error.
  • Fixed LDAP login: the platform no longer requests the entire group tree from Active Directory, and logging in to large directories is no longer interrupted by a timeout.
  • Platform stability and security have been improved.
References

v2026.3.78.640: PL-23474 PL-23524 PL-23257 PL-23447 PL-23462 PL-23277 PL-23450 PL-23115 PL-23088 PL-23240 PL-22635 PL-23465 PL-23251 PL-23327 PL-23361 PL-23400 PL-23328 PL-23371 PL-23340 PL-23285 PL-23175 PL-23054 PL-23122 PL-23296 PL-23205 PL-23159 PL-23244 PL-23260 PL-22629 PL-23089 PL-23150 PL-23090 PL-22547 PL-22347 PL-23100 PL-22505 PL-23111 PL-23117 PL-22946 PL-22744 PL-22849 PL-22745 PL-22808 PL-22792 PL-22791 PL-22804 PL-23023 PL-23005

Last updated on Oct 21, 2026
Previous
v2026.3.79
Next
v2026.2.77
  • v2026.3.78.507 — Scenario priorities, unified segment condition editor, and fixes
    • Scenario priorities
    • Unified segment condition editor
    • Profile history API enrichment
    • Added
    • Improved
    • Other
  • v2026.3.78.640 — Channel priority queues and fixes
    • Channel priority queues
    • Improved
    • Other
© 2015 - 2026 Altcraft, LLC. All rights reserved.