Multi-channel marketing campaign optimization system

A real-time application based on predictive Data Mining algorithms, supporting the selection of offers, products and/or additional services, as well as the selection of channels of communication with customers.

Who Will Benefit

The above-mentioned solution is addressed to companies with a large customer databases with access to data concerning their shopping preferences. Such information makes it possible to create individual customer profiles.

Nowadays, companies that are oriented to maximize profit and operate in a competitive market, have to adapt their offer to the individual needs of each customer. Therefore, they strive to offer as many additional products or services as possible.

At the same time, finding the optimal offer is becoming more and more difficult, as product offers tend to change often. Moreover, companies sell dozens or hundreds of product variants instead of a single product. On the other hand, customers should not be spammed with offers that are not tailored to their preferences. Nor should they be recipients of inconsistent marketing communication. It is also important to bear in mind the budgetary constraints of marketing activities.

Conclusion: tailoring the offer to customer needs and choosing the best time and communication channel are key to successful closing of the transaction.

Solving the problem

The solution is to implement a system for creating offer recommendations (linking a given offer with a specific customer) and building a marketing campaign aimed at meeting customer expectations.

Such solution to be effective must meet following conditions:

  • The client receives marketing communication only when his expected financial effectiveness exceeds a certain threshold.
  • The maximum workload of the communication channels is taken into account.
  • The campaign plan aims to maximise one criterion, e.g. sales effectiveness.
  • Budgetary constraints are taken into account.


Benefits of implementation:

  • higher percentage of positive responses to campaigns, increased sales and, consequently, increased income
  • a positive image of the company that meets the expectations of customers
  • lower campaign costs
  • improved customer satisfaction, lower number of complaints
  • lower probability of churn
  • possibility to determine the optimal sales strategy

Examples of applications in specific sectors

Banking and finance

Currently, banks and financial institutions offer a wide range of products, starting from traditional financial products (loans, savings accounts, credit cards, etc.), through additional ones (investment funds, insurance, leasing, currency exchange), to products offered by their partners (e.g. accounting, telephone subscription, Internet, electricity sales). A properly matched offer increases the chance of customers acquisition and building relationships with them, as well as gaining trust, which is of key importance in the case of institutions managing financial assets.


Apart from selling traditional products, such as phone subscriptions or prepaid cards, telecommunication operators also offer other additional products, e.g. data transmission packages, devices, products of their partners (applications, music, banking). At the same time, part of the offer is addressed to a specific group of recipients for whom time and communication channel are of key importance. Problems with effective sales are caused by a wide range of products and coordination of marketing activities, which should be aimed at increasing communication consistency across multiple channels.


E-commerce companies use the Internet as their main sales channel, however they operate in a difficult and competitive business environment. Their main task is active communication by means of the Internet, which correlates with an increased positive response to campaigns. E-commerce services are aimed at optimizing marketing communication and the how it is targeted (addressing a specific offer to specific customers). What is more, if a company wants to offer an additional product when a customer makes a purchase, it has to do it quickly and in line with the customer’s preferences.

Utilities – electricity

Similar to the telecommunications, the electricity market is becoming more and more difficult and the offer of companies operating in it is becoming more and more complex. In addition, the possibility of changing energy supplier makes the competition grow, which also leads to offers better customized to customers. At the same time, with the development of new technologies, the concept of the intelligent network (network which automatically informs about the level of energy consumption) is becoming more and more important. Based on such data, suppliers may tailor their offer to the needs of customers. In order to achieve the best result, the offer must be targeted at the right customer at the right time and through the right communication channel.

How the system works

For each product offered by the company, the system creates a predictive model that forecasts the impact of marketing communication on the customer’s purchase decision. It is also possible to estimate the profit for each product. By using these information, the efficiency factor for a given marketing communication is calculated. If the product database is large and changes dynamically, this task should be automated. The application uses the tool to build scoring models (ABM). The next step is to implement optimization, which takes into account the limitations introduced by the company: budget size, capacity of communication channels, etc. As a result, the application exports to the transaction system a database in which each customer has an assigned campaign plan, i.e. a product and communication channel corresponding to its needs.

Available components developed by Algolytics used to create the solution

  • Scoring One – highly efficient calculation of results for millions of records using hundreds of models
  • Automatic Business Modeler (ABM) – a tool for automatic construction and updating of predictive models. It provides full automation of necessary but time-consuming actions, such as variable selection, transformations, interaction modeling or selection of the best model.

How to use ABM – the machine learning part of the system

In the following steps we will how you how to use Automatic Business Modeler. What is more, you will learn how to create and use models on-line, as well as by using API.

Automatic Business Modeler:

Information about the API in ABM can be found here:

Uploading a table with data for modeling

Uploading a table to ABM can be done in two ways: from the website or using the API. It is simple and intuitive on the website. Go to the repository and press the Uploadbutton. Then search for a .csv file you want to use.

Wielokanałowy system optymalizacji kampanii marketingowych - 1

API requires the following curl and POST method:

