Skip to content

Commit 5a60ae3

Browse files
author
PrintableTools Lab Bot
committed
Prefill sponsor invoice requests
1 parent 63f3368 commit 5a60ae3

37 files changed

Lines changed: 306 additions & 239 deletions

DISTRIBUTION.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ Use these only where sponsor, partnership, directory, newsletter, or resource-pa
5959

6060
- Sponsor deal room: https://printable-tools-lab.pages.dev/sponsor-deal-room/ - Direct pilot pricing, fit rules, tracked deal paths, and sponsor inquiry form.
6161
- Sponsor deal room JSON: https://printable-tools-lab.pages.dev/sponsor-deal-room.json
62-
- Starter fit review: https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=starter-fit-review#sponsor-inquiry - USD 49; A sponsor wants to know whether their product is safe and relevant before buying a visible placement.
63-
- Guide sponsor pilot: https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=guide-sponsor-pilot#sponsor-inquiry - USD 99-149; A PDF, image, QR, career, classroom, or small-business product wants one clearly labeled pilot mention.
64-
- Vertical category pilot: https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=vertical-category-pilot#sponsor-inquiry - USD 149-250; A partner cares about one audience such as QR/local marketing, resume/career, classroom, or small-business paperwork.
65-
- Partner distribution test: https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=partner-distribution-test#sponsor-inquiry - No-cash mutual test; A newsletter, directory, resource page, or community wants to test relevant traffic before a paid placement.
62+
- Starter fit review: https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=starter-fit-review&commitment=request-invoice#sponsor-inquiry - USD 49; A sponsor wants to know whether their product is safe and relevant before buying a visible placement.
63+
- Guide sponsor pilot: https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=guide-sponsor-pilot&commitment=request-invoice#sponsor-inquiry - USD 99-149; A PDF, image, QR, career, classroom, or small-business product wants one clearly labeled pilot mention.
64+
- Vertical category pilot: https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=vertical-category-pilot&commitment=request-invoice#sponsor-inquiry - USD 149-250; A partner cares about one audience such as QR/local marketing, resume/career, classroom, or small-business paperwork.
65+
- Partner distribution test: https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=partner-distribution-test&commitment=question-only#sponsor-inquiry - No-cash mutual test; A newsletter, directory, resource page, or community wants to test relevant traffic before a paid placement.
6666
- Sponsor deal room: https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=organic&utm_campaign=sponsor_deal_room&utm_content=deal-room - Direct pilot pricing, fit rules, tracked deal paths, and the business-safe inquiry form for partners ready to discuss a sponsor test.
6767
- Public sponsor call: https://printable-tools-lab.pages.dev/sponsor-call?utm_source=sponsor-outreach&utm_medium=organic&utm_campaign=sponsor_call&utm_content=public-call - Open invitation for policy-fit sponsors and partners to use the sponsor form instead of private outreach.
6868
- Sponsor inquiry form: https://printable-tools-lab.pages.dev/sponsor?utm_source=sponsor-outreach&utm_medium=organic&utm_campaign=sponsor_call&utm_content=inquiry-form#sponsor-inquiry - Manual intake for labeled guide sponsorship, starter review, and partner distribution inquiries.

