Skip to content

Article

Playbook: Campaign Site Structure for Marketers

10X product documentation.

Article Docs 10xDotIn Example Docs
10X Docs
10X product documentation.
Review intent

Browse 10X documentation.

Make the next growth move easier to approve.

10X product documentation.

Playbook: Campaign Site Structure for Marketers

Last updated: 2026-03-06

1. Purpose and when to use this

Use this playbook when you want campaign-specific detail pages on links.10x.in, each with a unique slug, structured schema JSON, and optional login gating (FREE_WITH_LOGIN).

Typical marketer goals:

  • Launch campaigns with reusable page structure blocks.
  • Reuse one campaign framework across channels with small schema changes.
  • Keep sensitive campaign content visible only to authenticated visitors.
  • Enable API/MCP-driven content operations for fast experimentation.

2. What this feature gives you

  • One campaign can reference one detail page slug (detailsPageSlug) for direct lookup.
  • Page metadata stores campaign structure references (campaignId, schemaS3Key, schemaVersion, structureType).
  • Schema JSON is versioned in S3 with deterministic keys:
  • site-structure/{handle}/campaigns/{campaignId}/v{version}.json
  • Routes available via JWT control-plane and PAT public-handle endpoints.
  • MCP tools available:
  • campaign_structure_get
  • campaign_structure_upsert
  • campaign_structure_publish

3. Marketer use-case matrix

Marketing purposeRecommended page setupSchema emphasisAccess mode
Product launchFull long-form campaign page + FAQs + CTA striphero, proof, offer ladder, CTA IDsFREE_WITH_LOGIN when pre-launch; PUBLIC post-launch
Lead magnetShort promise page + form + social prooflead form module, attribution metadataFREE_WITH_LOGIN
Webinar / event registrationSession agenda + speaker block + registration CTAschedule sections, seat limits, event metadataFREE_WITH_LOGIN
Retargeting campaignVariant-specific headline/offer by segmentsegment/module mapping, retarget tagsFREE_WITH_LOGIN
Influencer or partner campaignPartner-specific narrative and compliance footerpartner metadata, source tags, legal blockPUBLIC or FREE_WITH_LOGIN
Regional offer pageGeo/currency-specific variantsregion modules, pricing/currency configFREE_WITH_LOGIN until QA passes

4. Channel workflow options

Option A: Local marketer app

Use the local app built for this flow:

  • apps/site-structure-web
  • Set API Base URL, PAT, handle, campaignId.
  • Run Fetch, Upsert, then Publish (FREE_WITH_LOGIN).

Option B: API automation

PAT routes:

  • PUT /v2/public/handles/{handle}/site-structure/campaigns/{campaignId}
  • GET /v2/public/handles/{handle}/site-structure/campaigns/{campaignId}
  • POST /v2/public/handles/{handle}/site-structure/campaigns/{campaignId}/publish

Required scopes:

  • pages.read for fetch
  • pages.write for upsert/publish

Option C: MCP-assisted operations

From connected assistants/tools:

  • campaign_structure_get for retrieval and QA checks
  • campaign_structure_upsert for schema edits
  • campaign_structure_publish for controlled release

OAuth/PAT scope requirements mirror API:

  • pages.read
  • pages.write

5. Minimal schema examples by purpose

Product launch

{
  "modules": [
    { "id": "hero", "type": "hero_banner" },
    { "id": "proof", "type": "social_proof" },
    { "id": "offer", "type": "offer_grid" },
    { "id": "faq", "type": "faq" }
  ],
  "seo": { "title": "Spring Launch" }
}

Lead capture

{
  "modules": [
    { "id": "hero", "type": "lead_hook" },
    { "id": "form", "type": "email_capture" }
  ],
  "tracking": { "primaryEvent": "lead" }
}

Webinar registration

{
  "modules": [
    { "id": "hero", "type": "event_hero" },
    { "id": "agenda", "type": "timeline" },
    { "id": "speakers", "type": "speaker_cards" },
    { "id": "cta", "type": "registration_cta" }
  ],
  "event": { "capacity": 500 }
}

6. Industry presets (ready-to-copy schema kits)

Use these as base kits in campaign_structure_upsert.payload.schema, then edit labels/content IDs.

Ecommerce preset

