Skip to content

Commit c2f8567

Browse files
author
PrintableTools Lab Bot
committed
Add homepage invoice follow-up offer
1 parent 5b8c30b commit c2f8567

4 files changed

Lines changed: 53 additions & 0 deletions

File tree

app.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5661,6 +5661,7 @@
56615661
<div class="hero-actions">
56625662
<a class="button" href="/free-pdf-tools/">Browse free file tools</a>
56635663
<a class="button secondary" href="/tools/invoice-generator/">Create an invoice</a>
5664+
<a class="button secondary" data-track-event="service_request_intent" data-track-tool="invoice-followup-copy-pack" href="/invoice-followup-copy-pack/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_service&utm_content=hero#service-request">Request $19 follow-up copy</a>
56645665
<a class="button ghost" href="/upload-limit-fixer/">Fix upload limits</a>
56655666
</div>
56665667
<div class="hero-proof" aria-label="Launch validation goals">
@@ -5676,6 +5677,7 @@
56765677
</picture>
56775678
</div>
56785679
</section>
5680+
${renderHomeInvoiceFollowupClose()}
56795681
<section class="shell section">
56805682
<div class="section-head">
56815683
<div>
@@ -5737,6 +5739,22 @@
57375739
`;
57385740
}
57395741

5742+
function renderHomeInvoiceFollowupClose() {
5743+
return `
5744+
<section class="shell section service-upgrade-cta" aria-label="Invoice follow-up copy service">
5745+
<div>
5746+
<p class="eyebrow">Quick paid help</p>
5747+
<h2>Made an invoice? Get the follow-up sequence written for $19.</h2>
5748+
<p>The free invoice generator stays free. If you want editable reminder, due-today, first-overdue, thank-you, and next-invoice wording for one workflow, send the 30-second fit check before any external checkout or invoice is sent.</p>
5749+
</div>
5750+
<div class="free-tool-depth-actions">
5751+
<a class="button" data-track-event="service_request_intent" data-track-tool="invoice-followup-copy-pack" href="/invoice-followup-copy-pack/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_service&utm_content=close-band#service-request">Send 30-second fit check</a>
5752+
<a class="button secondary" data-track-event="free_tool_depth" data-track-tool="invoice-followup-email" href="/tools/invoice-followup-email/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_tool&utm_content=close-band">Write one free follow-up first</a>
5753+
<p class="help">Payment happens only through a real external checkout or invoice after fit is confirmed.</p>
5754+
</div>
5755+
</section>`;
5756+
}
5757+
57405758
function toolCard(tool) {
57415759
return `
57425760
<article class="tool-card">

index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ <h1>Make useful PDF, image, and QR files in under a minute.</h1>
5757
<div class="hero-actions">
5858
<a class="button" href="/free-pdf-tools/">Browse free file tools</a>
5959
<a class="button secondary" href="/tools/invoice-generator/">Create an invoice</a>
60+
<a class="button secondary" data-track-event="service_request_intent" data-track-tool="invoice-followup-copy-pack" href="/invoice-followup-copy-pack/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_service&utm_content=hero#service-request">Request $19 follow-up copy</a>
6061
<a class="button ghost" href="/upload-limit-fixer/">Fix upload limits</a>
6162
</div>
6263
<div class="hero-proof" aria-label="Launch validation goals">
@@ -72,6 +73,18 @@ <h1>Make useful PDF, image, and QR files in under a minute.</h1>
7273
</picture>
7374
</div>
7475
</section>
76+
<section class="shell section service-upgrade-cta" aria-label="Invoice follow-up copy service">
77+
<div>
78+
<p class="eyebrow">Quick paid help</p>
79+
<h2>Made an invoice? Get the follow-up sequence written for $19.</h2>
80+
<p>The free invoice generator stays free. If you want editable reminder, due-today, first-overdue, thank-you, and next-invoice wording for one workflow, send the 30-second fit check before any external checkout or invoice is sent.</p>
81+
</div>
82+
<div class="free-tool-depth-actions">
83+
<a class="button" data-track-event="service_request_intent" data-track-tool="invoice-followup-copy-pack" href="/invoice-followup-copy-pack/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_service&utm_content=close-band#service-request">Send 30-second fit check</a>
84+
<a class="button secondary" data-track-event="free_tool_depth" data-track-tool="invoice-followup-email" href="/tools/invoice-followup-email/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_tool&utm_content=close-band">Write one free follow-up first</a>
85+
<p class="help">Payment happens only through a real external checkout or invoice after fit is confirmed.</p>
86+
</div>
87+
</section>
7588
<section class="shell section">
7689
<h2>Popular file and printable searches</h2>
7790
<div class="grid-2">

