Team members
Manage all platform users, roles, and access. Filter by tier, brand, and last seen.
| Name | Role | Brands | Status | Last Login | Actions |
|---|
All Saved Quotes
| Quote # | Client | Brand | Status | Updated |
|---|
Pricing & Content Templates
Client Leads
0 unique leads
Qualification: a quote becomes a lead only if it has a full name AND at least one contact method (email or phone).
Dedup: same email, same phone, or (same name + same origin airport) are treated as one lead.
| Lead ID | Full Name | Phone | Origin Airport | Latest Quote | Latest Agent | Created | Updated |
|---|
Backup & Restore
Snapshot ALL local data — quotes, brands, library, hotels, excursions, templates, users, L&D guides, image library, leads, AI settings, and the activity log — into a single file. Keep it safe to restore your setup on any laptop.
Storage Health
Local browser cache fills up fast on shared computers with many quotes. Use these tools to migrate images to Supabase, free space, or switch fully into cloud-only mode.
Configure secure credentials and browser automation for B2B suppliers.
Quote Analytics
Performance dashboard
Live Pricing — Backend & Margins
Controls the connection to the QuoteGen Backend (Railway). Agents use the "Search Live" buttons in the quote editor to fetch real supplier prices. Margins are applied server-side before results reach agents.
Applied to supplier cost prices to produce the sell price agents see. Defaults apply to every brand unless overridden per-brand below.
Override global margin for a specific brand. Example: IVY gets 12% on flights while the default is 15%.
Backend is running in mock data mode until supplier credentials are added in Railway. To enable live pricing, set these environment variables in your Railway project:
TRAVELPORT_USERNAME=<your username>
TRAVELPORT_PASSWORD=<your password>
BEDSONLINE_API_KEY=<your API key>
BEDSONLINE_SECRET=<your secret>
Once added, Railway auto-redeploys. The Live Pricing system flips from mock to live with no code change.
Settings
Upload booking screenshots and AI extracts all details. Choose your provider and enter the API key.
URL of the Node.js backend on Railway. All supplier API calls go through this server.
Travelport Galileo UAPI — connects live flight pricing to the search panel. Contact your Travelport account manager for credentials.
2. Ask: "I need UAPI credentials for Air Shopping on my Galileo PCC"
3. They'll email you target branch, username, and password
4. Paste them above and click Test Connection
5. Start with Test endpoint, switch to Live when ready
Bedsonline (Hotelbeds group) — connects live hotel availability and pricing. Get credentials from your Bedsonline partner portal.
2. Go to API Keys section
3. Copy your API key and secret
4. Start with Test environment, switch to Live when ready
Send WhatsApp messages from all 13 brand numbers directly from QuoteGen. Messages also appear in FinApps.
Each brand's WhatsApp number has a unique ID from Meta. Find them in developers.facebook.com → WhatsApp → API Setup.
2. System Users → Create system user "QuoteGen Backend"
3. Generate token with whatsapp_business_messaging permission
4. Go to developers.facebook.com → WhatsApp → API Setup
5. Copy each number's Phone Number ID → paste below
6. Click Test Connection to verify
Your profit margin is added to every supplier cost price. Agents see sell prices only. Super Admin and Brand Managers see both cost and sell.
These are global defaults. You can set per-brand overrides in each brand's settings on the Companies page.
This email has full access to all brands, users, and settings.
Force push all local data to cloud. Use this if brands or other data isn't syncing properly.
Use these when a client requests their data or asks for erasure (UK GDPR Article 15 / Article 17). Both actions are logged to the audit trail.
Quick-send follow-up messages. Variables: {clientFirst}, {destination}, {quoteRef}, {validUntil}, {brandName}, {totalPrice}.
Secure Payment System
Configure Stripe payments. Agents generate pay-by-link URLs; clients see only a branded card form. Secret keys live in the backend env vars — never in the browser.
owt-quote-gen service → Variables:STRIPE_PUBLISHABLE_KEY=pk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
https://owt-quote-gen-production.up.railway.app/api/payments/webhook — listen for payment_intent.succeeded and payment_intent.payment_failed.Platform administration
Manage organisations and subscriptions across the platform
Q Inbox
Everything Q diagnosed, self-healed, or escalated. Approve, revert, or archive.
Q Training
Feed Q facts, SOPs, brand guides, sales scripts, destination knowledge, and winning quote examples. Q reads the most relevant entries on every turn and cites them in its replies.
AI Stats
Per-provider breakdown: calls, success rate, latency, last error. Helps spot when a specific AI is rate-limited or down so you can flip the primary provider.
Q Activity
Every Q interaction across the team, with full question + reply. Filter by agent, time window, or search the text. This is the source of truth for "who spoke to Q and what they asked".
Q Security
Every Q turn is scanned for prompt-injection, exfiltration, probes, and tampering. High-severity hits block the AI call and escalate to Q Inbox. Run an integrity check below — Q verifies the audit log has not been edited.
Q Health
Every Q reply is logged here. Watch the weekly success rate and latency; if it drops, find the broken turns in the table below.
Agent Feedback
Suggestions, blockers, and things Q couldn't handle — submitted by agents and Q itself.