Quick Dive Into Azure Service Bus

Are you developing an enterprise product? Need the right solution for communication between microservices? Looking for a way to improve the reliability and scalability of your application? Azure Service Bus might be the solution you are looking for.

Stay with us to find out!

What is it? And why should I use it?

Azure Service Bus is a highly reliable cloud messaging service. Service buses, in general, provide a solution for communication between services. Modern software starts to be created in microservice architecture more and more often. The need for a reliable communication solution is not a new thing, though. In the classical approach, one would use services like RabbitMQ, Mass Transit, or so to achieve this task.

What advantages does Azure Service Bus give, then? Besides many advanced features, which will be covered, it’s the availability. Advertised as dedicated to enterprise solutions, it’s one of the most mature products, which gets constant support for many years, used in many commercial projects. It grants disaster recovery, so even fire or flood won’t stop services from running. Being serverless PaaS, serverless solution frees the user from the need for installation and supporting local instances of the product, saving time and money, in the result. Everything can be configured in the Azure Portal with just a few clicks.

Quick Overview

There are two main ways Azure Service Bus can be used:


Queues let us implement First In, First Out (FIFO) communication between services. When using Queues for every message, there can be only one receiver type. Even if there are multiple instances of such service, only one of them will handle each sent message. Communication participants are named “message sender” and “message receiver”.

Sent messages are stored, even if the receiver is temporarily unavailable, and delivered later upon request (pull mode). Another advantage of using queues is the possibility of the sender and receiver to work with different frequencies. While messages can be sent very often, the receiver may choose to process them on its own rate to prevent crashes.


Topics can be used to send messages in publish-subscribe scenarios. Unlike in Queue, where each message always has only one type of receiver, topics can have multiple. Each subscriber gets their own copy of the message. There is a possibility to set rules that define which receiver can get which type of message so certain one can be sent to the wanted group of receivers only.

Which should I use?

If your applications are going to communicate with each other in one to one model, and your messages must always be delivered at all costs, use Queues. For example, for receiving many orders, which all must be processed.

If you need to broadcast messages to many systems that can react to the same message with different actions, use Topics. It can be used, for instance, to send notifications via many services (one service can provide SMS notifications, another – email, and so on). Topics are perfect for implementing microservice infrastructure where many services can react to a particular event.

Azure Service Bus – Advanced Features

Azure Service Bus has some advanced features that put it ahead of the competition. Let us list just some of them.

Dead-letter Queue

Azure Service Bus supports a queue of messages that cannot be delivered or processed where the operator can look into the issue, correct it, and resubmit the message.

Get-disaster recovery

When the entire region or datacenter of Azure experiences downtime, geo-disaster recovery allows data processing to continue on another region/data center.


Client-side batching enables a queue or topic client to delay sending a message for a specified period. If the client sends additional messages during this time, it transmits the messages in a single batch.

At least once / At most once delivery

Depending on the configuration of the Bus, a message can be processed in two ways. With “at least once” approach, if the application crashes while processing the message, it is delivered when the application restarts or is sent to another instance of the receiver if such exists. That guarantees, each message is processed at least once.

“At most once delivery” approach guarantees that once processed messages will never be received again, mitigating the risk of duplicating data (sending the same order twice or sending the same message multiple times).

We could go on and on with those features, but if you like to know more, you can always visit a page dedicated to Azure Service Bus and find out yourself.

How do we use it?

Do you want some real-life examples? Sure thing! We also use Azure Service Bus in our projects! Here are some use cases in which it comes in handy.

Sending emails with the order confirmation

User has placed their order. We have saved all necessary data in our database and now we want to send them an email with the order confirmation. Still, we don’t want them to wait until the service for notifications finishes its job, we want to show them nice “your order has been placed” as soon as possible. And what if the messaging service is down at the moment? Using Azure Service Bus, we don’t need to worry! The message will be sent after completing the request, and if it fails for any reason, it can be sent later.

Integration Events

If you are familiar with Domain-Driven Design in a microservice architecture, you probably know the term “integration event”. In short – integration event is some broadcasted message that might be of interest to third parties or services from other domains. Let’s not dive too deep into the DDD concept, for now, it’s left for reader’s research, and let’s focus on some particular cases. 

All users’ orders should be stored, besides in our database, in the partner’s service. After an order has been placed, saved in our database, just before we notify the user about success, a message is sent to the Service Bus with details of the order. Partner’s service can subscribe to those types of messages and react with them in the desired way. If more services like that are added in the future, all requirements will include subscribing to the same message and handling it accordingly.


It’s worth mentioning that Service Bus is not the only one Azure messaging service. There are also Event Grid and Event Hubs, which all share some similarities but are designed for different scenarios. But that’s a story for a whole new article.

To wrap up Azure Service Bus is a solid enterprise solution to manage your communication between services with excellent scalability and reliability. It’s easy to create and maintain, and being popular software, users can find lots of solved problems and original usages online. Want to find out yourself? Then get on the Bus and try out! And if you are looking for a reliable business partner – let us know. We can work together on your software development product to achieve spectacular results.

Microinteraction: a small but essential design element

The current market is very competitive, with thousands of products that fulfill the same purpose. Microinteractions and animations are the magic things that keep us coming back to the products we love, but you have to use them deliberately.

Microinteractions are rather small and single-purpose focused events that occur within apps. The ideal microinteraction helps the user to accomplish a task in the most delightful way and then – interpret the results. 

Why should we create Microinteractions?

Microinteractions, as we mentioned in the intro, are catching our attention and make us want to use the product constantly. They’re the satisfying little details that happen when we perform a single task. They humanize products and make them more enjoyable. Still, many web developers and designers still ask such a question. They don’t understand that ignoring microinteractions may cost their clients a lot. Attention to detail is what differs an exceptional website from an ordinary one. You may ask, but what are the pros of it?

  • Accomplishing a single task more easily
  • Enhancing navigation
  • Making it easier for users to interact with a piece of data
  • Viewing or creating a small piece of content, such as a status message or update
  • Directing user’s attention to a particular element
  • Offering recommendations to customers
  • Controlling a process through constant feedback
  • And, finally, they just make your app or site more emotional

So, what’s the anatomy of microinteraction?

1. Trigger – starts interaction, should be rather visible and prominent, depending on how important the action is.

2. Rules – they determine how interaction acts after initiating it, how and if it’s animated, and so on.

3. Feedback – gives user information whether action s/he performed was completed successfully.

4. Loops & Modes – they decide how animation acts over time – is animation different for the first time? What happens if you hold the button (trigger)?

What are the most known microinteractions that we all know? 

We can see MI in almost every app. Apple is doing great at this. Just launch a random Apple native app and I bet you will get some of the microinteractions. 

