docs
/
Courses — Appmint

Appmint Inbox: Customer Messages and Conversation Management

Watch on YouTube ↗

Video chapters
  1. 0:00 Welcome
  2. 0:13 How the Inbox works
  3. 0:38 Part 1 · One inbox for every channel: explained
  4. 0:51 Part 1 · One inbox for every channel — Conversations, channels, search and Customer 360
  5. 1:35 Part 2 · Handling a conversation: explained
  6. 1:48 Part 2 · Handling a conversation — Take it, team notes, reply and Done
  7. 2:37 Part 3 · Texts: explained
  8. 2:48 Part 3 · Texts — A text closed with Nothing needed
  9. 3:10 Part 4 · Live chat: explained
  10. 3:24 Part 4 · Live chat — Queue, pick, transfer with a note, end chat
  11. 4:08 Wrap-up

Written guide

Review status: Current conversation/reply/Compose routing rechecked on 4 October 2026. Retained captures illustrate the list and separate new-message editor. Detailed reply, AI activity, handling and delivery still need fresh verification.

Overview

Inbox brings customer conversations into one place while keeping each channel identifiable. We'll find a conversation, read it in context, reply from the correct business identity and inspect the AI or human handling associated with it.

The broader Communications Center course covers its other tabs. This course covers Inbox’s conversation workflow and advanced controls; its remaining live verification limits are recorded below.

1. Find the right conversation

Open Inbox → Conversations (the Conversations view in Communications Center). Wait for the list.

Actual conversation list with channel chips, search and New Message. No thread is selected, so the main pane is empty.

The empty pane means you must choose a conversation; the list at left has loaded. The recorded counts and identities belong to a practice organization, not your account. Choose a channel chip to narrow it, or All to see the loaded channels together. Chips and their counts come from the conversation list; the existence of a channel label is not proof its provider is connected for outgoing messages.

Type a name, email, phone number or recognizable recent-message text in Filter contacts, numbers, messages…. This filters the loaded conversation summaries. It searches contact/party fields and latest-message text or subject, not a guaranteed full-text archive of every old message.

Select the matching thread. Confirm the contact, channel badge and displayed From → To identities in its header. A thread is scoped to a contact and channel; the same person's SMS and email should not be treated as interchangeable.

Use Refresh when expecting a newly arrived conversation. If the list reports a load failure, retry it. A successful list with an active unmatched filter is a different state from a failed load.

2. Read the full message before replying

The thread opens toward its newest messages. Inspect the message direction, time and content. Use Load more for older messages where offered; do not assume initially loaded messages are the complete history.

For a long email, use its expand control to open the wide email drawer. Read its full subject, sender, recipients and HTML content there. Close it to return to the same thread.

This is the customer's email, on the email channel. Expanding it lets us read the complete message before we reply.

Times are formatted according to age: recent relative times, then time/day, then dates. Older years are included when needed. Inspect an exact underlying timestamp when investigating a specific historical incident rather than inferring it from a short list label.

If the body or identities fail to load, resolve that before composing. Refreshing a conversation is not evidence that a provider has already delivered a new message.

3. Reply from the correct identity

Choose Reply in the thread header. A reply sheet opens over the conversation. Confirm the channel, recipient and sender before writing; a displayed organization phone label is not itself an available sending account.

For email, check the reply subject and body. For SMS or a social channel, use its channel-specific composer and length limit. Do not paste an email address into a phone recipient field. Enter a controlled recipient as a completed chip when composing a new message; uncommitted text is not necessarily part of the recipient list.

Write a concise reply, choose Send once and inspect the result. Then verify receipt in the controlled customer's actual inbox or device. Refresh the Appmint thread and compare the exact text and identities.

The thread keeps the channel in context. Before sending, we still check who the message is from and where it will go. The recipient-side check confirms delivery.

A success toast or an outgoing record is not proof of recipient delivery. Inspect the message's delivery information when troubleshooting.

