Inboxes & Channels
WhatsApp Web and Cloud, Coexistence, groups/communities Hub, templates/flows/calls, website, email, social, voice and API.
Inboxes and channels overview
Overview In ConversaLabs, an inbox is where conversations from a channel arrive for your team to handle. Each inbox represents one connected channel β for example, a WhatsApp number, your website widget, an email account or a social media page. You can have as many inboxes as you need, each with its own assignment rules, business hours and responsible team. Centralizing every channel into inboxes means your agents handle everything in a single screen, with a unified history per contact, no matter where the message came from. Prerequisites - An active ConversaLabs account. - An administrator role to create and configure inboxes (agents only handle conversations). - For each channel, its specific requirements (a WhatsApp number, a Meta account, an email server, etc.), detailed in each channel's article. Step by step 1. Go to the account Settings area. 2. Open the Inboxes section and start creating a new inbox. 3. Choose the channel type you want to connect (WhatsApp, Website, Email, social, Voice, API). 4. Follow the connection wizard specific to the chosen channel. 5. Assign the agents and teams that will handle this inbox. 6. Adjust the settings (business hours, auto-assignment, greeting, CSAT) as needed. Settings & options The platform offers the following channel types, each with its own article in this category: | Channel | What it's for | | --- | --- | | WhatsApp Web (WazMeow) | Connect a number via QR pairing, no official API | | WhatsApp Cloud (Embedded Signup) | Official number via Meta's API | | Coexistence | Sync history and contacts from the official app into Cloud | | WhatsApp Hub | Groups, communities, channels and status | | WhatsApp Inbox Suite | Templates (HSM), Flows and Calls inside the inbox | | Website / Widget | Live chat on your website | | Email | Email support via forwarding or IMAP/SMTP | | Social | Facebook Messenger, Instagram and TikTok | | Voice | Voice calls and AI calls | | API | Generic channel for custom integrations | Use cases - Run multiple WhatsApp numbers and the website on the same screen, without switching apps. - Split inboxes by team (Sales, Support) with distinct assignment rules. - Connect a number via WhatsApp Web to get started fast, then migrate to the Cloud API later. Tips, limits & best practices - Start with one well-configured channel before connecting all the others. - Name each inbox clearly (e.g. "WhatsApp Sales", "Website Support"). - Some channels and features depend on permission, plan or activation β check the prerequisites in each article. Troubleshooting - I can't create an inbox: confirm your user is an administrator. - I don't see a channel type: the channel may not be enabled for your account β talk to whoever runs the operation. See also - Connect WhatsApp Web via QR (WazMeow) - WhatsApp Cloud with Embedded Signup - Website channel with chat widget - Inbox settings
Connect WhatsApp Web by QR pairing
Overview The WhatsApp Web channel connects a WhatsApp number without using Meta's official API: you pair the number by scanning a QR code with the phone app, exactly like you do with WhatsApp Web in the browser. It's the fastest way to start handling WhatsApp, ideal for personal numbers or small operations that don't yet have an official account (Cloud API). Once paired, every incoming and outgoing message starts appearing in the platform's conversations, with media, delivery/read receipts and real-time replies. Prerequisites - An administrator role to create the inbox. - A phone with WhatsApp installed and the number you want to connect. - The WhatsApp Web channel depends on a connection service enabled for your account (provisioned by the operator). If you don't see this channel type, talk to whoever runs the operation. - The phone needs internet to keep the session alive (just like WhatsApp Web in the browser). Step by step 1. In Settings β Inboxes, create a new inbox and choose WhatsApp. 2. Select the WhatsApp Web provider (QR pairing). 3. Give the inbox a name (e.g. "WhatsApp Sales"). 4. The platform shows a QR code on the setup screen. 5. On the phone, open WhatsApp β Linked devices β Link a device and point the camera at the QR. 6. Wait for the pairing confirmation β the real number is detected automatically and the inbox moves to the connected state. 7. Assign agents/teams and finish. Send a test message to validate. Settings & options - Connection choice during creation: select No proxy (direct connection), Managed connection proxy, or Use my phone. Direct routing is available without providers; proxy routing requires capacity and phone routing requires a configured device. If a selected proxy becomes unavailable, creation reports the failure and does not switch to direct routing. - Features before and after creation: the wizard and Features tab expose the same controls for groups, channels, receiving and publishing Status, presence, history and media, contacts, and call rejection. Receiving Status and publishing Status are independent choices. Initial values use platform defaults; the visible choices apply to the new inbox. Restore platform defaults resets wizard edits. Changes in the Features tab require Save changes and remain after a page reload. - Replies and reactions to your Status: when a contact replies or reacts to a Status you published β from the composer, a Hub broadcast or the phone itself β the message appears in the contact's conversation with the You Β· Status card, showing the caption and thumbnail of the original Status even when WhatsApp does not send the thumbnail along with the reply. Published Statuses are recorded per inbox with the media that was sent and remain available after the 24 hours WhatsApp displays them. No contact or conversation is created for the Status itself. - Disconnect: pauses the connection and keeps the device linked. You can cancel the confirmation without changing the session and reconnect later. If the request fails, the screen shows the error and lets you retry. - Connection states: the inbox shows the session's current state: - Waiting to pair: the QR has been generated and is waiting to be scanned. - Connected: the session is active and the number handles messages normally. - Disconnected: the session dropped temporarily (e.g. no internet on the phone); it reconnects on its own when possible. - Logged out: the session was terminated. The inbox reports the cause β logged out from another device (the normal case when Coexistence is activated on that number), primary device was logged out (phone switch or a number ban) or logged out for unknown reason. In all three the fix is the same: pair again by scanning a new QR on the inbox's connection screen β and nothing is lost. - Re-pair: generate a new QR when the Connection screen confirms that a new pairing is required. A missing, stale, or invalid state observation does not prove that the session expired or dropped. A reconnection request can fail, and only a new connected confirmation shows that the session returned. - Optional exit routes: managed proxy and your own device appear on the Connection tab only when the matching account feature is enabled. If neither is enabled, the inbox uses the server exit and the screen does not show inactive route controls. - Real-time activity: the panel shows when the contact is typing or recording audio. In groups, it shows the participant performing the action. - Media: images, videos, audio, documents and other files can be up to 100 MB on WhatsApp Web. This device-connection limit does not change WhatsApp Cloud limits. Private notes continue to follow the installation's general attachment limit. - History sync: after pairing or reconnecting, large batches are imported incrementally in the background. Your team can keep handling conversations while history appears. - Group contacts (Features tab): two independent options control this β Sync contacts (imports the member list; off by default) and Create contacts for group/community senders (on by default). To keep no participant in your contact list, turn both off. Details β plus the per-inbox ignore list β in Ignore list and contact sync. Session status in the conversation When you open or refresh a conversation for this Web inbox β including when it is the Web member of a hybrid pair β the platform reads the latest available observation. The notice appears on that opening or refresh; it does not promise an immediate alert from a probe or continuous monitoring of a tab that is already open. Only a fresh observation confirming that the session is offline shows βWhatsApp Web has had no active session since {date and time}β, in the account time zone. If the episode started on a different day, the date accompanies the time. While the outage is confirmed, messages that require Web will not be sent. This does not report earlier delivery, resend a message, or confirm fallback or retry through another transport. A missing, stale, invalid, or unavailable observation is an unknown state, not a disconnection. The person handling the conversation sees the context and contacts an administrator; do not recreate the inbox, delete history, or log out to resolve that state. When authorized, the administrator opens the inbox's existing Connection. Requesting reconnection can fail; only a new connected confirmation removes the notice. An administrative email, when sent about a known outage, does not prove recovery, message delivery, or an update to the conversation that is already open. Use cases - Start handling WhatsApp in minutes, with no Meta approval process. - Connect a personal or small-team number that isn't an official account yet. - Operate while the official account (Cloud API) is still being verified. Tips, limits & best practices - Anti-ban: respect WhatsApp's limits. Avoiding mass sends, repeated identical messages and adding many new contacts at once lowers the risk of being blocked. The platform applies a send control (throttle) per number to smooth out spikes. - Keep the phone connected to the internet; if it stays offline too long, the session drops. - Advanced interactive features (buttons, lists) may require a specific license from the connection service. - For high volume and the official green badge, consider migrating to WhatsApp Cloud. Troubleshooting - βNo WhatsApp Web service is availableβ: there is no active online connection instance available to create the inbox. This is not caused by the number or proxy choice; ask the platform operator to check the gateways and try again later. - βThe WhatsApp Web service credentials are invalidβ: the gateway rejected its operational credential. The platform operator must correct it; the account administrator should not change the number or recreate the inbox to work around the error. - The QR won't scan: generate a new QR (it expires) and try again with good lighting. - Dropped to "disconnected": check the phone's internet; the session should come back on its own. - "Logged out" state: the device was removed on the phone β pair again. - It went to "logged out" right after activating Coexistence (Cloud) on that number: this is the expected behavior β activating Coexistence unlinks every companion device from WhatsApp Business. Generate a new QR on the inbox's connection screen and pair again. Nothing is lost: the same inbox is reused β phone number, conversations, contacts and history all stay. - The inbox paired but nothing arrives: the number may be stuck on a pending placeholder because another inbox already holds that number β in the same account (same provider) or in another account. The pairing screen shows the reason. Release or remove the inbox holding the number, then pair again. - Messages don't arrive: confirm the inbox is connected and the number wasn't blocked by WhatsApp. - History is still incomplete after reconnecting: allow the background import to finish; busy accounts can arrive in several batches. Do not re-pair during the import. Products, orders and payments in the conversation WhatsApp commerce messages show their card type, available items, quantities and amounts. Order and payment updates have separate statuses. βReported paymentβ displays what the sender stated in the message; it does not transfer funds or reconcile a charge. Use View details to inspect the reference, adjustments and instructions included in that message. An update without an amount does not inherit an assumed total from another message. Quoted replies identify the order or payment request, and compact thumbnails avoid enlarging low-resolution images. See also - WhatsApp Cloud with Embedded Signup - WhatsApp hybrid inbox: Coexistence (Cloud) + WhatsApp Web - WhatsApp Hub: groups, communities, channels and status - Inbox settings - Inboxes and channels overview
WhatsApp Web calls: enable, video, group, recording and AI
Overview A WhatsApp Web inbox can receive and place voice, video and group calls directly from the platform. The agent answers in an in-browser softphone (accept, reject, hang up, and two-way audio), and every call is logged in the contact's conversation, alongside the messages. Beyond traditional calls, the WhatsApp Web inbox offers two optional features you turn on in settings: recording the call (which plays back inside the conversation) and AI auto-answer, where an assistant answers the call for you. Video and group calls have their own per-inbox switch, so you can release each one at your operation's pace. This page is for administrators: how to enable calls, recording and AI on a WhatsApp Web inbox. For day-to-day usage, see the agent guide for calls. Prerequisites - An administrator role to configure the inbox. - A WhatsApp Web inbox already created and in the connected state (see Connect WhatsApp Web by QR pairing). - The voice/calls feature enabled for your account β it's optional; if the calling tab doesn't appear, confirm the enablement with the operator. - The WhatsApp Web connection service must have calls enabled. When you turn calls on, the session is reconnected so it starts signaling calls β this is normal and takes a few seconds. - For AI auto-answer, the artificial intelligence features enabled on the account. - An up-to-date browser and microphone permission granted by the agent who will answer. Step by step 1. Go to Settings β Inboxes and open the desired WhatsApp Web inbox. 2. Open the Calling tab/section. 3. Turn on Enable calls. When the page shows that the gateway accepted the configuration, click Restart session to apply and confirm. The WhatsApp Web session is restarted (the device stays paired, no QR code is requested) and, within a few seconds, the page reports that calling is applied to the current session. 4. (Optional) Turn on Record calls to log each call's audio in the conversation. 5. Check the Video calls and Group calls switches. Both come on; turn off whichever your operation is not going to use yet. 6. (Optional) Turn on AI auto-answer and choose the call assistant that will answer. 7. Save. Make a test call and confirm it appears in the contact's conversation. Settings & options - Enable calls: turns on voice handling for the inbox. Required to receive and place calls. - Record calls: records the call audio; when it ends, the recording becomes available to listen to inside the conversation itself. - Video calls (calls.video_enabled): releases camera and screen sharing on this inbox. It shows up only on WhatsApp Web inboxes and is on by default. When off, the video button disappears for agents and an attempt to turn the camera on is refused with a notice β audio calls keep working. - Group calls (calls.group_calls_enabled): lets agents start calls on WhatsApp group conversations. It also shows up only on WhatsApp Web inboxes and is on by default. When off, the call button is not offered on group conversations. - AI auto-answer: an AI assistant answers the call automatically. Use it when you want triage or handling without depending on an available human agent. - Agent microphone: each agent grants the browser's microphone permission on the first call. Use cases - Serve customers over WhatsApp calls without leaving the conversation, with history and assignment. - Keep call recordings for review, quality or training. - Let AI answer calls after hours or during demand spikes. - Run a video demo, or bring the customer and their team together on a group call. Usage from calls answered by the bot New calls with a valid identifier record conversation, transcription, speech and summary usage separately when those steps are used. Measured costs attributed to a call appear in the Cost Center and in conversation usage; do not add these views as independent expenses. This corrects the missing usage record for the call turn. Usage-recording failures do not prevent the bot from answering or discard a response, transcription or audio already produced. If attribution cannot safely begin, service continues with conversation-only accounting when available. Automatic retries by the transcription or speech service preserve service but may leave call usage unknown. The platform does not repeat a response on another provider merely to obtain accounting confirmation. Final confirmation requires every step to be recorded and the summary to finish. Partial measurement keeps only the known subtotal, with the complete total unavailable; cancellation, failure or an unconfirmed step leaves closure unknown. Hanging up or waiting a few seconds does not prove complete cost, and a missing amount does not mean zero cost. Calls continue using the configured providers. When a transport cannot safely attribute a step yet, measured usage remains on the conversation and call attribution is incomplete. Calls without a valid identifier also retain conversation-only accounting. History stays as it was: the update does not recalculate or fill in costs for old calls. A call interrupted by a restart may retain unknown cost. For scheduled updates, arrange with operations to finish ongoing calls before changing versions. Tips, limits & best practices - A WhatsApp call holds up to 32 people (you + 31 participants). On larger groups the agent picks a subset of up to 31 to call. - Video needs a browser with WebCodecs (Chrome, Edge or Safari 16.4+) on the agent's computer. Without it, video is unavailable for that agent and audio calls keep running normally. - Turning Video calls or Group calls off does not drop anything in progress: it applies to the next calls. - When you enable or disable calls, wait for the session to reconnect before testing. - Recording: notify participants when your policy requires it; treat recordings as sensitive data. - Keep the paired phone connected to the internet β without an active session there are no calls. - Respect WhatsApp's limits (anti-ban): avoid abnormal volumes of messages and back-to-back calls. Troubleshooting - I don't see the Calling tab: the voice feature may not be enabled for your account β talk to the operator. - I enabled it but no call rings: confirm the inbox is connected and that the session reconnected after turning calls on. - The recording doesn't appear: check that Record calls is on; the recording is only available after the call ends. - The agent doesn't see the video button: check the Video calls switch on this inbox and the agent's browser (Chrome, Edge or Safari 16.4+). - I can't call on a group conversation: check the Group calls switch; if the group has more than 32 people, the agent must select up to 31 participants. - A notice says the session is restarting when I call: a restart to apply calling is under way. Wait a few seconds and call again; no call is started while the session restarts. - AI doesn't answer: confirm the AI features are enabled and that AI auto-answer is on with an assistant selected. Hybrid inbox and configuration confirmation In a hybrid inbox, Calls reads and updates the WhatsApp Web partner even when you opened the logical Cloud inbox. Conversation ownership and permissions remain with the inbox you manage. The call policies saved there (recording, maximum duration and inbound calls) are also copied to the Cloud inbox of the pair, so the two never hold different policies. The pair's AI agent does not replace the agent the Cloud inbox already had: it is recorded beside it, as an inactive copy. Turning calling on or off still applies to WhatsApp Web only. While the pair is on, the number's calls are answered by WhatsApp Web only. If the pair is undone, the Cloud inbox goes back to the AI agent it had of its own (or to none, if it never had one), without you saving anything. If the copied agent still belongs to the account and is different from the Cloud inbox's own agent, the Calls tab shows the copied-agent notice and the Activate copied agent button: only that button makes the copy answer the Cloud inbox's calls. There is no notice when there is no usable copy. Saving the other settings does not activate it. Changing the agent in the selector and saving is the inbox's own choice and discards the copy. The inactive copy does not travel with the account in a duplication or a migration. At the destination, the Cloud inbox keeps the AI agent it had of its own, if that agent was carried over too, or has none; the copy is recorded again only when the call settings of an active pair are saved there. The page distinguishes unconfirmed configuration, pending upload, failure and configuration accepted by the gateway. Accepted by the gateway means the change only takes effect after the session is restarted: use Restart session to apply, then test an inbound and an outbound call. The platform only shows applied to the current session after confirming with the gateway that calling is active on that session. If a call is refused with the notice that calling has not been applied to this session yet, restart the session on this same page. The restart is not offered while a call is in progress on the inbox. Acceptance alone does not establish working audio or recording. Use Retry configuration after failure. Check the installed gateway's capabilities before offering video, groups or AI answering to the team. See also - Agent guide for WhatsApp Web calls - Connect WhatsApp Web by QR pairing - Voice channel: calls and AI calls - Inbox settings
Agent guide for WhatsApp Web calls
Overview When a WhatsApp Web inbox has calls enabled, you handle calls without leaving the platform, using the in-browser softphone. You can accept, reject, talk with two-way audio, and hang up β all inside the contact's conversation. Beyond voice, the platform supports video calls, group calls (on WhatsApp group conversations), screen sharing, in-call reactions and raised hand, and a live panel with the participants' video mosaic β which you can take fullscreen and rearrange by spotlighting whoever is speaking. This page is for agents: how to use calls day to day. To enable calls, recording and AI, see the setup guide. Prerequisites - A WhatsApp Web inbox with calls enabled by the administrator. - Microphone permission granted to the browser (the platform asks on the first call). - Being online on the platform to receive calls. - A headset with microphone is recommended for better quality. Step by step 1. Receive a call: when the contact calls, a ringing call prompt appears with accept and reject buttons. 2. Accept: click Accept. The first time, allow the browser's microphone. 3. Talk: audio flows both ways. The call is tied to the contact's conversation. 4. Hang up: click Hang up to end the call. 5. Reject: if you can't take it, click Reject β the call is logged as rejected. 6. Listen to the recording: if recording is on, when the call ends the recording appears in the conversation and you can play it right there. 7. Call the contact: open the contact's conversation and use the call action to start an outbound call through the WhatsApp Web inbox. 8. Video call: use the video button next to the call button to dial with your camera; on a live voice call, open the live panel and turn the camera on to upgrade to video. 9. Group call: on a WhatsApp group conversation, the call button lets you call everyone (up to 31 participants besides you) or choose participants. 10. Share your screen: during a call, use the screen share control in the live panel β it replaces your camera while active. 11. View fullscreen: in the video panel, use View fullscreen to fill the screen with the mosaic and the controls. Exit fullscreen or the Esc key returns the panel to its normal size; with the panel open, the F key also toggles fullscreen (except while you are typing). 12. Spotlight a participant: on the tile of the person you want to follow, use Spotlight β the mosaic becomes a layout with that person large and the others as thumbnails. The spotlighted tile keeps a highlighted border; use Leave spotlight to return to the grid. 13. Recover a frozen video: if someone's picture freezes while their audio continues, use Recover video on that person's tile β the picture returns on the next keyframe. 14. Ring someone who didn't answer: on a group call, open the Call participants panel. Each person shows their state (On the call, Ringing or Left) and, for anyone not on the call yet, a Ring again action rings only them. Settings & options - Accept / Reject / Hang up: softphone controls during the ringing or in-progress call. - Participants panel: lists who is on the call, who is still ringing and who left, with a per-person ring again action. - Fullscreen and spotlight: two ways of watching the video β fullscreen enlarges the whole panel; spotlight picks one person for the main area. Both are yours alone; nobody else sees the change. - Recording in the conversation: when enabled by the administrator, an ended call leaves an audio to listen to inside the conversation. - Outbound call: start a call from the contact's conversation. - Logging: every call (answered, rejected or missed) is logged in the conversation and the reports. Use cases - Solve a question by voice in the middle of a text conversation, without switching tools. - Return a missed call directly from the contact's conversation. - Review later what was agreed by listening to the call recording. - Follow whoever is presenting on a group call, using spotlight and fullscreen. - Insist with someone who missed the first ring, without ending the group call. Tips, limits & best practices - Video needs a browser with WebCodecs (Chrome, Edge or Safari 16.4+); without it the video button explains why and audio calls keep working. - WhatsApp calls hold up to 32 people (you + 31 participants); larger groups require picking a subset. - If a participant's video freezes while their audio continues, use Recover video on that participant's tile β the picture returns on the next keyframe. - Missed call: if nobody answers (or everyone rejects), it's logged as missed in the conversation; agree with the team who returns it. A call answered on the number's phone (or on another of its devices) is never shown as missed: the bubble reads Call ended Β· Answered on another device of this number, with the duration as soon as the phone reports it. - Duration and end reason: the duration shown on the bubble and in the Calls panel counts from the moment the call was answered (not from the ring) until it ended, using the time WhatsApp reports. If the call ended because of a problem (it rang out; on calls you made, also contact busy, unavailable or declined), the bubble shows the reason in plain words; ordinary endings show no reason. When the connection drops after the call was answered, the bubble shows Call dropped with the reason The call connection dropped and the time you actually talked. - Respect WhatsApp's limits (anti-ban): avoid long sequences of messages and mass calling. WhatsApp has soft limits (for example, around ~240 messages per hour per number) that, if exceeded, raise the risk of being blocked. - Use a quiet environment and a headset with microphone for a clearer call. - Keep the paired phone connected to the internet β without an active session, calls won't work. Troubleshooting - The call doesn't ring for me: confirm you are online and that the WhatsApp Web inbox is connected. - No audio or muted microphone: check the browser's microphone permission and the selected audio device. - I can't call the contact: confirm calls are enabled on the inbox and that the session is connected. - The recording doesn't appear: recording may be off β confirm with the administrator; it only shows up after the call ends. - I don't see the video or group call button: the administrator may have turned Video calls or Group calls off on that inbox. - A participant stays "Ringing" and never joins: use Ring again in the participants panel; if they show up as Left, their call dropped or was ended on their side. - The duration changed a few seconds after the call ended: this is expected when the platform ended the call before the contact hung up β the final value is what WhatsApp recorded. - The call dropped right after I answered and the notice "WhatsApp refused to connect this call on this device; answer it on your phone." appeared: WhatsApp did not accept the browser answering that call, and the bubble stays as Call dropped. Answer on the number's phone and tell the administrator the time of the call. - "The call connection dropped" appears: try calling again; if it repeats, tell the administrator the time of the call. - Fullscreen doesn't enlarge the picture: video keeps its original aspect ratio β on wide screens there are bars on the sides. Spotlighting the participant uses the space better. See also - WhatsApp Web calls: enable, recording and AI - Connect WhatsApp Web by QR pairing - Voice channel: calls and AI calls - Inboxes and channels overview
Call recordings with AI and a human agent
Overview A call answered by Maestro can contain several recording segments, including the AI leg and the human agent leg. Segments appear in call order; a new segment does not replace an earlier one. Older recordings remain available in their legacy format. Prerequisites - Recording enabled by the inbox and robot policy. - A recording notice configured according to the organization's policy. - The Maestro call integration configured by the platform administrator. Step by step 1. Open the conversation and its recorded call. 2. In the recording player, select the segment you want to hear. Segments follow the call order and show their source: AI or Agent. 3. A segment marked Partial preserves audio received before an interruption; it does not mean that the whole call was recorded. 4. If storage is unavailable, wait for recovery. Maestro retains its pending file until verified storage is acknowledged; an upload attempt is not a storage confirmation. Settings & options Recording policy follows the inbox and robot. Human browser uploads keep the size limit they already had. Maestro uploads are divided into smaller, individually identified segments so they can be resent without duplication. Use cases When transferring an AI conversation to a human agent, retain both legs to review the full context. If the connection drops, a partial segment preserves what was actually received, without presenting the rest of the call as recorded. Tips, limits & best practices An older call with an unsegmented recording does not automatically receive new Maestro segments. The original history is preserved; this case requires a specific adoption procedure, without silently renumbering or replacing audio. The whatsapp_call_recording_ready integration event keeps its fields and may occur once per stored segment. Integrations should preserve received URLs and tolerate repeated delivery of the same event. Exactly-once delivery to an external system is not guaranteed. Troubleshooting A segment marked Unavailable has no audio to play yet: choose another segment or try again after the recording is updated. If it stays unavailable, ask the administrator to check the recording policy, storage and Maestro's pending uploads. Do not remove pending files before verified acknowledgement. Do not share keys or webhook bodies in support tickets. See also - WhatsApp Web calls - WhatsApp Cloud call permissions
Ignore list and contact sync on WhatsApp Web
Overview Three tools give you full control over what a WhatsApp Web inbox imports. Two of them live on the Features tab and are independent β they are different contact-creation paths, and turning one off does not turn the other off: - Sync contacts (Features tab): imports the member list of the groups and communities the number belongs to as platform contacts. It ships off by default β no member list is imported unless you ask for it. When enabled, contacts are created with their real name and phone; community participants with hidden data are created as a "Private contact" and completed automatically once their number becomes known. - Create contacts for group/community senders (Features tab): controls the other path β the person who sends a message inside a group or community. It ships on, so no already connected inbox changes behavior. If participants keep becoming contacts even with "Sync contacts" off, this is the option you need to uncheck. With it off the message still arrives and the bubble still shows the sender's name and phone number β only the contact is not created. - Ignore list (Ignored tab): numbers, groups and channels that must never create a contact, conversation or message on this inbox β nor receive outbound sends. Perfect for announcement groups, bot numbers and channels outside your support flow. Prerequisites - Administrator profile. - An existing WhatsApp Web inbox (paired or not). Step by step Control group contact import 1. Open Settings β Inboxes β your WhatsApp Web inbox β Features. 2. Toggle Sync contacts (member list). 3. Toggle Create contacts for group/community senders. 4. Click Save changes. To keep no group participant in your contact list, turn both off. Ignore numbers, groups and channels 1. Open the inbox Ignored tab. 2. To add one entry, type the value in the Add field β the type is auto-detected: - Number/contact: 5511999999999, +55 11 99999-9999 or 5511999999999@s.whatsapp.net - Group: 120363043211123456@g.us - Channel: 120363144038483540@newsletter 3. To add many at once, click Import: paste the list (one per line, or comma-separated) or upload a .txt/.csv file. The report shows how many were created, duplicated and invalid (with a per-line reason). Ignore from the current conversation In a conversation belonging to a WhatsApp Web inbox, open More actions and choose Ignore in this inbox. Before you confirm, the platform tells you whether the current source is already on the list and shows the correct kind β contact, group, channel or community. - The block applies only to the current inbox and to new messages and sends. Existing history, contacts and conversations are not deleted. - If an equivalent rule already ignores the source (for example, through an LID identifier), the shortcut does not create another rule or offer Undo. Use Manage ignored items to review that inbox's rules. - If the shortcut creates a new rule, it can undo only that newly created rule. Other matching rules remain active. - Ignoring a community from this shortcut applies only to the current community; linked groups are not ignored automatically. Settings & options - Types: each entry gets a badge β Contact, Group or Channel. - Search and filter: search by number/ID and filter by type. - Removal: delete entries individually or select several and use Delete selected. Use cases - Keep announcement groups and communities from generating thousands of irrelevant contacts. - Block bot/spam numbers before they create conversations. - Keep news channels out of the support flow. Tips, limits & best practices - Blocking works both ways: inbound messages from an ignored entry are dropped and outbound sends to it are refused with a clear error. - Detection works even when WhatsApp delivers the event with a LID address (anonymous identifier): the platform resolves the LID to the real number automatically. - Adding a rule does not delete existing contacts and conversations β it only blocks new traffic. Remove manually anything you don't want to keep. - Ignoring a community does not ignore its sub-groups β add each group you want blocked. - Both contact options apply only to groups and communities. One-to-one chats, channels and status keep creating contacts as usual β without one the conversation would have no owner. - Turning Create contacts for group/community senders off does not delete contacts already created: it only prevents new ones. Remove manually anything you don't want to keep. - With no participant contact, the click-through to a profile from a group bubble goes away and rules that depend on the sending contact in a group conversation find nobody. To block a specific person, use the Ignored tab. Troubleshooting - An entry was rejected on import: check the format β numbers need country code + area code (8 to 15 digits); groups end with @g.us; channels with @newsletter. - Messages from an ignored number still appear: confirm the rule was created on this inbox (the list is per inbox) and the value matches the real number with country code. - Group contacts keep being created: Sync contacts only covers the member list. Whoever sends a message in the group arrives through a different path β also uncheck Create contacts for group/community senders on the Features tab. See also - Connect WhatsApp Web via QR pairing - WhatsApp Hub: groups, communities, channels and status
When WhatsApp looks connected but nothing arrives
Overview There is a classic silent failure on WhatsApp Web: the session stays up, the panel says Connected, and yet no new message reaches the inbox. The channel goes mute without ever looking sick. Until now the Account health panel could not show this, because its indicators were not measuring delivery: - Last activity was the moment the channel record was last saved β and it gets saved for several reasons that have nothing to do with receiving a message. The timestamp looked fresh even when the channel had been silent for days. - The panel never showed the state of the event subscription, which is exactly the link that can break without taking the session down with it. The panel now has an Event delivery row, Last activity is the last message actually received, there is an amber connected but no traffic warning, and there is a button to reconnect event delivery without leaving the screen. Prerequisites - A WhatsApp Web inbox that is already paired. - Access to Settings β Inboxes β (the inbox) β Account health. - Any agent can read the panel. Only administrators can use the reconnect event delivery button. Step by step 1. Open Settings β Inboxes and pick the WhatsApp Web inbox. 2. Go to the Account health tab. 3. Read these three indicators, in this order: - Connection β is the session up? - Event delivery β is the path to this inbox registered? - Last activity β when did the last real message arrive? 4. If Event delivery is red (Not registered), or if Last activity is amber, click Reconnect event delivery. 5. Wait for the confirmation. The panel refreshes itself with the result in the same action. 6. Ask someone outside (another phone, not the paired device) to send a message to the number and confirm it shows up in the inbox. 7. If the test message arrives, the channel is delivering. If it does not, go to the troubleshooting section. The panel refreshes itself every 30 seconds while the tab is open and shows the time of the last refresh. There is also a manual refresh button. Settings & options Each row answers a different question. Reading them as if they all meant the same thing is what created the false sense of health. | Indicator | What it actually measures | When it deserves attention | | --- | --- | --- | | Phone number | The number paired to this inbox | Shows pending until pairing completes | | Connection | Whether the WhatsApp Web session is online right now | Disconnected, Banned, Reauth required or Pending pairing | | Service reachable | Whether the WhatsApp Web service is responding | No means an infrastructure issue, not a problem with your number | | Logged in | Whether the account has an active, paired session | No means pairing has to be redone | | Ban status | Whether WhatsApp applied a temporary ban to the device | Any value other than clear | | Reauthorization | Whether WhatsApp invalidated the session (e.g. remote logout) | Yes β you must pair again | | Event delivery | Whether the path for incoming events into this inbox is registered | Not registered β nothing will arrive until you reconnect | | Last activity | Date and time of the last message received in this inbox | Turns amber when the channel is connected and has been silent longer than expected | | Connection ID | Internal identifier of this connection | Only useful when contacting support | Colors always follow the same logic: green is normal, amber asks for a look, red is a problem that requires action. The reconnect event delivery button - It re-presents this inbox's delivery address to the WhatsApp Web service. - It is idempotent: click it as many times as you like, with no side effects. Reconnecting twice is the same as reconnecting once. - It does not disconnect the session, does not log out, does not ask for the QR code again, does not erase conversations and does not discard messages already received. - When it finishes, the panel comes back with refreshed values. Use cases - The team reports that "messages stopped arriving", but the screen says Connected. This is exactly the scenario the Event delivery section exists to reveal. - After maintenance, an upgrade or a restart of the WhatsApp Web service. That is when the delivery registration is most likely to be lost without the session dropping along with it. - A weekly check on low-volume numbers. On those numbers silence is common, so a failure takes a long time to be noticed through normal support traffic. - Before escalating a customer complaint. Confirming whether the message arrived at all is the first step, before investigating queues, routing or agent handling. Tips, limits & best practices Be honest about what this warning is β and above all about what it is not. - The warning is based on time without a received message, and nothing else. It measures silence, not integrity. It does not test the connection and does not try to deliver anything to verify. A channel flagged as silent may be perfectly healthy and simply quiet. - The opposite is also true: green only means something arrived recently. It is not a guarantee that the next message will arrive. - Only received messages count. Messages sent by your team do not count. A number used only for outbound campaigns will look silent even while working. - The warning takes about two days. It does not appear after a few minutes of silence, and it only appears while the connection reads Connected. - A brand-new inbox is never flagged. An inbox less than two days old does not get the warning, precisely so it does not accuse a channel that has simply not received its first message yet. - The lookup covers the last 30 days. If there is no message in that window, the panel reports at least 30 days β an honest floor, not the exact date. The silence may be much older. - Normal silence exists. Weekends, holidays, overnight hours, low season and seasonal numbers all produce amber without anything being broken. Treat the warning as an invitation to check, not as a diagnosis. - The definitive confirmation is always the test message. No indicator replaces sending a message from another device and watching it show up. - Reconnecting does not fix everything. It repairs a lost delivery registration. It does not fix a powered-off phone, an unpaired number, an invalidated session or a ban. Troubleshooting | Symptom | Likely cause | What to do | | --- | --- | --- | | Event delivery shows Not registered | The delivery registration was lost (common after service maintenance) | Click Reconnect event delivery and test from another phone | | Connected, Last activity amber, weekend or low-volume number | Normal silence | Confirm with a test message; if it arrives, ignore the amber | | Connected, amber, and the test message does not arrive | Delivery interrupted even with the session up | Reconnect delivery, wait a few seconds, test again; if it persists, contact support with the connection ID | | Connection shows Reauth required | WhatsApp invalidated the session (e.g. logged out from linked devices on the phone) | Pair again; delivery cannot work without a valid session | | Connection shows Banned | Temporary ban applied by WhatsApp | No delivery action fixes this; wait out the period and review sending volume and pace | | Connection shows Pending pairing | The inbox was never paired | Complete pairing by scanning the QR code on the phone | | Service reachable: No | The WhatsApp Web service is not responding | This is not about your number; contact whoever operates the installation | | The reconnect button returns an error | You are not an administrator, or the service is down | Ask an administrator; if it fails for them too, check Service reachable | | Everything green, but the customer swears they sent it | They may have written to a different number, or the sender is on the ignored list | Confirm which number the customer used and review the inbox ignored list | See also - WhatsApp Web with WazMeow - WhatsApp Web ignored list - Inbox settings - Inboxes and channels overview
Managed proxies for WhatsApp Web inboxes
Overview When you choose Managed connection proxy, with the feature enabled, the platform reserves a route before creating the inbox. Provider credentials remain under operator control and are never shown to account administrators or agents. You can also choose No proxy (direct connection) from the start. The inbox then uses the WhatsApp Web connection serverβs IP address. This choice survives pairing and automatic checks; to use a proxy later, explicitly change the route in the Connection tab. Automatic is the recommended option. The platform selects a healthy route using region, provider priority, latency and capacity. After pairing, the phone's country code (DDI) may cause one soft reconnect to refine the region. The assignment remains fixed for the inbox, and residential gateways use a sticky session identity. The flow is fail-closed: if no healthy proxy has capacity, creation is blocked before pairing. The inbox never connects directly without notice. After a later failure, failover tries another approved route; without a replacement, the saved fallback policy decides whether to hold or use temporary direct egress. Prerequisites - The platform operator has added and tested at least one active proxy connection. - The Managed WhatsApp Web proxy feature is enabled for your account. - An account administrator can create a WhatsApp Web inbox. - The phone is available to scan a QR code or enter the pairing code. The only accepted providers are Webshare, Bright Data and a custom endpoint deliberately supplied by the operator. Plan purchase and administration take place outside ConversaLabs. Credentials by provider: - Webshare: an API key can automatically synchronize the static proxy inventory; gateway/backbone mode can use the proxy's native username and password. Use the credential type supported by the purchased connection mode. - Bright Data: use the Zone username, such as brd-customer-...-zone-..., and Zone password from Proxies β Access details. Do not use a REST API key. For HTTP mode, the defaults are brd.superproxy.io and port 44445 (older accounts and the Proxy Manager still use 33335; if a connection test fails on one, try the other). - Custom: the operator supplies the protocol, host, port, capacity/region and, when required, a username and password. Register only controlled and trusted endpoints. Step by step 1. Go to Settings β Inboxes β Add inbox β WhatsApp Web. 2. Enter the inbox name. 3. Choose Managed connection proxy and keep the automatic region or select an available country. To use the connection serverβs IP address, choose No proxy (direct connection). 4. Configure the remaining options and click Create WhatsApp Web channel. 5. If the selected proxy loses capacity, creation reports the failure. Ask the operator to restore the route, or go back and explicitly choose No proxy if you want a direct connection. 6. Once the reservation is confirmed, click Connect WhatsApp and pair by QR code or phone code. 7. After pairing, the platform confirms the DDI and refines the region when needed. This does not create another inbox. Going back to direct egress (no proxy) An inbox already on a managed proxy can go back to exiting through the server IP: 1. Open Settings β Inboxes β your inbox β Connection. 2. On the network route card, choose No proxy (direct egress). 3. Click Use direct egress. The proxy reservation is released and the gateway exits directly. The option stays available even if the proxy feature is later disabled on the account β otherwise the inbox would be stuck on the old route. An inbox routed through your own device cannot be returned to direct egress here: the gateway only tears that route down by deleting the session, which disconnects WhatsApp. Settings & options - Automatic: chooses the best healthy route using geography, priority, health, latency and capacity. - Country selection: requests a region. Another approved region may be chosen when the preferred one is unavailable; without any safe route, creation is blocked. - Fixed assignment: a static or dedicated endpoint remains reserved for the inbox. - Sticky gateway: rotating/residential providers receive a stable session identity for the inbox. - Automatic failover: repeated health failures move the inbox to another approved endpoint. A cooldown avoids rapid route changes. - Saved fallback policy: hold policies retain the route. Only a policy allowing direct egress uses the server temporarily when no proxy has capacity. Use cases - Keep the WhatsApp Web session close to the phone number's country. - Give each inbox a stable dedicated IP or sticky residential identity. - Distribute many inboxes across approved subscriptions without exposing credentials. - Fail over between trusted routes without allowing silent direct egress. Tips, limits & best practices - Prefer stable, dedicated/static endpoints when your provider offers them. Avoid unnecessary region or identity changes. - A proxy improves routing isolation but does not bypass WhatsApp policies, messaging limits or account quality controls. - Never paste provider credentials into the inbox wizard. Account administrators only choose the routing preference. - For Bright Data, the required password belongs to the proxy Zone, not the account password or an API key. - For Webshare, immediately revoke any API key exposed in a screenshot, chat or log. - If you choose a country manually, use the country where the number is normally operated. - Pausing a provider prevents new assignments. Without an approved replacement, affected routes follow their saved fallback policy. - In a hybrid inbox (WhatsApp Web paired with Cloud), the route only applies to traffic leaving through WhatsApp Web. Messages sent through the Cloud API always exit from the server's own IP, whichever proxy is selected. The route is managed on the Connection tab of the pair's WhatsApp Web inbox β the Cloud inbox's Hybrid tab shows the current route and links to it. Troubleshooting - The proxy section is not visible: ask the operator to enable the feature for your account. - No countries are listed: inventory may be synchronizing or have no healthy capacity. To use a proxy, wait for recovery. To use the connection serverβs IP address, explicitly choose No proxy in the wizard. - Creation was blocked because no route was available: this is intentional. The operator must test provider credentials, health, capacity and regions before you try again. - Bright Data asks for credentials: copy the Zone username and password from Proxies β Access details. Do not create an API key for this adapter. - Webshare does not synchronize static proxies: confirm the API key and selected plan. For gateway/backbone mode, check the native username, password, host and port. - A custom endpoint fails: check protocol, DNS/host, port, authentication, capacity and whether the ConversaLabs server can reach it safely. - The session reconnects once after pairing: the phone's DDI differed from the initial estimate and the route was refined. This is expected. - Repeated disconnections: check provider health. Failover uses only approved endpoints; if all are offline, the inbox follows its saved fallback policy. Temporary route recovery Server (temporary fallback) means the saved policy permits the server IP while proxy capacity recovers. It differs from choosing No proxy, which remains a permanent preference until you change it. Recovery retries with increasing intervals, shown in Connection β Exit route, and returns to a managed proxy when one is available. A route change and a connected WhatsApp session are confirmed separately. If the gateway loses a response, the panel shows the desired, applied and observed route while verification is pending. Missing readback remains unconfirmed. Do not remove the inbox or pair another number to correct a temporary route failure: soft reconnection preserves the paired device. A new pairing is needed only when WhatsApp actually ends the authorization or you explicitly request it. See also - Connect WhatsApp Web by QR pairing - WhatsApp hybrid inbox - WhatsApp Inbox Suite
Connect WhatsApp Web through your phone: step by step
Overview This is the hands-on guide to the phone connection for WhatsApp Web: the whole path, in the order it really happens, for someone doing it for the first time. If you would rather first understand what the feature is, what it promises and what it does not do, follow this guide through before changing the route. The work has two halves, and they are usually two different people: 1. Prepare the network connection β once per account. This is whoever owns the Tailscale account: an administrator of this account, or the platform operator when the network is shared by them. 2. Enrol the phone and route the inbox β always an administrator of this account, with the phone in hand. This feature is in a closed development pilot and ships disabled. It has no SLA and is not approved for production. There are two different QR codes in this flow. The first one puts the phone on the network. The second one pairs the WhatsApp session under Linked devices. One does not replace the other. Prerequisites Go through this list before opening the wizard. Every item below has already sunk an entire enrolment three screens away from the real error β checking now costs two minutes. - A Tailscale personal access token β required, not optional. Tailscale publishes no OAuth scope that covers invitations. An OAuth client alone reads devices and creates route keys, but can never invite a phone. Without the token the connection can be saved, the test can partly pass, and enrolling the phone fails later. The token expires in 90 days and has to be replaced before that. - The "Network name (tailnet)" field wants the Tailnet ID, not the display name. The Tailnet ID is the identifier Tailscale uses for API calls. The display name usually works, but contains characters that are easy to mistype β when the screen says the network does not exist, this is almost always why. - The tag has to be authorised in the policy file. The wizard shows a snippet ready to paste into the tagOwners section. Without that authorisation, the keys that put the account on the network are refused, and the failure surfaces far from this screen. - The plan has to allow the people who join the network. Tailscale's Personal plan is free but allowed for non-commercial use only. Business use starts on a paid plan, billed per person who joins the network β one person per phone you enrol. - The phone has to be sharing its exit. Installing the app and signing in is not enough: "Run as exit node" is a separate button, off by default. While it stays off, the device shows up on the network and the screen waits forever. - An account administrator role to create or reconfigure a WhatsApp Web inbox. - The Phone connection pilot enabled for this account by the platform operator. - An Android phone or iPhone with the official Tailscale app. - Access to the email address that will be used to sign in to Tailscale on the phone. - Stable Wi-Fi or mobile data, and preferably the device on power. Where each value comes from: | Wizard field | Where it lives in Tailscale | |---|---| | Network name (tailnet) | Settings β General β Tailnet ID | | OAuth client ID and secret | Settings β Trust credentials (the page once called "OAuth clients") | | Personal access token | Settings β Keys | | Tag snippet | copied from the wizard itself and pasted into the policy file, tagOwners section | When you create the OAuth client, grant only devices:core, devices:routes and auth_keys, and select the tag the wizard shows. Do not grant users: nothing here uses that scope, and it includes user deletion. Step by step 1. Prepare the network connection (once per account) 1. Go to Settings β Inboxes β Add inbox β WhatsApp Web and pick Use my phone as the connection source. 2. If no network is ready, the wizard opens Connect your own network account, with three steps and everything ready to copy. If your operator already provides the network, this block appears as managed and you can skip straight to step 9. 3. Create a Tailscale account, if you do not have one. 4. Add the tag to your policy file: copy the snippet shown and paste it into the tagOwners section. 5. Create an OAuth client with the three scopes listed above and select the tag. 6. Generate the personal access token under Settings β Keys. 7. Fill in Network name (tailnet), OAuth client ID, OAuth client secret and Personal access token, then click Save connection. Credentials are stored encrypted; leaving a field blank keeps the current value. 2. Test the connection before moving on 8. Click Test connection. The test no longer just counts devices: it exercises the three capabilities the enrolment depends on, and shows the result of each under What this connection can do. | Capability | What the test does | If it fails | |---|---|---| | Read the devices on the network | lists the tailnet's devices | check the Tailnet ID and the credentials | | Invite a phone | creates a throwaway invitation and revokes it right after | almost always the missing personal access token | | Create a route key | creates a key that lives 60 seconds and revokes it right after | check the auth_keys scope and the tag in the policy file | The test does not stop at the first failure: it shows the whole picture at once, with the date of the last check. A failed capability does not prevent saving the connection β but enrolling a phone will stop exactly there. Fix it before calling someone with a phone in their hand. 3. Enrol the phone 9. Read and accept the four confirmations about the network, battery and data, IP isolation and the calling limitation. They are required to continue. 10. Enter the email that will be used on the phone and click Create temporary link. 11. On the phone, scan the QR code or open the link. It is shown once only, expires in five minutes and must not be shared. 12. Install or open Tailscale, sign in with exactly that email and accept joining the network. 13. In the app, open Exit Node and tap Run as exit node. If it shows "Disabled" next to it, that is the current state β tapping is what turns it on. The five minutes are for opening the link: once the device is on the network the deadline grows, so you have time to find that button calmly. 14. Go back to the wizard and wait for Phone connected. If more than one device appears, pick explicitly the one you have just enrolled, comparing name and platform. Shortcut. If the phone is already on your network, turn Run as exit node on before creating the link. The wizard recognises the device that already advertises sharing and enrols it straight away, with no clock running. 4. Route the inbox 15. Under Your phones, click Use for this inbox on the chosen device and finish creating the channel. 16. When the WhatsApp QR appears, open WhatsApp β Linked devices β Link a device and do the normal pairing. 17. On an inbox that already exists, the path is Settings β Inboxes β your inbox β Connection β Change route, then Route through this phone. Settings & options - If the device becomes unavailable: the default is Hold messages until the device is back. The alternative, Keep sending through the default exit, keeps the inbox working, but WhatsApp starts seeing the session leave from a different IP while the phone is away β which raises the risk for the number. - One inbox per phone: the pilot's safe limit. The device stays reserved while the inbox keeps an active route. - Pause / Resume / Remove a device: under Your phones. An active route has to be released first; removing a phone means enrolling it again to use it. - Swap phones: Change route β Switch to this phone. The previous route stays in force until the new one is applied. - Check exit: shows the IP the inbox is leaving from right now. If the gateway is too old to answer, the screen says so instead of inventing a result. Taking the inbox off the phone You can now remove the phone route and return the inbox to a managed proxy or to the server's direct exit β without creating a new inbox and without pairing the number again, which is what it used to require. Do it under Connection β Change route, choosing the managed proxy. Before you confirm, know what changes: - The other side starts seeing a different IP. From the next connection on, the session leaves through whatever proxy the inbox already had configured or, when there is none, straight out through the server's internet. To WhatsApp that is a change of origin β and a change of origin weighs on how a number is judged. That is why removal is always an explicit, confirmed decision, never automatic and never a fallback: if the phone drops, the hold policy keeps holding the messages, and the platform does not swap the route on its own. - The inbox reconnects. What is removed is the network path, not the WhatsApp session: a healthy, already-paired inbox stays paired. If the inbox was stuck waiting for a QR code, the old code stops working and a new one appears β scan the new one. An inbox you had deliberately turned off stays off. - Repeating is safe. Ask twice and the second answer simply says there was no route left. If the network does not respond halfway through, try again: the operation is built to be repeated without breaking anything. Use cases - Getting the first phone-routed inbox live without discovering the prerequisites one at a time, by trial and error. - Validating a real residential route using the connection of the person who owns the number. - Swapping the device serving an inbox when the original phone will be off the air. - Returning an inbox to a managed proxy after the test, deliberately, knowing the IP WhatsApp sees changes. Tips, limits & best practices - Write down when the personal access token expires. Ninety days. When it lapses, reading the network keeps working and inviting a phone stops working β the symptom only shows up at the next enrolment. - Test the connection whenever you change any credential. It is the only place that answers "this one can invite" before you call the person with the phone. - Keep Tailscale connected, allowed to work in the background and out of aggressive battery optimisation. - Traffic uses the device's data plan. Check the allowance, roaming and the carrier's policies. - The public IP can change when switching between Wi-Fi and mobile data, through CGNAT or by carrier decision. - The vendor warns that a phone as an exit node is not performant: routing happens in user space, with no kernel optimisation. Measure before promising performance. - Voice and video calls do not go through this route and are blocked in this mode. - Do not use another account's network and do not share the temporary enrolment link. - The feature does not prevent WhatsApp blocks and does not turn the Web connection into an official Meta API. Troubleshooting Every item below starts with the sentence that appears on screen. - "Phone connection is not enabled" β the pilot is off for this account. Talk to the platform operator; there is nothing to fix in the connection. - "Your role cannot manage the phone connection" β this screen needs an administrator of this account. - "Phone connection is not set up yet" β no network is connected. Do stage 1 of this guide, or ask the operator to enable their shared network. - "The connection cannot invite phones" β the stored credentials read the network fine, but no OAuth scope covers invitations. Save a personal access token on this connection and test again. It is the one error whose remedy is exactly that. - "The network name does not exist" β no network answers to the saved name. Use the Tailnet ID from Settings β General, not the display name. - "The network credentials were not accepted" β the credential exchange returned no authorisation at all, which usually means a wrong OAuth client ID or secret. Redo stage 1; if it persists, the operator has the full response in the log. - "The invitation was not created" β the network accepted the request and returned no invitation. No phone was enrolled and nothing was left hanging: try again. - "The invitation came without its link" β the invitation exists on the network, but the one-time link did not come with it and cannot be recovered. Cancel and create another link. - "The device list could not be read" β the network returned the list in a shape this screen cannot interpret. There is nothing to fix in the connection; the operator has the full response in the log. - "The phone is not sharing its connection yet" β Run as exit node still has to be turned on in the app, on the phone itself. Turn it on and click Check connection, or wait for the automatic check. - "The route key was not issued" β without that key the inbox cannot join the network. Try again; if it repeats, check that the OAuth client has the auth_keys scope and that the tag is authorised in the policy file. - "The chosen phone is no longer there" β the device left the network between being picked and being saved. Nothing was recorded: refresh the list and pick again. - "There was not enough time to finish" β the platform stopped before starting a step it could not have finished safely, precisely so nothing was left half-done. Try again; if it always happens, tell the operator. - "The network's answer could not be read" β the network replied with something unreadable. The connection is not wrong; the operator has the status and body in the log. - "We could not identify the cause" β the screen received a failure it does not recognise, so it cannot say what to change. Send the operator the approximate time of the attempt. - "Temporary link expired" β create another one and open it on the phone within five minutes. If the device is already on the network, turn sharing on before creating the link. - "The one-time link has already been delivered" β for safety it is never shown twice. If the phone never opened it, cancel the enrolment and create another link. - "Waiting for the phone to join" that never moves β the device only appears if you signed in to the app with exactly the email you entered. Signed in with a different one? Cancel the link and create a new one with the right email. - The inbox is held or offline β keep the phone online, check Tailscale and exit sharing, then refresh devices. With the hold policy, the platform will not use the direct exit while the phone is unavailable. - I cannot pause or remove the device β first release the inbox that still uses that phone's active route. - I want to go back to a managed proxy β you can: see "Taking the inbox off the phone" above, and confirm knowing that the IP WhatsApp sees changes. See also - Connect WhatsApp Web by QR pairing - Managed proxies for WhatsApp Web inboxes - Inbox settings
WhatsApp Hub: groups, communities, channels and status
Overview WhatsApp Web feature. The Hub works from a number connected via WhatsApp Web (WazMeow, QR pairing). It does not rely on Meta's Cloud API. The WhatsApp Hub brings together, in one place, the WhatsApp features that go beyond 1:1 conversations: groups, communities, broadcast channels and status. From a connected number, you manage these formats directly in the platform β useful for operations that use WhatsApp not only for support, but also for content distribution and relationship at scale. The Hub is especially useful to create and organize groups with automatic rotation (launch cohorts), manage communities, publish to channels and follow status. Prerequisites - A connected WhatsApp number (WhatsApp Web/QR, depending on the feature). - A role with permission to manage the inbox. - The WhatsApp Hub may depend on specific activation/permission β if it doesn't appear, talk to whoever runs the operation. - The limits and capabilities of each format follow WhatsApp's own rules (e.g. maximum group size). Step by step 1. Open the WhatsApp Hub area from the connected number. 2. Choose the format you'll work with: Groups, Communities, Channels or Status. 3. For groups: create/manage groups and, if you wish, use automatic distribution β a smart link directs new contacts to the open group and creates the next one when the current fills up. 4. For communities: organize related groups under a single community. 5. For channels: publish broadcast messages to subscribers. 6. For status: publish and follow the number's status. Settings & options - Rotating groups (launch cohorts): set the capacity and let the platform open a new group automatically when the current one hits the limit, always pointing the link to the group with open spots. - Communities: group related groups by topic, event or cohort. - Badge in the conversation list: conversations of groups linked to a community (including the announcement group) show the Community badge in the conversation list; regular groups show Group and channels show Channel. The badge carries the community name (e.g. "Community Β· Promovaweb") and the side panel tells whether the conversation is the announcement group or a linked group. The "Community conversation" advanced filter lets you save a view with only these conversations. - Channels: ideal for one-to-many communication, with no individual replies in the same flow. - Media: text, images and other attachments supported in the applicable formats. - Mention participants (@): in a group connected via device, type @ in the reply box to open the participant list and mention one or more people β the mention arrives natively on WhatsApp (highlighted, with a notification), just like the official app. - Mentions you receive: when someone mentions a participant in the group, the message shows the person's name (@Maria Silva), not the internal WhatsApp number. This also applies to mentions written in an image or video caption. - Replying to a message (quote): the quoted block shows who was replied to (or "You", for your own message) and a thumbnail of the quoted media. Clicking the quote jumps to the original message, which flashes briefly so you can spot it; if it sits further back in the history, the conversation loads the previous pages until it is found. - Participant role in the group: on group/community messages the sender shows a badge with their role β Admin or Owner (group creator) β next to the name and phone, exactly like WhatsApp. Regular members show no badge. Text formatting (bold, italic, strikethrough, monospace) Text uses WhatsApp's own syntax β what you type is what reaches the device: | You type | It arrives as | |---|---| | *text* | bold | | _text_ | italic | | ~text~ | ~~strikethrough~~ | | ```text``` | monospace | | - item | list | | > text | quote | The broadcast composer has a formatting toolbar and a live preview: what you see there is exactly what the recipient will see. The Ctrl/Cmd + B (bold) and Ctrl/Cmd + I (italic) shortcuts work in the field. Formatting applies to every destination β groups, communities, channels and status β and also to the conversation reply box, campaigns, follow-ups and automated messages. A Mixed broadcast delivers the same formatted text to all destinations. A code block (```) keeps its contents exactly as written: nothing inside it is treated as formatting. A link written as [label](address) arrives as label: address, so the label text is never lost. What each destination accepts Not every content type exists on every WhatsApp destination. The composer warns you before the broadcast is created which destinations would be skipped, and the full table is under "See what each destination accepts": | | Groups | Communities | Channels | Status | |---|---|---|---|---| | Text | Yes | Yes | Yes | Yes | | Image, video and audio | Yes | Yes | Yes | Yes | | Document | Yes | Yes | Yes | No | | Poll | Yes | Yes | Yes | No | | Interactive (buttons, list, carousel, flow) | Yes | Yes | No | No | | Mention everyone | Yes | Yes | No | No | | View once | Yes | Yes | No | No | | Status style (colour and font) | No | No | No | Yes | When no selected destination supports the content, creation is blocked with an explanation β instead of a broadcast that is created and delivers nothing. Status style (colour and font) A text status can carry a background colour, a text colour and one of WhatsApp's fonts. Pick them in the composer (there is a preview of the status canvas) and they apply to both immediate and scheduled sends. Image, video and audio statuses use a formatted caption instead of a canvas style; audio is delivered as a voice message. Use cases - Launches with multiple groups that fill quickly and need to rotate on their own. - Communities of customers, students or partners organized by topic. - Announcement and news channels for a large subscriber base. Tips, limits & best practices - Anti-ban: creating many groups or adding many members quickly raises the risk of being blocked β go at a gradual pace. - Respect the member limits per group and other WhatsApp rules. - Use automatic distribution so you don't have to update links manually every time a group fills. Troubleshooting - The link doesn't open the right group: confirm automatic distribution is active and there's a group with open spots. - I can't create groups: check the permission and the number's connection state. - Feature doesn't appear: the Hub (or a specific format) may not be enabled for your account. - A community shows as "Group" in the conversation: run the Hub sync for the number; the community link is applied to existing conversations on the next sync. - The sync says it is paused by a WhatsApp limit: when WhatsApp limits group queries for the number, the platform pauses both the automatic and the manual sync for that number and allows them to be requested again after the time shown; the pause starts at 30 minutes and grows up to 6 hours while the limit persists. There is no need to reconnect the number or change WazMeow. See also - Connect WhatsApp Web by QR pairing - Inbox settings - Inboxes and channels overview
Global WhatsApp template list
Overview Settings β Templates brings together the synced templates from inboxes you can access. A template from one provider account appears once per language, with the inboxes where it is available. When WhatsApp Web and Cloud form a unified pair, the list uses the shared inbox. It does not repeat the template or inbox name for the two connections. Different provider accounts remain separate, even when templates have the same name. Prerequisites - Access to the WhatsApp or Twilio WhatsApp inboxes you want to browse. - Templates available at the provider and synced with the platform. - Permission to start syncing the selected inboxes. Step by step 1. Open Settings β Templates. 2. Search by message name or content. 3. Filter by inbox, language or content type. 4. Open a preview to review the message and its available inboxes. 5. Select Sync templates to request updates from the provider. Settings & options The count follows your active filters. A unified pair appears once as its shared inbox in the inbox filter. When unification is disabled, the physical inboxes remain separately identified. A WhatsApp Cloud provider account is synced once per request. Inboxes sharing a Twilio provider account may retain separate sync operations. Confirmation that sync started does not mean the provider has completed the update. Use cases - Find the right language version of a message. - Check which inboxes can use an approved template. - Review hybrid inbox templates without counting the same template twice. Tips, limits & best practices Matching names do not prove templates are identical. The platform uses provider account, template identifier and language. It does not merge templates belonging to different provider accounts. Switching accounts or users removes the previous data. Permission changes also invalidate the list. An inbox without confirmed access does not keep its old templates visible. Troubleshooting - A template is missing: check inbox, filters, language and permissions. Start syncing and check again after processing. - The same name appears more than once: check whether the language or provider account differs. - Part of the list did not load: confirmed results remain available; retry loading the inboxes that failed. See also - WhatsApp hybrid inbox - WhatsApp Web
WhatsApp Cloud API with Meta Embedded Signup
Overview Guided setup opens Meta authorization and links the selected number to a WhatsApp Cloud inbox. Creating an inbox requires WhatsApp Embedded Signup Flow enabled for the account on both self-hosted and cloud installations. The installation also needs its Meta app configured. An administrator or authorized native role with the appropriate inbox management scope can run setup. Prerequisites - Permission to manage the inbox within the appropriate access scope. - A Meta app configured for the installation and access to the business managing the number. - WhatsApp Embedded Signup Flow enabled to create an inbox; WhatsApp Manual Transfer enabled for manual transfer. - Recovering an existing inbox uses permission to manage that inbox. Step by step 1. Open Settings β Inboxes β Add inbox β WhatsApp. 2. Choose guided Meta setup and sign in to the business account managing the number. 3. Select the correct WABA and number, then complete the steps requested by Meta. 4. Wait for the platform to confirm configuration. Closing the popup or receiving only part of the authorization does not complete the connection. 5. Send and receive a test message with a contact you control before starting normal operation. Settings & options Reconnect or reconfigure an existing inbox Open Configuration β Reconfigure or use the inbox reconnection notice. Authorized administrators can recover an existing inbox even when new inbox creation or the legacy reconfigure flag is disabled. Do not create another inbox to repair its connection. Select the same number. Recovery preserves the inbox, conversations and the hybrid WhatsApp Web partner. An identifier belonging to a different number is rejected. Coex uses this same guided flow. If you see configuration pending, credentials were saved but the platform has not confirmed all required setup. The inbox remains available for another recovery attempt. This does not mean the connection is complete, and creating another inbox is unnecessary. The message names the step that is still pending β phone number registration or message delivery (webhook) β and the retry is done from the inbox's reconnect banner. Read account health Account Health shows what Meta reports today about the number. The top says when Meta last confirmed the data (Checked with Meta on). Check now asks Meta again; the platform does that at most once every 30 seconds per inbox, and the button stays disabled during that interval. - Sending status: the status Meta computes before each message, considering the number, the WhatsApp Business Account, the business portfolio and the app: Available, Limited or Blocked. When something limits or blocks, the tab shows the affected item, Meta's explanation and what to do, in Meta's own words. The notices Meta attaches to an item also appear, even when the item is available; the most serious is "the app is not subscribed to the message webhook", which means the number does not receive customer messages. The Receiving calls over SIP line shows Not configured when the number does not use SIP, which is normal on the platform. - Attention points: warnings the platform records from Meta's notifications. Number reconnecting after a device change, connection removed, authorization that must be renewed, restrictions in force with their end date, policy violation, conversations with another responder in Conversation Routing, account events or messages delivered to another address, and an inbox connected for more than 24 hours without receiving any message. Connection warnings lead to Go to Configuration. - Phone number: number, display name and its status, platform (Cloud API only, or also the WhatsApp Business app), official business account (blue badge), account mode (Production or Test), number status and code verification. - Capacity and limits: sending speed, messaging limit, quality rating and, for users who may view costs, the estimate of free service messages for the month. See the next section. - Business account: WhatsApp Business Account, portfolio, business verification and account review. - Webhook: the configured address and the webhook fields subscribed in the Meta app: this installation's app for an inbox created with Embedded Signup, or your own app for a manual inbox with an App Secret. If the messages field is not subscribed, the app receives no customer messages and the inbox stays silent: the tab says so first. Without an App Secret, or when Meta refuses the secret, the list becomes a checklist to confirm in the Meta App Dashboard. The tab also lists the apps subscribed to the WhatsApp Business Account and warns when more than one delivers webhooks here. If the app callback points to another system, the tab warns you: Meta always delivers account updates, alerts and template status to the app callback, so this installation stops receiving them. Information Meta did not return does not break the tab: the affected block says so and keeps the last known value. Failure to query the business account does not erase valid phone details. Diagnostics identify the failed stage and provide Try again. An unavailable-object or permissions error alone does not prove the token expired. Check the number, WABA, permissions and reported stage; use Reconfigure when authorization needs renewal. The query time and stale-data notice distinguish retained history from a current successful check. Number capacity and limits Sending speed. How many messages per second Meta accepts for this number, counting messages sent and received. The pace follows the number limit at Meta: 80 messages per second at first, up to 1,000 if Meta upgrades it, and 20 on a coexistence number. Campaigns use up to the limit minus 5. | Level | Meta limit | Campaigns send up to | |---|---|---| | Standard | 80 per second | 75 per second | | High | 1,000 per second | 995 per second | | Coexistence (number also on the WhatsApp Business app) | fixed at 20 per second by Meta | 15 per second | - Meta raises the number to the high level by itself when it qualifies: unlimited messaging limit, at least 100,000 unique customers outside a service window in 24 hours, and Medium quality or better. The platform reads the level every 6 hours and updates it at once when Meta announces the upgrade. - The block shows Confirmed by Meta on with the date and time of the last confirmation. - When Meta has not confirmed the level yet, or the last confirmation is older than 24 hours, the block says so and uses the standard limit of 80. The platform never assumes the high level without that confirmation. - Nothing is reserved for replies: they share the same room as other sends. Sending above the limit makes Meta refuse the message. - A WhatsApp Web inbox has no such limit: it follows its own pacing against bans. Messaging limit. How many different customers can receive messages outside the customer service window in a moving 24-hour period. The limit belongs to the business portfolio and applies to all of its numbers. The tab shows an estimate of the use in the last 24 hours: customers who received a template outside an open service window from the numbers of this account connected to ConversaLabs. Other apps and accounts on the same portfolio are not counted; use the value as a reference, not as Meta's official number. How the limit rises, according to Meta: 1. from 250 to 2,000 after one path: verify the business, have your partner verify it, or deliver 2,000 messages outside service windows to unique customers in 30 days with high-quality templates; 2. after that, Meta raises it one level (10,000, 100,000, unlimited) within 6 hours when message quality is high and at least half of the current limit was used in the last 7 days. Quality rating. High, Medium, Low or No rating, based on how customers received the number's messages in recent days. Meta does not date a quality change; the tab shows the last change the platform observed between two checks. Free service messages. The block uses an estimated monthly allowance of 1,000 service messages per number. Estimated monthly allowance; Meta does not publish this limit in the documentation tracked here. It shows estimated usage and remaining allowance based on Meta's delivery confirmations, which do not confirm that limit, and leads to the Costs tab. It appears only for users who may view WhatsApp costs. Switch to manual setup WhatsApp Manual Transfer must be enabled. This transition supports Cloud inboxes outside Coex: the server checks with Meta that the number is no longer on the Business App, verifies that the new identifiers represent the same phone and refuses an existing hybrid pair. Incomplete health data does not establish eligibility. 1. Configure the webhook in your Meta app before migrating. Meta only delivers the number's messages through an app that has a WhatsApp webhook configured; without one, the migration is refused. In your app's App Dashboard, open WhatsApp β Configuration (or Use cases β Customize β Configuration if the app was created with the WhatsApp use case) and: - in Callback URL, paste the URL the wizard shows for this number; - in Verify token, paste this inbox's verify token, also shown in the wizard, and click Verify and save; - in Webhook fields, subscribe messages (and calls if the inbox receives calls). Also subscribe the recommended ones: account_update, smb_message_echoes, history, smb_app_state_sync, message_template_status_update, message_template_quality_update, template_category_update and user_preferences; - keep the app in Live mode: in Development mode, Meta does not send some webhooks. 2. Run the wizard. Open Start manual migration in the inbox banner and follow the steps: business details (WABA and phone number IDs), a permanent System User access token, App Secret (optional, recommended), Webhook of your Meta app (copy the URL and the token and confirm you set them) and review. 3. The platform checks everything before saving. With the token you entered, it checks with Meta the app that owns the token, that the token does not expire, that it has whatsapp_business_management and whatsapp_business_messaging for this WhatsApp Business Account, and that the app's Callback URL points at this installation β template updates and account alerts always go to that URL. With the App Secret, it also checks that the secret belongs to the app and that messages is subscribed. Even without the App Secret, when Meta reports that the app is not subscribed to the message webhook, the migration is refused. If anything is missing, nothing is saved and the message says what to configure, naming the app. App Secret. Find it in App settings β Basic. With it, the platform configures your app's WhatsApp webhook by itself during the migration (this installation's Callback URL, the verify token and the webhook fields, including messages), and step 1 becomes reference only. If your app already sends its webhooks to another system, nothing is changed: the migration is refused and the message shows the current address. With it, every webhook from your app also has its signature checked; without it, your app's webhooks are accepted without that check, and the Account Health tab warns about it. It is never shown again after saving. Pending transfer. If Meta refuses the setup after the credentials were saved, the inbox shows the Manual transfer pending banner with the cause. When Meta refuses because the app has no webhook subscribed to messages, the banner names the app and shows the URL to configure. Fix it in the App Dashboard and use Retry transfer, entering the token again. With automatic webhook registration on, the retry redoes the setup even when Meta does not answer the preliminary check. If the platform cannot reach Meta at that moment, nothing is changed and the message asks you to try again in a few minutes. 4. Remove the previous app. After the migration, the installation's app is still subscribed to the WhatsApp Business Account and delivers the same webhooks as your app, so they arrive twice. In Account Health β Webhook, the platform lists the subscribed apps and shows the Remove the app action. Before removing it, it checks with Meta that your app is subscribed and delivers this number here, that no other inbox on the same account depends on the previous app, and that delivery was proven: a webhook signed with your App Secret arrived after the migration or, without an App Secret, you confirm that a test message arrived in the inbox. Meta stops delivering to the previous app immediately; you can undo the removal for 72 hours. When the platform can no longer remove the app for you, the notice asks you to remove it from the WhatsApp Business Account in Meta's tools. Use Reconfigure to recover Coex or a hybrid inbox. Manual transfer does not remove a pair or silently replace the number served by the inbox. A number another partner already uses In Meta's account model in force since September 2026, a phone number can no longer be migrated between partners. To bring to the platform a number that another WhatsApp partner serves today: 1. The client shares the WhatsApp account that owns the number with the platform, through this Embedded Signup (choosing that number) or in Meta Business Suite. The number does not move and conversations continue. 2. The previous partner stays on the number until the client removes it in Meta Business Suite. 3. With two partners on the number, Meta routes each conversation to a single responder. Ask the client to open Conversation Routing in Meta Business Suite and set the platform as the primary responder for the entry points the team will handle (for example, Service). 4. Until then, the new inbox may receive no messages, even with the connection completed. Meta's first screen asks for the number before any other choice. If the number is already in use in the WhatsApp Business app, Meta opens the coexistence flow by itself. Use cases - Connect a Cloud number to the platform for the first time. - Renew Cloud or Coex authorization while preserving conversations and history. - Move an eligible Cloud inbox to a manually managed Meta application. Tips, limits & best practices - Confirm the number and WABA before completing authorization. - Preserve the existing inbox during recovery; creating another can separate its history. - Test sending and receiving with a contact you control after setup or recovery. A pending configuration notice requires completing the indicated step. Troubleshooting - Popup cancelled or timed out: start the flow again for the same inbox. - Creation option missing: check the feature and the installation's Meta app configuration. - Cannot recover an inbox: check inbox management permission and its scope. - Configuration pending: retry recovery, confirm the webhook and test actual inbound delivery. - The migration was refused because the app has no webhook: set the Callback URL, the verify token and the messages field in the App Dashboard of the named app and try again. Nothing was saved. - The App Secret was refused: copy it from App settings β Basic of the same app as the token, or leave the field empty. - Messages and events arrive twice after the migration: the previous app is still subscribed. Remove it in Account Health β Webhook. - Different number: select the number already linked to this inbox; recovery cannot replace it. - The inbox was connected but receives no messages: the number probably still has another partner as the primary responder. Ask the client to adjust Conversation Routing in Meta Business Suite. - Sending status Limited or Blocked: follow What to do on the indicated item. The texts come from Meta; after fixing it in WhatsApp Manager, use Check now. - Sending speed Not confirmed: Meta has not confirmed the level in the last 24 hours. Use Check now; meanwhile the standard limit of 80 messages per second applies. See also - WhatsApp conversation routing: Meta Business Agent and other partners - WhatsApp Cloud Coexistence - WhatsApp hybrid inbox
WhatsApp Cloud with a manual webhook from the Meta App Dashboard
Overview Besides Embedded Signup (Meta's guided login), the WhatsApp Cloud channel can also be connected in manual mode: you provide the credentials of your own Meta app (API key, Phone Number ID and Business Account ID) and configure the webhook directly in the Meta App Dashboard (WhatsApp β Configuration β Webhook). This mode is ideal when you already own a Meta app, need full control over the webhook subscriptions, or use a token with limited permissions. The platform provides a single app-level callback URL that serves all your numbers and WhatsApp Business Accounts (WABAs): each event is routed automatically from the payload contents. A per-number URL is also available if you prefer to configure numbers individually. Prerequisites - An administrator profile on the platform. - A Meta app with the WhatsApp product enabled and access to the App Dashboard. - The number's API key (permanent access token), Phone Number ID and Business Account ID. - Optional but strongly recommended: the Meta app's App Secret (App settings β Basic), used to validate the X-Hub-Signature-256 signature of every incoming webhook. Step by step 1. In Settings β Inboxes, create a new inbox and choose WhatsApp. 2. Select the WhatsApp Cloud provider (manual mode, without the Meta login). 3. Fill in the inbox name, phone number, Phone Number ID, Business Account ID and API key. 4. (Recommended) Provide the App Secret to enable webhook signature verification. 5. Choose whether the platform should register the webhook automatically via the Graph API. Disable it if you prefer to configure the webhook manually in the Meta App Dashboard. 6. After creating the inbox, the screen shows the callback URL (app-level and per-number) and the verify token, with copy buttons. 7. In the Meta App Dashboard, open WhatsApp β Configuration β Webhook, paste the callback URL and the verify token and click Verify and save. 8. Subscribe the webhook fields: at least messages; we recommend also subscribing the template, number quality, account and security fields to receive administrative events in real time. 9. Send a test message to the number and confirm it lands in the inbox. Settings & options - Account Health tab (inbox Settings β Account health): shows the manual webhook panel with the URL, the token (masked, with reveal/copy), the registration status, the signature verification (HMAC) state and the registration mode (automatic or manual). - Re-subscribe: re-registers the webhook via the Graph API (available when auto-register is on). - Rotate token: generates a new verify token. In manual mode, paste the new value into the Meta App Dashboard after rotating. - Recent account events: the same tab lists the latest administrative events received β template status, number quality, account alerts, business capability and security β with severity badges. Use cases - Companies with their own Meta app that don't want (or can't) use Embedded Signup. - Operations with multiple numbers and WABAs on the same Meta app: a single callback URL serves them all; multi-entry event batches are processed in full. - Tokens with limited permissions (without whatsapp_business_management): with auto-register disabled, the platform never calls Meta's subscription APIs. Tips, limits & best practices - Always configure the App Secret: without it, webhooks are accepted without signature verification (the platform logs a warning). The installation operator can enforce signatures on every inbox globally. - Subscribe the template and quality fields in the App Dashboard: template statuses (approved/rejected/paused) then reflect on the platform in real time, without waiting for the periodic sync. - If the Meta Dashboard rejects a webhook field, save with a smaller set β the indispensable minimum is messages. - When rotating the token with auto-register disabled, remember to update the value in the Meta App Dashboard, otherwise the webhook verification fails on the next validation. Troubleshooting - "Verify and save" fails on Meta: check that the callback URL was copied in full and that the verify token matches exactly what the platform shows (no spaces). - Messages don't arrive: confirm the messages field is subscribed in the App Dashboard and the number isn't listed as inactive by the operation. - Webhook flagged as mismatched in the Account Health tab: the URL registered on Meta differs from the expected one β use Re-subscribe (auto-register) or fix the URL manually in the App Dashboard. - Administrative events don't show up: the corresponding fields (templates, quality, account, security) must be subscribed on the Meta app's webhook. See also - WhatsApp Cloud with Meta Embedded Signup - WhatsApp Cloud Coexistence - WhatsApp Inbox Suite: Templates, Flows and Calls
WhatsApp Cloud call permission: edit the message and track the answer
Overview WhatsApp Cloud feature. Call permission is a Meta requirement on the WhatsApp Cloud (official API) channel. WhatsApp Web has no such step β there the call goes out directly. Before you can call a contact over WhatsApp Cloud, Meta requires the contact to allow receiving calls. When the agent clicks the call button and the contact hasn't allowed it yet, the platform opens the Request call permission dialog, where the agent edits the text the contact will receive, with a live preview of the WhatsApp permission card and a 1,024-character limit (Meta's limit). The message sent is mirrored into the conversation as a real outgoing message β the agent sees exactly what was sent and its delivery status, just like any other message. The contact's answer is fully recorded: accept (temporary, with an expiry date, or permanent) and also decline. In both cases the platform posts a line in the conversation and notifies the agent in real time. Prerequisites - A connected WhatsApp Cloud inbox. - Calls enabled on the inbox (Settings β Inboxes β (inbox) β Calling). - The contact with a valid WhatsApp number in the conversation. - The account language set in Settings β Account β Language β it defines the default text the contact reads. Step by step 1. Open the contact's conversation and click the call button. 2. If the contact already granted permanent permission, no request is sent β the call goes out directly. 3. Otherwise the Request call permission dialog opens with a message already filled in. 4. Edit the message explaining why you want to call. The counter shows usage of the 1,024-character limit, and Preview shows the card as the contact will see it ("Can {your business} call you?"). 5. Click Send request. The message appears in the conversation as an outgoing message, with delivery status. 6. Wait for the answer. When the contact replies, you get a notification and the conversation records the outcome. 7. If they accept: the status changes to allowed and you can use Call now. 8. If they decline: the conversation records the decline and you are free to send a new request immediately, without waiting the 5 minutes. Settings & options - Default text follows the account language: the suggested text follows the account language (Settings β Account β Language), not the agent's dashboard language. That way an agent running an English dashboard doesn't send an English request to a Brazilian customer. - Per-inbox default: in Settings β Inboxes β (inbox) β Calling, the Call permission request message field sets that inbox's default text. When filled, it wins over the language default. Leave it blank to use the default. - Edit at send time: the dialog's text can be changed on every request β the default is only the starting point. - 1,024-character limit: the platform refuses a longer text instead of truncating it, so your message is never sent half-finished. - Permission status shown in the conversation: | Status | Meaning | |---|---| | Calls not allowed | The contact hasn't allowed calls yet (or declined). You must request it. | | Calls allowed until (date) | Temporary permission β expires on the date shown. | | Calls always allowed | Permanent permission β you can call without requesting again. | - The permission belongs to the contact, not to the conversation: a new conversation with the same contact already knows about the permission. - WhatsApp button in the composer: on Cloud inboxes it is always available, even with no approved templates. With no templates it opens straight on the Interactive tab β the Flows, Interactive and Catalog tabs stay reachable. Turning calling off and the "Also turn off calling on Meta" option When you switch off Enable WhatsApp Calling on the Calls tab, the platform asks for confirmation. By default, turning calling off applies only on the platform: agents stop placing and receiving calls, but calling stays enabled on your WhatsApp Business account at Meta, and the contact may still see the call button in WhatsApp. The confirmation includes the Also turn off calling on Meta option, which is unchecked by default. Check it when you want Meta to switch calling off for the number as well, so the contact no longer sees the call button. - The platform turns calling off here first and only then sends the change to Meta. - If Meta rejects the change (for example, because of an expired token or a missing permission), calling stays off on the platform and you see a warning with Meta's reply. In that case, try again later or turn calling off directly in Meta Business Manager. - The option only appears on WhatsApp Cloud inboxes. WhatsApp Web inboxes never change anything on Meta. - Hybrid number (Coexistence + WhatsApp Web): the confirmation shows a warning. If you also turn calling off on Meta, calls may stop reaching the WhatsApp Business app on the paired phone. Calls through the WhatsApp Web connection are not changed by this option. - To receive calls again, switch Enable WhatsApp Calling back on: the platform re-enables calling on Meta too. On a hybrid number it does not: switching calling back on here does not re-enable it on Meta, so re-enable it in Meta Business Manager. Use cases - Explain the reason for the call ("let's confirm the delivery address for your order") to increase the chance of acceptance. - Standardize the text per operation or brand in the inbox field, keeping the company's tone of voice. - Continue serving by message when the contact declines the call. - Call directly, with no request at all, for contacts who already granted permanent permission. Tips, limits & best practices | Limit | Value | |---|---| | Message length | 1,024 characters (Meta's limit) | | New request in the same conversation | 1 every 5 minutes | | Per-contact quota | Set by Meta β once spent, you must wait for the window to roll | - Write a short and specific text: the contact reads this message right above the permission card, and a clear reason increases acceptance. - A decline unblocks the next request right away, but that's no invitation to insist β respect the contact's choice and continue by message. - Watch the expiry date of a temporary permission: after it, you have to request again. - Meta's quota is per contact. Firing requests back to back burns the quota and blocks even the customer who would have accepted. - WhatsApp Web has no permission step β if your operation uses both channels, don't mix up the flows. Troubleshooting - "Request already sent": there is a recent request in this conversation. The dialog tells you in how many minutes you can send another β or wait for the contact to answer. - "The permission request limit for this contact has been reached": Meta's quota for that contact is spent. Re-sending won't help; wait for the window to roll. - "The permission request message is too long": shorten the text to 1,024 characters and send again. - "This contact has already allowed calls": nothing was sent because it wasn't needed β just call. - The contact declined: the conversation shows the decline and the status goes back to Calls not allowed. You can request again later. - I don't see the call button: confirm the inbox is WhatsApp Cloud and that calls are enabled on the inbox's Calling tab. - The request went out in another language: the default text follows the account language β adjust it in Settings β Account β Language or fill in the inbox default. - The message doesn't show in the conversation: the message is only posted after Meta confirms the send; if the request failed, an error is shown instead. - I turned calling off, but the contact still sees the call button: the default disable applies only on the platform. Turn calling off again with Also turn off calling on Meta checked, or turn it off in Meta Business Manager. - A warning says Meta did not accept the change: calling is already off on the platform. Read Meta's reply shown in the warning, fix the cause (token or permission), and try again. See also - WhatsApp Inbox Suite: Templates, Flows and Calls - WhatsApp Cloud with Embedded Signup - WhatsApp Web calls: enable, recording and AI - Voice channel: calls and AI calls
Twilio Voice: calling and historical recordings
Overview The platform supports native Twilio calls in every installation. The account's Twilio Voice capability controls starting calls. Historical calls remain available when that capability is disabled. Prerequisites An administrator enables Twilio Voice for the account and configures a Twilio inbox with a phone number, valid credentials and calling enabled. Provider configuration must finish before a new call can start. Agents need access to the inbox and microphone permission in their browser. Step by step 1. Open the contact's conversation and use its call control. 2. Accept or start the call and grant microphone permission when requested. 3. End the call using the active call control. 4. Open Calls in the sidebar to review the outcome, agent, inbox and conversation. Play a recording when one is available. Settings & options Filter history by activity, inbox or page. Administrators can also filter by agent. Disabling the calling capability prevents new calls while keeping finalization and token renewal for the same agent's active call available. Use cases Review missed calls, resume a conversation after a call, or listen to an existing recording after disabling an inbox's calling capability. Tips, limits & best practices History uses pages of 25 calls. Ordinary agents see only calls they accepted in conversations they can still access. Administrators and authorized report managers can review the account's history. Removed recordings do not produce playback links. Troubleshooting If starting a call shows an unconfirmed outcome, use the call control again to check the existing attempt. A lost response does not mean the call failed. The platform retains the attempt and permits a new call only after its outcome is known. If the call ended during recovery, check its history; it will not be started again automatically. Ending an active call remains available during configuration recovery, provided the credentials still allow the provider outcome to be confirmed. Resolve any failure to confirm termination before considering the call ended. If provider reconciliation is pending, open the existing inbox's settings and complete recovery; do not create a duplicate inbox. Missing microphone permission prevents browser audio. If a historical recording has been deleted, reloading the page will not restore it. See also - WhatsApp Cloud call permission
WhatsApp Cloud Coexistence: history, contacts and echoes
Overview Coexistence lets a number connected via the WhatsApp Cloud API keep being used also in the official WhatsApp Business app on the phone, at the same time the platform handles conversations. It's the "coexistence" between the app and the API: what happens on one side shows up on the other. In practice, Coexistence does three things: - Syncs the history of existing conversations from the app into the platform. - Syncs the contacts from the app into the platform. - Reflects echoes β messages an agent sent from the official app also appear in the platform's conversation, keeping a complete, single history. Activation unlinks companion devices. When you activate coexistence, Meta unlinks every companion device from WhatsApp Business β including a WhatsApp Web inbox that was already paired on that number. So always connect Coexistence first, wait for Meta's synchronization (it can take up to ~24 hours), and only then connect/pair WhatsApp Web. Re-pairing loses nothing: the same inbox is reused β phone number, conversations, contacts and history all stay. Prerequisites - A WhatsApp Cloud inbox already connected (via Embedded Signup). - The number must be in coexistence mode enabled on Meta for that number. - Coexistence is a WhatsApp Cloud feature β it does not apply to WhatsApp Web (QR). - In some environments, syncing must be enabled by the operator. Step by step 1. Connect (or confirm) the WhatsApp Cloud inbox via Embedded Signup. 2. Make sure the number has coexistence enabled on Meta. 3. After connecting, the platform starts syncing the history of recent conversations. 4. The contacts from the official app are imported into the contacts base. 5. From then on, messages sent from the official app appear automatically in the conversations (echoes), and everything the team sends from the platform also reaches the app. Settings & options Inbox photo The business profile photo fills an empty Cloud inbox avatar after signup, during periodic health checks, or when viewing the profile in Account Health. In a unified hybrid inbox, the visible identity is the Cloud inbox. An existing inbox photo is preserved. Synchronization runs in the background; if Meta provides no image or the download fails, the channel icon remains. - History: the sync brings the recent conversations available in the app; very old messages may not come, depending on what Meta makes available. - Contacts: the import creates/updates contacts from the WhatsApp account's address book. Anyone who hides the phone number behind a username arrives identified by their business-scoped WhatsApp ID (BSUID), in the history and in the address book. The same contact is not duplicated once they start chatting. The username is stored on the contact's WhatsApp profile and never replaces their name. A contact that arrived without a name and was named after the ID shows the profile name as soon as WhatsApp sends it. - Echoes: messages sent from the phone are marked as outgoing in the conversation, preserving the operation's authorship. - Media: synced attachments are also available in the conversation. Use cases - Keep handling urgent cases from the phone without losing the record in the platform. - Migrate from a 100% official-app operation to the platform without losing the history. - Keep a hybrid team (some in the app, some in the platform) with a unified history. Tips, limits & best practices - The history sync is one-time (it happens at connection/activation) β new messages arrive in real time after that. - For day-to-day work, prefer handling from the platform to benefit from assignment, automations and reports. - Since history depends on what Meta makes available, treat it as best effort, not a complete backup. - Meta's initial synchronization can take up to ~24 hours; only consider the inbox ready once it is receiving and sending normally. - Open the WhatsApp Business app at least once every ~14 days on the number's phone. Without that, coexistence loses health and may stop syncing. Troubleshooting - History didn't appear: confirm coexistence is enabled on Meta for the number and wait for the sync to finish. - App messages don't appear (echoes): check that the number is truly in coexistence and the Cloud inbox is connected. - Missing contacts: the import reflects the address book available at sync time; new contacts appear as they message you. - The send failed with "WhatsApp replaced their ID": when a contact changes their phone number or username, Meta replaces their business-scoped WhatsApp ID (BSUID), and the old ID stops receiving messages. The platform links the new ID to the same contact as soon as Meta reports the change. If the new ID already belongs to another contact, or the report has not arrived yet, the platform refuses the send before it goes out, and nothing is sent. Wait for the contact's next message, or merge the duplicate contact, then try again. - The WhatsApp Web inbox went to "logged out" after activating coexistence: this is the expected behavior β activation unlinks every companion device. Generate a new QR on the WhatsApp Web inbox's connection screen and pair again; nothing is lost. - The Cloud inbox disappeared from the pairing list after reconnecting through Meta: fixed. Reconnecting through Embedded Signup now records the same coexistence marker that creation already recorded; it used to be lost on reauthorization and the inbox stopped being offered for pairing. Any inbox in that state repairs itself on its next reconnection β nothing needs to be recreated. - The pairing list does not show the inbox I expected: the list now offers only what pairing will actually accept. A plain Cloud API inbox (hand-pasted token, no WhatsApp Business app on the phone) is not coexistence and therefore does not appear β previously it appeared and the click ended in an unexplained error. - Connection order: connect Coexistence (Cloud) first, wait for Meta synchronization to finish, and only then connect the WhatsApp Web inbox on the same number. If you do it the other way round, the Web inbox shows a notice that the number already has another inbox β it is only a notice, and it disappears once you pair the two. - The Cloud inbox asked to be reconnected and the reason shows in Account Health: Meta reported that it disconnected the number from the API. The possible reasons are: the WhatsApp Business app was not opened on the phone for about 14 days; the API connection had no activity for about 30 days; the number was registered again on another device; the client changed the number; the number was registered on the regular WhatsApp app; or the account was disabled or deleted. Fix the cause on the phone and reconnect the inbox with Embedded Signup. Administrators also receive an email with the reason. - "Meta is reconnecting the API": the number moved to another device or was registered again. While Meta reconnects, which is automatic and usually takes a few minutes, messages are neither sent nor received through the API. Meanwhile, campaigns of the inbox are paused and resume by themselves, sending only to the contacts still waiting; scheduled messages wait; and a hybrid inbox sends through WhatsApp Web. A reply sent through the API meanwhile fails at once with that reason, without reaching WhatsApp; send it again after the reconnection. The same applies to the satisfaction survey, which is marked as failed, to the call permission request and to reactions: the reaction is refused and does not show as sent in the conversation. When Meta finishes, the inbox comes back by itself. - Account Health shows an account restriction: Meta restricted the WhatsApp account, and the event lists each restriction and when it ends. While the business cannot start conversations, campaigns are paused; resume them after the date shown. A policy violation also appears there. - Account Health says Meta sends account or template events to another address: the app's callback URL in the Meta App Dashboard points somewhere else, so account changes and template statuses do not reach the platform. Ask your operations team to point it to the platform's /webhooks/whatsapp address. - The history arrived before the inbox finished connecting: the platform keeps the history, contacts and echoes Meta sends during the connection for up to 24 hours and imports them as soon as the inbox is ready. - After the reconnection, WhatsApp Web stopped: Meta only reconnects the API; WhatsApp Web and the other linked devices do not come back by themselves. On a hybrid inbox, the platform warns you by email and in Account Health: generate a new QR code on the WhatsApp Web inbox and pair it again. See also - WhatsApp conversation routing: Meta Business Agent and other partners - WhatsApp Cloud with Embedded Signup - WhatsApp hybrid inbox: Coexistence (Cloud) + WhatsApp Web - WhatsApp Inbox Suite: Templates, Flows and Calls - WhatsApp Hub: groups, communities, channels and status - Inboxes and channels overview
WhatsApp hybrid inbox: Coexistence (Cloud) + WhatsApp Web on one number
Overview The hybrid inbox joins, in a single conversation, a Coexistence (Cloud) inbox and a WhatsApp Web inbox that share the same physical number. Instead of two separate inboxes for the same contact, you work in one place and the platform automatically chooses which transport to send with. - Cloud (Coexistence) is authoritative for inbound: conversations live in the Cloud inbox. - WhatsApp Web is a send + fallback transport: used, for example, outside the 24h window to send a session message over WhatsApp Web, which Meta does not charge for, instead of paying for a template. - Inside the window, replying over Cloud has a service cost: since 2026-10-01 that reply is a service message. The platform estimates it as free within the number's monthly allowance of 1,000 service messages and with a cost after it. Estimated monthly allowance; Meta does not publish this limit in the documentation tracked here. Meta does not charge for WhatsApp Web. - Both inboxes still exist β pairing is a link, never a merge. Every outgoing message gets a transport badge ("via CoexistΓͺncia (Cloud)" or "via WhatsApp Web", with a fallback marker when applicable), so you always know which transport delivered it. The connection order matters, and there is only one that works. Connect the Coexistence (Cloud) inbox first, wait for Meta's synchronization (it can take up to ~24 hours), and only then connect/pair the WhatsApp Web inbox. Activating Coexistence unlinks every companion device from the WhatsApp Business app β including a WhatsApp Web inbox that was already paired on that number. Prerequisites - The Hybrid inbox feature enabled on the account (ask your platform operator). - A Coexistence (Cloud) inbox connected through Embedded Signup on the number β this is always the first connection. - Meta's synchronization completed for that number (it can take up to ~24 hours after activation). - The WhatsApp Business app installed on the number's phone, with internet, to scan the WhatsApp Web QR after the synchronization. - An administrator profile to create inboxes, pair/unpair and change routing. Do not connect WhatsApp Web before Coexistence. If a WhatsApp Web inbox already exists on that number, it will be logged out when Coexistence is activated and must be paired again (scan a new QR). Re-pairing loses nothing: the same inbox is reused β phone number, conversations, contacts and message history all stay. Only the gateway session is rebuilt. Step by step 1. Connect Coexistence (Cloud) β always first 1. In Settings β Inboxes, create a WhatsApp inbox and choose the WhatsApp Cloud provider with Embedded Signup. 2. In Meta's flow, select the number already used in WhatsApp Business and complete the coexistence activation for that number. 3. On activation, Meta unlinks every companion device from WhatsApp Business. This is expected β it is exactly why WhatsApp Web comes afterwards. 2. Wait for Meta's synchronization 4. Meta syncs the number's history and contacts into the Cloud inbox. This can take up to ~24 hours. 5. Do not move on until the Cloud inbox is receiving and sending messages normally. 3. Connect (or re-pair) the WhatsApp Web inbox 6. Only now create the WhatsApp Web inbox with the same number β or, if it already existed, open the inbox and generate a new QR on its connection screen. 7. On the phone: WhatsApp β Linked devices β Link a device and point the camera at the QR. 8. Wait for the Web inbox to reach the connected state. 4. Pair the two inboxes 9. Open Inbox settings for the Cloud (Coexistence) inbox and go to the HΓbrido (Hybrid) tab. 10. Under WhatsApp Web inbox to pair, select the Web inbox with the same number. 11. Click Pair inboxes. The platform validates it (same account, same number, one Cloud + one Web) and creates the link. Required bots, flows, automations and memberships are mirrored additively to Cloud without removing their Web bindings. Web campaigns stay active on their original inbox, and Web HistorySync stays enabled for groups, newsletters and other surfaces Coexistence does not deliver. Only duplicable 1:1 history is filtered. 12. On the Web inbox, the Hybrid tab becomes a read-only mirror ("configure on the Cloud inbox"). Settings & options On the HΓbrido tab (on the Cloud inbox) you set the routing: - Receives (inbound authority): which transport owns inbound (v1: Cloud/Coexistence). - Default send transport: inside the 24h window (default: Cloud). Over Cloud, the reply is a service message: the estimate treats it as free within the number's estimated monthly allowance and with a cost after it; actual billing depends on Meta's report. - Out-of-window send transport: when the window closes (default: WhatsApp Web β not billed by Meta). - Automatic fallback: after a definite failure, allow one attempt through the sibling transport eligible for this message. A timeout or uncertain result does not trigger an automatic resend. - Allow composer override: agents pick the transport per conversation (Auto / Cloud / Web). Approved templates, Meta-native interactive messages, WhatsApp Flows and catalog go through Cloud. WazMeow-only interactive messages and group/newsletter conversations continue through Web. A call received through the WhatsApp Web session does not reopen Metaβs 24-hour window. When Meta refuses a message for being outside the 24-hour window, the platform re-sends it once through WhatsApp Web, as long as that session is connected. Automatic distribution per contact With the unified inbox active, an administrator configures distribution on the Cloud inbox, in the Hybrid tab. The Web inbox only shows the saved proportion and cannot edit it. 1. Turn on Automatic distribution per contact. 2. Drag Percentage through WhatsApp Web, from 0 to 100. 3. Cloud API automatically receives the complementary percentage, totaling 100%. 4. Check the summary, such as 40% WhatsApp Web Β· 60% Cloud API. With the slider focused, use the arrow keys to adjust it or Home/End to reach the endpoints. 5. Click the existing Save routing button. Discard changes only restores the distribution draft and does not change other settings on the page. Reloading after a conflict brings back the latest saved configuration. Changes stay local until saving. The restart notice only appears when a valid proportion differs from the saved one. Saving a new proportion resets the count for all contacts; turning on and saving also starts a new count. The percentage is counted per contact only across support replies eligible on both channels. 0% or 100% does not disable channels or features exclusive to Web or Cloud, and the proportion does not guarantee savings or delivery. Distribution chooses the channel before sending. Fallback is a separate option applied after a definite failure, if the sibling can carry that message. A timeout or uncertain result does not trigger an automatic resend through the other channel, to avoid duplicates. Single operational inbox (optional) When the operator also enables Single operational inbox, an administrator can activate it on the Hybrid tab: - Cloud becomes the single entry in day-to-day operational lists and pickers; - the physical Web inbox is not deleted, merged or disabled and remains available in settings, reporting and audit; - groups, newsletters, calls, HistorySync, ignore rules, campaigns and Web-only sends continue using Web; - old 1:1 Web conversations are resolved and cross-linked to the Cloud conversation; their messages and calls remain on their original rows; - before freezing any conversation, the platform tries to reconcile on its own that conversation's Maestro control state (human stand-down, the specific Robot, and the autonomy set only there) onto the Cloud conversation. Only a pending human approval needs a decision from you; - activation reports progress and automatically returns to the visible two-inbox mode if it fails. On deactivation, the Web inbox returns to operational lists. Existing links and resolved history remain intact; there is no destructive rollback or automatic history merge. What each transport covers | Surface | Coexistence (Cloud) | WhatsApp Web | | ------------------------------------------------------ | ------------------- | --------------------------------------------------------- | | 1:1 conversations | Yes (authoritative) | Send / fallback and recovery of Cloud-unsupported content | | Templates, interactive, flows, catalog | Yes | No | | Groups, communities, channels, status, broadcast lists | No | Yes | | Native WhatsApp Web calls | No | Yes | WhatsApp Web session status When you open or refresh a conversation that uses this pair, the platform reads the latest available observation from the physical Web inbox. The notice appears on that opening or refresh; it does not promise an immediate alert from a probe or continuous monitoring of a tab that is already open. Only a fresh observation confirming that the session is offline shows βWhatsApp Web has had no active session since {date and time}β, in the account time zone. If the episode started on a different day, the date accompanies the time. While that outage is confirmed, messages that require Web will not be sent. The notice does not say whether an earlier message was delivered, resend it, or confirm fallback or retry through another transport. A missing, stale, invalid, or unavailable observation is an unknown state, not a disconnection. The person handling the conversation sees that context and contacts an administrator; do not recreate the inbox, delete history, or log out to try to resolve an unknown state. When the physical Web inbox is identified and the profile is authorized, the administrator opens its existing Connection. Requesting reconnection can fail; only a new connected-session confirmation removes the notice. An administrative email, when sent about a known outage, also does not prove recovery, message delivery, or an update to the conversation that is already open. Contact cards and scheduled messages In the composer, use Contact to create a native card. The picker shows people only: phone numbers are normalized, repeated records for the same number appear once, and technical group, channel, broadcast and bot identities stay out of search. The same structured card is preserved when forwarded or scheduled, whether delivery uses Cloud/Coexistence or WhatsApp Web. When scheduling a message, the text field uses the same editing surface as the composer, including the formatting toolbar supported by the channel. You can also attach files, choose media from the library, record a voice note, and open the native template or interactive composers available for that inbox. The preview validates the content and transport capability before publication is allowed. 1:1 messages that Cloud cannot display In Cloud-primary mode, the message still arrives through Coexistence first. When Cloud provides only βThis message is not supportedβ, the platform waits for WhatsApp Web's decrypted copy, verifies that both events represent the same message, and updates the existing Cloud bubble. Text, captions, media, stickers, audio/voice notes and other Web-recognized formats keep their original position and timestamp, without creating a second message. If an earlier delivery race also left a technical βWaiting for messageβ bubble in the Web inbox, it is removed after the Cloud bubble is recovered. Matching is deliberately conservative: if the platform cannot prove that the two events are the same item, it keeps the unsupported notice instead of placing content in the wrong conversation. Keep the paired Web session connected even when Cloud is the primary transport. While text or media is still being recovered, the conversation shows a temporary state instead of exposing the provider's technical placeholder. Flows, rules, bots, Captain, webhooks, and notifications wait until the content is ready and receive one stable version of the message. If recovery becomes permanently unavailable, the agent sees a notice and no automation runs against the placeholder. Poll votes and event replies are updates to a message that already exists, not new messages: WhatsApp shows no bubble for them. On the unified inbox Coexistence still delivers that encrypted update as βThis message is not supportedβ; the WhatsApp Web copy applies the vote or RSVP to the original card and the Cloud notice is discarded automatically, whichever copy arrives first. Answering an event from the platform works on the card shown in the unified conversation. If a βWaiting for the content of this messageβ bubble stays unanswered for more than 30 minutes β the sender never re-sent the content β it turns into βThe content of this message could not be recoveredβ instead of waiting forever. When a media received through Cloud could not be downloaded, the bubble offers βTry downloading againβ: the platform fetches the file once more by the same provider identifier and attaches it to the message as soon as it arrives. Cost and currency On the same tab, the Custos (Cost) section shows real message cost (Meta pricing analytics) by category, in the WABA billing currency and in your display currency (FX conversion). Coexistence accounts cannot migrate their Meta billing currency β so display-currency conversion is the answer, and a link to Meta's official documentation is shown. The cost of each message, the number's estimated monthly service-message allowance and the reasons a message was free are in the WhatsApp cost center. Use cases Greetings in the unified inbox When the unified inbox is active, private group welcome and farewell messages appear in the participantβs unified conversation. Delivery still uses the WhatsApp Web connection associated with the group. Greetings sent inside the group remain in the group conversation. Reusing a resolved conversation follows the unified inbox configuration. - Cut out-of-window cost: reply after 24h via a WhatsApp Web session, not billed by Meta, instead of a paid template. - Save the service allowance: in the platform's estimate, each delivered service reply over Cloud inside the window uses one unit of the estimated monthly allowance of 1,000 messages; above it, a cost is projected (inside an ad's free window the message is free; the documentation tracked here does not confirm whether it counts in that estimate). A reply over WhatsApp Web is not billed by Meta, because it does not go through the Cloud API. Replying over WhatsApp Web avoids service messages over Cloud: after the month's 1,000 in the estimate, each one avoided represents one projected charge less; before that, it represents estimated allowance saved. Actual savings depend on Meta's billing. - Continuity: fallback allows one attempt through an eligible sibling after a definite failure; it does not guarantee delivery or automatically resend an attempt with an uncertain result. - Groups, communities, channels and status: keep everything Coexistence does not cover working on the same number, through the Web inbox. - WhatsApp Web calls: keep native WhatsApp Web calls working on the number, even with Coexistence active (see below). Tips, limits & best practices - The order is mandatory: Coexistence (Cloud) β Meta synchronization (~24h) β WhatsApp Web β pairing. Reversing it gets the Web inbox logged out the moment Coexistence is activated. - Open the WhatsApp Business app at least once every ~14 days on the number's phone. Without that, Coexistence loses health and may stop syncing. - Every hybrid call uses WhatsApp Web signaling and media, even when its bubble is attached to the Cloud conversation in single-inbox mode. Pairing does not change calling configuration. - Outbound calls continue through Web. For inbound 1:1 calls, the dashboard can ring only when Meta/the gateway delivers a CallOffer to the companion device. On some Coexistence numbers Meta rings only the phone; no local retry can reconstruct an offer that never arrived. - WhatsApp Web groups, communities, channels and status remain their own Web conversations. - Do not remove Web bot, flow, automation or campaign bindings: groups, newsletters and Web-only features still need them. Pairing mirrors only what Cloud also needs. - v1 runs in Cloud-primary mode (Coexistence is the authoritative receiver). Troubleshooting - The WhatsApp Web inbox went to "logged out" after activating Coexistence: this is the expected behavior β activation unlinks every companion device from WhatsApp Business. The Web inbox reports the cause (logged out from another device β the normal case here β, primary device was logged out, or unknown reason); in all three the fix is the same. Open the Web inbox, generate a new QR on its connection screen and pair again. Nothing is lost: phone number, conversations, contacts and history all stay on the same inbox; only the gateway session is rebuilt. - The inbox says it paired but nothing arrives: the number may be stuck on a pending placeholder because another inbox already holds that number β in the same account (same provider) or in another account. The HΓbrido tab and the pairing screen show the reason. Release or remove the inbox holding the number, then pair again. - No inbox to pair: check the order β Coexistence (Cloud) first, Meta synchronization completed, and only then the WhatsApp Web inbox connected on the same number. - Single-inbox activation stopped because of a configuration conflict: the platform now refuses on the click itself, with 422, naming which configuration conflicts between the Cloud and Web inboxes (assignment policy, routing, CSAT, bot, inbox integration, ads conversion, among others). Previously the request was accepted, queued, and only failed minutes later. Resolve the conflict on the named inbox and activate again. - Single-inbox activation stopped because of Maestro state: having Maestro configured does not block activation. Before freezing any history, the platform tries to reconcile the Web conversation's control state onto the Cloud conversation that will take over, then reads it back. Only what genuinely did not move still blocks: - Resolves by itself, with no operator action: the human stand-down (the robot was told to stay quiet on that conversation), the specific Robot routed to that conversation (re-applied by name), and that conversation's autonomy (autopilot, copilot or hybrid set only there). All three are re-applied on the Cloud conversation and stop showing up as blockers. - Needs a decision from you: a pending human approval β an action parked waiting for someone to approve or reject it. It is not moved, because approving re-runs the parked action and re-running it against another conversation is not verifiable. The Web conversation is preserved exactly for this: open the conversation named on screen, approve or reject the pending item, and activate again. - The state could not be READ (Maestro unreachable or turned off): this is a communication failure, not control state. The message asks you to check Maestro connectivity; there is no point hunting for a pending approval, because the platform never managed to ask. The check stops at the first conversation, so the counter no longer repeats the same block dozens of times. When something still blocks, the screen names the exact conversations, with a link to open each one, and offers to activate anyway. That confirmation covers only the conversations listed at that moment β if a new blocker appears afterwards, it blocks again. There is no blanket override. On any block, both inboxes remain visible and no history in that batch is changed. - Progress shows "0 Β· 0 Β· 0" while conversations are blocked: fixed. The progress line now has separate segments for frozen and linked, already linked, safely skipped and β highlighted β blocked, with how many conversations were checked. Blocked is not the same as safely skipped. - This number already has another WhatsApp inbox: if the Web inbox comes up on a number that already has a Cloud inbox in the same account with no pair between them, the connection screen shows a notice. This is allowed, but both inboxes receive the same conversations independently and the history ends up split. The notice disappears on its own once you pair them on the HΓbrido tab. It is a notice, not a block. - The WhatsApp Web send failed with "WhatsApp shared only a business-scoped ID": Meta now identifies each user by a business-scoped ID (BSUID) and omits the phone number of anyone who hides it behind a username. The official channel (Cloud) can send to that ID; WhatsApp Web needs a phone number. Without a known number, the platform does not try WhatsApp Web: the message goes through the official channel when the 24-hour window is open, and the percentage split never picks Web for that contact either. As soon as the contact shares the phone number or messages with it, both channels work again. - Reacting, editing, voting in a poll, answering an event or deleting for everyone was refused with "This message was sent through WhatsApp Web, which can no longer reach this contact": these actions must go out through the same channel as the original message. That message was delivered by WhatsApp Web, and the contact now has only a business-scoped ID (BSUID), without a phone number, which WhatsApp Web cannot reach. Nothing was sent to the contact. A delete for everyone becomes a delete on the platform only. The actions work again once the contact shares the phone number or messages with it. - Duplicate message after a Web send: confirm the inboxes remain paired. Reconciliation uses the Web identifier embedded in the wamid; do not remove the transport stamp or recreate the message manually. - The βThis message is not supportedβ notice was not replaced: wait a few seconds and confirm the paired Web inbox is connected and received the same event. When Web does not deliver the decrypted copy or more than one candidate exists at the same instant, the notice stays in place to prevent a wrong match. - The message remains in βprocessing contentβ: check the Web inbox connection and the media queue. The platform retries without firing automations on incomplete content; after the limit, it shows a content unavailable notice so the failure is not silent. - Zero cost: sync runs periodically; use Sync now in the Cost section. - An inbound call does not ring in the dashboard: check the Web connection/engine and CallOffer logs. If no offer reaches the gateway, the limitation is upstream and the call may ring only on the phone. An outbound call in the same session helps confirm that local Web signaling is healthy. See also - WhatsApp Cloud Coexistence - WhatsApp Cloud with Embedded Signup - WhatsApp Web - WhatsApp Hub: groups, communities, channels and status
WhatsApp conversation routing: Meta Business Agent and other partners
Overview Since September 2026, the same WhatsApp number can be handled by more than one responder: the platform, another partner (for example, a marketing tool) or Meta Business Agent (Meta's own AI agent). When that happens, Meta routes each conversation to a single owner. This feature is called Conversation Routing. With routing active: - each conversation has one owner at a time, and the customer's messages go to that owner; - responders that are not the owner only receive a copy to follow along (called standby), if the business grants that visibility; - Meta refuses free-form replies (text, media, buttons) from anyone who is not the owner. Approved templates are still accepted at any time. The platform tracks the owner of each conversation and warns the team when another responder is handling it. Prerequisites - A WhatsApp Cloud inbox connected with Embedded Signup. - Routing only exists when the number has two or more responders and the business has a routing configuration in Meta Business Suite. Without it, nothing changes. - The business configures routing in Meta Business Suite. The platform cannot configure it through the API. Step by step 1. Before turning on Meta Business Agent or adding another partner, open Conversation Routing in Meta Business Suite and check whether a configuration already exists. 2. Set the platform as the primary responder for the entry points your team handles (for example, Service, which is the default entry point). 3. If the team needs to follow conversations handled by another responder, grant the platform standby visibility. 4. If the team needs to take over conversations from Meta Business Agent, set the platform as the escalation partner. These options only appear after the business accepts the Meta Business Agent terms. 5. After saving, send a test message and confirm it arrives in the platform inbox. Settings & options - Notice in the conversation: when another responder owns the conversation, it shows a yellow notice saying who is handling it (Meta Business Agent, another partner or another responder). The notice goes away by itself after 24 hours without customer messages, when Meta routes the next message again. - Follow-along copies (standby): they enter the conversation as history, without notifying, reopening or triggering bots, automations or Maestro. When the copy is the first message of a conversation the platform did not have yet, the conversation is created the same way: quietly, with no agent or bot assigned. Replies sent by the other responder appear as sent messages. - Hybrid inbox (Cloud + WhatsApp Web): a message that only arrives through WhatsApp Web becomes a follow-along copy only when that conversation is owned by another responder. Any other conversation keeps working normally, even when Meta delivers the Cloud copy late or not at all. - When the conversation passes to your team (a handover, or a new customer message after the other responder's 24-hour window): the conversation is assigned to an agent by the inbox's automatic assignment, exactly like a new conversation, and never to a bot. A contact first seen while another responder owned the thread only now counts as a new contact for automations, flows and integrations. Conversation-creation automations do not run for this older conversation. If processing fails midway, a contact-created automation may run more than once. - Handover: when Meta Business Agent or another partner passes the conversation to your team, a line appears in the history and, when Meta sends one, a conversation summary written by Meta. - Refused message: if the team replies while another responder owns the conversation, Meta refuses the message and the platform shows Meta's own error. Meta has not yet published a specific code for this refusal; once it does, the platform will show a clear reason and stop retrying through WhatsApp Web. Until then, follow the notice at the top of the conversation: do not reply while it is visible. Use cases - Use Meta Business Agent for first-line support and the human team for the cases it passes on. - Have one partner only for marketing campaign replies and the platform for customer service. - Follow, without replying, the conversations another partner handles. Tips, limits & best practices - Turning on Meta Business Agent changes routing immediately: it becomes the primary responder for messages and the previous responders only follow along. Agree on it with the team first. - Adding another partner can create the routing configuration automatically. Review it right after in Meta Business Suite. - Migrating a number from another partner to the platform no longer exists in Meta's new account model: the business shares its WhatsApp account with the platform. Until the business sets the platform as the primary responder, messages may keep going to the previous partner. - Calls follow a separate routing and do not change the conversation owner. - Meta offers no "who owns it now" lookup. The platform infers the owner from the notices Meta sends; when there is no notice, the banner does not appear. Troubleshooting - Account Health says "No customer message has arrived through the API yet": the inbox has been connected for more than 24 hours without one message. If another WhatsApp partner already served the number, it is still the primary responder: set the platform as the primary responder in Conversation Routing, in Meta Business Suite. Messages that only arrive through WhatsApp Web, history imports and follow-along copies do not count. The notice disappears with the first message received through the API. - The inbox stopped receiving messages after Meta Business Agent was turned on or a partner was added: the platform is no longer the primary responder. Adjust routing in Meta Business Suite or grant standby visibility. - A message failed while the notice "another responder is handling" was visible: wait until the conversation is passed to your team or send an approved template. - The conversation notice does not appear: check with your operations team that the standby and messaging_handovers webhook fields are active in the Meta app. See also - WhatsApp Cloud Coexistence: history, contacts and echoes - WhatsApp Cloud with Embedded Signup - WhatsApp hybrid inbox: Coexistence (Cloud) + WhatsApp Web
WhatsApp sending optimization: reply consolidation, review by Maestro and distribution per channel
Overview Sending optimization changes how support replies go out on WhatsApp, without changing what the agent writes. It has four independent parts, each with its own switch: - Reply consolidation: when an agent confirms several short messages in a row, the platform waits a few seconds and sends them together as a single message. Each confirmation becomes a part of the pending reply. - Review by Maestro: before sending, Maestro can fix spelling, adjust formatting or propose an interactive format. You choose whether it only suggests or may improve automatically within rules. - Interactive formats: Maestro can propose buttons, a list, a link with a button or a WhatsApp Flow that is already published and authorized for the inbox. - Automatic distribution per contact: in a unified hybrid inbox, a share of the eligible support sends goes out through WhatsApp Web and the rest through Cloud API. None of this creates hidden messages or resends on assumption. While parts are waiting, no message has been sent: the contact receives nothing, and the conversation does not count a first reply or SLA. The final message is created only once, and it is the one that triggers automations, notifications and the cost record. Sending optimization does not guarantee exact savings, and the savings summary is not an invoice. Since 2026-10-01 a rate applies to the service message (the support reply over the Cloud API inside the 24-hour window). The platform uses an estimated monthly allowance of 1,000 service messages per number. Estimated monthly allowance; Meta does not publish this limit in the documentation tracked here. Merging parts avoids messages. Replying over WhatsApp Web avoids service messages over the Cloud API, and the reply over Web is not billed by Meta, because it does not go through the Cloud API. After the month's 1,000 in the estimate, each message avoided represents one projected charge less (estimated savings in money); before that, it represents estimated allowance saved. The real amount also depends on the market, the price table in force and the Meta invoice. Prerequisites - A WhatsApp Cloud inbox or the logical inbox of a unified hybrid inbox. In a hybrid inbox, the WhatsApp Web inbox shows the owner inbox's settings, read-only. - The matching features turned on for the account: reply consolidation; review by Maestro; interactive formats; and distribution per contact. All of them start turned off. - To configure the inbox: permission to manage the inbox. For distribution per contact: the administrator role. - For review by Maestro: an account bot linked to a Maestro agent, authorized in the inbox's profile list. - For WhatsApp Flow: a published Flow in the same inbox, with a Cloud API connection. - To see the summary values in the Cost Center: access to the WhatsApp Cost Center. Step by step Turn on reply consolidation 1. Go to Settings β Inboxes β your inbox β Configuration and scroll to Reply consolidation. 2. Turn on Combine parts before sending. 3. In Wait after the last part, choose 5 s, 10 s or 15 s, or enter another value from 1 to 30 seconds. 4. In Total wait limit, enter how long the reply may wait after the first part, up to 60 seconds. 5. Click Save consolidation. Nothing is sent when you save; the rule applies to the next replies. Reply with consolidation turned on 1. In the conversation, write and confirm the text as usual. The button is now called Add to reply. 2. The part shows up in the Your reply strip, above the editor, with the countdown and the expected sending time. 3. Keep adding parts if you need to. Each new part restarts the wait, without going past the total limit. 4. To send earlier, use Send now. To review, use Pause and review. To give up, use Cancel reply. 5. When the wait ends, the platform creates one message with the parts in the order they were confirmed, separated by line breaks. Turn on review by Maestro 1. In the same section, open Review by Maestro. 2. Choose the Review mode: Keep the original text, Suggest and ask for approval or Improve automatically. 3. Authorize the Allowed Maestro profiles and select what Maestro can adjust. 4. Choose what happens If Maestro fails and, if you want, the Daily review limit. 5. Save. When you choose Improve automatically, the platform asks for a confirmation that lists operations, formats and the failure rule. Authorize a WhatsApp Flow 1. In Allowed formats, select WhatsApp Flow. 2. In Allowed WhatsApp Flows, click Add WhatsApp Flow. 3. Choose the published Flow, the Entry screen, the Label the agent will see, When to suggest and the Button text. 4. Save. The platform reads from the chosen screen the fields the Flow needs to receive; you do not edit any data schema. Turn on distribution per contact 1. Go to Settings β Inboxes β your Cloud inbox β Hybrid. 2. With the unified inbox active, turn on Automatic distribution per contact. 3. Enter the Percentage through WhatsApp Web. The percentage through Cloud API is calculated automatically. 4. Click Save configuration. Settings & options Waiting time - Wait after the last part (1 to 30 s, default 10 s): the reply goes out when nobody adds parts for that long. - Total wait limit (up to 60 s, default 30 s): the reply never waits longer than that after the first part. Editing or removing a part does not extend this limit. - A pending reply accepts up to 32 parts and 16 KiB of text. Beyond that, send it now or review it before adding more. - The clock belongs to the server. Closing the tab, switching conversations or reloading the page does not restart the wait or duplicate the reply. Review modes - Keep the original text: parts are combined exactly as written. Maestro is not called. - Suggest and ask for approval: Maestro proposes a version and shows the differences. Nothing goes out until you approve, edit, send the original or cancel. The suggestion never turns into an automatic send when time passes. - Improve automatically: Maestro applies the allowed operations without asking for approval on each message. It only applies without review the operations and languages that passed the platform's quality evaluation. While an operation has no approved evaluation β which is the case for all of them at launch β the result goes to your review, as in the Suggest mode. Cases that Maestro flags for review also go to you. - Each agent can restrict their own mode in Preferences, within what the inbox allows. The preference never widens what the inbox authorizes. If Maestro fails - Pause for review (recommended): the reply stays paused until the agent decides. - Send the original text: when Maestro does not answer in time, the parts go out as written, as long as the original text is valid. - The daily review limit counts requested reviews or generated tokens. When the limit is reached, the failure rule applies until the next day. - If a review has no complete usage measurement, that attempt's reservation continues to occupy the daily limit. Even when some tokens are known, the platform does not release the unconfirmed part; this may prevent another review when the ceiling is reached. When tokens are complete and only their price is unknown, the limit uses the measured quantity normally. The reservation controls reviews or tokens without creating a monetary charge. Formats - Text is always allowed. - Buttons, List and Link with a button use formats WhatsApp already accepts. A link with a button only uses an address that is already in the text of the reply or that the team (an agent or a bot) already sent in this conversation; in the second case, only if its domain is on the allowed list. Links sent by the contact are never used, and Maestro never makes up a link. - WhatsApp Flow: Maestro only chooses among Flows that are published and authorized in the inbox, and never creates or publishes a new Flow. A WhatsApp Flow always goes out through Cloud API and does not count in the distribution per contact. At launch, a Flow proposal is marked Not verified and available for tests only, until the platform confirms the send on a real account. Distribution per contact - The proportion applies to support sends from the composer that can go out on both channels, counted per contact. A consolidated reply or a group of attachments counts as one send, and all its parts go out on the same channel. - The choice is deterministic and reproducible: with 30% through WhatsApp Web, for every 10 eligible sends to the same contact, 3 go out through WhatsApp Web. - Capability and safety come first: a template, a WhatsApp Flow, a quote that only exists on one channel, a closed 24-hour window or an allowed manual choice set the channel without using up the proportion. - A contact without a known phone number (shown only by their WhatsApp username) is left out of the percentage split, and replies to them go out through the Cloud API. - Saving a new percentage restarts the count for all contacts. Merging contacts keeps the count of the contact that remains. - Campaigns, bots, the API and scheduled messages are not part of this proportion. Privacy and retention - The text of parts, suggestions and drafts is deleted 7 days after the reply is sent, canceled or expires. You can change this period in Privacy. - A reply left untouched for 24 hours without being sent expires without sending and follows the same retention rule. - The reply's audit records keep only identifiers and codes, never the text, and are kept for 90 days. - The sent message follows the conversation's normal retention. Data subject erasure requests also delete the pending text before these periods. Summary in the Cost Center The Overview tab of the WhatsApp Cost Center shows, per inbox and period, the Support sending optimization: confirmed parts, messages created and messages avoided; sends reserved, attempted, accepted, delivered and read per channel; and the estimated savings, split by source: consolidation (messages avoided by merging parts) and sending over WhatsApp Web (replies that did not go out over the Cloud API). The savings take into account the number's estimated monthly allowance of 1,000 service messages. While estimated usage has not gone past 1,000 in the month, what was avoided shows as estimated allowance saved, in number of messages. The money amount projects only messages that would have been billed above the estimated allowance; the limit does not confirm a charge by Meta. Canceled, expired or rejected replies, replies with unconfirmed sending and replies that were not delivered do not count as savings. Only service messages Meta delivered, billed or treated as inside the estimated allowance, count toward the money projection. Messages avoided inside an ad's free window would have been free: they show as volume only. A message that has no confirmed price yet is left out of the savings and counted apart, without hiding the rest. Projection unavailable appears only when no avoided message of the period has a confirmed price; in that case the summary shows the volume. Maestro usage shows up separately and is not part of the savings. The savings remain an estimate, with no guarantee of an exact amount, and are not an invoice. Use cases - An agent who writes in several short lines: the contact receives one complete message instead of five notifications in a row. - A team with a writing standard: Maestro fixes spelling and formatting, and the agent approves before sending. - Offering a form: Maestro suggests the authorized scheduling WhatsApp Flow when the contact asks for a time slot. - A number in a hybrid inbox: part of the support sends goes out through WhatsApp Web, in the proportion set by the administrator. Tips, limits & best practices - Start with Keep the original text and a 10 s wait. Adjust after looking at the summary in the Cost Center. - Prefer Pause for review as the failure rule. Sending the original is useful only when review is optional in your operation. - What goes to the AI: when you use Maestro, the reply draft and the recent text of the conversation (up to 20 text messages and at most 16 KiB, most recent first) are sent to the AI model configured in Maestro to produce the suggestion. Attachments and files are never sent. Maestro never makes up a link, and a link written by the contact never becomes a link with a button. - Do not use consolidation to get around the size limit: the platform does not split a long reply into several messages. Above the WhatsApp limit, the reply pauses for you to shorten it. - Automatic outgoing translation, when turned on in the inbox, happens only once, on the final message. The review preview shows the text before translation. - The agent's signature is applied only once, at the end of the consolidated message, not to each part. - The switch to Cloud API only happens BEFORE sending: if WhatsApp Web is unavailable or at its safe sending limit, the whole reply goes out through Cloud API, when allowed, and the count moves on normally. Once WhatsApp has received the attempt, the platform does not change channels, and the distribution does not try to make up for it later. - WhatsApp Web's safe sending limits still apply. The distribution never raises those limits. Troubleshooting - The reply was paused with "The contact replied": the contact wrote before the send. Review it and use Resume sending, Send the original text or Cancel reply. Once the reply has gone out for sending, the platform does not promise to undo it. - "You no longer have access to send in this conversation": the conversation changed agent or team, or you lost access. In this version, resolving or transferring the conversation does not stop the wait; the send is checked at the last moment and, without access, the reply is paused. Someone with access can cancel it. - "Sending on hold": there are two cases. The send was stopped before going out, for example by WhatsApp Web's safe sending limit, or WhatsApp rejected the message definitively. In both cases, the platform does not try the other channel on its own. Use Release the same message, which tries the same message again without creating a copy; this new attempt counts again toward the WhatsApp Web sending limit when it goes out through it. Or use Give up on sending. The next replies in the conversation wait for this decision to keep the order. - "Sending not confirmed": we do not know whether WhatsApp received the message. The platform never resends it on its own, nor through the other channel. Use Update status to check. If you give up, the message will not be resent; if WhatsApp confirms it later, the conversation will show it. - The message's "try again" button became "Resolve sending": messages from this optimization are resolved in the pending reply strip, with the actions above. - "The suggestion is out of date": the reply changed after the suggestion. Generate a new suggestion or send the original text. - The suggested WhatsApp Flow is unavailable: the Flow was unpublished, revoked or changed, or the conversation is pinned to WhatsApp Web. Send the original text or cancel. - "The settings changed in another session": someone else saved first. Click Load current version, which discards your unsaved changes, and make your change again. - The feature was turned off with pending replies: nothing is sent or deleted because of that. Pending replies and held sends stay visible so you can cancel them or give up; releasing requires the current settings to still allow the send. See also - WhatsApp hybrid inbox - WhatsApp Cost Center - Autonomy and human approval in Maestro - AI usage per account
WhatsApp Inbox Suite: Templates, Flows and Calls
Overview WhatsApp Cloud feature. The Templates, Flows and Calls tabs belong to the WhatsApp Cloud (Meta's official API) channel and are available on Cloud inboxes β not on WhatsApp Web. The WhatsApp Inbox Suite adds, inside the WhatsApp inbox itself, three tabs that bring together advanced features of the official channel: - Templates (HSM): create, organize and send message templates approved by Meta. - Flows: build and send interactive WhatsApp forms (Flows) to collect data, schedule, qualify leads and more β all inside the conversation. - Calls: start and follow calls over WhatsApp, including the AI calls feature. This way, the team doesn't have to leave the conversation screen to use WhatsApp's most powerful features. Prerequisites - A connected WhatsApp Cloud inbox (official features). - The WhatsApp Inbox Suite may depend on specific activation/permission β if the tabs don't appear, talk to whoever runs the operation. - Templates must be approved by Meta before use. - Flows and Calls follow WhatsApp's rules and availability for your number. Step by step 1. Open the WhatsApp inbox and locate the Inbox Suite tabs. 2. In the Templates tab: create a template (text, variables, buttons), submit it for approval and, once approved, use it to start conversations outside the 24h window. 3. In the Flows tab: build or select a Flow (interactive form) and send it in a conversation; the customer's answers come back to the conversation. 4. In the Calls tab: start a call with the contact or enable AI calls handling, depending on the operation's setup. Settings & options - Templates (HSM): support variables (e.g. customer name), a media header and buttons (quick reply or link). Use the variable picker to fill the fields when sending. The editor limits headers and footers to 60 characters, bodies to 1,024 and button labels to 25; dynamic links with a variable also require an example URL. Drafts and approved templates can be deleted directly from the list. - Flows: native WhatsApp forms for structured collection (scheduling, sign-up, qualification); the answers are recorded in the conversation. - Calls / AI calls: calls over WhatsApp and, when enabled, voice handling with AI. Real call errors and states are shown for diagnosis. Save, edit and copy templates Saving preserves the draft identity; editing updates that same record. When a Meta template is already linked, submission edits the existing template. Its name and language are immutable, and an approved template keeps its category. To create a variation, choose Copy and enter a different name. The linked draft and remote template appear in one row, matched by Meta ID and language. Advanced remote templates that cannot be converted safely remain available in View, with an explanation. Drafts created in the editor retain their complete configuration. If submission remains pending, synchronize and wait for confirmation. An uncertain response does not trigger another creation: the application reads the provider state without blindly resending. Deletion removes the visible row only after confirmation; failures preserve history and media references. Archived templates WhatsApp automatically archives a template that goes 12 months without being used and deletes it 28 days after archiving it. In the Templates tab it shows the Archived status, and a notice above the list reminds you of the deadline. - An archived template cannot be sent and is not offered when choosing a template for a campaign or a conversation. - If a campaign is sending a template when it gets archived, the campaign is paused and the reason is shown in its details. - To keep the template, click Unarchive on its row and confirm. Meta restores the template to the status it had before it was archived (Approved when there was none), and the list is synchronized right after. - If Meta refuses, the error message shows the reason Meta gave. Only inbox administrators can unarchive. Automatic category change Meta can change a template's category on its own (for example, from Utility to Marketing) when its content, or the messages sent with it, do not match the chosen category, even after approval. The events appear in the Account Health tab, under Recent account events: - Template category change: Meta's advance notice, with the current category, the new category and the date the change takes effect. Until that date, you can edit the template or request a review in WhatsApp Manager. - Template category: the change is complete. The new category applies in the template list and in the cost estimate, and messages sent with the template are charged at that category's rate. - Campaign template category: when a template becomes Marketing, every scheduled, running or paused campaign that uses it gets a warning, because the cost of each message changes. Review the campaign before it sends. Use cases - Send an order confirmation or reminder outside the 24h window with an approved template. - Collect scheduling data through a Flow and complete the booking without leaving WhatsApp. - Resolve a case by voice with a direct call or AI triage. Tips, limits & best practices - Create clear, purpose-specific templates β the more aligned with Meta's policy, the higher the chance of approval. - Reuse variables to personalize at scale without creating dozens of near-identical templates. - For Flows and Calls, validate with an internal test before using them with real customers. Troubleshooting - Template rejected: hover over the status to read the reason reported by Meta, review the content and resubmit. - The tabs don't appear: the Inbox Suite may not be enabled for your account/inbox. - The call fails: check the error message shown (usually coming from Meta itself) and the number's setup. - The Flow won't send: confirm the number is WhatsApp Cloud and the Flow is valid. See also - WhatsApp Cloud with Embedded Signup - Voice channel: calls and AI calls - WhatsApp Cloud Coexistence - Inboxes and channels overview
Website channel with live chat widget
Overview The Website channel adds a live chat widget to your site: a conversation bubble in the corner of the screen where visitors talk to your team in real time. Conversations arrive in the inbox like any other channel, with per-contact history, assignment and automations. You install the widget by pasting a small script into your site, and you customize colors, texts and behavior right in the platform. You also choose what happens after a conversation is resolved. By default the visitor keeps writing in the same conversation β and it is reopened automatically. If you would rather close it for good, you can block new messages: the composer disappears and the widget offers to start a new conversation instead. Prerequisites - An administrator role to create the website inbox. - Access to edit your site's HTML (or a tag manager) to paste the widget script. - A site published on an accessible domain. Step by step 1. In Settings β Inboxes, create a new inbox and choose Website. 2. Enter the site name and domain and set the welcome greeting. 3. Finish creation β the platform generates a code snippet (script) for the widget. 4. Copy the script and paste it into your site's HTML, before the closing </body> tag, on every page where the chat should appear. 5. Publish the site and open it in a browser: the chat bubble should appear. 6. Send a test message through the widget and check that it arrives in the inbox. 7. (Optional) Under Settings β Inboxes β your inbox β Settings, adjust Allow messages after conversation resolved to match how your team works. Settings & options - Appearance: primary color, bubble position, avatar and greeting texts. - Availability: different messages for when the team is online or offline. - Pre-chat: optional form to collect name, email and other information before starting the conversation. - Visitor features: the widget can show quick replies, Help Center articles and allow attachments, depending on the setup. - Allow messages after conversation resolved: available only on website inboxes. It ships enabled; while enabled, a new message from the visitor reopens the resolved conversation. - With the option disabled: on a resolved conversation the widget hides the composer and shows the Start a new conversation button, which takes the visitor to the pre-chat form. If the visitor already has an email on file, a Request a conversation transcript button appears as well. Use cases - Answer visitor questions on product and checkout pages in real time. - Capture leads through the pre-chat form and turn them into CRM contacts. - Reduce abandonment by offering help at the right moment of the visit. - Truly close a case: once resolved, the visitor opens a new conversation instead of reopening an old one, which keeps the queue and the metrics cleaner. Tips, limits & best practices - Install the script on all relevant pages so you don't miss conversations. - Set clear offline messages stating when the team is back. - Keep the greeting short and to the point; invite the visitor to say how you can help. - The block is not only a UI change: even if someone posts from outside the widget, the platform refuses the message on a resolved conversation and answers with the error "Conversation is resolved and does not accept new messages". - The transcript button honors a 15-second interval between one request and the next. - Before turning the option off, tell your team: a conversation resolved too early forces the visitor to start over from the pre-chat form. Troubleshooting - The widget doesn't appear: confirm the script was pasted correctly and the configured domain matches the site's. - Messages don't arrive: check that the inbox is active and has agents assigned. - Appears on the wrong page: adjust which pages load the script. - The visitor can't reply after the case is closed: Allow messages after conversation resolved is off on that inbox. Turn it on if you want to keep the same conversation. - I can't find the option in the inbox settings: it exists only on Website channel inboxes. - I changed the option and the widget didn't follow: the value travels to the widget when the page loads. Reload the site page so the widget reads the new setting. See also - Email channel: forwarding and IMAP/SMTP - API channel for custom integrations - Inbox settings - Inboxes and channels overview
Email channel: forwarding and IMAP/SMTP
Overview The Email channel turns incoming emails into conversations inside the platform. Your team replies from the same panel as every other conversation, with per-contact history, assignment, internal notes and automations β no need to open a separate email client. There are two ways to connect: by forwarding (you redirect emails to an address generated by the platform) or by IMAP/SMTP (the platform reads from and sends through your own mailbox directly). Pick whichever fits your operation best. When the Branded Email Templates feature is enabled on the account, you can also define a branded email layout β the HTML that wraps the body of the reply sent to the customer. That layout can apply to the whole account or be different for each email inbox, so every inbox replies with its own visual identity. Prerequisites - An administrator profile to create the email inbox. - A dedicated support email address (for example, support@yourcompany.com). - For IMAP/SMTP mode: your mailbox server details (host, port, username and password or app password) and IMAP/SMTP access enabled at your provider. - For the branded layout: the Branded Email Templates feature enabled on the account. It ships disabled by default and is turned on account by account. Step by step 1. Under Settings β Inboxes, create a new inbox and choose Email. 2. Enter the name and the support email address. 3. Choose the connection mode: - Forwarding: the platform generates a receiving address. In your email provider, set up a forwarding rule from your support address to that generated address. That generated address only appears when the installation is set up to receive email; if it is not, the platform states that IMAP/SMTP is required and no email is processed without it. - IMAP/SMTP: enter the incoming (IMAP) and outgoing (SMTP) server details. 4. Save and send a test email to the support address. 5. Confirm the email shows up as a new conversation in the inbox and reply from there. 6. (Optional) Open Settings β Account β Branded emails to set the account layout, or Settings β Inboxes β your email inbox β Configuration β Branded emails to customize that inbox. 7. Check the displayed layout source. Choose Customize inherited layout to start from the inherited HTML, keep {{ content_for_layout }}, then select Preview draft and Save layout. When the source is no layout saved, there is no HTML to inherit: the editor starts from a minimal layout that holds only the marker. 8. Reply to a test conversation and check the received email to confirm the layout was applied. Inheritance, preview and unsaved changes Use inherited layout clears the editor as a draft. The change takes effect only after Save layout; an inbox then inherits the account layout or, when the account has none, the installation layout. When no layout is saved at any of those levels, the displayed source is no layout saved: the reply is sent without a layout, and the preview shows exactly that. Discard changes asks for confirmation and restores the saved version. A failed save keeps your draft and shows the validation error. Leaving the page with unsaved changes asks before discarding it. The preview uses the same Liquid renderer as reply emails, with synthetic message content and people. It does not send mail or modify the saved template. External images, scripts, links and forms are blocked in the preview; check the actual received email to validate the final appearance. Existing layouts configured through the API are preserved. API integrations may still use the account layout endpoint (with optional inbox_id) or the existing inbox update endpoint. Settings & options - Connection mode: forwarding or IMAP/SMTP, as chosen at creation. - Outgoing server (SMTP): used to send replies from the platform with your address. - Signature and identity: configure how your name and address appear to the recipient. - Conversation threading: replies on the same subject/thread are grouped into one conversation. - Branded email layout: the HTML that wraps the reply body. The platform always looks for the layout in this order β inbox β account β installation β and uses the first one it finds. So an inbox without its own layout inherits the account's. - Per-inbox scope: only email inboxes accept their own layout. The inbox layout is returned by the inbox API only to administrators and only while the feature is enabled. - Removing the layout: send the same branded_email_layout field blank (or with the value null). The inbox falls back to the account's layout, or to the installation's. Use cases - Centralize email support alongside WhatsApp, website and social channels. - Route messages from a corporate address (support@, sales@) to the right team. - Apply automations and auto-assignment to incoming emails. - Serve several brands from one account, with one email inbox and one visual layout per brand. Tips, limits & best practices - Prefer a dedicated support address so it doesn't mix with a personal inbox. - On providers with two-step verification, use an app password for IMAP/SMTP. - Test both sending and receiving before sharing the address with customers. - The layout HTML must contain the {{ content_for_layout }} marker β that is exactly where the reply body is inserted. Without the marker the platform refuses to save it. - The layout is validated as Liquid and can use the platform's message variables, among them contact (for example, {{ contact.name }}), agent, inbox, account, conversation and brand. - The layout body accepts at most 256 KB. - The inbox layout applies only to conversation replies sent by email. The account layout is the account's base email layout: with the feature on, it also wraps the platform's other emails that use the standard layout, such as agent notifications. To change only how customer replies look, use the per-inbox layout. - After upgrading the platform, Branded Email Templates is left disabled on every account: it reuses the former insert_article_in_reply feature, and the upgrade migration disables the new feature on every account where it appeared enabled. Turn it back on wherever you use the layout. Troubleshooting - Emails don't arrive: review the forwarding rule or the IMAP details; check the destination's spam folder. - Can't send replies: verify SMTP host, port and credentials, and that the provider allows sending from external apps. - Duplicate conversations: make sure only one forwarding rule is active for the address. Validation messages appear in the dashboard language of the person editing (or in the account language when that person has not chosen one). The texts below are the English ones. - "Branded email templates feature is not enabled": the feature is off on this account. Enable it and try again. - "Branded email layouts require an email inbox": you tried to save a layout on an inbox that is not an email inbox. Use the account layout instead. Through the inbox update endpoint the text is "Branded email layout is only supported for email inboxes". - "Body must include {{ content_for_layout }}": the marker is missing from the HTML you sent. - "Body has invalid Liquid syntax": review the {{ }} braces and {% %} blocks in the HTML. The technical detail after the colon comes from the Liquid parser. - The email arrived without the layout: confirm the feature is enabled on the account, that a layout is saved (on the inbox, the account or the installation) and that the inbox is an email one. With no layout saved, the editor shows the source no layout saved and the reply goes out without a layout. See also - Website channel with live chat widget - API channel for custom integrations - Inbox settings - Overview of inboxes and channels
Show the agent name on sent messages
Overview This feature identifies the agent at the beginning of every sent message using the Agent name: format. It works across supported outbound channels and keeps the personal signature configured in the composer. Prerequisites This feature is unlocked in two steps, by two different people: 1. The platform team (ConversaLabs) enables Outbound Agent Name Header for the account. 2. Once unlocked, an account administrator decides, under Settings β Account β General, whether the identification should be mandatory for every agent. Step by step 1. Ask ConversaLabs to enable the Agent name on sent messages feature for your account. 2. As the account administrator, go to Settings β Account β General. A new "Require agent name on every sent message" option appears once the feature is unlocked. 3. Leave that option off to let each agent choose individually, or turn it on to require the name for every agent. 4. In their own profile (Settings β Profile), each agent enables or disables the option when the mode is optional. Once the administrator makes it mandatory, it appears locked and enabled on every agent's profile. Settings & options In optional mode, each agent controls the option in their own profile. In mandatory mode β set by the account administrator, not the platform β the option is locked and applied automatically for every agent. The profile display name is used first; if it is empty, the platform uses the full profile name. The personal signature remains independent and appears below the content when enabled β both features can be active at the same time. Rule per inbox Each inbox can have a rule different from the account. In Settings β Inboxes β (the inbox) β Conversation rules, under Agent name on outgoing messages, choose: - Follow the account rule (default) β what the administrator set for the account applies. - Require the agent name in this inbox β the name appears on every message sent from this inbox, even if the account lets each agent choose. - Let each agent choose in this inbox β in this inbox each agent's profile preference applies, even if the account requires the name. The screen shows the rule in effect and where it comes from, and the Restore the account default button removes the exception. On the account screen, the list Inboxes that do not follow the account rule shows every exception. When the account requires the name but some inbox leaves the choice to the agent, the profile option is unlocked so it applies in those inboxes. The per-inbox rule does not apply to e-mail inboxes, where the name is never added. Rule per agent and administrators The administrator always decides whether an agent's name appears. In Settings β Agents β (edit the agent), under Agent name on outgoing messages, choose: - Follow the inbox and account rules (default). - Always show this agent's name β the name appears on every message they send, in any inbox. - Never show this agent's name β the name does not appear, even if the inbox or the account require it. On the agents list, an agent set to "always" or "never" is marked on their own row; this mark is shown to administrators only. The order of precedence is: the agent's rule, then the inbox rule, then the account rule. Only when none of them forces or forbids it does the preference the agent set in their own profile apply; when the administrator chose "always" or "never", the profile option is shown locked with the explanation. Administrators are not bound by these rules: each administrator decides in their own profile whether the name appears on the messages they send. That is why the choice is not offered when editing a user with the administrator role. Behaviour change: before this version, the option "Require the agent name on every outgoing message" also bound administrators. It now applies to agents only. An administrator who wants to keep the name on their messages must turn the option on in their own profile. Use cases Use this feature to make it clear which person replied when several agents work in shared channels. Tips, limits & best practices Only sent messages are changed; private notes and incoming messages are not. Channels without formatting support show the name as plain text. Troubleshooting If the name does not appear, confirm that the feature is enabled for the account and that the agent profile has a display name or full name. See also - Getting started See the article about profile settings and personal message signatures.
Social channels: Facebook Messenger, Instagram and TikTok
Overview Social channels bring your social media messages into the platform. Direct messages and interactions from Facebook Messenger, Instagram and TikTok arrive as conversations in the same panel, with per-contact history, assignment, internal notes and automations. Your team replies to everything in one place, without switching between apps and without losing the context of each customer. Instagram inboxes are created through the Continue with Instagram button, which opens Meta's official authorization and brings you back to the platform with the inbox created. When Meta hits an incident on its own APIs, the platform shows unavailability notices on the affected screens instead of letting you try blindly β see Settings & options. Prerequisites - An administrator profile to create social channel inboxes. - An account/page on the corresponding network with admin permission to connect it. - Authorization (login) on the social network at connection time, granting the requested permissions. - Some social channels may depend on being enabled for your account β check with an administrator if the option doesn't appear. - No active Meta incident blocking inbox creation. When there is one, the connect button is disabled and an amber notice explains the situation. Step by step 1. Under Settings β Inboxes, create a new inbox and choose the desired social channel (Facebook Messenger, Instagram or TikTok). 2. Log in to the social network and authorize the connection, granting the requested permissions. On Instagram, the button is Continue with Instagram. 3. Select the page/account to connect to the inbox. 4. Finish creating the inbox. 5. Send a test message through the social network and confirm it reaches the platform. Settings & options - Connected account: the network page/account linked to that inbox. - Assignment and teams: define who handles conversations from that channel. - Automation and replies: apply automations, canned responses and greetings as in other channels. - Reconnection: if the authorization expires, log in again to reactivate the channel. - Instagram mentions: caption or comment mentions appear as an incoming message in a dedicated Instagram inbox conversation. The conversation is read-only because this event does not provide a valid DM recipient; your team can still add private notes. - Unavailability notice at creation: during an incident on Meta's API, the Instagram and Facebook inbox creation screens disable the connect button and show an amber notice stating that the unavailability is temporary and comes from Meta's API, not from the platform. The notice carries a View status updates link. The same block applies to WhatsApp created through Embedded Signup. - Unavailability notice while handling conversations: when the incident affects Instagram message sending, the notice appears in two places β on the Instagram inbox settings screen, in amber, and at the top of the Instagram conversation itself. Both say some messages or actions may be delayed or unavailable while full operation is restored, and both carry the status link. - Public replies blocked during the incident: while that notice is active, the Instagram conversation composer does not accept a public reply. Agents can still write a private note for the team, but nothing goes out to the customer until the platform reopens sending. This is not an agent or inbox failure. - Where these notices appear: both notices are controlled by installation switches and are shown only on cloud installations. On a self-hosted installation they don't appear and the behavior is defined by the installation configuration; there, whoever runs the platform decides how to communicate the incident. - Instagram inbox migration: if the same Instagram account was already on another inbox, the platform migrates new messages to the Instagram channel inbox and flags the old one, which stops sending and receiving for that account. Use cases - Handle Instagram and Messenger DMs alongside WhatsApp and website, without switching apps. - Reply to interactions coming from TikTok and turn followers into CRM contacts. - Standardize marketing and sales support across every network. - Tell, during a Meta incident, whether the problem is the network or your configuration β without opening a ticket in the dark. Tips, limits & best practices - Each network has its own rules and reply windows β answer within the allowed timeframe. - Keep the account permissions valid; expired authorizations stop messages from arriving. - Use a profile with page admin access to avoid connection blocks. - During a Meta incident, avoid recreating the inbox or revoking authorizations: it doesn't speed up recovery and may force a full reconfiguration later. Wait and follow the status link in the notice itself. - Tell your team when the sending-unavailable notice is active: public replies on Instagram are blocked and only private notes remain available. Agree in advance on what to do with open conversations β reschedule the follow-up, reach the customer on another channel β instead of letting each agent discover on their own that the send button is gone. Troubleshooting - Messages don't arrive: check whether the authorization is still valid and log in again if needed. - Can't select the page/account: confirm your user is an admin of it on the network. - The channel doesn't appear at creation: it may not be enabled for your account β talk to an administrator. - The Instagram avatar is missing or outdated: the inbox shows the connected account's profile picture automatically and keeps it up to date; if it still looks old, reconnect the inbox in Inbox settings to force a refresh. - I cannot reply to the mentions conversation: this is expected. Use the identifiers shown in the message to locate the Instagram post or comment and reply there. - The Continue with Instagram button is disabled: there's an active Meta incident blocking inbox creation. The amber notice below the button confirms it and carries the status link. - Error connecting to Instagram: the screen shows "There was an error connecting to Instagram, please try again". Close the authorization, reload the creation page and repeat the sign-in β the error parameters are cleared from the URL automatically so you can try again. - I can only send private notes on Instagram, not public replies: that's Meta's sending incident. Confirm it through the amber notice on the inbox settings screen or the notice at the top of the conversation. While it is active, public replies are blocked on purpose; recovery does not depend on your configuration and nothing needs to be reconfigured. See also - WhatsApp Cloud API with Embedded Signup - Website channel with live chat widget - Inbox settings - Overview of inboxes and channels
Instagram and Messenger messages and media
Overview ConversaLabs receives Instagram and Facebook Messenger messages containing text, images, video, audio, files, shares, Stories and Reels. Replies, reactions, reads, postbacks, referrals, edits and unsent messages also update the conversation when Meta makes the event available to the connected account. Inbound media is copied to the installation storage, so the conversation no longer depends on Meta's temporary link after processing finishes. Prerequisites - An Instagram or Facebook Messenger inbox connected by an administrator. - Meta permissions approved for the Page or professional account. - A valid authorization for the connection. Step by step 1. Open Settings β Inboxes and confirm that the social account is connected. 2. Send a test DM from the native app. 3. Test text, one media item, and a shared Reel or Story. 4. Open the conversation in ConversaLabs and wait for the media processing indicator to clear. 5. Reply, react, or choose a quick reply to validate the outbound path. Settings & options - Quick replies: up to 13 options can be sent natively. - Message replies: keep the original message reference when Meta provides its ID. - Processing media: text appears immediately while the file is copied in the background. - Unavailable media: Meta did not provide the bytes or its link had already expired; the rest of the conversation remains available. - Mentions: when Meta provides the author, the mention is associated with that contact and their active conversation. If the author cannot be resolved, it remains in a read-only fallback that a later delivery can reconcile. Use cases - Receive a shared Reel with a caption without losing the video inside a text bubble. - Handle messages containing multiple photos or videos. - Use quick replies in automations and flows. - Record reactions, edits, removals, and attribution from ads or social links. - Review a mention with author, text, preview, and link when the connected account is authorized to access that context. Tips, limits & best practices - The user must start an Instagram conversation; Meta does not allow unrestricted business-initiated DMs. - Instagram group conversations are not supported by its messaging API. - Some shares provide only a post URL, not the original media file. In that case, ConversaLabs shows a link card instead of trying to play the page as a video. - Mention context is obtained only through Meta's authorized API; ConversaLabs does not scrape Instagram. - Reply within Meta's messaging window and policies. Troubleshooting - Nothing arrives: reconnect the inbox and confirm Page/account permissions. - βProcessing mediaβ remains visible: allow the automatic retries to finish; the text is already saved. - βMedia unavailableβ appears: use the native app to inspect it; an already expired Meta link cannot be reconstructed. - The share is a link: for some posts and Reels, that is the only content Meta provides. - The mention has no author or preview: confirm the connected account permissions. The mention is preserved without exposing technical identifiers and can be enriched if Meta grants access later. Some Instagram events arrive as an empty card, without text, media or a post reference. In that case, a notice asks you to check the Instagram app. The event is preserved: arriving near a mention does not prove that it represents the same interaction. Identifying the person who mentioned the account When Instagram returns an author ID, the mention is linked to the contact with that ID in the same inbox. If a conversation already exists with that contact, the event appears there. A username alone is never used to merge contacts. When Instagram uses different identifiers for comments and Direct, the stored username only helps find a possible conversation in the same inbox. The mention moves to that Direct only if there is exactly one eligible candidate and a recent Meta lookup confirms the same username as the author. Ambiguous matches, mismatches and lookup failures keep the mention separate. Historical recovery uses the same confirmation and preserves the original event. If the direct lookup cannot resolve the author, the system also checks a Facebook connection in the same account linked to the exact same Instagram professional profile. Each connection uses its own permissions. Without sufficient identity, the mention stays in the clearly marked, read-only space for mentions awaiting identification. Recovered context updates the same event without creating another message. Recovering pending mentions The technical conversation groups mentions whose authors could not yet be confirmed. It may contain events from different people and remains read-only. A username or photo does not authorize merging contacts. The card explains when another attempt is scheduled, when Meta authorization is missing, or when automatic retries have ended. The system makes up to four additional lookups with increasing intervals. The mention and its attachments remain available even when Meta does not disclose the identity. After reviewing the connection permissions, ask your administrator to reprocess that inbox's history. Recovery verifies the connected business profile and handles each mention separately. Once the author is confirmed, the same event moves to the correct conversation without replaying commercial notifications, closing support sessions or sending a satisfaction survey. If no DM exists yet, the identified mention stays read-only until the person starts a Direct conversation. Reauthorize permissions and use the contact name Under Settings β Inboxes β Instagram β Connection, select Reauthorize Instagram even if DMs still work. On Meta, choose the same profile and allow message and comment management. Only administrators or users with integration management permission can do this. An accepted DM does not guarantee permission to post public replies. A direct Instagram connection alone does not authorize comment likes. Liking Instagram comments requires a Facebook Page connection for the same account and profile, with the engagement permissions described below. Comment-to-DM automation looks up the profile name using the exact author identity before rendering {{ contact.first_name }}. Manually edited names are preserved. If Meta does not allow profile access, the username remains the available identifier; the system does not guess a name from it. See also - Social channels - Inbox settings Reauthorize Messenger Under Settings β Inboxes β Messenger β Connection, select Reauthorize Messenger even while the connection is active. Sign in with a Facebook account that manages the connected page and grant the permissions. Reconnection updates the same inbox and preserves its conversations and name. If authorization is canceled, the SDK fails to load or the page is unavailable, you can retry without creating another inbox. Only administrators or users with integration management permission can reauthorize. The Instagram migration notice applies only to Instagram messages, which moved to their own inbox. Messenger remains in this inbox. Like Instagram comments Likes use the Instagram profile linked to a Facebook Page. In the Messenger inbox for that same account and Page, open Connection β Authorize Instagram likes. Grant engagement permission; the Meta app must also be authorized to request it. This authorization does not create another inbox or change the profile receiving your messages. Enable Like comment in the comment rule. If the connection is missing, more than one matching connection exists, or permission was not granted, activity explains the obstacle without marking the like as completed. DM and public reply results remain independent. Stories and private content are not supported by the likes API. The sending limit prevents bursts; a rate-limited like is not automatically retried. Historical records are neither erased nor replayed.
Voice channel: calls and AI calls
Overview The Voice channel brings phone call support into the platform. Calls are logged alongside the contact's other conversations, with history, assignment, internal notes and reports β unifying voice and text in the same operation. Beyond telephony calls, the platform offers AI calls: a Maestro AI agent answers the incoming call instead of the team. That setting does not live in the Voice inbox β you configure it in the Calls tab of a WhatsApp inbox, under the AI agent field. Both modes feed the same history and the same panel. The whole history is available in two places: the Calls panel in the sidebar, which gathers the account's calls with filters and pagination; and the call block in the contact panel inside each conversation. WhatsApp Web and WhatsApp Cloud calls show up in the same panel as telephony calls β there are no separate lists per provider. Twilio Voice in Community edition Twilio telephony uses the installation operator's account-level Twilio Voice feature. It requires neither an Enterprise license nor WhatsApp Inbox Suite. For WhatsApp calls, enable WhatsApp Inbox Suite and configure the corresponding WhatsApp inbox. Disabling Twilio Voice prevents new calls and new phone access tokens. Existing calls can still be ended, and their events and recordings continue to be processed. Telephony history remains in conversations; the global Calls dashboard described below remains specific to installations that provide it. With the Media Library enabled, recording imports include native Twilio and WhatsApp calls. A recording that arrives after a call ends can be included in the next import; existing files are reused without an additional copy. Prerequisites - An administrator profile to create and configure the Voice inbox. - The Voice channel enabled for your account β it's an optional feature; if it doesn't appear, confirm with an administrator. - The voice provider's credentials/integration required by the channel setup. - For AI calls: a WhatsApp inbox, the WhatsApp Inbox Suite feature enabled for the account (or a WhatsApp Web channel), and a Maestro AI agent already created. - For the Calls panel: at least one inbox with voice enabled. With none, the page shows the Make and receive calls in one place invitation with the Set up voice channel button (available to administrators). Step by step 1. Under Settings β Inboxes, create a new inbox and choose Voice. 2. Enter the inbox name and the voice provider's integration details. 3. Define how calls behave (receiving, forwarding and logging). 4. To use AI, open a WhatsApp inbox, go to the Calls tab and pick the AI agent that should answer. Leave the field empty (No AI agent (ring agents)) to ring the team directly. 5. Make a test call and confirm it is logged in the contact's conversation. 6. Open Calls in the sidebar to see the call in the account list, with its status, who answered it, the originating inbox and the date. 7. Inside the conversation, open the contact side panel and check the call history block, with duration, agent and transcript when available. Settings & options - Calls: receive and place calls, logged into the contact's conversation. - AI calls: in the Calls tab of a WhatsApp inbox, besides the AI agent you switch recording on or off and cap the per-call duration. Saving is allowed only for people who manage inboxes. - Assignment and teams: define who handles calls from that inbox. - Logging and reports: each call is tied to the contact and feeds the reports. Calls panel The Calls item in the sidebar opens the account's call list. It is available on Cloud and Enterprise installations. - Quick filters: Missed and No reply are always visible. Other activity holds Incoming, Outgoing and In progress. - Assignee: an administrator-only filter, with an All assignees option. Non-administrators already see only their own calls, so the filter isn't offered to them. - More filters: filter by Inbox, with All inboxes as the default. The list only offers inboxes with voice enabled. - State in the URL: the activity filter, the assignee, the inbox and the page are written to the address, so a shared link reopens exactly the same view. - Pagination: 25 calls per page. With no activity filter, the header reads All Calls (N); with a filter active, the total appears inside the filter chip itself. - What each row shows: the contact (name or phone number), a status badge (Ongoing, Incoming, Outgoing, Missed, No reply, Failed), Picked by or Dialed by with the agent, or the outcome when no agent took it (No agent answered this call, Contact did not answer, This call could not be connected), the inbox icon and name, the date, and a shortcut to the conversation by its number. - Recording: when the call has a recording, the row itself shows the audio player. - Who sees what: administrators and users allowed to manage reports see the whole account. Everyone else sees only the calls they answered, within conversations they can still access. History inside the conversation In the contact side panel, the call block lists that contact's calls newest first, with direction, status, duration, agent and an expandable transcript when one exists. It refreshes in real time as the call progresses. In Community, this read-only history stays available even when new calling is disabled. It includes WhatsApp (Cloud and Web) and Twilio calls from conversations you can access. Enterprise history retains its existing behavior. Use cases - Serve customers by phone without losing the history of their text conversations. - Use AI to assist triage and call handling at high volume. - Centralize voice, WhatsApp and other channels in the same queue and the same reports. - Review the day's Missed calls and call people back before they go to a competitor. - Share a pre-filtered link with leadership (for example, no-reply calls from one inbox) ahead of a follow-up meeting. Tips, limits & best practices - Test audio (input and output) before putting the channel into production. - Combine the Voice channel with assignment rules to distribute calls fairly. - When using AI calls, review the assistant's behavior periodically. - Treat Missed and No reply as two different things: Missed are inbound calls nobody answered; No reply are calls your team placed and the contact didn't answer. - The block inside the conversation shows up to 100 calls for that contact. For long histories, use the Calls panel with filters and pagination. Troubleshooting - Calls don't connect: verify the provider integration and the credentials entered. - I don't see the Voice option: the channel may not be enabled for your account β talk to an administrator. - AI doesn't act on calls: the AI agent answers WhatsApp calls. Check that the Calls tab of that inbox has an AI agent selected β left empty, the call rings human agents directly. - The panel shows the setup screen even though calls exist: the page only lists calls when the voice feature is enabled on the account and at least one inbox has voice enabled. Re-enable voice on the inbox and reload. - I see fewer calls than my teammates: without an administrator profile or the report-management permission, the list only shows the calls you answered. - The list is empty after filtering: the No calls found message means that filter combination returned nothing. Go back to All assignees and All inboxes to check. - I don't see the call block inside the conversation: it depends on the WhatsApp Inbox Suite feature being enabled for the account. Ask an administrator to enable it. - A row says "Deleted contact": the call stays on record even after the contact is removed from the database. See also - WhatsApp Inbox Suite: Templates, Flows and Calls - API channel for custom integrations - Inbox settings - Overview of inboxes and channels
API channel for custom integrations
Overview The API channel is a generic channel for custom integrations. Instead of a ready-made channel (WhatsApp, email, website), you connect your own system or a non-native channel: your application sends messages to the platform and receives replies via API and webhooks. It's the ideal foundation to integrate tailor-made channels, bots and external systems, keeping conversations centralized with history, assignment and automations like any other channel. Prerequisites - An administrator profile to create the API inbox. - Technical knowledge to consume an HTTP API and handle webhooks in your system. - A public endpoint on your side to receive webhook events (messages from the platform). - Your account's API access credentials (see the API & Developers category). Step by step 1. Under Settings β Inboxes, create a new inbox and choose API. 2. Enter the channel name and, if applicable, your system's webhook URL. 3. Finish creating it β the inbox now has its own identifier. 4. In your system, use the API to create/identify the contact and send messages to the inbox. 5. Configure the webhook to receive the platform's replies and events in your system. 6. Send a test message through the API and confirm it appears as a conversation. Settings & options - Inbox identifier: used in API calls to route messages to the right inbox. - Webhook URL: your system's endpoint that receives messages and events from the platform. - Contacts and conversations: created/updated via API, with the same features as other channels. - Automation and assignment: apply rules just like on any other channel. Use cases - Connect a proprietary channel or a legacy system with no native integration. - Build a custom bot that talks to contacts through the platform. - Integrate an internal app to log and reply to conversations automatically. Tips, limits & best practices - Handle the webhook idempotently to avoid duplicate conversations or messages. - Protect your API credentials: keep them on the server, never exposed on the client. - Implement retries on sending to cope with temporary network failures. Troubleshooting - Messages don't come in: check the inbox identifier and the credentials used in the API. - I don't receive events in my system: validate the webhook URL and that your endpoint responds successfully. - Duplicate conversations: ensure idempotent webhook handling on your side. See also - Website channel with live chat widget - Email channel: forwarding and IMAP/SMTP - Inbox settings - Overview of inboxes and channels
Inbox settings: business hours, assignment, CSAT and greeting
Overview Each inbox has its own settings that apply to every conversation on that channel. Through them you define who handles conversations, when they are handled, how satisfaction is measured and which automatic messages are sent β adapting the behavior to your business. These options live in the inbox's settings area and can be adjusted at any time by an administrator. Prerequisites - An administrator profile to edit an inbox's settings. - An inbox already created (any channel: WhatsApp, website, email, social, voice or API). - Agents and teams already registered, to use auto-assignment. Step by step 1. Under Settings β Inboxes, select the inbox you want to configure. 2. Open the inbox settings and find the behavior sections. 3. Set the business hours and the out-of-office message. 4. Configure auto-assignment of conversations to agents/teams. 5. Enable the satisfaction survey (CSAT) to collect a rating at the end of the conversation. 6. Write the greeting and away messages. Save your changes. On mobile, use the Inbox section picker at the top to switch between settings, collaborators, business hours, CSAT, and channel-specific features. Long lists are presented as cards and actions use the available width, without requiring horizontal scrolling. Settings & options - Business hours: define the days and times the team is available; outside them, a message informs availability. - Auto-assignment: distributes conversations across the inbox's agents/teams in a balanced way, reducing manual work. - Satisfaction survey (CSAT): asks the contact for a rating after resolution, feeding the quality reports. - Greeting message: sent at the start of the conversation, introducing the company and setting the tone. - Collaborators: which agents take part in that inbox. Use cases - Automatically notify when the team is out of office and when it returns. - Distribute conversations fairly without relying on manual assignment. - Measure customer satisfaction per channel with CSAT and track it in reports. Tips, limits & best practices - Keep the hours aligned with the account's time zone so customers aren't confused. - Use a short, clear greeting inviting the contact to explain what they need. - Enable CSAT consistently across channels to compare quality between them. Troubleshooting - The inbox is still listed after I asked to delete it: the deletion runs in the background, because it has to remove the whole conversation history. While it runs, the inbox shows a Deletion in progress badge and cannot be edited. If something blocks the deletion, the badge turns into a failure with the reason β the inbox keeps working and nothing else is lost. Send the reason to support instead of retrying the deletion over and over. - Conversations aren't assigned: confirm auto-assignment is on and that there are agents in the inbox. - The out-of-office message doesn't appear: review the business hours and the account time zone. - CSAT isn't sent: check that the survey is enabled and that the conversation was marked resolved. See also - Overview of inboxes and channels - Website channel with live chat widget - Email channel: forwarding and IMAP/SMTP - Social channels: Facebook Messenger, Instagram and TikTok
Conversation routing: reopen the same conversation or create new ones
Overview Conversation routing defines what happens when a customer sends a message after their conversation has been resolved. Each inbox has two modes: - Reopen the same conversation β the platform reuses the contact's existing conversation and reopens it automatically when they reply. The whole history stays in one place. - Create new conversations β after resolution, the contact's next message opens a new conversation, already open for the team. Each request becomes a separate ticket. The setting lives under Settings β Inboxes β (your inbox) β Configuration, in the "Conversation routing" section. Prerequisites - Administrator role to change inbox settings. - Supported channels: WhatsApp (Cloud and WhatsApp Web), Website (platform live chat), SMS, Telegram, Line, TikTok, Facebook, Instagram and API. - The email channel does not use this control: emails are grouped by thread (subject/headers), and a new message after resolution always opens a new conversation, by design. Step by step 1. Go to Settings β Inboxes and open the inbox. 2. On the Configuration tab, find Conversation routing. 3. Pick Reopen the same conversation or Create new conversations. 4. Save. The change applies immediately to the next incoming messages. Settings & options - Reopen the same conversation - When the customer replies, the resolved conversation reopens instantly: it returns to the open tab, notifies the team and enters auto-assignment. - If a bot (Maestro/virtual agent) is active and inside its configured hours, the conversation goes back to the bot first; otherwise it opens straight to the team. - WhatsApp groups and channels follow the same behavior: the shared group conversation is reopened instead of duplicated. - If the contact has more than one conversation in the inbox (legacy data), the platform prioritizes the conversation that is still open β a conversation being worked is never abandoned in favor of a newer resolved one. - Create new conversations - The resolved conversation stays closed as a historical record; the customer's reply opens a new conversation, open and visible to the team. - Website chat: website inboxes ship with Reopen the same conversation enabled by default (the classic widget behavior). You can switch to "Create new conversations" at any time. - Blocked contact: messages from a blocked contact are dropped and do not reopen the muted conversation. Use cases - Ongoing relationship (recommended for WhatsApp): with "Reopen the same conversation", the agent sees the customer's full history in a single thread β ideal for sales, recurring support and post-sales. - Ticket-based operation: with "Create new conversations", every request becomes a ticket with its own start and end β ideal for per-request SLAs and per-conversation reporting. Tips, limits & best practices - Reopening happens when the customer sends a message. Messages the operator sends from the native app (echoes) do not reopen the conversation. - Campaign sends do not reopen resolved conversations β the customer's reply does. - Combine with Auto resolve (account settings) to close inactive conversations without losing new messages: when the customer replies, the same conversation reopens. - On WhatsApp inboxes with a legacy backlog of duplicated conversations, "Reopen the same conversation" concentrates new messages into a single thread from now on. Troubleshooting - "The customer replied and the conversation did not reopen" β confirm the inbox is set to "Reopen the same conversation" and the contact is not blocked. If a bot is active, the conversation may have returned to the bot queue (pending status) instead of the open tab. - "Every message creates a new conversation" β the inbox is set to "Create new conversations". Switch to "Reopen the same conversation" for a single thread per contact. - "The new conversation was born pending and nobody saw it" β that only happens when a bot will actually act; if the bot is outside its hours or disabled for the conversation, it is born open. See also - Inbox settings - Automatic conversation resolution - Website channel with live chat widget
Audio transcription: read the conversation audio as text
Overview Audio transcription turns conversation audio into text and shows that text under the player, inside the message bubble itself. Agents read the message without pressing play β useful in a noisy room, when handling several conversations at once, and for finding an old voice note later by what was said in it. It works on any channel that can receive audio: WhatsApp (Cloud and Web), Telegram, SMS, Line, Messenger, Instagram, email, the website widget, the API channel and call recordings. The setup is the same for all of them. Three decisions, in this order: - On or off on the inbox. Every new inbox starts off. - Which audio it covers: what the contact sent, what the agent recorded, or both. - An exception per conversation, when one conversation needs to behave differently from the rest of the inbox. Prerequisites - An OpenAI or Groq API key available to the account. Configure it in Settings β Integrations, or ask the platform operator to configure it on the server. - Administrator access to configure the inbox. - Access to the conversation to create a one-off exception. The screen tells you whether a key exists: a Key configured or No key badge appears at the top of the tab. Without a key, transcription cannot produce any text at all β so it is worth checking that badge before turning the feature on. Step by step Turn it on for the inbox 1. Open Settings β Inboxes and select the inbox. 2. Open the Audio transcription tab. 3. Check the key badge at the top. If it reads No key, use the link to configure the integration before continuing. 4. Turn Audio transcription on. 5. Choose the scope with the two switches below: - Transcribe audio received from contacts β on by default. - Transcribe audio recorded by agents β off on new inboxes; inboxes that already existed come with it on, preserving what they were already doing. Each switch saves on its own, the moment you change it. Adjust a single conversation 1. Open the conversation and expand Audio transcription in the right sidebar. 2. The panel shows the current policy and which audio is being transcribed there. 3. Use Adjust for this conversation and pick the policy: - Follow the inbox β the default. - Always transcribe β applies even when the inbox has transcription switched off. - Never transcribe β turns it off for this conversation only. 4. With Always transcribe you can still set each scope separately, or leave it inheriting the inbox. 5. Click Save. Settings & options | Where | Option | Default | What it does | |---|---|---|---| | Inbox | Audio transcription | Off | Master switch for the inbox. | | Inbox | Audio received from contacts | On | Transcribes what the contact sent. | | Inbox | Audio recorded by agents | Off on new inboxes | Transcribes what the agent recorded. Inboxes that already existed keep what they were doing: on. | | Conversation | Policy | Follow the inbox | A one-off exception that leaves the inbox untouched. | A new inbox starts with agent audio off on purpose: it spends AI producing text the agent just spoke. An inbox that already existed keeps transcribing agent audio, because that is what it was already doing β the update does not switch anything off on its own. If you do not need that text, turn the switch off and the spend stops. Use cases - Audio-heavy support: the team reads the message in seconds and replies in text. - Searching the history: transcribed text is searchable, so an old voice note becomes findable by what was said in it. - A sensitive conversation: one conversation can stay on Never transcribe even with the inbox switched on. - A controlled pilot: enable transcription only on the inbox you want to evaluate before rolling it out. Tips, limits & best practices - The per-file limit is 25 MB. Larger audio is not transcribed. - Supported formats: flac, m4a, mp3, mp4, mpeg, mpga, oga, ogg, wav and webm. Older formats such as amr and 3gp are not transcribed β the bubble says so instead of staying empty. - The language is detected automatically. When the conversation already has a known language, it is used as a hint to improve the result. - The transcription appears on its own, with no page reload. - Transcribed text can also be translated β see the automatic translation article at the end. Troubleshooting The audio bubble shows no text at all. Check, in this order: the inbox has Audio transcription on; the scope matching the direction of that audio is on; the conversation is not set to Never transcribe; and the badge at the top of the tab reads Key configured. The bubble shows a notice instead of the text. The notice says exactly what happened: | Notice | What to do | |---|---| | This audio format cannot be transcribed | The audio arrived in a container the providers do not accept. Ask for the audio again or convert the file. | | Needs an OpenAI or Groq key | Configure the integration and use Try again. | | The provider did not answer | A temporary failure. Use Try again. | | Audio above the 25 MB limit | Not transcribable. Ask for a shorter recording. | | Empty audio file | The file arrived with no content. Ask for it to be sent again. | The "Try again" button is not there. It only appears for failures a second attempt could actually fix. An unsupported format or an oversized file would fail again in exactly the same way. We are paying for AI on audio we do not need. Switch Transcribe audio recorded by agents off on the inbox. It is the most common source of spend that produces no value. See also - Inbox settings - Real-time automatic translation
Customer satisfaction survey (CSAT) per channel
Overview The satisfaction survey (CSAT) works the same way on every channel: when the conversation is resolved, the contact is asked to rate it and the answer feeds the reports. What changes is how the question goes out β and that depends on whether the channel uses templates approved by Meta. | Channel | How the survey is delivered | Needs an approved template? | |---|---|---| | Official WhatsApp (Cloud API) | Meta-approved template, with a button | Yes | | WhatsApp through Twilio | Approved template, with a button | Yes | | WhatsApp over a paired device | Regular message followed by the rating link | No | | Website widget | Rating picker inside the conversation itself | No | | E-mail, Telegram, SMS, Instagram, Facebook, LINE | Regular message followed by the rating link | No | Prerequisites - Permission to edit inboxes. - The inbox must exist and be connected. - On channels that use an approved template, the WhatsApp Business account must be able to submit templates for approval. Step by step 1. Open Settings β Inboxes and pick the inbox. 2. Go to the Customer satisfaction tab. 3. Turn the survey on. 4. Write the message the contact will receive. You can insert variables, such as the contact's first name. 5. If the channel uses an approved template, also fill in the button text and the language β those two fields exist because they are part of the template submitted to Meta. 6. Optionally, restrict the survey by labels, to ask for a rating on only part of the conversations. 7. Save. Settings & options - Message: the text of the question. On every channel without an approved template it is sent as a regular message and the rating link is appended right after it. - Button text and language: shown only on channels that use an approved template. On a paired device inbox these fields are not displayed, because there is no button and no template language to configure. - Template status: also exclusive to channels with an approved template. After you save, Meta reviews the template and the status moves through pending, approved or rejected. - Label rules: define which conversations the survey is asked in. - Frequency: the survey is sent at most once per conversation. Use cases - Measure satisfaction on a paired device channel without going through Meta approval. - Standardize the same question across several channels and compare the scores in the reports. - Ask for a rating only on support conversations, using a label as the filter. Tips, limits & best practices - Write a short, direct question. On channels with no button the contact reads the sentence and taps the link β the text has to make clear what is expected of them. - On channels with an approved template, Meta may classify the template as Marketing depending on the wording, which changes how it is billed. Prefer an objective sentence about the support given. - Changing the message on a channel with an approved template requires a new template and a new approval. - Answers feed the CSAT report; with no conversations resolved in the period, the report stays empty even with the survey turned on. Troubleshooting - I cannot see the button text and language fields. The inbox is WhatsApp over a paired device. That is expected: the survey goes out as a message with a link and there is no template to configure. - The survey never arrives. Check that the inbox is connected, that the conversation was really resolved, and that the label rules are not excluding that conversation. - The template is still pending. The review is done by Meta and can take a few hours. Until it is approved, the channel cannot send the survey outside the service window. - The template was rejected. Rewrite the message avoiding a promotional tone and save again to submit a new version. See also - Getting started - Inbox settings: business hours, assignment, CSAT and greetings - CSAT and SLA reports
Read a group's prospective history
Overview The Group history panel prepares reads and previews of originals available on the WhatsApp Web connection. Capture is prospective: it starts when activated and does not turn older messages into proven company history. Reading or activating capture does not send messages. Prerequisites Your account needs WhatsApp Hub enabled, a WhatsApp Web connection and operational access to the group. Activation follows the native Hub management permission. A replaced connection or privacy restriction can prevent the operation. Step by step 1. Open WhatsApp Hub β Groups and the group you need. 2. In Group history, read the status and choose Start capturing from now on to start a window. 3. Choose Latest captured messages, with proof or Older messages: manual selection. 4. Enter the quantity and choose whether to display bounded content previews. Click Read originals. 5. For manual selection, mark the originals you need and use Check selection and preview. A missing original stays explicit; another message never silently replaces it. Settings & options Refresh status reads the confirmed state. Close current capture closes the window while preserving its evidence. Activating again starts another window without importing earlier messages. The admission count includes sends whose proof is still pending; it is not a delivered-message count. Use cases Use automatic reads to prepare the latest messages from a complete prospective window. Use manual selection to review older originals available locally. This panel does not grant permission to send. Tips, limits & best practices Automatic reads check every admission in the window, up to 200, and return up to 100 messages, ordered by ACK time with an identifier tie-break. A gap, pending proof, removed message or excessive admission count refuses the entire selection. Capture has internal limits; closing and starting another window does not recover earlier coverage. Local availability and an ACK do not prove remote retention or recipient delivery. Troubleshooting If the window cannot be proven, wait for pending sends or read older messages manually; a partial selection is never presented as complete. If a change loses its response, refresh the status before making another change. A permission refusal requires checking your inbox and access. None of these reads resends messages. See also - WhatsApp Hub: groups, communities, channels and status - Connect WhatsApp Web using a QR code
Interactive messages on WhatsApp Web (buttons, lists, flows and more)
Overview On the WhatsApp Web channel (device connection, paired by QR via WazMeow) you can send interactive messages β the ones where the customer taps a button, picks a list item, answers a poll or opens a flow β directly from the conversation's reply field. A single visual composer ("Interactive message") builds every type in one window: pick the type tab, fill in the fields and send. It's the native way to create rich experiences without relying on Meta's official API (Cloud API). Every interactive message you send shows up in the platform conversation as a normal bubble, and the button/option text the customer replies with is recorded in the conversation. Received interactive templates preserve WhatsApp formatting, including bold, italics and strikethrough. They also display, including in history, the links and quick-reply labels carried by the message. Safe links open in another tab; quick-reply labels are informational and do not send a reply when clicked. Prerequisites - A WhatsApp Web inbox already paired and in the connected state (Connect WhatsApp Web by QR pairing). - Agent access to the conversation where the interactive message will be sent. - For Flows: have flows already captured on the number itself. The composer lists the flows available for that number β you pick one and fill in the parameters. If the list is empty, no flow has been captured for that number yet. Step by step 1. Open the WhatsApp Web conversation and click the Interactive message icon in the reply field (Set up to build from scratch; Edit to adjust before sending). 2. Choose the type tab you want to send: Buttons, List, Carousel, Flow, Poll or Event. 3. Fill in the fields for the chosen type: - Main text (body) and, when available, header/footer. - The interactive items (buttons, list options, carousel cards, poll options, event details) and the fallback text shown where the interactive doesn't render. 4. Review the preview and click Send. 5. The message is sent through WhatsApp Web right away and stays recorded in the conversation. When the customer taps/replies, the choice comes back as a new message in the conversation. Settings & options The composer sends 6 interactive types from WhatsApp Web: | Type | What it is | Renders in groups? | | ------------ | --------------------------------------------------------------------------------- | ------------------ | | Buttons | Quick replies and/or URL buttons | Yes | | List | Menu with sections and selectable options | No β 1:1 only | | Carousel | Swipeable cards with media + buttons | Yes | | Flow | Opens a flow already captured on the number (native button, galaxy_message) | No β 1:1 only | | Poll | Poll with options and a selectable count | Yes | | Event | Invite with date/time (start and, optionally, end), location and description | Yes | - Groups nuance (important): Lists and Flows only render in 1:1 conversations. In groups, recipients see the fallback text (so always fill in a clear fallback). Buttons, Carousel and Event work in groups normally. - No license gate: on WhatsApp Web (WazMeow) the interactive types β buttons, list, carousel, flow, poll and event β are available without an "Enterprise license". There is no license block to send any of them. - Status does not support interactive/poll: interactive messages and polls cannot be sent to Status (nor on channels other than WhatsApp Web). - Flow uses what already exists on the number: the composer does not create the flow β it lists the flows already captured on that number for you to pick and parameterize. Use cases - Buttons: offer 2β3 quick replies ("Talk to sales", "Support", "See pricing") or a URL button that takes the customer to a page. - List: present a menu organized by sections (e.g. services, hours, locations) in a 1:1 conversation. - Carousel: showcase several products/plans with image and action button, including in groups. - Flow: trigger a guided form/experience (scheduling, sign-up, qualification) already captured on the number, appearing as a native button. - Poll: quickly collect preferences ("Which time works best?") in 1:1 or groups. - Event: invite to a meeting, live session or visit with date, time and location. Tips, limits & best practices - Always write a good fallback: in groups, Lists and Flows only deliver the fallback text β it has to make sense on its own. - Anti-ban: interactive messages are messages like any others β respect WhatsApp's limits and the platform's per-number throttle. Avoid identical mass sends. - Forwarding keeps the real interactive: when you forward an interactive message on WhatsApp Web, the platform re-sends the actual interactive (it does not turn it into text). See Forward messages. - Save and reuse: while building an interactive message, use "Save to quick replies" with a short code. Later, in the composer, type "/" and pick the short code β the platform reopens the composer prefilled with your buttons, list, carousel, flow or poll (it does not become plain text). - The buttons message title is optional: without one, the message goes out with no header on WhatsApp Web, as on the Cloud API β the platform adds no generic text. When written, the title holds up to 60 bytes. - Buttons: at most 3, titles up to 20 characters. That is WhatsApp's own limit, and the platform applies it identically on WhatsApp Web and on Cloud β what you compose works on both with no rework. Longer titles are cut on send; write short labels instead of letting the cut decide for you. Accented characters take up more room than they look, so leave margin. - A tapped button is identified, not guessed: the platform records which button was tapped, not just its text. Two buttons sharing a label stop being indistinguishable, and an option wait in the Flow Builder keeps matching even when the customer sees the title truncated. - Prefer a few clear items over long menus β tap rates drop on huge lists. Shared contacts, circular videos and form responses - Shared contact: use the card action to save or open the contact in the platform. When a WhatsApp Web connection is available, adding the contact to the WhatsApp address book is a separate action. Check the displayed result: saving in the platform does not confirm that the phone address book was updated. Messages containing several contacts provide an action for each card. - Circular video: video messages use a circular player with playback, audio and seeking controls. This shape does not mean view once. Messages actually sent as view once retain that condition. - Form response: received answers appear in the conversation and can trigger the WhatsApp form response received event in automations and FlowBuilder. When using Wait for event, associate the wait with the message that sent the form; an old answer must not complete the wait for another form. - Hybrid inbox: unifying inboxes changes where the conversation appears. Available transport and message type still determine delivery. A standalone Cloud connection does not acquire WhatsApp Web-only features; an active Web pair is required to use them. Troubleshooting - The customer only sees text (no buttons/list): it's probably a List or Flow sent to a group β in those cases only the fallback renders. Use 1:1 or switch to Buttons/Carousel/Event. - The Flow tab is empty: there's no captured flow on that number; capture the flow on the number before sending. - I can't send to Status: interactive/poll is not supported in Status β send it in a WhatsApp Web conversation. - The message failed to send: confirm the inbox is connected and try Send again; a send error shows on the bubble with a retry option. See also - Connect WhatsApp Web by QR pairing - WhatsApp Inbox Suite - WhatsApp Hub: groups, communities, channels and status - Forward messages
Messaging channels: Telegram, SMS and Line
Overview The messaging channels connect three message services directly to the platform: Telegram, SMS and Line. Messages from each one arrive as conversations in the same panel, with per-contact history, assignment, teams, internal notes and automations β exactly like WhatsApp, email and the website. Each channel uses the provider's own credentials: - Telegram: a bot created in BotFather, identified by the bot token. - SMS: an account with an SMS provider (Twilio or Bandwidth) plus a phone number. - Line: a LINE Messaging API channel (Channel ID, secret and token), with a webhook pointing to the platform. Prerequisites - An administrator profile to create inboxes. - The valid credentials for the chosen provider (see each channel in the step by step). - For Telegram: a bot already created in BotFather and its token. - For SMS: a Twilio or Bandwidth account with Account SID / Auth Token and a number (or a Messaging Service). - For Line: a channel in LINE Developers with Channel ID, Channel Secret and Channel Access Token. - If a channel does not appear when creating an inbox, it may not be enabled for your account β check with an administrator. Step by step Telegram 1. In Telegram's BotFather, create a bot and copy the generated token. 2. Go to Settings β Inboxes, create a new inbox and choose Telegram. 3. Paste the bot token and finish. The platform validates the token, detects the bot name automatically and sets up the webhook by itself. 4. Send a message to the bot and confirm it arrives as a conversation. SMS (Twilio or Bandwidth) 1. Go to Settings β Inboxes, create a new inbox and choose SMS. 2. Select the provider: Twilio or Bandwidth. 3. For Twilio, enter: inbox name, Account SID, Auth Token and the phone number in E.164 format (e.g. +15551234567) β or check the Messaging Service option and enter the Messaging Service SID. - Optional: also add an API Key SID + API Key Secret for outbound/provider management. The Account Auth Token remains required because it validates inbound webhook signatures. 4. For Bandwidth, enter the credentials and the number as provided. 5. Finish and send a test SMS. Line 1. In LINE Developers, create a Messaging API channel and get the Channel ID, Channel Secret and Channel Access Token. 2. Go to Settings β Inboxes, create a new inbox and choose Line. 3. Enter the inbox name, Channel ID, Channel Secret and Channel Access Token, then finish. 4. In the LINE Developers console, set the channel's webhook URL to point to the platform's endpoint (shown in the inbox configuration or provided by your administrator) and enable message receiving. 5. Send a message to the LINE profile and confirm it reaches the platform. Settings & options - Assignment and teams: define who handles each channel's conversations, just like the others. - Automation and replies: automations, canned responses and greetings work as usual. - Editing credentials: you can update the channel's token/credentials in the inbox settings. - SMS provider: Twilio accepts a direct number or a Messaging Service; the provider is chosen at creation time. Twilio credentials, callbacks and voice - The Account SID + Account Auth Token identify the Twilio account and the Auth Token validates inbound webhook signatures. An API Key SID + API Key Secret is optional and is used only for outbound/provider management. They are different credentials: never paste an API Key Secret into the Auth Token field. - Reconnect or rotate credentials only in the dedicated Twilio recovery card. Values are write-only: the platform never displays them again. A rotation creates a new protected generation; an older callback result cannot replace the newer configuration. - A status of pending or failed means the saved generation is retrying with bounded backoff after a timeout, an unavailable provider, or an uncertain callback result. Dead letter means retries stopped and an administrator must reconnect/rotate it; it is visible rather than silently treated as ready. A successful save does not claim the callback was applied until state is ready. - Voice-enabled Twilio SMS inboxes require a voice-capable direct phone number. Their credential operation validates and reconciles both SMS and Voice callback URLs. A Messaging Service-only SMS inbox is not a voice inbox. Use cases - Handle Telegram and SMS side by side with WhatsApp, email and the website, in the same queue. - Use SMS for notifications and confirmations when the customer has no messaging app. - Use Line to serve Asian audiences (strong in Japan, Thailand and Taiwan) without leaving the platform. Tips, limits & best practices - Keep credentials valid: a revoked or expired token stops messages from coming in. - SMS has a per-message cost charged by the provider (Twilio/Bandwidth) β track usage in the provider's account. - For Line, the webhook must point to the platform and be active; otherwise messages won't arrive. - Use one bot per inbox in Telegram; the same token cannot be reused across two inboxes. Troubleshooting - Telegram receives no messages: confirm the token is valid (not revoked in BotFather) and re-enter it if needed. - SMS does not send or receive: review the Account SID, Auth Token and number/Messaging Service; confirm balance and an enabled number with the provider. - Twilio reports pending, failed or dead letter: do not resend a secret by email or chat. Confirm the public callback URL is reachable through your proxy, uses HTTPS, and is not rewriting the Twilio signature path; then reconnect or rotate in the card. Verify that the Account Auth Token (inbound signature) and API Key Secret (outbound) have not been swapped. - Line does not receive: check the Channel ID, Secret and Token and the webhook URL in the LINE console, which must point to the platform and be enabled. - The channel does not appear when creating an inbox: it may not be enabled for your account β talk to an administrator. See also - Overview of inboxes and channels - Social channels: Facebook Messenger, Instagram and TikTok - Inbox settings
Conversation routing: reopen the same or create a new one
Overview When a contact messages again after their conversation was resolved, the platform can do one of two things β and you choose per inbox: - Reopen the same conversation β the previous conversation is reopened, keeping all history, summary, assignment and context in one place. - Create a new conversation β each new contact after resolution opens a fresh conversation (useful when every interaction should be handled as an independent ticket). The control lives under Inbox settings β Conversation routing. Prerequisites - Administrator role to edit the inbox. - Applies to WhatsApp (Cloud and Web), Instagram, Facebook, Telegram, SMS, Line, TikTok, website and API inboxes. The email channel threads by subject/headers and does not use this option. Step by step 1. Open Settings β Inboxes and select the inbox. 2. Scroll to the Conversation routing section. 3. Pick one option: - Reopen the same conversation β reopens the resolved conversation when a new message arrives. - Create new conversations β opens a fresh conversation on each message after resolution. 4. Save. The change takes effect immediately for the next messages. Settings & options Open a conversation in another inbox In a conversation, open More actions β New conversation in another inbox. The contact stays selected; choose another available inbox. WhatsApp/SMS need a phone number and email needs an email address. Only inboxes you can access appear; a unified Cloud/Web pair counts as one logical inbox. Opening the form and choosing an inbox sends no messages. Use Create without message to open without sending, or prepare and confirm sending explicitly. This does not transfer the original conversation. If the destination has single-conversation mode enabled, the platform may reuse or reopen an existing conversation rather than create another ID. If loading fails, use Retry. An empty list means no other compatible inbox is available; do not copy Instagram or other channel identifiers to bypass this restriction. - The default varies by channel: the website widget ships as Reopen; messaging channels (WhatsApp, etc.) ship as Create new conversations. Adjust to your operation. - Only the latest resolved conversation is reopened. If an open conversation already exists for the contact, the message goes into it (the team never loses the active thread). Use cases - Continuous support (relationship, recurring support): use Reopen to keep the contact's whole history in a single conversation. - Independent tickets (each request is a new ticket): use Create new conversations. Tips, limits & best practices - Reopen fires the "conversation reopened" automation trigger and resumes the same bot/Maestro with the existing summary. - Create new conversations fires the "conversation created" trigger on every new conversation β welcome automations and flows run again, and assignment/CSAT restart. Ad (CTWA) attribution is not carried onto the new conversation. - Muted contacts have their message attached to the existing conversation, but it stays resolved (intentional). Troubleshooting - "It keeps creating new conversations even though I want to reopen" β the inbox is set to Create new conversations. Open Conversation routing and select Reopen the same conversation. - The option doesn't show β confirm it's a supported messaging inbox (not email) and that you have the administrator role. See also - Getting started - Inbox settings - Automations: "conversation created" and "conversation reopened" triggers