Project Info
This project did not submit a demo video on Devpost.
Inspiration
We often encountered challenges navigating automated call systems, which left us spending excessive time on hold and feeling frustrated. These experiences made us realize how much valuable time was being wasted when we could have been focusing on more productive tasks and we were left angry and wondering if there was a better way to optimize telecommunication systems. This frustration inspired us to develop a solution that streamlines the process, minimizing wait times and improving the overall customer experience.
What it does
The system includes a form where clients can enter their name, phone number, and a brief description of their issue, such as requesting a refund or returning an item. Once submitted, the VAPI system automatically places a call to the provided number. A virtual assistant then guides the client through a series of questions to better understand their problem with the VAPI system answering the questions based off the description given. The VAPI setup even handles the wait time on the client's behalf, ensuring they’re connected directly to the appropriate support agent without unnecessary delays.
How we built it
We implemented the solution using React.js for the front-end interface and VAPI for handling the automated calls. The form submission triggers the VAPI system, which initiates and manages the call flow. For version control and collaboration, we hosted the project on a GitHub repository, utilizing GitHub Actions for continuous integration and automated testing to ensure a smooth deployment process. We used llama within Groq as the LLM as we saw significant difference in response time when using groq vs openai. This setup allowed us to efficiently manage code updates and track changes while leveraging VAPI’s capabilities to handle real-time interactions with clients.
Challenges we ran into
We encountered challenges managing different branches, as the primary branch frequently stalled during the process.
Accomplishments we're proud of
We were able to integrate the front end with the VAPI connector after clicking the submit button which took time, but we were persistent in solving the problem.
What we learned
We explored various functionalities within the React ecosystem, gaining a deeper understanding of tools and techniques available to enhance our applications. For instance, we learned about the @media query, which allows us to create responsive designs by applying different styles based on screen size and device characteristics. Additionally, we became proficient in utilizing VAPI to manage automated calls, including how to implement its features for efficient interaction with clients. This knowledge has equipped us to build more dynamic and user-friendly applications.
What's next
for Letmetalktohuman AI We aim to implement a feature that recognizes and performs specific dial tones, as these are a common part of phone interactions. This feature will enhance the user experience by allowing the system to respond to different inputs appropriately.
Getting Started with Create React App
This project was bootstrapped with Create React App.
Available Scripts
In the project directory, you can run:
npm start
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
The page will reload when you make changes.
You may also see any lint errors in the console.
npm test
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
npm run build
Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
npm run eject
Note: this is a one-way operation. Once you eject, you can't go back!
If you aren't satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
Learn More
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.
Code Splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
Analyzing the Bundle Size
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
Making a Progressive Web App
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
Advanced Configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
Deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
npm run build fails to minify
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
Analysis
View
Metric
- 17
- 15
- 9
- 6
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- ReactIn code
- Node.jsClaimed
4 of 5 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
39 KB
Source files
22
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
ConnectAI-CalHacks/Letmetalktoahuman-AI
37 files · 9.0 MB · @ afed11b
Structure
Interface
13 files · 35%Screens, components and styles rendered to the user.
Application logic
6 files · 16%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript62%
- CSS25%
- Markdown8%
- HTML4%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 20- @emotion/react
- @emotion/styled
- @react-three/drei
- @react-three/fiber
- @testing-library/jest-dom
- @testing-library/react
- @testing-library/user-event
- react
- react-dom
- react-router-dom
- react-scripts
- react-tsparticles
- react-typed
- tsparticles
- web-vitals
- +5 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Call forwarding to connect user with a human/support agentVerified
Voice agent connects users with real human agents through call forwarding
Claimed on Devposthigh confidencesrc/views/application/Application.jsx:60— forwardingPhoneNumber is set to the user's own phone number in the VAPI assistant payload, implementing call forwarding back to the client
Client intake form (name, phone, issue description)Verified
A form where clients can enter their name, phone number, and a brief description of their issue
Claimed on Devposthigh confidencesrc/views/application/Application.jsx:7— formData state holds myName, myPhoneNum, callerName, callerPhoneNum, description, rendered as controlled form inputs
Groq-hosted Llama LLM for the voice agentVerified
We used llama within Groq as the LLM as we saw significant difference in response time when using groq vs openai
Claimed on Devposthigh confidencesrc/views/application/Application.jsx:42— assistant.model.provider is 'groq' and model is 'llama3-groq-8b-8192-tool-use-preview'
React.js front-end interfaceVerified
We implemented the solution using React.js for the front-end interface
Claimed on Devposthigh confidencepackage.json:8— react and react-dom listed as dependenciessrc/index.js:8— react-router-dom used to route between App (landing page) and Application (form) components
VAPI automatically places outbound call on submitVerified
Once submitted, the VAPI system automatically places a call to the provided number
Claimed on Devposthigh confidencesrc/views/application/Application.jsx:65— handleSubmit POSTs an outboundPhoneCall payload to /call, proxied to https://api.vapi.ai per package.json proxy fieldpackage.json:22— "proxy": "https://api.vapi.ai" routes the /call fetch to VAPI's API
Virtual assistant answers questions using the submitted issue descriptionCode-supported
A virtual assistant then guides the client through a series of questions... with the VAPI system answering the questions based off the description given
Claimed on Devpostmedium confidencesrc/views/application/Application.jsx:47— assistant.model.messages contains a static hardcoded prompt string; description is destructured from formData but never interpolated into this prompt, so the description is captured but not actually fed to the assistant
Wait-time handling by VAPI on client's behalfCode-supported
The VAPI setup even handles the wait time on the client's behalf, ensuring they're connected directly to the appropriate support agent without unnecessary delays
Claimed on readmelow confidencesrc/views/application/Application.jsx:51— startSpeakingPlan with waitSeconds and smartEndpointingEnabled configures VAPI turn-taking timing, but there is no code implementing hold-queue detection or IVR-menu navigation to a human agent
DTMF dial tone recognitionClaimed only
We aim to implement a feature that recognizes and performs specific dial tones
Claimed on Devposthigh confidenceGitHub Actions CI for automated testing and deploymentClaimed only
utilizing GitHub Actions for continuous integration and automated testing to ensure a smooth deployment process
Claimed on Devposthigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.