Local send recovery repair (4 October 2026): the compact reply sheet now waits for its send result. While it is sending, duplicate submission is blocked; a rejected send keeps your text and selections, and an accepted request clears them. Four focused regressions and a syntax check pass. Fresh browser/provider proof is still pending. If sending fails, read the error and check the saved message before retrying; clearing the editor after acceptance still does not prove recipient delivery.

Use Close reply to dismiss the sheet when done. Do not assume dismissal saves unsent text.

4. Create a new message or save a draft

New Message opens the full Compose route. It now uses the Modern composer, whereas Reply inside an existing conversation uses the compact QuickCompose sheet. These are different paths; do not assume a limitation observed in one applies to both.

  1. Choose New Message and select the required Channel first.
  2. Check From, then enter the controlled To recipient or choose Browse contacts. Confirm the committed recipient and count.
  3. For Email, enter a distinctive Subject and the Email body.
  4. Choose Save draft and wait for the result. Open Messages, locate that exact subject, reopen it and compare sender, recipients and body.
  5. Before sending, review those fields again. Send now on the current Modern form awaits its action result and displays Message queued for delivery after acceptance; the recipient's inbox remains the delivery check.

The separate Modern Compose route used for a new message, not the compact reply sheet.

The full Modern form’s Templates section loads saved organization Message Templates for the selected channel. Selecting a template fills content; it does not necessarily supply customer/order data for every token. The compact reply sheet’s sample-template behavior is a separate implementation, so inspect exactly which template list you opened.

An order template applied in the full Compose form: the selected content is present but tokens remain unresolved and no recipient is selected.

For scheduling, save the parent message and use its supported Schedule section. Reopen the associated central Schedule record and inspect the actual target and time, then verify eventual execution and receipt. The compact QuickCompose timestamp is not equivalent: its ordinary create/save payload does not persist scheduledTime, so do not rely on that quick control as a verified scheduled send.

Where priority, message type or tags are offered, inspect their saved values. Their presence does not prove a provider gives the message delivery priority.

5. Attach files and understand the current transport differences

The compact reply composer offers a local attachment picker and a File Manager picker. The full Modern Compose form has its own attachment/file-reference handling; keep the two paths distinct when testing. For an existing uploaded file, open File Manager, select the intended file and inspect the resulting attachment chip. Confirm its content and accessibility before sending to the controlled recipient.

The ordinary quick send stores File Manager URLs/paths. Its local-file path currently serializes file name, size and type without uploading the actual local bytes in that handler. A visible local filename therefore does not establish an attachable file at the server.

The quick draft path has a related gap: it serializes local-file metadata and does not preserve File Manager picks in the same way as quick Send. Reopen any attachment-bearing draft and verify the attachment rather than assuming the chip was saved.

A separate provider-owned composer path uploads local files and passes URLs to its caller; it can omit failed uploads while still sending text. That behavior must be tested in the actual provider workflow, not borrowed as proof for ordinary Inbox sending.

Check that the recipient can actually open the expected attachment. A filename chip or saved metadata does not establish that the bytes reached the server or the receiving inbox. If sending fails, preserve the draft and inspect the saved message before retrying.

6. Record who is handling the conversation

At the top of the message feed, inspect the handling panel. It attaches to the latest customer message used by the thread and can show Open, In progress, Done or Closed—nothing needed.

Use the take action when accepting responsibility. If another person already has it, read the returned owner/conflict instead of assuming the assignment changed. For an item you are finishing, choose the completion action, enter the required short outcome and save. For a case needing no action, record its reason through the corresponding control. Use release to return responsibility; a completed item can be reopened through the offered action.

Refresh and verify the resulting handling state and history. This is recorded responsibility, not a command that sends a customer reply. A new incoming message can change the latest item whose handling is displayed; recheck after new activity.

Keep a brief example, such as “Sent the requested product link.” Do not turn this feature demonstration into a long lesson on running a fictional business.

7. Inspect the AI assistant's activity

Choose the bot control titled See what the AI assistant did. The AI Activity drawer shows matching trigger, run, tool-call, response and error entries where recorded. Inspect the entry relevant to the customer's message.

For a tool call, compare its name, arguments and result. For a reply, compare the recorded answer with the customer-visible message. For an error, read the actual error before adjusting assistant instructions or channel configuration.

