Skip to main content

Integrations

Brand integrates with multiple One Stack products to provide a unified brand experience across the platform. This page describes each integration, what data flows, and how to configure them.

Hub (Identity)

Type: Always-on (required)

Hub provides authentication for all Brand users via Single Sign-On.

Data FlowDirectionDescription
User identity (name, email, role)Hub → BrandUsed for user records and attribution
Organization context (tenant ID, plan)Hub → BrandDetermines which brands belong to which tenant
Session tokenHub → BrandAuthenticates all Brand API requests

Configuration: No setup required. Brand uses the standard Hub SSO flow. Users reach Brand via the waffle menu in Hub.


PSA

Type: Pull (Brand fetches client list) + Push (Brand propagates brand data)

Data FlowDirectionDescription
Client companies listPSA → BrandUsed to create client brand records (company name, industry)
Client brand identityBrand → PSALogo URL, colors, tagline applied to PSA invoice headers and email templates

Syncing clients from PSA:

  1. Navigate to Brand LibrarySync ClientsSync from PSA
  2. Brand fetches the companies list from the PSA API
  3. A brand record is created for any company that doesn't have one yet (in Draft state)

Propagating brand to PSA:

  1. Open a brand → Propagate to Stack
  2. Check PSA in the product list
  3. Click Propagate
  4. PSA updates invoice templates and email footers within 30 seconds

What breaks if misconfigured: If the integration key between Brand and PSA is invalid or expired, propagation to PSA fails silently. The PSA will continue using the previously propagated brand values. Check the propagation status panel for "Failed — PSA" errors.


CRM

Type: Pull (client list sync) + Push (brand propagation)

Data FlowDirectionDescription
Contact companies listCRM → BrandUsed to create client brand records
Client brand identityBrand → CRMApplied to branded email headers in contact communications

Setup: Same as PSA sync — use Sync ClientsSync from CRM to pull contacts with company names.


Books

Type: Push (brand propagation)

Data FlowDirectionDescription
Logo, colors, taglineBrand → BooksApplied to invoice PDF headers/footers and statement documents

Propagation result: All Books PDFs (invoices, statements, quotes) render with the brand logo, primary color on the header bar, and tagline in the footer.

Configuration: No special setup — propagation reaches Books automatically when the Books integration key is valid.


Portal

Type: Push (brand propagation)

Data FlowDirectionDescription
Primary color, secondary color, logo, faviconBrand → PortalPortal theme (sidebar color, button color, top-bar logo, browser tab favicon)
Client brand (per-client)Brand → PortalClients see their own company brand when they log in to Portal

Propagation result: After propagating a brand to Portal, the Portal UI switches to the new colors and logo immediately on next page load (5-minute cache).

Client brands: Each client's Portal session applies their client brand automatically — no per-client propagation needed. Portal calls the Brand API's GET /api/brand/client/{clientId} endpoint on session load.


Relay

Type: Push (brand propagation)

Data FlowDirectionDescription
Email header HTMLBrand → RelayPre-designed HTML header with logo injected into outgoing Relay emails
Email footer HTMLBrand → RelayFooter with logo, address, and unsubscribe link

Setup: After propagating to Relay, the email header and footer are available in Relay's template settings. Relay templates that include {{brand_header}} and {{brand_footer}} placeholders will automatically use them.

Configuration note: Relay email headers reference logo assets via HTTPS URL. If the logo URL changes (e.g., you upload a new logo), re-propagate to Relay to update the header HTML with the new URL.


The One Bus

Type: Event-driven (emit and receive)

EventDirectionWhen
brand.updatedBrand → BusWhen a brand is updated and propagation is triggered
brand.createdBrand → BusWhen a new brand is finalized (wizard complete or manual creation)
org.createdMission → BrandTriggers auto-provisioning of website + landing pages for new Mission orgs

Consumer products: PSA, CRM, Books, Portal, Relay, Defend, RMM, Voice, AI Studio, Projects, Collective, Legal, People, AMS, Mission all subscribe to brand.updated events and refresh their cached brand values.


Cloudflare

Type: Infrastructure (domain management)

FunctionDescription
DNS CNAME provisioningWhen a custom domain is added, Brand creates a CNAME in Cloudflare pointing to the website
SSL certificateCloudflare Universal SSL is provisioned automatically
CDNPublished websites and landing pages are served via Cloudflare's CDN
Cache rulesPublished content is cached at the edge; publishing triggers a cache purge

Configuration: No user-facing configuration needed. Cloudflare credentials are configured at the platform level.


Azure Blob Storage

Type: Infrastructure (asset and page hosting)

FunctionDescription
Logo and media storageAll uploaded brand assets (logos, images, collateral) are stored in Azure Blob Storage
Published website hostingWhen a website is published, its HTML/CSS/JS is uploaded to a Blob Storage static site container
Published landing page hostingSame as websites
Collateral documentsGenerated PDFs, presentation HTML, and social kit images are stored in Blob Storage

Asset URLs follow the pattern: https://{account}.blob.core.windows.net/brand/{tenant_id}/{asset_name}


Anthropic Claude (AI)

Type: Outbound API calls

FeatureModel UsedPurpose
Brand Wizard logo generationClaude SonnetGenerate 20 SVG logo concepts
Logo refinementClaude SonnetIterative logo refinement from text instructions
Landing page AI generationClaude SonnetGenerate page copy from topic/audience/offer
Landing page AI rewriteClaude SonnetRewrite specific sections
Collateral generationClaude SonnetProposals, QBR decks, presentations, guidelines
Brand import analysisClaude VisionExtract colors, shapes, and style from images
Media auto-taggingClaude SonnetGenerate descriptive tags for uploaded images

All AI calls route through The One AI Gateway for quota enforcement and model routing.


Mission

Type: Event-triggered (receive Bus event)

Data FlowDirectionDescription
org.created eventMission → BrandTriggers auto-provisioning of 1 website + 10 landing pages for new Mission orgs

See Mission Entitlements for the full auto-provisioning flow.


Integration Keys

All product-to-product integrations use the X-Integration-Key header for authentication. Integration keys are configured in the platform's Key Vault and do not require end-user setup.

If you are experiencing propagation failures, confirm with your platform administrator that the Brand integration key is valid in the target product's configuration.