Actions and results
What each Omnichannel button and automatic behaviour does, with worked numbers and what the system refuses.
On this page (29)
Unified InboxConversationInbound pipelineRoutingSLAAI AssistantChatbot / AI autoLead InboxLead AdsConversion RulesLead SourcesQualificationSocial LeadsPostsCalendarCommentsEngagement / Social AnalyticsMedia LibraryBrand AssetsAI Content StudioWhatsApp TemplatesWhatsApp BroadcastsWhatsApp FlowsWhatsApp CallsWhatsApp CatalogOmnichannel DashboardAgent Performance / Response SLALead Analytics / Funnel / Channel DashboardCampaigns / Automation / ROI menus
Unified Inbox
| Action | When | What you do | What happens |
|---|---|---|---|
| Open the inbox | User with omni.inbox.view | Omnichannel > Inbox > Unified Inbox | List loads (max 40), counts on every view, channel and segment; app first-use creates labels, support types, quick replies, SLA policies and the company AI setting |
| Views and counts | Conversations in several states | Click My Conversations, Unassigned, Waiting, Mentions, Starred, Archived; compare with counts | Each list matches its count; archived and spam are not in Unified; Unassigned shows only open/waiting with no owner |
| Search | A conversation from +971501234567 | Type 4567, then the CNV number, then part of the message | Each search finds it within ~0.3 s of typing; clearing search restores the list |
| Advanced filters | Mixed data | Filters: channel WhatsApp + SLA Overdue + Unread only; Apply; then Clear | Only matching rows; filter icon shows active; Clear removes all filters |
| Load more (cursor paging) | More than 40 conversations | Scroll down, press Load more twice | Next 40 each time, no duplicates, ordered by last message newest first |
| Live update | Two browsers: agent A in the inbox; send a test message (Configuration > Accounts > Test message) | Watch A's inbox without refreshing | Within ~2-4 s the conversation jumps to the top with unread badge; an open conversation reloads its thread |
Conversation
| Action | When | What you do | What happens |
|---|---|---|---|
| Open marks read / Mark unread | Unread conversation | Open it; then More > Mark unread | Badge clears on open; Mark unread puts badge 1 back |
| Reply on the conversation's channel | WhatsApp conversation within 24 h, sandbox account | Type a reply, Send | Bubble on the right with author and ticks; preview updated; first response time set; unread 0; audit omni.message.sent |
| 24-hour WhatsApp window | WhatsApp conversation whose last customer message is > 24 h old | Open it; try free text with Via template off | Banner 'The 24-hour WhatsApp window is closed - send an approved template...'; Via template is on; free text refused with the 24-hour message; template send works |
| Send and resolve / Send and wait for customer | Open conversation | Send menu > Send and resolve; on another: Send and wait for customer | Resolve: message sent and status Resolved. Wait: expected status Waiting for customer |
| Internal note and @mention | Colleague username sara in the company | Note tab: '@sara please call him'; Add note | Yellow note bubble 'Internal note · <me>', never sent to the customer; Sara gets 'X mentioned you in CNV-...' and sees it under Mentions |
| Send attachment | Open conversation | Paperclip > choose a 1 MB PDF with caption text | Document bubble with name, size and download; image/video/audio render inline |
| Failed message and retry | Live account with a wrong token (sandbox test account needed) or an inactive account | Send a reply | Bubble 'Not sent: <platform error>' with Retry; Retry resends; other channels unaffected; account last error shown in Accounts |
| Assign / Take / Transfer / Watch / Star | omni.assign for Assign/Transfer | Assign to Sara; More > Take conversation; Transfer to team with note; Watch; Star | Owner changes; Sara notified 'Conversation assigned to you'; Transfer clears owner then re-routes; hand-over note stored internal; watch/star toggle; each writes Recent Activity |
| Status, label, priority, AI mode | Open conversation | Status menu: label Qualified; Status: Waiting internal; More > Priority Urgent; AI off | Header shows the new label/status; priority restarts SLA; AI off disables the assistant panel ('The assistant is off for this conversation.') |
| Resolve, archive, spam, reopen | omni.resolve | Resolve; Reopen; Archive; Mark as spam; Reopen | Resolved stamps resolved time and service status; archive/spam clear SLA and move to Archived/Spam; open notifications for it are resolved; Reopen returns to Open |
| Block / Unblock contact | omni.resolve | Quick Actions > Block Contact; try to reply; Unblock | All the contact's open conversations become Spam; reply refused 'This contact is blocked. Unblock them to reply.'; after Unblock the conversations stay Spam (reopen by hand - note) |
| Create Lead | omni.lead.create; CRM installed | Convert > Create Lead > Create | CRM lead created (source = channel, contact name/phone/email, tags, campaign); 'Created LEAD-... in CRM' with Open in CRM; second time says 'Already linked'; Related Records Leads +1; owner notified 'Lead created from a conversation' |
| Create Opportunity | omni.opportunity.create | Convert > Create Opportunity with value 52000 and close date | Lead created if missing then qualified to an opportunity (CRM qualify); label Qualified; Open in CRM goes to /crm/pipeline |
| Create Quotation / Sales Order | omni.quotation.create; products with prices | Convert > Create Quotation, add 2 lines; then Create Sales Order with lines | Draft quotation linked to the opportunity (customer created if none); Sales order = quotation confirmed and a draft delivery raised; label Customer; Related Records counts update |
| Create Support Ticket / Schedule Follow Up | omni.reply | Create Support Ticket (Warranty, High); Schedule Follow Up (Call, tomorrow) | Ticket TCK-xxxxx in Support Tickets with due +48 h, label Support; follow-up task on the lead (or conversation) and activity 'Follow up scheduled for <date>' |
| Contact panel: outstanding balance | Customer partner with posted invoices; user with document.view / report.view / payment.record | Open the conversation as that user and as a plain agent | Outstanding (and overdue) AED shown only to users with those rights |
Inbound pipeline
| Action | When | What you do | What happens |
|---|---|---|---|
| Inbound message creates contact and conversation | Sandbox WhatsApp account | Configuration > Accounts > Test message: Ahmed Hassan, +971501234567, 'price for 20 laptops?' | New contact (WhatsApp, external id 971501234567), conversation CNV-xxxxx, message in thread, label New Lead (or Customer if the phone matches a partner), SLA 'Due in 5 min', activity 'Conversation started' |
| Contact matching across formats | Contact +971 50 123 4567 exists | Send a test message from 971501234567 and another from 0501234567 style (same last 9 digits) | Same contact and same WhatsApp conversation reused; no duplicate contact |
| Match to existing customer / open lead | Partner with phone +971501112233 and an open CRM lead with email lead@example.com | Test messages from those phone / email | Contact linked to the partner (label Customer, customer type customer) or to the open lead (customer type lead, owner and potential value copied) |
| Webhook dedupe (same body) | Sandbox account without secret (or live with test signature) | POST the same JSON body twice to the account's Callback URL | First: {ok, status processed, stored 1}; second: {status duplicate, stored 0}; Webhooks screen lists the delivery once |
| Message dedupe (same message id) | As FN-011 | POST two different bodies carrying the same messages[].id | Message stored once; second delivery processed with stored 0 |
| Delivery receipts move forward only | Outbound message with external id X | POST statuses: read, then delivered, then sent for X | Status ends 'read' (never goes back); delivered/read times set; failed with error marks failed |
| Customer reply reopens | Conversation Resolved / Archived / Waiting for customer | Send a test message from that customer | Status back to Open, Resolved at cleared, activity 'Conversation reopened by the customer'. A Spam conversation stays Spam |
| Blocked contact is ignored | Contact blocked | Send a test message from that contact | Nothing new in the thread (message dropped); webhook still answered 200 |
Routing
| Action | When | What you do | What happens |
|---|---|---|---|
| Routing rule wins first match | Rules: #10 channel = WhatsApp -> team Sales UAE; #20 language = ar -> team Arabic | Test message on WhatsApp | Team Sales UAE; activity 'Assigned to ...' if auto-assigned; the lower Order number is evaluated first |
| Conditions: contains / is one of / VIP / business hours | Rules with product contains 'laptop|printer', country is one of 'AE,SA', vip = yes, business_hours = no | Send messages that match and do not match | Only matching messages take the rule; 'contains' splits on |, 'is one of' splits on commas; business hours use the Integration Settings hours and UTC offset (default +4) |
| Account default team and contact owner | No rule matches; account has Default team; contact has an owner | Test message | Team = account default; owner = contact's owner ('Assigned to the contact's owner') |
| Round robin / Least busy auto-assign | Team with 3 members, Auto-assign on; strategy Round robin, then Least busy | Send 6 test messages from different numbers | Round robin cycles through members; Least busy picks the member with fewest open/waiting conversations; Manual strategy also cycles (no 'manual' branch - note) |
SLA
| Action | When | What you do | What happens |
|---|---|---|---|
| First-response SLA clock | WhatsApp policy 5 min (default) | Send a test message; wait; reply after 6 minutes | Chip 'Due in 5 min', then 'Overdue 1 min'; reply stops the clock; conversation keeps 'SLA breached'; Response SLA report counts the breach |
| Policy choice: account > channel+priority > channel > default | Account SLA 0, policy WhatsApp+High 2 min, policy WhatsApp 5 min | Set priority High on a new conversation (More > Priority: High) | Due time recalculated to 2 min; account First response SLA (if > 0) overrides all policies |
| SLA warning notification | Notification rule 'SLA about to breach' on | Leave a conversation unanswered until 5 min before due | Owner (or team members / omni.assign holders) get 'SLA about to breach: CNV-...' in the bell; after due 'SLA breached' |
AI Assistant
| Action | When | What you do | What happens |
|---|---|---|---|
| Suggest reply and Use This Reply | omni.ai.use; no AI model (built-in rules) or an AI model set in the AI app | Open a conversation with 'price for 20 laptops'; Suggest Reply; Use This Reply; edit and Send | Suggestion with prices from matching products (only if 'Give approved prices' allowed); engine label shows 'Built-in rules' or the model; AI audit logs proposed + reply_used / reply_edited |
| Summarize, Extract, Qualify, Sentiment, Next Best Action, Translate | As FN-038 | Run each mode | Extract/Qualify fill the qualification (Leads > Qualification shows product, qty, temperature, score); Sentiment sets the conversation sentiment; Next Best Action shows a button that opens the matching dialog; Translate without a model says it needs the AI model |
Chatbot / AI auto
| Action | When | What you do | What happens |
|---|---|---|---|
| Bot and AI auto reply on inbound | Active chatbot for WhatsApp with intent 'price|cost | Our sales team will send prices | Sales, Support | handoff' and hand-off team; another company with AI mode 'auto' | Send a test message 'what is the cost?' | Bot answers with the reply and up to 3 buttons, author = bot name, conversation handed to the team; without a bot, AI auto reply sends only if confidence >= the setting's Auto-reply confidence (default 80) else logs 'held' |
Lead Inbox
| Action | When | What you do | What happens |
|---|---|---|---|
| Add a manual lead and auto-convert | omni.lead.create; CRM installed | Lead Inbox > Add lead: Fatima Ali, fatima@example.com, +971552223344, Source Manual | Row appears under Converted with CRM lead number; CRM lead source 'Manual'; a second Add with the same email links to it (status Duplicate, note 'Linked to open lead LEAD-...') |
| Lead ad webhook to CRM lead with attribution | Facebook account (sandbox) and a lead form with Platform form id 111 and campaign | POST to the account callback {"leads":[{"id":"L1","form_id":"111","fields":{"full_name":"Omar Khan","email":"omar@example.com","phone_number":"+971503334455"}}]} | Submission in Lead Inbox; with Auto-convert on it becomes a CRM lead 'Facebook Lead Ads - Omar Khan' with the campaign; repeat post with the same id is ignored; Lead Ads 'Leads' count +1 |
| Reject / convert later | Form with Auto-convert off | Post a lead; Reject (X); open Rejected; Convert | Rejected with note 'Not a lead'; a rejected submission can still be converted; a converted one -> 'This submission has already been converted.' |
Lead Ads
| Action | When | What you do | What happens |
|---|---|---|---|
| Welcome WhatsApp template after conversion | Form with WhatsApp welcome template (approved, utility) and a WhatsApp account | Post a lead with a phone | A WhatsApp conversation (Waiting for customer, label New Lead) is created with the template sent to the lead; marketing template without opt-in is skipped silently but the lead stands |
Conversion Rules
| Action | When | What you do | What happens |
|---|---|---|---|
| Lead strategies | Test account; change the strategy each time | Create immediately / After first reply / After a price request / After contact details / After AI qualification / Manual only; send test messages | Lead made: at the first message; after the first agent reply; only when a price word appears; when an email or phone appears; when qualification intent = purchase; never automatically. Support-labelled conversations never become leads automatically |
| Per-account override | Two accounts | Set account A = Manual only, company default = Create immediately; send to both | Only account B's conversation gets a lead |
Lead Sources
| Action | When | What you do | What happens |
|---|---|---|---|
| Add sources from the specification | omni.configure | Add one chip, then Add all | Sources added to CRM's source master; the chips disappear; Leads (90 days) counts by source name |
Qualification
| Action | When | What you do | What happens |
|---|---|---|---|
| AI qualify from the board | Open lead conversations | Press AI qualify on a row | Product, qty, location, urgency, intent, temperature (hot >= 70, warm >= 45, cold), score filled; 'hot' moves label New Lead -> Interested |
Social Leads
| Action | When | What you do | What happens |
|---|---|---|---|
| Open CRM lead and chat | Leads from channels | Click a row; click Chat | Row opens /crm/leads/<number> (opportunity: /crm/pipeline/...); Chat opens the conversation |
Posts
| Action | When | What you do | What happens |
|---|---|---|---|
| Create and submit a post | omni.social.create; a sandbox Facebook and Instagram account | New post: both channels, caption, hashtags, 1 image; Save draft; Submit for approval | POST-xxxxx Draft then Pending approval; preview tab per platform; approval steps Marketing Manager -> Brand Review (-> Legal Review if ticked) |
| Author cannot approve; step-by-step approval | Author A, approver B (omni.social.approve) | A presses Approve; B approves each step | A refused 'The author cannot approve their own post.'; each Approve signs the next pending step (name and time shown); after the last step: Approved (or Scheduled if a time is set and 'Publish as soon as approved' is off) |
| Reject returns to draft | Pending post | B: note 'Change the image', Reject | Status Draft; banner 'Returned: Change the image'; author edits and resubmits (approval restarts) |
| Publish now, channel by channel | Approved post on 2 channels, one channel broken (inactive / live with bad token) | Publish now | Each channel has its own status, link and error; post Published if at least one channel succeeded, Failed (notification 'Post failed to publish') if none |
| Schedule and the scheduler | Approved post; scheduler running on staging | Untick Publish as soon as approved; Schedule 10 minutes ahead; wait | Status Scheduled; published by the clock (every 30 s) at the time - expected at the Dubai time entered; Unschedule returns to Approved |
| Editing an approved / scheduled post | Approved post | Change the caption; Save draft | Post goes back to Draft and approvals are cleared (must be re-approved); Pending / Published posts cannot be edited ('A post under review or published cannot be edited.') |
| Duplicate, refresh metrics, archive | Published post | Duplicate; Refresh metrics | Copy '... (copy)' in Draft with the same channels; metrics refresh pulls comments (live accounts) |
Calendar
| Action | When | What you do | What happens |
|---|---|---|---|
| Month / week / list / by campaign / by platform | Scheduled and published posts | Switch the five modes; Previous / Next / Today; click an event | Posts on their day; click opens the composer |
Comments
| Action | When | What you do | What happens |
|---|---|---|---|
| Comment ingest and dedupe | Facebook sandbox account | POST {"comments":[{"id":"C1","post_id":"P1","from":{"id":"u1","name":"Mona"},"text":"Price please?"}]} twice | One Open comment by Mona with sentiment; the second post is ignored |
| Reply, like, hide, assign, tag, close | Open comment | Reply 'Sent you a DM'; Like; Hide; Show; Assign to Sara; Tag 'price'; Close | Replied (reply text shown); Liked disabled after; Hidden/Open toggles; assigned name shown; tag on the button; Closed tab |
| Create lead / ticket from a comment | omni.lead.create | Create Lead; Create Ticket | CRM lead '<Channel> comment - Mona' (button turns 'Lead created'); complaint ticket TCK-... (button disabled) |
Engagement / Social Analytics
| Action | When | What you do | What happens |
|---|---|---|---|
| Metrics per account | Live accounts with analytics (Meta / LinkedIn / YouTube test accounts needed - Blocked if unavailable) | Open Engagement 7 / 30 / 90 days | KPI totals equal the sum of the table; sandbox accounts show 0 (metrics fetched daily from live accounts only) |
Media Library
| Action | When | What you do | What happens |
|---|---|---|---|
| Upload, edit, delete | omni.social.create | Upload 2 images and 1 PDF; open one, add tags 'brand, oct'; Delete an unused item; try to delete one used by a post | Thumbnails and used counts; changes saved; used item refused with the post numbers |
Brand Assets
| Action | When | What you do | What happens |
|---|---|---|---|
| Brand uploads | - | Content > Brand Assets > Upload a logo | Item marked Brand asset and listed only there and in the main library |
AI Content Studio
| Action | When | What you do | What happens |
|---|---|---|---|
| Generate copy | omni.ai.use | Write a Caption, English, Instagram, About 'New Dell laptops for offices'; Generate; Use from the composer | Copy shown (built-in template with #UAE #Dubai when no model); Use fills the caption |
WhatsApp Templates
| Action | When | What you do | What happens |
|---|---|---|---|
| Create, submit, sync, clone, archive | omni.whatsapp.template; WhatsApp account (sandbox; live needs a Meta WhatsApp Business test account) | Create 'promo_oct' Marketing; Preview; Submit; Sync; Clone; Archive the clone | Sandbox: Approved immediately; live: Pending until Sync returns Approved/Rejected (rejection reason shown; 'Template rejected' notification); clone 'promo_oct_copy' Draft; archived hidden from senders |
WhatsApp Broadcasts
| Action | When | What you do | What happens |
|---|---|---|---|
| Consent check per recipient | Marketing installed; audience of 3 with phones: 1 opted in, 1 opted out, 1 no record; Marketing template | New broadcast > Send now | Sent 1, No consent 2; Recipients list shows 'skipped' with the reason per person; without Marketing every marketing recipient is skipped 'Install the Marketing app to record consent...' |
| Utility broadcast to tagged contacts | Utility template; 2 WhatsApp contacts tagged 'vip' (one blocked) | Tags 'vip', {{1}} = {name}, Send now | Only the non-blocked contact receives it with their name; conversation created as Waiting for customer; counts Sent / Delivered / Read / Replies update as receipts and replies arrive |
| Schedule and cancel | Draft broadcast | Set a schedule 10 min ahead > Schedule; then Cancel another scheduled one | Status Scheduled; the clock sends it at the time; Cancel -> Cancelled; a sent one cannot be changed ('Only a draft or scheduled broadcast can be changed.') |
WhatsApp Flows
| Action | When | What you do | What happens |
|---|---|---|---|
| Create and send a flow | omni.whatsapp.template | New flow with 2 screens, Status published; in a WhatsApp conversation send it (API POST .../conversations/<id>/flow) | Flow listed with 2 screens; interactive message in the thread titled with the first screen; a draft flow -> 'Choose a published flow.' |
WhatsApp Calls
| Action | When | What you do | What happens |
|---|---|---|---|
| Start and log a call | WhatsApp conversation; sandbox account | Channel Actions > Start Voice Call; WhatsApp > Calls > open the call > Log call | Call row Requested / out with the agent; activity 'Voice call started'; Log creates a done CRM call task 'WhatsApp call (N min)' and 'Logged in CRM' tick |
WhatsApp Catalog
| Action | When | What you do | What happens |
|---|---|---|---|
| Add, sync, send catalog | omni.configure; products with prices | Add 2 products; Sync to WhatsApp; in a conversation Send Catalog with both | Items Pending then Synced; message 'Catalog: 2 product(s)'; price is the product master price |
Omnichannel Dashboard
| Action | When | What you do | What happens |
|---|---|---|---|
| KPIs match the data | Known test data in the period | Open the dashboard 7 / 30 days; compare counts with the inbox, CRM and Sales | New / open conversations, unread, SLA breaches, leads, opportunities, revenue match; campaign spend 'Marketing not installed' when absent |
Agent Performance / Response SLA
| Action | When | What you do | What happens |
|---|---|---|---|
| Agent and SLA figures | Two agents with replies, one breach | Open both reports | Assigned, resolved, messages, response minutes and compliance per agent; SLA per channel with target and breaches; Due now list opens conversations; Customer rating is blank |
Lead Analytics / Funnel / Channel Dashboard
| Action | When | What you do | What happens |
|---|---|---|---|
| Grouping and funnel | Leads from several sources | Lead Analytics by Source, Platform, Campaign, Channel, Owner, Country, Product; open Funnel and Channel Dashboard | Groups add up to the total; funnel steps decrease with rates; channel rows show response time and leads |
Campaigns / Automation / ROI menus
| Action | When | What you do | What happens |
|---|---|---|---|
| Marketing screens inside Omnichannel | Company with and without Marketing installed | Open each Campaigns, Automation (Rules, Journeys, Triggers, Scheduled) and Analytics (ROI, Attribution) entry and Configuration > Consent | With Marketing: the Marketing screen opens; without: a 'needs the Marketing app' card - never a blank page |