Francisco Pessano 7c91b625a6 feat: Add manual response dialog and update debt status handling
- 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.
2025-06-08 01:49:19 -03:00
2025-06-06 21:14:10 -03:00
2025-06-06 21:14:10 -03:00
2025-06-06 21:14:10 -03:00
2025-06-07 13:24:09 -03:00
2025-06-07 13:24:09 -03:00
2025-06-06 21:14:10 -03:00
2025-06-07 13:24:09 -03:00

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 URL
  • SUPABASE_ANON_KEY: Supabase anonymous key for client-side operations
  • SUPABASE_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:

  1. Validates incoming email data
  2. Processes opt-out requests
  3. Uses AI to extract debt information
  4. Stores processed data in Supabase
  5. 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
No description provided
Readme 538 KiB
Languages
TypeScript 90.3%
Astro 3.5%
PLpgSQL 3.3%
Shell 1.9%
JavaScript 0.6%
Other 0.4%