How to manage a shared inbox with a small SaaS team
Shayan, Founder14 min read

Managing a shared inbox on a small software team comes down to three rules: every conversation has one clear owner, an AI agent steps aside the moment a customer needs a human, and every promised follow-up has a timer attached to it.
Most small SaaS teams start out by sharing a login to support@ or turning on Gmail delegation so two founders and an engineer can answer emails between shipping code. That works when you get five messages a day. It falls apart the first busy afternoon two teammates send conflicting answers to the same customer four minutes apart, or when someone opens a tricky bug report over lunch, marks the email read for everyone else, and accidentally buries it for the rest of the week.
Even after you move into a real support tool, a shared queue can still go sideways in two common ways. The first is a bot that refuses to get out of the way, looping a frustrated customer through three rounds of help center links for steps they already tried. The second is the forgotten promise, where you tell a customer, "I'll check the logs with engineering and follow up tomorrow morning," twenty new chats push the thread off your screen, and three days later the customer replies asking if anyone is still there.
At UserJot, customers reach us either by emailing our support address or by messaging us through the in-app widget inside our product. Both channels land in one shared inbox where Juno, our AI support agent, handles the routine documentation questions first and hands the rest to our team. Here is how we run that queue day to day so threads don't get dropped or double-answered.
Bring support email and live chat into one place
A shared inbox gives your whole team one queue for customer conversations, with full thread history, clear ownership, and private notes beside the messages. When a teammate picks up a thread, they don't have to ask a colleague to forward an email chain or paste screenshots into Slack to figure out what was already promised.
To bring email into the same inbox as your in-app widget chats, you don't need to touch your domain's MX records or move off your mail provider. Instead, you set up forwarding from your existing support@yourcompany.com address to the inbound address your support tool gives you. Customers keep writing to the address they already know, your mail host keeps a backup copy of every message, and each email shows up in your support inbox right alongside widget messages.
When we reply to a forwarded email from UserJot, the message goes out from our workspace's forwarding address with our teammate's name in the sender line, and when the customer hits reply in their mail client, their answer threads right back into the same conversation. Before you rely on a new forwarding rule, always send a test email from an outside address, verify that the original sender shows up properly, and reply once to confirm the return path works end to end. Our email forwarding guide walks through the exact steps for Gmail and other providers.
Support email In-app widget chat
\ /
UserJot Conversations
|
Juno
/ \
Answers from Hands off to
your knowledge the team's QueueOnce email and chat arrive in the same place, the first filter is deciding which messages actually need a person on your team to stop what they're doing and type a reply.
Let an AI agent handle doc questions, and make it hand off early
Roughly half the messages that hit a SaaS support inbox are questions your documentation already answers: where to find an invoice, how to invite a teammate, or why a setting is grayed out. Making a founder or engineer stop mid-task to copy and paste a docs link is slow for the customer and exhausting for the team.
In our inbox, Juno takes the first pass at new messages on both chat and email. You give her a product summary, upload internal files in Markdown, plain text, HTML, JSON, or YAML, or point her at your documentation URLs to crawl. Because Juno only answers from the knowledge sources you give her, she doesn't invent pricing tiers, make up features, or guess at troubleshooting steps.
The specificity of those docs matters more than their length. If a billing setting is only visible to workspace owners, your documentation needs to state that plainly. Otherwise, a standard admin will follow Juno's instructions step by step, fail to see the button on their screen, and immediately write back annoyed.
Suppose a customer writes in because they aren't receiving notification emails from your app. Your documentation explains where the notification toggles live, so Juno walks the customer through checking their settings.
Often, that ends the conversation right there. The customer flips the toggle on, gets their next email, and moves on. When a customer stops replying after a substantive AI answer, Juno automatically resolves the thread after 30 minutes on chat or 72 hours on email.
Other times, the customer replies, "I already checked that page, notifications are turned on, and I still didn't get yesterday's email." At that point, this is no longer a documentation question. It's a delivery bug or an account-specific bounce that requires someone to check the server logs.
The worst thing an AI agent can do here is rephrase the same help article and ask the customer to check their settings a second time. We built Juno to hand off early instead. She passes the conversation to the team when she lacks the knowledge or confidence to answer, when the problem requires account changes, billing actions, or engineering investigation, or the instant the customer asks to talk to a human. When she hands off, she can leave a short internal summary on the thread so the person picking it up can see what happened at a glance. And if you notice Juno handing off the same question five times in a week, that's your cue to write the missing doc and add it to her knowledge.
Support email, live chat, and Juno in one shared inbox.
Juno answers repeat questions from your docs and hands the rest to your team's Queue with assignments, internal notes, snooze, and follow-up reminders. Free while in beta.
Pick up handoffs in the Queue without making customers repeat themselves
An inbox gets noisy when your team has to scan past dozens of resolved threads, spam messages, and ongoing AI chats just to find the three people who are actually waiting on a human.
UserJot separates conversations by state and view so your team only works from what needs attention right now. While Juno is actively helping a customer, the thread stays in the AI handling state, stays out of your team's Queue, and doesn't send push or email notifications to your team. The moment Juno hands the conversation over, or a customer replies to an open thread waiting on your team, the state changes to needs team and the conversation lands in Queue, sorted with online visitors at the top and the longest-waiting customers first.
When you open that notification delivery thread from Queue, read the exchange before you type. The customer already told Juno that their notification toggle is turned on. Starting your human reply with "Have you checked your notification settings?" tells the customer nobody read their message.
Instead, pick up right from their last line. Acknowledge what they already checked, ask for the exact detail you need to investigate, and explain why you're asking:
I see you already have notifications turned on in your account settings. Could you tell me which email address is on your profile and roughly what time you expected yesterday's update? I'll check our mail delivery logs for that address to see if our provider recorded a bounce or block.The moment a teammate sends a public reply, two things happen automatically. First, Juno steps back into human takeover mode and stays out of the conversation unless someone on the team explicitly clicks Hand to Juno. You never have to worry about the AI jumping back into the middle of your debugging thread. Second, if the conversation was unassigned, your first public reply automatically assigns the thread to you.
Assign one owner and write internal notes for the next person
A shared inbox only prevents duplicate replies if everyone can see who owns each thread. In UserJot, every conversation can be assigned to one teammate from the header chip or with the /assign slash command in the composer. Live viewing and typing indicators show you if another teammate currently has the thread open, and once a conversation is assigned to you, it appears in your Mine view and routes new customer replies straight to your notifications instead of alerting the whole company.
Even with clear assignment, small teams hand threads off constantly. An engineer needs to check a database record, or you're heading out for Friday and a colleague is covering the inbox on Monday. That is what internal notes are for. You can switch the composer from Reply to Internal note, or type / in the composer, to leave a yellow team-only note right inside the timeline where the customer will never see it.
A bad internal note says, "Looking into this with eng." A useful internal note records three things in two sentences: the facts you already verified, the next step in the investigation, and the exact commitment you made to the customer.
Customer has notifications enabled on their account, but yesterday's status email never arrived. Confirmed their address suppressed on SES after a transient bounce last week. Removed the suppression and asked them to let us know tomorrow morning if the daily digest arrives.
If you won't be around to follow up on a promise yourself, don't just drop an internal note in the thread and hope a teammate spots it. Message your colleague directly, reassign the conversation to them in the header once they confirm, and let them set their own reminder. And always send a short public reply to the customer before you step away so they know you're investigating and when they'll hear back next.
Set a /remind or /snooze before you close the tab
Promising a customer "I'll check on this and update you tomorrow" is where most small teams drop the ball. Your intentions are good, but by 11 a.m. the next day, fifteen newer conversations have arrived and the quiet thread where you owe an update has scrolled out of sight.
Whenever you owe a customer a follow-up, put a timer on the conversation before you move on to the next ticket. UserJot gives you two different tools for this, accessible from the thread header or via /remind and /snooze in the composer, depending on whether the follow-up belongs to you personally or to the whole team:
| Situation | Which tool to use |
|---|---|
| You promised the customer an update tomorrow morning after checking logs. | Set a personal /remind on the thread for tomorrow morning. |
| The customer is out until Monday and asked the team to check back then. | /snooze the conversation until Monday morning. |
| A teammate is taking over the update you promised for tomorrow. | Reassign the thread to them and have them set their own /remind. |
Personal reminders belong strictly to the teammate who created them. When your reminder comes due, the conversation surfaces right at the top of your Queue with your note attached, even if someone resolved the thread in the meantime. Because reminders are personal, your reminder will not pop up in a colleague's Queue.
Snooze is shared across the whole workspace. It hides an open conversation from the active inbox views until the wake time you pick, then drops it back into the inbox for the team. Snooze works well when nobody on your team can take action until a future date, such as waiting until Monday for a customer to test a fix in their staging environment. Because snoozing hides the thread from everyone's Open list, leave a one-line internal note explaining why you snoozed it so a teammate searching for the customer later understands the plan.
One habit builds a lot of trust with customers, which is to only promise what you control. You might not know whether engineering will have a bug patched by tomorrow afternoon, so don't promise a fix by tomorrow. Promise that you will check on the investigation and send an update by tomorrow afternoon, and send that update when your reminder fires even if the news is just, "We found the cause in our mail queue and are testing a fix now. I'll update you again on Thursday."
Resolve what is finished and turn product asks into tracked feedback
Once you've fixed the customer's issue, explain what changed, tell them how they can verify it on their end, and mark the conversation Resolved.
Resolving a thread in UserJot isn't a permanent lock. It clears the conversation out of your Queue and Open views so your active workspace stays clean, while keeping the full history searchable under All and Resolved. If the customer replies to that email or chat thread two weeks later because the symptom came back, the conversation automatically reopens and lands right back in Queue with all your earlier internal notes still attached.
Be careful not to confuse a conversation that is waiting on customer with one that is Resolved. When you ask a customer for a screenshot or a log snippet, the thread leaves Queue because it isn't your turn to reply, but it stays visible in Open so you can see every active investigation that hasn't crossed the finish line yet. That is also why a zero-count Queue doesn't mean every customer problem is solved; it just means nobody is currently waiting on a response from your team. Our inbox views guide breaks down how Queue, Open, Mine, and All fit together.
Before you move on from a resolved thread, take ten seconds to ask whether the conversation pointed to a bigger product gap. A shared inbox shouldn't be a dead end where product feedback goes to die.
When a customer uses live chat to ask for a capability your product doesn't have yet, Juno searches your public feedback board, shows them any matching request, and either adds their vote or files a new request once the customer confirms. When a human teammate spots a feature request inside an email or support chat, you can post or vote on the customer's behalf on the board in a few seconds. Tying support threads to your feedback board means you don't have to remember six months later which customer asked for a feature in chat. The moment you move that request to Planned on your roadmap or mark it Completed alongside a changelog post, UserJot automatically emails everyone who requested or voted on it.
A daily inbox rhythm that doesn't burn out a small team
You don't need three people staring at the support tab all day to give fast, thoughtful replies. In fact, having everyone watch the inbox at once is how teams end up half-focusing on code and colliding on tickets.
Set up operator schedules in each teammate's local timezone so the widget shows a live green Online dot during your team's working hours and sets clear reply expectations when the team is away for the night. Then divide the day into clean shifts or check-in windows:
- Start of your window. Open
Queuefirst. Clear any personal reminders that came due overnight, then work through the threads waiting on the team from oldest to newest, checking online visitors at the top first since they are still right there in your app. - During an investigation. Claim the thread by replying or assigning it to yourself. If you need input from another engineer or can't finish the fix right away, tell the customer when they'll hear from you next, drop a two-sentence internal note on the timeline, and set a
/remindbefore you switch tabs. - End of your window. Check your
Mineview to make sure no assigned conversation is sitting unanswered. If you're handing an active investigation to a teammate in a later timezone, ping them, reassign the thread, and make sure they set their own reminder. - Once a week. Skim the threads Juno handed off to the team. Usually two or three new doc paragraphs or a clearer setting label in the app will prevent next week's batch of repeat questions.
If you want to run this exact setup for your team, you can turn on Conversations in your workspace settings, connect your support address with a forwarding rule, and point Juno at your documentation in a few minutes. Conversations is currently in beta and free on every UserJot plan while it is, with three teammates included on Free and up to 100 teammates on paid plans starting at $29 a month with no per-seat or per-resolution fees.
Frequently asked questions
How do you stop two teammates from replying to the same customer?
Assign the conversation to one owner before or as you reply, and watch the live viewing and typing indicators in the thread header. In UserJot, sending the first public reply to an unassigned conversation automatically assigns it to you, and subsequent customer messages notify the assignee rather than the entire team. If you need to pass the thread to someone else later, leave an internal note and change the assignee in the header.
Should an AI support agent reply to every incoming email?
No, an AI agent should only answer questions that are directly covered by your documentation and product knowledge, and stay silent on spam, receipts, and automated emails. When a customer asks about a billing adjustment, an account bug, or anything outside your docs, the agent should hand the thread straight to your team's Queue rather than guessing. In UserJot, Juno also steps out of the conversation automatically the moment a human teammate replies.
What is the difference between snoozing a conversation and setting a reminder?
Snoozing is a shared team action that hides an open conversation from the active inbox until a future time, which works best when nobody can take action until the customer returns. A reminder is personal to the teammate who set it and brings the conversation back into your own Queue at the time you choose, even if the thread was resolved in the meantime. Use /remind when you personally promised a customer an update tomorrow, and /snooze when the whole team is pausing the thread until next week.
Is an unread message the same thing as a conversation that needs a reply?
No, unread only means that your specific account hasn't opened the latest message yet. It doesn't tell you whether Juno or another teammate has already answered the customer, or whether the customer is the one who owes the next reply. Instead of using unread badges as a to-do list, work out of the Queue view, which only holds conversations where the customer is waiting on your team plus your due reminders.
Do we have to change our domain's DNS records to use a shared inbox for email?
Not when you connect email through forwarding. You keep your existing mail provider, such as Gmail or Google Workspace, and add a forwarding rule that sends a copy of incoming messages from support@yourcompany.com to your UserJot inbound address. Customers keep emailing your normal address, your mail provider keeps an archive copy of every message, and replies from your team thread back into the same conversation.
How much does UserJot's shared inbox and AI agent cost?
Conversations and Juno are currently in beta and free on every UserJot plan while in beta, with no per-seat or per-resolution charges. The Free plan is $0 forever and includes up to three teammates, while Starter at $29 a month and Professional at $59 a month support up to 100 teammates for a flat workspace price.