app.js

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5110,10 +5110,11 @@
51105110
budgetRange: "under-250",
51115111
placement: "media-kit-review",
51125112
timeline: "this-week",
5113+
commitment: "request-invoice",
51135114
bestFor: "A sponsor wants to know whether their product is safe and relevant before buying a visible placement.",
51145115
deliverable: "Manual sponsor-fit review, audience match, recommended page family, and safe next-step copy.",
51155116
proofNeeded: "Company URL, product category, intended audience, and any placement rules.",
5116-
trackedUrl: "/sponsor-deal-room/?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=starter-fit-review#sponsor-inquiry",
5117+
trackedUrl: "/sponsor-deal-room/?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=starter-fit-review&commitment=request-invoice#sponsor-inquiry",
51175118
},
51185119
{
51195120
id: "guide-sponsor-pilot",
@@ -5122,10 +5123,11 @@
51225123
budgetRange: "250-500",
51235124
placement: "content-sponsorship",
51245125
timeline: "this-month",
5126+
commitment: "request-invoice",
51255127
bestFor: "A PDF, image, QR, career, classroom, or small-business product wants one clearly labeled pilot mention.",
51265128
deliverable: "One manually approved, clearly labeled sponsor mention on a relevant guide or resource page.",
51275129
proofNeeded: "Campaign fit, sponsor copy draft, safe landing URL, and category exclusions.",
5128-
trackedUrl: "/sponsor-deal-room/?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=guide-sponsor-pilot#sponsor-inquiry",
5130+
trackedUrl: "/sponsor-deal-room/?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=guide-sponsor-pilot&commitment=request-invoice#sponsor-inquiry",
51295131
},
51305132
{
51315133
id: "vertical-category-pilot",
@@ -5134,10 +5136,11 @@
51345136
budgetRange: "250-500",
51355137
placement: "directory-visibility",
51365138
timeline: "this-month",
5139+
commitment: "request-invoice",
51375140
bestFor: "A partner cares about one audience such as QR/local marketing, resume/career, classroom, or small-business paperwork.",
51385141
deliverable: "Tracked vertical sponsor page, fit review, and one approved contextual placement candidate.",
51395142
proofNeeded: "Target vertical, audience fit, sponsor category, and safe public landing URL.",
5140-
trackedUrl: "/sponsor-deal-room/?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=vertical-category-pilot#sponsor-inquiry",
5143+
trackedUrl: "/sponsor-deal-room/?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=vertical-category-pilot&commitment=request-invoice#sponsor-inquiry",
51415144
},
51425145
{
51435146
id: "partner-distribution-test",
@@ -5146,10 +5149,11 @@
51465149
budgetRange: "exploratory",
51475150
placement: "partner-distribution",
51485151
timeline: "exploratory",
5152+
commitment: "question-only",
51495153
bestFor: "A newsletter, directory, resource page, or community wants to test relevant traffic before a paid placement.",
51505154
deliverable: "Tracked partner link, source attribution, and review against page views, depth, downloads, or lead signal.",
51515155
proofNeeded: "Partner page, expected audience, planned link context, and review window.",
5152-
trackedUrl: "/sponsor-deal-room/?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=partner-distribution-test#sponsor-inquiry",
5156+
trackedUrl: "/sponsor-deal-room/?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=partner-distribution-test&commitment=question-only#sponsor-inquiry",
51535157
},
51545158
];
51555159
const sponsorVerticals = [
@@ -5226,10 +5230,15 @@
52265230
`data-sponsor-placement="${escapeHtml(deal.placement)}"`,
52275231
`data-sponsor-budget-range="${escapeHtml(deal.budgetRange)}"`,
52285232
`data-sponsor-timeline="${escapeHtml(deal.timeline)}"`,
5233+
`data-sponsor-commitment="${escapeHtml(sponsorDealCommitment(deal))}"`,
52295234
`data-sponsor-notes="${escapeHtml(`${deal.title} (${deal.price}): ${deal.deliverable} Needed: ${deal.proofNeeded}`)}"`,
52305235
].join(" ");
52315236
}
52325237

5238+
function sponsorDealCommitment(deal) {
5239+
return deal?.commitment || (String(deal?.price || "").toLowerCase().includes("no-cash") ? "question-only" : "request-invoice");
5240+
}
5241+
52335242
const sponsorProspects = [
52345243
{
52355244
id: "pdfco-pdf-api",
@@ -7793,7 +7802,7 @@ ${paragraphs.join("\n")}
77937802
<span>Notes</span>
77947803
<textarea name="notes" maxlength="1000" placeholder="Placement requirements, policy notes, geography, campaign idea, or useful public context."></textarea>
77957804
</label>
7796-
<p class="notice" data-sponsor-deal-status>Choose a deal above to prefill placement, budget, and timeline.</p>
7805+
<p class="notice" data-sponsor-deal-status>Choose a deal above to prefill placement, budget, timeline, and next step.</p>
77977806
<label class="check-row">
77987807
<input name="consent" type="checkbox" required>
77997808
<span>I am sending a business inquiry and will not include payment, tax, private identity, passwords, or customer files.</span>
@@ -8067,6 +8076,7 @@ ${paragraphs.join("\n")}
80678076
utm_content: prospect.id,
80688077
deal: deal.id,
80698078
vertical: vertical.slug,
8079+
commitment: sponsorDealCommitment(deal),
80708080
});
80718081
return `/sponsor-deal-room/?${params.toString()}#sponsor-inquiry`;
80728082
}
@@ -8080,6 +8090,7 @@ ${paragraphs.join("\n")}
80808090
utm_medium: "manual",
80818091
utm_campaign: "sponsor_proposal",
80828092
utm_content: prospect.id,
8093+
commitment: sponsorDealCommitment(deal),
80838094
});
80848095
return `/sponsor-proposal/?${params.toString()}#sponsor-inquiry`;
80858096
}
@@ -12533,7 +12544,10 @@ ${paragraphs.join("\n")}
1253312544
if (!dealId) return null;
1253412545
const deal = sponsorDeals.find((item) => item.id === dealId);
1253512546
if (!deal) return null;
12536-
return sponsorDealPrefillFromDeal(deal);
12547+
return {
12548+
...sponsorDealPrefillFromDeal(deal),
12549+
sponsorCommitment: sponsorCommitmentFromParams(params) || sponsorDealCommitment(deal),
12550+
};
1253712551
}
1253812552

