Built a team chat + task tool that lives inside Shopify admin - looking for merchants to break it

I built Store Huddle after watching small teams run their store ops across Slack, WhatsApp and a spreadsheet, then paste order numbers between all three.

It puts channels, DMs and tasks inside Shopify admin, so you can attach an actual order, product or customer to a message instead of pasting an ID. It also pushes low-stock and high-risk-order alerts into whichever channel you pick. Six roles out of the box, including fulfillment, VA and developer, so you are not handing a contractor full admin access.

Free tier is 5 seats, no card. I am mainly after merchants with 3-10 people who will tell me where it falls over, especially anyone running fulfillment or VAs across timezones.

Happy to answer anything about how the permissions work.

Hi @muhammadfaisalh
One thing I’d want to test before fully relying on a tool like this is how the task and alert workflow behaves in real day-to-day operations.

For example, if a low-stock alert creates a task, can it be assigned to a specific role, tracked until completion, and automatically show who handled it? I’d also want a clear activity history for order/customer-related conversations so nothing gets lost when multiple team members are working across different time zones.

The Shopify Admin integration sounds useful, but for me the real value would be having a reliable audit trail around tasks, alerts, and team actions rather than just moving chat inside Shopify.

The roles claim is the part I would attack first, and a merchant can test it without touching your code.

Your six roles live in your app, not in Shopify. Once the merchant installs, your backend is holding one token with whatever scopes were granted at install, and every order or customer you show anyone comes back through that same token. Shopify has no idea which of your seats is asking. So fulfillment and VA are separated only by checks you wrote, on endpoints you wrote.

The test is to sign in as your most restricted seat, open devtools, and call your own API with an order id that seat should never see. If it comes back, the role is a display filter rather than a permission. Worth hardening before seat count is the thing anyone cares about, because the pitch here is specifically that a contractor does not get full admin access.

Second one, since you mentioned attaching a real order to a message. What happens to that message when the customer requests erasure? Shopify fires customers/redact and expects that data gone within the window. Order details pasted into chat history are the classic copy that gets missed, and that is an app review problem rather than a bug you can patch later.

Are you storing the order and customer fields on the message itself, or storing the id and refetching on view?

Looks useful for small teams, especially with the role-based permissions. Linking messages directly to orders and customers could save a lot of time and reduce mistakes.

@muhammadfaisalh The bit I would want nailed down before seat counts is where the seats actually live.

Your app sits inside Shopify admin. To open anything inside admin, a person needs a staff account on that store. So if a merchant wants 5 people in Store Huddle, do those 5 people each need a Shopify staff account first?

If yes, thats a real problem. Staff account limits are set by the merchants plan, and on the lower plans they are tighter than most people expect. A 3 to 10 person team can run out of staff slots before they ever reach your free 5 seats. And a VA in another timezone is exactly the person a merchant does not want to burn a staff slot on.

If no, and your VAs sign in somewhere else, then the app does not really live inside admin for them. It lives in your own web app, and admin is just where the owner happens to see it. Thats fine, plenty of good tools work that way, but its a different product and the post should probably say so.

Worth answering directly in the thread, because it changes who your buyer even is.

One thing that might soften it. Agencies and developers can usually be added as collaborator accounts instead of staff, and those do not eat a staff slot. So your developer role may be fine while fulfillment and VA are the two that actually hurt.

Second thing, building on @lumine’s question rather than repeating it. Say you go the safe route and store only the order id, then refetch on view. That solves erasure, but it buys you a new problem. Every time someone scrolls back through a channel you are firing fresh API calls for orders that were already looked up. A 10 person team scrolling a busy channel will feel that, and you will hit rate limits on exactly the days ops is busiest.

So the two correct answers pull against each other. Most tools I have seen land in the middle, caching a tiny display snippet on the message, order number and status and nothing personal, then fetching the rest only on click. Keeps customer data out of chat history without refetching the world.

Curious which way you went on that one.