User profile

The user profile page contains user details and user interface settings.

General settings contain:

1. The user first and last name.
2. Contact email address.
3. Interface language. (EN/RU)
4. Date and time settings:

  • %Y-%m-%d = 2000-10-21
  • %Y/%m/%d = 2000/10/21
  • %d/%m/%Y = 21/10/2000
  • %m/%d/%Y = 10/21/2000

Security settings allow to:

1. Find out date, time and IP-address of the last login.
2. Change the password.

Test messages settings:

1. Test email addresses - is used for delivery and message testing.

Notification settings:

1. Email address for reports.
2. Required events.

Additional settings:

1. Enable/disable interface sounds.
2. Reset column settings for all tables.


Master-users have full access to all account options, which include other users administrating.

Additional master-account options:

1. Main group access and full rights for a campaign launch and creating, editing and removing all groups objects.

2. Other user profiles administrations.

3. Access to account settings.

4. Roles, user groups and tokens change.

5. Group objects reassignment.

5. Tokens creating.

6. Rights for virtual senders creating and editing .

7. Integrations adding to an account.

8. URL keys creating and editing.

Profile settings

General settings are applied to the whole account and common for all users:

1. - All leads unsubscribe from all lists at first dash.

A subscriber unsubscribes from all lists, where his details are used.

2. - All leads unsubscribe from the whole account.

A subscriber unsubscribes from all lists, where his details are used.

3. SoftBounce max number - when a particular amount of SoftBounces is reached, a subscriber raises a HardBounce status and is removed from all mailings automatically.

4. Exclude the following domains - messages won’t be sent at emails, which contain the selected domains. This field is for top-level domains such as “.com”, “.net”.

5. Weekly report sending date - a week day, when users will receive report for the last week.

6. Report sending hour - a particular time, when users will receive a daily and weekly report.

Master-user receives a report on account groups activity, and a normal user - only on the activity of his groups.


The Users page contains all account users including master-user.

From this page you can edit any user profile. In the editing menu you will see additional profile settings, which are not available on the main page.

1. It is possible to change your password in the Security Settings without the old password confirmation.

2. Master - to assign the Master status to a user, you need to tick the Master box. Master can strip another Master-user or himself of the master-rights.

3. Active - to enable or disable a user, tick or clear the Active box.

3. Roles - determines user activities with system objects. For example, a user has rights to create messages, but he is not allowed to launch campaigns.

4. Groups - default users can see only inside group objects. All objects are assigned to the group, they were created in. The Main group is available for the Master. This gives the Master rights to work with all groups objects simultaneously.

A user may have several groups.

To create a group a user should enter its name to the box and by left-clicking choose - Add .

In case the last user has been removed from a group, all the group objects are still available for editing for the master-user.

If a group has been removed, its objects will display in the Main Group, where the Master can assign them to another group.


Groups are assigned to users, so that every user could work with his particular group and could not affect other groups.

A user may have several groups and switch between them.

Each user’s object is assigned to a group, which is selected at the moment.

A user can change the group, an object assigned to.

The Master-user has access to the Main Group.

A group creation process is described in the Users section.

Main Group

This group is available only for the master-user.

While being in this group, a user can see all groups objects and objects not assigned to any group - for example, if the object group has been removed.

Here a user can change an object group for other users including the main group.

Switching between groups

To switch between groups click the Avatar icon and choose a group from the list. Minimal list contains one group.

Main group is available only for the master-user.

Change object’s group

Each object in ALTKRAFT belongs to one of the groups.

To assign a new group to an object, open a list, which contains the object.

Tick the check box above the list name.

After you will see the Set group button.

The object becomes invisible in its previous group and appears in a new group.

Also the master-user has an additional block in edit forms of most of the objects.

Delete group

Only the master-user can delete groups.

To delete a group click the avatar icon and choose a group from the list.

Drag the mouse pointer over the group name and the delete icon will appear on the right.

The main group can’t be deleted.

User roles

Only master-users can manage roles.

Roles are available on the Role list page (User Profile > Setup > Roles).

A role has three parameters:

1. Role name, which is visible to the master-user in the role list.

2. Groups this role is available to.

Caution! If a role is included to the Main Group, this role will cover all other groups.

Groups and roles restrictions can’t be applied to the master-user.

Common roles:

View - a user can see only objects list.

Read & Download - a user can view and download list, segment and suppression list elements.

Create & Edit - a user can create, edit and delete objects.

Other roles:

Campaign: Activate - a user can launch a campaign or send a test.

Message: Moderation - if this role is not assigned to a message, the message will be saved as a draft.

Message: Content options - gives access to the Content options tab.


Token - is the access key to the particular system features. While using Token the authorization is not required.

On the Token page (User Profile > Setup > Tokens) a user can edit the existing tokens and create new ones.

A token has two parameters:

1. Roles - each role determines the set of accessible actions.
The Create & Edit role also includes users import.

