Skip to main content
WhatsApp is where leads actually answer, and it is also where careless automation gets numbers banned. Nudge supports two kinds of WhatsApp connections and treats them very differently on purpose.

Adding a number

Channels → WhatsApp lists API numbers and Personal numbers in separate cards. Everyone can open the page; only admins change it. Use Add number on the card for the kind you want to connect:
  • Personal number pairs a handset by scanning a QR code, the same way WhatsApp Web does.
  • Cloud API number registers a number you already hold in Meta Business Manager.
Hovering a row reveals Test, which sends a real message so you can confirm the connection before a campaign relies on it, and the control to remove the number.

Connection status

Personal numbers show Active, Reconnecting, Disconnected or Needs pairing. Previously connected numbers that have lost their login can still show Logged out. A brief reconnect does not mean the phone has logged out. When pairing is needed, choose Pair and scan the QR code with the exact number listed on the row. One older type of personal connection has been retired. A number that was on it now shows as waiting to be paired, with its assignments kept. Press Pair and scan the QR code to bring it back. New personal connections are outbound: Nudge sends your queued messages, while replies stay in the phone’s WhatsApp. They do not enter Nudge’s inbox or activate reply-based automation. API numbers support incoming conversations and assistants. A successful pairing is saved so ordinary service restarts can reconnect without another scan. If WhatsApp removes the linked device, pair it again. Messages waiting for an assigned number resume under your normal pacing when it becomes active. If a send’s outcome is unknown, check WhatsApp before trying again. Nudge does not automatically repeat a message that may already have been sent.

Personal numbers

A rep’s own WhatsApp number, paired by QR. This is the warm lane: automated follow-ups and one-to-one conversations that look and feel like a person texting, because the number belongs to a person. To keep those numbers safe, Nudge paces them automatically. Admins set this once in Settings → General, in the Personal numbers card, and every automated send obeys it. Each limit counts per number, so a second number does not share the first one’s allowance:
  • Min gap between sends per number, so messages trickle out at human speed.
  • Randomize up to, which jitters that gap so the rhythm is not machine-perfect.
  • Max per hour and Max per day per number, on top of the gap.
  • Working hours: automated messages hold until the owner’s business hours. A 3am follow-up closes no deals.
  • Pause automation after a reply, in days, applies to connections that receive replies in Nudge. An inbound message cancels that contact’s queued automated sends; the days keep new automation and bulk sends off afterwards. This is one workspace-wide number that is not on the Settings pages. Ask support to check or change it. Each automation’s own Stop for repliers switch is separate and still yours to set.
One setting is worth knowing by name: Send manual messages instantly. With it on, a message a rep types by hand skips every gate above and goes straight out. That is why your own reply lands immediately while an automated one waits its turn. Live conversation should never sit in a queue. Messages you send from the WhatsApp app on the phone itself are not copied into Nudge, and neither are replies to a personal number.

Cloud API numbers

For traffic that should not ride on a personal number, connect an official Meta number through the WhatsApp Cloud API. Meta enforces its own limits on this lane, so Nudge does not add pacing of its own. A Cloud API row carries two Meta identifiers, the phone-number ID and the business account ID that owns it. Both sit behind the arrow next to the number: you need them when you first wire an account up, and almost never afterwards. The business account ID is the one that decides where a template’s approval counts, so it is worth checking when a template works on one number and not another. Meta’s one hard rule on this lane: a free-form message only delivers within 24 hours of the contact’s last message to you. Anything outside that window, including all first-touch outreach, must be an approved template message. A connected template or a reply automation can activate a chat assistant on a two-way Cloud API number. It can suggest replies or send automatically until its job is finished. See WhatsApp assistant.

Approved templates for cold outreach

Nudge handles the approval workflow from the template editor. Open a WhatsApp template and use the Meta template section:
  1. Submit for approval. Nudge sends the template body to Meta for review. Review usually takes minutes to two days. If you still have unsaved edits, submitting saves them first, so what Meta approves is exactly what will send.
  2. Watch the status. The section shows where things stand for each business account and language: in review, approved, or rejected with Meta’s reason. Approvals arrive automatically; Refresh status checks on demand.
  3. Send as usual. Once approved, nothing else changes. Any send that uses this template from a Cloud API number just works: automations, bulk sends, and a one-off message to a single contact with the template picked in the composer. Inside the 24-hour window Nudge sends your current text directly; outside it, Meta delivers the approved version.