That subtle bell animation combined with little vibration when you switch your iPhone to Silent Mode (sometimes I did it just to see that great bell swing – great job there, Apple!).

While you press the Like emoji in Messenger for too long, it starts vibrating, and the animation shows you this: “ONE SEC LONGER AND I WILL POP!” – then just a “Poof” sound appears and it looks like nothing happened.

The next one, one of the most common microinteractions, is when you swipe your finger over the alphabet in the contact book. You see what current letter you are browsing, combined with zoom effect and vibration. It gives you this really nice feeling of browsing through pages like in a normal book.

The last example (in this article, because there is an infinite list of common interactions) – the click when you turn something on and off. Confetti while you complete one of your tasks in the app. A trophy or achievement.

Mobile games are packed with microinteractions. You see them on every page, every task, every move you do, it’s all interactions. They encourage

you to do more, more and more. Just to stay in the app a little bit longer 😉

What’s the relationship between animations and microinteractions?

Let’s get one thing clear: animations and microinteractions aren’t the same things. Microinteractions are small functionalities that serve one purpose only, while animations are useful add-ons that complement the interactions.

An animation can be as simple as the coloring of a thin bar that indicates progress on a task, or display of a side menu after the burger menu icon is clicked on. The point is that these micro-animations are there to make the microinteractions intuitive and to help them convey their function to the user.

Sometimes you see a Dribbble shot with so many animations – everything is moving and sliding so easily. Unfortunately, it’s wrong. Sophie Paxton wrote a really important sentence in her article:

“Animation is like cursing. If you overuse it, it loses all its impact.”

And that’s true. Probably if you’re into animation, you know very well the basic principles of animation by Disney. It’s great, but only in the case of animation. If you use it in the app, it really slows the user down. 

So how can I apply animations or microinteractions to my app and website?

It all depends on what kind of application or website you have. What do you want to achieve with that? What is your main audience?

For example, if you’re making an app for children, try to focus a little bit more on animations and interactions, make really cute animated onboarding, try to award them with microinteractions for every completed task, etc. Things look different when you’re making an app for a more adult audience. Animated onboarding? Sure, but it should be subtle and non-distractive, including your microinteractions. 

Protip: Having too many microinteractions can lead to the user being distracted or losing sight of the real function of the app.

In iteo we’re trying to stick some of the simple principles that we worked out with time:

  • Think of the benefit that animation can bring to you instead of “it’s cool”.
  • Keep animation duration at or under 400ms.
  • Linear animation is boring, mechanical and looks robotic. Avoid that.
  • Give your animation a simple Easy In or Easy Out. You can even combine these two and add Easy In and Out.
  • Spring and bounce are okay. But only when it’s really needed. If your animation doesn’t require it, skip it. 

And finally, which tool should I use?

The variety of programs you can use is very wide, but based on how simple or complex you want them to be, there are different tools.

If you’re familiar with coding:

Mobile: Xcode, Android Studio

Mobile or Web: Framer

Web: CSS animation

If you want to create more detailed Interactions with simple drag and drop options:

Principle, Adobe Xd, Origami Studio, and Protopie

If you want to create detailed interactions + animations:

After Effects

In my opinion, the best one is After Effects. Why? Because the only thing that limits you with it is your creativity. It’s a really powerful tool that requires a lot of work and learning but when it “clicks”, everything changes. 

After Effects also has one powerful extension. Which is Lottie (we’ve mentioned it in one of our articles about animations – check it out!).

Lottie is a JSON-based animation file format that enables designers to ship animations on any platform as easily as shipping static assets. They are small files that work on any device and can scale up or down without pixelation. You can use Lotties on basically any platform: web or mobile. This means you can integrate them seamlessly into both apps and web pages. Lottie animations can even be used as stickers on messaging platforms. It isn’t technically limited to web and mobile. You could use it on desktop apps as well as some watches. Also, the size is super small. 

The wrap-up

Go ahead and observe the little things in all the apps you use frequently. You’ll start to understand that these interactions are everywhere and yet are so easy to overlook. You’ll notice that micro-animations can spice up any app, and guide the user to where the action is.

And if you would like to cooperate with a seasoned team of designers that know all about microinteractions, animations, illustrations and more functional and pixel-perfect solutions – contact us. We will create an extraordinary product just for you.

Client Side vs Server Side Rendering

What are the performance differences between CSR and SSR? It depends but also, the type of rendering can influence many processes in the mobile app. That’s why we would like to compare these two types of techniques for rendering applications on the example of Next.js and Create React App. Let’s see what are the results and which rendering method will be suitable for different kinds of projects.

Quick overview


Client Side Rendering – rendering method that relies on executing JS on the client’s side (browser) via JavaScript framework. The client will first request the source code which will have a little amount of indexable HTML in it. Then a second request will be made for the .js files that contain all of the HTML in JavaScript as strings.


Server Side Rendering – rendering method where all of your page’s resources are kept on the server. When the page is requested, the HTML is delivered to the browser, rendered and JS and CSS downloaded.



Next.js is a React framework that allows you to create a React application with server-side rendering. According to nextjs.org

“With Next.js, server rendering React applications has never been easier, no matter where your data is coming from.”

The framework uses such libraries as React, Webpack and Babel.

Create React App

According to documentation

“Create React App is an officially supported way to create single-page React applications. It offers a modern build setup with no configuration.”

It is a tool built by developers at Facebook that gives you a massive head start when building React applications.


To compare these two techniques, first I used Next.js to create a React application that supports server-side rendering. In the second case scenario, with Create React App I could use React for client-side rendering.

Surely, there are also other frameworks when it comes to either choice. I have chosen two of the most popular to make that comparison.

The comparison

The performance was tested on a simple example with one API request and JavaScript dependency – Moment.js, using the Chrome browser. Here are the Lighthouse results for a full-page load on each application.

Next.js (SSR)

Create React App (CSR)

One of the more notable differences is the First Meaningful Paint. That means the time at which the user feels that the primary content of the page is visible. For the CRA it is 3,5 seconds, Next.js 1,3 seconds.

Also when it comes to the Speed Index, which shows how quickly the contents of a page are visibly populated, CRA is delayed 5,5 seconds, compared to Next.js (3 seconds).

In both examples, with CRA the image and non-image content cannot be displayed and the application becomes interactive when the JavaScript files are downloaded. That’s why these results differ so much.

If you are interested in a more detailed description of these metrics, read the Lighthouse Scoring Guide.

SSR – pros

  • Thanks to better SEO, search engines can crawl the site higher
  • The initial page load is faster
  • Useful for static sites

 CSR – pros

  • Rich site interactions
  • Website rendering is faster after the initial load
  • Great selection of JavaScript libraries