$ curl '' -i -X POST -H 'Accept: */*' -H 'Content-Type: application/json; charset=UTF-8' -d '{ "content" : "var1,var2,target\\n1,2,1", #names of the columns in the table "fileName" : "fileName.csv", "tableName" : "tableName1", "csvSettings" : { "columnSeparator" : ",", "decimalSeparator" : ".", "textSeparator" : "\\\"", "hasHeader" : "true", "encoding" : "UTF-8" } }' -H 'Authorization: Bearer <<ENTER_YOUR_TOKEN_HERE>>

The token, which is an API key generated in ABM in the API tab or via curl using the POST method, has been written in bold:

$ curl '

In response, “access_token:” is returned, which is active for half an hour. It must be generated each time it is to be used.

Creating a predictive model – a new project

Model is the result of the created project.

In the GUI, add a new project, select the data on which you want to create a model, and then adjust the appropriate settings.

Wielokanałowy system optymalizacji kampanii marketingowych - 2

Wielokanałowy system optymalizacji kampanii marketingowych - 3

Create a project using the POST API:

$ curl '' -i -X POST -H 'Accept: */*' -H 'Content-Type: application/json; charset=UTF-8' -d '{ "name" : "project1", "tableName" : "dataTable", "processType" : "classification”, "processParameters" : { "processMethod" : "quick", "target" : "Class", "positiveTargetValue" : "good", "variableRoles" : [ { #optional "name" : "var1", "role" : "ACTIVE", "type" : "NUMERICAL" }, { "name" : "var2", "role" : "ACTIVE", "type" : "CATEGORICAL" } ], "samplingSize" : 30000, #optional "samplingStratificationMode" : "CONST_NUM", #optional "samplingPositiveTargetCategoryRatio" : 0.5, #optional "samplingMode" : "MANUAL", #optional "classificationThreshold" : 0.5, #optional "cutoff" : 0.1, #optional "qualityMeasure" : "LIFT", #optional "useTestData" : true, #optional "classificationThresholdType" : "MANUAL PROBABILITY", #optional "profitMatrixOptimized" : false, #optional "profitMatrixCurrency" : "euro", #optional "profitMatrixTruePositive" : 1, #optional "profitMatrixFalseNegative" : 0, #optional "profitMatrixFalsePositive" : 0, #optional "profitMatrixTrueNegative" : 1 #optional } }' -H 'Authorization: Bearer <<ENTER_YOUR_TOKEN_HERE>>

Project building is done via curl using PUT method.

$ curl '{project_id}/build' -i -X PUT -H 'Accept: */*' -H 'Content-Type: text/plain; charset=ISO-8859-1' -d '{ "action" : "start" }' -H 'Authorization: Bearer <<ENTER_YOUR_TOKEN_HERE>>

The project building process can be verified using the GET method and:

$ curl '{project_id}/build' -i -X GET -H 'Accept: */*' - -H 'Authorization: Bearer <<ENTER_YOUR_TOKEN_HERE>>

Model statistics

ABM also allows you to export statistics about the project. This step can be done via the POST method:

$ curl '{project_id}/statistics -i -X GET -H 'Accept: */*' - -H 'Authorization: Bearer <<ENTER_YOUR_TOKEN_HERE>>

In ABM you can view the statistics by pressing Model statistics, which is the penultimate stage of building the model.

Wielokanałowy system optymalizacji kampanii marketingowych - 4

Wielokanałowy system optymalizacji kampanii marketingowych - 5

Wielokanałowy system optymalizacji kampanii marketingowych - 6

Application of the model

Automatic Business Modeler allows you to use the created model through the API. You can use the model to score a single record, as well as to score the entire file with records.

In order to score the table through the website, simply select Score data and follow the instructions.

To use a model through the API you will need a model identifier.

It can be found in the project menu. After you press Deploy, a message with an identifier will appear.

Wielokanałowy system optymalizacji kampanii marketingowych - 7

You can also use the following curl (POST method):

$ curl '{project_id}/deploy -i -X POST -H 'Accept: */*' -H "Content-Type: application/json" -d '{ "overwriteIfExists" : false }' -H 'Authorization: Bearer <<ENTER_YOUR_TOKEN_HERE>>

When the model identifier is known, it is time to proceed to prediction. Below there is a curl allowing the use of a predictive model on a single line.

$ curl '{model_id}/score' -i -X POST -H 'Accept: */*' -H 'Content-Type: application/json; charset=UTF-8' -d '{ "dataRow" : "{ \"col1\": \"value1\", \"col2: \"value2\", \"col3\": \"value3\" }" }' -H 'Authorization: Bearer <<ENTER_YOUR_TOKEN_HERE>>

The probability of success for the given data will be returned.

Scoring code

Sometimes you may need more than only score value – the scoring code may also be at the centre of our interest. Naturally, there are two options: click in the project menu or API.

First option: select Scoring code in the project menu.

ABM - Wielokanałowy system optymalizacji kampanii marketingowych - 8

The API can be used with the GET method:

$ curl '{project_id}/scoringCode?dialect=JAVA’-i -H 'Accept: */*' ' -H 'Authorization: Bearer <<ENTER_YOUR_TOKEN_HERE>>

The language in which the scoring code is to be exported should be entered as a dialect: JAVA, SQL, SQL_MSSQL, SQL_TERADATA, SQL_ORACLE, SQL_POSTGRES.

You can easily and primarily – quickly create a model, then connect it with the application, and scan new data in real time. All of this in a fully automated way.

Pin It on Pinterest