Browse the help centre

WhatsApp Business App coexistence, explained properly

How one number can run in the WhatsApp Business app and on the Cloud API at the same time — what gets imported, the one-shot 24-hour history window, and the mistakes that cannot be undone.

Explanation

On this page

Coexistence is one WhatsApp number used by the owner's WhatsApp Business app and by a platform on the Cloud API at the same time. It is what most small businesses actually want: they keep answering from the phone in their pocket, and their team gets a shared inbox, automation and reporting on the same number.

It is also the setup with the sharpest edges, because several of its steps happen exactly once and cannot be repeated. This page is about those.

The two ways a number can be connected

Standard Cloud APICoexistence
WhatsApp Business app on the phoneStops working for that numberKeeps working
Existing chats on the phoneLostImported, one time
Who can replyThe platform onlyThe phone and the platform
UndoNone — the eviction is permanentNothing to undo

The distinction matters because standard onboarding registers the number for exclusive Cloud API use, and registering evicts the number from the owner's phone. The app signs out, and the chat history on it is not transferred by that act. There is no undo, and no support ticket that reverses it.

So if the business wants to keep using their phone, the coexistence flow has to be selected at sign-up time. It is not a setting you can switch on afterwards.

What gets imported, and when

When a number is onboarded through coexistence, WhatsApp sends two things to the connected platform:

  1. The address book — the contacts saved on that phone, including the names the owner gave them.
  2. The conversation history — roughly the last six months of chats, both sides of them.

Three facts about this import decide whether a business gets their history or not:

  • It is requested once per number, ever. Each of the two syncs can be asked for a single time in the number's lifetime. A failed or skipped request is not retried later.
  • There is a 24-hour deadline. If the sync is not requested within a day of onboarding, WhatsApp force-offboards the number from the platform.
  • It arrives minutes after onboarding, all at once, as a burst of past messages — not a gradual backfill.

Media in imported history is a special case

Some of the imported messages carry a real media id, and the file behind it can be fetched normally. Others — anything that only ever existed on the phone — arrive as a placeholder with no id at all. Those files cannot be recovered by anyone, on any platform. They show in the thread with a note saying the file is unavailable rather than as a broken image.

What imported history must never do

An import is hundreds of old messages arriving through the same connection as live traffic. Half of them are the business talking, not the customer. Handled carelessly, the consequences are visible to your customers:

  • An AI assistant must not answer them. If imported messages are treated as new inbound traffic, an auto-reply fires on every one of them — from the business's own number, to real people, about conversations from months ago.
  • They must be dated when they were sent. An inbox is ordered by message time; importing at "now" stacks six months of history on top of today's queue.
  • They must not reopen anything. A message from last March must not move a conversation a human resolved this morning back into the open queue.
  • They must not open a service window. An imported inbound message is not a customer writing to you now, and treating it as one would suggest you can send free-form messages to people you cannot.

Juno enforces all four on a separate path from live traffic — imported messages never reach the automation or AI layer at all.

Before you connect the first number

Two things are worth checking on the day, because both are one-shot:

  • Media storage must already be configured. WhatsApp expires media roughly 30 days after the message. A photo that arrives before storage is set up keeps only its id, and after that month the file is gone for everyone.
  • The platform must already be subscribed to the coexistence event types. Subscription to history events is an account-wide setting that is separate from connecting the number. If it is missing, onboarding still appears to succeed, the syncs are still accepted, and not one history message is ever delivered — for an import that cannot be requested again.

Juno checks the second one before it writes anything and refuses to proceed while it is missing, precisely so the number's single chance at its history is not spent on a delivery that could not arrive.