FAQ
Managing profiles subscriptions
Are people who unsubscribe not by the link in the letter, but in the mail service interface, marked as unsubscribing?
Yes, if mail service supports special header, which is transferred into the letter.
Global unsubscription is performed, if resource was not chosen before mailing.
Resource unsubscription is performed, if resource was chosen before mailing.
Why the profile status is changed when unsubscription from non-resource mailing is performed?
If the mailing is performed without selecting resource, global profile status is used.
If the user will subscribe again, will he restore from the suppression list?
No, if the mailing was performed without resource, or with the same resource. Use API to restore him.
In future, we recommend to use several resource subscriptions.
What is resource identifier?
Resource is the mailing source by one or several channels. For example, one website - one resource.
Resource identifier is a number, which is displayed next to its name. It is used in API queries.
What is the difference between suppression list and unsubscription?
Suppression list and unsubscription are different things. Suppression list is commonly used for temporary exception from the mailings, like the situation when content will have negative reaction from the subscribers.
How can we manage subscription confirmation for users, who can see only text version?
They can also have the link. You can set its name like <name="Name">. Part in angle brackets will not be displayed while mailing.
What essences can be marked with tag in the platform?
You can mark databases, segments, channels, templates, scheduled imports, suppression lists, mailings, campaigns, workflows, promocodes, summary reports.
Why does the number of unsubscribe link clicks not match the number of unsubscribes?
A user can unsubscribe not only via the link in the email, but also through the service interface (e.g., by clicking a button). These actions are not always tracked as link clicks. As a result, the total number of clicks may differ from the number of actual unsubscribes.
Managing databases
How can developer configure data exchange with the website?
Developer must be provided with API token and link to documentation page — see User API.
Can we upload database without email addresses? For example, for SMS mailing.
Yes, you can. Select coincidence by profile email address. This field will be filled with data like "ID@localhost".
Profile identifier will be generated by the platform.
How can we spot subscriber territory or country?
The platform can spot geolocation by IP address.
What field type can be used for currency?
Unfortunately, there are no fractional fields in the database. Use integer type.
How can we transfer resource subscriptions during profile import?
You can include subscriptions array into the data object during subscriptions import like:
subscriptions": [
{
"resource_id": 46,
"channel": "email",
"email_data": {
"email": "example_email@example.org",
},
"priority": 0,
"status": "subscriber"
}, ...
Or simple option:
subscriptions": [
{
"resource_id": 46,
"channel": "email",
"email": "example_email@example.org",
"priority": 0,
"status": "subscriber"
},
Can we transfer several profiles in one API query for profile import?
For several profiles import, use Massive profiles import.
How can we clear the database?
Use API query to clear the database.
Also, you can clear the database using query to MongoDB.
Can we spot devices, OS and browsers used by customers?
Information is collected in the User Agent field in customer profile.
How can we create the field, which displays customer's interests in different categories?
You can create "Tags" type field in the database. Tags can be added and removed manually, using APIs and workflows.
How can we clone the database with all its profiles and subscriptions?
When cloning the database, only its structure is copied. For copying profiles, press "Copy profiles" button, and after that you will be suggested to select the segment.
If i upload customers from the database, will email addresses be uploaded from the profile or from the profile subscriptions?
You can export only encrypted subscriptions. By default, all profile subscriptions will be exported. In the export menu, you can configure, what subscriptions will be considered.
Why does the report metric not match the number of profiles in the segment?
Reports are based on events, not individual profiles. A single profile can generate multiple identical events — for example, clicking a link twice or opening an email multiple times. In such cases, the event count exceeds the number of unique profiles in the segment.
Why doesn’t the static segment recalculate automatically?
A static segment does not update automatically — it is a fixed list of profiles formed based on the specified conditions at the time of creation. If the data in the database has changed, the static segment must be recalculated manually. To do this, click the "Recount button at the top of the segment editor.
When recounting, only the current filters will be used. Profiles added or removed manually will not be preserved.
Managing mailings
What is mailings queue used for?
It displays present mailing status for certain mailing.
How can we send mailing to subscribers, who did not receive it?
You can create the segment and select customers, who did not receive the message.
Is there a global limit of mailing amount to one customer in a day or a week? Can it be ignored for some messages? How can we configure it?
Yes, it is called Sending policy. It can be set for a resource or for the account. If necessary, it can be changed in some mailings.
How can we send the mailing partially?
You can set limits for sending in the mailing.
I open the letter and put it into spam, why the complain is not displayed in the report?
Perhaps, FBL/CFL was not configured. Contact your system administrator.
Can we have an example of API query for trigger sending to several subscribers?
{
"token": "e00c3da0a53e4e54a795da58701f4d70",
"id": 5511,
"custom_request": {
"Custom_ID": {
"$in": [
"IpHicQquekzYkufl", "xzFKLXeaJkCYHuMb", "SRNOwHVZiWFItJhr"
]
}
}
}
Can we use blind carbon copy during sending mailings?
Yes, Altcraft Platform supports BCC in messages. To use it, see mailing Smart settings and enter address for BCC in Send hidden copy to these addresses block.
Managing message templates
How can we use data tables?
See Using content from SQL database in the messages.
Managing scenarios
How does the profile move through the scenario if the mailing element failed to send a message?
If sending a message ended in an error (e.g. due to a technical reason), the profile automatically moves to the next element according to the scenario.
How does the profile move through the scenario if there is an error in the element of an API call, profile update or condition?
If an error occurs in the element and the scenario does not provide a separate exit for error handling, the profile will be excluded from the scenario. This is done to prevent incorrect execution.
The HTTP element supports error handling — if a request fails, it can retry or send the profile along an alternative path.
What happens if you delete the element where the profiles reside?
If an element is deleted during scenario execution and it contains active profiles, such profiles will be immediately excluded from the scenario.
How to see the apicontent of a profile?
To view the apicontent of a profile, hover the cursor over the desired element in the scenario. An icon with a number above it will be displayed - this is the number of profiles in the element. Click on this icon to open the list of profiles. In the opened window you can see the data of each profile, including the apicontent block, if API requests were used in the scenario.
Recommendations for managing scenarios
-
Try to avoid conditions with negation (e.g. "is not equal") - it complicates the logic and reduces the visibility of the scenario.
-
It is recommended to filter out most of the profiles already in the start element to minimize unnecessary load on the scenario.
-
Use static segments.
Other
Not all functions are available in the interface.
Contact platform administrator for turning Smart settings on.
What coding is used for files import?
UTF-8 coding is used.
How can we download the report?
Select Tasks in the main menu.
Is it possible to automatically update profile fields during event transfer into the platform?
Yes, you can use workflows for this.
Why are there no complains in the report?
FBL must be configured for complaints display in the report.
Complaints are processed with automatic subscription change.
What is pixel? What is it used for?
Pixel is a script, that send query to the tracking server, when subscriber performs any actions on the website or in the application.
Pixel can transfer information related to this action, like website address, which is subscriber source, achieved goal and others. This information is written into every pixel code and it is transferred in profile history. Achieved goals and action price can be used for segmentation, including automatic segmentation in the workflows.
Also, pixel information is used in "Pixels" and "Goals" reports.
Is it possible to make segment by User-Agent parameter?
Yes, it is divided by Browser/Platform in the segments.
Promocodes import and generation buttons are not available.
You need to save loyalty program first.
The file name in the attachment in emails has incorrect name.
The problem can be resolved by the following methods:
-
Reinstall Outlook from the Standard package.
-
Configure the Outlook client: use UTF-8 for the Outgoing message encoding parameter.
- In Outlook select File -> Option -> Advanced.
- In the International options section, set the Preferred encoding for outgoing messages option to UTF-8.
-
Avoid using Russian characters in the file name.
-
Consider using a different version of Outlook.
How are email opens and reads tracked?
At the end of each email, two invisible 1×1 pixels are automatically added: an open pixel and a read pixel.
Open pixel — when this pixel loads, the platform records an email open event.
Read pixel — placed after the main email content. When this pixel is requested, the server keeps the HTTP connection open for up to 12 seconds and measures how long the mail client holds the connection. Based on the connection duration, the event type is determined:
- Glanced: 0–4 seconds
- Skimmed: 4–8 seconds
- Read: 8+ seconds
If the connection is closed before 12 seconds (for example, the recipient closed the email), the actual viewing time is recorded and the corresponding event type is registered.
Open, glance, skim, and read metrics depend on the loading of tracking pixels in the email. Some mail clients and proxy servers may block or proxy images, which affects the accuracy of these metrics:
- Image blocking (Outlook, Thunderbird by default) — pixels do not load, opens are not recorded. Solution: add the tracking domain to the exceptions list.
- Proxy servers (Gmail Image Proxy, Apple Mail Privacy Protection, corporate proxies) — load pixels through a proxy, which records the open but does not allow measuring viewing time (glanced/skimmed/read).
- Gmail prefetching — may load images before the email is actually opened (preview pane).
For accurate engagement assessment, it is recommended to use click metrics (CTR), which do not depend on tracking pixels.
How is a profile’s geolocation tracked?
A profile’s geolocation is determined by its IP address at the moment the email is opened or an action is performed.
Sending priorities
Can a specific mailing be marked as priority?
Yes, but not for every mailing type. The Highest priority option is available in trigger mailings and in mailing nodes inside scenarios: messages of such a mailing are routed to the channel's priority queue and are processed first, even if regular messages were queued earlier. Bulk mailings have no priority option — they are always sent in the regular order.
For details on sending priorities, see the Trigger mailing article.
Will a high volume of trigger messages slow down bulk mailings?
No. Priority and regular messages are sent through two parallel queues, not one shared queue. The channel's priority queue receives test messages and messages of mailings with the Highest priority option enabled — the option exists in trigger mailings and in mailing nodes inside scenarios, and in high-priority scenarios it is enabled automatically. The rest of the messages go to the regular queue. Sending services drain both queues at the same time, so bulk mailings keep going while trigger messages flow — just slower. Once the priority queue is empty, bulk mailings return to full speed.
At the MTA level, a budget of SMTP connections applies to the sending period: when it is exhausted, only priority messages are sent until the end of the period. This protects trigger mailings from bulk ones, not the other way around.
Is the priority queue shared across all cloud clients? Can a neighbor with their trigger flow occupy it?
Bulk mailings are broadcast and regular mailings. They never enter the priority queue: they have no Highest priority option, so a neighbor cannot occupy it with bulk traffic. The flow of other clients' trigger messages does share the common priority queue, however:
- the priority queue is always drained first and through a dedicated pool of workers — a separate setting independent from the regular one;
- at the sending level the queues are isolated: for email — a separate pair of queues for each IP pool or client sender; for SMS and Push — separate priority queues per channel with a common rate limiter;
- custom channels offer the Dedicated queue option — the channel gets its own queues, which fully isolates it from other channels and clients.
How much faster do priority messages arrive? Is there an SLA?
There is no formal SLA — the speed depends on the volume and channel limits. Priority messages still travel a dedicated path: the priority queue and the dedicated pool of workers, so they do not wait behind bulk mailings.
Trigger event latency and queue depth are measured by metrics in Grafana — use them to monitor the speed and set your own benchmarks.
What happens to messages already in the queue when the dedicated queue is enabled or disabled?
Messages are not lost in either case:
- Enabling. Messages already in the shared queue are processed as usual, while new ones go to the dedicated queue. Consumers of the dedicated queue start automatically.
- Disabling. New messages return to the shared queue. Messages remaining in the dedicated queue are not lost — the queue is not deleted, they can be drained or moved to the shared queue manually. It is recommended to disable the option after the dedicated queue is empty.
For details on toggling the dedicated queue, see custom channel limitations.
Does on-prem require extra setup for priorities to work?
No, priorities work out of the box after upgrading the platform to a version with this feature. Queues are created automatically on first use, and consumers of priority and dedicated queues start automatically when a channel with the flag appears. It is enough to enable the needed options in the interface: Dedicated queue on a custom channel, Highest priority in a trigger mailing, a mailing node, or a scenario.
Scenario prioritization does not require a separate setup: if no dedicated host is configured, high-priority workers are automatically created on the master. If necessary, high-priority workers can be deployed on several hosts: the HIGH_PRIORITY_WORKERS parameter is set independently for each host of the cluster, and a host with it runs a doubled pool of workers — separate priority and regular ones.