Custom Inboxes
Custom Inboxes let you slice your SendSeven conversation feed into focused groupings — by region, brand, department, customer segment, or any rule you like — and decide which team members see which conversations.
If you have ever opened SendSeven and thought "I just want to see the Augsburg WhatsApp number, not everything else", Custom Inboxes are for you.
What are Custom Inboxes?
A Custom Inbox is a saved view of your conversations defined by three things:
- The channels and email connections it covers (WhatsApp numbers, Instagram accounts, Facebook pages, Telegram bots, live-chat widgets, and the email connections from Settings → Email).
- Optional contact rules — tags and/or custom fields a contact must match.
- Optional access rules — which users on your team can see this inbox.
When all three are combined, a conversation lands in the inbox automatically as soon as it meets the criteria. Nothing has to be manually filed or routed.
Workspaces that have not created any inbox will not see the Inboxes sidebar at all. Everything continues to work exactly as before — a single unified inbox. Custom Inboxes are purely additive.
When should you use them?
A few scenarios where teams reach for Custom Inboxes:
- Regional support teams — One inbox per location (Augsburg, Munich, Berlin), each scoped to that location's WhatsApp number. Agents only see conversations for their region.
- Multi-brand workspaces — One inbox per brand, scoped to that brand's channels. The marketing team handling Brand A never sees messages for Brand B.
- Departments under one roof — A Sales inbox, a Support inbox, and a Billing inbox, each routed by contact tag. The same WhatsApp number can feed all three; a contact tagged
billinglands in the Billing inbox. - Per-address email triage — One inbox for everything that lands on
support@, another fororders@, another forreturns@— even when all three addresses share the same email connection. - Agencies managing clients — One inbox per client account. Account managers only see the inboxes for their clients.
- VIP segmentation — A "VIP Customers" inbox filtered by a
viptag or by alifetime_valuecustom field above a threshold. Senior agents work this inbox first.
If you find yourself relying on filters or searches every morning to find the conversations that matter to you, that is a sign an inbox would save you time.
How an inbox is defined
Every inbox has a name and three filters. All three are combined with AND logic — a conversation has to satisfy every filter you set to appear in the inbox.
1. Channels and email connections
Pick one or more sources the inbox should cover. The picker shows everything connected to your workspace — WhatsApp numbers, Instagram accounts, Facebook pages, Telegram bots, live-chat widgets, and the email connections you have configured under Settings → Email (with the can_receive_support capability).
From the customer's point of view there is no visible distinction between "channel" and "email connection" — they all live in the same picker on the inbox edit page.
A few things worth knowing:
- The same channel or email connection can belong to multiple inboxes. Your main WhatsApp number can simultaneously feed a "Sales" inbox (filtered by the
salestag) and a "Support" inbox (filtered by thesupporttag). - If you do not pick any source, the inbox applies to all channels and email connections.
- The maximum is 100 sources per inbox.
Allowed recipients on an email connection
Each email connection can receive on multiple addresses — its primary email_address, any accepted aliases, and (if enabled) a catchall. When you add an email connection to an inbox, you can optionally narrow it down with an Allowed recipients list — the subset of those addresses you want this inbox to actually catch.
- Leave it empty and the inbox accepts every address the connection can receive on.
- List specific addresses (like
[email protected]or[email protected]) and the inbox only picks up messages sent to those addresses. - You can type addresses in manually as free text if you don't yet know the full alias list — for example, while a new alias is being provisioned. Entries are RFC-validated, normalized to lowercase, and deduplicated automatically.
Worked example. A fictional shoe retailer has a single mailbox connection [email protected] that receives mail on [email protected], [email protected], and [email protected]. They want:
- A "Support" inbox that only sees
[email protected]— they list that one address as the Allowed recipient. - A "Returns" inbox that only sees
[email protected]— they list that address. - A general "Email — everything" inbox that catches the rest — they leave the Allowed recipients list empty.
All three inboxes share the same underlying email connection. The Allowed recipients list does the routing.
When a conversation hops between addresses — for example, a customer first emails info@, your agent replies from support@, and the conversation continues on support@ — SendSeven advances the thread to follow your most recently used address. This is what lets an inbox like "All addresses on support@" capture migrated threads automatically. You don't have to do anything; it happens behind the scenes.
2. Contact tag rules (optional)
Filter conversations by tags applied to the contact. You can choose the matching mode:
| Mode | Meaning |
|---|---|
| Any (OR) | Contact must have at least one of the listed tags |
| All (AND) | Contact must have every listed tag |
| None | Skip the tag rule entirely |
Up to 50 tag filters per inbox.
3. Contact custom-field rules (optional)
Filter on the contact's custom-field values. Available operators:
| Operator | Use it for |
|---|---|
| equals / not equals | Exact-match comparisons (country equals DE) |
| contains | Case-insensitive substring match on text fields (customer_notes contains complaint) |
| in list | Match any value from a list (status in [active, trial]) |
| between | A numeric or date range (shoe_size between 40 and 46) |
| is set / is not set | Whether the field has a value at all |
You can add up to 20 custom-field rules per inbox. They are combined with AND, so adding more rules narrows the inbox.
About the contains operator
contains is a literal, case-insensitive substring match — useful when you want to catch any custom-field value that mentions a keyword rather than equals it exactly.
Worked example. The shoe retailer keeps a free-text customer_notes custom field on every contact. They create a Review Queue inbox with the rule customer_notes contains "complaint" so any contact whose notes mention a complaint is automatically funnelled to senior support.
- Searching for
boxmatches a stored value ofmatchbox(substring match anywhere in the string). - Searching for
vipmatches a stored value ofVIP Customer(the match is case-insensitive).
A few constraints to be aware of:
containsonly makes sense on text-typed custom fields. It is hidden for numeric, date, and boolean fields.- The match is case-insensitive —
VIP,vip, andVipall match the same set of values. - It is a literal substring match — not regex, not glob. If you type
%,_,*, or?, they are treated as plain characters in the search string. - An empty search string is rejected — otherwise it would match every contact and the inbox would be useless.
Example. A shoe retailer creates an inbox called "Size 40-46 buyers" with:
- Channels: their main WhatsApp number and Instagram account
- Tag rule: any of
customer,lead - Custom-field rule:
shoe_sizebetween40and46
Now whenever a contact who matches those criteria sends a message on either channel, the conversation appears in that inbox — automatically and instantly.
There is no manual "move to inbox" step. A conversation appears in an inbox the moment the contact matches the filters, and disappears if the contact stops matching (for example, you remove a tag). This makes inboxes self-maintaining.
Access control — two independent axes
This is the part most admins ask about, so it is worth slowing down for. SendSeven combines two completely independent toggles to decide whether a user sees an inbox and what they see inside it.
The two axes are:
- Inbox access mode — set per inbox. Is this inbox visible to all team members, or only to a specific list of users?
- Contact history visibility — set per user in team-member settings. When looking at a contact, does this user see all conversations across the workspace, or only the conversations from inboxes they have access to?
These two settings are independent. A user who is restricted on the contact-history axis can still be granted broad inbox access on the inbox axis, and vice versa.
Axis 1 — Inbox access mode
Set when you create or edit an inbox.
- All team members (default) — The inbox is public. Any team member with the right user-level setting can see it.
- Specific users — The inbox is private. Only the users on this list can ever see it, even if their user-level setting is "All inboxes".
Use Specific users for sensitive inboxes — VIP customers, executive escalations, legal — where you do not want every agent to even know the inbox exists.
Axis 2 — Contact history visibility
Set per team member in Settings → Team → user → Inbox access.
- All conversations (default) — When the user opens a contact, they see every conversation that contact has ever had, regardless of which channel or inbox it came through. This is the pre-feature behaviour and is what every existing team member is set to.
- Only inbox-accessible conversations — When the user opens a contact, the conversation list is filtered to channels/email connections they can reach through their inboxes. Older threads on sources they don't manage stay hidden.
This is independent of the inbox access mode. The two axes can be set in any combination — for example:
- A team lead on Inbox access: All inboxes with Contact history: Only inbox-accessible conversations — sees every inbox at the conversations level, but the contact view stays focused on their day-to-day channels.
- A regional agent on Inbox access: Restricted to specific inboxes with Contact history: All conversations — locked to their inboxes for the live queue, but allowed to see the full cross-channel context when researching a specific contact.
The filter on Axis 2 also applies to email reply history on the contact view — older email threads handled on email connections the user is not part of will be hidden when the user is on Only inbox-accessible conversations. It's the same channel-membership check the conversations list uses, just applied per-contact.
Effective access — the truth table
| Inbox access mode | User-level inbox access | Is user listed on inbox? | Can user see the inbox? |
|---|---|---|---|
| All team members (public) | All inboxes | — | Yes |
| All team members (public) | All inboxes | Listed | Yes |
| All team members (public) | Restricted | Listed | Yes |
| All team members (public) | Restricted | Not listed | No |
| Specific users (private) | All inboxes | Listed | Yes |
| Specific users (private) | All inboxes | Not listed | No |
| Specific users (private) | Restricted | Listed | Yes |
| Specific users (private) | Restricted | Not listed | No |
| Any | Any | Owner or Admin role | Yes (always) |
Workspace Owner and Admin roles bypass every inbox restriction — both axes. They will always see every conversation in every inbox and every conversation in every contact's history. If you need to limit someone's visibility, give them a lower role first.
Creating an inbox
You need the Owner or Admin role to create or edit inboxes.
- Go to Settings → Inboxes.
- Click Create inbox — this opens a dedicated page at
/settings/inboxes/new. - Give the inbox a clear name (
Augsburg WhatsApp,VIP Customers,Brand A — Sales,Support@). - On the Channels & Email tab, pick the channels and/or email connections it covers. For any email connection, optionally set its Allowed recipients to narrow down which addresses count.
- On the Filters tab, (optional) add tag rules and pick a matching mode.
- On the Filters tab, (optional) add custom-field rules — including the new
containsoperator for text fields. - On the Access tab, choose All team members or Specific users and add users if needed.
- Click Save.
The inbox appears immediately in the left sidebar (on desktop) or in the inbox picker (on mobile) for anyone who has access. To edit an existing inbox, click it in the list — it opens at /settings/inboxes/:id with the same three tabs.
Where the inbox list lives
Desktop — the Inboxes sidebar
On the conversations view, the Inboxes sidebar sits on the left side of the screen. A toggle at the top of the rail collapses the sidebar to a narrow icon-only rail to give you more room for the conversation list.
When collapsed, hovering the rail expands it as an overlay so you can pick an inbox without permanently expanding the rail again — there's a 300ms grace period before it retracts so you don't lose it the moment your mouse drifts off.
Mobile — the inbox pill
On mobile, the conversation-list header shows an inbox pill with the name of the currently selected inbox. Tapping it opens a bottom-sheet drawer with the same inbox list as the desktop sidebar.
The current inbox is remembered
Your most recently selected inbox is persisted in your browser (localStorage) and re-applied the next time you open SendSeven — so you don't have to re-pick your inbox every morning. A ?inbox_id=… query parameter in the URL always wins over the remembered value, which makes deep links from emails, dashboards, or bookmarks work predictably.
Managing user access
There are two ways to manage which user sees which inbox. They do the same thing in the end — pick whichever is faster for the change you are making.
Route A — From the inbox
Best when you want to grant one or two extra users access to a specific (often private) inbox.
- Open Settings → Inboxes.
- Click the inbox.
- Open the Access tab.
- Add the users who should see it.
Route B — From the team member
Best when you want to restrict a single agent to a curated set of inboxes (for example, a regional agent who should only see two inboxes).
- Open Settings → Team.
- Click the team member.
- Open the Inbox access screen.
- Switch the user from All inboxes to Restricted to specific inboxes.
- Check the inboxes they should be able to see.
- (Optional) Switch Contact history visibility between All conversations and Only inbox-accessible conversations.
Granting access to a private inbox? Use Route A — start from the inbox and add the people. Locking an agent into a narrow set of inboxes? Use Route B — start from the team member and define their world.
What changes for existing workspaces?
Nothing, until you create your first inbox. Custom Inboxes are completely opt-in.
- If you never visit Settings → Inboxes, the product looks and behaves exactly like before — one unified conversation list for everyone.
- The moment you create your first inbox, the sidebar (desktop) or inbox pill (mobile) appears for the users who can see it.
- "All Inboxes" at the top of the sidebar always shows the union of every inbox the current user can access. For an Owner or Admin, that is genuinely all conversations. For a restricted agent, it is the combined feed of just their inboxes.
When creating a new conversation manually, the channel picker is automatically filtered to channels the user can reach through their accessible inboxes. Restricted agents will never accidentally start a conversation on a channel they are not supposed to use.
Tips & best practices
- Fewer, broader inboxes scale better than many micro-inboxes. Five well-named inboxes are easier to navigate than thirty.
- Use tags for behavioural / lifecycle filtering (
vip,churn-risk,trial) and custom fields for stable attributes (region,shoe_size,plan_tier). - Reach for
containson free-text fields —customer_notes contains "complaint"is a great low-effort triage rule that doesn't require fully structured data. - Use Allowed recipients to fan a single email connection across several inboxes rather than creating a separate connection per address.
- Name inboxes for the people who use them, not the rules behind them.
Munich Supportis better thanWA-DE-MUC + tag:support. - Start with public inboxes. Make an inbox private only when there is a real reason to hide it from the wider team.
- Restrict cautiously. It is tempting to lock every agent down, but most teams benefit from broad visibility. Restrict only when there is a clear reason (regional separation, multi-tenant agency setup, sensitive segments).
- Audit periodically. Every few months, open Settings → Inboxes and prune inboxes that are no longer used.
Limitations
A few honest caveats to be aware of:
- Conversations can appear in multiple inboxes. Filters are evaluated independently, so a contact who matches two inboxes' rules will show up in both. This is intentional, not a bug.
- Filtering is dynamic, not stamped on the conversation. Moving a channel into a different inbox immediately changes what shows up in each view — there is no historical "this conversation belonged to inbox X" record. If you re-organise inboxes, the old conversations follow the new rules.
containsis text-only. The operator does not appear for numeric, date, or boolean custom fields.- Per-inbox limits:
- Up to 100 channels / email connections
- Up to 50 tag filters
- Up to 20 custom-field rules
- Up to 500 explicit user grants
- Mobile parity. The SendSeven mobile app supports viewing inboxes; full creation and access-management parity is shipping in a follow-up release. For now, manage inboxes from the web app.
FAQ
Do Custom Inboxes change anything for users who don't need them?
No. If you do not create any inboxes, your workspace looks and behaves identically to before. Custom Inboxes are completely opt-in.
Can the same channel or email connection appear in more than one inbox?
Yes. A single WhatsApp number, Instagram account, email connection, or any other source can belong to as many inboxes as you like. Each inbox just defines its own filter on top of the shared source — including, for email connections, its own Allowed recipients list.
What does an admin or owner see?
Everything. Owner and Admin roles always see every conversation in every inbox, regardless of inbox-level or user-level restrictions. To narrow someone's view, give them a lower role first.
If I remove a tag from a contact, does the conversation leave the inbox?
Yes. Filters are evaluated dynamically, so the conversation will leave inboxes whose filters no longer match and may appear in others whose filters now match. There is no manual reassignment step.
Can I see "everything" even with inboxes set up?
Yes — the All Inboxes view at the top of the sidebar shows the combined feed of every inbox you have access to. For Owners and Admins that is the entire workspace. For restricted users it is the union of the inboxes they are allowed to see.
What happens to a private inbox if its only user is removed from the workspace?
The inbox still exists but no one (other than Owners and Admins) can see it until you add new users to its Access list. You can re-open it from Settings → Inboxes and add another user.
Do inboxes affect campaigns, automation flows, or webhooks?
No. Custom Inboxes are a viewing and access layer over conversations. They do not change how campaigns are sent, how flows are triggered, or which webhook events fire. Every conversation still exists in the underlying workspace — inboxes just control who looks at what.
Why is "Contact history visibility" a separate toggle from "Inbox access"?
Because the two questions are different. Inbox access controls the live queue — what shows up in the user's sidebar and conversations list day to day. Contact history visibility controls what shows up when someone digs into a single contact's past. Some teams want broad day-to-day restriction but full historical context (a quality reviewer who needs to read a contact's full timeline). Other teams want the opposite — broad live access but a focused per-contact view (a regional agent who only needs their own region's history surfaced). Splitting the two toggles lets you set each axis independently.
Will turning on "Only inbox-accessible conversations" hide historical email threads on a contact?
Yes — older email threads on email connections the user is not part of will be hidden from the contact view. The channel-membership check is the same one used elsewhere in Custom Inboxes; nothing is special-cased for email. Owners and Admins bypass the filter and always see everything.
Is contains case-sensitive?
No — it is always case-insensitive. vip, VIP, and Vip are treated as the same search. If you need a true exact match (case included), use equals instead.
Can I do wildcard or regex matches with contains?
No. contains is a literal substring match. Characters like %, _, *, and ? are matched as themselves, not as wildcards.
Next steps
- Tags & Lists — set up the tags you will use in inbox rules.
- Custom Fields — define the contact attributes you can filter inboxes by.
- Manage Contacts — keep contact data accurate so inbox filters stay useful.