Your business data, and the promises we make about it.
Everything on this page describes how CustoDesk works right now - shipped and running, not a roadmap. Your workspace is kept apart from every other business, your passwords and keys are locked the moment they are saved, and a complete copy of your data is one button away on any day you want it.
Where we stand
Every app is one price a month for your whole team, office staff, crew and seasonal help included. There is no seat count anywhere in CustoDesk today, and what each app costs is on the pricing page.
No contract, no minimum term, no cancellation call. Switch an app off and you keep it until the end of the period you already paid for.
Your invoices, timesheets and project history stay exactly where they are. Turn the app back on later and everything is still there, untouched.
One button exports your customers, conversations, invoices, payments, expenses, projects and reviews as spreadsheet files, including on a free trial, before you've paid us anything. No request, no waiting, no support ticket.
Getting your data out
Settings → Data & privacy → Export everything builds a ZIP of your entire workspace as CSV files: support tickets and their full message history, contacts, invoices, estimates, line items, payments, projects, timesheets, expenses, reviews, help-center articles, an index of your media library, and your team roster.
The archive includes a README explaining every file. If any part of it couldn't be included, that is stated at the top in plain language rather than left for you to notice - an export that looks complete but isn't would be worse than no export.
Nothing in it is encrypted or locked to us. It opens in Excel, Numbers or Google Sheets and can be imported anywhere.
Your data stays yours
Everything you put into CustoDesk belongs to you, and your most sensitive details are locked the moment they are saved:
- Passwords are scrambled with bcrypt, which cannot be undone. If you forget yours, you simply set a new one.
- Two-factor secrets are encrypted, and recovery codes are stored scrambled and work once each.
- API keys are stored scrambled, with a short prefix so you can tell them apart. The full key is shown once, when you create it.
- Connected accounts - your Shopify store, your email accounts, the calendars you link, and your affiliates' tax IDs - are encrypted with AES-256-GCM.
Data exports leave them out too.
Keeping workspaces apart
Your workspace is kept apart from every other business on CustoDesk. Every page, search and report reads from your workspace alone, so everything you see is yours.
Inside your workspace, access is per-area: you decide who can see support, money, projects, contacts or marketing, at none / view / manage. Those checks run on the server, not by hiding buttons in the browser.
Getting into your account
Standards-based authenticator-app 2FA with ten single-use recovery codes. Admins can require it for everyone in the workspace.
Repeated wrong passwords lock the account temporarily, and a separate limit blunts attacks spread across many accounts. Wrong 2FA codes lock out too.
Resetting a password or suspending a member kills every one of their live sessions immediately, on every device - not at the next sign-in.
Security-relevant changes - 2FA on or off, recovery codes regenerated, member access changed, a full data export taken - are written to your workspace activity log.
Admins can require two-factor for everyone. With it on, a member without 2FA can't reach the desk at all until they enroll - the gate is the app itself, not a reminder they can dismiss.
Ten characters minimum, mixed character types, checked against known-breached and obvious choices, and never your own email address. Changing your password requires your current one, so a hijacked session can't quietly lock you out.
Sessions expire on their own: one day by default, thirty if you tick "remember this device". Expiry is checked on the server every time, so an old token doesn't keep working just because it's still in a browser.
AI you control
CustoDesk has AI built in for reply drafts, summaries, sorting new messages, help-center answers, receipt scanning and a few other features. You decide how much of it you use.
Turn it on or off whenever you like. Settings → AI Copilot has a master switch, a toggle for every AI feature, and a monthly cap you set yourself. With AI off, those features carry on without it and nothing breaks.
Your Custo conversations stay yours. CustoDesk never reads your conversations with Custo unless you send one to us. To make Custo better we see only what was asked, with names, emails, phone numbers and amounts taken out and nobody attached.
Your AI spending stays where you set it. Set your cap to "stop at the limit" and AI pauses for the rest of the month instead of going over. We email you before you get there, either way.
How it's served
CustoDesk is HTTPS-only and asks browsers to enforce that themselves - HSTS is sent with a two-year max-age, covering subdomains, on the preload list, so everything between your browser and CustoDesk travels encrypted, every time.
- A Content-Security-Policy sets exactly where scripts, styles and connections may come from.
- Framing is denied. The app refuses to load inside someone else's page, which is what clickjacking needs. Only the embeddable chat widget is framable, because that is its job.
- MIME sniffing off, referrer trimmed -
nosniffplus a strict-origin referrer policy, so a link out of CustoDesk carries only our address, never the page you were on. - Session cookies are HTTP-only and same-site, and carry the
__Secure-prefix - a name browsers accept only over HTTPS, so your sign-in only ever travels to CustoDesk, encrypted.
Connections in and out
Anything arriving from another service is proved before it is believed, and anything we send can be proved by whoever receives it.
- Incoming Shopify webhooks are HMAC-verified against the raw request body. An unsigned or altered one is turned away on arrival.
- Outgoing webhooks are signed per endpoint with a timestamped SHA-256 signature, so your systems can confirm a call really came from us. Endpoints must be HTTPS.
- Inbound email is checked for DMARC before a contact is ever treated as verified - someone spoofing your customer's address doesn't inherit their identity.
- Every signature and token comparison is constant-time, so timing can't be used to guess a secret one character at a time.
The public API and widgets
Anything reachable without a login is treated as hostile until it proves otherwise. Every public endpoint validates its input against a strict schema, so malformed or unexpected fields are rejected rather than interpreted.
The REST API authenticates by hashed key, requires the API app to be switched on, and is rate-limited per workspace. The chat widget and CSAT surveys are rate-limited too, and a visitor who types a name and email into a chat box is recorded as unverified - self-asserted identity never quietly becomes a trusted contact profile.
Reporting something
If you believe you've found a security issue, email security@custodesk.com with enough detail to reproduce it. We'll confirm we received it, keep you updated while we fix it, and we won't pursue anyone who reports in good faith and gives us reasonable time before going public.
See it before you commit
Get started free and put real data in, or book a demo and we walk you through it, the export included. Then download your data on day one. That's a better test of any of this than a page can be.
Free for 14 days, with no card to start.