1253912553
function sponsorDealPrefillFromDeal(deal) {
@@ -12542,16 +12556,23 @@ ${paragraphs.join("\n")}
1254212556
sponsorPlacement: deal.placement,
1254312557
sponsorBudgetRange: deal.budgetRange,
1254412558
sponsorTimeline: deal.timeline,
12559+
sponsorCommitment: sponsorDealCommitment(deal),
1254512560
sponsorNotes: `${deal.title} (${deal.price}): ${deal.deliverable} Needed: ${deal.proofNeeded}`,
1254612561
};
1254712562
}
1254812563

12564+
function sponsorCommitmentFromParams(params) {
12565+
const value = String(params.get("commitment") || params.get("next_step") || params.get("intent") || "").trim();
12566+
return ["question-only", "request-invoice", "ready-this-month"].includes(value) ? value : "";
12567+
}
12568+
1254912569
function saveSponsorDealPrefill(dataset) {
1255012570
const prefill = {
1255112571
sponsorDealId: dataset.sponsorDealId || "",
1255212572
sponsorPlacement: dataset.sponsorPlacement || "",
1255312573
sponsorBudgetRange: dataset.sponsorBudgetRange || "",
1255412574
sponsorTimeline: dataset.sponsorTimeline || "",
12575+
sponsorCommitment: dataset.sponsorCommitment || "",
1255512576
sponsorNotes: dataset.sponsorNotes || "",
1255612577
};
1255712578
try {
@@ -12575,10 +12596,11 @@ ${paragraphs.join("\n")}
1257512596
setFormFieldValue(form, "placement", prefill.sponsorPlacement);
1257612597
setFormFieldValue(form, "budgetRange", prefill.sponsorBudgetRange);
1257712598
setFormFieldValue(form, "timeline", prefill.sponsorTimeline);
12599+
setFormFieldValue(form, "commitment", prefill.sponsorCommitment);
1257812600
const notes = form.elements.notes;
1257912601
if (notes && !String(notes.value || "").trim()) notes.value = prefill.sponsorNotes || "";
1258012602
const status = form.querySelector("[data-sponsor-deal-status]");
12581-
if (status) status.textContent = `Selected sponsor path: ${prefill.sponsorDealId}. Placement, budget, and timeline are prefilled.`;
12603+
if (status) status.textContent = `Selected sponsor path: ${prefill.sponsorDealId}. Placement, budget, timeline, and next step are prefilled.`;
1258212604
}
1258312605

1258412606
function setFormFieldValue(form, name, value) {

discovery.json

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "PrintableTools Lab",
33
"url": "https://printable-tools-lab.pages.dev/",
4-
"generatedAt": "2026-06-07T10:38:23.212Z",
4+
"generatedAt": "2026-06-07T10:52:52.151Z",
55
"positioning": "Free no-signup browser PDF, image, and QR tools with local generation, original guides, and responsible ad placement after approval.",
66
"feed": "https://printable-tools-lab.pages.dev/feed.xml",
77
"manifest": "https://printable-tools-lab.pages.dev/site.webmanifest",
@@ -204,10 +204,11 @@
204204
"budgetRange": "under-250",
205205
"placement": "media-kit-review",
206206
"timeline": "this-week",
207+
"commitment": "request-invoice",
207208
"bestFor": "A sponsor wants to know whether their product is safe and relevant before buying a visible placement.",
208209
"deliverable": "Manual sponsor-fit review, audience match, recommended page family, and safe next-step copy.",
209210
"proofNeeded": "Company URL, product category, intended audience, and any placement rules.",
210-
"trackedUrl": "https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=starter-fit-review#sponsor-inquiry"
211+
"trackedUrl": "https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=starter-fit-review&commitment=request-invoice#sponsor-inquiry"
211212
},
212213
{
213214
"id": "guide-sponsor-pilot",
@@ -216,10 +217,11 @@
216217
"budgetRange": "250-500",
217218
"placement": "content-sponsorship",
218219
"timeline": "this-month",
220+
"commitment": "request-invoice",
219221
"bestFor": "A PDF, image, QR, career, classroom, or small-business product wants one clearly labeled pilot mention.",
220222
"deliverable": "One manually approved, clearly labeled sponsor mention on a relevant guide or resource page.",
221223
"proofNeeded": "Campaign fit, sponsor copy draft, safe landing URL, and category exclusions.",
222-
"trackedUrl": "https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=guide-sponsor-pilot#sponsor-inquiry"
224+
"trackedUrl": "https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=guide-sponsor-pilot&commitment=request-invoice#sponsor-inquiry"
223225
},
224226
{
225227
"id": "vertical-category-pilot",
@@ -228,10 +230,11 @@
228230
"budgetRange": "250-500",
229231
"placement": "directory-visibility",
230232
"timeline": "this-month",
233+
"commitment": "request-invoice",
231234
"bestFor": "A partner cares about one audience such as QR/local marketing, resume/career, classroom, or small-business paperwork.",
232235
"deliverable": "Tracked vertical sponsor page, fit review, and one approved contextual placement candidate.",
233236
"proofNeeded": "Target vertical, audience fit, sponsor category, and safe public landing URL.",
234-
"trackedUrl": "https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=vertical-category-pilot#sponsor-inquiry"
237+
"trackedUrl": "https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=vertical-category-pilot&commitment=request-invoice#sponsor-inquiry"
235238
},
236239
{
237240
"id": "partner-distribution-test",
@@ -240,10 +243,11 @@
240243
"budgetRange": "exploratory",
241244
"placement": "partner-distribution",
242245
"timeline": "exploratory",
246+
"commitment": "question-only",
243247
"bestFor": "A newsletter, directory, resource page, or community wants to test relevant traffic before a paid placement.",
244248
"deliverable": "Tracked partner link, source attribution, and review against page views, depth, downloads, or lead signal.",
245249
"proofNeeded": "Partner page, expected audience, planned link context, and review window.",
246-
"trackedUrl": "https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=partner-distribution-test#sponsor-inquiry"
250+
"trackedUrl": "https://printable-tools-lab.pages.dev/sponsor-deal-room?utm_source=sponsor-outreach&utm_medium=manual&utm_campaign=sponsor_deal_room&utm_content=partner-distribution-test&commitment=question-only#sponsor-inquiry"
247251
}
248252
],
249253
"sponsorOpportunities": "https://printable-tools-lab.pages.dev/sponsor-opportunities/",

