Set up warmup, launch cold email campaigns, and run LinkedIn and Instagram outreach — with safe sending limits and inbox placement built in.
Complete documentation for WarmySender. Setup guides, troubleshooting, and help resources for email warmup, cold email campaigns, LinkedIn automation, and more.
New to WarmySender? Connect a mailbox, turn on warmup, set up SPF/DKIM/DMARC, and launch your first cold email campaign — a simple 6-step, inbox-safe setup.
Connect your mailbox once, switch on warmup, and let an AI assistant run everything else — your cold email campaigns, your LinkedIn outreach, and your Instagram DMs — just by asking in plain English…
The fastest way to get your bearings in WarmySender is the 60-second guided tour. WarmySender runs your outreach on autopilot with AI agents, and the tour walks you through every part of the app and…
Compare WarmySender plans side by side — email quotas, mailboxes, leads and team seats — so you can pick the right one. 7-day free trial, no card required.
Try WarmySender free for 7 days on the Pro and Enterprise plans — no credit card needed. Full access to the plan you pick, and what happens when it ends.
Go from zero to a live cold email campaign in 15 minutes: connect a mailbox, add prospects, write a sequence, and launch — the fastest path to your first send.
TL;DR: If you just want to change a setting (like the daily sending limit), DO NOT disconnect and reconnect. Use the 'Edit sending limits' option on the Mailboxes page — it is live and…
Your trial is 7 days on the plan you started it on — available on the Pro and Enterprise plans. No credit card is required, and it switches on within a second or two of you signing up. Starting a…
How to bulk import multiple mailboxes into WarmySender at once — the CSV format, supported header names, RFC-4180 quoting rules, per-row error reporting, subscription tier mailbox limits, and how to…
Gmail and Google Workspace need a special App Password (with 2-Step Verification turned on). Outlook and Microsoft 365 connect with one-click Sign in with Microsoft instead, so they need no App…
Step-by-step guide to connect a Gmail or Google Workspace alias-domain mailbox to WarmySender for cold email, warmup, and multichannel outreach. Covers App Passwords, the correct server hostnames…
Send from several Microsoft 365 aliases on one licensed mailbox — each with its own warmup, limits and campaigns. Setup, port 587, and the two switches.
You turned on 2-Step Verification and created a Google App Password, but your mailbox shows "authentication failed" on the first few tries. Here's the reassuring part: a brand-new App Password almost…
If WarmySender shows your Microsoft 365 mailbox as 'SMTP Disabled by Admin' — at signup, or even after you've connected with Microsoft via OAuth — it means your tenant administrator has disabled SMTP…
Open Mailboxes, click ⋮ on the mailbox and choose Edit connection settings to change its server, port, sign-in name or password — warmup history stays.
How email warmup works: WarmySender exchanges real inbox emails to build sender reputation so cold emails land in the inbox, not spam. See the timeline.
Your warmup emails are protected by a multi-layered defense system that works around the clock to ensure reliable delivery and safeguard your sender reputation.
Email warmup best practices: how long to warm up, keeping it on during campaigns, ramping volume safely, and the mistakes that stall your sender reputation.
If one of your inboxes shows 'temporary provider slowdown', it means your email provider was briefly slow to respond the last time WarmySender tried to send or check mail on that inbox. This is…
Email warmup questions answered: how long to warm up before sending, whether to keep it on during campaigns, safe volumes, and what a healthy score looks like.
The Dashboard Health Score is a composite workspace-wide score (0-100) that reflects the overall health of your outreach across all systems — email campaigns, warmup, LinkedIn, and campaigns. It is…
Once your domain is fully warmed, a good rule of thumb is to send up to roughly 30-50 cold emails per day per mailbox, and to grow total volume by adding more mailboxes rather than pushing any single…
What your warmup Inbox Rate means in WarmySender: of the warmup emails we could verify, the share that landed in the inbox instead of spam. Why some emails are 'unverified' and don't count for or…
Your warmup Spam Rate measures where the mail your mailboxes SENT landed for the people receiving it - not what arrives in your own folders. Separately, when warmup mail does land in your spam folder…
If a mailbox asks to be reconnected again within minutes of you reconnecting it, the sign-in is not the problem. Your email provider has switched off incoming access for that mailbox - the permission…
Warmup and auto-stop-on-reply both need to READ your inbox, which requires incoming (IMAP) access — not just outgoing (SMTP). Warmup works by your inbox receiving friendly warmup mail, measuring…
Warmup is real inboxes exchanging real email, so an address has to be able to RECEIVE mail, not just send it. When warmup has been running for days and nothing has arrived, there are two common…
Why warmup can briefly pause on one of your mailboxes — usually a precaution to protect your sending reputation after a temporary delivery issue — and why you almost certainly don't need to worry…
What the warmup score on your mailbox means, why a brand-new mailbox shows "Building data" instead of a number, why a score climbs back on its own after a rough patch, and how to tell when a mailbox…
How WarmySender's email warmup keeps your sender reputation safe: it automatically avoids sending to inboxes that aren't accepting mail — on your first message and on every follow-up reply — steers…
Choose the language your warmup emails are written in — English, Spanish, French, German, Portuguese, Italian, or Dutch. Warmup mail is composed natively in your chosen language, not…
Warmup sends fine but measures nothing? Usually a reading permission your admin left switched off — but not always. How to tell, and what to do either way.
Launch your first cold email campaign in WarmySender: pick a mailbox, build a three-step sequence, leave the daily limit at its default, and read the results honestly.
A sequence is the ordered set of steps — emails and/or LinkedIn actions — that runs automatically for every lead you enroll. Two controls shape how it plays out: each step's delay decides WHEN it…
Put several conditions in one sequence step, joined by AND or OR, and branch on how many times someone opened or clicked — like 'opened at least 2 times OR clicked'.
When you launch a campaign and the launch dialog says one or more prospects don't have data your template references — for example, your message uses {{custom.hook}} but five of sixty-nine prospects…
Spintax lets you write several versions of a phrase in one place, so every recipient gets a slightly different message. That variety is what keeps your outreach from looking like one template sent a…
A campaign stuck on Running with nothing sent is usually a mailbox that needs signing in again, sending paused on its mailbox, or every step switched off. Here's how to spot each and fix it.
The 'Minutes Between Sends' setting on a campaign controls how long each individual mailbox waits between its own consecutive sends. It is enforced per mailbox, not globally across the campaign.
Your campaign paused because some emails were turned away as spam before anyone received them. That is a message problem, not a contact-list problem — here is what to change.
Audience Exclusion Rules keep you from emailing the same people too often. You set the rules once on a campaign, and WarmySender removes anyone who matches BEFORE the campaign sends — so nobody who…
Yes — WarmySender shows you which recipients opened your campaign emails, and how many times. Open tracking is built into every cold email campaign and is turned on by default. The opens you see…
If a campaign step has more than one A/B variant, WarmySender shows you how each variant performs and which variant every recipient received — without exporting and cross-referencing by hand.
If you save the email copy you reuse as Templates, WarmySender can tell you which ones actually work. The Analytics → Templates view rolls up real performance — how many sends, what share got opened…
You won't lose your campaign setup. As you build a campaign in WarmySender, your work is saved automatically as you go — and it's saved to your account, not just to one browser. A small 'Draft saved'…
If a campaign has disappeared from your Campaigns list, it may have been archived. Archiving is a safe way to tidy up: the campaign is hidden, but nothing is deleted. Its steps, emails, settings…
If a prospect in your campaign shows the status 'Bounced', it means WarmySender detected that an email to that address could not be delivered, and stopped sending to it for you. This protects your…
When some of your cold emails don't reach their recipients, the Delivery Issues view shows you exactly which ones and why. It lives in the unified inbox's left sidebar on the Campaigns tab, right…
Good news first: we fixed an issue that could stop very large contact lists (about 5,000 contacts or more) from starting to import. If you tried to import a big list and saw "Failed to start import…
Change the font, size, line spacing and colours of a campaign email, add lists, links, images and your signature — and know when a plain-looking email will get you more replies.
WarmySender supports inserting images into your campaign emails using the Image button in the email editor toolbar — the same toolbar that carries the font, text size, line spacing, colour, list…
You can attach files to a reply you send from the Unified Inbox — up to 5 files, 10 MB each. Campaign and cold outreach emails don't take attachments, on purpose.
Sometimes campaign prospects are marked as 'Failed' with the error 'stuck in processing loop after 3+ recovery cycles'. This guide explains what this means and how to prevent it.
The stat box at the top of every campaign detail page (Sent, Opens, Clicks, Replies, Bounces, Open Rate, Click Rate, Reply Rate) is often misunderstood. Here is exactly what it shows.
Each campaign has a 'Minutes Between Sends' setting that controls the minimum interval between consecutive sends from that campaign. When the same mailbox is used by multiple campaigns (or by warmup…
Short answer: leads imported from LinkedIn usually don't come with an email address, so a campaign's email steps are skipped for those contacts — there's simply no address to send to. Their LinkedIn…
How much cold email to send per day per mailbox once it's warmed up: 30–50 a day, and 50 is the default. That's our recommendation, not a limit — the limits that are applied sit on your domain (200 a…
Why a prospect that bounced in one of your mailboxes is automatically skipped in your OTHER mailboxes in the same workspace. How bounce-fanout protects your sending domain reputation, the…
The WarmySender inbox is a campaign-reply surface, not a second copy of your mailbox: it shows the conversations your campaigns started and the answers they earned. Warm-up emails, delivery-failure…
Multi-step email campaigns now keep every follow-up in the same conversation and from the same sending inbox as the first email by default, so a nudge reads like a natural reply instead of a fresh…
Email rejections come in two kinds: (A) your OWN sending provider rejects the message as spam before it ever leaves your mailbox — so it never reaches the recipient and your campaign shows sent zero…
Switch on UTM tracking in a campaign and WarmySender tags every link in every email automatically. Setup, GA4 reporting, and how manual tags are respected.
One real reply on any channel stops every remaining step of that prospect's sequence on every channel — and an automatic reply does not. What stops, what counts as a reply, and how to resume.
Out-of-office notices, autoresponders and ticket acknowledgements never stop your sequence or count in your reply rate. Here is how it works, and how to resume anyone.
Every campaign email gives recipients a way to opt out — you choose how it looks and what it says. Pick a classic unsubscribe link or "Reply to opt out", write the sentence in your own words, place…
30-50 cold emails per day per mailbox once warmed up — 50 is the default. A new domain is capped at 200 a day across every mailbox on it until it turns 30 days old, then 2,000. Week-by-week table.
The LinkedIn add-on lets you run full LinkedIn outreach from inside WarmySender — find prospects, connect and message them across multi-step campaigns, engage with and publish content, manage every…
Your campaigns come with you. When you reconnect your LinkedIn account - whether you enter your details again, sign in a second time after a security check or a verification code, or connect the same…
Nothing is broken and there is nothing to re-launch. LinkedIn enforces its own invitation limits, and when it signals that an account has reached one, we pause sending on that account so it can rest…
Why one person in a LinkedIn campaign could receive the identical follow-up more than once, what stops it now, and what to say to them. The cause: a sequence step could deliver its message and then…
Yes — you can run a LinkedIn campaign that only sends messages to people who are already your 1st-degree connections, with no connection requests. Here's how to set it up:
Every LinkedIn message you send from the WarmySender Inbox shows a small delivery status underneath it, so you always know whether your outreach landed and whether it's been read. You don't turn…
The reply box in your WarmySender Inbox can do more than text. From it you can attach a file, record a short voice note, and quote a specific earlier message — everything sends straight to the…
You can attach a file to a Send message step in your LinkedIn campaign — a PDF one-pager, a case study, an image, a slide deck, or a short voice note. You upload it once when you build the step, and…
Hover over any message in a LinkedIn conversation in your WarmySender Inbox and a small row of controls appears: react with an emoji, edit a message you sent, or delete it — the same quick actions…
Two small controls in your WarmySender Inbox keep a busy conversation list under control. They work on LinkedIn and email threads alike, and neither changes anything for the person on the other end…
When someone sends YOU a LinkedIn connection request, it now shows up in your WarmySender Inbox alongside your conversations — with the sender's name, their note if they added one, and Accept and…
Open any prospect in Prospects and click 'Enrich from LinkedIn' to pull a fuller picture of who they are — their current role and how long they've been in it, their top skills, education, how you're…
Write a LinkedIn post in WarmySender and either share it right away or schedule it for later — and choose whether it goes out from your personal profile or from a company page you manage. Line up a…
If you're hiring, you can post a role to LinkedIn straight from WarmySender, then watch applicants come in and move them through simple stages — from brand-new applicant, to reviewed, to contacted…
Two handy things you can do to a connected LinkedIn account right from the LinkedIn > Accounts page: see how many InMail credits the account has left, and edit your own LinkedIn profile — your…
LinkedIn comes two ways. The free browser extension runs LinkedIn-only campaigns from your own browser and does not use a Cloud seat — install it from /linkedin-extension, then open LinkedIn →…
Your LinkedIn session lapsed and WarmySender paused sending until you reconnect. We send up to three friendly reminder emails — right away, then 24 hours later, then 72 hours later — so the request…
Run several campaigns from one LinkedIn account and they share a single daily allowance — they don't each get their own. Here's how it's split fairly, and why a campaign can say 'running' while it…
If your LinkedIn campaign appears to send fewer invites or messages than you expected — or seems to stop sending after a few — there is almost always a safe and intentional reason. WarmySender's #1…
WarmySender's LinkedIn add-on is billed per seat, and you choose how often you pay for it: monthly, yearly, or every 3 years. Each seat allows one connected LinkedIn account.
If your LinkedIn account dashboard shows 'Reconnect needed', 'Linking — finishing connection', or 'Linking — taking longer than expected', this guide explains what each badge means, why it happens…
The 'acceptance rate' on your LinkedIn campaign dashboard is the percentage of sent invites that have been accepted by the prospect on LinkedIn. It is a real-time number, but it can lag the actual…
Automate LinkedIn post engagement through the WarmySender REST API. The LinkedIn Likes API lets you programmatically add reactions to posts using API key authentication — perfect for AI agents, CRM…
WarmySender supports connecting multiple LinkedIn accounts within the same workspace, each requiring its own LinkedIn seat. You can use all of them inside a single campaign so the work is shared…
Running several LinkedIn accounts on one campaign with Round Robin, and wondering why only one seems to be sending — or why the campaign paused itself? Both are usually working exactly as intended.
WarmySender automatically protects each connected LinkedIn account with a dedicated proxy — ensuring your activity appears to originate from a consistent, geographically plausible IP address rather…
Skill endorsements let you endorse a prospect's LinkedIn skills as a lightweight engagement action that builds rapport, triggers a notification on their end, and warms up the relationship before you…
Proxy management lets you change the IP address used for your LinkedIn connection, improving account safety by matching your IP location to your LinkedIn profile's location.
Every WarmySender channel — cold email, email warmup, LinkedIn, Instagram and multichannel — respects a campaign's sending window. This guide explains how the LinkedIn sending window works, why a…
WarmySender emits real-time webhook events for LinkedIn reply, invite acceptance, message sent, and account disconnect activity. This guide is the canonical reference for how the events flow, where…
Workspaces on Enterprise and Ultimate plans can have multiple LinkedIn accounts connected at once — typically one account per sales rep, all in the same workspace. WarmySender handles a few subtle…
Occasionally the WarmySender dashboard shows a status that doesn't match what you see on linkedin.com — a campaign tile says 'Connected · last activity 4h ago' but your LinkedIn shows a recent…
When a LinkedIn account disconnects (LinkedIn rotated your session token, you triggered a 2FA prompt, or the account was paused for any reason) WarmySender holds your campaign schedule in place — but…
If your dashboard says an InMail was sent but you can't find it in your LinkedIn Sent folder — or if your campaign shows 'Daily limit reached' when you know you haven't actually sent that many — this…
Connect a LinkedIn account, then import people from a LinkedIn search, a Sales Navigator list, profile links or a spreadsheet into an Audience you can use in campaigns.
Short answer: a Sales Navigator or Recruiter list can only be imported when that subscription is active on the exact LinkedIn account you connected — and when you use the same LinkedIn account that…
If a card is declined when your LinkedIn seats renew, WarmySender safely pauses the seats and temporarily sets aside the connected LinkedIn accounts so nothing runs (no invites, messages, or…
A restricted LinkedIn account is recovered with LinkedIn — verify your identity or appeal. WarmySender pauses its campaigns and restarts on a slow recovery ramp.
Install the free WarmySender LinkedIn extension, see which plans include how many accounts, and what happens when the browser is closed. Same safe daily limits.
Compare the free LinkedIn browser extension with a Cloud seat: what runs in your browser, what keeps going with the laptop closed, and which campaigns need a seat.
Automate Instagram outreach with WarmySender: connect your accounts, warm prospects up with follows, profile views and likes, then send DM campaigns — all inside safe daily and hourly limits that…
Instagram outreach works from an audience you bring — the people you already want to reach, each identified by their Instagram handle (@username). Unlike LinkedIn, there is no keyword, hashtag or…
Go to Instagram > Accounts and click 'Connect Account', then sign in right there with your Instagram username and password — plus a verification code if you use two-factor authentication. It takes…
Every connected Instagram account has a combined safe budget of 100 actions per day and 10 per hour, shared across follows, profile views, likes, comments, and DMs. New accounts ramp up gradually…
Every connected Instagram account has one combined budget of 100 actions per day and 10 actions per hour. Follows, profile views, likes, comments and DMs all draw from that same shared pool — it's…
Go to Campaigns > New campaign > Instagram Campaign, add your audience, and build a sequence from steps like Follow, View profile, Like a post, Comment on a post, and Send DM — with Wait delays and a…
When you send a DM to someone who doesn't follow you, Instagram files it in their Message Requests folder rather than their main inbox. This is completely normal — it's how Instagram handles messages…
Open your Inbox and switch to the Instagram tab to see every Instagram conversation in one place — chats your campaigns started, replies from message requests, and inbound DMs — and reply to any of…
The Instagram add-on is billed per seat — one seat per Instagram account you connect and run — and you choose how often you pay for it: monthly, yearly, or every 3 years. Add, adjust, or cancel seats…
The best Instagram outreach warms people up before it messages them, keeps every DM short and personal, and stays inside safe limits — a good starter pattern is Follow → Wait 1 day → Like a post →…
We re-check every connected LinkedIn, WhatsApp and Instagram account with the network about every 30 minutes. A lapsed session shows 'Reconnect needed' and pauses campaigns.
Manage your WarmySender subscription: compare plan quotas, upgrade or downgrade, update payment, and billing cycles. 7-day free trial, no card required.
If your records read as valid but your mail still goes to spam — with zero bounces and a daily volume that fell on its own — your domain is probably pointed at two sets of nameservers at once, and…
A custom tracking domain lets the open, click, and unsubscribe links inside your cold emails use your OWN domain (like track.yourdomain.com) instead of the shared WarmySender domain. This guide walks…
A bad list is the fastest way to damage a sending domain, so WarmySender guards against it in two ways. Both are on by default and neither needs configuring.
If Microsoft or Outlook is rejecting your email, the cause is almost always the reputation of the IP address your mail is SENT FROM — not your warmup. Email warmup does not block an IP, and it cannot…
If you've connected many mailboxes that all live on the same email hosting account, the host may briefly limit how many connections it accepts at once — so a few mailboxes can momentarily show…
Why one or several of your mailboxes can suddenly show a connection problem or a 'Reconnecting…' status — even ones that have been warming healthily for weeks — and why you almost certainly don't…
The full methodology behind our email warmup tools comparison page: how vendors are selected, why we distinguish peer-to-peer networks from curated networks, how the feature matrix is verified, the…
The full methodology behind our neutral email deliverability benchmarks page: source-quality tiers (Tier A primary studies, Tier B aggregators), the citation-index format, why some cells read 'No…
If WarmySender shows your mailbox as 'Provider Blocked' or 'Domain Blacklisted', it means your email provider (Outlook, Gmail, Yahoo, etc.) has restricted sending on the account. This guide explains…
Where to see inbox placement: the card on each campaign page, Analytics > Deliverability, and the Warmup page — plus how to check a real send yourself with a test email.
Four sender rules apply at any volume — SPF or DKIM, valid reverse DNS, TLS, and a spam-complaint rate under 0.3%. The extra bulk requirements start at 5,000 messages a day.
Go to WhatsApp > Numbers and click 'Connect number', then open WhatsApp on your phone and go to Settings > Linked devices > Link a device and scan the code we show you. It takes about a minute…
Every connected number sends inside one budget: up to 60 messages a day in total, of which at most 20 may be first messages to people you have never messaged before, no more than 8 in any hour, and a…
Go to Campaigns > New campaign > WhatsApp, pick the connected number you want to send from, choose an audience of phone numbers, build a short sequence, and launch. WarmySender then paces every…
WhatsApp outreach works from an audience you bring. Upload a CSV of phone numbers in international format (like +14155550123) on the Prospects page and save everyone to a reusable list, or paste…
No — WarmySender links your existing WhatsApp app as a device, so there's no Business API to set up and no message templates to get approved. How the app, the API and templates differ, and why opt-in…
Go from a country all the way down to a single neighbourhood using the location filters on the Leads page: Country, then State / Region, then City, then Postcode / ZIP, and finally 'Street contains'…
Your contacts live in your account once, and you can add the same contact to as many campaigns and lists as you want. You never have to re-upload people you've already added, and if you do re-upload…
Change every detail on a saved contact — name, company, role, website, phone, LinkedIn, WhatsApp, Instagram, country, city, industry, tags and custom fields, including brand-new custom fields…
Two different actions on the Contacts page: removing someone from one list leaves them in your account, while deleting a contact takes them out of every list and stops them in every campaign. Here is…
Your total contact count can be higher than the numbers on your named lists — and that's normal, not a bug. This guide explains why, and how to review the contacts that aren't in any list from the…
Upload a CSV or plain-text list — almost any spreadsheet export works. No column has to be named "email", separators are detected automatically, and duplicates are removed so you are never charged…
Yes — the results download contains every column from your uploaded file, after the verification columns. Older downloads carry only the verification columns; a two-minute lookup formula merges them…
How your verification allowance works: a monthly amount plus a smaller daily pace, and a check has to fit both. Unknown results are always free and never use a credit.
Yes — with credit packs, which are not on the daily pace and never expire. And verifying while your campaigns run is safe: bad addresses are skipped, nobody is emailed twice.
Why a list that worked last year bounces today, what a bounce really costs your sender reputation, and exactly what to do with Risky and Unknown results.
What each verification result means and exactly who to send to. Unknown does not mean bad and it is free — but it is not confirmed, so send Unknown and Risky addresses separately, in small batches…
Turn verification results into a ready-to-send list in one click. Your original list and running campaigns are never edited, and nobody is contacted twice.
Keep Valid (confirmed) addresses only — without mixing in Risky catch-all results. Download matches the filter you see, and you can save that view as its own list.
The three ways to get email addresses in WarmySender: the built-in leads database, importing a list you already have, and verifying addresses before you send.
A verified list can still bounce a little — verification is a snapshot in time, not a permanent guarantee. Here's what each result means and what to do about it.
Yes, no branded app: catch replies and bounces with Webhooks by Zapier, call the WarmySender API from a Custom Request, and give Zapier agents that same access.
Yes, no branded app needed: catch replies and bounces with a Custom webhook, call the WarmySender API from the HTTP module, and give Make AI agents that access.
Yes, three ways and no plugin: an n8n AI Agent via the MCP Client Tool node, the REST API from an HTTP Request node, and replies or bounces into a Webhook node.
Get real-time notifications in Slack when prospects engage with your campaigns — including LinkedIn replies with the message body, email replies, bounces, unsubscribes, and sending-limit alerts. No…
Connect Claude Desktop, Claude Code, Cursor, Windsurf, Zed, and other MCP-compatible AI clients to your WarmySender workspace using the Model Context Protocol (MCP). Once connected, your AI assistant…
Step-by-step install snippets for every MCP-compatible AI client. The WarmySender MCP server lives at https://warmysender.com/mcp and authenticates with your existing API key (ws_ prefix).
How the WarmySender MCP server keeps your account safe when you grant an AI assistant access. Read this before handing a production API key to any AI tool.
Add WarmySender to Grok as a custom MCP connector in about a minute: paste the server URL, authenticate with your API key, and run outreach in plain language.
When someone fills out a form on your website — a demo request, a newsletter signup, a lead-magnet download — you can have WarmySender add them as a lead AND drop them straight into a cold email…
Connect any website form or popup — a newsletter signup, a demo request, a lead-magnet download — straight to WarmySender. When someone submits, the new lead drops into one of your lists, and if a…
Developer guide to the WarmySender REST API mailbox lifecycle: create, fetch, list, update, delete, and restore mailboxes. Create kicks off an async connection check (created → testing → connected)…
If you've checked Google Search Console (GSC) and your page is in the Coverage report under 'Excluded' instead of 'Indexed', this guide explains the four most common GSC bucket types in plain…
This FAQ explains how WarmySender pages get discovered, crawled, rendered, and indexed by Google and AI assistants. If you're curious why a specific page isn't showing up in search yet — or why a…
How WarmySender stays fast — a plain-language tour of how our public pages and the product surface are engineered for Google's Core Web Vitals, and how we keep them fast as the codebase grows.
Moving up to a bigger plan is instant, and you only ever pay for what you actually use. This guide explains exactly what happens to your bill when you upgrade, change, or downgrade your WarmySender…
If an invoice on your account goes unpaid, your account pauses. Nothing is deleted, nothing is cancelled, and nothing needs rebuilding — settle the invoice and everything starts again on its own…
If your card was turned down when you paid, or when you tried to save a card, WarmySender shows a note in the app saying in plain words what happened and what to do. If you still haven't paid an hour…
Your campaign is paused because an invoice on your account has not been settled yet. Nothing is lost, nothing is cancelled, and nothing needs rebuilding. Settle the invoice and your campaigns start…
Your payment is safe, and the plan almost always switches over within a few seconds. The record of what you paid lives with the payment itself, not with what the dashboard happens to be showing, so…
Bought WarmySender on AppSumo? Redeeming your code activates your lifetime plan in under a minute — there's no password to create and nothing to set up first.
Short answer: someone who signs up through your affiliate link appears in your referral list right away — but earnings only begin once they purchase a paid plan. Seeing referrals next to $0 earnings…
Yes — you can move LinkedIn seats you already own onto annual or 3-year billing whenever you like, and you can add more seats on a longer term in the same step. Nothing is cancelled, you keep every…
How many mailboxes can you attach to WarmySender on each plan? Pro 50, Enterprise 400, Ultimate 800 — account-wide, shared across your workspaces. Unlimited warmup on every plan. This page covers…
Your target is what you are aiming at; today's volume is what the mailbox has earned. A new domain starts at 1 a day and reaches 40 around week 6 of sending. Every reason your number is lower…
Adding your own connector in ChatGPT sits behind developer mode, and the write actions campaigns need are a Business, Enterprise or Edu capability — so for one person, Codex is the path that works.
Muse Code connects with a workspace key rather than a sign-in screen: add one block to its settings file, keep the schema version line, restart, and run your outreach in plain language.
Once Muse Code is connected, you run outreach by describing it. The prompts that work for cold email, LinkedIn, Instagram and WhatsApp — and the line your agent can never cross.
Muse is Meta's personal AI agent. Meta documents no connector platform, plugin store or MCP support for it — so WarmySender is not a built-in Muse connector. What actually works today.
Your agent can build, launch, pause and report on cold email campaigns, add prospects, verify addresses and tune warmup — and it can never send a message, raise a limit or connect an account.
Ask your agent to check one address or a whole list, turn the confirmed ones into a list, and build the campaign from them — in a single conversation. What it can check, and what it can never do.
Your agent can build, launch, pause and report on LinkedIn campaigns, posts and recruiter jobs in plain language — and it can never send an invite or lift a limit.
Describe the campaign and your agent builds it across cold email, LinkedIn, Instagram and WhatsApp. Each channel keeps its own limits — adding a channel adds touchpoints, never headroom.
Ask your agent to search 200M+ business records, save what it finds, verify it and build the campaign — searching is free, and credits are only spent on leads you save.
Any agent that speaks MCP can connect — but what each app is allowed to do differs by app and by plan. The honest per-client table, with each vendor's own documentation linked.
Assemble a working AI SDR by connecting WarmySender to Claude, ChatGPT, Cursor or Codex: it finds leads, verifies them, builds and launches campaigns — and it can never send a message or lift a limit.
Your agent can turn warmup on, choose its strategy and target volume, apply settings across many mailboxes at once, and read how reputation is building — and it can never send the warmup mail or…
Your agent can build, launch, pause, resume and report on Instagram DM campaigns and enroll people — and it can never send a DM or lift a limit. WarmySender paces every action inside the 100-a-day…
Point your agent at https://warmysender.com/mcp and sign in — no API key needed. One-click for Cursor and Claude, a one-line skill install, or paste a paragraph into a chat-only agent. Then run every…
Add https://warmysender.com/mcp as a custom connector in Claude and sign in with your WarmySender account — no API key. Needs an active paid WarmySender plan; the greyed-out fix included.
Some AI tools let you add WarmySender as a custom connector. You give the tool the WarmySender address, a WarmySender approval screen opens, you sign in with your normal WarmySender account and…
Your approval already worked. WarmySender recorded it. The last step is the browser handing you back to the app running on this computer — Claude, ChatGPT, Cursor, Codex, OpenClaw, Hermes Agent, or…
If Domain Health (Analytics → Deliverability) says your sending domain is listed on SURBL or Spamhaus, a listing is a flag an independent list keeps on your domain name. It doesn’t stop your mail by…
Yes — each contact can get their own picture that links to their own page. Add two columns to your spreadsheet (for example image_url and page_url) and import it; each extra column becomes a custom…
This error usually means you're using your regular Google password instead of an App Password. Google requires App Passwords for third-party applications when 2-Step Verification is enabled. Go to…
This error indicates the wrong SMTP or IMAP host or port is being used. Double-check the server settings for your email provider in the Provider Setup Guides above. Common mistakes include using port…
A "Mailbox full" notice means that mailbox has reached the storage limit set by your email provider, so your provider can't deliver anything new into it until space is freed up. This is a STORAGE…
This error means your email provider's administrator has disabled SMTP authentication at the organization level. This is common with Microsoft 365 accounts and is NOT a password issue — regenerating…
WarmySender protects your mailboxes from being unfairly paused due to misclassified bounces (NDRs). A bounce — also called a non-delivery report (NDR) — is a message a mail server sends back when…
You can connect HubSpot to WarmySender today. The connection runs on two building blocks included on every paid WarmySender plan: an open REST API (read and write your data) and real-time, signed…
WarmySender offers three ways to connect a Microsoft 365 mailbox: Sign in with Microsoft (recommended, one click), App Password (when your admin has enabled SMTP authentication), and Custom IMAP/SMTP…
When you see a Reconnect Required badge on a mailbox — or the Reconnect Required banner on the dashboard — something on that mailbox needs your attention. Before anything else, check WHICH of two…
This error means the mail server rejected your username or password. You may see SMTP error codes such as 535 5.7.8 (Authentication credentials invalid), 535 5.7.3 (Authentication unsuccessful), 534…
This error means the mail server could not find an account matching the username you provided. The server is reachable and accepting connections, but the specific mailbox does not exist or is not…
It is normal for some warmup emails to land in spam during the first few days, especially for new mailboxes or domains. WarmySender's spam rescue feature automatically detects and moves these emails…
If you see rate limiting errors, it means too many actions are being attempted in a short period. WarmySender enforces safety limits to protect your accounts: email campaigns respect per-mailbox…
If your mailbox shows a red 'Disconnected' status: 1) Your password or App Password may have expired or been revoked — regenerate it from your email provider and update it in WarmySender. 2) For…
When your daily or monthly sending limit is reached, campaigns pause automatically until the limit resets. Daily limits by plan: Pro ($19/mo) = 333 emails/day (10,000/month), Enterprise ($69.99/mo) =…
If connecting your LinkedIn account didn't go through, it's almost always a brief busy moment that clears within a few minutes — not a problem with your account. A failed attempt never uses up your…
If your LinkedIn account is restricted: 1) LinkedIn may have detected automated activity — the restriction is temporary (usually 24-72 hours). 2) Do NOT attempt any actions while restricted — let the…
Low invite acceptance rates are common — typical acceptance rates range from 20-40%. To improve: 1) Always include a personalized note (up to 300 characters) — generic invites get ignored. 2) Mention…
Campaigns auto-enter cooldown when a safety threshold is exceeded. This protects your sender reputation. The trigger is your bounce rate: once a campaign has enough sends to judge fairly, a bounce…
Common CSV import issues: 1) File must be UTF-8 encoded CSV with headers in the first row. 2) Maximum 10,000 rows per import — split larger files. 3) Required column: 'email' — rows without a valid…
Custom tracking domains require a CNAME DNS record pointing to t.indigoroute.com, on a SUBDOMAIN of a domain you own. Common issues: 0) 'A tracking domain must be a subdomain' — you entered your bare…
First, a limit worth knowing about: WarmySender cannot tell you where your campaign emails landed. We have no view inside your recipients' mailboxes, so nothing in the app reports a Promotions-tab or…
Every campaign email gives the recipient a way to opt out, automatically — you never have to add anything by hand in the campaign editor. What you DO control is the style and the wording, both in…
Outlook / Microsoft 365 connect with OAuth (Sign in with Microsoft); Gmail and other providers connect with an App Password over IMAP/SMTP. If the connection stops working: 1) Outlook / Microsoft 365…
If your WarmySender campaign analytics show fewer accepted connections than what you see on LinkedIn, this is normal behavior. There are several reasons for the discrepancy:
LinkedIn connection request steps in campaigns allow blank invite notes — it is not required to include a personalized message. If you are unable to save a step, the issue is likely one of the…
First, the thing most people expect and won't find: WarmySender has no passwords. There is nothing to forget, nothing to reset, and no 'Forgot Password' link — because there is no password on your…
LinkedIn enrichment is intentionally rate-limited to protect your LinkedIn account from restrictions or bans. Here is why it takes time and what you can do:
A common question is why WarmySender uses your own LinkedIn account for enrichment instead of a separate 'WarmySender' account. Here is the technical explanation:
If your Dashboard Health Score is dropping even though your per-mailbox warmup scores are high (e.g., 100), the issue is likely in your campaign performance or LinkedIn account status — not warmup.
If you see prospects marked as 'Failed' with the error 'Failed: stuck in processing loop after 3+ recovery cycles', this means the system tried to send an email to the prospect three times but could…
When a LinkedIn or email step fails for a specific prospect, the campaign Prospects tab shows a per-prospect error pill explaining why. Most errors are temporary and resolve on the next scheduler…
If the Endorse Skill campaign step is being skipped for some prospects, it means those prospects have no endorsable skills on their LinkedIn profile. This can happen when:
LinkedIn only allows message deletion within 60 minutes of sending. After this window, the delete button is hidden and the server will reject deletion attempts.
A free plan does not include LinkedIn. A paid plan includes LinkedIn from your browser: Pro 1 account, Enterprise 4, Ultimate 10. A trial includes the allowance of the plan you are trying. AppSumo…
When a mail server answers your campaign email instead of a person — an out-of-office notice, a vacation autoresponder, or a 'we have received your request' acknowledgement — WarmySender recognises…
Yes! You can connect mailboxes from as many domains as you want into a single workspace. There is no domain limit and no per-mailbox fee on any paid plan.
Yes! WarmySender offers both monthly and annual billing. Annual plans save you 55% compared to monthly pricing as part of a limited-time evergreen offer.
This was a real bug — fixed Apr 30, 2026. Earlier, a few code paths could pause a LinkedIn campaign without also recording when it was paused and why. Campaigns paused that way were invisible to the…
Sales Navigator URLs (the form linkedin.com/sales/lead/ACoAAA...,NAME_SEARCH,XYZ) sometimes can't be resolved to a public LinkedIn member ID. This happens for restricted profiles, recently-deleted…
No, the counter is correct. WarmySender ships two LinkedIn campaign engines that both increment invites_sent_week on your account: the legacy standalone engine (LinkedIn-only campaigns) and the…
This was a real bug — fixed Apr 30, 2026. Reply detection depends on every inbound LinkedIn message being tied back to the campaign the prospect is enrolled in. Neither the real-time notification…
No — Apr 30 fix. Previously, whenever LinkedIn declined a profile lookup (the case shown to you as 'Profile inaccessible'), we marked the prospect as permanently failed with no further retry — even…
This is a real bug — fixed Apr 30, 2026. Previously, if your campaign template referenced a custom variable like {{custom.Linkedinconnection}} and your imported CSV didn't have that column (typo…
If your dashboard is missing recent LinkedIn replies even though prospects are clearly replying on LinkedIn, the most likely cause is an upstream outage at our LinkedIn integration partner.
If a prospect's LinkedIn invitation was accepted but they never received the configured follow-up message, you're hitting one of three scenarios. We have specific recovery flows for each one — no…
Replies imply acceptance — a prospect can't reply to your message unless they accepted the invite first. If your campaign shows replies but the accept counter is 0, you're hitting one of two issues.
This error means your campaign's message template has a Liquid template syntax error — most commonly a typo in a merge tag like {{company} (one closing brace instead of two) or…
If your LinkedIn campaign is showing zero activity, the dashboard count doesn't match your LinkedIn inbox, or prospects look stuck in a status that never changes, there are a handful of patterns we…
If the LinkedIn → Accounts page shows a different daily count than what your campaign card reports — for example, account shows 'invites sent today: 1' but you can see 24 messages went out per the…
If your LinkedIn campaign has a condition step (the diamond-shape step that waits for a prospect to accept or reply before advancing) and your prospects look like they've gotten 'stuck' on it — or…
If your LinkedIn campaign isn't sending — or your dashboard is showing numbers that don't match your LinkedIn inbox — there are four common patterns we know about, and as of May 1, 2026 every one of…
If you accepted a prospect on LinkedIn but the WarmySender dashboard still shows them as Invited, this guide explains how accept-detection works behind the scenes and how to bring the dashboard back…
If you click Resume or Start on a LinkedIn campaign and the action is blocked with a soft amber Alert that says 'No prospects with LinkedIn URL', this section explains why we block it instead of…
Why my campaign appears stuck
Common causes
Account safety wins over speed. LinkedIn outreach respects daily and weekly caps that scale with a 4-week ramp; week 1 caps are intentionally low to protect the account from a permanent ban.
Step wait days are honored. A 7-day wait between two LinkedIn steps means 7 calendar days will elapse before the next action — the system executes campaigns exactly as configured, with no auto-shortcuts.
Sending window clamping. Each campaign has a sending window (e.g. Mon-Fri, 09:00-17:00). Actions scheduled outside this window are deferred to the next valid slot.
The LinkedIn account needs reconnecting. When the sign-in behind a connected LinkedIn account lapses, the campaign pauses itself and says so. Reconnect the account in Settings › LinkedIn and the campaign picks up again within a few minutes.
A safety rest on the LinkedIn account. When LinkedIn signals that an account has hit one of its own limits, we pause every action on that account for a few hours so it can rest, then start again automatically. A week can therefore total far fewer invitations than the number you configured. Why did my LinkedIn invites pause today?
How to verify in the UI
Open the campaign and check the status pill. running means active; paused shows a reason.
In the campaign detail view, look at Next Action for each prospect — the timestamp is the actual next attempt time after sending-window and ramp clamping.
On the LinkedIn account card, check ramp week (1-4) and remaining daily / weekly headroom.
Open the Activity tab on a prospect for the full audit trail of attempts and errors.
How LinkedIn webhooks work end-to-end
Configuration
Settings › Webhooks › New Webhook. Paste your endpoint URL (Slack Incoming Webhook, Zapier Catch Hook, n8n / Make HTTP Trigger, or your own HTTPS endpoint).
Pick the events: linkedin.invite_accepted, linkedin.message_sent, linkedin.reply_received, linkedin.account_disconnected. Subscribe to * for everything.
Click Test webhook — WarmySender fires a sample linkedin.invite_accepted payload to your URL.
lateAccept is true when the person accepted after their last step in the campaign had already run, and false for a normal accept; lateAcceptObservedAt is the time we noticed a late accept (or null). The event fires once per person per campaign, including for late accepts, and nothing extra is sent on LinkedIn because of it.
Sample payload (linkedin.reply_received)
{
"event": "linkedin.reply_received",
"id": "evt_2026_04_27_dd44ee55ff66",
"occurredAt": "2026-04-27T14:08:55.211Z",
"workspaceId": "ws_abcdef0123456789",
"data": {
"campaignId": "camp_8c2f...",
"prospectId": "prs_4a7b...",
"messageBody": "Hi — yes, happy to chat next week. What works for you?",
"isFirstReply": true
}
}
HMAC-SHA256 signature verification
Every outbound webhook carries an X-Warmy-Signature header in the form t=<milliseconds>,v1=<hex>. v1 is the HMAC-SHA256 of timestamp + "." + raw body, using the signing secret shown once when you create the webhook or when an owner or admin clicks Rotate secret. Compare with a constant-time check:
If your URL ends in hooks.slack.com/services/... WarmySender auto-detects it and reformats every event as a Slack Block Kit message — no custom transform needed.
Retries and dead-letter
A delivery your address does not accept is tried again, up to 10 times. The wait before each retry grows: 5 minutes, 15 minutes, 1 hour, 3 hours, 6 hours, 12 hours, 1 day, 2 days, then 3 days. A test send is a signed webhook.test event and uses that same schedule. After 50 events in a row each use up all 10 tries, the webhook is paused. An owner or admin clicks Turn back on to start the count over.
How is InMail delivery verified?
Every LinkedIn InMail send goes through a strict delivery-proof gate before WarmySender will count it as a successful send. The gate works at the platform-contract level: the LinkedIn integration returns a conversation identifier when a real InMail lands on LinkedIn's side. WarmySender treats that identifier as the proof-of-delivery fingerprint: if it's missing, the send is treated as a silent drop, the dashboard counter does not increment, the daily InMail cap is not consumed, and the prospect's last-messaged timestamp is left untouched.
What changes for you
Dashboard counters now match reality. If the InMail count says 12, those are 12 InMails LinkedIn actually queued — each tied to a conversation we can prove with a forensic record.
Reserved capacity slots are released on silent drops. If LinkedIn silently rejects an InMail (rare, but it happens), the slot is given back to today's cap immediately rather than being wasted.
No double-sends. Cross-step idempotency now skips a duplicate InMail to the same prospect even if a later step in your sequence is configured to send another. We never send a second InMail to a prospect who already received one in this enrollment.
What you'll see in your activity history
Every send is recorded with a structured entry your support team can reference:
On a failure, the same entry appears with deliveryProven=false and a reason such as eligibility, rate limit, or missing confirmation, plus the underlying detail from LinkedIn. Customer support uses these records to confirm whether a "missing send" was a phantom drop (now blocked) or a genuine eligibility skip (recipient closed their account, etc.).
Backfill of historical phantom sends
Pre-fix the platform was misclassifying every InMail failure as a successful send. The historical phantom rows are being annotated as phantom rather than deleted — preserving the audit trail while excluding them from "sent" counts going forward. Your dashboard counts will go down briefly when this annotation runs; that drop reflects the truth, not a bug.
Why we don't make extra verification calls
WarmySender's account-safety contract is "every LinkedIn API call is a potential rate-limit hit, every rate-limit hit is a potential restriction." We do not make a follow-up call to "confirm" each send — instead, we rely on the conversation identifier returned by the original send call. This keeps the per-account API budget exactly the same as before the fix, while delivering 100% accuracy on the delivery counter.
Account types and InMail credits
What each LinkedIn plan unlocks
Account type
InMails / day
Connection invites / week
Notes
Free
0 (no InMail credits)
100 / week capped by ramp
Cold messaging only via accepted connections.
Premium
25
100 / week capped by ramp
Default conservative paid tier.
Sales Navigator
50
100 / week capped by ramp
Best for cold outreach to non-connections.
Recruiter / Recruiter Lite
50
100 / week capped by ramp
Recruiter-only message templates supported.
If the account type is unknown, WarmySender defaults to Premium (a conservative paid tier) — never to Free, because Free has zero InMail credits and would silently block all InMail sends.
If LinkedIn restricts an account, we automatically put it back on the gentlest pace and start the easing-in again from week one, so the account rebuilds safely from scratch.
What happens when InMail credits run out
When your Sales Navigator (or Premium / Recruiter) account uses its last InMail credit and LinkedIn reports "not enough credits", WarmySender stamps an account-level credits-exhausted flag. For the next 24 hours every InMail step on that account is skipped — the prospect advances to the next step in your sequence (or completes the sequence if InMail was the last step) instead of holding a slot in the campaign’s daily send budget. After 24 hours WarmySender re-tries one InMail; if your credits have been topped up the flag clears automatically and normal sending resumes. This protects your daily send budget so connection invites and follow-up messages keep flowing while InMails are paused, and it prevents a doomed call burning your per-account API budget. Sales Navigator credits also fully reset on the 1st of every calendar month — that auto-clear is independent and stricter.
Why isn’t my campaign sending faster?
Every LinkedIn campaign in WarmySender passes through a stack of caps before each action fires. Sending throttle is never the result of a single number — six independent caps are evaluated for every send, and the LOWEST one wins. The Throttle Diagnostic panel on the campaign detail page surfaces which cap is binding right now so you do not have to reason about the stack manually.
The cap stack — in evaluation order
LinkedIn safe rates (per-account ceiling). The documented top-of-band per LinkedIn plan. Free = 0 InMails / 100 invites per week. Premium = 25 InMails / day, 100 invites / week. Sales Navigator and Recruiter = 50 InMails / day, 100 invites / week. These ceilings cannot be raised by any setting in WarmySender. See Account types & InMail credits.
Account-type 4-week ramp. Even on a Sales Navigator account, week-1 starts well below the ceiling. Each calendar week after connection, per-action caps step up: invites 25 → 40 → 50 → 50, messages 75 → 100 → 125 → 150 (Sales Nav). The ramp protects new accounts from a hard restriction in the first month.
Your chosen pace. Separate from the ramp above, and chosen when you connect the account based on how old and how active it is: a brand-new account eases in over about six weeks, an established one over about four, a long-standing one over about two, and an account recovering from a restriction takes the longest at around eight. You can also set your own pace, which skips the easing-in entirely. Your pace limits invites, messages, InMails, profile views and engagements per week, and whichever is lower — the ramp or your pace — is the one that applies.
The daily amount you set on the campaign. The per-campaign budget you choose in the wizard. It counts every action together — one invite + one message + one InMail uses three of that day’s budget.
A separate ceiling for each action type. Invites, messages, InMails and profile views each have their own daily ceiling on top of the campaign budget. Reaching one of them holds back ONLY that action type — the campaign carries on sending the others.
The weekly invite ceiling on the account. Around 100 invites a week, and a Sales Navigator account can stretch further. The week resets every Monday at 00:00 UTC. This is the most common reason for “my campaign has gone quiet until next week”.
InMail credits. Sales Navigator includes 50 InMail credits a month, Premium includes 5, Recruiter 100+. When LinkedIn says there are no credits left, we pause InMail steps on that account until LinkedIn refills them (the top of the next calendar month on Sales Navigator). Invites and regular messages keep flowing throughout, and InMails restart on their own.
A safety rest after LinkedIn signals a limit. When LinkedIn tells us an account has hit one of its limits, we pause every action type on that account for a few hours so it can rest. Sending restarts automatically — you do not need to do anything. Trying again during the rest only extends it, because each further attempt counts against the account. Full explanation: Why did my LinkedIn invites pause today?
Worked example — a long-standing Sales Navigator account, week 4
You have one Sales Navigator account set to the fastest pace (its two-week easing-in is finished) and a campaign set to 50 a day, running invite-only steps, Mon-Fri, 09:00-17:00 UTC.
Cap layer
Value
Effective per day
LinkedIn safe rate (Sales Nav, paid)
100 invites / week
~14 / day (spread)
Account-type ramp (week 4)
50 invites / day
50 / day
Your chosen pace (fastest, week 4)
200 invites / week
29 / day
Weekly invite ceiling on the account
200 / week
29 / day
Daily invite ceiling
the weekly figure spread over 7 days
29 / day
The daily amount you set on the campaign
50 / day
50 / day
The one that applies
the lowest row
29 invites / day
The Throttle Diagnostic panel will say: “Daily invite cap reached — resumes tomorrow at midnight UTC” once 29 invites have gone out, even though the campaign is set to 50. The narrowest limit always wins. Raising the campaign to 100 a day would NOT help — your pace and the weekly ceiling still top out at 29 invites a day. To send more: (a) wait for the easing-in to finish and the weekly ceiling to widen, or (b) add MORE LinkedIn accounts to the campaign, so each one works within its own allowance.
Common diagnostic outputs & what to do
What the panel says
What to do
Daily send limit reached
Wait — it resets at midnight UTC. To raise it, edit the campaign and increase the daily amount, but that only helps if the per-action and weekly ceilings still have room.
Invite cap reached for this week
Wait until Monday — the week resets at 00:00 UTC. Or add another LinkedIn account to the campaign, since each one has its own weekly allowance.
InMail credits exhausted
Top up credits in LinkedIn. Sales Navigator refills 50 a month at the top of each calendar month. InMails restart on their own — on the first one that goes through, or when the month rolls over. InMail steps are skipped meanwhile; invites and messages keep flowing.
View profile cap reached
Wait — it resets at midnight UTC. Viewing a profile is a gentle action, and campaigns rarely rely on it as a required step.
Account on conservative ramp (week N of M)
Wait one calendar week, or change the pace under Settings › LinkedIn. Moving a brand-new account to the fastest pace mid-flight is allowed, but it raises the risk of a restriction on accounts less than six months old.
Account in LinkedIn cooldown
Wait — do NOT retry by hand. Every attempt during the rest period extends it. The panel shows the exact time sending restarts, and it restarts on its own. See Why did my LinkedIn invites pause today?
Sending normally
No action. The campaign is going as fast as it safely can. To send more: add more LinkedIn accounts, or wait for the easing-in to finish.
Why the panel names only ONE limit
People used to see a campaign’s daily budget only 30% used, assume something was broken, and write in — when in fact a different, lower limit (usually the weekly invite ceiling) was the real one holding things back. So the panel deliberately names ONE limit, choosing the one that holds sending back for the longest: a safety rest first, then the weekly ceiling, then the daily one, then the easing-in. The per-action rows underneath let you check the arithmetic yourself.
Account-safety contract
The Throttle Diagnostic is a UX hint — it does NOT influence dispatch decisions. The actual gate is enforced on the server side. The diagnostic helper makes ZERO LinkedIn API calls and ZERO new database writes — it reads from the same data the campaign detail page already loads. Account safety always wins over throughput.
Accepted. The prospect clicked Accept on your LinkedIn connection invitation. We record the moment LinkedIn marked the invitation as accepted. It always counts on the first acceptance, even if the prospect replies in the same minute.
Replied. The prospect sent you at least one message in the LinkedIn conversation. We record when that message arrived. A reply always means they accepted first; an acceptance does not mean a reply is coming.
Example timeline A — accepted, then a follow-up message, then a reply
Day 0 09:00 Step 1 invitation sent
Day 2 14:12 Accepted
Day 3 09:00 Step 2 follow-up message sent
Day 5 17:42 They replied
At Day 5: accepted = 1, replied = 1, time from accept to reply = 3d 3h
Example timeline B — the reply reaches us before the acceptance does
Day 0 09:00 Step 1 invitation sent
Day 0 09:18 Reply reaches us at 09:18:42; acceptance at 09:18:48
Both are recorded:
Accepted 09:18:48
Replied 09:18:42
When someone accepts and replies within seconds, the two signals can reach us in either order. Both are still recorded, so your accepted and replied counts are both right. The prospect’s status shows replied rather than connected, because replying is further along than connecting — the counts and the status are tracked separately, so neither one loses information.
Daily send limit and LinkedIn capacity
Each campaign has a Daily limit setting that caps how many actions the campaign can take per day. For LinkedIn campaigns the right value depends on your account's tier and ramp strategy: a Sales Navigator account can sustain ~28 invites/day plus messages and profile views, while a brand-new Free account should stay below 80 actions/day. If your campaign's daily limit is set below what your account can produce, the cap becomes the binding constraint and your campaign will throttle below LinkedIn's safe production rate. WarmySender now picks a tier-aware default at campaign creation and shows a warning banner on the campaign detail page when the cap is below the account's expected daily capacity.
Recommended daily limit by account tier
LinkedIn account tier
Recommended daily limit
Why
Free
75/day
Conservative ramp; no InMails; LinkedIn watches free-account volume closely.
Premium
150/day
Headroom for invites + messages + profile views; ~5 InMail credits per month.
Sales Navigator
250/day
200 invites/week + 100 profile views/day + up to 50 InMails/day fits inside.
Recruiter
250/day
Same daily-action ceiling as Sales Navigator on the safe band.
How the smart default is computed
When you create a LinkedIn campaign and don't set the daily limit yourself, WarmySender picks a default using the formula (maxInvitesPerWeek / 7) × 2 + 50, rounded to the nearest 25 and clamped to the per-tier safety bounds in the table above. The ×2 + 50 headroom covers messages, profile views, and engagements that share the daily budget alongside invites. Your account's per-account ramp gate is still the master ceiling — this default just makes sure the campaign cap doesn't strangle a healthy account.
If you really want a low limit
The server refuses to save a daily limit that's below your account's expected daily invite rate, because it almost always means you'll under-utilize your account. If you have a reason to keep the cap intentionally low (e.g. testing a single-prospect drip), pass ?force_low_limit=1 on the API request, or raise the limit and use a smaller prospect list instead.
Merge Tags & Personalization
Merge tags personalize each email by inserting prospect, sender, and campaign data at send time. They work in the subject line and body of every campaign step, and use Liquid syntax: {{ tag_name }}.
Both {{first_name}} and the camelCase alias {{firstname}} work — same for {{last_name}} / {{lastname}}. Pick whichever style your team prefers and stay consistent inside a single template.
Filters (Liquid)
You can chain Liquid filters onto any merge tag. The most useful one is default, which provides a fallback when a field is missing on a prospect:
Hi {{first_name | default: "there"}},
Other supported filters: upcase, downcase, capitalize, truncate, strip.
What NOT to do
Don't put placeholder text inside {{ }}. The double curly braces are reserved for merge tags. Writing {{people/ops/talent}} will cause a template error and pause your campaign with reason template_error.
Use plain text for fill-in placeholders (e.g. write people/ops/talent directly in the body), or use a real merge tag ({{title}}) backed by a CSV column.
Examples
Subject line:
Quick question for {{first_name}} at {{company}}
Renders as: Quick question for John at Acme Inc.
Opening line with fallback:
Hi {{first_name | default: "there"}}, I noticed {{company}} recently expanded into {{city | default: "your region"}}.
If first_name is missing on a prospect, the email opens with "Hi there," instead of "Hi ,".
Custom CSV field:
{{custom.icebreaker}}
Would a quick 15-min call next Tuesday work?
Any CSV column you upload becomes available as {{custom.<columnName>}}. You can make EVERYTHING a variable — subject, first line, entire paragraphs.
Warmup Pipeline Health
How the dashboard counter, deliverability stats, and pause reasons work — read this if your warmup numbers look surprising.
Daily counter — what "today's sends" really means
The warmup dashboard shows a Sent today tile per mailbox. It goes up by one every time a warmup message successfully leaves that mailbox. It resets to zero at your mailbox's local midnight — not at global UTC midnight — so a Pacific-time mailbox rolls over at 00:00 PT (08:00 UTC) and an Australian mailbox at 00:00 AEST (14:00 UTC the day before). It only ever resets once per day, whatever else is happening.
Example: on Friday at 9 am Pacific your dashboard might show 12 sent; by 6 pm Pacific the same day you will typically see 30+ as more sends complete throughout your warming window. The number only ever grows during the day and resets cleanly at your local midnight.
During the day, the counter may briefly diverge from the per-mailbox event log by one or two if the engine is mid-flight between "message sent" and "counter incremented." Both writes happen inside a single transaction, so the drift never exceeds the in-flight count and self-corrects within seconds. The dashboard API also reconciles the displayed value against the event log so a stale counter can never display a wildly wrong number.
Deliverability lag — why the inbox/spam % grows during the day
After a warmup message is sent, the recipient mailbox needs a few minutes to receive it, the IMAP scanner needs to discover it in the INBOX or SPAM folder, and the engine then records the placement. The full cycle typically takes 3–30 minutes from send to detection, but can stretch to a few hours during heavy provider load. This means the Inbox % and Spam % metrics on the dashboard reflect completed detections, not just sends — so they will visibly climb throughout the day as the morning's messages get scanned.
If you check at 9 am you might see 30 sent but only 8 detected, giving a deliverability metric based on those 8. By 6 pm the same day, the same metric typically reflects 25–30 detections out of 30 sent — a much more accurate picture. Never panic over an inbox % computed before lunch; let the day complete before drawing conclusions.
Why warmup paused — reading the pause reason
When warmup stops on a mailbox, the system records a structured pause reason that tells you exactly why. Reasons fall into two broad groups: billing (your subscription or trial cannot keep funding warmup) and technical (the mailbox itself is failing). Resume the right way for each.
Why it paused
What it means
How to resume
Your free trial ended
Warmup needs an active plan behind it, so it pauses when a trial finishes without one. Your campaigns stop sending at the same time, and everything you built is kept exactly as it is.
Pick a plan under Billing. Warmup and your campaigns come back on their own a few minutes after the payment goes through — your warmup progress is kept, so you don't restart the ramp from day one.
An invoice is outstanding
Your most recent payment did not go through. Warmup pauses while an invoice is unpaid, so we never warm a mailbox without an active plan behind it. Your campaigns pause with it.
Settle the invoice under Billing. The banner there names it and says whether your bank needs to approve the charge, the card needs replacing, or the payment is still being processed. Once it clears, warmup and campaigns restart on their own within a few minutes, with your progress kept. There is nothing to press — and switching warmup on yourself beforehand will not work, because warmup needs an active plan.
Your plan ended
The subscription was cancelled, or an unpaid invoice was never settled and the retries ran out.
Choose a plan again under Billing. Your mailboxes, prospects and campaign data are all retained; warmup resumes within a few minutes of the new plan starting.
Your inbox credentials stopped working
The username, password or app password we hold for this mailbox no longer signs in — usually because it was rotated, revoked, or two-factor settings changed at your email provider.
Reconnect the inbox. Mailboxes › click the affected row › Reconnect. As soon as the new credentials test successfully, the pause clears and warmup carries on.
Repeated sign-in failures
Several failed sign-ins in a row triggered an automatic safety pause, so we stop retrying a credential your provider is already rejecting.
Reconnect the inbox — same path as above. The pause clears the moment the reconnect test passes; there is no waiting period and nothing else to do.
Outgoing mail is switched off at your provider
Your email provider has switched off outgoing mail for this account, so it refuses every email the mailbox tries to send. Signing in and reading the inbox still work, and your username and password are fine.
Turn outgoing mail back on in your provider's control panel, or ask their support to. We try one test email at a growing interval (up to once a day), and warmup starts again on its own as soon as one goes through.
Your provider is refusing our sending servers
Your email provider is temporarily refusing connections from our sending servers, so warmup emails from this mailbox can't go out for now. Nothing on your side causes this.
Nothing to change. We try one test email at a growing interval (up to once a day), and warmup starts again on its own as soon as one goes through.
Someone turned warmup off
You, or a teammate on your workspace, switched warmup off for this mailbox.
Turn it back on from the Warmup page. There is no cooldown. One thing to know: this works while your plan is active — if there is an unpaid invoice or no plan on the account, the switch is refused until that is sorted out first.
If a mailbox shows warmup active in the UI but is generating zero sends and zero detections, look at the per-mailbox detail page first — the pause reason will be displayed there even if the high-level toggle still reads on.
I fixed my billing but my warmup is still paused — what should I do?
When a renewal payment doesn't go through, WarmySender pauses warmup on your mailboxes. This is a deliberate safety pause: we never warm a mailbox without an active plan behind it, because warming an inbox you're no longer paying for can do more harm than good to your sender reputation. The same rule applies across every channel on the platform — cold email campaigns, email warmup, LinkedIn, Instagram, and multichannel sequences all wait for an active plan before they run.
Once your payment clears and your subscription is active again, warmup resumes automatically within a few minutes — you don't need to restart anything, and your earlier warmup progress is preserved, so your mailboxes pick up where they left off instead of starting the ramp from day one. To clear the pause: update your card under Billing › Payment Method, confirm the payment goes through, and give it a few minutes.
Settling the invoice is the only thing that clears this, and it is worth saying plainly why. Switching warmup back on yourself first does not work: warmup needs an active plan behind it, so the switch is refused while an invoice is outstanding — and if it did flip on, a routine check would restore the pause a few minutes later. Rather than leave you pressing a button that cannot succeed, we would rather tell you: pay the invoice, then wait a couple of minutes and everything returns by itself. If a mailbox is still paused well after your payment has cleared, open its per-mailbox detail page to see the current reason, or contact us at warmysender.com/support.
When in the day does warmup send?
Warmup runs around the clock. We deliberately spread your warmup messages across all hours of the day rather than confining them to set "office hours" — genuine inboxes receive mail at every hour, so steady round-the-clock activity looks more natural to inbox providers than traffic squeezed into a narrow daily window. Because of this, warmup has no per-hour send window to set: every enabled mailbox automatically sends a small, steadily-ramping number of messages spread throughout the day.
What changes over time is the number of messages per day, which ramps up gradually as your mailbox builds reputation (see the ramp section below) — not the hours they go out in. Time-of-day control for your own prospect outreach is set per campaign, separately from warmup.
Ramp — how the daily amount grows over time
A brand-new mailbox does not start at the daily amount you set. It starts low — typically 5–10 messages on day one — and climbs a little each day toward your target. How quickly it climbs depends on the situation the mailbox is in and on how healthy it has been (spam rate, bounce rate, and where its mail lands):
A brand-new mailbox on a domain that already sends mail — the shortest ramp of the four, because the domain has a track record even though the address does not.
A brand-new sending domain — the most careful ramp, because nothing about the domain is known to inbox providers yet.
A mailbox in steady maintenance — fully warmed and holding, sending at your target to keep its reputation up.
A mailbox recovering after a rough patch — deliberately slowed while it rebuilds trust.
Once a mailbox reaches steady maintenance — roughly 14 days in, with clean health — its daily amount settles at the target you set. If its health slips, we lower the daily amount by ourselves for a while. That is deliberate protection, not a fault, and it lifts again as the numbers recover. More detail: How email warmup ramps up, how to control your warmup sending volume, and why your warmup volume went down.
Sending vs receiving — what the Inbox Rate does and does not tell you
Your Inbox Rate is a sending score. It measures the warmup mail this mailbox sent and how much of it landed in the main inbox of the people receiving it. It says nothing at all about what arrives at this mailbox. Those are opposite directions, and they are measured separately.
That is why a mailbox can honestly read 99% and "Excellent" while nothing has arrived at it for two weeks. Both facts are true at once: its outgoing mail is landing beautifully, and its incoming side is stalled. The sending score is still the number that predicts whether your cold email campaigns reach the inbox — it is just not the answer to "am I receiving?".
To answer that one, read the note on the individual mailbox rather than the headline score:
Not receiving warmup — that inbox has not received warmup for a few days. Warmup keeps retrying it on the normal schedule, which is what clears a passing delivery hiccup; it cannot clear a domain that is not set up to accept mail, or a filter moving warmup out of the inbox. Send the address a test email from an outside account to find out which one you have. Full explanation.
Incoming warmup paused — we deliberately stopped other inboxes sending warmup to that address, because mail sent there did not get through. Either it carries a restart date, or it holds until our team reviews the address. Your own sending is completely unaffected either way. Full explanation.
When numbers look surprising — quick diagnostic checklist
Check the time zone. If "Sent today" looks higher than expected, confirm the mailbox's time zone setting matches where you actually are — the wrong time zone can make "today" stretch across up to 48 hours of real sends.
Wait until end-of-day. Deliverability % grows throughout the day as detections complete. Morning numbers under-report; end-of-day numbers are accurate.
Read the pause reason. If sends are zero, the per-mailbox detail page shows exactly why — match the reason against the table above.
Reconnect if needed. Almost every technical pause clears with a successful Reconnect from the Mailboxes page; you do not need to contact support first.
Be patient on day one. A new mailbox is intentionally throttled by the ramp; a low send count on day one is the platform protecting your domain reputation, not a failure.
Go to Mailboxes > Add Mailbox. For Outlook/Microsoft 365, click 'Connect with Microsoft' to sign in with OAuth. For Gmail/Google Workspace, connect with an app password over IMAP/SMTP — turn on 2-step verification, generate an app password, and paste it into the connect form. Other providers connect with IMAP/SMTP credentials the same way.
How do I start email warmup?
After connecting your mailbox, go to Warmup Settings and toggle warmup ON. Set your daily warmup volume (we recommend starting at 5-10 emails/day) and WarmySender will automatically send and reply to warmup emails.
How do I create a cold email campaign?
Go to Campaigns > Create Campaign. Add your prospect list, write your email sequence (up to 7 steps), set sending schedule and timezone, then activate the campaign.
How do I set up LinkedIn automation?
Purchase a LinkedIn seat add-on ($12/seat/month), then go to LinkedIn > Connect Account. You can connect with a browser cookie or with your LinkedIn email and password. Everything runs on our servers, so there is no browser extension to install and nothing plugs into your browser session.
What email providers does WarmySender support?
Gmail, Google Workspace, Outlook, Microsoft 365, Yahoo, Zoho Mail, Hostinger, iCloud, Fastmail, ProtonMail, and any provider with IMAP/SMTP access.
How do I check my email deliverability?
Go to your Mailbox dashboard to see inbox placement rate, warmup score, and sender reputation. WarmySender tracks these metrics automatically for all connected mailboxes.
How do I import prospects for campaigns?
Go to Prospects > Import. Upload a CSV file with columns for email, first name, last name, and company. You can also add prospects manually or use the built-in B2B lead database.
What is Bounce Shield and how does it work?
Bounce Shield is WarmySender's built-in email verification. It checks prospect addresses before sending and holds back the ones confirmed undeliverable, removing most avoidable bounces and protecting your sender reputation. It runs automatically on campaign activation. Verification reflects the moment it runs, so a verified list can still bounce a little.
Why is LinkedIn enrichment taking so long?
Enrichment is rate-limited to protect your LinkedIn account. Daily caps range from 10-100 profiles/day depending on account age and strategy. New accounts start at ~10/day and increase each week. You can start campaigns immediately without waiting for enrichment.
Why does enrichment use my LinkedIn account instead of a system account?
LinkedIn requires an authenticated session to view profiles — there is no public API. A shared system account would be banned within hours. Using your own account also provides network-specific data like connection degree. All LinkedIn automation tools work this way.
Can I start a LinkedIn campaign without enrichment?
Yes. Campaigns only need LinkedIn profile URLs to function. Enrichment adds extra data (name, company, headline) for personalization but is completely optional. Create and launch your campaign immediately — enrichment runs in the background.
My LinkedIn enrichment failed — what should I do?
Common causes: the LinkedIn account disconnected part-way through, too many errors in one day (we stop enrichment for the day to protect your account), or the audience was deleted. Reconnect your LinkedIn account, go to Audiences, and click Restart Enrichment. Previously enriched profiles are cached.
Why does my campaign say 'paused' with no reason?
This was a real bug, fixed in late April 2026. Earlier, a campaign could be paused without recording a pause reason, so the auto-resume sweeper couldn't tell whether the underlying issue (account disconnect, high failure rate, etc.) had cleared. The fix records a structured pause reason on every pause and rejects any future regression at the database layer. Open the campaign detail page and look at the pause reason — it now always tells you why the pause happened (account disconnected, high failure rate, subscription canceled, etc.). If the field is still empty, your campaign predates the fix; click Resume once and the system will re-evaluate the row, populate a reason if there's a real cause, or move it back to running if not. Your prospects, sequences, and analytics are completely untouched by the fix.
I imported Sales Navigator URLs but most of my prospects didn't get invites — what happened?
Sales Navigator URLs (the form `https://www.linkedin.com/sales/lead/ACoAAA...,NAME_SEARCH,XYZ`) sometimes can't be resolved to a public LinkedIn profile. This happens for restricted profiles, recently-deleted leads, and a known issue with certain `,NAME_SEARCH,` query suffixes. Before late April 2026, when resolution returned nothing, our campaign engine treated the prospect as 'cannot be invited, mark complete' — silently completing the prospect with zero invite attempt. The fix shows affected prospects as Unresolved URL and retries with exponential backoff up to 5 times before promoting to a terminal Failed state. They never complete silently again. To recover prospects affected by the old behavior: re-import them with regular `linkedin.com/in/<handle>` URLs (most reliable), or run the recovery routine which automatically re-stamps eligible prospects so they re-enter the queue on the next campaign tick. Your campaign config and other prospects are untouched. If you're unsure whether your import is affected, contact support — we can check the resolver outcome for any prospect by ID.
I see my invite counter went up but the dashboard says 0 invites — is the counter wrong?
No, the counter is correct. WarmySender ships two LinkedIn campaign engines that both increment the weekly invite counter on your account: a standalone engine (LinkedIn-only campaigns) and a unified multichannel engine (campaigns combining email and LinkedIn steps). Both engines hit the same shared counter, but campaign activity is tracked separately per engine. If the dashboard's per-campaign count looks lower than the counter, you're likely viewing a standalone campaign while the missing invites came from a unified multichannel campaign on the same account, or vice versa. The counter is the single source of truth for rate-limit gating, so it's never wrong. To see total invites across both engines for an account, the LinkedIn Accounts dashboard now shows invites sent this week vs. weekly limit directly (engine-agnostic). If the numbers still don't add up after a 5-minute refresh, contact support — we can run a canonical diagnostic.
Why am I getting 'reconnect needed' emails when my LinkedIn is showing connected?
This is a stale health flag left over from a prior upstream outage. Your account is genuinely connected and our system is communicating with LinkedIn fine — but a derived health marker didn't reset when the reconnect succeeded, and our daily alert-email job kept firing on it. The late-April 2026 fix makes this permanent: the reconnect path now resets the health marker alongside the other recovery markers, the alert email is gated to skip any connected account, and a drift sentinel surfaces any future regression to admins before customers see it. If you still see the email after the fix is deployed, click Reconnect once from LinkedIn → Accounts (your campaigns and prospects are untouched) and the flag will reset cleanly.
I see prospects who replied on LinkedIn but my dashboard says 0 replies — what's wrong?
This was a real bug, fixed in late April 2026. Reply detection was relying on a campaign attribution that wasn't being populated on inbound LinkedIn messages — neither the webhook ingest path nor the polling fallback was running the attribution lookup before storing the message. Net: every inbound LinkedIn message landed in the database with no campaign attribution, the dashboard reply count, auto-stop-on-reply check, and analytics reply-rate roll-up all silently filtered them out, and the dashboard showed 0 replies even when prospects had clearly responded. Worse: campaigns kept sending follow-ups to prospects who'd already replied. The fix adds an attribution lookup that the webhook handler and the polling fallback both run before recording inbound messages — so every inbound message is now correctly attributed to its enrollment if one exists. We also ran a one-shot 120+ row backfill that retro-fits the lookup against historical unattributed rows. Reply stats refresh within 1 hour after the backfill runs. If you still see drift after that window, contact support — we can re-run the backfill against your specific workspace.
Many of my prospects say 'Profile inaccessible' — are they lost?
No — late-April 2026 fix. Previously, every Profile-inaccessible response from LinkedIn was treated as terminal and the prospect was completed with no further retry — even though that response conflates several distinct cases, including some that are recoverable on a re-resolve (Sales Navigator URLs that didn't resolve on attempt N but resolve cleanly on attempt N+1, and URL canonicalization issues fixed by a related ID-aware fallback). The platform-wide audit found 21,868 enrollments completed this way. The fix migrates all of these to a defer-not-burn flow: the prospect's status flips to Pending Resolution instead of terminal Failed, the engine retries with exponential backoff capped at 5 attempts before promoting to terminal Failed, and the 21,868 historical rows were swept into the same recovery flow with their re-attempts spread over a 24-hour window so the queue doesn't slam LinkedIn rate limits. If you see this status: please verify the prospect's LinkedIn URL is current (regular `linkedin.com/in/<handle>` URLs resolve most reliably), and click Retry on the prospect detail page. The defer flow handles the recovery automatically — no further action needed unless you see the prospect repeatedly land back in Pending Resolution after 5 retries (which would indicate a genuinely-terminal restricted profile).
My LinkedIn replies aren't showing on the dashboard — what's happening?
If your dashboard is missing recent LinkedIn replies even though prospects are clearly replying on LinkedIn, the most likely cause is an upstream webhook outage at our LinkedIn integration. Important first: every reply is still safely in your LinkedIn inbox — nothing is lost on LinkedIn's side. The gap is purely between our integration and WarmySender, not between you and your prospect. When webhook delivery stalls, the inbound message still reaches our database via a 30-minute polling fallback, but the dashboard side-effects that the webhook normally triggers (the replied-at stamp on your prospect, the auto-stop-on-reply check, the Slack/n8n/Zapier reply notification, and the dashboard reply counter) only fire when the webhook handler runs. So during the outage you may see follow-ups continue on threads where the prospect already replied. Our detection infrastructure catches this within 15 minutes: a webhook health monitor compares the rate of inbound messages landing in our database against the rate of webhook events received, and raises an internal alert when the ratio drops. The runbook then lets us (1) escalate to restore the webhook, (2) confirm the polling fallback is bridging the gap at 30-minute cadence, and (3) once the webhook is back, run an idempotent replay backfill that re-drives the missed reply state-flips from the locally-stored inbound rows. The replay retroactively applies stop-on-reply, so dashboard counters reflect ground truth within ~1 hour of recovery. The detection and replay layer makes zero LinkedIn API calls — account safety always wins. If you suspect this is happening to your workspace, contact support at https://warmysender.com/support with a sample prospect URL and approximate reply timestamp; we can verify the per-account state and confirm the recovery timeline.
I imported a CSV with custom fields but my template variables show 'undefined' — what should I do?
Late-April 2026 fix. Previously, if your campaign template referenced a custom variable like `{{custom.Linkedinconnection}}` and your imported CSV didn't have that column (typo, missing column, capital-letter mismatch), the campaign engine had two failure modes depending on the era: render the message with a literal 'undefined' and send anyway (rude), or complete the prospect as Failed with no recovery path. The fix is two-layer: (1) Validate-at-launch — the campaign launch path now enumerates every `{{custom.<name>}}` reference in your template, intersects against the actual column set in your prospect data, and BLOCKS launch with an actionable error if any references aren't satisfiable. The error names the missing column AND lists every column that DOES exist, so you can either fix the typo, edit the template to remove the missing variable, or re-import the CSV with the column populated. (2) Defer-at-send — if a template variable somehow still unresolves at send time (race: campaign launched, then the audience had a column dropped before the send fired), the runtime renderer now parks the prospect as Pending Template Variable Resolution instead of completing as Failed. The prospect re-enters the queue on the next campaign re-evaluation, so once you fix your template OR re-import the CSV with the corrected column, the affected prospects retry automatically — no manual recovery needed. If you see this on existing prospects: either edit your template to remove the missing variable, or re-import the CSV with the column populated, then click Resume — those prospects will retry within a campaign tick.
Why are some of my prospects shown as accepted but never received a follow-up message?
Three scenarios: (1) The LinkedIn account was disconnected at the moment the follow-up was supposed to fire — the engine cannot send through a disconnected account (account safety always wins) and parks the enrollment until you reconnect. The auto-resume sweep wakes parked enrollments within 5-10 minutes of reconnect. (2) The follow-up step was a 'wait for acceptance' condition that already evaluated and routed the prospect down the false branch because the wait window expired before the acceptance landed — this is the campaign's correct end state per how you configured it. (3) Silent skip from a worker race or a campaign edit mid-flight — the genuinely-stuck pattern. Symptom: the prospect shows accepted but no follow-up message went out and no error event was recorded. We ship a periodic post-acceptance enqueue helper and an orphan-job reconciler that catches these and recreates the missing send job. In late April 2026 we ran a one-shot backfill against a 422-row cohort. If you suspect a stuck row, contact support at https://warmysender.com/support with the prospect URL — we can manually re-arm the enrollment. The recovery flows make zero LinkedIn API calls.
Why are my campaign stats showing zero accepts when I have replies?
Replies imply acceptance — you can't reply to a message unless you accepted the invite first. Two issues caused this. Issue 1 (fixed late April 2026): a fast-reply race where prospects accepted and replied very quickly; the old code skipped the acceptance timestamp because the row had already advanced past Invited. Fix: split the timestamp stamp from the status flip so even a fast-reply row gets its acceptance recorded for the dashboard. Issue 2 (fixed late April 2026): some analytics surfaces (the 24h freshness banner on LinkedIn → Accounts, per-account analytics roll-up) read a different event store from the campaign counter. After the engine consolidation, unified-engine campaigns wrote acceptance events to the campaign store but never mirrored to the account-level store, so the banner showed 'no accepts in 24h' even when accepts were flowing. Fix: idempotent paired insert from the canonical helper covers both stores. The campaign-card Accepted/Replied counters and the LinkedIn Accounts banner now show consistent numbers. Hard-refresh your dashboard if you still see the issue (60s cache); contact support if accept rate is 0% with replies present after the deploy date.
I see a 'Template syntax invalid' error — what do I do?
Your campaign's message template has a Liquid syntax error — most commonly a typo in a merge tag like {{company} (one closing brace instead of two). Liquid requires EXACTLY two opening braces and two closing braces around every variable: {{firstName}}, {{company}}, {{custom.subject_line}}. Before late-April 2026, this triggered an infinite retry loop — one early customer campaign had 28 follow-up jobs retrying continuously with the same '{{company}' typo until we shipped the dead-letter fix. After the fix: the engine detects the parse-error on the first attempt; the send job is marked Failed with a template-syntax-error classification; the enrollment is parked as Pending Template Fix so the orphan reconciler does not recreate the job. To fix: open the affected campaign, find every merge-tag reference and verify each has exactly TWO opening braces and TWO closing braces (common typos: {{firstName}, {firstName}}, { {firstName}}, {{firstName | default: 'there'}). Save and click Resume — affected prospects retry on the next campaign tick. No prospects are lost. No LinkedIn API calls were made on the failed attempts (the parse error fires before the LinkedIn call), so no rate-limit cost to retrying. Click Preview in the editor to see the exact line number of the parse error.
Why is my account counter different from what the campaign shows?
If LinkedIn → Accounts shows 'invites sent today: 1' but you can see 24 messages went out per the campaign's activity log, you're hitting a counter desync, not a real send failure. Every message did go out; the account-level dashboard tile is just under-reporting unified-engine sends. Why (late-April 2026): there are two campaign engines — a standalone engine and a unified multichannel engine. Both call the same shared counter for weekly rate-limit gating (always correct, load-bearing for safety, never under-reports), but the daily-bucket tiles were written by a separate post-success increment that the unified engine forgot to wire on some action sites. Sources of truth: the weekly counter (drives rate-limit gating) is always correct; the campaign-card daily counter is always correct; the account-card daily counter under-reports for unified-engine campaigns until the fix is deployed. To verify messages went out: open the campaign card and check the per-step activity counter (ground-truth); open the LinkedIn inbox and confirm the messages are visible; check the last-messaged timestamp on the prospect. The fix audits every unified-engine action site and adds the paired daily-counter increment in the same transaction; a one-shot backfill recomputes the daily buckets from event rows. One customer's dashboard showed 1 message sent on the morning of the fix day even though 24 messages had legitimately gone out — every send was real, every safety gate held, the counter just lagged. Contact support if counters still mismatch after the fix lands.
I fixed my billing but my warmup is still paused — what should I do?
When a renewal payment doesn't go through, WarmySender pauses warmup on your mailboxes. This is a deliberate safety pause — we never warm a mailbox without an active plan behind it, because warming an inbox you're no longer paying for can hurt your sender reputation rather than help it. The same rule applies across every channel on the platform: cold email campaigns, email warmup, LinkedIn, Instagram, and multichannel sequences all wait for an active plan before they run. Once your payment clears and your subscription is active again, warmup resumes automatically within a few minutes — you don't need to restart anything, and your earlier warmup progress is preserved, so your mailboxes pick up where they left off instead of starting the ramp over from day one. To clear the pause: update your card under Billing › Payment Method, confirm the payment goes through, and give it a few minutes. Prefer not to wait, or want to switch it back on yourself? Open the Warmup page and toggle each affected mailbox back on manually — it takes effect immediately and your warmup progress is still kept. If a mailbox stays paused well after your payment has cleared, open its per-mailbox detail page to read the current pause reason, or contact us at https://warmysender.com/support.