A few things to know:
  • A field variable needs a fallback before you can submit. If your message uses something from your field registry, like [course_type], it needs a default: the text that prints for a contact whose value is blank. Set them in the boxes under the message body. Meta refuses the whole message when a variable arrives empty, so without a fallback the send fails for every contact missing that field, one at a time and quietly. Nudge blocks the submission until each one has a fallback. The built-in variables are exempt — [firstname] and the rest come from the contact’s own name, so they can’t turn up empty.
  • Approval freezes the wording. Editing the template after approval does not change what cold sends deliver. The editor shows a “body changed since approval” notice, and clicking Resubmit puts the new wording through review. Until it is approved, cold sends keep using the previously approved text.
  • Meta decides the category, and it can differ from what you picked. A message submitted as Utility that Meta reads as promotional is approved as Marketing rather than rejected. Marketing costs more per message and Meta limits how often one contact can receive it. When that happens the template’s row shows Marketing · submitted as Utility, and workspace admins get a notification (turn the email on under Settings → Notifications). Meta gives no way to check before submitting, in Nudge or in WhatsApp Manager. The category is locked once approved, so the way back to Utility is a new template name: reword the message, then click Resubmit as Utility under a new name on that row. Nudge creates the new template at Meta (same name with a number added), every language of the template on that number moves with it, and the approved version keeps delivering until the new one is approved. The button stays disabled until the wording differs from what Meta filed — the same text would get the same verdict.
  • When Meta rejects, its reason and recommendation appear under the row. That is the wording to change before resubmitting.
  • A header, a footer and buttons travel with the template. A template can carry a short header line, a small grey footer line, and up to three buttons (a link, or a quick reply the contact taps). Meta approves them with the template, Nudge sends them with every template send, and a tapped quick reply shows up in the conversation as the button’s words, the same as a typed reply. The previews draw all of them so you see what arrives, and the sent message shows them in the conversation exactly as the contact got them.
  • A number’s business account has to be connected to Nudge for replies to arrive. Nudge does this itself when you add a Cloud API number or change its business account. If the connection is missing, the number’s row on Channels → WhatsApp reads Not receiving with a Fix button: sending still works, but replies, delivery receipts and button taps don’t reach Nudge until you fix it.
  • Approvals are per business account and per language. A template approved for one WhatsApp Business Account has to be submitted again to use it on a number belonging to another, and each language of a multi-language template is reviewed on its own.
  • A template needs a language before it can be submitted. “Everyone” is not a language, and Meta reviews under exactly one — so a template with no language tab used to go in as English whatever it actually said, which is how messages written in one language ended up approved as another and unable to send. Add a language tab first. Templates already approved that way keep working; they just can’t be added to a new number.
  • An approval filed under the wrong language shows as “wrong language”. It can never be used — the send looks for the language the template actually sends in, doesn’t find it, and Meta refuses the message. It sits under its account in Meta template with a ✕ to remove it. The fix is to submit the template again in the right language, which lands under the same name at Meta.
  • Picking a template in the composer sends that template. If you choose one and then edit the words in the box, your edits are not what goes out: the message is sent as the template, so the contact gets the template’s current wording (and, outside the 24-hour window, the approved wording). To send something you have typed yourself, clear the template picker first.
A cold send with no approved template is rejected by Meta and shows as failed on the contact’s timeline, so nothing is silently dropped. A template with an image or document attached can’t be submitted yet — remove the attachment first; free-form messages inside the 24-hour window still carry media as usual. An approved message can carry more than text. Under the message body (and per language, if the template has language tabs) you can add:
  • A header — one bold line shown above the message, up to 60 characters.
  • A footer — one small grey line under the message, up to 60 characters. This is where a sign-off or an opt-out note usually goes.
  • Up to three buttons — a link the contact can open (a form, a web page; Nudge counts who opened it, see Bulk send), a Booking page that opens the contact’s own page for picking a meeting time (in workspaces that book meetings, see Meetings), or a quick reply they can tap, which arrives back as an ordinary message.
