An AI-powered post-call automation platform that transcribes, analyzes, and processes sales calls with automated CRM updates and strategic recommendations.
- ποΈ Multi-Modal Input: Support for audio files and text transcripts
- π§ AI-Powered Analysis: Extract key insights using Google's Gemini models
- π Call Quality Scoring: Automated assessment of sales call performance
- π§ Auto-Generated Follow-ups: Personalized email drafts ready for review
- πΎ CRM Automation: Direct integration with Google Sheets
- π― Strategic Recommendations: AI-driven next best actions for sales reps
- π Quality Metrics: Track strengths and improvement areas
βββββββββββββββββββ
β Streamlit UI β
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββββββββββββββ
β PostCall Orchestrator β
β (Sequential Agent) β
ββββββββββ¬βββββββββββββββββββββ
β
ββββΊ 1. Analyst Agent βββββΊ Extract insights
β
ββββΊ 2. Quality Agent βββββΊ Assess call quality
β
ββββΊ 3. CRM Formatter βββββΊ Save to Google Sheets
β
ββββΊ 4. Advisor Agent βββββΊ Generate recommendations
- Python 3.9 or higher
- Google Cloud Project with Gemini API enabled
- Google Service Account with Google Sheets API access
- Google Sheet for CRM storage
git clone git pull origin main --allow-unrelated-histories
cd salesops-ai-assistantpip install -r requirements.txtCreate a .env file in the project root:
cp .env.example .envEdit .env with your credentials:
GOOGLE_API_KEY=your_gemini_api_key_here
CRM_SHEET_NAME=Sales_CRM_Production- Go to Google Cloud Console
- Create a new project or select existing one
- Enable Google Sheets API
- Create a Service Account
- Download the JSON key file
- Rename it to
service_account.jsonand place in project root
- Create a new Google Sheet named
Sales_CRM_Production(or your custom name) - Share the sheet with your service account email (found in
service_account.json) - Give "Editor" permissions
streamlit run app.pyThe app will open in your browser at http://localhost:8501
salesops-ai-assistant/
β
βββ agents/
β βββ __init__.py
β βββ analyst_agent_server.py # Call analysis & insights extraction
β βββ quality_agent_server.py # Call quality assessment
β βββ advisor_agent_server.py # Strategic recommendations
β βββ crm_formatter_agent_server.py # CRM data formatting
β βββ postcall_orchestrator.py # Main orchestration pipeline
β
βββ schema/
β βββ __init__.py
β βββ models.py # Pydantic data models
β
βββ tools/
β βββ __init__.py
β βββ google_sheets_crm.py # Google Sheets integration
β
βββ app.py # Streamlit UI application
βββ requirements.txt # Python dependencies
βββ .env.example # Environment template
βββ .env # Your environment variables (git-ignored)
βββ service_account.json # Google credentials (git-ignored)
βββ README.md # This file
- Select "Text Transcript" as input type
- Paste your sales call transcript
- Click "π Analyze Call"
- Review results in the organized tabs
Rep: Hi John, thanks for taking the time today. How are you?
Prospect: Good, thanks for reaching out. I've been looking into solutions for our data pipeline issues.
Rep: Great! Can you tell me more about the challenges you're facing?
Prospect: Well, we're processing about 2TB of data daily, and our current ETL process is taking too long. We need something more efficient.
Rep: I understand. Our platform can handle that volume with 10x faster processing. Would you like to see a demo?
Prospect: Yes, that would be helpful. Can we schedule something for next week?
Rep: Absolutely! How about Tuesday at 2 PM?
Prospect: Perfect, let's do it.
- Prospect name and company
- Sentiment score (1-10)
- Executive summary
- CRM update status
- Identified pain points
- Agreed next steps
- Key discussion topics
- AI-generated personalized email
- Copy and download options
- Ready for customization
- 3 prioritized next best actions
- Strategic sales advice
- Deal progression tactics
- Call quality score (1-5)
- Meeting request status
- Strengths identified
- Improvement areas
Each agent can be customized by editing their respective files in the agents/ directory:
- AnalystAgent: Modify extraction logic and insights focus
- QualityAgent: Adjust scoring criteria
- AdvisorAgent: Tailor recommendations style
- CRMFormatterAgent: Change CRM field mapping
Edit tools/google_sheets_crm.py to add custom columns:
row = [
datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
data.get("prospect_name", ""),
data.get("company_name", ""),
# Add your custom fields here
data.get("custom_field", ""),
]
headers = [
"Timestamp", "Prospect Name", "Company",
# Add corresponding headers
"Custom Field"
]# Create a test transcript file
echo "Rep: Hello, this is a test call.
Prospect: Hi, I'm interested in your solution.
Rep: Great! Let me tell you about our features..." > test_transcript.txtThen paste the content in the app and run analysis.
1. API Key Error
Error: GOOGLE_API_KEY not configured
Solution: Ensure .env file has valid GOOGLE_API_KEY
2. Service Account Error
Error: service_account.json not found
Solution: Download service account JSON and place in project root
3. Sheet Not Found
Error: Spreadsheet 'Sales_CRM_Production' not found
Solution:
- Create the Google Sheet
- Share with service account email
- Verify
CRM_SHEET_NAMEin.env
4. Permission Denied
Error: The caller does not have permission
Solution: Share Google Sheet with service account email as Editor
-
Never commit sensitive files:
.envservice_account.json
-
Add to
.gitignore:.env service_account.json *.pyc __pycache__/ -
Use environment variables for all credentials
-
Regularly rotate API keys and service account keys
- Push code to GitHub (excluding
.envandservice_account.json) - Go to Streamlit Cloud
- Deploy from your repository
- Add secrets in Streamlit Cloud dashboard:
GOOGLE_API_KEY- Paste
service_account.jsoncontent asSERVICE_ACCOUNT_JSON
- Heroku: Use buildpacks for Python and configure env vars
- AWS: Deploy on EC2 or ECS with environment configuration
- Google Cloud Run: Containerize and deploy with secrets
- Direct integration with Zoom, Google Meet, Loom
- Real-time audio transcription
- Multi-language support
- Advanced analytics dashboard
- Integration with popular CRMs (Salesforce, HubSpot)
- Custom agent training on company data
- Slack/Teams notifications
- Mobile app
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License - see LICENSE file for details.
For issues, questions, or suggestions:
- Open an issue on GitHub
- Contact: [your-email@example.com]
- Built with Google AI Development Kit (ADK)
- Powered by Google Gemini
- UI with Streamlit
Built with β€οΈ for Sales Teams