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. 1

    Select profile todo

    Choose the Profile (BusinessUnit) this source belongs to. Required.

  2. 2

    Choose platform todo

    Pick the source platform to connect.

  3. 3

    Read prerequisites info

    Review the platform prerequisites and risks.

  4. 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. 5

    Discover accounts placeholder

    Discover external accounts (mock — no API).

    Anti-leak: only external accounts within the authorized Profile may be discovered/linked.

  6. 6

    Select accounts todo

    Select external accounts; only accounts within the authorized Profile may be linked.

  7. 7

    Configure source todo

    Set source name and options.

  8. 8

    Initial sync (placeholder) placeholder

    Placeholder initial sync — no real job runs.

    Placeholder only — NO real job runs.

  9. 9

    Review source health info

    Review status, freshness, mapping and data quality.

Select profile (required)

  • Profile FranceEUR · Europe/Parisavailable
  • Profile SuisseCHF · Europe/Zurichavailable
  • Profile EspagneEUR · Europe/Madridavailable

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

PrerequisiteRequiredStatus
Shopify store
An accessible Shopify store (owned by your org for client credentials).
Yesnot_checked (mock)
read_orders scope
Read orders only (read_all_orders is out of V1).
Yesnot_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.
Yesnot_checked (mock)

Source health (post-connection review preview)

Status: warningschema_changed

  • schema_changedSchema changed — review required.

Data quality (preview)

  • WARNINGschema_changedSchema 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).

Guardrails (V1):

  • Shopify Dev Dashboard V1 connects via client credentials grant (client_id+client_secret → temporary 24h token), not user OAuth (PATCH-011)
  • Durable secret = Client ID + Client Secret; temporary access token never durable
  • No Shopify user OAuth V1 / no OAuth install flow
  • No real OAuth
  • No real API
  • No token storage
  • No secret exposure
  • No DB write
  • No real job
  • No hard delete (disable only)
  • No TikTok Ads activation
  • No Campaign MER
  • No multi-touch attribution
  • No FX conversion
  • Profile selection required
  • ExternalAccount anti-leak (authorized Profile only)
  • SourceConnection scoped to BusinessUnit/Profile
  • Actions are preview-only (no mutation)