This shows the recorded AI activity associated with the thread. It helps us distinguish an incoming trigger, a tool action and an actual response.

The drawer fetches a limited recent activity set and matches candidate conversation IDs derived from loaded messages. An empty result is not conclusive proof that AI never handled an older conversation. Load the relevant messages, refresh the drawer and inspect the assistant's broader activity when necessary.

Configuring the assistant, its knowledge and channels belongs to AI Employees + AI Assistant. This drawer inspects activity; it is not a replacement configuration screen or a universal live-chat takeover control.

8. Forward, print and delete deliberately

Expand an email and choose Forward. The composer is seeded with a Fwd: subject and the prior message content; recipients are deliberately left empty. Add the intended controlled recipient, inspect what is included and review attachments separately. The forwarding implementation does not establish automatic attachment copying.

Use Print for an individual message or Print conversation for the loaded thread. Inspect the browser print preview and cancel if no print is needed. Conversation print receives the messages currently loaded; load the required earlier history before treating it as a complete transcript. If no print window appears, check popup blocking. This uses browser printing, not Device Hub receipt configuration.

For deletion, use only disposable demonstration messages. Select the individual message's delete action, read its confirmation and confirm that exact item. Refresh and verify its removal. Delete conversation is a broader action scoped to the parties and channel; read the irreversible confirmation and do not assume its displayed loaded-message count limits the server's deletion scope.

Deleting an Appmint message is not recalling a message from an external recipient. Do not promise undo, provider deletion or automatic restoration.

The header's extra menu icon currently has no implemented click handler. It is not an undisclosed collection of archive/assignment features to invent for the tutorial.

Closing and source status

Inbox keeps the conversation, channel and handling visible. Find the right thread, read the full message, reply from the correct identity and verify delivery. Use the AI activity and handling history when you need to understand what happened behind the reply.

Current routing source rechecked: ComposeContent selects ModernComposeForm; conversation-view mounts InboxMessageCreate → QuickCompose for replies. Other source references include app.directory, InboxConversations, ConversationView, InboxMessageView, InboxMessageCreate, QuickCompose, inbox-store, inbox-print, AiActivityDrawer and BaseModelHandlingPanel. Pending live proof: connected-channel receipt, attachment delivery, draft persistence, handling conflicts, AI matching, history pagination and controlled deletion. Current gaps are documented above rather than represented as successful features.

What the illustrations do and do not establish

The retained list and new-message screens identify navigation, fields and template content selection. They do not show a completed reply, receipt, handling conflict, AI activity result, forwarded attachment or deletion. Those captures remain gaps; unrelated website-chat transfer screens are not substituted for email-thread handling. A retained expanded email contained a sign-in token and was deliberately excluded from this reader.

Appmint Communications Center — supporting guide

Review status: Current Compose routing/source checked on 4 October 2026. Retained screenshots illustrate navigation and preparation; no fresh external delivery or live call is claimed. Complete learner replay remains pending.

What you will use

This course covers Appmint Communications Center: conversations, outgoing messages, live chat, calls and the meeting view. We will start with the sender and channel, save and send a message, then show how the other communication surfaces fit. A queued message and a delivered message are separate results.

01. Choose the communication view

Why this matters

Communications Center brings several communication surfaces together. Conversations groups exchanges; Messages lists message records; Compose creates an outgoing message. Live Chat and Dialer keep their own connection requirements.

Steps

  1. Open Communications Center from the CRM navigation.
  2. Start with Conversations for a customer's existing exchange. Use the left-hand search to filter contacts, numbers or message text, then select the intended conversation.
  3. Inspect its identity and channel before replying. An email conversation and a website visitor conversation have different connection requirements.
  4. Use Compose for a new outgoing message, Messages for individual message records, and Live Chat for the visitor Agent Desk. If a destination is not visible in the top row, open More to find it.
  5. Dialer, Meetings and Analytics serve calling, meeting booking and stored activity reporting respectively.

Conversations list with no conversation selected: select a matching row before expecting its messages in the main panel.

