How to Build a Shared Customer Inbox Across Slack, Gmail, and Microsoft Team
March 23, 2026
A shared customer inbox is a feature inside a SaaS product that aggregates conversations from messaging and email platforms into a single interface, allowing teams to read, reply, and manage customer communication in one place.
To build this, your product needs to retrieve messages from platforms like Slack, Gmail, and Microsoft Teams, group them into threads, and allow users to respond without switching tools.
The challenge is that each platform exposes different APIs, message formats, and threading models. Unified provides a consistent Messaging API that lets your product retrieve and send messages across these platforms using a single interface.
Why SaaS Products Build Shared Inbox Features
Many B2B SaaS products provide shared inbox functionality for their customers.
Examples include:
- Customer support platforms
- Sales communication tools
- Customer success platforms
- Helpdesk products
- AI support assistants
These products allow teams to manage communication across channels in one place.
Typical use cases include:
- Support inboxes for handling customer requests
- Sales inboxes for managing outbound and inbound communication
- Customer success inboxes for account management
- AI-assisted inboxes for automated replies and summaries
Common Shared Inbox Use Cases
Shared inbox features typically support several workflows.
Unified conversation view
Display messages from Slack, Gmail, and Teams in a single interface.
Threaded conversations
Group related messages into conversation threads.
Multi-channel replies
Allow users to respond to messages across platforms.
Team collaboration
Let multiple users participate in conversations.
Automated responses
Use AI to suggest or generate replies.
Unified Messaging Category
The Messaging API normalizes communication across multiple platforms.
| Category | Description | Key Objects |
|---|---|---|
| Messaging | Email and chat conversations across platforms like Slack, Gmail, and Teams | message, channel |
This allows your product to retrieve and send messages across providers using the same API structure.
Unified Message Object and Key Fields
The message object represents a single communication event.
Important fields include:
| Field | Purpose |
|---|---|
| id | Unique identifier for the message |
| message | Plain-text message body |
| message_html / message_markdown | Formatted message content |
| subject | Email subject |
| author_member | Sender of the message |
| destination_members | Recipients (To) |
| mentioned_members | CC recipients |
| hidden_members | BCC recipients |
| created_at | Timestamp |
| channels | Channel context |
| attachments | Files or links |
| parent_id | ID of the parent message |
| message_thread_identifier | Thread identifier |
| web_url | Link to the message in the source platform |
These fields allow your product to display conversations consistently across platforms.
Connecting Customer Messaging Platforms
Customers connect their messaging platforms using Unified Connect.
Typical flow:
- Your application launches the authorization flow.
- The user selects integrations such as Slack, Gmail, or Microsoft Teams.
- The user authorizes access.
- Unified returns a connection_id.
Your application stores:
user_id → connection_id
All API requests reference this identifier.
Retrieving Messages and Threads
Messages are retrieved using:
GET /messaging/{connection_id}/message
GET /messaging/{connection_id}/channel
Thread model
Unified does not provide a separate thread object. Threads are reconstructed using message metadata.
Parent-based threading
- Each message includes a
parent_id - Messages without a
parent_idare root messages - Replies reference their parent message
Thread grouping
You can group messages by:
- root message (no parent_id)
- or
message_thread_identifier(if available)
Fetching full thread history
Two approaches:
Filter by parent
GET /messaging/{connection_id}/message?parent_id={message_id}
Returns direct replies.
Expand full thread
Use expand=true when listing messages to return all nested replies in a single request.
This allows your product to reconstruct complete conversations.
Sending and Replying to Messages
Unified uses a single endpoint to send new messages and replies.
POST /messaging/{connection_id}/message
Sending a new message
Provide:
- message content (
message) - recipients (
channelsor email fields)
Replying to a thread
Set:
parent_id = existing_message_id
This ensures the message appears in the correct thread.
Writable fields
| Field | Purpose |
|---|---|
| message | Message body |
| message_html / message_markdown | Formatted content |
| channels | Target channel |
| destination_members | Email recipients |
| mentioned_members | CC recipients |
| hidden_members | BCC recipients |
| author_member | Sender |
| subject | Email subject |
| attachments | Files or links |
Updating messages
PUT /messaging/{connection_id}/message/{id}
Used to edit messages (supported in platforms like Slack).
Building a Shared Inbox Interface
A shared inbox typically combines messages into a single UI.
Example structure:
| Source | Activity |
|---|---|
| Slack | Customer message in channel |
| Gmail | Email thread |
| Teams | Internal discussion |
| Slack | Reply to conversation |
Applications typically:
- Retrieve messages across platforms
- Group them into threads
- Sort by
created_at - Display participants using
author_memberand recipient fields - Allow replies using the messaging API
Because Unified normalizes message objects, this logic works across all supported providers.
Keeping Inbox Data Updated
Unified provides webhook events for messaging updates.
Common events include:
message.createdmessage.updatedmessage.deleted
Additional interaction events include:
- reactions
- mentions
- button clicks
These events allow your inbox to:
- update in real time
- show unread messages
- trigger notifications
- power AI workflows
Supported Platforms
Unified supports multiple messaging integrations.
Examples include:
- Slack
- Gmail
- Microsoft Teams
- Outlook
- Intercom
- Zendesk
This allows your product to support communication across multiple channels.
Why This Matters
Building a shared inbox requires integrating multiple messaging platforms and handling different APIs, threading models, and message formats.
Unified simplifies this by providing:
- normalized message objects across platforms
- a single endpoint for sending and replying to messages
- consistent thread reconstruction using
parent_id - real-time updates via webhooks
This allows product teams to focus on building inbox features instead of managing integration complexity.
Start building shared inbox features across Slack, Gmail, Microsoft Teams, and other messaging platforms today.