They go through Meta’s review with the template, so add them and submit (or resubmit) for approval. They appear whenever the approved message is delivered from a business number — including inside the 24-hour window, where Nudge deliberately sends the approved version rather than free text so the buttons aren’t lost. Messages from a personal number never carry them. The header, the footer and the buttons are fixed text: variables like [firstname] work in the message body only, and a button’s link is the same for every contact. Meta is shown the link on your workspace’s own address: the tap passes through Nudge, which counts it and opens your page straight away. The one exception is a Booking page button: each contact’s button opens their own page. The footer is the strictest of the three — Meta allows no variable there at all — so Nudge stops a submission that has one rather than letting the review come back rejected.

Which number sends what

The sending number is chosen per action. An automation’s WhatsApp action set to Each lead’s owner sends from the owner’s connected number, so the lead hears from the same person who will pick up the conversation. Bulk sends can override with one fixed sender. The list only offers numbers that can send that message. On an automation you get every personal number, plus the Cloud API numbers whose account has an approved version of the message you picked. Personal numbers can send any text to anyone, so they are always there. A Cloud API number can only start a conversation with a message approved on its own account, so it appears for those messages and not for others. If a number was chosen before and it no longer qualifies, it stays in the list rather than disappearing, with a note explaining that it will only reach contacts who wrote to you in the last 24 hours. Bulk Action offers Cloud API numbers only. A large send down a personal number is the fastest way to get that number blocked, and the Cloud API exists to carry volume. The send window on a contact page, and on a selection in the contacts table, has its own Send from list. With a template picked, it shows the Cloud API numbers whose account approved that template, plus your personal numbers. With your own text to one contact, a Cloud API number appears only if that contact wrote to it in the last 24 hours. With your own text to several contacts, only personal numbers can send it. Before a personal number messages more than one contact, Nudge asks you to confirm. The list starts on the number the conversation is on, then on the number you used last.
Each lead’s owner is the one choice that skips this check, because the number isn’t known until the contact is. If an owner’s connected number is a Cloud API number and the message isn’t approved on its account, that send will fail. Owners on personal numbers are unaffected. Check under Channels → WhatsApp which owners are on which line before pointing an automation at an approved template.
A reply you type in a conversation goes out from the number the conversation is on: the one the contact last wrote to, or the one that last reached them. That keeps the conversation on one line from the contact’s side and keeps a fresh reply inside the free 24-hour session window, which belongs to that number. The thread names the number next to the time on its first bubble and wherever it switches to another number. To see which line any other message used, and its full date, click it (tap it on a phone). Only a contact who has never been in touch with any of your numbers is answered from their owner’s number.

Quick chat

The contact page shows a ⋯ menu beside every phone number. Open in my WhatsApp opens that number in WhatsApp Web, on your own WhatsApp, with your opener typed and ready. Open in my WhatsApp with a template lists every WhatsApp template instead. The opener is your own greeting. Untouched it is “Hi [first name]” in the language you use Nudge in (“Merhaba [first name]” in Turkish), filled in for each contact. To change it, click the pencil beside Open in my WhatsApp and type; variables work as they do in templates (type @). It saves as you type and only changes yours. Clear it to open chats with nothing typed. Nudge reuses one WhatsApp Web tab for this: the first click opens it, later clicks switch that same tab to the next contact. If you have WhatsApp Web installed as an app in Chrome, set it to open links in Chrome rather than in the app, or the click will only bring the app window to the front. Nothing here goes through Nudge. The message is sent from the rep’s own WhatsApp and is not recorded on the contact’s timeline.

Media

Templates can attach an image or a document (PDF, Word, Excel, PowerPoint or text) from the shared asset library; the message body becomes the caption. See Templates. When a contact sends you something on an official WhatsApp number, it appears in the thread: pictures show inline, stickers appear as compact images (including animated stickers), voice notes get a player you can hit play on, and everything else arrives as a file you can open. A caption they typed comes through as the message. Videos are noted in the thread as having arrived, but the file itself is not kept. Older stickers received before sticker support was added still show as [sticker]. Replies to a new outbound personal connection stay in WhatsApp on the phone. If a contact reacts to one of your messages, the emoji appears on that message rather than as a new one in the thread, the same way it does in WhatsApp. Taking the reaction back removes it here too. A reaction counts as them getting in touch, so it pauses any automated follow-up on that contact exactly as a written reply would. A voice note occasionally shows as a file to download rather than a player. That is Safari: WhatsApp records in a format it does not always play in the browser. Downloading it plays fine, and Chrome, Firefox and Edge play it in the thread.