SSR – cons

  • Frequent server requests
  • Full page content reloads
  • Overall page rendering is slower

 CSR – cons

  • If not implemented correctly, low SEO score
  • The initial load may require more time
  • Requires external libraries, in most cases


For a web application with React, better SEO score, easier social media optimization and faster render, you should think about SSR and framework like Next.js.

If you are building a SPA (single page application), and you don’t want to configure everything on the server’s side like i18n, router e.t.c. you should use Create React Application.

Of course, further recommendations are going to be based on the type of project and many other factors. Contact us to get detailed information about mobile or web development. We will gladly cooperate with you to accomplish your business goals!

How Does Flutter Work? A Basic Guide

Flutter is known for its great performance regarding UI rendering. It is quite safe to say it is the fastest hybrid mobile development framework. The question one may ask – how does it work? What makes it so fast? The core three classes that are responsible for this process are: Widget, Element and Render Object.


Everyone who had any contact with Flutter already knows what a Widget is. For those who do not know, Widget is a basic UI element. The documentation says: „A Widget is an immutable description of a part of a user interface”. The word immutable here is very important. This basically means that any changes we want to perform on the user interface need a new Widget to be created. This sentence raises even more questions. If there is a new Widget needed every time we change something in the UI, how come it is so fast? Here the concept of trees comes into play. Under the hood, Flutter uses 3 instances of trees. Yes, you guessed it, these are: Widget tree, Element tree and Render Object tree. Each one of them has slightly different purposes, but combined together they allow for fast UI rendering and great performance.


Element, in comparison to Widget, is mutable. It means that properties inside an element can be changed without the need of creating a new one. The documentation states that the element is: „An instantiation of a Widget at a particular location in the tree”. Element is responsible for updating the UI, being a kind of connector between Widget and Render Object. 

Render Object?

Render Object is the source of information for drawing the UI. Instead of looking at the tree of Widgets, Flutter looks at the tree of Render Objects. A single instance of Render Object contains all of the info about sizes, painting and layout logic of the Widget. That makes it very expensive to create, so Flutter is trying to create a new Render Object only when necessary. 

Combining all trees

To understand how it all works together, consider the following code example: 

So there are actually three steps that will happen when the app starts:

  1. Flutter will create a Widget tree from all the Widgets used above.
  2. For each Widget in the tree, Flutter will create an Element by calling the createElement() method on the widget. That is how the Element tree is created.
  3. For each Element in the tree, Flutter will create a Render Object by calling createRenderObject() on a widget, creating a Render Object tree. 

Now when we press the button, the text inside it will of course change to „Hey”. Element object which has references both to the Text Widget and its Render Object will compare their runtime types. If they are different, a new Render Object will be created, with new values. However, if the runtime type is the same, there is no need to create a new Render Object, only properties will change and updateRenderObject() will get called, saving a lot of time. In our case, the second scenario will take place. Both Element and Render Object will stay the same, the only thing that will change is a text property and a new Widget will get created. This doesn’t bother us though, because Widget objects are very light and really fast to create.

Example of a first scenario could be a view like this: 

Here, when a button is pressed, a child of a button will switch between Row and Column. During rendering, Element will compare runtime types of Widget and Render Object, discover that they no longer match and instantiate a new Render Object in a place of the old one. 

Optimization like above lets Flutter render the user interface really fast. However, each build requires each Element in the tree to compare its Widget and Render Object, which could take quite some time for some really complex views, with dozens of Widgets. In order to avoid such situations and improve performance, we can try to extract complex build methods to separate Widget. If we manage to extract twenty Widgets from the build method and create another Widget from it, then the number of comparisons goes from twenty to one. That is quite a saving.

Bonus: In addition to comparing the runtime type of Widget and Render Object, Element is also comparing their keys. That topic will come back in future posts.

And if you need an experienced cross-platform development team that is enthusiastic about Flutter – give us a buzz! We will gladly help you with a product that will meet all your business requirements.

Creating animations in Android using MotionLayout

During the Google I/O 2019 event, the company introduced new features to the existing ConstraintLayout. One of the biggest advantages is a powerful motion editor called MotionLayout. It allows you to build complex, multi-parameter transitions driven by clicks or swipes.

Main benefits of using this approach are:

  • Visible way to create start to end transitions
  • Ability to change scenes on the fly
  • Connecting animated components with each other
  • Defining single frames called KeyFrames during the transition

Basic principles of MotionLayout

To better understand how this tool works we need to establish some elementary concepts. Firstly, most of the things are declared in your view file, not in code. To build motion scenes you need MotionScene, Transition and ConstraintSet. The main idea is to create a start and end scene and let your IDE fulfill everything between. It sounds pretty simple and in fact, it is!

Always have a vision of the end

We have a great landing page that shows projects that we brought to life in years of our existence. It would be great to create a landing app, too. Let’s think about the components that the app will contain.

The header is the first component and sits always on top. This is the first source of knowledge about our company. Next, we have cards with projects. I decided to create a minimalistic and not overwhelming form, so the users can decide which project they are interested in. Action dot is added in order to show the viewer that the card is interactive and the header isn’t. The last component is a rounded contact button. These views are clean and readable but with animations, we can show some details even better.

Animations that are meaningful

Let’s consider step by step how every detail can be improved. For example, the header replaces the logo, but for the user, it would be too big to show it always on top. There is a way to collapse it and still showcase the brand.

In MotionLayout, we create big and small cards. On transition, we define transparency change of title and description in order to hide or show them. Now it doesn’t take much space.

Clicking on the button, the user can pick our number and call us, but we also want to show him that we have a website. This can be achieved by exchanging a floating button with a bottom information label.

Here we scale the button depending on scrolling state. It is important to scale both X and Y axes. The label is enlarging its width from 0 to screen’s width.

Showing more information on the card

As we create a landing app all the needed information must stay on the same screen. This is quite a challenge. In this case, the card is also a separate MotionLayout. The result to which we are straining to is shown below:

In some way, the card’s title must be moved from the center to the upper left corner. This can be easily performed by adjusting the position of title in the middle of the way. Using the mentioned KeyFrameSet we can adjust the path to reproduce an exponential path.

The description is just expanding to the card’s borders and during growth, it is less translucent. This part should be declared in ConstraintSet.

When the card has more information we also should hide the “Click to show more info” text and notify the user about action to learn more.

To encourage the user in clicking, we spin the button 360 degrees and it jumps in from the bottom of the card. This is done via a simple rotation parameter. Helper text is moving to the end of the screen in that way it isn’t visible anymore. This is a vastly meaningful animation for users. This says: “You have shown more information but still it is possible that the helper text will come back with less information”.

Let’s sweeten this screen with a little of Lottie

