Run ProcureFlow AI — an agentic procure-to-pay copilot that goes from a voice or text sourcing request to a ranked supplier recommendation with AP validation in under 90 seconds. Use when you need to source a product, compare supplier quotes, or validate a procurement request end-to-end.
npx @senso-ai/shipables install vedvkandge2000/procureflow-aiProcureFlow AI is an agentic procure-to-pay copilot. Give it a natural language sourcing request and it handles vendor discovery, supplier outreach (Vapi voice call + TinyFish web scraping), quote comparison, AP rule validation, and a final recommended action.
.env (copy from .env.example)# Clone and enter the project
git clone https://github.com/vedvkandge2000/Procureflow-AI.git
cd Procureflow-AI
# Copy env and add your API keys
cp .env.example .env
# Edit .env — set VAPI_API_KEY, OPENROUTER_API_KEY, TINYFISH_API_KEY
# Start the full stack (Redis + Backend + Frontend + WunderGraph + Mock Suppliers)
./deploy.sh
The app opens automatically at http://localhost:5173.
http://localhost:5173# Submit a text procurement request
curl -X POST http://localhost:3001/api/jobs \
-H 'Content-Type: application/json' \
-d '{
"rawText": "I need 20 gallons of industrial coolant delivered to San Jose by tomorrow. Budget is $450. Must be FDA-approved."
}'
# Returns: { "jobId": "abc123" }
# Stream the live workflow events
curl -N http://localhost:3001/api/stream/<jobId>
# Get final job result
curl http://localhost:3001/api/jobs/<jobId>
| Step | What happens |
|---|---|
| 1. Parse Request | GPT-4o extracts item, quantity, unit, city, date, budget, constraints |
| 2. Discover Vendors | Redis HNSW vector search finds top 5 matching vendors |
| 3. Supplier Call | Vapi AI places an outbound phone call to the top vendor |
| 4. Web Scrape | TinyFish reads the second vendor's catalog page |
| 5. Quote Form | TinyFish fills and submits the vendor's quote form |
| 6. Aggregate Quotes | All quotes collected from Redis |
| 7. Rank Suppliers | Composite score: cost 40% + delivery 30% + reliability 20% + AP 10% |
| 8. AP Validation | 8 deterministic rules + AI one-sentence risk commentary |
# Health check
curl http://localhost:3001/health
# Submit job
POST http://localhost:3001/api/jobs
Body: { "rawText": "<your procurement request>" }
# Stream workflow events (Server-Sent Events)
GET http://localhost:3001/api/stream/<jobId>
# Get job state
GET http://localhost:3001/api/jobs/<jobId>
# WunderGraph governance layer
GET http://localhost:9991/graphql # GraphQL playground
GET http://localhost:9991/audit # Audit trail of all governed operations
# Redis Insight UI
http://localhost:8001
# Mock supplier pages (for TinyFish)
http://localhost:4001 # Supplier A catalog
http://localhost:4002 # Supplier B quote form
| Variable | Required | Description |
|---|---|---|
VAPI_API_KEY | Yes (for live calls) | Vapi API key |
VAPI_SUPPLIER_ASSISTANT_ID | Yes (for live calls) | Vapi supplier outreach assistant ID |
VAPI_PHONE_NUMBER_ID | Yes (for live calls) | Vapi outbound phone number ID |
OPENROUTER_API_KEY | Yes (for LLM parsing) | OpenRouter key for GPT-4o parsing + AP commentary |
TINYFISH_API_KEY | Yes (for live scraping) | TinyFish MCP API key |
VAPI_DEMO_MODE | No | Set true to skip real Vapi calls (uses mock quotes) |
Without API keys, the app runs in demo mode with realistic mock data.
Use this exact request for a reliable demo:
"I need 20 gallons of industrial coolant delivered to our San Jose facility by tomorrow. Budget is $450 maximum. Must be FDA-approved."
Expected outcome: PacificChem Solutions or AcmeChem recommended with action APPROVE or NEGOTIATE, composite score ~52-87, AP validation PASS.