Reporting
Intermediate 13 min read Reporting

Report Delivery Channels

Getting the number to the right eyeball at the right time

Reports reach audiences through email subscriptions, portals, embedded surfaces, scheduled exports, and push/alert hooks. Match the channel to the cadence and the audience.

deliverysubscriptionsemailportalsembeddedschedules
Prerequisites: Paginated Reports
Before we start

What you will learn

  • Match channels to audience and cadence
  • Design subscription basics and schedules
  • Choose embedded vs portal vs email delivery
Introduction

What is this?

Delivery channels move reports from the BI platform to users: scheduled email subscriptions, shared portals/workspaces, embedded analytics inside other apps, exports to storage, and event-driven push/alerts. The decision follows the audience's rhythm: operations want push at a cadence; decision-makers want pull in context; customers want embedded in the product.

Motivation

Why do you need it?

  • A great report nobody receives is an artifact, not analytics.
  • Channel mismatch is a top adoption killer (email flood or portal graveyard).
  • Automated delivery replaces the 'can you send me the export' hobby.
  • Choosing embedded vs portal changes architecture, not just config.
Think about it

Mental model

Imagine

Mail, the newsstand, and in-app notifications

Think of

Report channels

Mail (subscriptions) reaches desks on a schedule; the newsstand (portal) is pull-in-context; in-app notifications (embeds/alerts) arrive inside whatever tool the person is already working in. You wouldn't mail the newsstand daily; you choose per audience.

Mechanics

How it works

  • Subscriptions: schedule-boundened run + delivery to email/print/archive.
  • Portals: shared workspaces are pull tokens where the freshest version lives.
  • Embeds: BI render inside SaaS apps (iframe/SSO) for in-context analytics.
  • Exports/schedules: push to storage/object store for downstream ETL/archival.
  • Alerts: threshold-based push to chat/email/API when conditions change.

Audience and cadence pick the channel.

Audience
Cadence
Channel
Render
Receive
Hands-on

Examples

A channel map for one report family

A channel map for one report family
REPORT: Revenue position, weekly
Execs : email subscription (Mon 07:00, PDF)
Finance team : shared portal (always-latest web view)
Product app : embedded tile inside the partner dashboard
Data team : export to object store (nightly parquet)
Alert hook : chat push when YTD gap > 5%
One dataset; five channels chosen by ear to audience.

Each audience gets the channel that matches its rhythm — push where waiting matters, pull where context rules.

Real world

In production

  • Ops report subscriptions email exact exports each shift; portal keeps the live version.
  • A SaaS product embeds the customer's usage analytics in-app (SSO-scoped).
  • Nightly scheduled exports feed a downstream partner ETL via object storage.
Guidelines

Best practices

  • Right-size the channel: don't email if a portal does the job.
  • Gate subscriptions to authorized audiences; audit them.
  • Embed through the platform's SSO/SDK, not a hardcoded key.
  • Monitor delivery (failures, stale schedules) as part of report ops.
Watch out

Common mistakes

  • Emailing every report to everyone (inbox noise + data sprawl).
  • A portal with no schedule or no promotion — nothing is ever read.
  • Unembedded analytics: product teams copy numbers into the app instead.
  • Deliveries failing silently — no observer and no retry.
When things break

Debugging tips

  • 'My report didn't arrive' → check subscription schedule, owner, and platform delivery log.
  • Portal stale → the underlying model didn't refresh; verify the schedule chain.
  • Embed slow → verify SSO/back end query path, not the embed SDK.
Interviews

Interview checkpoint

Test yourself

Quick quiz

0/2
1

Which channel suits an exec who needs Monday's number pushed to email?

2

Embedded analytics are best done with a hardcoded API key in the client.

Go deeper

Official documentation