2. Group - a token can work with the selected group objects only.

Caution! The main group token can work with all groups objects.

Virtual Sender

Virtual Sender - a logical scope which helps to unite real users to the groups and make the rules for mailings for these groups.

A virtual sender has two parameters:

1. A name, which will be used in all virtual senders lists.

2. Rules settings.

The button - adds a new rule.

The button - adds a new (real) sender to the existing rule.

There can be the unlimited number of rules and senders. However, the sum of all senders Percent boxes should raise 100 inside one rule.

When a new sender is added, it usually gets a small percent of newsletters for warming up and establishing a positive reputation. That is what the Percent box is for.


Integrations - ATKRAFT allows to unite different services and systems to a single environment.

Integration management page (User Profile > Setup > Integrations) is available to the master-user only.

Available integrations:

1. Adknowledge

2. Adcrusher

URL keys

There are two types of URL keys - Confirm и Unsubscribe.

To create a URL key open the Profile > Setup > URL Keys.

Confirm URL key - is an address, a “{confirm_sub}” link in the Opt-In letter or a “{confirm_msg}” link in a general letter will lead to.

Unsubscribe URL key - is an address, a “{unsubscribe}” link will lead to in all types of letters.

There can be the unlimited number of URL keys.

URL Keys can be assigned to confirmation and unsubscribe links in the message settings. If a user doesn’t do this, a subscriber will be redirected to the default page.

Action hook

Action hook - is an instrument for redirecting events from ALTKRAFT to the external systems and services.

It can be configured for all lists or for a particular one. Herewith an event set is determined and the way it should be sent.

Action hook consists of two parts:

1. Action hook settings:

  • List — action hook waits for the events in the selected list.
  • Action — a list of events, action hook will work with.

2. Callback settings:

Request types:

In both cases the identic structures will be sent. The only difference - in case of POST-request, the JSON array will be limited by the Max batch file size setting.

The success of sending data is determined by HTTP status codes, RMQ response or search for a given keyword in the HTTP response (in the case of POST). If the data could not be sent, the number of send attempts and the delay length can be set in the “main.json” config.file:

"HOOK_RETRY_TIMES": sets the max number of send attempts (4 by default)

"HOOK_RETRY_PERIOD_SEC": sets the delay length in seconds (15 by default)

Add subscriber profile fields:

Here can be listed the required subscriber profile fields.

RabbitMQ action hook

Send a message to the RabbitMQ — messages of events will be sent to the RabbitMQ broker. Each message will be sent at once.

A RabbitMQ user should have access to the virtual host.

Use RabbitMQ in order to create a virtual host or grant a user access to it.

If the queue doesn’t have a name in RMQ, the name will be chosen automatically in accordance with the Event types table.

HTTP POST action hook

Send a JSON request via the batch file — a POST request in json with the {"content-type": "application/json"} header.

Method - POST

URL - a receiving server address.

Max batch file size - a JSON array will be formed, limited by this setting and by timeout. A POST-request will be sent as soon as the limit is reached.

[{"event": "send", ... }, { }, ... ]

Timeout - a delay before the messages are sent to the server.

Success if the line is found - in order a request is considered as valid, the response from the server should get into this Regex:

.'event_type': '.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?'.

Online Golang regex:

If you leave the Success if the line is found field empty, any message with the status code 200 will be considered as valid.

Action hooks event types

campaign_launch - A campaign is launched (this has a specific hook-message structure).

send - A message is sent to the subscriber.

deliv - A message has been delivered to a subscriber.

uopen - A unique open.

open - An open.

uclick - A unique click (this also calls open and uopen events).

click - A click.

confirm - A confirmation click in an email (this also calls click and uclick events).

confirmsub - A confirmation click in a double opt-in email.

unsub - The subscriber has unsubscribed ( {unsubscribe} or {globalunsubscribe} ).

read - The message has been opened for 12 seconds and more.

skimmed - The message has been opened for 8 seconds or less.

glanced - The message has been opened for 2 seconds.

undeliv - The message hasn’t been delivered.

suppress - The message hasn’t been delivered because the subscriber is in the suppression list.

sbounce - Softbounce.

hbounce - Hardbounce.

complain - The subscriber has complained.

import_manual - The subscriber’s added through the system interface.

import_file - The subscriber’s added through the system interface, from file.

import_api - The subscriber’s added via API.

import_form - The subscriber’s added through the confirmation form.

unsub_manual - The subscriber’s unsubscribed through the system interface.

unsub_api - The subscriber’s unsubscribed via API.

Hook-message structure

