<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Sales List Rescue]]></title><description><![CDATA[Sales List Rescue]]></description><link>https://saleslistrescue.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Wed, 28 Oct 2026 08:51:05 GMT</lastBuildDate><atom:link href="https://saleslistrescue.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Cold email list bouncing? 6 Google Sheets checks before you import it into your CRM or sender]]></title><description><![CDATA[Six spreadsheet checks that catch bad addresses before they burn your sending domain]]></description><link>https://saleslistrescue.hashnode.dev/cold-email-list-bouncing-6-google-sheets-checks-before-you-import-it-into-your-crm-or-sender</link><guid isPermaLink="true">https://saleslistrescue.hashnode.dev/cold-email-list-bouncing-6-google-sheets-checks-before-you-import-it-into-your-crm-or-sender</guid><category><![CDATA[crm]]></category><category><![CDATA[sales]]></category><category><![CDATA[#googlesheets]]></category><category><![CDATA[#emailmarketing]]></category><dc:creator><![CDATA[Sales List Rescue]]></dc:creator><pubDate>Sat, 24 Oct 2026 10:02:59 GMT</pubDate><content:encoded><![CDATA[<p>High bounce rates burn your sending domain fast, and most bad addresses are visible in the spreadsheet before you ever upload. Run these six checks in Google Sheets first. Assume the email column is A.</p>
<h2>1. Trim and lowercase</h2>
<p>Hidden spaces and mixed case create fake duplicates and failed matches.</p>
<pre><code class="language-plaintext">=LOWER(TRIM(A2))
</code></pre>
<h2>2. Flag broken syntax</h2>
<p>Catches missing @, spaces inside the address, and missing domain endings.</p>
<pre><code class="language-plaintext">=IF(REGEXMATCH(B2,"^[a-z0-9._%+\-]+@[a-z0-9.\-]+\.[a-z]{2,}$"),"ok","bad syntax")
</code></pre>
<h2>3. Catch common domain typos</h2>
<p><code>gmial.com</code>, <code>gmail.co</code>, <code>hotmial.com</code>, and <code>yahooo.com</code> show up in every scraped list.</p>
<pre><code class="language-plaintext">=IF(REGEXMATCH(B2,"@(gmial|gmai|gnail|hotmial|yahooo)\.|@gmail\.co$"),"typo","")
</code></pre>
<p>Fix the obvious ones by hand; delete anything you can't be sure of.</p>
<h2>4. Separate role addresses</h2>
<p><code>info@</code>, <code>sales@</code>, <code>support@</code>, and <code>admin@</code> rarely reach a decision-maker and often trigger spam complaints.</p>
<pre><code class="language-plaintext">=IF(REGEXMATCH(B2,"^(info|sales|support|admin|contact|hello|office|team|noreply|no-reply)@"),"role","")
</code></pre>
<h2>5. Remove duplicates</h2>
<pre><code class="language-plaintext">=IF(COUNTIF(B$2:B2,B2)&gt;1,"duplicate","")
</code></pre>
<p>Keep the first row, filter on "duplicate", and delete the rest.</p>
<h2>6. Keep personal and work addresses apart</h2>
<p>For B2B outreach, tag free-mail domains so you can decide whether to keep them:</p>
<pre><code class="language-plaintext">=IF(REGEXMATCH(B2,"@(gmail|yahoo|hotmail|outlook|aol|icloud)\."),"free mail","work")
</code></pre>
<h2>Then verify a sample</h2>
<p>Syntax checks can't tell you whether a mailbox exists. Run a small sample through your verifier of choice, and if more than a few percent fail, verify the whole list before sending.</p>
<hr />
<p><strong>Free first pass:</strong> drop your CSV into the <a href="https://pureservices.store/tools/csv-preflight?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=devto-repurpose&amp;utm_content=rp-coldemail-hashnode-01">CSV Preflight checker</a> to see blocking problems before you import.</p>
<p><strong>Rather hand off the cleanup?</strong> Send up to 200 rows to the $25 Quick Clean (<a href="https://buy.stripe.com/cNi7sK3JS8Z50915Me73G0d?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=coldemail">https://buy.stripe.com/cNi7sK3JS8Z50915Me73G0d?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=coldemail</a>) and get back a cleaned CSV (same-email duplicates merged, possible duplicates flagged) plus a change log within 24 hours, no CRM login needed. Bigger list? Intro $99 covers up to 500 rows (<a href="https://buy.stripe.com/9B600idksb7d2h9eiK73G03?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=coldemail">https://buy.stripe.com/9B600idksb7d2h9eiK73G03?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=coldemail</a>); Growth $299 (up to 2,000) and Bulk $499 (up to 5,000) are at <a href="https://pureservices.store/?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=coldemail">https://pureservices.store/?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=coldemail</a></p>
<hr />
<p><em>Originally published on</em> <a href="https://dev.to/saleslistrescue/cold-email-list-bouncing-6-google-sheets-checks-before-you-import-it-into-your-crm-or-sender-273b"><em>DEV.to</em></a><em>.</em></p>
]]></content:encoded></item><item><title><![CDATA[How to Clean HubSpot Duplicate Contacts Before Your Next Outreach Push]]></title><description><![CDATA[Bad HubSpot data does not look dramatic. It looks like three “Acme” companies, two emails for the same SDR lead, and a phone column that mixes (555) 0100…]]></description><link>https://saleslistrescue.hashnode.dev/how-to-clean-hubspot-duplicate-contacts-before-your-next-outreach-push</link><guid isPermaLink="true">https://saleslistrescue.hashnode.dev/how-to-clean-hubspot-duplicate-contacts-before-your-next-outreach-push</guid><category><![CDATA[HubSpot]]></category><category><![CDATA[crm]]></category><category><![CDATA[revops]]></category><category><![CDATA[sales]]></category><category><![CDATA[data-quality]]></category><dc:creator><![CDATA[Sales List Rescue]]></dc:creator><pubDate>Fri, 23 Oct 2026 18:36:21 GMT</pubDate><content:encoded><![CDATA[<p>Bad HubSpot data does not look dramatic. It looks like three “Acme” companies, two emails for the same SDR lead, and a phone column that mixes <code>(555) 0100</code>, <code>555-0100</code>, and blank cells. Your sequence tool still fires. Your team still dials. The list quietly burns budget.</p>
<p>This post is a practical cleanup checklist you can run on a HubSpot contacts export (CSV) before the next campaign — plus a before/after from a demo pass on fictitious sample rows.</p>
<h2>What “clean enough” means</h2>
<p>For outbound and CRM hygiene, clean enough usually means:</p>
<ol>
<li><strong>One row per person</strong> (dedupe on email first, then soft-match name + company / phone).</li>
<li><strong>Emails lowercased and trimmed</strong> with invalid syntax flagged, not silently deleted if you still need review.</li>
<li><strong>Names and titles normalized</strong> (Title Case; <code>ceo</code> → <code>CEO</code>).</li>
<li><strong>Phones in one format</strong> (or cleared and flagged when unusable).</li>
<li><strong>A changelog</strong> so RevOps can audit what changed.</li>
</ol>
<p>If you cannot explain the deltas to a client or manager, the cleanup is not done.</p>
<h2>Export from HubSpot</h2>
<ol>
<li>Contacts → Export (include email, first/last or full name, phone, company, job title, lifecycle if you use it).</li>
<li>Prefer CSV UTF-8.</li>
<li>Do <strong>not</strong> enrich or invent missing emails in this pass — fix structure first.</li>
</ol>
<h2>A concrete before → after (demo)</h2>
<p>We ran a messy B2B sample (fictitious demo rows) through the same rules we use for Sales List Rescue packs:</p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Count</th>
</tr>
</thead>
<tbody><tr>
<td>Input rows</td>
<td>12</td>
</tr>
<tr>
<td>Output rows after dedupe</td>
<td>10</td>
</tr>
<tr>
<td>Exact duplicates dropped</td>
<td>2</td>
</tr>
<tr>
<td>Status = ready</td>
<td>8</td>
</tr>
<tr>
<td>Status = needs_review</td>
<td>2</td>
</tr>
<tr>
<td>Invalid emails flagged</td>
<td>1</td>
</tr>
<tr>
<td>Personal emails flagged</td>
<td>1</td>
</tr>
</tbody></table>
<p>On a larger demo (40 → 32), eight duplicate emails were merged, names title-cased, and phones normalized — with missing company fields flagged rather than guessed.</p>
<p>Public before/after sample: <a href="https://sapphire-passive-3ea.notion.site/40273a511f5281a0aa77f7c8ed99ac09">Free Sample — Before &amp; After CRM List Cleanup</a>.</p>
<h2>Checklist you can run today</h2>
<ul>
<li><input disabled type="checkbox" /> Deduplicate on email (exact).</li>
<li><input disabled type="checkbox" /> Soft-merge obvious duplicates (same person, different casing / whitespace).</li>
<li><input disabled type="checkbox" /> Lowercase + trim emails; flag invalid syntax into a <code>qa_notes</code> / <code>status</code> column.</li>
<li><input disabled type="checkbox" /> Title-case names; normalize titles without inventing seniority.</li>
<li><input disabled type="checkbox" /> Normalize phones to one pattern; clear garbage and flag.</li>
<li><input disabled type="checkbox" /> Keep a machine-readable changelog (row in → row out, fields touched).</li>
<li><input disabled type="checkbox" /> Mark rows <code>ready</code> vs <code>needs_review</code> so SDRs do not touch junk.</li>
</ul>
<h2>What not to promise</h2>
<ul>
<li>Guaranteed inbox placement or bounce rates (that needs live verification and client-funded credits).</li>
<li>Scraped or invented emails.</li>
<li>“We fixed your whole CRM in HubSpot UI” without an export/import workflow.</li>
</ul>
<p>Structure first. Enrichment second, and only when the buyer funds it.</p>
<h2>Fast path if you do not want to DIY</h2>
<ol>
<li><strong>Free CSV teaser</strong> — see what a cleanup pass flags on your own export: <a href="https://pureservices.store/tools/csv-teaser?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=hashnode-medium-devto-mirror">https://pureservices.store/tools/csv-teaser?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=hashnode-medium-devto-mirror</a></li>
<li>Quick Clean ($25): send up to 200 rows and get back a cleaned CSV (same-email duplicates merged, possible duplicates flagged) plus a change log within 24 hours, no CRM login: <a href="https://buy.stripe.com/cNi7sK3JS8Z50915Me73G0d?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=hubspot">https://buy.stripe.com/cNi7sK3JS8Z50915Me73G0d?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=hubspot</a> (Bigger list? Intro $99, up to 500 rows: <a href="https://buy.stripe.com/9B600idksb7d2h9eiK73G03?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=hubspot">https://buy.stripe.com/9B600idksb7d2h9eiK73G03?utm_source=hashnode&amp;utm_medium=post&amp;utm_campaign=quick-clean&amp;utm_content=hubspot</a>)</li>
<li><strong>Full cleanup packs (HubSpot / Salesforce / CSV):</strong> <a href="https://pureservices.store/?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=hashnode-medium-devto-mirror">https://pureservices.store/?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=hashnode-medium-devto-mirror</a></li>
<li><strong>Referral program</strong> — know a team drowning in duplicates? <a href="https://pureservices.store/referral?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=hashnode-medium-devto-mirror">https://pureservices.store/referral?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=hashnode-medium-devto-mirror</a></li>
<li><strong>Agencies</strong> reselling cleanup (white-label): <a href="https://pureservices.store/for-agencies?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=hashnode-medium-devto-mirror">https://pureservices.store/for-agencies?utm_source=hashnode&amp;utm_medium=organic&amp;utm_campaign=hashnode-medium-devto-mirror</a></li>
</ol>
<p>Before/after sample: <a href="https://sapphire-passive-3ea.notion.site/40273a511f5281a0aa77f7c8ed99ac09">https://sapphire-passive-3ea.notion.site/40273a511f5281a0aa77f7c8ed99ac09</a></p>
<p>Export-based cleanup only. No lead sourcing, no invented emails, no bounce guarantees.</p>
]]></content:encoded></item></channel></rss>