How we created a chatbot for charity raffle to support Ukrainian defenders

Andrew Gubskiy
6 min readOct 29, 2022

In mid-March Timur Dorofeev called me and asked to help to create a chatbot for registrating and processing applications for the charity raffle tickets. The raffle was initiated for fundraising to support Ukrainian defenders. Generally the task was not so difficult from the technical side, however, quite interesting. Moreover, the purpose was high.

With the start of Russian full-scale invasion in Ukraine, Kirill Kislyakov (you may know as the owner of famous Barman Dictat bar and Torf TV channel) decided to launch fundraising for gas masks purchase. Why gas masks? It’s not a secret that Russia doesn’t disdain any means to reach its goals. Thus, Russian military forces already demonstrated during the war in Syria that they can and are ready to use chemical weapon. That is why Kirill decided to launch GAS MASKS FOR UKRAINE initiative to get ready even for the most pessimistic scenario of the situation in Ukraine. Now he is raising money to purchase modern gas masks and filters that can be a reliable protection from the different types of toxic gas for ukrainian men and women.

Charity Raffle

Ukrainian artist Bob Basset (Serhiy Petrov) who creates internationally acclaimed works of wearable art in a genre known as Technoromanticism, supported Kirill in his charity initiative. His works appeared in the pages of Vogue, TV and movies. Kirill and Serhiy decided to raffle one of these works.

As the raffle was supposed to be held as soon as possible, the process was to be organized to follow the participants through all the stages the easiest way possible: introduction to the raffle terms and conditions, tickets booking, different payment methods.

How to hold a raffle: chatbot, web-site, application?

Here we should explain in more details why we think that a chatbot is the most reasonable solution to hold a raffle. As an alternative, we suggest to consider 2 most obvious options: web-site (if to be precise, web-application) and mobile application.

To start with, let’s consider the advantages of a chatbot if to compare with a web-application:

  • First, to take part in a raffle, people do not need to pass the registration process separately. To use a chatbot, they are supposed to have an account in the messenger and confirmed phone number. This positively influences the quality of the audience since a part of the potentially fake participants do not come through.
  • Second, participants can be contacted via a chatbot if necessary. Timely feedback is important when processing payments.

If to compare a chatbot with a mobile application, there are also a lot of advantages:

  • First, the cost price of a chatbot development is much lower.
  • Second, nowadays everyone has dozens of mobile applications. To have one more just to participate in a raffle (even if the purpose is high) will not be welcomed.
  • Third, the coverage of different platforms. As we’ve already mentioned above, the cost price of an application development is much higher than of a chatbot. If we want to give an access to our service for users of different devices and platforms, besides development costs increase, it will also take more time. But in this case, time is even more valuable than money.
  • Fourth, chatbot deployment speed is much higher. All updates are accessible for the users as soon as the system is deployed on the server. To compare with, new functions for a mobile application are partially accessible only when the moderators of the mobile applications shop approve the next update and allow users to download it.

In terms of the messenger choice, Telegram is popular in Ukraine, has developer-friendly tools and can be easily integrated with the external services.

How everything was settled

It was decided in the very beginning that we would raffle one hudred tickets. As soon as the last ticket was bought, the sale was to be closed. We also needed to foresee that participants could make mistakes, refuse to pay for the raffle tickets booked, fake participants could try to take part in the raffle, as well as other nonstandard situations may happen.

We decided to use the following principle to hold the raffle. At the first stage a participant creates an application to buy as many tickets as he wants. Further, the system books the numbers for the relevant amount of tickets, however, the tickets are confirmed only when one of the raffle administrators makes sure they are paid via any means. As soon as the administrator confirms the payment, the ticket number is taken into account and can be raffled. Each ticket number is unique. It allows to define in case of any disputes who and when booked the ticket and if it was paid in time. This is also a reason why the consecutive numbers for some tickets can be over one hundred — the tickets could be booked, but not paid.

The chatbot was also supposed to provide information on the raffle conditions and raffled lot. The participants were to receive all information via the messenger only — any linked web-browser or the necessity to download the files and open them in the external application could result in worse user experience. Luckily, modern messengers have a wide range of tools to create interface for the interaction with users.


As soon as the key requirements were outlined, we moved to development. A chatbot has different interface vs familiar for users mobile applications and web-sites. However, their basic principle is the same — interface part (in this case implemented via the messenger), and server part that is contacted by a web application, mobile application, or messenger.

The server part of our project was landed in Microsoft Azure cloud that was reasonable in terms of the price and technical possibilities provided. We also created the panel for the raffle administrators that allowed to see the detailed information on the current applications for the tickets and download the list of confirmed raffle ticket numbers.


The draw started April 12th. A photo of Bob with a mask and the following text were posted on the project’s Telegram channel:

Russia used chemical weapons in Ukraine.

So this is the raffle some of my subscribers asked for! Chance to win €3000 wearable art object for €30 ($33). Only 100 raffle tickets are available and of course you are welcome to buy not one ticket but two or three.

All money from this raffle I’m donating to ‘Gas masks for Ukraine’ initiative — due to the high probability of the use of chemical weapons by the Russian army (they used it in Syria and will not stop to use it in Ukraine) Ukrainian defenders need much more gas masks than is available right now.

You can purchase raffle tickets through a special Telegram-bot (the link is in my bio). Methods of payment: PayPal or cryptocurrencies (BTC, ETH, USDT).

I’ll announce the date of the raffle draw as soon as all 100 tickets are distributed.

Thank you for your help and participation in advance. Slava Ukraini!

Buy raffle tickets.

On April 24, more than half of the tickets were already sold.


The raffle winner was chosen randomly and announced live — it was the man from Ohio who bought two tickets. The raffled mask by Bob Basset is now on the way to his happy owner. The gas masks will be soon in Ukraine.

On May 4, the first batch of gas masks was already in Kiev.

If you read this article and now want to help Kirill and make a contribution for the next part of gas masks, you can find the payment details following the link:

I’d like to specially thank Timur for inviting me to participate in the project, and Ania for assisting me.



Andrew Gubskiy

Software Architect, Ph.D., Microsoft MVP in Developer Technologies.