The blank center in this capture means no conversation is selected. It does not mean every listed address is a verified connected mailbox or that the message counts prove delivery.

Check the result

A unified view does not imply every provider or account is connected. Use the thread’s actual source and sender.

Communications Center → Live Chat opens the embedded Agent Desk. No active customer means no conversation is selected; the Online badge alone does not prove a customer reply.

*Communications Center → Live Chat opens the embedded Agent Desk. No active customer means no conversation is selected; the Online badge alone does not prove a customer reply.

02. Compose and save an email

Why this matters

The composer selects the channel first, then its appropriate sender and recipient. An email address must not carry into an SMS From field.

Steps

  1. Open Compose, keeping the Modern view selected.
  2. In Channel, choose Email. The form adapts its fields to this channel; review the sender and recipients again if you change it.
  3. Expand From and select the configured sender. An arbitrary typed address does not become an authenticated sending identity.
  4. In To, enter an inbox you control and commit the entry into the selected-recipient list, or choose Browse contacts and select the correct address. Read the selected count and the actual address.
  5. Enter a distinctive Subject, such as Communication check — October, and a short Email body. Use plain fixed text for the first delivery check so missing template data does not obscure a connection problem.
  6. Choose Save draft. Wait for the result, open Messages, locate that subject and reopen it. Check channel, sender, recipients and body before proceeding.

The Modern Compose form: channel, sender, recipients and subject sit beside the email body; templates, attachments and schedule are separate expandable sections.

The captured form has no selected recipient and an empty body. It illustrates where to enter the message, not a ready-to-send example.

Check the result

Some senders use a configured picker; free text still needs a valid available sending identity. Do not imply any typed From address is authenticated.

Current Compose versus older quick-send controls: Communications Center → Compose now routes to ModernComposeForm. Its send handler awaits the result, keeps an inline failure visible, and resets only after a successful queue response. QuickCompose is a separate reply path; it also received a local awaited-send/draft-preservation repair on 4 October. Earlier clear-before-completion behavior must not be presented as the current Modern form’s behavior. The paths still differ in attachment and scheduling handling.

For an attachment, expand Attachments, select the intended file in the picker and confirm it appears in the message. The current Modern form stores selected file references and deduplicates them by path/URL. Reopen the saved draft to check persistence, then inspect the actual attachment in the controlled recipient's inbox after sending. The screenshots here do not verify attachment delivery.

Reuse a template without losing the message context

Expand Templates and select a saved template for the selected channel. Check the resulting subject and body; applying a template changes message content, not its sender or selected customer automatically. If the template expects an order record but this message has no order context, its tokens can remain unresolved.

A saved order template loaded into Compose. Order tokens remain in the content and zero recipients are selected; this is preparation, not delivery.

Use Variables to inspect available personalization. Preview against the appropriate data where supported and use a controlled recipient check before wider use. For building a template and diagnosing missing fields, read Message Templates.

The Compose AI bar can help draft content. Review its output, sender, audience and factual claims before saving or sending. AI assistance is not a substitute for selecting the intended channel and recipient.

03. Send and schedule

Why this matters

Send queues the message for delivery. A saved message can own a Schedule record; its run and recipient still need separate inspection.

Steps

  1. Reopen the saved draft and review From, To, Subject and body. Resolve any missing required fields.
  2. Choose Send now once and wait. If the form shows an inline error, read it and correct the named cause before retrying. Do not assume a temporary pause means nothing happened.
  3. A successful request reports Message queued for delivery. Open the saved message and inspect its delivery history; refresh it because the background delivery state can change after the original response.
  4. Check the recipient inbox for the matching subject and sender. For two-way communication, reply from that inbox and verify the response in the intended conversation.
  5. For later delivery, use a separate draft. Save it first, expand Schedule, configure the future instruction and inspect its owner/target in central Schedule. Use the top Schedule action and wait for the result.
  6. Reopen the schedule and verify the saved time and target. After execution, repeat the message-history and recipient checks. A scheduled confirmation alone does not prove delivery.

Check the result

