On this page

Since 7 October 2025, Meta enforces the daily WhatsApp messaging limit at the business portfolio level, meaning every phone number under the same Meta business shares one combined budget of unique recipients per rolling 24 hours, rather than each number having its own separate allowance. VGraple CRM groups your connected numbers by Meta's own portfolio identifier and tracks the shared usage live, so a campaign on one number is stopped by the same real headroom a campaign on a sibling number would also draw from.
Portfolio limits: first 5 of 6 steps
- 1Open the WhatsApp channel list
- 2VGraple CRM identifies the shared portfolio automatically
- 3Check combined usage before a campaign, not
- 4Treat the daily budget as one pool
- 5Stagger large campaigns across numbers if the
Before you start
- If your organisation runs a single WhatsApp number, this change has no practical effect; a portfolio of one number behaves exactly as it did before. This matters specifically for organisations running two or more numbers under the same Meta business.
- Understand that "same portfolio" is decided by Meta's own business structure, not by anything set inside VGraple CRM. Two numbers connected to VGraple CRM under two entirely separate Meta businesses (for example, two client organisations each with their own Business Manager) do not share a budget.
- No action is required to receive this tracking; it runs automatically for every connected number, on every plan including Free.
Steps

Understanding how VGraple CRM groups your numbers
Open the WhatsApp channel list. Go to Settings, then Channels, then WhatsApp. Every connected number under the same Meta business is listed here, each with its own tier badge, but that badge shows the portfolio's shared tier, not an independent one.
VGraple CRM identifies the shared portfolio automatically. Behind the scenes, channels are grouped by Meta's portfolio identifier where Meta has reported one, and by the WhatsApp Business Account id as a fallback. This grouping happens for every budget check, not just at connection time, since which numbers share a portfolio can itself change if Meta restructures a business.
Check combined usage before a campaign, not per-number usage. The broadcast composer's Review and Send step shows the portfolio's total unique recipients used in the trailing 24 hours and the remaining headroom, calculated across every number in the group, before your specific send.
Planning sends across multiple numbers
Treat the daily budget as one pool when scheduling multiple campaigns. If number A sends a 5,000-recipient campaign against a 10,000 portfolio tier, number B has 5,000 remaining that day, not its own separate 10,000.
Stagger large campaigns across numbers if the portfolio tier is a binding constraint. Scheduling two large sends on the same day from two numbers under one business competes for the same budget; spreading them across different days, or waiting for a tier upgrade, avoids one campaign parking because a sibling number's campaign used the shared headroom first.
Let auto-resume handle the rest. If a campaign does exceed the shared budget, it parks with a resume time set to when the rolling window reopens and continues automatically; see messaging tiers and limits for the general mechanics of the park-and-resume behaviour, which work identically whether the budget is shared across numbers or not.
Why did Meta make this change?
Before October 2025, a business could work around a low per-number tier simply by connecting more numbers, each starting fresh at 250 and each building its own separate sending history, which meant the tier system's actual purpose, letting Meta gradually trust a business with more volume as it proves good sending behaviour, could be sidestepped by fragmenting volume across numbers instead of earning it. Pooling the limit at the business level closes that gap: what Meta is actually rate-limiting is a business's total reach into people's inboxes, not a number's individual history, so the daily budget now follows the business regardless of how many numbers it operates under.
A worked example
A D2C brand runs two WhatsApp numbers under one Meta business: one for order updates, one for marketing campaigns. Both share a single 10,000-tier portfolio budget.
| Event | Portfolio usage before | Portfolio usage after | Headroom remaining |
|---|---|---|---|
| Order-updates number sends utility templates to 3,000 unique customers | 0 | 3,000 | 7,000 |
| Marketing number launches a 6,000-recipient sale campaign | 3,000 | 9,000 | 1,000 |
| Marketing number tries to launch a second 4,000-recipient campaign the same day | 9,000 | Would exceed 10,000 | Campaign parks after roughly 1,000 sends; the remainder waits for the window to reopen |
The order-updates number never itself sent anywhere near 10,000, but it still reduced what the marketing number had available, because both draw from the same portfolio pool. Planning both campaigns against one shared total, rather than assuming each number gets its own 10,000, avoids this exact scenario.
What you will see
Nothing on the individual channel card visually distinguishes a shared portfolio budget from a standalone one; the tier badge and quality rating are shown per number as they always were, since quality is genuinely per-number even though the daily volume budget is shared. The difference shows up in the broadcast composer's headroom figure, which reflects the whole portfolio's usage, and in a parked campaign's pause reason, which references the portfolio budget by name rather than a single number's limit.
Settings and options
| Setting or field | What it does | Default |
|---|---|---|
| Portfolio grouping | Groups channels sharing the same Meta portfolio id (or WABA id as fallback) for budget purposes | Automatic; not user-configurable |
| Combined 24h usage | Unique recipients started with a template across every number in the group, in the trailing rolling window | Calculated live before every campaign continues sending |
| Per-number quality rating | Still tracked and paced independently per number | Unaffected by portfolio grouping |
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| A second number's campaign parks even though that number alone is well under its tier | The shared portfolio budget was already consumed by a sibling number's campaign the same day | Expected under portfolio-level limits; check total usage across all numbers, not just the one that just sent |
| Cost or headroom estimate looks lower than expected for a single-number send | The estimate reflects the whole portfolio's remaining budget, not this number's individual capacity | Correct behaviour since 7 October 2025; plan the day's total sends across every number in the business |
| Unsure which of my numbers share a portfolio | Meta's grouping is not always obvious from the channel card alone | Numbers under the same Meta Business Manager and the same WhatsApp Business Account (or linked portfolio) share a budget; check Meta Business Manager's structure directly if unsure |
| Two numbers seem to have completely separate budgets | They likely belong to two different Meta businesses, which is correct: portfolio limits only pool numbers within one business | No action needed; this is the expected outcome for genuinely separate businesses |
Related reading
For the tier levels themselves and how to move up, see messaging tiers and limits. A related but distinct protection for young or fast-growing portfolios is business portfolio pacing; see error 135000: business portfolio pacing. If you are planning to add a second number specifically to raise capacity, note that it will typically join the same shared budget rather than adding an independent one; see running multiple WhatsApp numbers in one workspace.