Branded reports
Plans: Growth · Pro · Agency (custom domain on Pro+)
Branded reports are shareable summary deliverables that wrap your enrichment work, Pulse scores, and signal health into something you can hand to a client or stakeholder. Built for agencies sending recurring updates and for in-house teams reporting up to leadership.
Three flavours of report exist in the dashboard — pick whichever matches your audience:
- Branded report — fully styled, wrapped in your org brand, shareable via public URL. Covered in this doc.
- Pulse report — automated weekly summary of Pulse signal health (sent by email if enabled). See Pulse dashboard.
- Custom-domain report — same as branded but served from your subdomain. Pro and Agency only. Setup section below.
Where they live
Sidebar → Reports.
The page has:
- A list of all reports you've generated, filterable by store.
- + New Report button to start a new one.
- Per-row actions: View, Share, Revoke share, Delete.
Generating one
- Click + New Report.
- Pick the scope:
- Store — pick one or many stores (multi-store tenants).
- Date range — last 7, 30, 90 days, or custom.
- Sections — Enrichment summary, Pulse scores, Signal health, Top performers, Bottom performers, FAQ stats.
- Pick the brand:
- Logo — pulled from your org branding by default. Override with a different logo URL per delivery if needed.
- Cover image / accent color — also from org branding.
- Click Generate.
Generation runs in the background — for a small store (< 200 products), under a minute; for a large agency summary (multi-store, 90-day range), a few minutes. The chip in the top bar tracks progress. When it finishes, the new entry appears in the list.
Per-platform notes
Branded summaries aggregate data across all your connected stores regardless of platform. The per-store section shows the platform inline (BC or Shopify) and tags any platform-specific limits (e.g. "Shopify pages — JSON-LD not yet supported" if relevant to that section).
There are no per-platform install steps for the report itself — generation runs entirely on Clione infrastructure.
What data is pulled per platform
BigCommerce stores contribute:
- Catalog counts: products, categories, pages.
- Enrichment counts: enriched products / categories / pages, last-enriched timestamps.
- Signal health: from the per-entity Verification view; includes per-signal pass rates broken down by meta-title, meta-description, JSON-LD, OG tags,
meta_keywords(BC-only),search_keywords(BC-only). - Pulse scans: optional, included if Pulse is active for the store.
- Reviews: aggregate count + rating distribution if BC Reviews is enabled.
Shopify stores contribute:
- Catalog counts: products, collections (manual + smart counted separately), pages.
- Enrichment counts.
- Signal health: per-entity Verification view; per-signal pass rates broken down by
title_tag,description_tag, theme-embedded JSON-LD, OG tags. The two BC-only fields (meta_keywords,search_keywords) are omitted from Shopify-only reports and shown as N/A in mixed reports. - Pulse scans: included if Pulse is active.
- Reviews: aggregate count + distribution if Shopify Reviews / Judge.me / Stamped is connected (BC and Shopify use the same review-connector aggregator).
Multi-store (mixed platform)
A report scoped to multiple stores with different platforms shows a per-platform breakdown in the cover-page summary, then per-store sections with the platform label. Comparisons within the same section (e.g. enrichment progress) are normalized — counts are absolute, percentages are computed per store, not pooled across platforms.
Sharing
Click Share on a row:
- A modal asks for an expiry: 24 hours, 7 days, 30 days, or no expiry.
- Clione generates a public URL (
https://app.clione.ai/r/<token>) and copies it to your clipboard. - Anyone with the URL can view it — no auth needed.
- The token is unguessable (256-bit), but it's not a password — if you need to revoke access, click Revoke share on the row.
The share URL renders the same view your client would see in the dashboard, minus the navigation chrome.
Custom domain (Pro and Agency)
By default, shared deliverables live at app.clione.ai/r/<token>. On Pro and Agency, you can serve them from your own subdomain (e.g. insights.example.com/r/<token>).
Setup
- Org → Brand tab.
- Find Custom domain.
- Enter your subdomain (e.g.
insights.example.com). - Clione shows the required CNAME record:
insights.example.com -> custom-reports.clione.ai. - Add the CNAME at your DNS provider (Cloudflare, Route53, etc.).
- Back in Clione, click Verify domain. Clione checks both the CNAME and the resolving IP (fallback path, so it works if CNAME flattening is enabled at your DNS).
- Once verified, all new share URLs use your custom domain. Old share URLs continue to work via the default domain.
Notes
- HTTPS is handled automatically — Clione provisions a Let's Encrypt certificate on first request.
- The custom domain only applies to shared deliverables, not to the dashboard or the API.
- If verification fails after the CNAME is in place, wait up to 30 minutes for DNS propagation and try again.
Filtering and store scoping (Pro and Agency)
If you're a multi-store tenant, the list view has a Store filter at the top. Pick a store to show only items scoped to that store.
When generating a new one, the store picker accepts multiple stores. The output has a per-store section for each, plus an aggregate cover page.
Recurring reports (Agency only)
Agency-plan tenants can schedule recurring reports. From the Reports list, click Schedule on any saved configuration:
- Frequency — weekly, monthly, quarterly.
- Day — for weekly, pick the weekday; for monthly, the day number.
- Recipients — comma-separated emails. They receive the share URL (no auth needed if the link is public, otherwise they need to be members of the tenant).
- Cover note — short paragraph that prepends each delivery.
Scheduled reports use whatever data is current at run time — they don't snapshot. If you want a fixed historical snapshot, generate and share manually.
Export formats
| Format | Available on | Notes |
|---|---|---|
| Web (HTML) | All plans | The default — shareable via URL. |
| Growth+ | Export from the report's three-dot menu. Renders a paginated A4 / Letter version. Takes ~30 sec for a single-store report. | |
| CSV (raw data) | Pro+ | Exports the per-entity rows backing the report sections. Useful for handing to a SEO consultant or analyst. |
Troubleshooting
Stuck "generating" for more than 10 minutes — One of the data fetches hung. The job is marked failed after 15 minutes. Refresh the page and try again. If it consistently times out, narrow the date range or pick fewer sections.
Share URL returns 404 — Either the share was revoked, or the token expired. Open it in the dashboard and re-share.
Custom domain verification fails with "CNAME OK but cert not issued" — Let's Encrypt rate-limits new certs per domain. Wait an hour and re-verify; the cert request retries automatically. If you've hit Let's Encrypt's weekly cap (50 certs per registered domain), wait until the cap resets (rolling 7-day window).
Logo looks blurry — Clione resizes the brand logo to fit. Upload a higher-resolution logo under Org → Brand (PNG or SVG, at least 512px wide on the long edge).
PDF export is missing sections from the web version — The PDF renderer skips interactive elements (sortable tables, expandable cards). The data is preserved but the layout is flatter. Use the web version for handovers; PDF for offline archives.
Recurring report didn't send — Two common causes: (1) recipient emails bounced (check the Org → Notifications log); (2) the schedule was paused because the previous run errored. Open the schedule and click Run now to retry. Persistent errors get the schedule auto-paused after 3 consecutive failures.
Custom domain works for new URLs but old share URLs still go to app.clione.ai — Existing share tokens keep their original host. New shares minted after the custom domain is verified use the new domain. To migrate old shares, revoke and re-share.
Template gallery
Built-in templates you can pick on the New Report form:
| Template | Best for | Sections included |
|---|---|---|
| Executive summary | C-suite update | Cover, KPIs, Trend, Top wins, Risks |
| Agency monthly | Agency client recap | Cover, Enrichment summary, Pulse scores, FAQ stats, Verification, Recommendations |
| SEO audit | SEO consultant handover | Cover, Signal health per page, JSON-LD coverage, Verification failures, Action items |
| AI readiness | Pre-sales pitch | Cover, Pulse score, AEO/GEO breakdown, Competitor comparison, ROI estimate |
| Custom | DIY | Pick any combination of sections |
The template only sets the section default — you can add/remove sections after selecting the template.
Embedding reports
If you'd rather embed the report inside an existing page (your own marketing site, a client portal) than share a standalone URL, use the embed snippet under the report's Share dialog:
<iframe
src="https://app.clione.ai/r/<token>?embed=1"
width="100%"
height="800"
style="border: 0;"
></iframe>
The ?embed=1 query string strips navigation chrome (just the report body). The frame is responsive — height auto-resizes via postMessage if you wire up the receiver. Embed snippets bypass the public host even for custom-domain customers; use the standalone URL if you need the custom host.
Whitelabeling on Pro / Agency
Pro and Agency plans get full whitelabel control over the report rendering:
- Logo — your org logo, set in Org → Brand.
- Accent color — applied to charts, headings, and CTA bars.
- Cover image — set per report or globally.
- Footer text — override the default "Powered by Clione" line with your own attribution.
- Domain — see "Custom domain" above.
Agency tenants additionally get sub-tenant whitelabel — each end-client sub-tenant has its own brand, so a single report generated for sub-tenant A doesn't accidentally show sub-tenant B's branding.
Data freshness
The data backing a report is fetched at generation time, not cached. If you generate a report on Monday and view it on Friday, the numbers reflect the Monday snapshot — they don't update.
To get fresh numbers, regenerate the report. The configuration (sections, store scope, date range) is preserved; only the data is refreshed.
If you want continuously-updated dashboards instead of snapshot reports, use the per-store Overview pages in the dashboard.