Customers — your shop's contact book and CRM
Who it's for
The owner or manager keeps the customer list tidy and decides who gets deleted or merged. Front-desk staff add new customers from a phone call or walk-in, often by pasting an email signature. Designers open a customer's profile to grab brand colors and logo files before starting artwork. Everyone who creates a job or quote touches a customer record, because every job and quote belongs to one.
Where it fits
Customers sit at the very start of the workflow, before a job even exists. A customer is created the first time you take down someone's details — whether you add them directly here, import a CSV from your old CRM, create one on the fly inside the job modal or the New Quote sheet, or receive a request-a-quote web form. From then on, every job, vehicle, quote, invoice, and email for that person threads back to their customer record — and the customer's own links (their tracking page, quote, invoice, and email preferences) all hang off it too. See workflow-map.md for the full lifecycle and personas.md for how each role uses the CRM.
Overview
A customer in Wraptor is the company or person you do work for. Each customer record holds their company name, a point-of-contact name, phone, email, website, mailing address, free-text notes, a tax-exempt flag, and a newsletter opt-in. Under each customer you can store any number of additional contacts (for example, a fleet manager plus an accounts-payable person), their vehicles, their brand colors, and their logo and brand files — everything you need to service them in one place.
Wraptor is built around the idea that the "customer" is usually a business, so the main name field is Company Name. For a private individual, just put the person's name in the Company Name field and you're done — there's no separate "individual vs. company" toggle to fuss with.
The customer's profile page is a dashboard of their whole relationship with your shop: total jobs, active jobs, completed jobs, vehicle count, their job history, their vehicles, their contacts, and their brand kit. It is also where you decide who Wraptor emails on their behalf (the contact list) and where you copy the one link that shows them their whole account with you (Portal link).
Screens & navigation
Customers hub (/customers)
Customers is its own destination in the navigation, with three tabs: Customers, Vehicles, and Fleets. The Customers tab is the directory. On desktop, the hub bar shows four counters — customers, fleet vehicles, avg / customer, and reachable (customers with a phone or email on file) — plus two buttons: Import (opens /customers/import) and New Customer (opens /customers/new). Below that, each customer is a card showing the company initials, the company name, the point-of-contact name (or No contact), the phone (tap to call, or No phone), the email (tap to write, or No email), and a vehicle-count chip. Click the company name or the Profile → link to open that customer's profile.
- Search box — type to filter the cards as you type by company name, contact name, email, or phone. While you're searching, a small N of M count shows how many matched.
- Card menu — the three-dot menu on each card has Edit (opens the profile), Copy portal link (see below), and Delete.
- The list is sorted by company name and loads up to 1,000 customers. Opening
/customers?search=acmenarrows the list on the server, which is how the customer pickers elsewhere in the app stay fast.
On a phone, the same list appears as a Customers header with a count badge, a search icon that opens a search box, and tappable cards showing the initials, the contact (or No contact), the vehicle count, and a one-tap call button when a phone number is on file.
New customer form (/customers/new)
The full form for adding a customer. Fields: Company Name (required), Point of Contact, Phone, Email, Address, City, State, ZIP (the last two carry your region's wording — Province/Postal code in Canada, County/Postcode in the UK, Region or State/Postcode in NZ and Australia), Website, Notes, a Tax Exempt (nonprofit, EMS, fire dept, etc.) switch, and a Newsletter opt-in (okay to send marketing emails) switch (off by default). A Paste from clipboard button at the top can auto-fill the form from copied text (see below); beside it a hint reads "Tip: copy a full email signature, then click Paste to auto-fill". Click Create Customer and you land on the new customer's profile.
Import (/customers/import)
A four-step wizard — Upload, Map columns, Preview, Import — for a CSV from Jobber, Zoho, or any other CRM. Existing customers are matched — by Source ID first if your file carries one, then email, then phone — and updated rather than duplicated, and vehicle columns (year, make, model, color, VIN, license plate) import too, one vehicle per row. A Newsletter opt-in (yes/no) column maps onto the customer's opt-in switch. The wizard is documented in Imports.
Customer profile (/customers/[id])
The full record for one customer. It includes:
- Top bar — a Customers back link and four controls: Portal link, New Job, Edit, and a three-dot menu holding Delete Customer.
- Header — a colored avatar with the company initials, the company name, a Tax Exempt badge if that flag is set, clickable phone, email and website chips, and the mailing address as plain text. Notes appear underneath in italics.
- Stats ribbon — four tiles: Total Jobs, Active (jobs not yet on your last workflow stage and not archived), Completed, and Vehicles.
- Vehicles section — every vehicle on file for this customer, each showing year/make/model, vehicle type, and how many jobs it has. Click a vehicle to open it; use Add (or Add Vehicle in the empty state) to create a new one for this customer.
- Job History section — the customer's jobs (highest job number first, up to eight shown) with job number, title, and a colored stage badge. A View All link to the Jobs board appears when there are more than eight.
- Contacts panel — the list of additional contacts with Add Contact, inline edit, and delete (see below).
- Brand Colors panel — saved brand colors for this customer, opened with Add (and From Library once your shop has colors of its own saved); the save button inside the form reads Add Color. See Colors.
- Brand Assets panel — logos and brand files for this customer, with Upload (see Files).
- New Job — opens the job modal with this customer already selected.
- Edit — opens the full customer form in an Edit Customer dialog; save with Update Customer.
The Vehicles tab of this hub is documented in vehicles.md and the Fleets tab in fleets.md. A customer can own vehicles and act as a fleet account.
Capabilities
Adding customers — the ways in
- Full form (
/customers/new) — every field, including tax-exempt and newsletter opt-in. - Import (
/customers/import) — a CSV from your old tool, customers and vehicles together. See Imports. - From the job modal — open the job modal's customer field and pick New Customer (the same item reads
Create "…"once you have typed a name into the search), then fill in company name, contact, email, and phone; a compact Paste button fills them from a signature. Click Save & Continue to create the customer on the spot, or just finish the job — it is created along with the job. - From the New Quote sheet — choose New customer under the customer search, enter a Name plus optional Email and Phone, and click Create customer. The sheet warns "No email — you can build it, but you'll need one to send."
- From the vehicle form — the + button next to the customer picker opens a compact New Customer dialog (company name, email, phone, address, city, state, ZIP, with its own Paste from clipboard button) and hands the new customer straight back to the vehicle you were adding.
- From a web form — a request-a-quote submission creates the customer for you.
- From QuickBooks or Xero — once the connection is made, Import customers on Settings → Accounting & Billing brings your existing accounting customers across (customers only — QuickBooks sub-customers and projects are skipped, and so are Xero supplier-only contacts; a match on email or name links to the Wraptor customer instead of creating a second one). Leave the nightly import on and new accounting customers keep arriving. See Invoicing & billing.
The job modal hides its inline New Customer box from roles that don't hold the Customers permission, because the server refuses the create anyway.
Paste-to-create — what it reads The paste button scans the copied text and pulls out:
- Email — the first email address it finds.
- Website — the first web address (ignores the email's domain).
- Phone — a line that looks like a phone number, stripping labels like "Phone:", "Mobile", "Cell".
- City, State, ZIP — a "City, ST 12345" line (the state must be a real US state abbreviation).
- Street address — a line that starts with a street number, preferring the line just above the city/state/ZIP.
- Contact name — a line shaped like a person's name (e.g., "Jane Q. Smith").
- Company name — the first leftover line that isn't one of the above.
It only fills blank fields — it won't overwrite something you've already typed. The button briefly reads Filled when it worked. If the clipboard is empty or nothing recognizable is found, it says Clipboard empty; if your browser blocks clipboard access, it says Clipboard blocked. Always glance over the result, since this is a best-effort guess.
Individuals vs. companies There's no separate mode. Businesses go in by company name; for a private individual, type the person's name into the Company Name field. The optional Point of Contact field names the main person at a company — it is the name printed on the customer's card in the list.
Contacts under a customer On the profile, the Contacts panel lets you store extra people for one customer:
- Add Contact — First Name (required), Last Name (required), Email, Phone, a Primary Contact switch, a Reminders by email switch (on by default), and a Text updates — not sending yet switch (off; nothing in Wraptor sends a text today, so the answer is stored for when it does).
- Only one contact can be primary at a time — marking a new contact as primary automatically clears the flag on the others. The primary contact wears a Primary badge in the list.
- The pencil icon opens a contact for inline editing (the same fields; the primary switch is labeled Primary there) — save with Save. The trash icon asks "Delete this contact?" first.
Who Wraptor emails — the one recipient rule. Every customer email — a quote, an invoice, a reminder, a tracking link — goes to exactly one address: the primary contact's email, and if there is no primary contact with an email, the Email on the customer record. There is no CC list. If a field holds two addresses ("a@x.com, b@x.com") and both halves are valid on their own, Wraptor sends to the first one; if it holds something that isn't a single valid address ("jane doe@acme.com"), the send is declined and shows up as Suppressed with the reason "The email address on file isn't a valid single address". A customer with no address at all is skipped with "No email address on file". You can see these outcomes on Settings → Communications → Customer messages → Activity and in a job's Customer tab, whose Who it goes to card shows the exact address the next send will use and offers an Edit link (it needs the Customers permission).
What the contact switches actually control. Reminders by email covers the nudges: Quote reminders and Win-back at 30 and 60 days, Invoice reminders, the Appointment reminder before a booking or a scheduled install, and the Review request when a job is done. It does not cover the work itself — a quote you send, the approval confirmation, an invoice, a receipt, a proof to approve, a document to sign, booking confirmations, job updates, and the warranty certificate and its expiry notices always send, because a customer who stopped receiving those would stop hearing about their own car and their own money. (The three job milestones — Scheduled, Work started, Ready for pickup — ignore this switch too, but they only go out at all once you turn them on for the shop; they start off.) The shop's newsletter is separate and opt-in: it goes only to customers whose Newsletter opt-in switch (on the customer record, not the contact) is on. Whether each message type is turned on at all for your shop is decided on Settings → Communications → Customer messages — see Settings.
Your customer can set these themselves. Some of the emails Wraptor sends for you carry a Manage what we email you link in the footer: the quote you send, its reminders, the win-back, and anything you send from the email composer — a proof, an invoice, a receipt, a job update, or an email you wrote. The automatic ones do not carry it yet — invoice reminders, the receipt that goes out on its own after a payment, appointment reminders, a document to sign, the approval confirmation and the three job milestones all arrive without the link — so a customer who wants off the nudges either asks you or you flip the switch here. The link opens the customer's own Email preferences page — a signed link, no account, on the same dark page as their tracker, wearing your logo, colors, and contact footer — with the line "What {your shop} sends to {their address}." and three rows that save the moment they're ticked (an inline Saved tick confirms each one):
- Reminders about your work — the same switch as the contact's Reminders by email.
- News and offers — the same switch as the customer's Newsletter opt-in.
- Text updates — stored for when texting ships; nothing is sent before then.
Underneath, a panel with no switch — Your quotes, invoices and job updates — explains that those always send because they are the work itself, and points the customer at your shop's contact email if they want you to stop working on something ("that is a conversation, not a switch"). Whatever they choose lands on the contact record you see here, so the shop and the customer are never looking at two different answers. A customer with no contact record yet gets a primary contact created from their name and email the first time they move the reminders or text switch; when a customer has several contacts, all of them are updated together. A customer who clicks Unsubscribe on one of your newsletters lands on this same page with News and offers already off; a newsletter you sent before this shipped carries an older link that still opts them out but ends on a plain You're unsubscribed page instead.
Portal link — one link for their whole account
Portal link on the profile (and Copy portal link in a card's menu) copies a link to the customer's account page at /fleet/<token>. The link is minted the first time you copy it and stays the same after that; the toast reads "Portal link copied — Send it to the customer — their whole account with your shop, one link." The page is titled Account status, and the customer sees every vehicle on their account. A vehicle with work in progress shows a stage chip and links to its tracking page; a vehicle with nothing open reads Nothing in progress. The chip names the current stage only if you switched that stage on in the Customer column on Settings → Workflow, else the last stage you do show, else the neutral In progress — which is what every vehicle reads until you turn a stage on. On Wraptor Shop and above the same page also shows Balance due (each open invoice with a Pay button), Waiting on your approval (each sent quote with Review), and Warranty coverage; lower tiers keep the vehicle index only. See Fleets.
What your customer sees across their surfaces Everything a customer opens from you is a public link — no login, nothing to install. They all carry your logo (or shop name), your accent color, and your contact footer, so a quote, a tracker, and an invoice read as one brand:
- Tracking page (
/track/<token>) — one per job: where the job stands as Step N of M over the stages you chose to show, an Updates timeline, and cards for their quote, proof, open invoices, documents to sign, and condition reports. See Track. - Quote page (
/quote/<token>) — plain-language states (Ready for your approval, Approved, Declined, expired), approve online, and a "what happens next" panel after approval. See Quotes. - Pay page (
/pay/<token>) — the invoice with Paid / Past due / Partly paid / Due / Cancelled wording and either an online payment button or your How to pay instructions. See Invoicing & billing. - Proof review (
/proof/<token>) and document signing (/sign/<token>) — see Proofs and Documents. - Email preferences (
/preferences/<token>) — described above. - Account page (
/fleet/<token>) — the portal link above. - Warranty certificate (
/warranty/<token>) — see Warranty.
Their emails come from your WrapMail inbox or your own connected mailbox when you have one set up and your plan includes it; otherwise from noreply@wraptor.app in your shop's name, with replies going to your shop's contact email. Each email's tracker button is worded for the work ("Track your wrap", "Track your window tint", "Track your paint protection film", or "Track your project" when the service is one of your own lines).
A small Powered by Wraptor line sits at the bottom of the tracking, quote, pay, preferences, and account pages only when the shop has no plan (and on a handful of grandfathered legacy accounts); every plan, the trial included, hides it there. It is not plan-gated everywhere: the proof page, the signing page, the warranty certificate, your booking page, and the footer of every email carry it on every plan.
Editing a customer Use Edit on the profile (opens the Edit Customer dialog) or Edit in a card's menu (opens the profile). All fields are editable, including the tax-exempt flag and the newsletter opt-in.
Tax-exempt flag Flip the Tax Exempt switch for nonprofits, EMS, fire departments, and similar. Every new quote for that customer starts with its tax mode set to Exempt (0% tax) regardless of your shop rate. Flipping the flag on or off also re-snapshots the customer's draft quotes; quotes you have already sent keep the tax they were sent with. You can still change the tax mode on any single quote — Standard, Custom rate, or Exempt — in the quote's Details card. See Quotes.
Deleting a customer Delete from the profile's three-dot menu (Delete Customer) or a card's Delete. Deletion is refused in three cases:
- The customer still has active jobs — any job that isn't on your last workflow stage. Finish or delete those first.
- Any of their jobs has an invoice. Void or delete the invoices first; financial records are never deleted with a job.
- It is the system Unassigned bucket that holds imported jobs with no customer. That row can never be deleted or edited — reassign its jobs to real customers instead. (It is also hidden from the customer list.)
A refusal is quiet: from the profile you get a Delete failed toast reading "Could not delete customer. They may have associated records."; from a card's Delete nothing happens and the customer is simply still there. If a delete doesn't take, check the jobs and invoices before assuming it worked.
Once nothing blocks it, deleting the customer also deletes all of their jobs (with their files, notes, and proofs), quotes, contacts, vehicles, brand colors, and brand files, cancels any emails still queued for those jobs or quotes, and cancels their online bookings (a booking with a paid deposit is kept). This is permanent and can't be undone.
Jumping into work from a customer
- New Job on the profile opens the job modal with this customer selected.
- Add in the Vehicles section opens the new-vehicle form for this customer.
- Job-history rows link straight to each job; vehicle rows link to each vehicle.
Step-by-step tasks
-
Add a customer with the full form
- Go to Customers and click New Customer (or open
/customers/new). - Enter the Company Name (required). For an individual, just use their name here.
- Fill in point of contact, phone, email, address, city, state, ZIP, website, and any notes.
- Flip Tax Exempt on if they're a nonprofit, EMS, fire department, etc. Flip Newsletter opt-in on only if they've said it's okay to send them marketing email.
- Click Create Customer. You land on the new customer's profile.
- Go to Customers and click New Customer (or open
-
Add a customer by pasting an email signature
- In your email client, copy the sender's full signature block (name, company, phone, address, website).
- Open New Customer (or the compact dialog from the vehicle form, or the job modal's New Customer box) and click Paste from clipboard — the job modal's version of the button is just labelled Paste.
- Review the auto-filled fields — correct or complete anything that didn't map cleanly.
- Click Create Customer.
-
Bring customers over from another tool
- Go to Customers and click Import.
- Upload the CSV, check the column mapping, review the preview, and click Import. Full detail in Imports.
-
Add extra contacts to a company
- Open the customer's profile.
- In the Contacts panel, click Add Contact.
- Enter first and last name, plus email and phone if you have them.
- Turn on Primary Contact if this is the person Wraptor should email (this clears "primary" on any other contact).
- Leave Reminders by email on if this person should get the nudges (quote reminders, appointment reminders, invoice reminders, review asks). Click Add Contact.
-
Stop the reminders for one customer who asked
- Open the profile and open their primary contact with the pencil icon (or add one if the list is empty).
- Turn Reminders by email off and Save. Quotes, invoices, receipts, proofs, and job updates still send. (The customer can do the same thing themselves from Manage what we email you, when the email they are holding carries that link.)
-
Send a customer their account link
- On the profile, click Portal link (or Copy portal link in the card menu on the list).
- Paste the copied link into an email or text to the customer. The same link keeps working for every future job.
-
Find a customer
- Open Customers.
- Type into the search box — it matches company name, contact name, email, or phone and filters as you type.
- Click the company name (or tap the card) to open the profile.
-
Edit a customer's details
- Open the profile and click Edit (or use Edit in a card's menu, then Edit on the profile).
- Update any fields in the dialog, including the tax-exempt flag and newsletter opt-in.
- Click Update Customer.
-
Delete a customer
- Make sure the customer has no active jobs and none of their jobs carry an invoice — complete or delete the jobs, and void or delete the invoices, first.
- On the profile, open the three-dot menu and click Delete Customer (or use Delete in a card's menu).
- Confirm. The customer and all their jobs, quotes, contacts, vehicles, brand colors, and brand files are permanently removed.
-
Check what a customer actually received
- For everything: Settings → Communications → Customer messages → Activity, with the audience tab on Customer. Each row names the message, the address, and what happened to it — Queued, Sent, Delivered, Opened, Clicked, Bounced, Complained, Failed, Canceled or Suppressed (with the reason).
- For one job: open the job and read What we've sent them on its Customer tab. Either list needs the Billing or Settings permission to read, and the Settings route itself needs Settings, so the job's Customer tab is the door for someone who only holds Billing.
Settings & permissions
Who can see and use Customers
Access is controlled by the Customers permission ("Customer management & contacts"). By default it is granted to:
- Manager — full access (all permissions), including delete.
- Designer — has the Customers permission; can view, add, edit, and delete.
- Production — does not have it by default (Production does hold Vehicles, so they see the hub's Vehicles tab only).
- Installer — does not have it by default.
Owners always have full access. The Fleets tab opens for anyone holding either the Fleet or the Customers permission. Reading a customer's message history on a job's Customer tab needs the Billing or Settings permission. Custom roles can be granted or denied the Customers permission on Shop → Team → Roles & Permissions — see Team.
Plan tiers
The Customers hub is open on every plan and during the 7-day free trial (no card required). There is no limit on how many customers, contacts, or vehicles you can store, and import works everywhere. There is no free plan; a shop without a plan lands on the plan picker, and canceling keeps every customer record. Plan does change a few customer-facing things:
- Emails you send by hand (a quote, an invoice, a proof, a document to sign, a composed email) go out on every plan and during the trial; automated reminders and notifications go out for every shop from
noreply@wraptor.appin your shop's name. - The portal link's Balance due, Waiting on your approval, and Warranty coverage sections are on Wraptor Shop and above; every plan gets the vehicle status index.
- The shop newsletter is a paid feature, though the opt-in switch is on every customer record regardless.
- Every plan, the trial included, drops the Powered by Wraptor line from the customer's tracking, quote, pay, preferences, and account pages; only a shop with no plan shows it there. The proof page, the signing page, the warranty certificate, your booking page and every email footer keep it on all plans.
Tax exemption
The per-customer Tax Exempt flag sets a new quote's tax mode to Exempt. Set the shop's normal tax rate in Money → Quote Settings → Sales tax & region; see Quotes.
Customer messages
Which emails go out at all, their timing, your sender address, quiet hours, and the Activity log live on Settings → Communications → Customer messages — see Settings. The contact switches on this page only decide whether one person receives the reminder-class emails that setting has turned on.
Tips & common pitfalls
- Everything is "Company Name." There's no individual/company switch. For a person, put their name in Company Name. The "Point of Contact" field is just the lead person at a business, not a separate record.
- Point of Contact vs. Contacts. The single Point of Contact text field is what prints on the customer's card in the list. The Contacts list on the profile is what drives email: the primary contact's address is where every quote, invoice, and reminder goes, and its Reminders by email switch is the customer's consent for nudges.
- One address per field. Put one email in the Email field. Two addresses separated by a comma will only ever reach the first; a stray space or a missing "@" means nothing sends and the Activity log shows it as suppressed.
- Paste is a best-effort guess. It's great for signatures, but always review the auto-filled fields before saving — odd formatting can put the wrong line in Company Name or miss a suite number.
- Delete is blocked by active jobs and by invoices — on purpose, and quietly. If the customer is still on the list after you confirmed, they have in-progress jobs or a job with an invoice. Finish or remove those first. Deleting then wipes their jobs, quotes, vehicles, contacts, and brand kit, so export or note anything you need to keep (Settings → Shop Settings → Export Your Data → Download export... hands you a ZIP of CSV files covering customers, contacts, vehicles, jobs, quotes, invoices, payments and more).
- Only one primary contact. Setting a new primary clears the old one automatically — you won't end up with two.
- Newsletter opt-in is off until someone says yes. New and imported customers start opted out unless the import column says so. WrapStudio → Promote → Newsletter counts them for you — "{N} customers opted in · {M} subscribers · {K} customers with an email not opted in" — with an Opt in all {K} button for the rest. See Marketing.
- Tax not calculating? If a customer's quotes show $0 tax unexpectedly, check whether the Tax Exempt flag is on, or whether that quote's Details card is set to Exempt.
- Brand kit lives on the customer. Brand colors and logo files are stored per customer, so designers should add them here once and reuse them on every job for that client.
- Texts don't send yet. The Text updates switch (on the contact and on the customer's preferences page) only records the answer. Don't promise a customer a text.
Related modules
- Jobs — every job belongs to a customer; the profile lists the customer's job history, and the job's Customer tab is where you email them about a job.
- Quotes — every quote belongs to a customer; the tax-exempt flag sets the quote's tax mode.
- Invoicing & billing — invoices roll up from a customer's jobs and quotes; a job with an invoice blocks customer deletion.
- Vehicles — vehicles are owned by a customer and shown on the profile.
- Fleets — a customer can act as a fleet account; the portal link is their account page.
- Track — the customer's per-job tracking page.
- Imports — bring customers and vehicles in from another tool.
- Settings — Customer messages: every email your customers get, in order, with its switch.
- Marketing — the newsletter audience is the customers with the opt-in switch on.
- Colors — per-customer brand colors are managed on the profile.
- Files — per-customer brand assets (logos, brand files) live on the profile.
- Team — who holds the Customers permission.
- Workflow map — where customer capture sits in the lead-to-invoice flow.
- Personas — how front-desk, managers, and designers use the CRM.