How invite, message, and InMail caps work together
TL;DR — your "Daily limit" applies per action type
If you set Daily limit = 20 and don't use the cap split, that 20 applies to EACH action type independently — invites, follow-up messages, and InMails each get their own 20/day budget. So a campaign with Daily limit = 20 can send up to 20 invites + 20 messages + 20 InMails on the same day (60 actions total per campaign). It does not mean "20 total actions per day."
This mirrors how LinkedIn itself tracks each action type as a separate counter on its own side, so a heavy invite day can never starve follow-up messages to prospects who already accepted.
Per-account daily and weekly LinkedIn ramp ceilings (typically 80–100/day for paid accounts) still gate every send regardless of campaign caps — see the Account safety note below.
Worked example — Daily limit = 20 with no cap split
Suppose you set Daily limit = 20 on a LinkedIn campaign and leave the three Cap split (advanced) fields blank. Here's what your campaign can do in one day:
- 20 invites can fire (one per new prospect at step 0).
- 20 follow-up messages can fire on prospects who already accepted (LinkedIn caps InMails lower by default — see InMail row below — but messages-to-connections fire at the campaign cap).
- 5 InMails can fire — InMail volume is bounded by your subscription's monthly credit balance, so we apply a separate, lower ceiling here even when your Daily limit is set higher.
That's up to 45 actions per campaign per day (20 + 20 + 5), not 20. If you wanted "20 total per day across all action types" — the old combined behaviour — you'd need to set the Cap split values explicitly to small numbers that sum to 20 (e.g. 12 invites + 6 messages + 2 InMails). Most users want the per-action-bucket behaviour because it stops follow-up messages on accepted prospects from being starved by a busy invite day.
If your campaign was configured before May 2026 with Daily limit = 20 expecting "20 total per day," you may now see up to 45 daily actions. Either lower the Daily limit, or open Cap split (advanced) and set explicit smaller numbers per action type. The per-account LinkedIn ramp ceiling still gates the overall account total separately — your account never burst-sends.
Per-action LinkedIn limits
These are LinkedIn's documented daily ceilings. WarmySender's defaults sit conservatively under each one. Numbers are approximate because LinkedIn doesn't publish exact figures and adjusts per-account based on signals like account age, acceptance ratio, network size, and profile completeness.
| Action | LinkedIn-cited daily limit | WarmySender default | Notes |
|---|---|---|---|
| Connection invites (paid) | ~80–100/day, ~200/week | 80/day | Highest-watched safety axis; LinkedIn weighs invite volume heavily. Free accounts ~half of paid. |
| Messages to connections | ~100/day shared bucket | 80/day | Shared with profile views, comments on posts, reactions on posts. |
| InMails (Sales Nav Core) | ~50/month credits | 5/day | Replies generally return the credit. Recruiter Full ~150/month, Career ~5/month. |
| InMails (Recruiter Full) | ~150/month credits | 5/day | 5/day × 30 = 150/month — fits Recruiter Full's monthly balance. |
What this page is for
Every WarmySender LinkedIn campaign has three separate daily caps available: one for connection invites, one for follow-up messages on prospects who already accepted, and one for InMails to people you're not connected to. The three split columns can each be set explicitly via Cap split (advanced); when left blank, the engine uses the campaign's combined "Daily limit" — applied independently per action type, not summed across them. This page explains why we split it that way, how the three caps interact in practice, and when you should adjust each one.
WarmySender is a 4-pillar outreach platform — Cold Emailing, Email Warmup, LinkedIn Outreach, and Multichannel sequences. This page is part of the LinkedIn Outreach pillar.
Why three caps instead of one
LinkedIn enforces invites, messages-to-connections, and InMails as three separate counters on its own side. Each has a different daily ceiling, a different reason for existing, and a different cost model. Combining all three into a single "daily send" cap on our side meant a busy invite day could starve follow-up messages to people who'd already accepted — and vice versa.
Concretely: if your old combined cap was 20/day and you had 19 invites + 5 follow-up messages on accepted prospects + 1 InMail in a single day, you'd hit 25/20 and starve the next 24 hours of further sends from any of the three action types. Even though LinkedIn would have happily accepted 80 invites + 80 follow-up messages + 5 InMails on that same account, our combined cap forced you to choose between fresh outreach and continuation.
The cap split fixes that. Each action type now has its own daily counter, enforced atomically. A heavy follow-up day no longer affects fresh invite traffic, and vice versa. This more accurately mirrors how LinkedIn itself thinks about per-account safety — the platform's documented 80-100/day invite cap sits in a different bucket than its 100/day shared non-invite-action bucket, which sits in a different bucket again from your monthly InMail credit balance.
The three caps
Invite cap (default 80/day)
Counts every connection request your campaign sends to a prospect who's not yet connected to you. This is the most-watched LinkedIn safety axis: the platform's automation-detection systems weigh invite volume heavily because most low-quality automation is invite-heavy. Per LinkedIn's documented rate limits, paid accounts in good standing handle approximately 80-100 invites per day; we default to 80 to leave a 20-per-day safety buffer and reduce the chance of hitting LinkedIn's variable per-account threshold.
The campaign editor's invite slider goes up to 100. Anything above 90 enters a red zone — visually flagged as exceeding our recommendation. You can push it if you want, but we strongly suggest staying under 90.
Follow-up message cap (default 80/day)
Counts every message you send to a prospect who has already accepted your invite (i.e., is now your 1st-degree connection). Per LinkedIn's documented rate limits, the daily ceiling on messages-to-connections is 100 — but it's a shared bucket with profile views, comments on posts, and reactions on posts. So your 100/day budget is split across all four action types.
We default this cap to 80/day, which leaves 20/day in the shared bucket for profile views, comments, and reactions if your campaign uses post-engagement steps or your team does any manual LinkedIn engagement on the account. If you use those features heavily, consider lowering this to 60-70/day. If you use no other action types, 80/day uses 80 of the 100/day shared bucket and leaves 20 for safety margin.
InMail cap (default 5/day)
Counts every InMail (LinkedIn's "skip the connection request" channel) your campaign sends. InMails reach people you're not connected to and use a separate monthly credit balance tied to your subscription tier — Sales Navigator Core gets approximately 50 credits/month, Sales Navigator Advanced typically 50 credits/month, Recruiter Lite 30/month, Recruiter Full 150/month, Career 5/month.
5/day × 30 days = 150 InMails/month, which fits within Recruiter's monthly balance and leaves room above Sales Navigator Core's monthly credit balance assuming a healthy reply rate (replies generally return the credit to your balance). For Career and Sales Nav Core users running heavy InMail volume, lower this to match your monthly credit balance — 1-2/day for Career, 1-2/day for Sales Nav Core. The slider's red zone starts at 15/day to flag the risk for accounts on lower-tier subscriptions.
Worked examples
Example 1: invite-heavy day with backlog of accepts
Your campaign launches Monday morning. You send 50 invites that day. Tuesday, you send another 50 (cap 80, plenty of headroom). Wednesday morning, 30 of those Monday-Tuesday invites have been accepted, and your campaign's step 2 wants to fire follow-up messages to all 30. Wednesday is also a fresh invite day — your campaign wants to send 50 more invites.
Pre-cap-split: 50 invites + 30 follow-up messages = 80, which exceeds a 50-combined-cap. Either invites or follow-ups get starved. Most likely the engine prioritizes the older action (the follow-ups), and the new invites stall — leaving you with a "today is suddenly slow" surprise.
Post-cap-split (defaults): 50 invites against an 80/day invite cap (still 30/day headroom). 30 follow-up messages against an 80/day follow-up cap (50/day headroom). 0 InMails against a 5/day InMail cap. Both action types fire normally; nothing starves. The campaign feels fluid because each action type has its own budget.
Example 2: high-volume Sales Navigator account on Recruiter
You're on Recruiter Full (150 InMail credits/month) and want to run an InMail-heavy campaign at 4/day average across two LinkedIn accounts. With the default 5/day InMail cap per account, you fit comfortably (4 × 30 days = 120 InMails/month/account, under Recruiter's 150/month limit, especially with replies returning credits).
If you wanted to push to 8/day on one account specifically (240/month projected), you'd need to either rotate the load across multiple accounts or accept that you might run out of credits before month-end. The InMail cap slider has a red zone at 15/day to flag this — at 15+/day you're projected at 450/month, which exceeds even Recruiter Full's balance.
Example 3: campaigns sharing the same LinkedIn account
You have two campaigns on the same LinkedIn account. Campaign A is invite-heavy (60 invites/day target). Campaign B is follow-up-heavy (40 follow-up messages/day target on warm prospects from a previous campaign).
Both caps are per-campaign in the cap split — they don't combine on our side. But they DO share the account-level ramp ceiling and LinkedIn's per-account real limits on the platform side. So even though our per-campaign caps allow 60+40 = 100 actions, the account-level ramp + LinkedIn's actual platform limits gate the total. If your account is on a 4-week ramp at week 2 (cap maybe 40 invites/day), Campaign A will only get 40 invites/day fired even with a per-campaign cap of 60. Campaign B's 40 follow-up messages/day fits within both the per-campaign cap (80/day default) and the per-account shared 100/day non-invite bucket.
The takeaway: per-campaign caps are upper bounds. The lowest binding limit (per-campaign cap, per-account ramp, LinkedIn's actual platform cap) wins on every send. Account safety always wins over campaign throughput.
When to adjust each cap
- Lower the invite cap (under 80/day) if: your account is new and still on the early ramp; your acceptance ratio has been low (under 20%); LinkedIn has returned 422 errors recently; you've reconnected within the past few days.
- Lower the follow-up message cap (under 80/day) if: you use post-engagement features (likes, comments, reactions) heavily; your team manually engages on the same account; you're seeing any 422 errors on the message endpoint.
- Lower the InMail cap (under 5/day) if: you're on Career or Sales Nav Core and want your monthly credits to last; you're seeing low InMail reply rates and want to be more selective; you've recently used InMails for unrelated business and have fewer credits than usual.
- Raise any cap if: your account is well-established, fully-ramped, has consistent acceptance/reply ratios, and you've never seen 422 errors. Even then, we recommend staying in the green zone (under the red zone marker on each slider).
If in doubt, leave the defaults. 80/80/5 is conservative-but-productive for most accounts and represents the recommendation we'd give 95% of customers as their starting point. The defaults are tunable per-campaign so you can experiment without affecting other campaigns on the same account.
If you set "Daily send limit" before, that still works
Existing campaigns that use the legacy combined "Daily send limit" continue using it — there's zero regression and no forced migration. The cap split is opt-in via the campaign editor's "Cap split (advanced)" section. When you toggle the split, the three new caps take effect for that campaign and the legacy combined limit is ignored. If you toggle it off, the legacy limit comes back into effect.
Internally, when the three new caps are NULL on a campaign, the engine falls back to the legacy combined limit. When any of the three is set, the engine uses the action-type-specific cap for that action and the legacy limit is bypassed.
Account safety
The cap split is a safety enhancement, not a throughput optimization. Splitting the limits more accurately mirrors how LinkedIn enforces caps on its own side, which means our per-campaign decisions can match LinkedIn's per-account thresholds more precisely. The defaults (80/80/5) sit conservatively under every documented LinkedIn soft cap. Pushing higher numbers is your call, but our defaults reflect our best understanding of where the safety line is.
Cap enforcement is atomic. Multiple worker processes cannot race past the limit even under heavy load — every send reserves its slot in a single atomic operation against our queue store before the LinkedIn API call fires. If the cap is reached, the operation fails fast and the prospect waits for tomorrow. The cap cannot overshoot. We fail closed: if our queue store is unreachable, the platform stops sending rather than guess at the count.
Per-account daily and weekly LinkedIn caps, sending windows, and timezone scheduling are unchanged. The cap split sits inside the per-account ramp, not on top of it.
Common questions
Will switching to the cap split affect my running campaigns?
No, unless you toggle the split on a specific campaign. Existing campaigns continue using whatever you had set before (the legacy "Daily send limit"). Toggling the split is opt-in per-campaign and takes effect on the next sending window. Any prospects already in flight on the campaign are unaffected.
Why is the InMail default so low (5/day)?
Because InMail credit balances are limited (5/month on Career, 50/month on Sales Nav Core, 30-150/month on Recruiter), and 5/day translates to 150/month projected — which is the high end of what most subscriptions sustain. If you're sending fewer InMails than your monthly balance allows, you can lower this further; if you're on Recruiter Full and want to push more, raise it. The slider is tunable.
What happens if I hit a cap mid-day?
The campaign continues running, but no further sends of that action type fire that day. Prospects waiting on that action type are deferred to the next valid sending window (typically tomorrow's first slot). The other two action types continue independently — hitting the invite cap doesn't pause follow-up messages or InMails.
Do the caps reset at midnight UTC or midnight my-timezone?
UTC midnight. This is intentional: LinkedIn's own per-account counters reset on a UTC schedule, so aligning ours to UTC keeps the two systems coherent. If you're in a non-UTC timezone, your "daily" cap window doesn't perfectly match your local day, but it does match LinkedIn's enforcement window — which is the load-bearing constraint.
Can I set a cap to zero?
Yes. Setting any cap to 0 effectively disables that action type for the campaign. Useful if you want a campaign that only does invites and never follow-ups, or only does follow-ups on existing accepted prospects without sending fresh invites.
Do the caps share across campaigns on the same LinkedIn account?
The caps are per-campaign, so two campaigns on the same account each have their own 80/80/5 budget on our side. But the account itself has its own LinkedIn-side limits and our per-account ramp ceiling — both of those gate the combined sum. Practically: if you have 3 campaigns on one account each with 80/day invite caps, the LinkedIn-side per-account cap (around 80-100/day) will gate the actual sum to 80-100/day total, not 240. Our atomic enforcement respects whichever limit is binding.
What if I want to enforce a workspace-wide cap, not per-campaign?
Today, caps are per-campaign. Workspace-wide rollup is something we've heard requested and may build in the future, but for now the practical workaround is to keep your per-campaign caps low when you have many campaigns on the same account. The per-account ramp ceiling does provide an account-wide upper bound automatically.
How does this interact with my LinkedIn account's ramp schedule?
The per-account ramp ceiling is the lower bound. Per-campaign caps are checked AFTER the ramp ceiling, so if your ramp is at 40 invites/day at week 2 of a new account, your campaign's 80/day invite cap doesn't override that — the engine sends 40/day total across all campaigns on that account, not 80/day per campaign. Once the ramp completes (typically week 6+), the per-campaign caps become the binding constraint.
Related guides
- LinkedIn rate limits — Per-account daily and monthly limits, what they mean, why they exist
- Why isn't my LinkedIn campaign sending? — Seven common patterns and their fixes
- Why is my LinkedIn campaign stuck or showing wrong numbers? — Six common "stuck" shapes and their fixes
- LinkedIn campaign documentation — How LinkedIn campaigns send, why acceptance rates can appear to lag
- LinkedIn Safety FAQ — How we protect your account from restriction
- LinkedIn Outreach Hub — Strategy and best practices
- Full documentation — All 90+ guides
Still have questions? Email hello@warmysender.com with your campaign name and we'll dig into the specific case.