SafeCall CRM is a security security focused Customer Relationship Management web app designed specifically for call center operations.
- Role-Based Access (RBAC): Distinct permissions for Agents, Supervisors, and Admins.
- Data Privacy: Agents can only view customers and tickets assigned to them.
- Sensitive Action Verification: Viewing detailed ticket information requires password re-authentication.
- Security Logs: Comprehensive logging of logins, data access, and failed attempts (accessible by Supervisors/Admins).
- Agent Dashboard: Personal stats (Calls taken, Tickets resolved) and quick actions.
- Supervisor Dashboard: Aggregated team performance metrics, call volume trends, and agent efficiency tables.
- Admin Dashboard: User management interface for creating, editing, and removing system users (Agents/Supervisors).
- Ticket Management: Full lifecycle management (Open -> Pending -> Resolved) with priority levels and categories.
- Customer Management: Centralized database with automatic agent assignment (Load Balancing strategy).
- Call History: Logs of inbound/outbound calls with duration and notes.
- Campaigns: Manage marketing campaigns and target groups.
- Twilio Integration: Automatically logs incoming calls and creates customer profiles.
- Email Integration: Converts incoming emails into support tickets automatically.
- Backend: Python 3.10+, Django 5, Django REST Framework (DRF)
- Frontend: React.js, Material UI (MUI)
- Database: SQLite
- Authentication: JWT (JSON Web Tokens) via
djangorestframework-simplejwt
- Python 3.x
- Node.js & npm
cd server
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
.\venv\Scripts\activate
# Mac/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run migrations
python manage.py migrate
# Create Superuser (Admin)
python manage.py createsuperuser
# Run Server
python manage.py runserverThe backend runs on http://127.0.0.1:8000.
cd client
# Install dependencies
npm install
# Run React App
npm startThe frontend runs on http://localhost:3000.
You can test the auto-logging features using Postman or curl.
POST http://127.0.0.1:8000/api/crm/webhooks/twilio/
{
"Name": "John Doe",
"CallSid": "CA123456789",
"From": "+15550123456",
"To": "+15550987654",
"CallStatus": "ringing"
}POST http://127.0.0.1:8000/api/crm/webhooks/email/
{
"sender": "jane.doe@example.com",
"name": "Jane Doe",
"subject": "Internet Connection Issue",
"body": "My internet has been down for 2 hours."
}| Feature | Agent | Supervisor | Admin |
|---|---|---|---|
| View Own Stats | Yes | Yes | Yes |
| View Team Stats | No | Yes | Yes |
| Manage Tickets | Yes (Only Assigned) | Yes (All) | Yes (All) |
| Manage Customers | Yes (Only Assigned) | Yes (All) | Yes (All) |
| Create Campaigns | No | Yes | Yes |
| View Security Logs | No | Yes | Yes |
| User Management | No | No | Yes |