Built-in Chat

Instant messaging between a customer and a psychic

Industry: Communication

Type: Web development

Time: 3 months (MVP)

Platforms: Web

Project Idea

One of our most trusted partners approached us with an idea of a web chat. They wanted to add it to the clairvoyant marketplace we worked on together before. The addition of chat should allow customers to receive answers quickly and provide psychics with  a stable income flow.

Project team

  • Project Manager
  • Business Analyst
  • Tech Lead
  • Backend Engineer
  • QA Engineer
  • Two Frontend Engineers
YWS > Works > CaseStudy > Chat solutions > Images > First fileYWS > Works > CaseStudy > Chat solutions > Images > Second file

Billing

A clairvoyant can set their rate per minute, so the client will know how much to pay for the conversation.

Clairvoyant status

In a profile, clairvoyants can set their status and define the preferred means of communication: text/chat, calls, or both.

Offline chat

If the Internet connection is weak or unavailable, a client can send an offline, SMS-like message to a psychic they want
to talk to.

System messages

The chat itself notifies clients and psychics about the start of the chat, the start of the billing, low balance, and can auto-recharge funds during the chat if needed.

Status

A psychic can set their availability status and define what type of communication they prefer: Chat only, phone only, both, offline message only, or set their status to ‘unavailable.’

Billing

Billing starts automatically when the chat starts and the participants are notified about it with a system message. In the case of insufficient funds, the customer account can be recharged automatically or manually, with a wide variety of pre-integrated payment methods. Also, the billing stops if the chat is inactive or there are no funds in the customer’s account. Offline and SMS messages are billable per message.

YWS > Works > CaseStudy > Chat solutions > Status & Billing > Billing > File

Notifications

Both participants receive system notifications about activities in the chat. A psychic and a user can be notified about incoming messages, detected inactivity, upcoming appointments, low funds, and more with a flashing light and/or sound.

Text chat

A user can start a paid text communication with a selected psychic. The user is billed by the psychic’s designated rate per minute. If the Internet connection is weak or the psychic goes on a break, the chat is ended and chat billing stops shortly after.

Offline messages

If the psychic is not online, but the issue is urgent, a user can send an offline or SMS message. The psychic can choose to accept it and continue offline communication.

YWS > Works > CaseStudy > Chat solutions > Text chat & Offline messages > Offline messages > File
YWS > Works > CaseStudy > Chat solutions > Technology stack > File
YWS > Works > CaseStudy > Chat solutions > Phones > File

Challenges and Solutions

Updating the psychic’s status

The marketplace has several legacy sources of a psychic’s availability status (online, offline, on a call, etc.). Unfortunately, they weren’t properly synchronized with each other and had different response speeds, so it was hard to ensure the correct status was set..

We used reverse engineering to understand the logic of availability status and fixed it.

Introducing a new merging strategy

The project has four separate branches that can have a two-week difference between them. This makes the merging and deployment process resource-consuming to complete.

We are introducing trunk-based development with feature flags to optimize merging and release processes.

Working with legacy systems

The service works with several legacy systems that have no documentation and sometimes we had issues getting the data we needed from them.

Reversed engineering helped us in this case too. We also applied several unit and integration tests to get the correct parameters needed to retrieve the data.

Results

New updates every two weeks

The redesign is coming!

The chat is released

Real-time billing

YWS > Works > CaseStudy > Chat solutions > Results > Background