mirror of
https://github.com/FranP-code/inbox-negotiator.git
synced 2025-10-13 00:42:26 +00:00
7c91b625a63b2f13d1203c703b098e91621a8ee0
- Introduced ManualResponseDialog component for user-initiated responses when AI analysis is unclear. - Updated DebtTimeline to include AlertTriangle icon for debts requiring manual review. - Enhanced supabase functions to handle new debt status 'requires_manual_review' and message type 'manual_response'. - Implemented email variable processing utilities to support dynamic email content generation. - Created tests for email variable extraction and replacement functions. - Updated database schema to accommodate new statuses and message types, including relevant constraints and indexes. - Adjusted negotiation and email sending logic to ensure proper handling of manual responses and variable replacements.
Inbox Negotiator
An AI-powered system that automatically negotiates debt collections and billing disputes through email processing.
Features
- AI Email Processing: Automatically parses incoming emails to extract debt information using Google's Gemini AI
- Automated Negotiation: Triggers negotiation workflows for legitimate debt collection notices
- Webhook Integration: Seamlessly processes emails through Postmark webhook integration
- Row Level Security: Secure database operations with proper authentication handling
Environment Setup
Copy .env.example to .env and configure the following variables:
# Supabase Configuration
SUPABASE_URL=your_supabase_url_here
SUPABASE_ANON_KEY=your_supabase_anon_key_here
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key_here
# Google Generative AI API Key for Gemini model
GOOGLE_GENERATIVE_AI_API_KEY=your_google_api_key_here
Required Environment Variables
SUPABASE_URL: Your Supabase project URLSUPABASE_ANON_KEY: Supabase anonymous key for client-side operationsSUPABASE_SERVICE_ROLE_KEY: Supabase service role key for server-side operations (bypasses RLS)GOOGLE_GENERATIVE_AI_API_KEY: Google API key for AI processing
Webhook Configuration
The /api/postmark endpoint handles incoming email webhooks from Postmark. It:
- Validates incoming email data
- Processes opt-out requests
- Uses AI to extract debt information
- Stores processed data in Supabase
- Triggers automated negotiation workflows
RLS (Row Level Security) Handling
The webhook uses a service role client to bypass RLS policies, ensuring server-side operations can write to the database without user authentication. This is essential for webhook operations where no user session exists.
Development
# Install dependencies
pnpm install
# Start development server
pnpm dev
Deployment
Ensure all environment variables are configured in your deployment environment, especially the SUPABASE_SERVICE_ROLE_KEY which is critical for webhook operations.
Description
Languages
TypeScript
90.3%
Astro
3.5%
PLpgSQL
3.3%
Shell
1.9%
JavaScript
0.6%
Other
0.4%