The source success text is Message queued for delivery. Do not narrate immediate receipt from that notice. Repeat or resend only after checking the first result.

04. Use live chat and AI handover

Why this matters

Live Chat shares the visitor conversation with the agent desk. Keep the visitor and staff views matched while using AI or a human reply.

Steps

Connect the agent session. Open Live Chat, select the controlled visitor, pick up the conversation and send the reply. For AI use the configured route, inspect its response, then Takeover and verify the human message independently.

Check the result

Widget setup, assistant routing and agent availability are prerequisites. A list preview is not the entire conversation history.

Additional detail: the reference sections below cover queue handling, AI takeover and browser/mobile phone controls. Their retained evidence does not establish a new live exchange.

05. Make and inspect a call

Why this matters

Dialer uses the assigned line and current softphone state. Ready or connected is not proof that both sides can hear.

Steps

Open Dialer, Connect as the intended staff identity and choose the assigned From line. Enter the controlled destination, place and end the call, then inspect Recent or the call logs. Receive the controlled return call and check both audio directions.

Check the result

Phone provider and number ownership remain pending setup.

Additional detail: the reference sections below cover queue handling, AI takeover and browser/mobile phone controls. Their retained evidence does not establish a new live exchange.

06. Meetings and communication results

Why this matters

Meetings combines participants, time and a joining destination. Analytics interprets stored communication activity and should be read with the underlying messages or calls.

Steps

Open Communications Center → Meetings. This route opens Schedule a meeting directly. Enter Title, select Customer if relevant, and review Invites, Start Time, End Time, Timezone, Meeting Link, Meeting Info and Hosts. The initial time is the next whole hour for today; verify it rather than accepting a default accidentally. The initial host comes from the signed-in user.

Inspect Meeting Link. The editor requests a video-room URL from the server, but it can still create a reservation without one. For an online meeting, ensure the intended joining URL is present; for an in-person meeting, put the actual joining/location details into Meeting Info. Select Schedule meeting. Wait for Meeting scheduled, then open CRM Calendar or Reservations and inspect the saved title, times, hosts and invitees. Confirm invitation delivery and independent joining separately; the saved reservation is the first checkpoint.

If the editor reports that the organization has no meeting reservation definition, follow Setup → initialization, or create the appropriate definition under Reservations, then retry the meeting after checking that the failed attempt did not create a booking. The editor attempts initialization automatically first. Return to Communications Center → Analytics and compare its activity with the underlying saved communications; do not infer attendance from a scheduled item.

Check the result

The active Meetings route uses CRMQuickMeeting, not the older MeetingList component. Its record is a reservation rather than a public event. Title and start time are required. If room creation fails, a meeting can still be saved without a URL, so a success notice must not be narrated as proof that video joining is available. Invitation and recipient access remain live checks.

Check the connected result

Return to the chapter for the action you need. When you change the configuration, check the matching record, customer view or destination again. A saved setting and a successful external outcome are different observations.

Detailed chat and phone reference

These extended instructions retain earlier researched behavior. Example names identify practice records, not required business names. Confirm your current configuration and independent visitor or phone result; the current revision did not replay these branches live.

Agent Connection, Queue and Visitor Replies

The website is ready; now a person needs to receive its conversation. In Appmint's top header, open Chat and choose Connect chat if it is offline. Wait for Online, then use Open chat or CRM → Chat. Open conversations in the same header menu leads to the email, SMS and social inbox; use Open chat for this website-support exercise.

The full Chat application has Agent Desk, Activity and Logs, plus a Broadcast control. In a compact window some labels become icons; enlarge the window or inspect their tooltips. A Chat surface embedded in Workspace can use a reduced mode without the queue, AI, customers or broadcast. Open the full CRM module when a control from this course is missing.

On Agent Desk, select Available to receive new work. Busy describes an agent handling conversations without new assignments; Away indicates absence from the desk. Those availability states differ from Go offline, which disconnects chat. Setting Available cannot compensate for an Offline connection.

