Lansen Label — Label & Packaging Production
Building a secure client portal for label production workflows
Lansen Label needed a secure operational system for quote requests, artwork uploads, client updates, job tracking, invoices, payments, reports, reorder history, and pickup or delivery signing.
Case Study
Creating one operational home for customers, staff, files, and jobs
Lansen Label needed more than a basic form or generic customer portal. The business required a secure system that matched how label and packaging work actually moves.
Customers request quotes, upload artwork, wait for review, receive updates, approve work externally, track jobs, view invoices, request reorders, and sign for pickup or delivery. Before this project, those steps could spread across email, WhatsApp, staff notes, separate documents, and manual follow-ups.
The Lansen Label portal was designed as a focused business system: one secure place for customers to interact with their account and one structured dashboard for staff to manage quotes, jobs, invoices, payments, reports, files, notifications, and delivery records.
The Challenge
Lansen Label's workflow had too many moving parts for a simple form builder or off-the-shelf CRM.
Customers do not always know the technical details of a label or packaging job. Some can provide complete specifications, while others need recommendations on materials, finishing, quantities, or production details. The quote request flow needed to support both types of clients without making the process feel intimidating.
Artwork and supporting files are central to the work. Print-ready artwork, sample photos, revised artwork, reference images, quote documents, invoices, receipts, and delivery signatures needed to be treated as private business records, not casual attachments.
The internal team also needed operational details that customers should never see: internal statuses, notes, audit records, notification failures, and staff-only workflow context. At the same time, customers still needed clear, professional progress updates.
Project Goals
The system had to reduce manual follow-up while creating a reliable foundation for the business to grow into.
Centralize customer workflow
Give customers one place to request quotes, upload artwork, view quote and job statuses, access invoices, review balances, download shared files, and see recent updates.
Support staff operations
Give staff/admin users work queues for new quotes, quotes awaiting information, active jobs, receivables, delivery readiness, failed notifications, payments, reports, and delivery records.
Preserve job and reorder history
Capture enough structured history for customers to request reorders from previous jobs without blindly duplicating outdated specifications.
Separate internal and client-facing status
Let staff track the operational reality internally while clients see simpler progress labels such as Quote Received, Awaiting Information, In Production, Ready for Pickup / Delivery, and Completed.
Protect files and workflow records
Use private file records, timeline events, audit-friendly data, and secure access patterns for artwork, invoice PDFs, receipt PDFs, proof files, and delivery signatures.
The Solution
The final product is a custom Next.js application with a client portal, an admin/staff dashboard, and a mobile-friendly delivery signing module.
The application uses a structured domain model for companies, contacts, users, quotes, jobs, files, comments, internal notes, timeline events, notifications, invoices, payments, delivery records, settings, and audit logs. This gives Lansen Label one operational source of truth instead of scattering the workflow across messages and documents.
The client portal lets customers request new quotes, request reorders, view quote and job statuses, access invoices, review balances, download shared documents, and see recent client-visible updates. The admin dashboard gives staff live work queues for quote review, production, billing, delivery, receivables, and notification issues.
Key Features
The system connects quote intake, job management, files, billing, reports, customer history, and delivery confirmation in one secure workflow.
Secure portal access
Email/password authentication, invite flows, reset password support, database-backed sessions, and role-based access control separate client, staff, and admin access.
Client dashboard
Customers can see recent quotes, active jobs, outstanding balances, invoices, shared files, and updates from one account dashboard.
Quote and reorder workflows
The quote flow supports customers with complete specifications and customers who need recommendations. Reorders are treated as new quote requests based on prior job history so details can be confirmed before production.
Admin work queues
Staff can prioritize new quotes, quotes awaiting information, active jobs, ready deliveries, receivables, and failed notifications without searching across disconnected tools.
Job management
Approved quotes can be converted into jobs with a snapshot of approved quote details, internal production status, and separate client-facing status.
Private file handling
Artwork, sample photos, quote documents, invoice PDFs, receipt PDFs, proof-related files, and delivery signatures can be tracked by category, visibility, and record relationship.
Timeline history
Important actions create timeline events for quote submissions, file uploads, status changes, invoice activity, payments, comments, notifications, delivery records, and other workflow events.
Invoices, payments, reports, and delivery
The system supports invoice creation, payment recording, balances, aging reports, sales reports, job history reports, customer statements, export controls, and mobile pickup or delivery signatures.
Technical Approach
The architecture was built for workflow safety, private files, and future expansion.
The application uses Next.js App Router and TypeScript for the application foundation, Drizzle ORM for schema-defined database access and migrations, Postgres as the source of truth, Auth.js / NextAuth-style authentication, Cloudflare R2-style private object storage, a Resend-style notification outbox, Zod validation, server-side service/action modules, and React PDF support for invoices, receipts, statements, and report documents.
Large artwork files are designed to move through direct-to-storage uploads instead of being routed through the application server. That matters for label and packaging artwork because serverless platforms have request payload limits and business files need controlled private access.
The codebase separates UI routes from business services, validation helpers, workflow contracts, status labels, permissions, reporting logic, and database schema so Lansen Label can add future proofing, WhatsApp notifications, pricing logic, accounting integrations, and deeper production tools without replacing the foundation.
Product Decisions
The first version stayed practical and affordable while protecting room for later phases.
Proof approval left for later
Full in-app proof approval was excluded from version one, but the data model keeps room for a future proofing workflow.
External approval captured by staff
Client quote approval is initially recorded by staff from external confirmation instead of requiring a legal approval flow inside the portal.
Immutable billing documents
Invoices and receipts are generated and stored as records so the exact issued document remains available later.
On-demand statements
Customer statements are generated when needed rather than stored as permanent snapshots in version one.
Controlled delivery signing
Delivery signing is staff/admin controlled to keep authorization simpler for the first release.
Clear future phases
WhatsApp, accounting integrations, online payments, automatic pricing, inventory, and native mobile apps are positioned for later phases.
Business Impact
The portal gives Lansen Label a stronger operational backbone for quote intake, production visibility, billing, files, and delivery records.
Better customer transparency
Customers can view quotes, jobs, invoices, balances, documents, and updates without needing to ask the team for every status check.
Cleaner staff visibility
Quote review, estimating, production, billing, delivery, and notifications are connected through shared records and timeline history.
Less fragmented communication
Quote details, artwork files, invoices, balances, delivery confirmations, and reorder history are no longer dependent on scattered messages and separate documents.
A foundation for growth
The system can grow into proof approvals, WhatsApp notifications, pricing rules, production integrations, accounting sync, and deeper analytics without replacing the core architecture.
Outcome
The project delivered a custom operational portal tailored to how Lansen Label works instead of forcing the business into a generic system.
The result is a secure, structured, and expandable system that helps Lansen Label present a more professional client experience while giving staff better control over quote, job, invoice, payment, file, report, and delivery workflows.
Services Delivered
Great individual to work with. Not afraid to chase after new ideas. Would recommend to anyone.
Liked What We Built for Lansen Label?
Let's discuss how we can create similar results for your business.