Partner Onboarding
The one-time setup that must be complete before any product can be published on Branded Commerce. This is the partner-and-Firmly checklist for the first day of an engagement.
Onboarding steps
| Step | What happens | Owner | Output |
|---|---|---|---|
| Domain setup | Partner adds two DNS CNAME records — production hostname and staging hostname — to the CNAME targets Firmly provides. Each must be DNS-only (grey-cloud) if the partner’s DNS is on Cloudflare. Firmly enrolls each hostname in its matching Cloudflare zone and provisions TLS via Cloudflare for SaaS | Partner (DNS) / Firmly (TLS) | Both partner domains resolve with active TLS |
| Branding | Partner provides brand assets and copy preferences (see Branding intake below). Firmly applies theming to all page templates | Partner (assets) / Firmly (theming) | Partner theme configured and ready to render every page |
| Language and locale | Partner specifies market(s) and language(s) the pages render in (see Language and locale below) | Partner (requirements) / Firmly (config) | Locale configuration set |
| Ad-platform pixel setup | Partner provides per-platform credentials for every ad platform they run campaigns on. What the partner provides determines the channel mix per platform — see Ad-platform credentials below | Partner (credentials) / Firmly (config) | Per-platform conversion-signal configuration |
| Affiliate mode | Partner and Firmly agree on BYO (partner’s own affiliate network credentials) or Firmly-managed attribution | Both | Affiliate attribution mode configured |
| Merchant list | Partner and Firmly align on which merchants to support. Firmly checks onboarding status — onboards new merchants as needed | Both | Approved merchant list with onboarding status |
| Testing | End-to-end flow validation on the staging domain — at least one full order placed | Both | Staging environment verified |
| Performance tracking | Agree on tracking requirements — see the Operations overview | Both | Tracking configuration documented |
Domain setup detail
Two CNAME records, one per environment:
| Environment | Partner hostname | CNAME points to |
|---|---|---|
| Production | deals.partner.example (or any partner subdomain) |
firmly.live |
| UAT / staging | deals-staging.partner.example |
firmlyuat.com |
Both are independent enrollments — there is no “promote staging to production” path; they coexist permanently. Staging stays in place after launch for ongoing pre-production testing of new campaigns and theme changes.
If the partner’s DNS lives on Cloudflare, both CNAMEs must be set to DNS-only (grey-cloud icon). Cloudflare-on-Cloudflare orange-cloud routing breaks TLS provisioning.
Branding intake
The partner provides brand assets, copy preferences, and legal text. Firmly builds a theme and applies it to every page template (Landing page, PDP, Checkout, Thank-you).
What the partner provides
| Category | What’s needed | Example |
|---|---|---|
| Brand assets | Logo files (light + dark, SVG preferred), favicon (32×32), hero imagery for landing pages | Partner primary logo + dark variant |
| Typography | Primary font family, weight scale, licensing terms, optional display font | Inter 400/600/700, Google Fonts–hosted |
| Palette | Primary, secondary/accent, text, background/surface, border, state colors | Primary #6a1b9a, background #fafafa |
| Button treatment | Corner radius, fill style, hover state, CTA label case | 6 px radius, solid fill, uppercase labels |
| Chrome | Header logo placement, header density, back-arrow style, footer links | Logo left, compact header, chevron back arrow |
| Copy preferences | Brand voice, promo language template, CTA verb, savings callout phrasing, merchant identity line | “BUY NOW”, “You saved {amount} with {partner}!” |
| Legal copy | T&C URL, privacy policy URL, per-surface disclaimers, jurisdiction/market | US market, T&C at partner.example/terms |
| Merchant identity | Prominent vs subtle display per merchant; show merchant domain or not | “Shopping with [Merchant]” in header vs footer-only |
How the handoff works
| # | Step | Owner |
|---|---|---|
| 1 | Intake — Firmly sends the branding questionnaire to the partner’s design/brand contact | Firmly |
| 2 | Partner completes — provides assets, answers copy/layout questions, supplies legal URLs | Partner |
| 3 | Theme build — Firmly builds the theme object and applies it to all page templates | Firmly |
| 4 | Staging review — Firmly deploys themed pages to the staging domain; partner reviews branding on Landing page, PDP, Checkout, Thank-you | Both |
| 5 | Feedback and iteration — partner flags branding issues; Firmly adjusts the theme | Both |
| 6 | Sign-off — partner’s design/brand contact approves the theme for production | Partner |
Per-property theming
Some partners operate multiple brand properties (e.g., several deal sites under one parent). Each property may have its own logo, palette, and copy voice. The theme is configurable per property — one onboarding produces multiple theme variants, not one.
Ad-platform credentials
Per ad platform the partner runs campaigns on, channel mix is determined by which credentials the partner supplies:
| Provided | Channel mix |
|---|---|
| Pixel ID / dataset ID only | Client-side pixel only |
| Pixel ID + account ID + access token | Dual-fire — client-side pixel + server-side CAPI with event_id dedup |
Recommended: provide both. Server-side fires cover conversions the client-side pixel misses due to ad blockers. The event_id deduplication ensures one conversion event per order, not two.
Supported platforms: Meta (CAPI), Google Ads (Enhanced Conversions), TikTok, Pinterest, Snap, Reddit.
The partner provides credentials per platform — Firmly does not share credentials across platforms.
Language and locale
Pages contain content from multiple sources; each has its own language concern:
| Content source | Language determined by |
|---|---|
| Product data (title, description, images) | The merchant — fetched from the merchant’s catalog in whatever language the merchant serves |
| Partner branding copy (CTA verbs, promo messaging, savings callout) | The partner — provided during onboarding as copy preferences |
| Checkout labels (form fields, error messages, payment method names) | Firmly — rendered by the Drop-in Checkout component |
| Legal copy (T&C, privacy policy, disclaimers) | The partner — provided as URLs and inline text during onboarding |
If the partner operates in a non-English market where the merchant catalog returns English data, the result is mixed-language pages. Confirm the merchant catalog language during onboarding before going live in non-English markets.
Attribution metadata fields
When an order is placed, Branded Commerce carries attribution data from the branded page through to the merchant’s OMS so the merchant’s own reporting can reconcile partner-driven orders. Three categories flow through:
| Category | What it carries | Source |
|---|---|---|
| UTM params | utm_source, utm_campaign, utm_content |
Captured from the ad-click URL on the branded page and set on the cart session |
| Ad-click IDs | fbclid, gclid, ttclid, and other platform click identifiers |
Captured from the ad-click URL; used for the ad platform’s conversion postback |
| Partner identifier | Identifies which partner surface drove the order | Derived from the partner’s configuration; set automatically on the cart session |
Pre-launch checklist
Sign off on every item below before publishing the first product:
- Production CNAME resolves; TLS valid on the partner hostname
- Staging CNAME resolves; TLS valid; staging tested end-to-end
- Theme reviewed and approved on staging (Landing page, PDP, Checkout, Thank-you)
- Affiliate mode chosen (BYO or Firmly-managed) + credentials configured
- Per-platform ad pixels configured (dual-fire preferred where possible)
- Merchant list agreed + onboarding status confirmed for each merchant
- At least one test order placed on staging end-to-end
- Legal copy (T&C, privacy, disclaimers) approved and live
Related
- Operations overview
- Operational workflow — the per-product / per-campaign rhythm after onboarding is complete
- Integration Patterns — the technical setup
- Why Firmly