Lottie is a big thing in the development of our apps. For example, in the InPost app, Lottie helped to guide the user through remote parcel unlocking making this process easy and pleasing.

On the card, we wanted to animate the action dot to make clicking action yet more interactive. Lottie is aware of MotionScene’s progress so it animates along with other components. We have used this open-source Lottie file created by Sumesh Sughatan.

The final app is clean, beautiful and completely animated. Playing with MotionLayout, you can show paths that represent all possible movements on the screen.


Now creating composite transitions in Android is faster and much more accessible. With MotionLayout we can build expressive and eye-catching layouts in order to approach flexibility and easiness now firmly identified with Flutter.

Hope you liked this short tutorial. We can do much more for you when it comes to animations, but not only. Contact us and find out what else we can do to make your product shine.

How to Create a Perfect Voicebot for Your Business?

Designing the process to perform Product Workshops for our innovative new service called Hellobot – which is a custom voicebot for almost every business out there – was definitely a challenge. But we did it and we want to show you how. In this blog post, you will find a case study with all main goals, solutions and the outcome we achieved. Fasten your seatbelts and let’s go!

As you may know already from our blog, a voicebot we’ve created is a tool to improve a lot of operations that are a part of daily business routines. Customer service, booking appointments, sales and marketing, even debt collecting – its capabilities are countless.

We’ve already done some Product Workshops for our clients to determine why they should invest in our Hellobot and what benefits it can bring to their companies. And when it comes to our workshops, we take things very seriously. Mostly because we know they are a chance to discover or improve the value of any product idea our clients might have. This method of work was designed by our team from scratch to deliver results for both parties in the software development project.

It was a natural step for us to design the whole process. We’ve built an original process that allows us to perform complex workshops full of comprehensive work methods and tools. All the stages we describe in this article are dedicated especially to voicebots and other voice technologies we offer at iteo. In this article, we focus on Hellobot – our pioneer voice service that we already implement into our clients’ businesses.

Let’s start with the basics.

What are voicebots?

Voicebot is a piece of software that allows people to communicate with voice interfaces using spoken language. It is a solution that doesn’t require additional programs or apps.

A bot can substitute people in many activities. For example, in the services industry voicebots often automatize customer support. They can solve many problems faster, which is a huge benefit. Also, scalability and availability are highly improved.

Why are voicebots gaining popularity?

Using speech as the mean of communication is one of the basic human interactions. Thus, all new voice-related solutions introduced to the market are much more natural to use by people, who appreciate simple conversation-like processes that don’t require additional learning or familiarizing oneself with new tools and systems.

That’s why voicebots are also promising products that can attract many clients in the future. Voice interactions can be connected with any other type of operations to build a complete customer experience with our products or services.

Part 1 – Designing Product Workshops for our Hellobot

Before we could even start selling Hellobot as one of our products, we needed to have a complete Product Workshops process ready to be used whenever a client needs it. So we’ve taken a couple of steps to be sure that we can provide a comprehensive solution for this type of service, so the client could be satisfied. Also, this way we could improve the development process on any stage of production.

Challenges and solutions

We needed to begin with the essential first step – which was to learn as much as possible about voice technologies. Our whole team studied blogs, YouTube videos, scientific articles and books on the subject. We wanted to be prepared for any questions and problems we could stumble upon along the way.

The next decision was to grow our team by hiring seasoned experts that were familiar with voicebots and similar solutions. With them, we could organize internal workshops that helped us to supplement and systematize our knowledge. Then, we discussed the main assumptions of the project and prepared original materials and methods we could work with during voicebot Product Workshops. Creating a stakeholder map helped us to understand who is involved in the project and what is its impact on them.

Designing the process

The main goal of all Product Workshops we perform is to create a product that will fulfill the needs of the clients but also their end-customers. To achieve that, we organize the workshop and then our experts work on the product using the collected material. That wasn’t any different for the voicebot case.

We wanted to organize workshop meetings that are insightful and engaging for both sides. That’s why we used different methodologies to create a process in a form that allows creative workflow and focus on business priorities. Before we even start, we usually meet up internally with the whole workshop team to discuss the agenda, the main goal, the materials we will use and the role of each team member.

Preparing the action plan was an interesting process itself, so we should focus a little bit more on it.

Creating the agenda

Preparing the agenda with clear steps to follow helped us to obtain a solid base for creating tailor-made voicebots and other voice-based solutions. Here is the list with all actions we’ve taken on our way to preparing the best Product Workshops for clients interested in voice products:

  1. Learning more about voicebots. Collecting information and knowledge from different online and analog sources in both Polish and English.
  2. Setting goals for the workshop. It is extremely important to have an explicit idea of the results we want to achieve with the workshop meeting with our client. The goal also determines the workshop format and enhances communication between the client and the team.
  3. Another goals-setting process is now dedicated to the product itself. That means we need to know all required functionalities to implement so the solution works properly and can be released.
  4. Now we can pick the methodologies for the concrete workshop subject. This stage is divided into two steps:
    a) Finding out if standard digital product workshop methods are suitable for this concrete product
    b) Browse for methods that are not used in digital product workshops but can be used in this project (eg. methods used for offline services)
  5. When all of the above is ready, we can now design the workshop process with all required materials – canvases that will motivate the client to work. They also make the whole process more appealing and help to see the whole effect of the workshop process.
  6. The last step is to pick the right team and introduce them to all the plans and the project itself.

What should be considered when designing the process?

Beforehand you should create a dedicated brief for the client that suits the type of workshop we are performing. This type of communication allows the team to familiarize themselves with requirements and pick the strategy accordingly. Also, using brief simplified preparations before the workshop. The brief has two goals – to give the client an idea of what they should expect and to give our team a chance to ask first questions – like the current state of business processes or how do they imagine a voicebot in their company.

Afterwards, it is worth spending some time researching work methods. Their purpose is:

  • To determine personas
  • To identify the target audience of the product
  • To design the bot’s personality that will match the company’s image but at the same time will correspond with the target group
  • To pinpoint and design the processes that should be automatized by the bot
  • To evaluate all the main process stages and defining KPIs so the bot’s performance can be measured and developed based on the important metrics

When browsing for adequate methods, we should consider a couple of factors. First of all, the methodology we will use should logically arrange the whole workshop process during two days of meetings. The amount of work should be diversified in terms of time and areas of influence, so the workshop is productive and interesting.

All the methods we use in this case were supposed to be based on empathy maps and problem-solving solutions. They should not require specialized knowledge, skills or vocabulary from the voice technology industry, because that would prolong the introduction phase of the workshop.

