Add Source
Mock onboarding — scenario: Shopify → Profile France
Mock-only: UX shell. Shopify Dev Dashboard V1 connects via the client credentials grant (Client ID + Client Secret → temporary 24h access token, PATCH-011), not user OAuth. No real Shopify API connection, no credentials submitted, no token exchanged or stored, no DB write, no job.
Shopify (Dev Dashboard) : identifiants write-only (Client ID + Client Secret → access token temporaire 24h, jamais relus). Scope V1 : read_orders.read_all_orders / read_customers hors V1. Appels réels désactivés par défaut. Détail et actions preview sur la page d'une source Shopify connectée.
Onboarding steps
- 1
Select profile todo
Choose the Profile (BusinessUnit) this source belongs to. Required.
- 2
Choose platform todo
Pick the source platform to connect.
- 3
Read prerequisites info
Review the platform prerequisites and risks.
- 4
Client credentials (placeholder) placeholder
Client ID + Client Secret placeholder — mock-only. A temporary access token is generated at runtime via the client credentials grant (PATCH-011). No credentials submitted, no token exchanged or stored in this mock.
Client credentials placeholder — Client ID + Client Secret; a temporary access token is generated at runtime (PATCH-011). NO real Shopify API connection, no credentials submitted, no token exchanged or stored.
- 5
Discover accounts placeholder
Discover external accounts (mock — no API).
Anti-leak: only external accounts within the authorized Profile may be discovered/linked.
- 6
Select accounts todo
Select external accounts; only accounts within the authorized Profile may be linked.
- 7
Configure source todo
Set source name and options.
- 8
Initial sync (placeholder) placeholder
Placeholder initial sync — no real job runs.
Placeholder only — NO real job runs.
- 9
Review source health info
Review status, freshness, mapping and data quality.
Select profile (required)
- Profile Franceavailable
- Profile Suisseavailable
- Profile Espagneavailable
Anti-leak: only authorized Profiles are listed. Add Source requires a Profile.
Choose platform
Shopify P0 active
Capabilities: business_revenue, orders, refunds, source_health, data_freshness
- Connection via client credentials grant — client_id + client_secret → temporary 24h access token (PATCH-011)
- Durable secret = Client ID + Client Secret; access token temporary (not a permanent token)
- No Shopify user OAuth / install flow V1
- api_version_target provisional 2026-04
- 2026-07 monitored only — not a stable target
- REST legacy not recommended (GraphQL preferred)
- read_orders only; read_all_orders out of V1; read_customers forbidden; PII Level 2 forbidden
- Gift cards / inventory transfers out of V1
Risks: protected_customer_data, rest_legacy_deprecated, api_version_change, oauth_token_expiry
Google Analytics 4 P0 active
Capabilities: sessions, source_health, data_freshness
- GA4 purchaseRevenue is indicative, never business revenue
- Freshness 24-48h; possible sampling/thresholding
Risks: ga4_sampling, ga4_freshness
Google Ads P0 active
Capabilities: ad_spend, campaign_spend, platform_conversions, platform_conversion_value, source_health, data_freshness
- Platform conversions never equal Shopify orders
- Conversion value never revenue_business
- cost in micros — convert carefully
Risks: platform_conversions_not_orders, conversion_value_not_revenue
Meta Ads P0 active
Capabilities: ad_spend, campaign_spend, platform_conversions, platform_conversion_value, source_health, data_freshness
- Platform attributed value never revenue_business
- Paid (ads) vs organic clearly distinguished
- action_type to fix before trusting conversions
Risks: meta_app_review, meta_business_verification, conversion_value_not_revenue
TikTok Ads P2 blockednot widget eligible
Capabilities: field_mapping_check, source_health
- Mapping unconfirmed — no widget-eligible metrics V1
- Disabled until field_mapping_check validated (DEC-06)
Risks: tiktok_mapping_unconfirmed
TikTok Organic P2 plannednot widget eligible
Capabilities: source_health
- No content posting V1
- Limited analytics (confirmed counters only)
Prerequisites — Shopify
| Prerequisite | Required | Status |
|---|---|---|
| Shopify store An accessible Shopify store (owned by your org for client credentials). | Yes | not_checked (mock) |
| read_orders scope Read orders only (read_all_orders is out of V1). | Yes | not_checked (mock) |
| Client ID + Client Secret Dev Dashboard app credentials; exchanged for a temporary access token via the client credentials grant (PATCH-011). No permanent token, no user OAuth in V1. | Yes | not_checked (mock) |
Source health (post-connection review preview)
Status: warningschema_changed
- schema_changed — Schema changed — review required.
Data quality (preview)
- WARNINGschema_changed — Schema changed — review required.
Recommended actions (preview): Run field mapping check (preview)
Actions (preview only)
- allowedPreview: "Reconnect" on "Shopify France" — Re-run authorization to restore the connection. (no execution).
- allowedPreview: "Disable source" on "Shopify France" — Disable the source (data frozen, no hard delete in V1). (no execution).
- allowedPreview: "Manual sync" on "Shopify France" — Trigger a one-off sync (preview only — no real job). (no execution).
- allowedPreview: "Retry failed sync" on "Shopify France" — Retry the last failed/partial sync (preview only). (no execution).
- allowedPreview: "Refresh metadata" on "Shopify France" — Refresh source metadata/structure (preview only). (no execution).
- allowedPreview: "Field mapping check" on "Shopify France" — Review/validate field mapping (lifts unconfirmed). (no execution).
- allowedPreview: "Acknowledge schema change" on "Shopify France" — Acknowledge a schema_changed warning. (no execution).
- allowedPreview: "Open sync history" on "Shopify France" — View the sync history for this source. (no execution).
- allowedPreview: "Open data quality" on "Shopify France" — Open the data quality view for this source's scope. (no execution).