Automated payment reminder calls for insurance agencies V1 Production System
The AI Payment Reminder Call System automatically calls insurance members who have missed a premium payment, delivers a professional reminder, captures payment commitments or follow-up needs, and documents outcomes for agency staff.
This system replaces repetitive outbound reminder calls, allowing staff to focus on complex cases while improving payment recovery and reducing policy lapses.
Automated outbound calls for overdue payments
Natural-sounding AI voice reminder
Payment commitment capture (date + amount)
Human transfer on request or confusion
Call logging, recordings, and transcripts
Simple campaign dashboard
CSV upload or single data source import
TCPA-safe calling hours & DNC checks
Live payment processing
Credit card collection
Advanced sentiment analysis
Predictive ML models
Multi-channel orchestration
White-label branding
Deep CRM bidirectional sync
(These are Phase 2+ features)
- Python 3.11 + FastAPI
- PostgreSQL (primary database)
- Redis (call queue)
- SQLAlchemy 2.0 (async ORM)
- Alembic (migrations)
- Next.js 14 + React 18
- TypeScript
- Tailwind CSS
- React Query (data fetching)
- Bland.ai or Vapi.ai (managed voice stack)
- Twilio (SMS confirmations)
- SendGrid (email confirmations)
- Docker & Docker Compose
- Node.js 20+ (for local frontend development)
- Python 3.11+ (for local backend development)
- Bland.ai or Vapi.ai API key
- Twilio account (for SMS)
- SendGrid account (for email)
git clone https://github.com/jesusr04/follow_up.git
cd follow_upBackend:
cd backend
cp .env.example .env
# Edit .env with your API keysFrontend:
cd frontend
cp .env.example .envdocker-compose up --buildThis will start:
- PostgreSQL (port 5432)
- Redis (port 6379)
- Backend API (port 8000)
- Frontend (port 3000)
- Frontend Dashboard: http://localhost:3000
- Backend API Docs: http://localhost:8000/api/docs
- Health Check: http://localhost:8000/health
follow_up/
backend/ # FastAPI backend
app/
api/ # API endpoints
core/ # Configuration
db/ # Database setup
models/ # SQLAlchemy models
schemas/ # Pydantic schemas
services/ # Business logic
requirements.txt
Dockerfile
.env.example
frontend/ # Next.js frontend
app/ # App router pages
lib/ # API client
package.json
Dockerfile
.env.example
docs/ # Documentation
CSV_UPLOAD_GUIDE.md
VOICE_AI_GUIDE.md
example_members.csv
docker-compose.yml
README.md
- Go to Dashboard Upload Members
- Upload a CSV with these columns:
first_name, last_name, phone_number, email, timezone, policy_number, policy_type, amount_due, due_date - Review imported members
- Go to Campaigns New Campaign
- Enter campaign name and description
- Select members to call
- Click Create Campaign
- Open the campaign
- Review member list
- Click Start Campaign
- Monitor dashboard for real-time metrics
- Go to Calls tab
- View call details:
- Outcome
- Duration
- Recording
- Transcript
- Commitment details
Full API documentation available at: http://localhost:8000/api/docs
GET /api/v1/members/- List all membersPOST /api/v1/members/- Create a memberPOST /api/v1/members/upload-csv- Upload CSV
GET /api/v1/campaigns/- List campaignsPOST /api/v1/campaigns/- Create campaignPOST /api/v1/campaigns/{id}/start- Start campaign
GET /api/v1/calls/- List callsGET /api/v1/calls/{id}- Get call details
GET /api/v1/dashboard/metrics- Get dashboard metrics
Backend (.env):
DATABASE_URL=postgresql+asyncpg://user:pass@localhost:5432/payment_reminders
REDIS_URL=redis://localhost:6379/0
VOICE_AI_PROVIDER=bland
BLAND_API_KEY=your_key
TWILIO_ACCOUNT_SID=your_sid
TWILIO_AUTH_TOKEN=your_token
SENDGRID_API_KEY=your_key
CALLING_HOURS_START=8
CALLING_HOURS_END=21Frontend (.env):
NEXT_PUBLIC_API_URL=http://localhost:8000Calls only during allowed hours (8am-9pm local time)
DNC list enforcement before every call
Clear automated disclosure at call start
Call recording disclosure
Consent tracking per member
No storage of payment card data
Secure database storage
Encrypted environment variables
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reloadcd frontend
npm install
npm run devcd backend
pytestdocker-compose -f docker-compose.prod.yml up -d- Connect GitHub repo
- Add PostgreSQL and Redis
- Set environment variables
- Deploy
- Live payment processing
- Advanced sentiment analysis
- Multi-channel orchestration
- White-label branding
- Predictive ML models
- Deep CRM integrations
- Multi-language support
- GitHub Issues: https://github.com/jesusr04/follow_up/issues
- Email: support@yourcompany.com
MIT License
Built for insurance agencies to automate payment reminders and reduce policy lapses.