{
  "modules": [
    { "id": "hero", "type": "hero_banner", "variant": "product_drop" },
    { "id": "price", "type": "price_compare" },
    { "id": "proof", "type": "social_proof" },
    { "id": "faq", "type": "faq" },
    { "id": "cta", "type": "checkout_cta" }
  ],
  "commerce": {
    "primaryEvent": "purchase",
    "currency": "USD",
    "inventoryHint": "limited"
  },
  "segmentation": {
    "audiences": ["new_visitor", "cart_abandoner", "vip_repeat"]
  },
  "seo": { "title": "Campaign Offer | Brand" }
}

B2B SaaS preset

{
  "modules": [
    { "id": "hero", "type": "value_prop_hero" },
    { "id": "pain", "type": "pain_points" },
    { "id": "features", "type": "feature_grid" },
    { "id": "proof", "type": "case_study_cards" },
    { "id": "roi", "type": "roi_calculator" },
    { "id": "cta", "type": "demo_request_form" }
  ],
  "lead": {
    "primaryEvent": "lead",
    "qualificationFields": ["team_size", "role", "timeline"]
  },
  "segmentation": {
    "audiences": ["cold_prospect", "retargeted_visitor", "high_intent_trial"]
  },
  "seo": { "title": "See How Product Solves <Problem>" }
}

Events preset

{
  "modules": [
    { "id": "hero", "type": "event_hero" },
    { "id": "agenda", "type": "timeline" },
    { "id": "speakers", "type": "speaker_cards" },
    { "id": "venue", "type": "venue_map" },
    { "id": "cta", "type": "registration_cta" },
    { "id": "waitlist", "type": "waitlist_form" }
  ],
  "event": {
    "primaryEvent": "registration",
    "timezone": "America/New_York",
    "capacity": 500
  },
  "segmentation": {
    "audiences": ["early_access", "general_admission", "partner_invite"]
  },
  "seo": { "title": "Event Name 2026 | Register Now" }
}

Creators preset

{
  "modules": [
    { "id": "hero", "type": "creator_story_hero" },
    { "id": "media", "type": "media_gallery" },
    { "id": "offer", "type": "offer_stack" },
    { "id": "proof", "type": "community_proof" },
    { "id": "optin", "type": "newsletter_optin" },
    { "id": "merch", "type": "merch_highlight" },
    { "id": "disclosure", "type": "sponsor_disclosure" }
  ],
  "creator": {
    "primaryEvent": "subscriber_signup",
    "monetization": ["newsletter", "merch", "sponsor"]
  },
  "segmentation": {
    "audiences": ["new_followers", "returning_fans", "high_engagement"]
  },
  "seo": { "title": "Creator Campaign Hub | Latest Drops" }
}

7. Governance and QA checklist

  1. Ensure slug uniqueness before first publish.
  2. Confirm campaign health and test conversion paths.
  3. Validate schema JSON parses and modules render in preview.
  4. Keep pre-release pages in FREE_WITH_LOGIN until approved.
  5. Publish only after analytics and attribution tags are verified.

8. Common failure modes and fixes

  • slug_conflict:
  • Fix: choose a page slug not used by any link slug.
  • campaign_structure_not_configured:
  • Fix: run upsert first to bind detailsPageSlug.
  • schema_not_found or schema_invalid_json:
  • Fix: re-upsert schema to create a fresh valid S3 version.
  • insufficient_scope on PAT/MCP:
  • Fix: add pages.read and/or pages.write scopes.

Review system

What 10X checks

These checks sit after the main explanation so a reviewer can scan the evidence requirements without breaking the article flow.

Evidence checks

Questions to answer

  • Decisiondocs
    What decision should this article help the team make?

Evidence inputs

Data sources that must stay attached

These inputs keep the recommendation grounded before anyone changes the page, campaign, query target, CRM step, or growth priority.

  • 10xDotIn Docs
  • Playbooks Index
  • Playbook: Platform-Wide Feature Exploration Lab
  • Industry Best Practices
  • E-Commerce and Retail
  • Creator Economy
  • SaaS and B2B
  • Affiliate and Partnerships
  • Events and Ticketing
  • Apparel Prospect Demo

FAQ

Questions before using it

FAQ rows sit near the end, where they help unblock the next action without interrupting the diagnostic flow.

When should I use this article?

Use it before approving growth work that needs evidence, ownership, and a clear next action.

10X

Use 10X with the docs open

Keep product context attached while you review growth work.

Open 10X ->