docs/game-submission-feed.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "HTML5 Game Submission Feed",
3-
"generatedAt": "2026-06-07T10:38:23.305Z",
3+
"generatedAt": "2026-06-07T10:52:52.244Z",
44
"directory": "https://yanqr213.github.io/printable-tools-lab/html5-game-submission-pack/",
55
"mainSubmissionPack": "https://printable-tools-lab.pages.dev/portal-submission-pack/",
66
"purpose": "Public machine-readable feed for HTML5 game portals and reviewers. It lists playable builds, clean ZIPs, SDK packages, demo videos, review reports, and ad-safety notes without private account or payout data.",

docs/games.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "HTML5 Game Submission Feed",
3-
"generatedAt": "2026-06-07T10:38:23.305Z",
3+
"generatedAt": "2026-06-07T10:52:52.244Z",
44
"directory": "https://yanqr213.github.io/printable-tools-lab/html5-game-submission-pack/",
55
"mainSubmissionPack": "https://printable-tools-lab.pages.dev/portal-submission-pack/",
66
"purpose": "Public machine-readable feed for HTML5 game portals and reviewers. It lists playable builds, clean ZIPs, SDK packages, demo videos, review reports, and ad-safety notes without private account or payout data.",

docs/organic-push-kit.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "PrintableTools Lab Organic Push Kit Mirror",
3-
"generatedAt": "2026-06-07T10:38:23.305Z",
3+
"generatedAt": "2026-06-07T10:52:52.244Z",
44
"directory": "https://yanqr213.github.io/printable-tools-lab/organic-push-kit/",
55
"livePage": "https://printable-tools-lab.pages.dev/organic-push-kit/",
66
"liveJson": "https://printable-tools-lab.pages.dev/organic-push-kit.json",

docs/sponsor-call.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "PrintableTools Lab Sponsor Call Mirror",
3-
"generatedAt": "2026-06-07T10:38:23.305Z",
3+
"generatedAt": "2026-06-07T10:52:52.244Z",
44
"directory": "https://yanqr213.github.io/printable-tools-lab/sponsor-call/",
55
"livePage": "https://printable-tools-lab.pages.dev/sponsor-call/",
66
"liveJson": "https://printable-tools-lab.pages.dev/sponsor-call.json",

0 commit comments

Comments
 (0)