✦   ✦   ✦
EST · MMXXI
Don't have an account? Start a free trial →
Brand
Admin PanelOperationsShared Quotes

Shared quotes

Every quote link ever sent to a client. Links are kept permanently — they never auto-expire. Follow-up status is auto-calculated from view tracking.

Shared quote links

Auto-tracked · links never expire

Admin PanelOperationsUsers

Team members

Manage all platform users, roles, and access. Filter by tier, brand, and last seen.

NameEmailRoleBrandsStatusLast LoginActions

All Saved Quotes

Quote #ClientBrandStatusUpdated

Pricing & Content Templates

Client Leads

0 unique leads

🔒 Super Admin only. Leads are auto-captured whenever a quote is saved or updated.
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 IDFull NameEmailPhoneOrigin AirportLatest QuoteLatest AgentCreatedUpdated

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.

Supplier Management

Configure secure credentials and browser automation for B2B suppliers.

Quote Analytics

Performance dashboard

Agent performance

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.

Backend Status
Checking...
🌐 Open /api/health
Global Margin Rules

Applied to supplier cost prices to produce the sell price agents see. Defaults apply to every brand unless overridden per-brand below.

Loading...
Per-Brand Overrides

Override global margin for a specific brand. Example: IVY gets 12% on flights while the default is 15%.

None configured
⚠ Supplier Credentials

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_TARGET_BRANCH=<your branch code>
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

AI AUTO-FILL

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.

FLIGHT SUPPLIER

Travelport Galileo UAPI — connects live flight pricing to the search panel. Contact your Travelport account manager for credentials.

How to get these credentials
1. Call your Travelport account manager
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
HOTEL SUPPLIER

Bedsonline (Hotelbeds group) — connects live hotel availability and pricing. Get credentials from your Bedsonline partner portal.

How to get these credentials
1. Log into apitude.hotelbeds.com/partner
2. Go to API Keys section
3. Copy your API key and secret
4. Start with Test environment, switch to Live when ready
WHATSAPP — META CLOUD API

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.

How to get these credentials
1. Go to business.facebook.com → Business Settings
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
MARGIN SETTINGS

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.

Super Admin Email

This email has full access to all brands, users, and settings.

Cloud sync

Force push all local data to cloud. Use this if brands or other data isn't syncing properly.

GDPR — client data tools (Super Admin only)

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.

WhatsApp templates

Quick-send follow-up messages. Variables: {clientFirst}, {destination}, {quoteRef}, {validUntil}, {brandName}, {totalPrice}.

Observability — Audit + Errors (Super Admin only)
RECENT AUDIT EVENTS
Click Refresh to load.
RECENT ERRORS
Click Refresh to load.

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.

BACKEND CONFIGURATION
Loading…
PUBLISHABLE KEY & BRANDING
Safe to store here. Shown on the client payment page so Stripe Elements can load.
SECRET KEY & WEBHOOK (Railway env vars)
Paste these into Railway dashboard → owt-quote-gen service → Variables:
STRIPE_SECRET_KEY=sk_live_...
STRIPE_PUBLISHABLE_KEY=pk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
Webhook URL for Stripe dashboard: https://owt-quote-gen-production.up.railway.app/api/payments/webhook — listen for payment_intent.succeeded and payment_intent.payment_failed.
RECENT PAYMENTS
Click Refresh to load payment log

Platform administration

Manage organisations and subscriptions across the platform

Loading organisations...
Loading…

Q Inbox

Everything Q diagnosed, self-healed, or escalated. Approve, revert, or archive.

Loading…

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.

Loading…

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.

Loading…

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".

Loading…

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.

Loading…

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.

Loading…

Agent Feedback

Suggestions, blockers, and things Q couldn't handle — submitted by agents and Q itself.

Loading…

Activity Log

Overview

0
Total Quotes
0
Drafts
0
Sent
0
Accepted

Shared Quotes

Track all quote links sent to clients. Follow-up status auto-calculated from view tracking.

Saved Quotes

Quote #BrandClientDestinationDatesStatusUpdated
Quote Editor
Ctrl+S Save · Ctrl+P PDF · Ctrl+Shift+H Share · Ctrl+Shift+N New · Ctrl+Shift+D Duplicate · Ctrl+Shift+L Library · Esc Close
QUICK PACKAGES

Brand & Agent

Quote Info

Tour / Package

Hero slide preview
0 / 0
Slide speed:
Image fit: Focus:

Package Overview Text

Client Details

Client Quote Message

Hi Client, — auto-added from Client Name above

Extra message after greeting. Client name is added automatically.

Quote Summary Inclusions

Click to add, or type your own. One per line.

Flights

🤖
AI Fill — Flights
Drop screenshot, PDF or flight booking confirmation
Outbound
Return
Baggage Allowance
Cabin Baggage
Checked Baggage
Internal / Domestic Flights

Hotels / Accommodation

🤖
AI Fill — Hotels
Drop hotel booking confirmation or screenshot

Excursions / Activities

🤖
AI Fill — Excursions
Drop activity or tour booking confirmation

Transfers

🤖
AI Fill — Transfers
Drop transfer or shuttle booking confirmation

Pricing & Payment

PRICE BREAKDOWN
£
DISCOUNT
Original price (before discount)
PAYMENT PLAN
Deposit amount
Number of instalments
Deposit %
First instalment date
Deposit description
Split type

Inclusions

0 items

Exclusions

0 items

Footer Message

Agent Details (Last Page)

Terms & Conditions

● Auto-saving

Library

Destinations, shared images, and service databases

Season colours The 12 small squares on each card = Jan–Dec pricing season: Low — cheapest, quieter Mid — shoulder months High — busy / pricier Peak — most expensive Current month

Hot deals

Current deals and packages · agents can one-click apply to a new quote

Companies

Manage your brands · each card holds logo, identity, contact details, and default terms

Learning & Development

Destination training guides and client conversation skills

Tracking

Every shared quote, every view, every follow-up, every Q action — one page.

Developed by Mahdi Mazahim · Powered by OWT Group Ltd
Processing...
You are offline — changes saved locally and will sync when reconnected
Need help? Ask me anything!