scripts/seo-content.cjs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5943,6 +5943,7 @@ const pages = [
59435943
<div class="hero-actions">
59445944
<a class="button" href="/free-pdf-tools/">Browse free file tools</a>
59455945
<a class="button secondary" href="/tools/invoice-generator/">Create an invoice</a>
5946+
<a class="button secondary" data-track-event="service_request_intent" data-track-tool="invoice-followup-copy-pack" href="/invoice-followup-copy-pack/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_service&utm_content=hero#service-request">Request $19 follow-up copy</a>
59465947
<a class="button ghost" href="/upload-limit-fixer/">Fix upload limits</a>
59475948
</div>
59485949
<div class="hero-proof" aria-label="Launch validation goals">
@@ -5958,6 +5959,7 @@ const pages = [
59585959
</picture>
59595960
</div>
59605961
</section>
5962+
${homeInvoiceFollowupCloseHtml()}
59615963
<section class="shell section">
59625964
<h2>Popular file and printable searches</h2>
59635965
<div class="grid-2">
@@ -6273,6 +6275,21 @@ const pages = [
62736275
},
62746276
];
62756277

6278+
function homeInvoiceFollowupCloseHtml() {
6279+
return `<section class="shell section service-upgrade-cta" aria-label="Invoice follow-up copy service">
6280+
<div>
6281+
<p class="eyebrow">Quick paid help</p>
6282+
<h2>Made an invoice? Get the follow-up sequence written for $19.</h2>
6283+
<p>The free invoice generator stays free. If you want editable reminder, due-today, first-overdue, thank-you, and next-invoice wording for one workflow, send the 30-second fit check before any external checkout or invoice is sent.</p>
6284+
</div>
6285+
<div class="free-tool-depth-actions">
6286+
<a class="button" data-track-event="service_request_intent" data-track-tool="invoice-followup-copy-pack" href="/invoice-followup-copy-pack/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_service&utm_content=close-band#service-request">Send 30-second fit check</a>
6287+
<a class="button secondary" data-track-event="free_tool_depth" data-track-tool="invoice-followup-email" href="/tools/invoice-followup-email/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_tool&utm_content=close-band">Write one free follow-up first</a>
6288+
<p class="help">Payment happens only through a real external checkout or invoice after fit is confirmed.</p>
6289+
</div>
6290+
</section>`;
6291+
}
6292+
62766293
const GUIDE_HINTS_FOR_LINKS = {
62776294
"invoice-generator": ["invoice"],
62786295
"invoice-followup-email": ["invoice"],

scripts/verify-seo.cjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ if (!fs.existsSync(homeFile)) failures.push("Missing homepage.");
9595
else {
9696
const html = fs.readFileSync(homeFile, "utf8");
9797
requireUploadLimitShortcuts(html, "Homepage");
98+
if (!html.includes("Request $19 follow-up copy") || !html.includes("Made an invoice? Get the follow-up sequence written for $19.")) failures.push("Homepage missing above-fold invoice follow-up service offer.");
99+
if (!html.includes('data-track-event="service_request_intent" data-track-tool="invoice-followup-copy-pack"')) failures.push("Homepage invoice follow-up offer missing service intent tracking.");
100+
if (!html.includes("/invoice-followup-copy-pack/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_service&utm_content=hero#service-request")) failures.push("Homepage hero should route to invoice follow-up service fit check.");
101+
if (!html.includes("/invoice-followup-copy-pack/?utm_source=home&utm_medium=site&utm_campaign=invoice_followup_service&utm_content=close-band#service-request")) failures.push("Homepage close band should route to invoice follow-up service fit check.");
102+
if (!html.includes("Payment happens only through a real external checkout or invoice after fit is confirmed.")) failures.push("Homepage paid service offer missing external-payment safety gate.");
98103
}
99104

100105
const docsSellerIndexFile = path.join(root, "docs", "index.html");

0 commit comments

Comments
 (0)