Return Manifest Generate photo manifests from Flex PDFs
Document Suite
00:00
morgain.tools  ·  v2.2.0  ·  Single file  ·  No server  ·  No install
1
Drop your Flex PDF here
Return Manifest PDF from Flex
Add gear photos
JPG, PNG, WEBP — saves to library automatically
2
Client
Venue / Site
Document Style
0 line items loaded  ·  0 photos matched
Loading...
No photos saved yet — add gear photos in the Manifest tool and they’ll appear here automatically.
+
Drop photos here to add to library
JPG, PNG, WEBP · multiple files OK
Brand Settings

Customise your client company branding — logo, name, colours and contact details — used across all generated PDFs. The Morgain Tools app identity is separate and fixed.

Company Logo
Click to upload logo
PNG or JPG recommended · max 2MB
Client Company Name
Tagline / Division
Address Line 1
Address Line 2
Phone
Website
App Skin
Brand Colour Palette

All 6 document styles draw from your brand palette. Primary drives accents and buttons. Secondary drives headers and covers. The remaining colours control text, backgrounds and highlights.

Primary — Accents & Highlights
Secondary — Headers & Covers
Text Colour
Page Background
Row Highlight Tint
Proposal & Pull Sheet Style
Preview
Saved ✓
Admin Settings
Enter your 4-digit admin PIN to access document defaults, tax settings, and security options.
Default PIN: 0000
New Project
Project Name
Client
Contact
Venue
Account Manager
Ship Date
Return Date
Flex Job ID
Status
Notes
0 JOBS
Flex API Connection
Click Discover to load
days backdays ahead
Runs entirely in your browser. The API key is stored locally (localStorage) and sent to Flex via the X-Auth-Token header. This same key powers the Pending Invoices board.
Awaiting Prep
0
In Progress
0
Prepped / Out
0
Returned / De-Prep
0
Add Job
Total Outstanding Balance
$0.00
No invoices loaded — click Sync
Live A/R from Flex, grouped by payment status. Configure your Flex API key once in the Job Board ⚙ settings — it’s shared.
Needs to be Paid
0
Partially Paid
0
Paid
0
Finance
No data yet — click Sync to pull invoices from Flex
No financial data loaded yet.
Click Sync to pull invoices from Flex (uses your Job Board API key).
Invoices
Release Notes
What's new in Morgain Tools. Built by Morgain.
v2.10.0
LATEST
July 2026
Finance — Rentals vs Sales — new Revenue by Type and Quotes by Type breakdowns split your invoiced revenue and quote pipeline into rentals vs sales. Documents are classified by a type/status/name keyword list you can edit right on the page, and quote rows now carry a SALE / RENT tag.
Deeper Flex pull — the invoice & quote sync now also requests document-type and rental/sales line-total fields (with a safe fallback, so the invoice load can never break). If your Flex exposes a real rental/sales split, Revenue by Type will use those exact figures automatically.
v2.9.0
July 2026
Finance — Sales Funnel — a Quoted → Invoiced → Collected funnel (period-scoped) with Quote→Invoice and Invoice→Collected conversion rates, cross-referencing your Flex quotes, invoices, and derived collections.
Finance — New vs Returning + Net Revenue — splits each period's revenue into first-time vs repeat clients, and adds Net Revenue (invoiced minus credit memos) and an annualized Run-Rate KPI.
Finance — Quote Conversion by AM — a per-account-manager table of quoted vs invoiced vs collected with a conversion %, so you can see who's turning pipeline into cash.
v2.8.0
July 2026
Finance — Account Tiers — clients are now split into Key, Mid, and Smaller accounts so the big relationships stand apart from the long tail. Each tier shows account count, revenue, % of revenue, collected, and outstanding (click a tier to drill into its invoices). Thresholds auto-scale to your data and are adjustable. Top Clients rows now carry a tier badge.
Finance — Invoiced vs Collected chart — the 12-month revenue chart now overlays collected (green) inside each month's invoiced bar, so the red still-owed portion is visible at a glance.
Client Statement — collections summary — the statement PDF now leads with an Invoiced / Collected / Collected % / Balance Due summary strip.
v2.7.2
July 2026
Finance — accurate collectionsCollected, Collection Rate, per-AM/per-client Received, and the statement PDF now derive paid amounts from each invoice's balance (total − balance due), so they no longer read $0 when Flex withholds the applied-payments field. Confirmed against the Flex API reference: only balanceDue is exposed reliably, so collections are computed from it.
Payment Transactions — honest amounts — Flex's API doesn't expose per-payment dollar amounts (they live only in the rendered PDF), so the transactions list no longer shows misleading $0 totals or an empty collections chart. It now shows the real payment records (date · # · client · method · status) and points you to the invoice-derived collections above.
v2.7.1
June 2026
Finance — Credit Memos view — pulls your Flex Credit Memos too, with a searchable ledger (date · memo # · client · amount · status). The finance board now covers the full document set: Quotes · Invoices · Payments · Credit Memos.
v2.7.0
June 2026
Finance — Quotes view — pulls your Flex Quotes alongside invoices and payments: a status breakdown (pipeline by stage & value) plus a searchable ledger (date · quote # · client · value · status). Now you can compare quoted vs invoiced vs paid in one place.
v2.6.2
June 2026
Finance — payments pull restored — fixed a regression where payments stopped loading (Flex requires the field list). The sync now requests a broad field set (with a safe fallback) so payments load again and the amount field is captured, then auto-detected.
v2.6.1
June 2026
Finance — payment amounts fixed — Payment Transactions now reads the payments list's real columns and auto-detects the amount & date fields, so received amounts show correctly (previously some read $0 because payments store the amount in a different field than invoices).
v2.6.0
June 2026
Finance — Payment Transactions (live from Flex) — now pulls the actual Received Payment records from Flex: a searchable ledger of every payment (date · payment # · client · amount · status) plus a real collections-by-month chart from actual payment dates. Synced automatically alongside invoices.
v2.5.6
June 2026
Finance — Connect Payments (Flex list finder) — a setup tool to locate your Flex payments list: Discover lists your Flex lists automatically, or Preview any list ID to see its fields/data. Once the payments list is connected, the individual payment-transaction view can be wired in.
v2.5.5
June 2026
Finance — Payments Received — a new view of money collected from Flex: total received, and a per-client breakdown (invoiced · received · collected % · still owed), clickable to the underlying invoices. Individual dated payment transactions come next, once the Flex payments list is connected.
v2.5.4
June 2026
Finance — "All Invoices" ledger — a full, always-visible table of every invoice (open, paid, and closed), with invoice name, client, account manager, dates, amounts, and status. Search by number/name/client/AM and filter by status. Independent of the period toggle above, so you can see everything at once.
v2.5.3
June 2026
Finance — pulls all invoices (paid & closed too) — the Flex sync now paginates instead of stopping at the first 300 rows, so the full history comes in — open, paid, and closed invoices. Revenue, collections, and client totals now reflect everything, not just the most recent 300.
v2.5.2
June 2026
Invoice names everywhere — the invoice name now appears anywhere an invoice number is shown: the Client Statement PDF (under each line) and the AI assistant's invoice context, in addition to the drill-down list.
v2.5.1
June 2026
Finance — invoice names in drill-downs — the invoice-detail popup now shows each invoice's name (the job/event) alongside its number, so you can tell invoices apart at a glance.
v2.5.0
June 2026
Finance — period filter & clear labels — a This Month · YTD · 12 Mo · All toggle now drives the revenue, Account Manager, and client tables, and every section states its exact scope (e.g. "YTD 2026" vs "as of today"), so it's never ambiguous what window you're looking at.
Finance — click-through invoice detail — click any client, account manager, or the Outstanding A/R card to open a drill-down listing every underlying invoice (number · dates · total · paid · balance · status), with the outstanding balance highlighted.
v2.4.0
June 2026
Finance — owner dashboard — expanded from A/R into a business-health view: Revenue YTD & MTD with month-over-month ▲▼ trend, average invoice size, and active-client count, alongside the existing collections & DSO metrics.
Account Manager performance — a table showing each AM's invoiced, collected, outstanding, and collection rate — see who's producing at a glance.
Top clients by revenue & concentration risk — ranks clients by revenue and shows what % of your revenue rides on your top 1 and top 5 clients.
Overdue watchlist — the biggest overdue balances to chase, ranked by amount and days late, so collections have a clear priority list.
v2.3.0
June 2026
New — Tasks — plan and assign to-dos with a people roster, priority, due dates, status, overdue flags, and a "My Tasks" filter. Found under Operations.
New — Finance — a live A/R & collections dashboard from Flex: aging buckets, DSO, collection rate, invoiced-revenue trends, top clients by balance, and one-click client statement PDFs.
Job Board — colours fixed — synced cards now match their lane colour, and each card's status chip shows its true Flex status colour (no more every-chip-green).
Job Board — accurate columns — a comprehensive Flex status → lane map so jobs (Quote, Confirmed, Prepped, Checked Out, Returned, etc.) land in the right column instead of being placed by date.
Removed Show Scheduler & Flex Preview — trimmed from the sidebar and Home to declutter Operations.
Revision number bumps each update — the version shown in the sidebar footer now increments with every change, so you can tell builds apart at a glance.
v2.2.0
June 2026
Job Board — new "Prepped / Out" column — the board now has four columns and places cards by their Flex manifest/pull-sheet status instead of just dates. A show that's been Prepped (and shipped out, not yet returned) now lands in the new Prepped / Out column instead of cluttering In Progress. Flow: Awaiting Prep → In Progress → Prepped / Out → Returned / De-Prep. Date logic stays as a fallback when no Flex status is available.
Pending Invoices — organization grouping fix — company extraction now probes the clientId object for company, companyName, organizationName, and parentName (plus nested .value paths), so invoices from contacts that share the same organization group correctly. Debug log prints the first raw row to console on sync — inspect it if grouping still falls back to the contact name.
Job Board — smarter column placement — date fallback now distinguishes Prepped / Out from In Progress: ship date past + return date future → Out; ship date today → In Progress. Shows whose return date is today or past now move to Returned / De-Prep automatically — even if the Flex status still says "Prepped" or "Shipped" (stale statuses no longer keep finished shows stuck in the Out column). Flex statuses "de-prep", "strike", and "completed" also route to Returned.
Job Board — time-aware overdue — overdue detection now checks the Flex status (not just the board column) to decide if gear has actually been returned. A show in Returned / De-Prep whose Flex status still says "Prepped" or "Shipped" gets flagged ⚠ OVERDUE — the return date passed but Flex doesn't confirm the gear came back. Shows with a confirmed Flex status ("Returned", "De-Prep", "Strike", "Completed") or manually moved by the user are not flagged. Uses the Flex return datetime for precise comparison — no more waiting until the next calendar day.
v2.1.6
June 2026
Pending Invoices — group by company — since several Flex client contacts share one company, grouping now defaults to Company (falling back to the contact when no company is set). The toggle is now a dropdown: Company / Client / Account Mgr / None. Each card shows the contact (and company when grouped another way); the banner counts companies.
v2.1.5
June 2026
Pending Invoices — group by client — each status column now clusters invoices under a client subheader with that client's subtotal and count (sorted by balance). A Group by client toggle switches between grouped and flat; the header now also shows the client count.
v2.1.4
June 2026
Flex API connection in Admin — base URL + API key now live in Admin (Test & Discover included), shared by the Job Board, Pending Invoices and Flex Preview. Foundation for filling the document generators from Flex by job.
v2.1.3
June 2026
Pending Invoices layout fix — the board now renders as three side-by-side columns. The shared board/column/card styles were scoped to the Job Board only, so the invoice columns were stacking; they now inherit the same grid layout.
v2.1.2
June 2026
Flex Preview tool — new Ops tool. Pick any active project from a Flex job selector and instantly preview its paperwork: header, ship/return dates, all elements (Quote / Pull Sheet / Manifest) with statuses, and the line-item list — then generate the Pull Sheet or Manifest PDF straight from Flex (decoded client-side, no upload). First step toward filling every generator from Flex by job.
Client-side PDF decode — Flex report PDFs (returned base64-encoded) are now decoded to binary in the browser, so generated documents download as proper PDFs.
v2.1.1
June 2026
Pending Invoices — payment-status columns — the board now groups by Needs to be Paid / Partially Paid / Paid (instead of aging), matching the Job Board layout. Paid invoices are now included so the Paid column populates.
Outstanding balance banner — a prominent live total at the top of the Invoices board, with an unpaid / partial / paid breakdown.
v2.1.0
June 2026
Job Board · Flex sync — the board now pulls live jobs from Flex. New Sync Flex button and ⚙ settings (base URL, API key, template discovery, days-back/ahead window, optional auto-sync). Walks the Quote → Pull Sheet → Manifest tree and buckets cards into Awaiting Prep / In Progress / Returned, with FLEX badges, doc numbers and a DE-PREP SOON warning. Manual cards still work alongside synced ones.
Pending Invoices board — new Ops tool modeled on the Job Board. Three columns — Current (≤30d) / Aging (31–60d) / Overdue (60+ or past due) — pulled live from Flex A/R. Each card shows invoice #, client, account manager, balance due, invoice/due dates, and a %-paid bar for installment invoices. Header tallies total outstanding.
Shared Flex connection — one API key (stored locally, sent via the X-Auth-Token header) powers both boards. Still a single file, no server — deploy to Netlify drag-and-drop as before.
v2.0.6
April 2026
Printers panel — IP configuration for document printer and label printer. Network connection test, QZ Tray integration guide, and 6 hardware recommendations scored across cost, longevity, support, and ease of setup.
Dark mode fixed — --black CSS variable now flips to #E8E8F0 in dark skin, fixing all 18+ headings and labels that were rendering black-on-black.
Logo auto-invert — Company logos are now auto-inverted in dark mode when brightness analysis detects a dark image. Dual light/dark preview in Brand Settings.
v2.0.6
April 2026
Home landing page — app opens on a full dashboard instead of the Return Manifest form. Company name, tagline, and today's date in a dark hero. Quick-launch cards for all 9 tools grouped by section.
Custom SVG icon set — all 26 emoji replaced with custom hand-drawn stroke icons. No system fonts or emoji rendering differences across platforms.
Job Board preview — Coming Soon panel added under Ops showing the v2.0 three-column board with Flex status colours.
Release Notes panel — full chronological changelog accessible from the sidebar.
v2.0.6
April 2026
6 unified style themes — Obsidian, Ivory, Slate, Carbon, Grid, Parchment — applied across all document types
Full brand colour engine — 5 customisable colour slots (Primary, Secondary, Text, Background, Highlight) with preset swatches
Admin panel — PIN-locked settings for tax, deposit %, terms, validity, page size, and show/hide pricing
Style picker on all tools — Return Manifest and Tech Package now have inline style selectors
Case Labels fixed — direct PDF upload now works independently without Tech Package data
Style preview — live HTML preview in Brand Settings shows exact output colours before generating
v2.0.6
April 2026
Admin settings panel added with PIN lock, document defaults, tax configuration, and T&C editor
6 initial style themes introduced for Proposals, Pull Sheets, Case Labels, and Tech Packages
Style selector added inline on Proposals and Pull Sheet panels
Morgain identity locked — "Powered by Morgain" sidebar is fixed; Brand Settings controls client company only
v2.0.6
April 2026
Proposals live — full Flex Quote PDF parser (15/15 tests), 6 styled PDF outputs, auto-fill all job fields
Pull Sheets live — Flex Pull Sheet PDF parser matching the original Flex layout exactly
Brand Settings — Company defaults, logo upload, accent colour with presets
Case Labels direct upload — Shipping Manifest PDF can be dropped directly into Case Labels tab
Section detection fixed — x-position used to distinguish real section headers from wrapped descriptions
v2.0.6
April 2026
Proposals panel added (initial version) — Flex Quote upload and 6 style dispatch
Case Labels standalone PDF upload introduced
Quotes renamed to Proposals throughout the UI
v2.0.6 and earlier
April 2026
Return Manifest generator — photo matching, auto-fill, dual-verification algorithm
Tech Package generator — container detection, design doc embedding, parallel PDF fetch
Photo Library — IndexedDB persistence, gear photo matching, thumbnail gallery
Migrated from Python proof-of-concept to full browser-based HTML app
55-point automated test suite — Playwright headless Chromium
Built by Morgain · morgain.tools · Single HTML file · No server · No install
Printers
Configure network printers for documents and case labels. Store IP addresses, test connections, and send print jobs directly from Morgain Tools.
Configuration
Document Printer
Manifests · Proposals · Pull Sheets · A4 / Letter
Printer Name (as listed in OS)
IP Address
Port (default 9100)
Label Printer
Case Labels · Shipping Labels · 4×6 thermal
Printer Name (as listed in OS)
IP Address
Label Size
How IP Printing Works
Document printing — built in
All document generators (Manifests, Proposals, Pull Sheets, Tech Packages) use window.print() which opens your browser's native print dialog. Select your configured network printer by name, set the paper size, and print. Works on any OS with no extra software. Your printer just needs to be on the same network and added to your OS.
Label printing — requires QZ Tray
Sending raw ZPL commands to a Zebra or thermal label printer from a browser requires QZ Tray — a free background app that bridges browser → printer over a local WebSocket. Once installed it runs silently and Morgain Tools can send labels directly without any dialog.
  1. Download and install QZ Tray from qz.io
  2. Keep it running in the background (add to startup)
  3. Enter your label printer's name and IP above
  4. Case Labels will gain a Print to Label Printer button
Download QZ Tray →
Recommended — Document Printer
Laser printer with Ethernet + Wi-Fi. Rated on cost, longevity, support quality, and ease of IP integration.
TOP PICK
Brother MFC-L9670CDN
Color · Multifunction · Laser
~$450 upfront
Cost / TCO
9.2
Longevity
9.0
Support
8.8
IP Setup
9.0
Ethernet Wi-Fi Duplex Lowest TCO AirPrint
COMPACT
HP Color LaserJet Pro 3201dw
Color · Single-function · Laser
~$400 upfront
Cost / TCO
8.2
Longevity
8.5
Support
8.8
IP Setup
8.8
Wi-Fi Duplex HP Wolf Security TerraJet Toner
BUDGET
Lexmark C3224dw
Color · Single-function · Laser
~$280 upfront
Cost / TCO
8.5
Longevity
7.8
Support
7.5
IP Setup
8.5
Wi-Fi Ethernet Compact High-yield toner
Recommended — Label Printer
Direct thermal, 4×6 format. No ink or ribbon needed. Rated on the same four criteria.
TOP PICK
Zebra ZD421
Direct Thermal · 4×6 · Industrial
~$500 upfront
Cost / TCO
8.0
Longevity
9.7
Support
9.5
IP Setup
9.5
Ethernet Wi-Fi ZPL Native QZ Tray ✓ Warehouse grade
BEST VALUE
Rollo X1040
Direct Thermal · 4×6 · Desktop
~$220 upfront
Cost / TCO
9.5
Longevity
9.0
Support
7.8
IP Setup
8.2
Wi-Fi AirPrint No drivers 650k label head QZ Tray ✓
HIGH RES
Brother QL-1110NWB
Direct Thermal · 4×6 · 300dpi
~$250 upfront
Cost / TCO
8.2
Longevity
8.2
Support
8.5
IP Setup
8.5
Wi-Fi Ethernet Auto-cut 300 dpi Brother app
Note on consumables: Laser toner runs 3–5¢ per page vs 5–10¢ for inkjet — the difference adds up quickly at production volume. Direct thermal labels need no ink or ribbon at all; just order blank 4×6 rolls. Both printer types have duty cycles rated for years of daily AV production use.
Test Suite
Live in-browser tests — runs directly against this file
Tests run entirely in-browser — no server, no external tools required
1
Drop your Flex Shipping Manifest PDF here
Reads all pages · detects containers & contents automatically
2
3
Stage Plot
Drop or click to upload
Floor plan & speaker positions
PDF · JPG · PNG
Input List
Drop or click to upload
Channel assignments & sources
PDF · JPG · PNG
PA System Design
Drop or click to upload
Speaker system design
PDF · JPG · PNG
PA Angles
Drop or click to upload
Coverage angles & aim points
PDF · JPG · PNG
Production Photos
Drop or click to upload
Event / venue photos for cover
JPG · PNG · HEIC
Document Style
Document Style
Tech Package — one section per container showing contents  ·  Master Sheet — consolidated qty list, all items grouped  ·  Case Labels — printable label grid, one per line item
1
Pull Sheet Style
2
Drop your Flex Pull Sheet PDF here
Pull Sheet PDF from Flex · auto-fills all job details
3
4
1
Proposal Style
2
Drop your Flex Quote PDF here
Quote PDF from Flex · auto-fills all job and client details
3
4
Job Details
Quote Style
+ Add Section
Quote Total
$0.00
Log New Repair
New Task
People
Your assignable roster. Add crew here and they become selectable on every task. The optional Slack ID links a person for Slack notifications later.
Colour
Name / What it is
Cable Type
QTY
From
To
Notes / Prep
Case Labels

Drop a Flex Shipping Manifest PDF below to generate one label per container. Or upload in the Tech Package tab first — data will be shared automatically.

Drop Shipping Manifest PDF here
or click to browse · optional if Tech Package already loaded
Label Size
1
Drop instruction PDFs here
PDF files only · multiple files · stored in browser until you export
Uploaded PDFs (0)
No PDFs uploaded
Drop instruction manuals above to get started
2
Select an uploaded PDF. The QR URL builds from your company slug in Admin Settings.
Categories
3
0
Items
0
Categories
0
PDFs Linked
No gear items yet
Upload PDFs and assign them to equipment above
4
5
Preview item
This is what crew sees when they scan the QR code. Tap the button to view the actual uploaded PDF.
Select a gear item to preview
AI Assistant
No document context loaded
Ask questions about loaded documents, gear lists, or AV production. Open Settings (⚙) to connect.