> ## Documentation Index
> Fetch the complete documentation index at: https://docs.soneka.africa/llms.txt
> Use this file to discover all available pages before exploring further.

# Team Inbox: Shared WhatsApp Service Desk for Teams

> Manage WhatsApp conversations at scale with Soneka's shared inbox — round-robin routing, SLA timers, internal notes, and real-time collision detection.

<Frame>
  <img src="https://mintcdn.com/soneka-africa/XXyrTGYVNgSvQUD1/images/image-3.png?fit=max&auto=format&n=XXyrTGYVNgSvQUD1&q=85&s=a30675b404dc507026b1024bb6dad5ff" alt="Image" width="1919" height="849" data-path="images/image-3.png" />
</Frame>

The Team Inbox turns your WhatsApp number into a full-featured support desk that every agent on your team shares simultaneously. Instead of forwarding messages or handing off phones, all incoming conversations land in one place — routed automatically, tracked against SLA timers, and enriched with a complete customer history so your team can reply with context rather than guesswork. Teams using Soneka's inbox hit a **42-second median first response time** across all channels.

## Who It's For

The Team Inbox is designed for any business that receives a high volume of inbound WhatsApp messages — e-commerce support, financial services onboarding, healthcare appointment management, or SaaS customer success. If more than one person needs to handle WhatsApp at the same time without stepping on each other, Team Inbox is your starting point.

***

## Creating a Team

<Frame>
  <img src="https://mintcdn.com/soneka-africa/XXyrTGYVNgSvQUD1/images/create-team.png?fit=max&auto=format&n=XXyrTGYVNgSvQUD1&q=85&s=ae8f3b8358cf1e5e3b00d288e1d788b6" alt="Create a team dialog" width="500" height="505" data-path="images/create-team.png" />
</Frame>

Teams are how you group agents by department — Sales, Support, Billing, and so on. Once a team exists, routing rules can auto-assign new conversations to it, agents can manually hand chats over to it, and the analytics dashboard breaks down performance team by team. Create your teams **before** you build routing rules, since the "Assign to team" action needs a team to point at.

<Steps>
  <Step title="Open the team builder">
    Go to **Team Inbox → Teams** and click **Create a team**.
  </Step>

  <Step title="Name the team">
    Enter a short, recognizable **Team name** — e.g. *Sales*, *Support*, *Billing*. This name shows up in the assignment picker, routing rules, and analytics.
  </Step>

  <Step title="Pick a color">
    Choose a **Color** from the swatches. The team color appears as a chip in the inbox queue, so operators can spot which team a chat belongs to at a glance.
  </Step>

  <Step title="Choose an auto-assignment strategy">
    Pick how Soneka should decide which agent on the team picks up a new conversation:

    * **Manual** — a manager picks who gets it. Chats land in the team queue and wait for someone to grab them.
    * **Round robin** — spread evenly. Cycles through team members in order.
    * **Least loaded** — fewest open chats first. Balances load in real time.
    * **Sticky** — last agent who replied to this contact. Preserves continuity for returning customers.
  </Step>

  <Step title="Create the team">
    Click **Create team**. The team is available immediately in routing rules and the manual assign menu.
  </Step>

  <Step title="Add agents">
    Open the **Members** panel and add agents to the team. An agent can belong to more than one team (e.g. someone who covers both Sales and Billing).
  </Step>
</Steps>

<Tip>
  **How teams work at a glance.** Once agents are in a team, you can use it three ways: **manual assign** (an operator clicks Assign and picks the team, and Soneka routes the chat to the least-busy member), **routing rules** (e.g. *"if message contains 'refund' → assign to Sales"* — the first message of a new chat routes automatically), and **team analytics** (`/analytics` shows reply time, resolution, and CSAT broken down per team).
</Tip>

***

## Setting Up Routing Rules

<Frame>
  <img src="https://mintcdn.com/soneka-africa/XXyrTGYVNgSvQUD1/images/create-rule.png?fit=max&auto=format&n=XXyrTGYVNgSvQUD1&q=85&s=ecb8e7007e7596dabee45ceeaa27dea6" alt="Create rule dialog" width="560" height="461" data-path="images/create-rule.png" />
</Frame>

Routing rules decide what happens to a new conversation the moment it arrives — which team or agent gets it, which tag it picks up, whether an auto-reply fires, and more. Rules are evaluated **top to bottom**; the first rule whose conditions all match runs its actions.