In the independent visitor widget, enter: “I am looking at the Arc lamp. Where are its dimensions?” Send it in the Agents only configuration. Back in Agent Desk, select Queue. Look for the visitor identity, waiting time and any priority, skill or reason displayed with the entry. Use Journey when the recorded customer context will help you understand the request. An anonymous entry may not have a usable email-based journey yet; do not treat the missing identity as a known customer.

Click Pick on the intended entry for this worked example. Pick next is useful when handling the next queued item without selecting a specific person. Confirm that the picked visitor opens in your active conversation and that the queue entry is removed. This assignment check prevents two staff members from assuming they own the same request. If the queue changes between inspection and pickup, read the returned result and refresh before trying again.

In Type a reply..., enter: “I can help. I will send the Arc product page so you can check the dimensions.” Click Send or press Enter. The conversation identifies Agent, Customer and AI messages, with timestamps where available. Check the visitor browser and confirm the exact reply arrives. Ask the visitor to answer “Thank you — I can see your message.” The returning message establishes that we have a two-way exchange, rather than an agent writing into an isolated local thread.

The current customer conversation pane inserts an outgoing message immediately. That optimistic bubble is useful feedback while sending, but it is not independent confirmation of delivery. Keep the visitor check as part of the operation. If a reply remains visible to the agent but never reaches the visitor, verify the connection and the conversation assignment before typing the same text repeatedly.

Use the context panel to inspect the customer's current page, device and location when supplied. Open tabs can indicate multiple connections from the same visitor. These details help you respond to the page the visitor is actually using; they do not establish that the visitor is currently reading a particular message. Ask a short contextual question when the recorded page and the customer's request disagree.

For independent practice, have the visitor ask a second product question. Pick the correct conversation, answer it, and confirm the answer at the visitor. Then switch your status to Busy and explain the difference between remaining connected for the current conversation and advertising availability for new assignments. Return to the desired operating state when the exercise is complete.

AI Chat Configuration, Assistance and Takeover

Use AI for a product question only after its configuration and knowledge match the website. Open the site's Chat → Reconfigure chat and select Yes, use AI. Choose the intended existing assistant or create a named assistant for the site, then finish and confirm the widget's association. In AI Assistant, edit that assistant's instructions, allowed Tools and knowledge sources. The wizard's starter assistant includes a chat channel, a message-received trigger and the transfer-to-agent tool; it is a starting configuration, not a populated product catalogue.

For Cedar & Form, set the purpose to answering product questions from approved information and handing unresolved requests to staff. Provide a knowledge source that actually contains the Arc product details. Add the rule, “If the dimensions are missing, say they need checking; do not infer them from an image.” Keep allowed tools appropriate to this task. Instructions about what the assistant may do are separate from the actual actions made available by Tools.

Open a new controlled visitor conversation with this widget and ask a question that the knowledge can answer. In Agent Desk → AI, use search to locate the visitor or distinctive message text. Open the conversation and read the customer input, the AI response and any reported error. Check the visitor widget as the answer arrives. Compare the factual answer with the configured source. An animated typing indicator or a streamed sentence does not establish that the answer is correct.

While the AI is still the assigned handler, choose Assist AI. Enter a concise instruction such as “The visitor is comparing the Arc lamp with the larger model. Answer only from the linked product information and ask which model they mean if needed.” Click Send to AI, or press Enter; Escape or Cancel closes the input without sending. The intended behavior is to give the assistant additional guidance and have it continue with a customer-facing answer. This is not a private draft generator waiting for you to click a second customer-send button. Review the outgoing answer at the visitor and check that internal instructions are not exposed during the live exchange or on reload before using sensitive internal context.

Now click Takeover. The control takes over from AI or another agent. Inspect the success notice and system message identifying the new handler, then send a human reply. Ask a new visitor question and verify the human remains responsible. This is more explicit than simply typing while AI may still be answering: takeover changes routing and attempts to stop an active AI response.

Do these two demonstrations in this order because Assist AI and Takeover are different operations. Takeover clears the customer's active assistant routing. After takeover, Assist AI may report No AI assistant configured if it cannot resolve the assistant. The reviewed UI does not expose a general Resume AI control even though a backend operation exists. Do not promise that clicking Assist AI automatically restores all future AI routing. Use a separately configured new conversation for a fresh AI test, or an actual exposed resume route only after it has been verified in your installation.

