Inputs and permission boundary
Inputs come from supported advertising, analytics, search, social, local-profile, and email connections. Each connection uses the scopes documented on its integration page. Selecting a provider during onboarding is not authorization; data requests start only after the provider connection succeeds.
- Provider account and asset identifiers
- Campaign and reporting dimensions exposed by the granted scopes
- Connection, token-expiry, sync-run, and error state
- User-selected reporting range and account context
Processing and normalization
Growomo requests provider data through connector-specific services, records sync progress, and maps available metrics into product views. Provider-native definitions remain authoritative. A click, conversion, lead, or cost value can differ between platforms because attribution and reporting rules differ.
- Preserve provider and account provenance
- Distinguish disconnected, pending, syncing, active, stale, and failed states
- Do not replace a failed sync with fabricated values
- Keep dashboard copy tied to the latest successful sync
Worked demo-data example
A demo workspace can show Meta Ads and Google Ads rows with fictional campaign names and values. Growomo groups those rows for comparison, marks them as demo data, and lets the user inspect how a decision workflow would consume the data. The example demonstrates product behavior, not customer performance.
Failure states and recovery
Expired credentials, insufficient scopes, provider throttling, unavailable accounts, or background-job errors can delay or stop a sync. The product should preserve the last successful timestamp, expose the error state, and provide reconnect or retry guidance without promising a fixed completion time.