<Steps>
  <Step title="Open the rule builder">
    Go to **Settings → Automation → Rules** and click **Create rule**.
  </Step>

  <Step title="Name the rule">
    Give it a clear **Rule name** you'll recognize later — e.g. *"Route sales keywords to Sales team"*. Names only show up in the rules list; contacts never see them.
  </Step>

  <Step title="Add conditions (ALL must match)">
    Click **+ Add condition** to add one row per check. Each row has three parts:

    * **Field** — what to check (Message text, Contact tag, Contact attribute, Channel, Time of day, First message, etc.).
    * **Operator** — how to check it (`equals`, `does not equal`, `contains`, `does not contain`, `is empty`, `greater than`, `less than`).
    * **Value** — what to match against.

    Add as many condition rows as you need. All of them must match for the rule to fire (they combine with AND). Leave conditions empty to match every incoming conversation.
  </Step>

  <Step title="Add actions">
    Click **+ Add action** to add one row per thing you want the rule to do. Common actions:

    * **Assign to team** — pick the team from the dropdown.
    * **Assign to agent** — pick a specific person.
    * **Add tag** / **Remove tag** — organize contacts on the fly.
    * **Send auto-reply** — fire a canned message.
    * **Start flow** — enroll the contact into a flow.
    * **Set priority** — bump the conversation to high/normal/low.

    You can stack multiple actions on a single rule (for example, tag the contact *and* assign to a team).
  </Step>

  <Step title="Choose how the rule behaves">
    Two switches at the bottom shape the rule's behavior in the pipeline:

    * **Stop on match** — when this rule matches, skip all remaining rules. Turn it on for terminal rules; leave it off if you want later rules to run too.
    * **Fallback rule** — this rule only fires when **no other rule matched**. Use it for your catch-all "assign to General queue" safety net.
  </Step>

  <Step title="Activate and save">
    Make sure **Active** is checked (uncheck it to keep the rule in place but paused), then click **Save rule**. The rule takes effect immediately for new conversations.
  </Step>

  <Step title="Order the rules">
    Back on the rules list, drag rules up and down to change evaluation order. Put your most specific rules at the top and your fallback at the bottom.
  </Step>

  <Step title="Test with a real message">
    Send a test message from a WhatsApp number not already in your contacts and confirm the conversation lands where you expect within seconds. Open the conversation's activity log to see which rule matched.
  </Step>
</Steps>

<Tip>
  **How this rule will work.** The expandable panel at the top of the dialog shows a plain-English summary of what the rule does with your current conditions and actions. Open it before saving to sanity-check that the rule reads the way you meant it to.
</Tip>

<Tip>
  Combine specific rules with a fallback: put keyword- and tag-based rules at the top with **Stop on match** enabled, and finish the list with a single **Fallback rule** that assigns everything else to your General queue.
</Tip>

***

## SLA Timers

<Frame>
  <img src="https://mintcdn.com/soneka-africa/XXyrTGYVNgSvQUD1/images/image-24.png?fit=max&auto=format&n=XXyrTGYVNgSvQUD1&q=85&s=633a0bc0e1fbe4a24d0f4bfa27500f29" alt="Image" width="1862" height="651" data-path="images/image-24.png" />
</Frame>

SLA (Service Level Agreement) timers give your team visible deadlines for every conversation. Soneka tracks two metrics:

<CardGroup cols={2}>
  <Card title="First Response Time" icon="clock">
    The time from when a contact sends their first message to when an agent sends any reply. Your target appears as a countdown on each conversation card.
  </Card>

  <Card title="Resolution Time" icon="circle-check">
    The total time from first contact to the conversation being marked **Resolved**. Breached SLAs turn red in the Kanban view so leads can triage immediately.
  </Card>
</CardGroup>

To configure SLA policies, go to **Settings → SLA Policies**, create a policy (e.g., "E-commerce Standard": 5 min first response, 4 hr resolution), and assign it to an inbox or contact segment.

<Warning>
  SLA timers pause when a contact sends a reply (since the ball is in their court), and resume when the next agent message is due. Make sure agents understand this — a conversation isn't "safe" just because the customer replied.
</Warning>

***

## Internal Notes and @Mentions

Sometimes you need to ask a colleague a question without the customer seeing it. Internal notes are private messages threaded directly inside the conversation.

* Click the **Note** tab in the reply composer (or press `N` as a shortcut).
* Type your message and use `@` to mention a specific teammate — they'll receive a notification and see the conversation highlighted in their queue.
* Notes are rendered in a distinct amber background so they're never confused with customer-facing replies.
* Notes are searchable and included in conversation exports for audit trails.

***

## Canned Replies

Canned replies are saved response templates that agents can insert with a single keystroke. They support **variables** that auto-populate from the customer's profile:

| Variable                  | Resolves To                         |
| ------------------------- | ----------------------------------- |
| `{{contact.first_name}}`  | Customer's first name               |
| `{{contact.order_id}}`    | Most recent order ID                |
| `{{agent.name}}`          | Assigned agent's display name       |
| `{{contact.custom.plan}}` | Any custom attribute you've defined |

To create a canned reply, go to **Settings → Canned Replies → New**. To use one in a conversation, type `/` in the reply composer and search by keyword. Select the match and the template inserts instantly, variables already resolved.

***

## Customer 360 Sidebar

Every open conversation displays a **Customer 360 sidebar** on the right. It surfaces everything Soneka knows about that contact without leaving the chat:

<CardGroup cols={2}>
  <Card title="Order History" icon="bag-shopping">
    Last 10 orders pulled from Shopify or WooCommerce, including status, value, and date.
  </Card>

  <Card title="Lifetime Value" icon="chart-line">
    Total spend across all channels, updated in real time from your connected store.
  </Card>

  <Card title="Sentiment Score" icon="face-smile">
    AI-derived sentiment trend from the last 30 days of conversations: positive, neutral, or at-risk.
  </Card>

  <Card title="Tags & Attributes" icon="tags">
    All contact tags and custom attributes, editable inline without leaving the conversation.
  </Card>
</CardGroup>

***

## CSAT Surveys

When an agent resolves a conversation, Soneka can automatically send the customer a one-question CSAT survey via WhatsApp. The customer replies with a number (1–5) or taps a quick-reply button.

* Enable CSAT under **Settings → CSAT → Enable on Resolve**.
* Set a delay (e.g., send 10 minutes after resolution) to avoid surveying mid-flow.
* Results appear in **Reports → CSAT** broken down by agent, team, inbox, and time period.
* Low CSAT responses (1–2) can trigger an automatic re-open or escalation alert.

***

## Keyboard Shortcuts and UI Tips

Speed up agent workflows with these built-in shortcuts:

| Shortcut         | Action                                 |
| ---------------- | -------------------------------------- |
| `R`              | Focus reply composer                   |
| `N`              | Switch to internal note mode           |
| `/`              | Open canned replies search             |
| `E`              | Resolve conversation                   |
| `⌘ K` / `Ctrl K` | Global search across all conversations |
| `⌘ ]` / `Ctrl ]` | Next unread conversation               |

<Tip>
  Enable **Presence Indicators** under **Settings → Team** so agents can see at a glance who's online, away, or at capacity. Combined with **Typing Indicators** and **Collision Detection** (a banner appears when two agents are composing a reply simultaneously), your team avoids duplicated effort entirely.
</Tip>

The **Kanban view** groups conversations by status (Open, Pending, Resolved) and visually highlights SLA breaches in red — useful for team leads doing a morning review without opening individual threads.

***

## Frequently Asked Questions

<AccordionGroup>
  <Accordion title="Can multiple agents reply to the same conversation?">
    Soneka's **collision detection** shows a banner inside the conversation when a second agent opens the reply composer, warning both parties that someone else is typing. Only one reply is sent at a time. We recommend assigning conversations explicitly to a single agent for accountability, but supervisors can always intervene.
  </Accordion>

  <Accordion title="What happens to a conversation when the assigned agent goes offline?">
    If an agent's status changes to **Away** or they log out, any open conversations remain assigned to them but are also flagged in the unassigned queue view. A team lead can reassign them manually, or you can set an automatic re-routing rule under **Settings → Routing → Away Behavior**.
  </Accordion>

  <Accordion title="How do I prevent agents from seeing conversations outside their team?">
    Navigate to **Settings → Teams**, create a team, and toggle **Private Inbox** on. Agents only see conversations routed to their team. Admins always have full visibility across all inboxes.
  </Accordion>

  <Accordion title="Can I export conversation history?">
    Yes. Go to **Reports → Conversations → Export**, choose a date range and inbox, and download a CSV or JSON file containing full message transcripts, agent assignments, note history, and SLA timestamps.
  </Accordion>

  <Accordion title="Does Team Inbox work on mobile?">
    Soneka's web app is fully responsive and works on mobile browsers. A dedicated iOS and Android app is on the roadmap. For now, agents on the go typically pin the Soneka web app to their home screen for quick access.
  </Accordion>

  <Accordion title="Is Team Inbox available on the free Starter plan?">
    The Starter plan includes Team Inbox with up to 3 agents and basic round-robin routing. Skill-based routing, capacity caps, SLA policies, and CSAT surveys require the **Growth plan (\$96/mo)** or above.
  </Accordion>
</AccordionGroup>
