Customer Hub: documents, in-portal reply, privacy
The /c/[token] portal has a doc vault you upload to, a Reply Here composer the customer types into, and a privacy card where they can export everything or request deletion. Here's how each piece works + how to approve a deletion.
The customer portal at /c/<token> started as a read-only page (quotes, receipts, current case). It now has a real two-way surface: you upload documents the customer can download, the customer can reply through the portal instead of email, and they can export everything you hold on them or request deletion. This is how each piece works.
1. Documents you share with the customer
Owner-side: open a customer's admin page (/customers/<id>) → Documents panel. Upload a file (contract, gallery zip, before/after photos, invoice PDF, anything up to 50 MB). Add an optional label so the customer knows what it is.
Customer-side: the Files for you card on /c/<token> lists every doc you've uploaded. Tap a row → short-lived signed URL → download. The customer can't upload back (yet) — this is one-way owner-to-customer in v1.
Files are stored in a private Supabase Storage bucket, scoped to your org via RLS. Deleting a doc from the admin panel deletes the storage object + the row immediately.
2. In-portal reply
If the customer has a current active case, the portal shows the message thread as chat bubbles + a Reply Here composer at the bottom. They type, they send. The reply lands in your inbox as an inbound message tagged channel: portal, and the case auto-flips back to Open so it shows up in Needs Reply.
This is huge for customers who can't find your last email or don't want to dig through their messages — they tap the portal link from any past branded email and reply right there.
The inbox shows portal-channel messages with their own pill so you can tell at a glance whether they came in via email, WhatsApp, or the portal.
3. Customer data controls (privacy)
The portal's Your privacy card gives the customer two affordances:
Export
Tap Download my data. The portal generates a JSON file with everything you hold:
- Customer profile (name, email, phone, preferences)
- All inquiries (subject, status, dates)
- All messages on those inquiries
- All quotes (title, line items, totals, status)
- All payments
- All referrals they sent
- All documents shared with them
Download is immediate (Blob in the browser — no server round-trip). Good for "I want to leave" or "I want to send my notes to another vendor."
Deletion request
Tap Request deletion. A customer_data_requests row gets queued with status pending. The customer sees a "deletion in progress" badge so they don't keep re-submitting.
Owner-side: a coral banner appears at the top of the customer's admin page. Approve is owner-only (gated by canDeleteWorkspace). On approve, Yesoma deletes:
- The customer row (cascades to nothing — inquiries are
ON DELETE SET NULL) - All their inquiries explicitly (so the records don't stay around with the customer_id nulled)
- All message attachments from storage
- All customer documents from storage
This is a real delete, not a soft-flag. The customer is gone, the storage is gone.
If you'd rather hold + dispute (say, you have an active dispute or tax records to keep), don't approve. Discuss with the customer offline. The pending request stays in your inbox until you decide.
4. Loyalty + preferences
Two more portal pieces worth knowing about:
- Loyalty pill — trailing-365-day won-case count drives a "3rd visit this year ✨" / "VIP" pill in the portal header. Industry-aware (a salon's threshold for VIP is different from a wedding photographer's).
- Preferences textarea — the customer can write notes for you on the portal ("allergies", "preferred stylist", "pets at home", "key location"). Read-only on your admin side; the customer fully controls it.
5. What the customer can't do (yet)
- Edit a quote
- Cancel an appointment
- Pay through the portal (Yesoma doesn't process payments — see Send quotes & get paid via invoice)
- Upload files to the owner (one-way only in v1)
6. Turning the whole portal off
Settings → Branding → Customer portal card → toggle. When off, /c/<token> URLs return 404, the email footer drops the portal link, and the Share Portal button hides. Existing tokens stay valid if you re-enable later.
Common questions
Can two customers share a portal link? No — each customer's token is per-row + unique. The token IS the auth, so sharing it = sharing access.
What if a customer signs up for Yesoma themselves later? Their portal stays the same. Yesoma doesn't link the portal token to an auth user; the token is the capability.
How do I delete a document I uploaded by mistake? Customer admin page → Documents panel → trash icon next to the row. Deletes the storage object + DB row immediately. Customer's portal updates on next page load.
Will the customer see this article?
No — /help is for owners. Customer-facing copy is the portal itself.
More in Inbox & follow-ups
- Beginner5 min
Create and manage follow-ups
Schedule reminders so quiet inquiries get a nudge before they go cold.
Read guide - Beginner4 min
Mark inquiries as won or lost
Close cases with an outcome and a deal value so Yesoma can show you real revenue impact.
Read guide - Beginner4 min
Understand Revenue Impact
What the four Revenue Impact tiles mean: won revenue, recovered from follow-ups, revenue at risk, and lost.
Read guide - Setup5 min
Set up automated quote follow-ups
Turn on the hands-off engine that nudges stuck quotes — sent-not-viewed, viewed-not-accepted, accepted-not-paid — with AI-personalized copy in your voice.
Read guide - Setup5 min
Share your customer portal
Every customer gets a personal /c/<token> page with their quotes, receipts, current conversation, and files — here's how to share, brand, and toggle it.
Read guide - Setup7 min
Send quotes & get paid via invoice
Send a structured quote, customer accepts → invoice with your payment instructions, customer pays you directly (bank, MoMo, anything), you mark it paid in Yesoma. Yesoma doesn't process the money — it tracks the trail.
Read guide - Setup6 min
Run a referral program
Each customer gets a personal share link. When a friend books, the case shows up tagged as a referral and the original referrer is credited automatically when it closes Won.
Read guide - Setup3 min
Record a refund
Refund the customer through whatever channel they paid on, then record it in Yesoma so the invoice, case status, and revenue stats stay accurate. Full refunds only in v1.
Read guide - Setup6 min
Get listed on Yesoma Marketplace
Yesoma Marketplace is the public directory at /find where customers browse service businesses. Turn on your listing, add a tagline + cover photo + gallery, and start receiving inquiries tagged 'marketplace' straight to your inbox.
Read guide - Setup4 min
Manage marketplace reviews
How customer reviews work on your marketplace profile, what you can do with reviews you don't like (Hide / Restore), what staff can do, and why you can't edit the words.
Read guide - Setup4 min
Quick Send + Ask for Review
Two branded-email templates that fire outside the normal reply flow — Quick Send for any one-off message to a customer, Ask for Review for the post-service nudge that asks for a Google/Facebook/Yelp review.
Read guide - Setup4 min
Auto-reopen returning customers
When a past customer messages again, Yesoma auto-reopens their last case instead of creating a duplicate. Includes the 90-day window, the Business-plan AI classifier, and how to turn it off if it's wrong for your business.
Read guide - Beginner4 min
Attach files to messages
Drop images, PDFs, and documents onto any compose surface in the inbox. 10 MB per file, 30 MB total, drag-and-drop anywhere on the panel.
Read guide - Beginner5 min
Get notified about new messages
Four ways Yesoma can tell you a new customer message landed — browser tab badge (automatic), Web Push (one-click), opt-in email, opt-in audio chime.
Read guide - Beginner6 min
Use the AI suggested reply
Edit, regenerate, voice-dictate, or translate the AI's draft before sending. Plus the heuristic for when to send as-is vs. tweak.
Read guide - Beginner5 min
Voice reply and language translation
Dictate quick replies via your browser's mic; let the AI polish + translate into 30 languages including Pidgin, Twi, Yoruba, and Patois.
Read guide - Beginner4 min
Add internal notes on a case
Team-only annotations on a case or customer — supports attachments via drag-drop. The customer never sees them.
Read guide - Team3 min
Track a customer's annual value (ACV)
Set what each customer relationship is worth per year (managers+). Turns your customer list into a book of business and surfaces the annual value sitting in at-risk leads.
Read guide - Beginner5 min
Assign cases to teammates
Manual assignment from the case page, auto-assign rules in Settings (round-robin or by category), and how reassignment + notifications work.
Read guide - Beginner4 min
Reopen a closed case
Three ways a closed case comes back to active — auto-reopen on inbound message, manual reopen button, or via Log customer response.
Read guide - Beginner8 min
Tour of the Insights dashboard
Walk through every block on /insights — outcomes, revenue + Customer Hub, quotes funnel, referrals, channels, categories, regulars.
Read guide - Team3 min
Delete a case (and restore it)
Admins can soft-delete a case so it leaves the workspace but is retained by Yesoma. Restore it any time, or request permanent deletion from Yesoma support.
Read guide - Team4 min
Collect customer satisfaction (CSAT) ratings
Send customers a 1 to 5 star survey when a case closes — auto-email it or share the link/WhatsApp yourself. Ratings and comments feed the Team Performance dashboard.
Read guide - Beginner3 min
Case numbers
Every case gets a unique YS-000123 number — where it shows, how to copy it, searching by the full value or just the digits, and the optional reference line in replies.
Read guide - Setup5 min
Understanding case status
The seven statuses (Needs reply, Awaiting customer, Follow-up due, On hold, Won, Lost, Archived), when they change automatically vs by hand, and how to run your inbox by status.
Read guide - Setup3 min
When Yesoma flags 'pricing stuck'
Yesoma spots conversations where a customer keeps asking about price and hasn't been given one. What triggers the flag, what the colors mean, and the two ways to fix it.
Read guide - Setup5 min
Build your first quote
Use the quote builder: add line items, pull in your services, set a deposit, write your payment instructions, and add a due date before you send.
Read guide - Setup3 min
How Yesoma flags urgent replies
Fresh-reply pulses, stale-reply alerts (team plans), and the calm-inbox idea — so you reply fast to what matters without watching your inbox all day.
Read guide - Beginner2 min
Recognize new vs returning customers
The 'New prospect' and 'Returning' badges in the inbox — what they mean, why first impressions matter, and how to treat each.
Read guide - Setup4 min
Yesoma Marketplace: how customers find you
How the public directory works — discovery by category/search/featured, why fast responders rank higher, and how to make your profile (photos, tagline, reviews) convert.
Read guide - Setup3 min
Automated follow-ups without being pushy
Worried follow-ups will annoy customers? Why Yesoma's three-nudge, AI-personalized follow-ups read as service, not spam, and how to keep them feeling personal.
Read guide
Was this article helpful?
If something was unclear or missing, tell us and we'll fix it.
Still stuck?
We'll help you get this working. Send us a message, or ask about Managed Setup.