White-Label Agency Rates
One catalog, shown twice — the agency rate sheet an agency or media partner reads before deciding to resell, and the customer-facing widget they drop onto their own site.
noindex, is not in the site
navigation, and is not linked from anywhere public. Both panels below are live iframes
of the working catalog, not copies — so nothing on this page can go stale against it.
Share is paid on funds received — never on a quote, a signature or a verbal yes. Advertising spend and AI usage are billed to the client directly by the platform and are never marked up or commissionable.
Partner rate sheet
Audience: an agency or media partner deciding whether to resell. Shows the partner-share ladder and the commercial terms. This must never be shown to an end customer.
Embeddable widget
Audience: the partner’s own end customers. Retail prices only. Zero commission language. Partner name and accent colour set by URL parameter — shown here with a neutral placeholder. This is the iframe.
Sales Sheets for Your Team
A sheet per service your salespeople can keep open while they are on the phone — the benefits, exactly what is and is not included, and the natural next sale. Short bullets, not a brochure. Same 27 services, same prices. No share structure and no commission language appears on any sheet, so a sheet can be read from, printed or screen-shared in front of a customer without exposing your margin.
| Element | Side A — agency | Side B — customer |
|---|---|---|
| Service prices | 27 services, partner list price | Identical — the same 27 prices, not one number changed |
| Partner share ladder | Shown — 30% base, 35% at $25k, 40% at $50k written in 12 months | Absent — no percentage of any kind appears on the page |
| “You earn” per service | Shown against every line, recalculated at the selected tier | Absent |
| Commercial terms | Partner agreement summary — paid on funds received, ad spend non-commissionable | Absent — replaced by a customer-facing quote note |
| Catalog total | $81,380 full-book value at list | Absent — a customer sees per-service prices only |
| Internal price-status labels | “scope under review”, “provisional”, invoice references | Absent — rewritten as customer-facing scope notes |
| Branding | NeedAWebNow, primary | Partner name, primary — “Powered by needaweb” as a small footer credit only |
| Page chrome | Full standalone page with masthead | None — no nav, no shell; drops into a content area |
Side B, embedded for real
Not a screenshot and not a mockup — the actual widget, loaded from
preview.needawebnow.com into this WordPress page through the exact
<iframe> snippet below, auto-sizing its own height. Any partner’s
site can do the same.
The embed snippet
Hand this to a partner. It is plain HTML — it works in WordPress, Squarespace, Wix, Shopify, Webflow or a hand-written page. No account, no script tag, no build step.
1 · Basic — works everywhere, fixed height, widget scrolls internally
The safe default. Paste it and it works.
<!-- Digital services catalog --> <iframe src="https://preview.needawebnow.com/wl-catalog/embed/?partner=Your%20Company%20Name" title="Digital Services" width="100%" height="2400" style="border:0;display:block;width:100%;" loading="lazy"></iframe>
2 · Auto-height — no inner scrollbar, grows with the content
The widget posts its own height to the parent page. Use this where you can
add a <script> tag. It is the version running on this page. The
e.source check matters if the page carries more than one copy of the
widget — without it, a narrower copy’s height lands on the wider one.
<iframe id="nwn-services" src="https://preview.needawebnow.com/wl-catalog/embed/?partner=Your%20Company%20Name" title="Digital Services" style="border:0;display:block;width:100%;min-height:900px;" loading="lazy"></iframe> <script> window.addEventListener('message', function (e) { if (e.origin !== 'https://preview.needawebnow.com') return; if (!e.data || e.data.type !== 'nwn-embed-height') return; var f = document.getElementById('nwn-services'); if (!f || e.source !== f.contentWindow) return; f.style.height = (e.data.height + 24) + 'px'; }); </script>
3 · URL parameters — how a partner white-labels it
All optional. Everything defaults to a neutral placeholder, so a wrong or missing parameter never breaks the widget.
| Parameter | Effect | Example |
|---|---|---|
partner |
Partner name in the heading, the request panel and the footer. Defaults to
[Partner Name]. |
?partner=Your%20Agency%20Name |
accent |
Accent colour, 6-digit hex, no #. Recolours buttons, headings and
highlights. Defaults to green. |
&accent=5BBF5B |
cta |
Partner’s own quote/contact page. Buttons link straight to it, with
?service= appended so they know which service was clicked. |
&cta=https://yoursite.com/contact |
email |
Adds an email button with the service name pre-filled in the subject line. | &email=sales@yoursite.com |
phone |
Adds a click-to-call button. | &phone=4075551234 |
intro |
Set to 0 to hide the widget’s own heading, for a partner who
already has one on the page. |
&intro=0 |