The one place for everything about your customers
Support requests, deals, events and newsletters for SaaS companies, in one workspace your team and your AI agents share. Your customers follow their requests in a portal inside your own product, without a second login.
14-day trial · No credit card · Your data stays yours
Support · CRM · Events · NewsletterYour domain, your brandingAgents connect over MCP
The problem
Your customer lives in five tools. Nobody sees all of them.
A SaaS team picks a tool for each job: support, sales, events, newsletters. It works until you need the whole customer in one view, and then everyone goes digging through someone else's system.
One customer, five tools
Requests in the support tool, deals in the CRM, registrations in the event tool, readers in the mailing tool, decisions in email threads. Each keeps its own copy of the same contact, and none of them knows what the others know.
Sales and support can't see each other
The account manager walks into the renewal call without knowing about the bug that blocked the customer's rollout. Support bumps a ticket without knowing the deal is days from signing.
“Any update on this?”
Enterprise customers expect to see where their requests stand, at any time. Without a shared view someone writes it up by hand, per customer, every week.
The solution — one workspace
Four jobs around your customers. One record of who they are.
Support is always there. Switch on the CRM, events and the newsletter when you need them. They share one set of customers and contacts, so a deal, a registration and a ticket of the same company end up side by side.
Core
Support and delivery
Requests, bugs and tasks on boards, with internal notes and visibility per ticket. Customers follow theirs in a portal inside your product.
one board is the one customers see
Module
CRM
Accounts, contacts, deals in pipelines, meetings and tasks. Link an account to its support customer and both sides see each other.
deal close to signing → shown on the ticket
Module
Events
Customer days and webinars with a programme, registration, waiting list and invitations, in several languages, on your domain or your website.
registrants become CRM contacts
Module
Newsletter
Lists with double opt in and recorded consent, campaigns sent through your own mail account, and statistics only where people agreed.
readers show on the CRM timeline
Who gets in — four ways
Your team gets the whole picture. Everyone else gets exactly their slice.
Everything lands in the same workspace, whoever brings it. What differs is how each audience gets in — and how much of it they can see once they're there.
Email + password
Your team
The dashboard: every request as a ticket or on the board, with statuses, priorities, labels, due dates and assignees. Internal notes and internal tickets stay behind the staff line.
app.solutiondesk.io/acme
OAuth · MCP
Your AI agents
Not a chatbot bolted on top. An agent connects its MCP client to your workspace, gets a member account with a role, and works the same tickets your colleagues do.
api.solutiondesk.io/v1/mcp
Host-brokered MagicLink
Your customers
Your backend mints a portal link and redirects. They land signed in, on your domain, in your branding — no SolutionDesk account, nothing to remember, no second password.
support.your-saas.com
Capability link
Anyone with the link
A guest portal for a group with no host account at all — a tester cohort, a beta round, a feedback session. Share the link, optionally behind a password; flip it off when the round ends.
/guest/acme/beta-round-2
How it works
The Stripe Customer Portal way — for support.
- 01
Sync the user once
Your backend upserts the end-user by the id they already carry in your system, together with the company they belong to. It's idempotent, so calling it on every login is fine.
- 02
Mint a link, redirect
One POST returns a single-use portal URL. Wire it to the “Support” button in your app. No SDK, no iframe gymnastics, no user directory to keep in sync.
- 03
They see exactly their slice
They land signed in — on your domain, in your branding. Their own tickets and progress, plus anything an access rule grants them. Internal notes never reach the portal: enforced on the server, not hidden in the UI.
your-saas/backend — the whole integration
Server-to-server · Bearer API key
POST /v1/integration/end-users
{ "externalId": "usr_8f2", "email": "lena@bigcorp.com", "name": "Lena Sørensen", "companyExternalId": "org_412" }
→ 200 { "endUserId": "eu_3c1" }
POST /v1/integration/portal/links
{ "externalId": "usr_8f2" }
→ 200 { "url": "https://support.your-saas.com/portal?token=…" }Every request, deal, registration and reader. One customer. One place.
CRM · optional module
The people you sell to are the people you support.
Switch on the CRM and keep accounts, contacts and deals next to the tickets. Pipelines with won and lost, your own fields, notes, calls, meetings and tasks with reminders — and one timeline per account that shows sales and support together. Bring your records in from a spreadsheet, and undo the import if it went wrong.
Sales sees support
Link an account to the support customer it belongs to. Its tickets show up on the account, and every ticket from that customer shows who owns the account and which deal is close to signing.
Meetings turn into tickets
Write down the next steps in the meeting, then turn them into tickets for your team — shared with the customer's portal or kept internal. The meeting notes themselves never leave your side.
Your customers never see it
The CRM is for your team only. No account, deal or note ever reaches the portal, and it stays off until an admin switches it on.
Events · Newsletter · optional modules
Invite them in. Keep them informed. Remember who came.
Run customer days and webinars with a programme, places and a waiting list, and send newsletters to people who asked for them. Both live next to support and sales, so nothing has to be exported into another tool.
On your domain, in their language
Every event gets its own page with programme, images and registration, on your address or embedded in your website. Visitors read it in their language, and every email follows the one they registered in.
Consent you can show
Sign ups confirm by double opt in, and the newsletter keeps what each person agreed to, when and how. Campaigns go out through your own mail account; opens and clicks are counted only where someone said yes.
Back into the same customer
Registrants and readers land on the CRM contact you already have. The account shows who came to the customer day and who reads the product updates, next to their deals and tickets.
For your AI agents
Your agents don't need a chatbot. They need an account.
Point Claude, Cursor, or your own agent at the MCP endpoint. It authorizes over OAuth as a member of your workspace, and gets the same workspace your colleagues use — tickets and settings and, where you run them, the CRM, events and the newsletter. Nothing you didn't grant.
Every action on the record
Status changes, assignments, comments — an agent's writes land in the same immutable per-ticket timeline as a human's. When a customer asks who decided what, the answer is already written.
Bound to your workspace
The MCP connection resolves to the workspaces that one staff account is a member of. An agent cannot read across tenants, because the cross-tenant query doesn't exist.
api.solutiondesk.io/v1/mcp
OAuth · 124 tools
- Reads
list_workspacesThe workspaces this agent can reach
list_ticketsThe queue
get_ticketOne ticket, in full
list_commentsThe conversation, staff-only notes included
list_membersWho's on the team, and which one it is
get_crm_accountThe customer behind the ticket — with the CRM on
list_event_registrationsWho registered, with their answers
- Writes
create_ticketFile a request
add_commentReply — or leave an internal note
set_ticket_statusMove it along
assign_ticketHand it to a colleague
create_companyRegister an end-customer
create_tickets_from_crm_meetingTurn agreed next steps into tickets
update_eventPlan the programme, translate, publish
create_campaignDraft the next newsletter
Point any MCP client at the endpoint. It discovers the authorization server, asks you to approve the connection, and then lists itself under your connected apps — where you can revoke it again.
/.well-known/oauth-protected-resource
Built in
Everything a shared desk needs. Nothing your customers shouldn’t see.
Visibility, per ticket
Public for everyone. Internal for staff only. Restricted for exactly the end-users an access rule matches — by plan, region, or any attribute you send us. The default is always less exposure.
White-label, down to the domain
The portal is your product's support area, not ours: your domain, your logo, your colors. Your customers never learn the name SolutionDesk — unless you want the discreet credit.
support.your-saas.com
Not every request is yours to answer
Big customers have their own support people. Let them triage on their own board first and escalate only what they can't solve. Until they do, the request stays theirs — your queue never sees it.
tier: "team" → "provider"
Mail from your own domain
Status changes and replies reach customers through your SMTP, from your address — so notifications look like you, land like you, and build your sender reputation, not ours.
from: support@your-saas.com
The board moves while you watch
A colleague claims a ticket, a customer replies, an agent changes a status — it appears. Every open board streams changes live, so two people stop working the same ticket by accident.
text/event-stream
Tenant isolation by design
Every read and write is keyed to your workspace's partition. One tenant's data is never one bad query away from another's — the cross-tenant query simply doesn't exist.
partition key: /workspaceId
A board for every team
Support, development, onboarding — each board with its own types, forms, statuses, priorities and labels. Only the Support board reaches your customers; the rest stay with your team. Move a ticket to another board and its subtasks come along — and you confirm before customers gain or lose sight of it.
Support · visible to customers
Find anything, from anywhere
One search for tickets, companies, people and — with the CRM on — accounts, contacts and deals. Type a ticket reference, a name or an email, and jump straight there.
⌘K / Ctrl+K
And the rest
- Kanban board & list view
- Pin your boards to the sidebar
- Mute ticket email per board
- Labels, per company
- Priorities & due dates
- File attachments
- Ticket types with their own fields
- Watchers & @mentions
- Portal in your customers' languages
- Roles, invitations & per-company portal roles
- API keys, hashed at rest
- Readable ticket references — 260701-F4KR
- Light & dark theme
- Embeddable widget — on the roadmap
FAQ
The questions your team will ask.
- Do my customers need a SolutionDesk account?
- No. Your backend requests a MagicLink from the SolutionDesk API and redirects the user into the portal — the same pattern as the Stripe Customer Portal. No signup, no password, nothing for them to remember.
- Can customers ever see our internal notes?
- No. Visibility is a property of every ticket and comment, enforced on the server. Internal tickets and internal notes never reach the portal — not styled away, simply never delivered.
- Does the portal look like SolutionDesk or like our product?
- Like your product. The portal runs on your custom domain with your logo and colors. The only trace of us is an optional, discreet “Powered by SolutionDesk”.
- How does the integration authenticate?
- With a per-tenant API key, server-to-server. Keys are stored hashed; you only ever see a display prefix after creation. Minting a MagicLink is one POST request from your backend.
- What do AI agents actually do here?
- They work alongside your team. An agent connects its MCP client — Claude, Cursor, or your own — and authorizes over OAuth as a member of your workspace. From there it files, answers, reassigns and closes tickets; with the modules on it logs calls, updates deals, plans events and answers registrations, and drafts newsletters — with the same role and permissions as a colleague, and every write on the record.
- We need feedback from people who aren't customers yet. Testers, a beta round.
- Open a guest portal. It's a shareable link — no account, no host system involved — where a group can file requests and follow the ones already there. Put a password on it if the group is sensitive, and switch it off when the round ends. The history stays.
- Our biggest customers have their own support team. Can they filter first?
- Yes. Turn on two-tier for that company and their requests land on their own board first, visible to their people and not to yours. What they can't solve, they escalate to you — same ticket, same reference, now in your queue.
- Can we run internal work here too, without customers seeing it?
- Yes. Add boards for development, onboarding or anything else — each with its own ticket types, forms, statuses and labels. Only the one board marked “Visible to customers” reaches the portal and customer email; tickets on every other board stay with your team.
- We also sell to these customers. Do we need a separate CRM?
- Not necessarily. Switch on the CRM module for accounts, contacts, deals in pipelines, meetings and tasks. Link an account to its support customer and sales sees the tickets, while support sees the account and open deals on every ticket. It's for your team only — customers never see any of it.
- Do we have to use everything?
- No. Support is always there; the CRM, events and the newsletter are modules an admin switches on per workspace. A team that only needs support never sees the rest, and switching a module off later keeps everything in it.
- Can we run our customer events here?
- Yes. Plan customer days and webinars with a programme, places, a waiting list, invitations and your own registration questions. Each event gets a page on your domain, can be embedded in your website or announced there with a bar or a window, and registrants land on their CRM contact.
- Is the newsletter compliant with consent rules?
- It's built for them: sign ups confirm by double opt in, each subscriber's consent is recorded with time and source, every mail has a one click unsubscribe, and opens and clicks are only counted for people who agreed. Campaigns go out through your own mail account.
- Our customers aren't all English-speaking. Is the portal?
- Yes. The portal chrome and your own configured texts — ticket types, statuses, priorities, field labels — carry translations per language, and events can be offered in several languages with the emails following the one each person registered in.
- How is our data isolated from other tenants?
- Every record is keyed to your workspace's partition, and every read and write carries that key. Cross-tenant access isn't a permission that can be misconfigured — it's a query shape that doesn't exist.
Bring every customer into one place.
Set up a workspace, invite your colleagues and your agents, and switch on what you need — support today, the CRM, events and newsletters when you're ready.
14-day trial · No credit card · Nothing to cancel