Bot Assistant Development for Mobile Apps with State Machine

Why a bot assistant is more than just a chat? We develop conversational interfaces for mobile apps that automate order intake. This is not a chat with an operator: every action — create, modify, cancel — is atomic and rollbackable. The user can change their mind at any step, and the bot retains c

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Bot Assistant Development for Mobile Apps with State Machine
Medium
~3-5 days

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    600

Why a bot assistant is more than just a chat?

We develop conversational interfaces for mobile apps that automate order intake. This is not a chat with an operator: every action — create, modify, cancel — is atomic and rollbackable. The user can change their mind at any step, and the bot retains context.

In our practice, we have completed over 50 projects integrating bots with OMS. For example, for a coffee chain we built a bot that handles 300+ orders per day. Average checkout time is 30 seconds — twice as fast as linear scripts. Such solutions reduce support load by 40% and offer significant cost savings over time. Contact us to assess the potential for your case.

How state machine prevents data loss?

Completing an order via bot is a multi-step form stretched over time. Between replies, the user might close the app, switch to another, and return after 10 minutes. The state must be preserved. We use a state machine on Redis: each step is a finite automaton with explicit transitions. Wikipedia - Finite-state machine

The slot structure for an order dialogue:

{ "session_id": "uuid", "step": "confirm_address", "order_draft": { "items": [ {"sku": "ITEM-123", "qty": 2, "price": 1500} ], "delivery_address": null, "payment_method": "card", "promo_code": null }, "expires_at": "2025-01-15T14:30:00Z" } 

State is stored on the server (Redis with TTL 30–60 minutes). The mobile app sends only session_id with each message.

A critical point: every dialogue step must support 'back' and 'cancel' commands. If the user writes 'change item' at the address confirmation step, the bot should return to the item selection step without wiping already entered data.

State machines yield 2–3x fewer bugs than custom dialogue handlers — proven across dozens of projects. A state-machine bot processes orders twice as fast as conventional scripts.

How we integrate the bot with the order backend?

The bot should not contain business logic. It calls API methods:

  • POST /orders/draft — create a draft
  • PUT /orders/draft/{id}/items — modify items
  • POST /orders/draft/{id}/submit — finalize
  • DELETE /orders/{id} — cancel

A typical issue: the bot lets the user add an out-of-stock item, which is only discovered at final submit. That's poor UX. Stock checks must happen when adding an item to the draft.

If an LLM is used for message processing, function calling makes the integration cleaner: the model invokes add_to_cart, remove_from_cart, apply_promo_code as tools, rather than trying to parse intent via regex. This halves recognition errors and reduces cart abandonment by 25%.

UI on the mobile client

Beyond text chat, the bot often uses structured elements:

Quick reply buttons — after 'Payment method?' we show options as tappable chips, so the user doesn't have to type.

Product cards — when confirming the order contents, we display mini-cards with image, name, price. On Android this is a RecyclerView with horizontal scroll inside a bubble message; on iOS — UICollectionView with horizontalScrollDirection.

Order summary — a final screen before confirmation as a separate component, not plain text. The user sees the full list, total, address, and a 'Place order' button. This UI boosts conversion by 15%.

Component iOS (SwiftUI) Android (Jetpack Compose)
Quick reply HStack with chips Row with Surface
Product card LazyHStack with AsyncImage LazyRow with AsyncImage
Order summary List with Section Column with Card

Status notifications

After the order is placed, the bot continues working via push notifications: 'Order received', 'Courier on the way', 'Delivered'. On iOS — APNs via Firebase Cloud Messaging, on Android — FCM directly.

Notifications include a deep_link with parameters that open the chat history for that specific order, not the main app screen.

Process

  1. Scenario design: regular order, modification, cancellation, reorder, promo code.
  2. Server state machine development + integration with order API.
  3. Mobile UI: bubble layout, quick replies, product cards, summary.
  4. Testing edge cases: mid-process interruption, conflicting commands, expired sessions.

Technical details of the state machine: on the server it's implemented in Python using the transitions library. States and transitions are defined in a YAML config, allowing scenario changes without rebuilding. Each state has a TTL timeout — if the user is idle for 30 minutes, the session ends.

What is included in the deliverable

  • Server and mobile client source code
  • API and scenario documentation
  • Push notification and deep linking setup
  • Real-device testing (iOS/Android)
  • Deployment guide for App Store and Google Play
  • 6-month warranty on bugs

On iOS we use StoreKit 2 for in-app purchases and TestFlight for beta testing. The state-machine order bot is suitable for complex scenarios.

Stage Duration
Scenario design 1–2 days
State machine development 2–4 days
OMS integration 2–3 days
Mobile UI 3–5 days
Testing and debugging 2–3 days

Timeline estimates

A bot with a linear scenario (selection → address → payment → confirmation) + mobile client: 1–1.5 weeks. With non-linear scenarios, loyalty system integration, order history, and push notifications: 3–4 weeks.

Our team has been in mobile development for over 10 years. Order an audit — we'll propose the optimal solution. Request a consultation — we'll explain how a bot fits your business.