Custom roles with per-tab access — give your accountant only the Financials tab, your agency only Marketing, your VA only Tasks and AI Listings. Every team change tracked. Unlimited team seats at every tier. Built for the Shopify operator who actually has a team — not the one who pretends to.
Most ecom analytics tools have two team roles: Admin (full access to everything) and Viewer (read-only, but still everything). That gives you exactly two options for your bookkeeper: hand them every number in the business including ad creative spend, or give them nothing and email them CSVs once a month. Same for your agency, your VA, your contract designer, your fractional COO.
The result: most operators end up doing one of three things. They give everyone full Admin and pray ("trust the team"). They give nobody anything and email exports manually ("I do it all myself"). Or they pay for two separate tools — one for analytics, one with proper roles — and reconcile the data by hand. None of these scale.
The retention multiplier nobody talks about: the single biggest predictor of B2B SaaS retention is seat count. Stores with an accountant + agency + VA on the platform churn 5-10× less than owner-only stores. Per-tab roles are what unlocks that, because they make giving a contractor access feel safe.
Not a checkbox in settings. A real role layer enforced at the database — every query the user runs is filtered by their role's tab access.
Owners create named roles — Accountant, Agency Partner, VA, Fractional COO, whatever fits — and assign per-tab access. Editor (view + add + edit + delete) or Viewer (read-only) per tab. Absence of a row means no access — the tab doesn't even appear in their sidebar.
If custom roles are overkill for your team, the built-in presets cover the common cases: Owner (full access including billing), Admin (all tabs except billing and account deletion), Member (view + edit), Viewer (read-only).
When you invite someone, you assign their role on the invite — not after they accept. The invitation email includes the role name. They sign in and immediately see only the tabs you intended. No "I'll set permissions after they accept" moment that gets forgotten.
Every role assignment, role edit, member removal, invite sent, invite revoked is recorded with timestamp, actor, and target. The Activity tab shows you the full history — who changed what, when, from what device. Useful for “who removed Sarah from the team last Tuesday?”
Custom role: "Accountant". Access: Financials (editor), Activity (viewer). They see your P&L, Cash Flow, Balance Sheet, and the activity history of every change. They don't see your ad creative, your customer LTV, or your team chat. You stop emailing CSV exports.
Custom role: "Agency Partner". Access: Marketing (editor), Performance (viewer), Stores (viewer). They can see attribution and tune campaigns, see daily performance, see which store they're working on — but they can't view your COGS, your team, your billing, or your customer list. Onboard them in 30 seconds, off-board them with one click.
Custom role: "Operations VA". Access: Tasks (editor), AI Listings (editor), Performance (viewer). They can clear the task board, generate product copy, and see if revenue is on pace — without seeing ad spend amounts, your supplier costs, or your team. The kind of access you'd never give without per-tab roles.
BeProfit has Admin / View-only — that’s it. Lifetimely, TrueProfit, Polar are similar. TripleWhale ships role-based access on their enterprise tier ($1,000+/mo), not on their starter plans. So if you want to onboard an accountant or agency on a $99-249/mo analytics tool, you give them everything — including data they shouldn’t see.
Ecom Forward includes custom team roles, unlimited seats, and activity history at every tier including Captain at $99/mo. The agency-and-bookkeeper-friendly setup is the default, not the upgrade.
7-day free trial, every feature at every tier including custom team roles. Create the role, send the invite, they're in — with exactly the access you intended.
7-day free trial · cancel anytime · live in 10 min