Help · Settings
Why most people arrive held
Consent comes with your Klaviyo people, but proof that their address still works usually does not. This chapter explains the held pool and every way out of it.
Most of your people will arrive held
Most Klaviyo profiles arrive held: imported and counted, but not emailed until something shows their address still works. Anyone Klaviyo reached in the last 90 days is freed by itself once your import has finished, at no cost.
This is the part that surprises people, so it is worth reading before you start rather than afterwards.
A profile arrives here held unless something vouches for the mailbox. An ordinary Klaviyo profile carries no such fact — it says the person is subscribed, and often when and where they signed up, but nothing about whether the address is still good. So on a real migration the great majority of your people land in the held pool: imported, visible, counted in your reports, and not emailed yet.
Your email history is what changes that, and most of it costs you nothing. Anyone Klaviyo was still reaching in the last 90 days has a working address by the only measure that counts — a mail server accepted a message — and that frees them with no check to pay for. On a list you have mailed in the last few months that is most of it. If somebody's last message did not get through, we hold them back instead. A message that bounced because the mailbox was full, followed by one that arrived, does not count against them; any other bounce keeps the address on hold even if a later message arrived.
It happens by itself, once your import has finished. There is nothing to press and nothing to ask for, and it costs nothing. It runs again after every later import, so people Klaviyo reached after your first one are freed too, and imports that finished before this began working were gone through as well. Once it has run, your migration report says how many people it freed and how many are still waiting. Ninety days rather than for ever because mailboxes close: a message that got through last spring says nothing about today.
That leaves a remainder — people Klaviyo had not mailed lately, or had stopped being able to reach. Held is not a refusal and it is not lost work. It is this app saying it has no evidence about that mailbox yet — and emailing only addresses that are known to work is how the deliverability you built there comes with you.
People who agreed in Klaviyo and are still reading your email are confirmed for you, too. Klaviyo often records that somebody agreed without saying where — the method reads "API" and nothing more — and we email an address only when its record says when and where. For those people, your history is the record: if they are subscribed in Klaviyo and your store's email reached them in the last 180 days, with no hard bounce, spam complaint or unsubscribe since, or they clicked one of your emails in the last year, we confirm them by ourselves, once your import has finished. A message that bounced because the mailbox was full, followed by one that arrived, does not count against them. Their profile then says Confirmed automatically: received your email recently or clicked one of your emails. Nothing about their consent changes — they had already agreed.
- Opens never count. Many mail apps open every message by themselves the moment it arrives, so an open says a server fetched the message, not that a person read it.
- Clicks a machine made never count. A click Klaviyo marked as a bot, a link preview, or a click in the first minute after the message was sent — which is a security scanner opening every link — is excluded, and so is a click from a mail app or browser a scanner pretends to be.
- An address that looks like a typo is settled before anything else. That is an address one small slip away from a big provider —
name@ail.com,name@gmial.com,name@hotmial.com— or one where one of your own store customers has the same first and last name at nearly the same address. Its row says Looks like a typo of name@aol.com or Your store has Dana Reyes at name@aol.com, with what that record says (which unsubscribed) and a link to it. When it is one of your customers by name, your own history decides it if it can: if your email reached one of the two addresses and never the other, that one is the real one; and if one address's domain does not exist at all, the other one is. A delivery to a misspelled big-provider address does not prove the person received it:name@ail.combeside your customer atname@aol.comis decided forname@aol.comby itself, whatever Klaviyo logged, and an imported address like that is never confirmed on its deliveries or its clicks — not by the import, not by a small first batch, and not by They are different people. Only your own Use imported or Use as is confirms it. When the imported address is the real one, it is confirmed like everybody else; when your store's is, the imported one stays on hold. Whatever your history cannot settle waits for you under Possible typos, below. Real providers that happen to look close —mail.com,mac.com,yahoo.caand the like — are not typos. - Nobody whose mail Klaviyo stopped is confirmed. If, after the delivery we would rely on, Klaviyo skipped a send because the address looked suspicious or invalid, marked them do-not-email after a bounce or by hand, or took them off a list, they stay on hold.
- Nobody who unsubscribed, complained or was blocked is ever confirmed.
Possible typos
A mistyped address never reaches anybody, so settling these is a small, quick win for your deliverability. On the Import tab, Possible typos lists every imported address that looks like a mistyped copy of another where nothing on record shows which one is real. Each shows the imported address beside your store's record, with each one's name and consent, and a link to both. Choose one:
- Use imported — the imported address is the real one. It is confirmed, as long as it still agrees to your email, has no spam complaint on record and was not blocked by an address check — and as long as your store's record beside it has no spam complaint either, because if the two are one person, that person complained. If any of that is no longer true, nothing changes and the pair stays on the list.
- Use your store's — your store's address is the real one. The imported profile stays not confirmed, and is never emailed.
- When both are real, choose They are different people. The imported profile is then judged on its own, like everybody else: it is confirmed at once if your email reached it recently or it clicked one of your emails, and otherwise it stays not confirmed. This choice never confirms anybody by itself.
An imported address that looks like a slip with nothing beside it — say name@ail.com, when your store has nobody at name@aol.com — offers Use as is, which confirms it the same way, or Open profile to delete, which opens its profile, where you can delete it. Every imported address at a misspelled big provider that still agrees to your email is listed, whatever else is holding it — no history yet, or a mailbox not proven yet — so you never have to go looking for one. Addresses that unsubscribed, complained, are blocked from your email or were blocked by an address check are not listed: they are not emailed either way.
Your choice is final. Once you choose, that pair never comes back to the list, and your history never decides it again — even if you import again. Only the store owner can choose; everybody else on your team can see the list. The same list is on Audience → Profiles: choose Possible typos under Identity.
What happened to your people
When your import has finished, What happened to your people counts everyone it imported by where they stand today — whether your store can email them now, not what the import did with their row. Each person is counted once, and the rows add up to everybody the import took in:
- Can be emailed now — they agreed, their address is confirmed, and nothing stops your email reaching them: exactly what a send checks before it goes.
- Agreed, waiting to be confirmed — they agreed, but nothing yet confirms the address. These are the people the addresses-on-hold card below is about.
- Never agreed — there is no record that they agreed to hear from you.
- Unsubscribed — will not be emailed.
- Blocked — bounced, complained or do-not-mail — never emailed.
- Paused by you — only when you have paused somebody.
When a Klaviyo record disagrees with your store's own record (for example, it says somebody is subscribed and your store says they unsubscribed), we keep your store's and change nothing for that person. There is nothing for you to decide. They are counted in the row their store record puts them in, and one quiet line says how many: 3 had a different record in Klaviyo. We kept your store's. The number opens those people.
A contact with no email address at all — in Klaviyo, often a text-only contact — is not imported, and it is not something to fix: one quiet line says how many, 25 had no email address, so they were not imported.
Every number is a link. It opens the Profiles screen showing exactly those people, with a chip at the top naming the group — Imported from Klaviyo · agreed, waiting to be confirmed — and, on each row, where that person stands. The list is always the length of the number you pressed. Remove the chip with its × to see every profile again. The same goes for every count on the addresses-on-hold card and every line of its breakdowns.
The addresses-on-hold card
The card is about one group: the people who agreed and are not yet confirmed. Its heading counts them. The first part says why they are on hold, in two groups, each with its count and one sentence. See the breakdown under a group lists the reasons inside it.
- Waiting for a consent record — the record says the person agreed but not when or where. We email an address only when its record says the person agreed, and when and where. On the Profiles screen each of these rows reads Agreed in Klaviyo · no record of where. The people among them your email is still reaching are confirmed for you (above); the rest wait here.
- Waiting for proof the address works — the person agreed, but nothing yet shows the address still receives email.
The second part, Ways off hold, is where you act. It is the tinted panel, free ways first and the paid one last. Each way is one row with its cost — Free or the checking service's price per address — where it stands, and one button:
- Re-check with what we know now (free). Re-check these addresses looks again at every address waiting for proof it works — orders placed since, a check date you saved, results you imported, domains we could not reach before — and takes any that now qualify off hold. It works through them all on that one press, showing how far it has got. Keep the page open while it runs; if it stops part way, Re-check the rest carries on from where it stopped. It does not look at the addresses waiting for a consent record, because nothing it reads can change those. When it has finished, the row says when it ran and what it found — Re-checked at 9:31 AM — nothing came off hold. — and the button stays off until something it looks at has changed: a new import, a check date you save, new check results, an order from one of these addresses, or 24 hours, after which a domain we could not reach may answer. The row then says which of those it was.
- Import records you have elsewhere (free). If you know when and where people agreed, or have check results from another service, import them as a file with those columns — Consent Timestamp and Consent Source, or the Address Check columns.
- Send to a small test group with your next campaign (free). A small group of these people — they agreed to hear from you — comes off hold when you start it and goes out with your next campaign, but only those already in that campaign's audience; nobody is added to a campaign they were not in. A delivery shows the address works; an address that bounces is never emailed again. The group is kept small — 2% of the email your store delivered in the last 30 days — so even if every address bounced, your store's reputation is safe, and we watch each group for three days before the next one. Only an address whose one problem is an unproven mailbox can go in a test group. Until your store has delivered at least 50 emails in the last 30 days there is no test group yet, because 2% of less than that is nobody — the row says so.
- Check the addresses (paid). A checking service tests each address without sending any email, and the ones that work come off hold on their own. The button carries the count and the price — Check 11 addresses for about $0.09 — and pressing it asks you to confirm those two numbers; after that the check runs on its own until every address has been asked about. One press, one cost, and never a second press. Unsubscribed and do-not-mail addresses are never checked, and we pass on what that service charges and add nothing. When the check covers fewer addresses than are waiting, the row always says why: some are at a domain we could not reach (re-check them first), some failed our free checks, some failed your earlier check or are marked do-not-mail. An address your earlier check could not decide, or checked with no date, can still be checked, and the row says those are included.
When the check is over, whoever pressed the button gets an email — Your address check for your store is done — with the count, what it cost, and one line for each kind of answer, and its button opens this import screen. The same lines stay on the card under The last check: how many can now be emailed; how many are blocked because the mailbox is disabled or does not exist — marked Do not email for good; how many are blocked because the mailbox is full — they come back on their own when they shop with you again; and how many are still waiting, and why. The page What an address check does covers every answer in full.
When a re-check or a test group takes the last address off hold, the card stays long enough to say so — Everyone who can come off hold has. 12 came off in this re-check.
And one way needs nothing from you: the person does something on your store. An order, a checkout, a form — any of these makes the person verified, and they come off hold by themselves.
None of this appears until your import has finished. While it is still running, the whole card is folded away behind a triangle, with one sentence inside it saying why: until the import is over we do not yet know which addresses are on hold, so any number we showed you would be a number of a pool still filling.
The address check you already paid for
Plenty of stores paid a checking service before they moved. That result is usually saved on each profile as a field of your own — often a word like passed and a note beside it like "The address passed all tests" — and it travels over with everything else. We read it. You paid for that answer and there is no sense in paying for it twice.
We need one thing from you, and only one: when was that check run? It is on Settings → Imports → Klaviyo, under the block that counts who arrived held, and it asks in so many words: When were these addresses checked? Nothing in your old account records it, so you are the only one who knows — the month is close enough.
The card says the rest itself: Your profiles carry a check result but no date. A check is trusted for one year. If you are not sure, leave it blank: those addresses stay on hold and come off hold through an order, a recent delivery, or the test group. Before you answer, it also tells you how many addresses are waiting on it, so you can see the size of what the date does.
Saving applies the date to the imports that were waiting on it, however many imports you have run, and the card says so when it is done. There is no second button to press. Re-check these addresses, under Ways off hold on the card below, is for anything that arrives later — a file of results you import afterwards — and it is the one to press if the card tells you the re-check did not finish.
A date you correct later reaches only the addresses still on hold. Once an address comes off hold it stays off hold: that is how holding works everywhere in this product, and it is not undone by a second answer. So if you type 2026 where you meant 2019, correct it and the addresses still waiting are put back where they belong — but anyone the wrong date already let out is out, and you can see who on the Profiles screen. Take the extra second on the first answer; the month is close enough, and a month you are sure of beats a year you are not.
It is asked only where the answer does something: if your profiles carried no check result, or you have already answered, you will not be asked. The store's owner records it, because it is their statement about their own list; everyone else reads it.
Until you tell us, those results hold. That is a deliberate choice and we would rather explain it than have you wonder. A result with no date is a statement about a mailbox at an unknown moment. If the check was last month it is worth a great deal; if it was in 2019 it describes addresses that have since closed, and emailing them is the single fastest way to get a store blocked — not throttled, blocked. Guessing on your behalf would be us spending your sending reputation on an assumption. So we ask, once, and the moment you answer, every person whose result still stands comes off hold. Nothing is re-imported and nothing is paid for.
A check older than a year does not count, whichever way we learned the date.
What each result does is the same on this path as on a file, and it is set out in full on the import page: a dated pass comes off hold; an inconclusive, catch-all, greylisted, full-mailbox or role-address result is not a failure and those people stay in the two free doors above; a dead address is set aside; and a note saying somebody is on your own do-not-mail list sets them aside too without changing anything about what they agreed to — that is the do-not-email file's job and nothing else's.
Your own field keeps its name and its value, exactly as you spelled it, so the segments you built on it still work.