We’ve picked several methods but all of them required some modifications. This way we’ve customized these methods to fit our workshops process. These are among others: personas, bot’s personality and voice processes flow. The design of these methods is based on our experience in previous projects and workshops for mobile apps and software systems. Thanks to the mentioned canvases, we can help the client to be a co-creator of the solution we are building.

Determining bot’s personality

After the personas are set up when we know the real purpose of the voicebot we can determine the personality of it. It is supposed to match the company’s vibe. That’s a very important element because the communication style of the bot will influence client satisfaction directly. This is also crucial for the company’s image.

Voice processes flow

This complex part is the most time-consuming stage of the workshop. Using it we can design the bot suited for the chosen service. It allows us to draw the course of the process and also to summarize and describe all the elements that need to be fulfilled so the conversation with the bot can be performed with success.

Part 2 – Case study: Voicebot Product Workshops with our client

One of the biggest vehicle dealerships in Poland expressed interest in our Hellobot. As usual, we’ve started our collaboration with a Product Workshop session that lasted 2 days and gave us plenty of insight for the future voicebot product.

Product vision

We wanted to develop a minimum valuable product (MVP) to test the process for just one branch of the company. Based on the performance of the first version, we could collect feedback and the client could decide if they want to implement more of similar solutions. The MVP was supposed to not only simplify communication with customers but also collect the surveys after voicebot conversations.

The processes that the client wanted to substitute with bots were performed by assistants and advisors. Most of them were manual and time-consuming. With automatization, the employees could give more attention to the clients that visit the dealerships in person. We could also add another process that was not included in the phone customer service but would bring significant financial benefits for the brand.

Business goals

The main processes that could be optimized by the voicebot were:

  • Receiving positive feedback from the clients after a conversation with the bot
  • Reducing the number of unanswered calls which could result in losing potential clients
  • Reducing the number of clients that don’t show up to the service appointments and don’t cancel them beforehand

The marketing potential was not neglected either. With the voicebot, our clients could position themselves as an innovative pioneer of the automotive industry in Poland. As for internal benefits, simplifying the processes could reduce costs, raise the availability of the services and the customers’ satisfaction, too.

Target groups

As for the target audience, we distinguished two main groups.

  • Individual and corporate clients

They expect quick service, affordable prices and high-quality offers. Their relationship with the brand is rather close. Usually, they are well prepared for the conversation. They ask for prices and want to avoid a long wait for the service.

  • Fleet clients

Their habit is to call the service while driving via a hands-free set. They don’t mind higher prices but expect high-quality customer care with additional conveniences – like service appointments on Fridays and Saturdays, a lounge at the car service, etc.

For both of these groups, the voicebot can offer innovative customer support that is available 24/7. The main concern is that the bot might not understand the expectations as it is not human.

The course of the workshop

We’ve met with our client – a chain of authorized car showrooms and services in Poland – in their headquarters to perform Product Workshops. We aimed to achieve our goal within 2 days.

The beginning was dedicated to explaining voice technologies and all related themes to the client, so they could actively be a part of the workshop. We had to keep in mind that using complicated industry terms should be substituted with understandable vocabulary. In the case of more complicated topics, we needed to explain them clearly. We’ve created a visual map key to support our actions in this matter.

On the first day, we determined the target group and the bot’s personality. To do that, we needed to analyze which processes in the company can be automatized by the voice solution. We’ve also mapped the first process that would be a part of voicebot service. On the second day, we mapped another 2 processes and we discussed the technical aspects of integration between the systems.

We can proudly admit that we achieved all our goals. With all the actions described above, we could also build a positive relationship with the client. And that’s what matters when cooperating on a long-term IT project.


The whole Product Workshops process that we designed particularly to offer voicebots to our clients was a huge success. The result of our collaboration with the mentioned client we described in this case study was working out a solution based on voice technology that can solve problems and automatize operations.

If you would like to invest in a voicebot for your business – we can help with that. Hellobot by iteo is a complex, custom-made package that includes many types of voice-based services that can be implemented into your brand’s operations. We want to give you an extraordinary product, so let’s discuss your project. Don’t hesitate to contact us and tell us what you need. We’re here to digitalize and modernize your company. And we can always help you!

Optimize Your Customer Service with Voicebot

The current global situation is not comfortable for most companies. Nowadays the economy is based on customer relationships that are hard to maintain when we can’t meet face-to-face. Banning shopping malls and small businesses doesn’t mean our customers suddenly won’t have any issues, complaints or questions. We need extraordinary solutions for these tough times. A voicebot can be an example.

At iteo, we’ve been working on our own voicebot for some time now. We wanted to have a unique offer for all our clients that need an innovative, easy-to-use customer support system. But that’s not the only purpose this bot can fulfill. Let’s see which industries can benefit from using a voicebot and what kind of services it can provide.

Voicebot as customer service support

Customer care services can now be overloaded and overwhelmed by the magnitude of work. Queues on helplines suddenly can’t be unloaded, because clients can’t go to the closest facility and talk with an agent to fix their problem. Instead, they call and ask for help.

Voicebots can simplify the process of initial verification so consultants will get the calls that are suitable for their field of expertise and won’t need to forward them. Also, the voicebot can receive and process complaints, for example at home goods and appliances stores.

After the whole process of customer care conversation, voicebots can call the clients to perform satisfactory surveys. This way we will automatically collect data about the efficiency and performance of our employees. In exchange, it can offer free coffee vouchers or other small prizes.

Another great functionality voicebots can offer is collecting consumption data for power and gas plants, as well as water facilities. Instead of sending meter read-outs via email, the voicebot would call every customer once a month so they can provide the correct information. With a voicebot, handling thousands of clients at once and updating the database in real-time is not a problem, so the process would take much less time.

For all digital businesses that need to fix problems and reset passwords hundreds of times daily, a voicebot can take over some of these issues and automatize them.

Voicebot and all kinds of appointments

Every company that works based on appointments that are set to concrete days and hours have problems with clients that don’t cancel and don’t come to the prearranged visit. That includes doctors, hairdressers, beauticians, car workshops and many more. Sending text messages solves the problem to some extent but not completely.

Let the voicebot call your customers on your behalf. It can confirm, change and cancel appointments. The client will more likely pick up the phone than answer a text message. This solution is definitely worth trying!

Other industries that could benefit from voicebots are events and conferences. They can collect a confirmation of arrival and update the participants about the agenda.

Voicebot in debt collection services

Well, the bot won’t knock at the client’s door to collect the debt. But it can be helpful at other stages of this long process. First of all, the voicebot can monitor the current database of indebted clients and contact them to inform them about their balance. Then, it can collect payback declarations and control how many of them were paid on time.

Because the voicebot is storing data of all performed operations, afterwards we can analyze and report its effectiveness. If the client fails to pay back their debt, it can contact them again. All these actions can be automated and done simultaneously for many customers at any time we will program it to call them.

