At the end of the last quarter, I began working on a task to manage emails for various customers, specifically for automobile dealerships. Initially, our team's approach was to use helpdesk systems like Zendesk or Help Scout for managing emails. It wasn't that hard. We could create 3–4 inboxes for different departments—parts, service, and general enquiries—and assign different departments to the inboxes, with a minimum of 3–4 users per department. Sounds simple enough.

Everything was smooth in the early stages, as usual. Things got complex when requirements changed and the helpdesk system proved insufficient for our use case. We started onboarding a few small dealerships to this setup, and within a month, it became quite challenging. Clients started complaining about how slow the system was. Their main concern was navigating between the DMS (Dealership Management System) and the helpdesk software, even for simple requests like finding service time slots or the availability of loan cars. Although this could be easily achieved by adding APIs that integrate with software like Zendesk, the requirements began to evolve. The number of APIs and the level of customisation we required grew steadily.

We also thought it would be really cool to integrate AI capabilities into the application for automatic response handling and more. So, a new project was born. I am always hesitant to start something that I believe is already a solved problem. Basically, we are going to build a helpdesk system with specific agentic capabilities. After trying 2–3 SaaS products, I was convinced to build a product that can handle edge cases specific to automobile dealerships. We decided to call this product 'AIdesk.' We need a name for the git repository, don't we? :)

To start, the fundamental components of any helpdesk system are to handle incoming emails and send responses. To send a response, you need users. Not just any user can reply to an email; it needs to be someone with the domain knowledge required for the content. Wouldn't it be better if incoming emails were automatically assigned to users based on their domain expertise? In most dealerships—specifically in the automotive sector—an employee handles more than one task, such as service, parts, and general enquiries, depending on the size of the organisation. This is crucial for us, as there are many small, family-owned businesses in New Zealand. Even without much "AI magic," we ended up with modules for inbound emails, user management, tagging (for assigning emails to users), and domain management. A basic helpdesk product must have these components to be usable. On top of this comes the AI magic.

We started the project a week ago. The tech stack for the project is as follows:

  • FastAPI, SQLAlchemy, and Postgres for the backend
  • React for the SPA (Inbox and other UI functionalities)
  • Cloudflare for handling inbound emails, as most of our protection is handled by them
  • SES for email sending

With these as our foundation, we are going to build the entire application. Once we have the basic functionality working, the other aspects will be interesting. We are still using other software to manage our current system; I hope dealerships can survive with that for a while longer. I had always wanted to go full TypeScript for the backend as well, but the reason we chose Python is mainly for integration with the RAG system. Some dealerships have policies and regulations on how certain enquiries are replied to. Using this knowledge, I believe we could make the entire reply/response cycle autonomous using agents. While this is a far-fetched idea right now without a solid foundation, it should eventually be our main goal.