Loading fleet…
Your account
Two-Factor Authentication
Require a time-based code from an authenticator app (Google Authenticator, Authy, 1Password) at login. Strongly recommended for a production admin account.
Account recovery
If you forget your password or lose your authenticator, this is how you get back in. Without a verified email, nobody can send you a reset link or a sign-in code.
Sign-in activity & devices
Every sign-in attempt on your account, and the browsers that are trusted to skip the new-device code. If you see something you did not do, change your password and remove the device.
Team Members
Shop Branding
Your name, where customers reply, where you are, your logo and your colour: on the quote form, the pages customers open, your emails and your invoices.
Advanced: your own web addressesonly if your quote form or order page lives on your site
What customers see
data-theme="light" on the script tag.Advanced — send from your own domain Enterprise
Only set this once your domain is verified with our email provider — otherwise sends will fail. Leave blank to keep the reliable default (your name on our verified sending address).
Case studies
Show "Work we've done" to customers
Your case studies
Customer FAQ
Tax & Invoice Settings
The tax line on every quote and invoice, and the business details printed under it. Ontario shops charge 13% HST.
Website chat
What the chat knows Professional and up
How your quote form works
Pickup
Local delivery
Offered on the quote form to customers inside the circle. You quote the fee on each order.
Shipping
Always offeredEvery quote form offers shipping. Outside Canada and the US it is quoted after checkout.
Ways to pay
What a customer can pick when they approve. Changes save as you go.
When they pay
Your defaults for print orders. Change any one order on its Money tab.
Estimates and invoices
Saved line items
Things you charge for that are not a printed part. Start typing one on an estimate or an order and it fills in. Changing one here never changes an estimate already sent.
Sent on their own
Ask for a photo
Google review Professional
Sending
Sending hours
Test mode
Your words
Wording on each emailSubject and your own words
Snippets
{name} becomes their name.More
Send a sampleSee a real email in your inbox
Email logging and website formsConversations on the timeline, forms as leads
Website forms become leads: paste one of these into your form builder's webhook setting and every submission lands in Inquiries like a quote request. Typeform: Connect → Webhooks. WPForms: Settings → Webhooks (the Webhooks add-on). Any other builder: post the fields, as JSON or a normal form post, to the last URL. File-upload answers arrive as links in the notes.
Late and stuck work
Late orders
What customers do
Sends their shipping address
Attaches a PO
Approves an estimate
Emails a file about an order
Phone pings
End of day
End-of-day summary
Who gets chased
Timing
When they go out
How often by lead
Call instead of emailing
AI persona
Ready-made emails
Follow-up templates
Turning a job down
Reasons and letters
Manage subscriptions
Bring data in
Defaults for past orders
Take data out
Send events out
Add a webhookSlack, Teams, Discord, n8n, Zapier, Make
Apps
Outlook / 365 email sync
Pull your customer emails into Layers3D so each customer's email history (both directions) shows on their timeline in Customer 360. When a customer emails you CAD files, the files are downloaded and a draft quote is opened for you to review.
Use your own Microsoft app registration
ShipStation
ClickShip
Connect ClickShip to get live shipping rates from Canada Post, Purolator, UPS, and FedEx directly in the Create Shipment modal — and purchase labels with one click.
Spoolman
Connect to your self-hosted Spoolman instance for live filament stock levels. Each order in the queue will show estimated grams needed and a /stock indicator.
Or set SPOOLMAN_URL as a Railway environment variable — takes priority over this setting.
Mailchimp Integration
Connect Mailchimp to automatically sync at-risk customers into your audience with a tag. Then create one automation in Mailchimp triggered by that tag to send your re-engagement email.
Find your API key in Mailchimp → Account → Extras → API Keys.
Find your Audience ID in Mailchimp → Audience → Settings → Audience name and defaults.
Lifecycle tags in your email tool
Mark each contact in your own Mailchimp or Brevo as the sale moves: Lead when a request arrives, Won when a quote is accepted, Customer when they pay. In Mailchimp these are tags ("Layers3D: Won"); in Brevo, the contact attribute LAYERS3D_STAGE. Then build segments such as "asked but never bought" without exporting anything.
Only switch this on if your customers have agreed to hear from you. New Mailchimp contacts are added as transactional, not subscribed, and Brevo contacts are not added to any list, so no campaign reaches anyone until you choose to invite them.
Wave Apps Sync
Imports your paid Wave invoices as completed orders, so revenue, customer LTV and reorder timing come from your real books. Every run re-checks every invoice — an invoice you haven't been paid for yet simply arrives once Wave marks it settled.
Connect in Apps → Wave: paste a Full Access Token from
developer.waveapps.com → Applications,
then the Business ID. (The WAVE_API_TOKEN / WAVE_BUSINESS_ID env vars still work as a fallback.)
Invoices only. Wave's API cannot list transactions, so expenses still come from the
Profit & Loss import below. Only paid invoices import — unpaid ones arrive once Wave marks them settled.
Reconcile compares every invoice in Wave against what Layers3D holds and reports any
disagreement. It reads only; nothing is changed without you asking.
Google Ads
Sign in with the Google account that runs your ads. When a job that came from an ad click is won, it is sent back to that Google Ads account as an offline conversion with the job's value, so Google bids toward the clicks that turn into paid work. Spend and clicks show on Statistics.
Use Layers3D from Claude or ChatGPT
Add Layers3D to your own assistant and ask it about your shop in plain words. It works as you, with your role, and asks before it changes anything. It runs on your own Claude or ChatGPT plan, so there is no key to add and nothing extra to pay here.
- Claude (claude.ai or the app): Settings › Connectors › Add custom connector, paste the address.
- ChatGPT: Settings › Apps & Connectors, turn on Developer mode under Advanced, then Create and paste the address.
- Cursor and other MCP tools: add a remote MCP server with this address.
- A Layers3D page opens: choose whether it may make changes, then Allow.
Drive Agent
The Drive Agent runs locally on your machine and automatically creates the project folder structure on your Google Drive and downloads customer files. Save your backend connection above first, then download the pre-filled config.
printflow-drive-agent/ folder and run node agent.js.
BambuBuddy
Connect your own Bambuddy to send approved plates into its print queue, with the AMS trays, colours and print options picked in Layers3D. Then choose Bambuddy under Shop setup › Machines › Print defaults.
Make the key in Bambuddy › Settings › API keys, with Read status, Queue and Manage archives on. Layers3D reaches Bambuddy over the internet, so the address has to be a public one (a Cloudflare Tunnel works); an address on your own network, such as 192.168.1.20, cannot be reached from here.
Accounting
Which system keeps this shop's books. Tools for the other systems stay hidden so the Settings page only shows what this shop can actually use.
QuickBooks and Xero each sign in on their own page: QuickBooks, Xero.
Import RFQ Email
Paste a "Request For Quote" notification email from the website contact form and it becomes an inquiry in your Orders — name, email, phone, company, project details, files and "how did they hear about us" all mapped automatically.
Texting automations (Quo)
Control which texts go out automatically. These also live on the Messages page under Automations.
No answer when you call out
When you call a customer and they don't pick up, draft a text asking them to call you back. The draft waits in Follow-ups — nothing is sent until you approve it.
Month by monthrevenue, orders and parts made in this range
Customer health and lifetime valueactive, cooling, at risk, gone · value tiers · every customer
Quality by material and partprinted right first time, scrap, reprints, defect reasons
How busy your printers arecounted, worked out, or your weekly answer
Orders by statuswhere this range's orders are now
Your custom lead fieldsorders for each answer
AI insights and pricing adviceuses your own AI key
Feedback inbox
Beta applications
Server slicing
Look-alike shops
Weekly roundup
Early access
Import Wave Apps Invoices (Manual CSV)
Import your historical invoices from Wave to populate order history, customer LTV, and statistics.
In Wave: go to Sales → Invoices, click Export (top right), save the CSV, then upload it here.
Automatically detects technology (FDM/SLA/SLS) and shipping method from invoice descriptions. Orders that can't be detected get the default below.
If you already imported invoices and they're missing technology/material, set defaults here and apply to all imported orders.
Projects
Multi-week jobs that span more than one order.File Manager
Your shop, in one place
Your materials
Add them one at a time, paste your whole list, or take a maker’s line-up. A price is optional: a material without one is for your own orders only, and you can price it later under Prices and cleanup.
Price policy
The decisions every engine shares: your minimum, the lead-time options a customer can pick, how price falls with quantity, and what finishes and extras add.
Price by quantity
Professional and up Answers "how much for 1, 5, 10?" before anyone has to ask. Prices come from your own engine, so they always match the quote.
Lead-time options
SavedWhat a customer can choose, what each option adds to the price, and how the days are worked out from the print time. The quoter never promises a day the print itself cannot make. Every change saves as you make it.
Every pricing setting
How you price
Three ways to turn a part into a price. Pick one; every path uses it — the website quoter, saved quotes, part-edit repricing and email auto-quotes — so there is always exactly one price. Each card shows what it would charge for the same sample part with your current rates.
Rates
SavedThree numbers per technology, and the materials the quoter offers. Every change saves as you make it; the example part on the right re-prices as you type.
Each material’s spec sheet — tolerance, heat, chemical and UV resistance, default layer height and infill — is edited in Materials and colours (pick the material, then Spec sheet), and fills quotes, the order panel and your emails on its own.
How long a part takes to print
Turns a part's size into machine hours, which is what every lead time is built on. These start as estimates, not measurements — nothing has ever come back from the slicer with a real print time. The quickest way to fix that is at the bottom: give it a job you actually ran.
How your shop connects
Layers3D is online. The Layers3D Agent, on a computer at your shop, reaches your printers for it.
Settings
Everything for the agent, in one list.
Questions
What shops ask most.
What does the agent do?
Does the computer have to stay on?
Which computer can I use?
Will the Bambu Handy app still work?
Why does the printer need a USB stick?
How do I turn on LAN Only and Developer Mode?
Do I need slicing profiles?
What is the virtual printer?
Agent and computerInstall, add another computer, updates
- Download Layers3D-Agent.exe and run it on a PC that shares your printers' network. Windows may ask you to confirm an unrecognised app — choose Run anyway.
- Paste your agent token when it asks (Copy agent token above). It installs itself, starts with Windows, and stays out of sight; your printers appear here within a minute.
- Optional: OrcaSlicer on that PC switches on auto-slicing — upload one printer profile per printer + material, then approve a file to trigger the first slice.
The token is yours alone — your agent can only ever see your shop's jobs. Prefer a file? Download config.json and drop it next to the exe before running it. Lost or leaked? Ask support to rotate it.
Virtual printerPress Send in Bambu Studio and the job joins your queue
Slicing profilesYour own slicer settings per machine and material
Upload a Bambu Studio project (.3mf) or an OrcaSlicer or PrusaSlicer settings file (.json) per machine and material. The most specific one wins. How to export one
Loading…
Services you offer
Anything switched off is hidden across the app — its tabs, its settings and its option on a new order — and from the quoter on your website. Nothing is deleted, so turning it back on brings everything back.
Repair catalog
Which printers you service. The repair request page shows a customer a live verdict the moment they pick a brand and model — "we service this", "case-by-case", or turned away — so out-of-scope machines never reach your inbox. Set each model to Accept, Review (case-by-case), or Reject. A brand with no models uses its default for anything a customer types.
Repair pricing
What a repair starts from. A new quote opens with the visit fee for the customer's choice and labour at your hourly rate, and you can change any line before you send it. Turn on Show these prices on the repair form and customers see the drop-off and on-site fees before they send a request.
| Symptom | Hours from | Hours to | Parts from ($) | Shows as |
|---|
Repair bookings
A customer who accepted an estimate picks their own drop-off or on-site slot, and is reminded the day before.
Both are on by default. The reminder runs on your daily schedule, never double-sends, and follows Email Test Mode like your other customer emails.
Post-Processing Checklist
Steps shown when an order is in Post-Processing. Required steps must be checked before marking fulfilled. Edit the JSON below to add/remove/reorder steps.
Box Sizes
Enter every box size you keep in stock. The smart boxer uses these to recommend the right packaging for each order. Dimensions in cm. Padding buffer = extra space added around parts for bubble wrap etc.
Box-label printing
Whether the box label prints when an order moves to To print, and the paper size it's laid out for.
To skip the print dialog entirely, run the admin on your packing-station PC in kiosk-printing mode and set the label printer as that PC's default. Then approvals print silently:
Without kiosk mode, approvals still auto-open the label and pop the print dialog — you just click Print. Printing uses whatever printer the machine you're approving on is set to, so approve at the packing station.
SLS Outsource Automation
When an SLS order is approved, automatically email your vendor with all specs + file download links. You can also trigger it manually from any SLS order panel.