Voicebot as an informant

Scriptwriting for voicebots allows the developer to program them to do the exact action we need it to do. For example, for our client InPost that offers innovative logistics services, we would propose a parcel status functionality performed by a voicebot. The bot would call the client to inform that the package is waiting in the Parcel Locker. And the other way around – the client can call the bot to find out what is the status of their parcel at the moment. With remote Parcel Locker opening, InPost would offer the most modern set of features among all courier companies in Poland.

Another informative scenario we can imagine for a voicebot is to handle knowledge bases for museums and art galleries. Placing interactive devices in or close to the exhibits allows the viewers to ask them directly about the thing they are seeing or the place they are visiting. The voicebot will answer in an elaborate and detailed manner – of course, if that’s what we want. Voicebot scripts give us countless possibilities.

In times of coronavirus pandemic, voicebots would allow governments to quickly react and create FAQ helplines for citizens to find out what’s going on and how to act in times of crisis. Also, they could automatize 911 calls (in Poland the number is 112) to receive emergency reports and send them to adequate services like police, fire departments, hospitals, etc. 

Voicebot in sales and marketing

Imagine contacting us at iteo via phone and hearing a voicebot sharing all the details about our digital agency, including the clients we cooperated with in the past. Voicebots can be an amazing tool for marketing and sales support.

Marketing campaigns via voicebots can be highly informative and motivating. The bot could tell clients about current promotions and free deliveries, handing them discount codes and giving them practical tips about online shopping and complaints policy. Especially useful for retail and e-commerce businesses.

For food chains and delivery services, voicebot could be an alternative to online orders. Sellers (eg. IKEA) can use this system to receive and process purchases, especially in times when their on-site stores need to be closed.

Not to mention contests and quizzes that can be automatically run by a voicebot.

Why did we produce our own voicebot?

When we decided to produce our own voicebot, our goal was to provide our clients with business value in a short time but with high quality. We want to offer and integrate the majority of voice technologies in Poland and abroad. They can create positive experiences for our clients and their customers, no matter what industry they are a part of.

Voicebots can perform inbound and outbound tasks. Phone calls are operated by the bot using natural speech which is possible with technologies like ASR (automatic speech recognition) or STT (speech to text). The technology and provider can be will be picked depending on the process requirements.

The natural language processing system interprets the intent of the statement and the original Hellobot system directs the conversation to give the right answer that will be then spoken with TTS (text to speech) synthesizer. We can also record a voice-over for the bot beforehand.

Hellobot by iteo can be integrated with existing call centers or can be a separate tool connected with other systems that belong to the client – for example a CRM.

Hellobot – a voicebot curated by iteo

An off-the-shelf product that allows to quickly fit it into the company’s operations with an intuitive setup process. Hellobot optimizes and supports key processes like debt collection, setting and confirming appointments, sales, help desks and more. Best for SMEs and enterprises in banking, insurance, automotive, different types of services, governmental organizations and many more. Our voicebot adjusts to variable branches and different types of customer service models. Hellobot can also serve as an individual unit to support corporate operations and internal processes.

We can offer ready-to-use, predefined voicebot prepared to be used in specific processes within chosen industries or customize it according to customer’s specifications. In both scenarios, the voicebot can be quickly set up and implemented into existing operations.

Tough times for your business? Try voicebot!

We can provide any type of voicebot solution just for you. All you need to do is this first step which is contacting us and telling us about your business. We can provide exactly what you need to simplify your current operations. With a voicebot, your firm will be safe in times of pandemic, but not only. Once you try this solution you won’t let it go. Automatization and data organization is unbeatable. And that’s the key to give your customers an even better experience and grow your company’s value. So? Will you say “hello” to Hellobot by iteo? 😉

Take Your App for a Test Drive with Using Prototype

The primary definition of the word “prototype” is: the first example of something, such as a machine or other industrial product, from which all later forms are developed. In my opinion, it is a clue about this topic because we currently have a lot of definitions and variations for this word. Of course, we (as software makers) use the word “prototype” for a digital product, not a machine or industrial parts, but the basic sense is the same – to make an example of the product. 

The most popular ways of prototyping are manual (paper) or digital (clickable mockups). On a daily basis, we use digital prototyping. In order to make a clickable prototype we need wireframes and software that enables us to create interactions between the screens.

Why do we prototype?

We can’t imagine a good design process without prototyping. It gives us the possibility to sample the product, communicate with the client and the rest of the development team, improve it, test it and as a result – implement faster. Building quick prototypes can help us to conclude which version of the functionality is better, so we can turn them into real projects as soon as possible.

If possible, we try to use a real copy (text) in our prototypes, not fake lorem ipsum. 

It helps to improve the user experience at this stage and simplify the interaction. Also, we use our prototypes to check the feasibility of user flows.

What do we gain thanks to prototyping?

There are many benefits of prototyping – for both digital agency and its clients. The undeniable advantages are:

  • We save a lot of time (and client’s money) in the development process 
  • We can confirm or rule out the hypothesis from earlier stages
  • We can make changes quickly and more effectively
  • We can test it easily with other people and target users
  • They’re non-binding
  • We give a good opportunity to be collaborative, close with the client, and stakeholders

What possibilities does it give?

Testing! Yes, it is one of the biggest values of prototyping.

Of course, we can test a prototype in a lot of different ways, for example: user tests, corridor tests and more. Every form of testing is a good opportunity to check how the demo product works and how people interact with it. Observations made during testing can give suggestions and tips on what we can improve to bring out the value of the product.

Be careful! There are traps!

Sometimes, clients or stakeholders can forget that this is just a prototype, not a final product. In this case, they get the wrong idea that the final application/system will look and work exactly the same as presented. We can make prototypes similar to applications but never the same (taking under consideration UI layer, micro-animations and native app solution).

The other thing is that while working on a prototype we can easily and quickly make some changes in order to test it again. This possibility can create a misleading feeling that the developers team can make the same changes in the actual application so fast as well. It’s definitely not true, and it’s one of the things that designers should point out to clients. Only a prototype gives us the possibility of fast adjustments and also, this is the exact reason why we work on prototypes at the first stages of the process – we make changes BEFORE it gets coded.

So do you need a prototype?

To sum it up, a prototype is a powerful tool that gives everyone in the project a clear picture of the product and its context. Developers can prepare for the upcoming project thanks to a clickable prototype and see the logic of the project. Designers and developers can use it on various levels of product creation. On each of those, it is important to watch and listen to how people use and interact with the prototype. Oftentimes, small changes in details can improve user feelings of interaction with the product.

It’s good to use this tool to work on a project, so we always use it. You should definitely consider working with a digital agency that can offer you a prototype before they start coding and designing. Let us know about your business goals so we can create something unique and phenomenal.

