Full tech demo 🤘

https://youtu.be/1NJbXjI5FoE

What it is?

Call2Jira is a Jira application designed to simplify the bug reporting process by enabling customers and clients to report issues using their voice. Call2Jira leverages AI technology to bridge the gap between customers who prefer voice communication and developers who need clear, concise bug reports in text format. This AI-managed system not only simplifies the bug reporting process but also enhances collaboration between developers and customers.

How does it do it?

Call2Jira streamlines the bug reporting process using the following methods:

  • Phone Numbers and Voice Reporting: Call2Jira provides local phone numbers from major cities worldwide. Customers and clients can call these numbers to report bugs using their voice, a more natural and expressive channel.

  • AI-Powered Interaction: When a customer calls one of the dedicated lines, an AI system greets the customer with a personalized message. The AI then records the customer's issue as they describe it in their own words.

  • Text Conversion: The AI converts the recorded voice message into text. During this process, it eliminates unnecessary information and rambling, ensuring the resulting message is clear and concise.

  • Jira Ticket Creation: With the converted text, the AI generates a comprehensive Jira ticket for the designated project. This ticket is ready for a developer to address.

  • Developer Collaboration: Developers can work on the generated Jira ticket as they would with any other ticket. If they need additional information from the customer, they can request it directly within the ticket.

  • AI-Managed Communication: The AI identifies customer inquiries within the ticket and transforms them into formal questions. It can convert technical jargon into more accessible terms. If necessary, it schedules a call with the customer at a suitable time to record their voice again and transform it into a comment that is added to the Jira ticket.

  • Time Zone Coordination: Call2Jira manages all interactions asynchronously and takes into account the callers' time zones to ensure smooth communication.

How is Forge able to do this?

The key actors in this context are as follows:

  • C2J Admin Page (UIKIT V2): This is the sole front end of the application, utilizing the jira:adminPage module.
  • Forge: The primary backend, where an instance of C2J operates. It leverages modules like scheduledTrigger, jira:issueAction, and webtrigger.
  • C2J Proxy: A microservice functioning as a centralized repository for managing phone numbers/extension availability (exposing an API) and providing support for file processing, thereby offloading the heavy lifting from Forge.
  • Jira API: The Jira API.
  • OpenAI API: The OpenAI API.
  • Twilio: The provider of phone numbers and communication services.

These actors interact with one another in three main business logic areas: The creation of the incoming call flow, The management of incoming calls, and The management of outgoing calls.

The creation of the incoming call flow

This business logic enables C2J to store the relationship between a phone number (including the extension) and a user's project (along with information such as the greeting message, issue type, issue resolver, and more) in the Forge Storage API. It is designed such that all user information is stored within Forge, and authorization and authentication between Forge and other services are managed using a zero-trust cryptography approach.

This is how this business logic looks: UML

The management of incoming calls

Incoming calls are initially notified through a POST request to the C2J proxy. At this point, there is no information available about which Forge instance of C2J should handle the call. The extension is a required piece of information, and once provided, the phone number and extension pair is matched in the database. A Forge webtrigger URL is fetched to determine how the call should be handled. It's important to note that all sensitive information is stored in Forge.

Following this, a series of API calls are triggered among Forge, the proxy, OpenAI, and Twilio, ultimately resulting in the creation of the ticket.

This is how this business logic looks: UML

The management of outgoing calls

Outgoing calls are initiated when additional information is required for an issue. The issue resolver submits a request for more information, which is then retrieved by the AI for processing. Subsequently, a call is placed in a queue using the Scheduled Trigger module. At hourly intervals, a job is executed, and if it's a suitable time to call in the original caller's timezone, the request is forwarded to Twilio to initiate the call. If there's no answer, the job remains in the queue for a retry.

After the call concludes, Twilio notifies the recording, initiating a process similar to the one used for incoming calls, involving communication between C2J, Forge, and OpenAI.

What is next?

Call2Jira isn't limited to just bug reporting; it offers a versatile platform with multiple potential use cases. By adjusting the AI prompts, new and exciting use cases can be managed. These may include generic voicemail-to-Jira integration, automatic lead generation for Jira (e.g., "Thank you for your interest in PRODUCT X; please leave a message with your information, and our representative will call you soon"), contests, consultancy services (e.g., people can call a professional and leave a question), call-to-notes integration with Confluence, the Atlassian voice assistant, and many more. During the hackathon, we had limited time to build only one use case, but the potential is undoubtedly there.

The second most pressing matter now is to experiment with different revenue models and pricing structures to create a value proposition that makes sense for consumers.

Future in the Atlassian marketplace for Call2Jira looks bright, but to be honest It will be a dream come true collaborating with Atlassianto implement C2J features as native functionalities of Jira and/or Confluence 🤘

Share this project:

Updates