Inspiration

As students from the San Diego area, we've reached out to dozens of small businesses in the local area for several reasons but something that we've always noticed as a pattern was the pressure placed on owners of this level. When we further looked into this, we realized that out of over 6 million businesses in the United States, over 49% have just one to four workers. Oftentimes this can be hard to maintain when there is not just the task of managing the business but also, engaging with inbound and outbound. This refers to the emails, messages, calls, and any other sort of contact that customers/clients have with the business. Being able to respond timely and follow-up as well plays a huge role in the retention of customers, especially at the smaller level. What often prevents this is the lack of time - the problem that we hope Union can solve.

What it does

Union is an all-in-one communications platform allowing owners to streamline their time. There is no exisiting platform that does this for fair prices that small businesses can afford. By providing integration for Email, iMessage, and Slack, the platform is able to customize to the owner and their style of contacting their community. Union allows the owners to then interact with the plethora of inbound/outbound through question and answers along with real-time response/follow-up generation with our Agents (built with Dain) created to handle these queries. Union provides time, efficiency, money, and confidence for small businesses.

How we built it

We decided to prioritize the most common forms fo communication for small businesses which are iMessages (for many small businesses, iMessages is a popular way to keep in touch with clients), email, and Slack. We scraped Slack using the Slack User APIs, Gmail using the Google Gmail API, and iMessages using the imessage-exporter library. This generated a large dataset of information from the past few months. We generated several collections on ChromaDB that allowed us to store and keep track of the relationships between many of these entried. We then used a combination of key word search (existing method for Gmail search), semantic search, and using natural language querying to retrieve desired data from the database. The desired data would be retrieved by the agents we built using Dain's Butterfly Assistant along with the Gemini API that utilized the tools we had built allowing us to use RAG on the database to retrieve desired information based on the user query. We took the help of LangChain to make RAG a bit more streamlined for us. We designed the front-end using Figma, and implemented it using Next.js, Tailwind, and KokonutUI.

Flow chart

Challenges we ran into

So many- a bit too many. Being able to understand how to scrape some of these communication systems took us a while to understand. As an example, it took a solid amount of time to understand the difference between a bot token and user token when getting a token for slack scraping! Past this, we had originally tried to store all of this data in Supabase rather than Chromadb but we had notices that semantic search had worked better on Chroma rather than Supabase, thus leading to our choice in using Chroma. When considering the building of agents, we had created an original agent using the Gemini API which was very powerful but decided to play around with Dain. It took us a solid few hours to figure out how to link the tools up to the Butterfly Assistant and even after it had worked we definitely faced problems with the server. There was a lot of learning done here in building our own custom Agents, but the tools provided insight into the potential of personally trained tools that almost any small business could have access to with our product.

Accomplishments that we're proud of

We are proud that we were able to learn a plethora of tools in a short amount of time. We figured out how to scrape, store, and query data. But beyond that, we were able to utilize that data to generate far more value in terms of follow-ups, email generation, network expansion, and more. We built agents for the first time using Dain, figured out their assistant and learned what the concept of tools really meant (along with their power!). We're proud we were able to pull off this idea (considering that it took us a solid 10 hours to come up with the idea lol).

What we learned

So much - scraping, storing, querying data, generating value out of data, building agents, utilizing contacts to allow for network expansion, chromadb, and more!

What's next for Union

Being able to integrate other tools such as Outlook, Voice Calls, and Microsoft Teams would also increase the sources for data. We would like to increase the value of the information that is given by these casual conversations. Growth comes from these conversations with customers (even more important at the smaller stage) and by being able to generate strategies for owners based on these conversations, growth is priority. We also hope to allow owners to understand the flow of their business, where the most attention is being put into, and the most recent events that had taken place.

Built With

  • chroma
  • dain
  • figma
  • gemini
  • gemini-api
  • gmail-api
  • imessage-exporter
  • key-word
  • kokonutui
  • langchain
  • natural-laguage-query
  • next.js
  • python
  • rag
  • semantic-search
  • slack
  • tailwind
Share this project:

Updates