"event_type": "String" - An event name as in the table: event types.
"event_date": "String" - The event creation date in the ISO-8601 format.
"_xxh": "String" - Hash from an email subscriber, which is used for the authentication in ALTKRAFT.
"_md5": "String" - MD5 hash from an email subscriber.
"list_id": Integer - List ID, in which an event’s called.
"account_id": 161 - Account ID, in which an event’s called.
"is_test": Boolean - Whether the event was called by a message test sending.
"custom_data": Struct {key: value} - A subscriber details set, that can be set up in the Action Hook editing interface.
"event_data": Struct {key: value} - A details set, which depends on the event type (there are two types - an event in the tracking and an event, which is called during the delivery process)

The event_data structure for events, called in the tracking system.

This includes: uopen, open, uclick, click, confirm, confirmsub, unsub, read, glanced, skimmed

"message_id": Integer - A message ID in the ALTKRAFT system
"campaign_id": Integer - A campaign ID in the ALTKRAFT system
"segment_id": Integer - A segment ID, if available
"ip": "String" - An IPv4 address of a subscriber
"country": "String" - A country in the TLD format
"city": "String" - A city of a subscriber
"postal_code": "String" - A ZIP code of a subscriber
"region": "String" - A region of a subscriber
"tz": "String" - A time zone of a subscriber
"lat": Float - Geographical latitude
"lon": Float - Ggeographic longitude
"user_agent": "String" - A line in the User-Agent title
"os": "String" - Operating system
"browser": "String" - Browser and its version
"device": "String" - Device type
"link_url": "String" - HTTP link, a subscriber has been redirected to.

The event_data structure for events, called during the delivery process.

This includes: send, deliv, undeliv, suppress, sbounce, hbounce, complain

"message_id": Integer - A message ID in the ALTKRAFT system
"campaign_id": Integer - A campaign ID in the ALTKRAFT system
"segment_id": Integer - A segment ID, if available
"bounce_code": Integer - An email server answer code for the sbounce and the hbounce events "bounce_message": "String" - An email server answer for the sbounce and the hbounce events

Campaign Launch Hook-message structure

  "event_type": "campaign_launch",
  "event_date": "2016-12-09T10:11:24.934079204Z",
  "is_test": false,
  "account_id": 161,
	"event_data": {
    "campaign_id": 1472,
    "campaign_type": "broadcast",
    "campaign_name": "Br0aDcA$T",
    "campaign_sub_id": "x11"
    "data_type": "segment",
    "data_id": 1221,
    "launch_id": "000000a1000005c0584a834c",
    "content": [{
      "message_name": "Hello",
      "message_id": 1412,
      "suppress_id": 271,
      "replyto_email": "",
      "replyto_name": "",
      "text": "email text version",
      "html": "<html> email html version </html>",
      "from_name": "",
      "from_email": "",
      "attach_links": [],
      "subject": "Hello, {your_name}!"
      "message_name": "Hi",
      "message_id": 1413,
      "suppress_id": 272,
      "replyto_email": "",
      "replyto_name": "Monty",
      "text": "email text version",
      "html": "<html> email html version </html>",
      "from_name": "",
      "from_email": "",
      "attach_links": [{
        "name": "text_file.txt",
        "url": ""
      }, {
        "name": "picture_file.png",
        "url": ""
      "subject": "Hi, {your_name}!"

An action hook example sent by POST request on the two deliv events

  'event_type': 'deliv',
  'list_id': 50,
  'account_id': 161,
  '_xxh': '5ada5e6ea3c6da5f',
  '_md5': 'a5656dc1e3f603063a1918d582a10f58',
  'event_data': {
    'message_id': 5,
    'segment_id': 0,
    'campaign_id': 130
  'event_date': '2016-11-15T09:12:28.514388956Z',
  'custom_data': {
    'email': '',
    '_fname': 'Eddie'
  'is_test': False
  'event_type': 'deliv',
  'list_id': 50,
  'account_id': 161,
  '_xxh': 'bb42e541c7267fa6',
  '_md5': '593b250db256a764da8d2da4be694b31',
  'event_data': {
    'message_id': 5,
    'segment_id': 0,
    'campaign_id': 130
  'event_date': '2016-11-15T09:12:28.569124547Z',
  'custom_data': {
    'email': '',
    '_fname': 'Simon'
  'is_test': False

An action hook message example sent to RMQ on the click event

  "event_type": "click",
  "event_date": "2016-11-15T09:31:06.612854859Z",
  "list_id": 23,
  "account_id": 161,
  "_xxh": "80d6f85038ff29e9",
  "_md5": "649d9b2b3790fa986596048e444c81ad",
  "is_test": false,
  "event_data": {
    "browser": "Opera",
    "campaign_id": 132,
    "city": "",
    "country": "",
    "device": "web",
    "ip": "",
    "lat": 48,
    "link_url": "",
    "lon": 9,
    "message_id": 5,
    "os": "Linux x86_64",
    "postal_code": "",
    "region": "",
    "segment_id": 40,
    "tz": "Europe/Vaduz",
    "user_agent": "Mozilla/5.0 (X11; Linux ..."
  "custom_data": {
    "_fname": "Lucy",
    "email": ""