Improve Your Digital Processes in Times of Global Crisis

As you may know, we are facing the coronavirus pandemic at the moment. Is there any way to save your business from economical fallout that can happen because of it? Definitely! We need to observe changes in consumer behaviors. Then we act to support our brand’s growth while making our client’s lives easier.

Coronavirus (COVID-19) is spreading fast. More and more countries are introducing regulations like canceling mass events or closing public facilities (cinemas, gyms, etc). They also recommend staying at home and working remotely if possible.

Changes in society’s life organization have a huge influence on existing entrepreneurs. The model of goods and services consumption we knew until now is evolving. Consumers turn to online shopping and activities they can do at home. They also prefer running personal and professional errands without face-to-face contact. Thus, business digitalization is a huge chance at the moment.

The economic crisis was forecasted some time ago but no one expected it to happen so rapidly. We are still not able to predict how long the stagnation caused by the pandemic will take and what will be the outcome of it. Many industries can suffer and some small businesses can go bankrupt. 

Every company should reflect on its strategy for upcoming months and adapt it to the new market situation. It can be easier or harder, depending on the industry, but new technologies can help most of them. The internet can be a relief in an hour of economic depression.

How can iteo help with digital product development and moving business processes to that area?

Our years of experience in software development are priceless nowadays. We have a portfolio of many clients who moved parts of their operations to the digital area – which caused the company’s growth and positively influenced clients’ satisfaction. We offer our services to many different industries where each client has their own business needs and goals. While the pandemic is still ongoing, our common purpose should be simplifying clients’ lives.

Here are some examples of solutions that allow our clients to run their businesses safely and effectively while the coronavirus is still out there:


Mobile application for the Polish logistics industry leader. Includes innovative functionality of remote Parcel Locker opening. Thanks to this option, clients have no need to touch the machine’s computer screen to pick up their package.

It is worth mentioning that this app won the main prize and was granted first place in the “Services” category during the Mobile Trends Awards gala. It was downloaded millions of times from Google Play and App Store. Also, it was ranked as the first most downloaded mobile app.


Because it is strongly recommended to not leave home, lots of clients decide to buy online. Rossmann app allows them to find beauty and hygiene products they need and order them to an address of choice. Online payments are also very useful – we don’t need to have direct contact with the courier, touch the money or payment terminal.

Great digital solution not only for the beauty industry but for all e-commerce businesses.


It’s a platform for finding trustworthy opinions on aesthetic medicine specialists. It offers online consultations and procedures knowledge base, too. Of course, right now we should not invest in this kind of medical help, but this healthcare industry product is proof that we can create an app that will support doctors in teleconsultations and optimize the work of medical facilities. Remote prescriptions issuing is one of the functionalities. 


Fans of dining out are disappointed with restaurants and bars closing so they order more food online. The personalized app is scalable and effective so introducing changes into the menu or prices is quick and easy. An additional function of no-contact delivery allows the user to pick up their order safely – the courier will leave it at the door.

Fit @ Home

Closing gyms and fitness clubs can be problematic for people who try to stay fit. No contact with a personal trainer can negatively influence their motivation but also make them realize they don’t know what to do. This app helps to work out at home – it has ready-to-use workout plans and tips on how to use them. We can create a similar product for gyms and trainers so it will be compatible with other services they offer.

Leading Polish FMCG wholesaler (name protected by NDA)

Thanks to online shopping including the click & collect order pickup system, this app helps with quick goods ordering and picking them in the most convenient way from the chosen location. It also minimizes the need to touch shopping carts, baskets and products on shelves. We don’t need to spend time in the shop which is crucial while the pandemic is ongoing.

Voice bot by iteo

Original solution by iteo team with the potential to help in many industries. Voice bots can effectively perform debt collection processes, also they offer to book medical appointments, check order statuses, initially verify interest in certain services, lead satisfaction surveys and much more.

This product supports cost optimization in the company while increasing customer support quality and process effectiveness. It is available for many different industries because it can be personalized and adjusted to concrete services. With voice bot, we can offer customer care via phone – without expecting our clients to leave their homes.

All apps mentioned above were developed by specialists from iteo. These are digital products that boost and enhance daily routines with smartphones and other mobile devices.

We can build a similar solution for you – including your clients’ needs and your brand’s industry. We’ve already helped many of our clients in these uncertain times and we are continuing to do so. We know that technologies and online access are the answer for all companies that want to survive the pandemic, crisis and other random events.

Our mobile applications are appreciated by industry specialists and clients from around the world. They get a lot of positive feedback in app stores from where they were downloaded millions of times. Also, they are listed high in application ranks, not only in Poland but also in other countries where our clients come from. 

Product Workshops online

For all clients that are interested in the digitalization of their operations, we offer our original work method – Product Workshops. It is a process of project initiation that allows us to effectively find out what are the requirements and expectations of our clients. They also help us to collaborate with them on product vision that presents concrete values.

The main benefits of workshops are verification of business assumptions and technological possibilities for production, as well as creating customer experience vision. Product Workshops help with project cost estimation, proposing adequate changes and also allows us to quickly build a clickable prototype. The whole process can be done remotely.

Why should you work with iteo?

  • We’ve developed a mobile app of the year 2019 (main prize in Mobile Trends Awards)
  • One of our apps was ranked number 1 in the Polish App Store and Google Play
  • Another app we created was ranked number 1 in the American App Store
  • We work using the best technologies and best hardware
  • We guarantee the quality and scalability of our team
  • We were honored as Microsoft Gold Partner
  • We are regularly awarded for our design projects
  • Our clients include InPost, Rossmann, Dominos, Itaka, Shell, Kia, Deloitte and exciting startups from 5 continents
  • We are a reliable business partner and responsible employer 

Contact us!

If you want to move your processes to the digital area and work despite the crisis – we invite you to contact us. Thanks to online Product Workshops and other tools that allow us to efficiently communicate and collaborate remotely, we can create a unique IT product that supports your brand’s operations and gives your clients positive value!

What Does it Take to Develop an App of the Year?

InPost mobile application created by iteo won 1st prize in Mobile Trends Awards!

This app is a native solution developed by the iteo team, with a total of 3 million downloads and also a number 1 in app stores in Poland. It helps InPost customers track their parcels. The app is especially appreciated by the users for the innovative functionality of remote Parcel Locker opening.

Mobile Trends Awards is an annual gala for entrepreneurs who introduced modern technologies into their business operations. With over 9 years of history, Mobile Trends Conference is called the Oscars of the digital industry in Poland. It is an event to be for all companies and brands that use mobile applications, innovative websites and other IT products to make their customers’ lives easier.