The AI list includes Active, All and Archived, plus Archive and Unarchive actions. Use these to organise the list, and test the result after a refresh. Archiving a list item is different from ending the visitor session or disabling its assistant. Persistence of the AI list's archived state needs particular attention: a change visible immediately in this panel should not be treated as permanently stored until it survives reopening. Use Logs for retained messages when the list does not restore the expected state.

If AI does not answer, check the widget's selected configuration, its saved assistant association, assistant status, the chat channel and the presence of the incoming message. If the visitor is already assigned to a human, that routing is relevant. If an answer is wrong, compare source content and permissions before changing delivery settings. Your practice task is to ask one supported question and one deliberately unsupported question. The checks are a correct answer to the first, an honest limitation or supported handoff for the second, and no competing AI answer after a verified human takeover.

Browser and Mobile Softphone Operation

With the line assigned and calling enabled, open the top-header Phone menu. Use Connect phone to register this browser; an error state may offer Reconnect, Reconnect now or Reset phone. Wait for the reported connection state and inspect the assigned numbers. Open dialer opens the calling interface. If the menu instead says no phone number is set up or calling is unavailable, return to the number and service setup rather than attempting calls from an empty identity.

The browser softphone is shared by the logged-in application, so the dialer does not need to remain open just to maintain a device registration. The browser still needs a valid session and audio permissions. Check the browser microphone permission when prompted. Verify your selected input and output with the controlled call rather than assuming a registration dot proves audible calling.

In the dialer's From selector, choose the Cedar main line. In the Phone tab, enter the controlled recipient's full international number and click Call. The From selection is the business identity requested for this call, while the number you typed is the destination. At the receiving device, inspect the displayed caller number, answer and exchange a short phrase in both directions. End the call with the call control and inspect its recorded result.

Use Recent to find the call just completed; refresh if needed. Use Contacts, search the known customer or colleague and inspect their actual stored number before initiating another call. A missing contact result may reflect absent phone data or a failed load rather than no customer record. Use the view's retry when loading failed. For a first test, manually checking the destination avoids mistaking an old contact number for a telephony failure.

For incoming calling, keep the assigned staff browser connected and have the participant call the business line. The dialer presents Incoming Call, From/To and Accept or Reject. Accept and verify two-way audio. In a separate controlled test, reject or let the call reach its configured fallback and observe that outcome. An incoming ringing indicator alone does not establish that the caller can hear the agent after answer.

At the end of a shift, Phone → Go offline stops receiving calls on this browser. The saved preference can persist across refreshes, so use Connect phone when returning rather than assuming reopening the application restores availability. Other assigned devices may remain registered; test the routing you actually intend.

Appmint Mobile is an alternative staff endpoint. Sign in as the same intended staff member in the correct organisation and open Comms & phone → Phone. Check the assigned business numbers and select From as appropriate for your own or team line. Use Keypad, Recent and Contacts for the corresponding tasks. During a connected call, use the actual mobile Mute or Speaker controls and verify the audible change at the other phone. Go offline and online using the device's available controls to test shift availability.

On Android, a registered calling account can still be disabled. If the app says the phone account is registered but not enabled, choose its Open Settings action and enable Appmint Mobile under Calling accounts, then return to Phone and retry once. If the displayed error instead identifies a denied Phone/phone-number permission, use Android Settings → Apps → Appmint Mobile → Permissions, enable the named permission and return. A “Phone account not registered” error calls for reopening the app's Phone screen to retry registration. Follow the actual error rather than toggling unrelated permissions. These Android controls are not the iOS setup route.

Device registration and native calling support are separate. The current mobile service deliberately skips native voice binding on iPad, so a backend registration indicator there cannot prove native calling works. Test supported device/build permissions, incoming notification behavior and audio on the actual phone before promising background calling. If the browser works and mobile does not, inspect the mobile registration, assigned organisation, permissions and native/push state rather than replacing the business number.

Verification notes