Home/Help Center/Portfolio limits

Meta account and verification

Portfolio-Level Messaging Limits (October 2025 Change)

How Meta's October 2025 change moved the daily messaging limit from per-number to per-business-portfolio, and what it means for workspaces running multiple numbers.

By Chirag Darji · Updated 27 Aug 2026 · 7 min read

On this page
  1. Before you start
  2. Steps
  3. Why did Meta make this change?
  4. A worked example
  5. What you will see
  6. Settings and options
  7. Troubleshooting
  8. Related reading
Broadcast delivery settings in VGraple CRM: quiet hours and marketing frequency cap

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

  1. 1Open the WhatsApp channel list
  2. 2VGraple CRM identifies the shared portfolio automatically
  3. 3Check combined usage before a campaign, not
  4. 4Treat the daily budget as one pool
  5. 5Stagger large campaigns across numbers if the
The steps on this page, in order.

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

WhatsApp broadcast campaign report in VGraple CRM with delivered, read and replied stats per contact

Understanding how VGraple CRM groups your numbers

  1. 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.

  2. 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.

  3. 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

  1. 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.

  2. 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.

  3. 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.

Meta policy

The same October 2025 update also retired the old Flagged and Restricted account statuses. Previously, sustained low quality could trigger an automatic downgrade of the messaging tier itself; now, low quality blocks eligibility for a tier upgrade and can trigger Meta's separate spam rate limit (error 131048) in sustained cases, but it does not silently cut an already-granted tier the way the old system sometimes did. This is a meaningfully different failure mode: a business watching only for a downgrade under the old rules should instead watch for stalled growth and 131048 under the current ones.

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.

EventPortfolio usage beforePortfolio usage afterHeadroom remaining
Order-updates number sends utility templates to 3,000 unique customers03,0007,000
Marketing number launches a 6,000-recipient sale campaign3,0009,0001,000
Marketing number tries to launch a second 4,000-recipient campaign the same day9,000Would exceed 10,000Campaign 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 fieldWhat it doesDefault
Portfolio groupingGroups channels sharing the same Meta portfolio id (or WABA id as fallback) for budget purposesAutomatic; not user-configurable
Combined 24h usageUnique recipients started with a template across every number in the group, in the trailing rolling windowCalculated live before every campaign continues sending
Per-number quality ratingStill tracked and paced independently per numberUnaffected by portfolio grouping

Troubleshooting

SymptomLikely causeFix
A second number's campaign parks even though that number alone is well under its tierThe shared portfolio budget was already consumed by a sibling number's campaign the same dayExpected 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 sendThe estimate reflects the whole portfolio's remaining budget, not this number's individual capacityCorrect behaviour since 7 October 2025; plan the day's total sends across every number in the business
Unsure which of my numbers share a portfolioMeta's grouping is not always obvious from the channel card aloneNumbers 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 budgetsThey likely belong to two different Meta businesses, which is correct: portfolio limits only pool numbers within one businessNo action needed; this is the expected outcome for genuinely separate businesses

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.

Frequently asked questions

What actually changed on 7 October 2025?
Meta moved the daily messaging limit from a per-phone-number cap to a per-business-portfolio cap. Before that date, each WhatsApp number had its own separate daily budget of unique recipients; since then, every number under the same Meta business shares one combined budget.
How does VGraple CRM know which numbers share a portfolio?
By Meta's own portfolio identifier, falling back to the WhatsApp Business Account id when Meta has not reported a portfolio id. Numbers sharing either value are grouped and their combined 24-hour usage is tracked as one pool, not counted separately.
If I run two numbers, do they each get their own 250 (or higher) limit?
No, not if they belong to the same Meta business. Two numbers under one business share one limit; sending 200 unique recipients from number A and 100 from number B against a 250 portfolio budget leaves only 50 headroom for either number, not 250 each.
What was discontinued in the same October 2025 change?
The old Flagged and Restricted account statuses were discontinued. Quality-based downgrades of the messaging tier itself no longer happen automatically the way they used to; low quality now blocks upgrade eligibility and can trigger Meta's spam rate limit, but does not silently cut an existing tier.
Does portfolio pacing (error 135000) relate to this?
It is a separate, additional protection Meta introduced on 8 December 2025 for portfolios with limited sending history, distinct from the daily unique-recipient limit. See error 135000: business portfolio pacing for that specific mechanism.
How do I see my combined portfolio usage in VGraple CRM?
The broadcast composer's Review and Send step and the cost estimate both calculate against the shared portfolio budget automatically, not per number, so what you see there already reflects every connected number under the same business.

Run your WhatsApp on VGraple CRM

Free forever plan, official Meta WhatsApp Business API, set up in 15 minutes. No card needed.