This year our mobile app for InPost (one of the biggest, most appreciated and acknowledged courier companies in Poland) won the main prize being highly rated by the competition jury. At the same time, it also was granted first place in its category which was “Services”.

For InPost that night was very successful, as it won 3 prizes in total. Now, we would like to share a secret with you. This article will reveal how to develop an app of the year.

InPost – business goals and needs

InPost is a leading logistics brand in Poland. One of the main reasons is that they offer innovative services, including Parcel Lockers. They are parcel collecting spots available 24/7 that don’t require employees to operate them.

The goal of collaboration between iteo and InPost was to develop a mobile application for allowing the users to handle their parcels. In the future, the project is intended to grow by adding new functionalities and constant updates.

Another important goal was to completely give up text messages with parcel pickup codes. This solution was highly ineffective cost-wise (InPost was sending millions of text messages daily!) and also was risky in terms of potential frauds.

The client came to iteo with a clear plan – they wanted a flawless mobile app for their services. Good preparation before the beginning of the project was particularly crucial because the iteo team knew exactly what they needed to do.

UX and UI design

The design process began with Product Workshops. The assumption was that they would last one day, but the client asked to extend them for another day in order to refine the functionality. The application prototype was prepared on the basis of the scope determined during the workshop. It was assessed internally by the InPost team. The result of these activities was the creation of MVP (minimum viable product) that included basic and most important functionalities.

After creating the second prototype (based on MVP), the iteo team designed UX for parcel tracking and other side components of the application – only those that represented business value for InPost were implemented. In the second version, the structure of the application remained unchanged, but it was redesigned according to the company’s brand book, including color consistency and the use of new fonts.

A brand hero called Mat was also designed. It is a character that looks like a parcel, but its main purpose is to communicate with the users.

Currently, cooperation in this area consists of ad hoc consultations and engaging UX or product designers only when necessary.

Useful functionalities appreciated by critics and users

The app includes many features that InPost customers adore:

  • Parcel tracking – allows checking the status and location of the parcel
  • Remote Parcel Locker opening – a mode for opening the locker without touching the computer screen
  • Order history – an archive of all previous parcels
  • InPost spots map – shows the location of all Parcel Lockers and other InPost offices
  • News display – for reading about new functionalities and technical breaks

Thanks to the cooperation of iteo developers and designers with the InPost team, the application for both Android and iOS gave InPost clients a way to significantly speed up the process of parcel pickup. This way they made their service even more convenient to use.

Details of collaboration – process and workflow

We started working together in June 2018 and then the first stage of version 1 production started. It was released in April 2019, while the version number 2 was live in November 2019.

The project included the development of two native mobile applications for Android and iOS devices. The backend was coded in Java. For Android, the app was written with Kotlin Framework, while for iOS we used Swift Framework. We used many great libraries to extend the possibilities of each framework.

Collaboration with InPost was led according to Agile and SCRUM methodology. We began with our original work tool which is Product Workshops. Also, we often met up with the client to create and clarify the concept of the product and its functionalities. During the project, sprints are held every 2 weeks.

The QA procedure in the project was done with automatic and manual tests based on cases we listed at the beginning of the project. All testing parties were obliged to check the whole list before releasing each subsequent version of the application.

Innovation – remote Parcel Locker opening

This functionality is definitely something innovative when it comes to the logistics industry. Implementation was anticipated from the beginning of our collaboration, and it was shared with the users with the app’s version 2 release. Remote locker opening fulfills the business goal directly because it allows the users to quickly collect their packages which means that InPost can deliver even more of them.

The client wished that the process of parcel collecting was as similar as possible in the mobile application and on the Parcel Locker. The goal was to simplify the process for people who already knew it from Parcel Lockers. For this exact reason, the arrangement of buttons is quite similar but some elements had to be cut off because smartphone screens are much smaller than computer screens in Parcel Lockers.

The process of remote parcel collecting is strictly designed to not interrupt the client’s system. That’s very important because some of the solutions we considered could overload the InPost system with too many requests per second. 

Remote Parcel Locker’s opening functionality was highly praised by InPost clients. They are the leader of logistic services in Poland and their engagement in introducing better and more innovative solutions is appreciated by the users. Also, their attentiveness to client satisfaction is undeniable.


The result is a simple, intuitive and modern mobile application for Android and iOS. It allows customers to track shipments, open Parcel Lockers remotely without queuing and entering verification codes, as well as to keep up to date with the latest news or technical breaks.

The first version of the application was created from the very beginning – both on the development and design side. The second version received additional functionalities and redesign.

With over 100,000 users using the application every day, almost 100% encounter no problems. App Store and Google Play ratings are around 4.5 stars, which is a great result considering the number of people using it every day. Both versions of the application for a long time remained in the first place in Google and Apple stores.

Google Play downloads: +1mln

App Store downloads: +1mln


“iteo has created with us the application to collect and track InPost parcels deliveries. One of the main tasks of iteo during our cooperation was to create the UX and UI design of the application. Iteo has demonstrated the User’s understanding and is familiar with industry standards, which has allowed creating transparent and intuitive User paths. The provided design makes the application memorable while maintaining the simplicity of solutions.

During the entire development process, we could count on the full commitment and professionalism of all team members, and their proactive attitude has allowed us to implement many interesting solutions. We recommend iteo as a competent partner who met our expectations and conducted the project within the scope.” – Izabela Karolczyk-Szafrańska, Marketing Director of InPost

From Google Play and App Store:

  • “Very cool. Notifications, shipment status, easy and intuitive operation. New useful features are added with every recent update. Very helpful application and so far in my opinion bugs-free. Indispensable for me as a person using InPost services. I would recommend it.”
  • “An example of a perfect Android app. Everything works as it should, and the design of the application is stunning.”
  • “Application – a revelation;) constantly updated shipment status, push up notifications when the package is already in the parcel locker. The shipment is much better tracked than the number received by e-mail. Great, keep it up! Have a nice day at InPost and everyone working there!!!”
  • “Simple interface, intuitive control, no problems, and above all with jamming touch panels on some “cabinets”, displaying a QR code, it is a savior. It’s worth downloading because it’s a good application.”
  • “Application is the luxury we deserve! 4 packages collected in just over a minute!”
  • “Such apps should be the standard at courier companies.”

And that’s all, folks!

So now you know how to develop an app of the year. We are proud that our product developed for and with InPost is so appreciated by the clients and industry specialists. Creating viable, extraordinary software is our passion. Winning competitions like Mobile Trends Awards is proof that our products present certain value and quality.

If you would like to cooperate with us – don’t hesitate to send us a message. We will gladly discuss all the possibilities with you. Let us develop a mobile app or a website that will fulfill your business goals and give your clients a positive experience.