đ€ SAP Customer Data Cloud (Gigya) â CIAM, Consent & Profiles
Guide IDEO-Lab pour comprendre et intégrer SAP Customer Data Cloud (ex-Gigya) : gestion des comptes, consentement RGPD/CCPA, préférences, social login et synchronisation avec ton SI (SAP & non-SAP).
Vue dâensemble SAP CDC (Gigya)
Positionnement CIAM, concepts fondamentaux : identities, consent, preferences, sites.
CIAM Profiles ConsentArchitecture & Data Model
Sites, schemas de comptes, champs standard/custom, data centers, multi-marque.
Schema Multi-tenantRegistration & Login Flows
Form-based, social login, passwordless, progressive profiling.
Login SocialConsent & Privacy
Notices, policies, purposes, audit trails RGPD/CCPA.
GDPR CCPASDK & REST API
Web SDK, mobile SDK, REST, server-side flows (backend, ETL).
JS SDK RESTUX : Screensets & Forms
Screensets Gigya, formulaires custom, A/B testing, multilingue.
Screensets UX2.3 Sync & CDC
Synchronisation avec SAP, CRM, DWH, ETL, events (webhooks).
CDC ETLSécurité & Compliance
Policies, encryption at rest, auth admin, sécurisation API.
Security AuditEnvironnements & Tenants
Dev / stage / prod, sites par marque, région (EU/US).
Tenants RegionsCI/CD & Automation
Export/import de config, scripts, intégration dans les pipelines.
Automation DevOpsCheat-sheet SAP CDC
Endpoints et opérations clés à mémoriser.
API MemoQuâest-ce que SAP CDC (Gigya) ?
SAP Customer Data Cloud (ex-Gigya) est une solution de Customer Identity & Access Management (CIAM) orientée B2C :
- Gestion des comptes clients (registration, login, profil).
- Consentement et préférences (RGPD/CCPA).
- Social login (Google, Facebook, etc.).
- Synchronisation vers SAP & autres systĂšmes (CRM, DWH, CDPâŠ).
RĂŽle dans lâarchitecture globale
On positionne SAP CDC comme une brique frontale âidentity + consentâ, devant les apps web/mobile :
- Point central pour toute création / mise à jour de profil.
- Source de vérité des consentements marketing & légaux.
- Hub de synchronisation vers le reste du SI (SAP, CRM, DWH).
ĂlĂ©ments de base
| Concept | Description |
|---|---|
| Sites | Unités logiques (marques, pays, env) avec config dédiée. |
| Identities | Profils utilisateurs, champs standard + custom. |
| Screensets | UI prĂȘte Ă lâemploi pour login/registration/profile. |
| Consent | Schemas de consentement, versions, historisation. |
| Webhooks / ETL | Hooks temps réel & jobs batch pour sync. |
Vision âCustomer 360â
LâidĂ©e : centraliser tout ce qui touche Ă lâidentitĂ© et au consentement, puis exposer :
- Un profil unique par individu, partagé entre marques/canaux.
- Des API standard pour lecture / écriture de ces données.
- Des flux sortants pour alimenter le marketing, lâanalytics, etc.
Cas dâusage typiques
- Portail B2C / B2B2C unifié pour plusieurs marques.
- Programme de fidélité avec profil global client.
- Centre de préférences marketing (opt-in / opt-out, canaux, thÚmes).
- Self-service privacy (export / suppression des données).
Exemple : groupe multi-marques
- Un compte Gigya pour un individu.
- Plusieurs âidentitiesâ / liens avec les plateformes internes.
- Consentement consolidé sur tous les sites du groupe.
Vue DevOps / intégration SI
- Exposition de REST API pour les backend (Django, Java, NodeâŠ).
- Connecteurs / Jobs pour SAP (Marketing Cloud, Commerce, etc.).
- Webhooks pour rĂ©agir aux Ă©vĂšnements (registration, profile updateâŠ).
RÎles & responsabilités
- Ăquipe digital : UX des formulaires & parcours.
- Ăquipe IAM / sĂ©curitĂ© : policies dâaccĂšs, tokens, scopes.
- Ăquipe data/CRM : mapping & sync vers DWH/CRM.
Compte & profil
Un âidentityâ dans SAP CDC :
- Attributs standard : email, name, addresses, lastLogin, etc.
- Attributs custom : champs métier (segment, ID interne, etc.).
- Structures imbriquĂ©es (adresses, intĂ©rĂȘts, devicesâŠ).
{
"UID": "123456789",
"email": "user@example.com",
"profile": {
"firstName": "Alex",
"lastName": "Martin",
"birthDay": 12
},
"data": {
"internalCustomerId": "C-001234",
"segment": "gold"
},
"subscriptions": {
"newsletter": { "isActive": true, "lastUpdate": "..." }
}
}
Custom schema
PossibilitĂ© dâajouter des champs business (custom data) :
- via lâadmin SAP CDC.
- ou via des endpoints de configuration / management.
Idéal pour aligner le profil CDC sur ton modÚle CRM / DWH, sans dupliquer la logique dans les apps.
Sites & marques
- Un site = configuration spĂ©cifique (domaines, policies, formsâŠ).
- On peut avoir un site par marque, par pays, par canalâŠ
- Les identitĂ©s peuvent ĂȘtre partagĂ©es entre sites dâune mĂȘme account CDC.
Régions & data centers
- Instances EU / US / autres, selon contraintes de localisation.
- Important pour RGPD / contrats (hébergement des données).
- DevOps : aligner les apps (DNS, latence) sur les régions CDC.
Flux âfront â CDC â SIâ
Client (web / mobile)
â (JS SDK, OIDC, screenset)
âŒ
SAP CDC (Gigya)
â (events / webhooks / ETL)
âŒ
Backends internes (Django, SAP, CRM, DWH...)
Flux âback â CDCâ
Les systÚmes back peuvent aussi créer / mettre à jour des profils :
- Import batch (fichiers, jobs ETL).
- API server-to-server (REST) pour faire du âupsertâ dâidentitĂ©s.
- Process de merge / dédoublonnage alignés avec CDC.
Principe
Les screensets sont des formulaires prĂȘts Ă lâemploi (registration, login, forgot passwordâŠ) gĂ©rĂ©s cĂŽtĂ© SAP CDC :
- Rendering cÎté client via JS SDK.
- Personnalisation (CSS, champs, textes).
- Gestion des erreurs, validations, flows multi-étapes.
Intégration front simplifiée (JS)
<script type="text/javascript" src="https://cdns.gigya.com/js/gigya.js?apiKey=YOUR_API_KEY"></script>
<div id="gigya-login"></div>
<script>
gigya.accounts.showScreenSet({
screenSet: "Default-RegistrationLogin",
containerID: "gigya-login"
});
</script>
Idéal pour aller vite en POC, ou comme base avant de migrer vers du full custom.
Social login
- Connecteurs intégrés pour les principaux réseaux.
- Récupération des données de profil dans le compte CDC.
- PossibilitĂ© de linker plusieurs identities sociales Ă un mĂȘme compte.
Aspects DevOps
- Gestion des clés OAuth dans SAP CDC (et non dans les apps).
- Simplification de la config sur les frontends.
- Monitoring du taux de succĂšs social vs classique.
Progressive profiling
On ne demande pas tout Ă lâinscription : on enrichit le profil dans le temps.
- Phase 1 : email + consent obligatoire.
- Phase 2 : centres dâintĂ©rĂȘt, tĂ©lĂ©phone, adresse, etc.
- Phase 3 : données plus sensibles / business.
Implémentation
- Configs dâUI qui affichent certains champs selon le contexte.
- Rules / workflows déclenchés aprÚs login (prompts à afficher).
- Stockage centralisé des réponses dans les champs custom CDC.
Notions clés
- Consent : acceptation de conditions / privacy policy.
- Subscriptions : opt-in / opt-out pour des catégories marketing.
- Audit : horodatage, version des conditions, source du consentement.
Exemples dâobjets
"consents": {
"terms": {
"isConsentGranted": true,
"lastConsentModified": "2025-01-01T10:00:00Z",
"version": "v3"
},
"privacy": {
"isConsentGranted": true,
"clientIP": "10.0.0.5"
}
},
"subscriptions": {
"newsletter": { "isActive": true },
"sms": { "isActive": false }
}
JS SDK
gigya.accounts.getAccountInfo({
callback: function(res) {
if (res.errorCode === 0) {
console.log("UID", res.UID);
console.log("Email", res.profile.email);
}
}
});
UtilisĂ© cĂŽtĂ© navigateur pour rĂ©cupĂ©rer les infos du compte courant et adapter lâUX (header âBonjour <nom>â, etc.).
Single Sign-On (SSO) multi-sites
- Gestion du SSO entre plusieurs domaines / sites via CDC.
- Partage de session et dâĂ©tat de connexion.
REST API
POST https://accounts.<region>.gigya.com/accounts.getAccountInfo
Content-Type: application/json
{
"UID": "123456789",
"include": "profile,data,subscriptions",
"apiKey": "...",
"secret": "..."
}
Utilisation typique
- Backends qui ont besoin des infos profil / consent.
- Jobs de synchronisation vers CRM/DWH.
- Process métiers (fusion de comptes, corrections...).
Pattern Django (exemple pseudo-code)
def sync_gigya_user(uid: str):
payload = {"UID": uid, "include": "profile,data,consents"}
res = requests.post(GIGYA_ENDPOINT, json=payload, timeout=5)
res.raise_for_status()
gd = res.json()
# Mapper sur ton modĂšle interne
user, _ = Customer.objects.update_or_create(
external_uid=uid,
defaults={
"email": gd["profile"]["email"],
"first_name": gd["profile"]["firstName"],
"last_name": gd["profile"]["lastName"],
"segment": gd["data"].get("segment"),
}
)
return user
Points dâattention
- Timeouts & retries (API CDC).
- RĂ©silience cĂŽtĂ© jobs (files dâattente, retry DLQ).
- Audit de ce qui est écrit localement vs dans CDC.
Screensets vs UI custom
- Screensets : rapide, intégré, centralisé dans CDC.
- Custom UI : plus de liberté, logique cÎté app, mais plus de code.
Multi-langue
- Traductions et labels gérés dans SAP CDC.
- PossibilitĂ© de brancher sur ton moteur de traduction (IdĂ©o-Lab đ).
ĂvĂšnements temps rĂ©el
- Webhooks sur création / update / suppression de compte.
- Usage : push vers message bus (Kafka, SNS, etc.).
- Traçabilité : log des échecs / retards de traitement.
Batch & ETL
- Exports réguliers des profils / consentements.
- Ingestion dans DWH / Data Lake (Snowflake, BigQuery, etc.).
- Comparaison / réconciliation avec les systÚmes internes.
AccĂšs administrateur
- RBAC sur la console dâadmin CDC.
- ContrÎles sur qui peut gérer les schemas, sites, API keys.
- Intégration éventuelle avec SSO interne (IdP).
API keys & signatures
- ClĂ©s dâAPI front vs server-to-server sĂ©parĂ©es.
- Signatures / tokens pour sécuriser les appels backend.
- Journalisation des appels pour audits.
Dev / Stage / Prod
- Tenants ou sites distincts par environnement.
- ClĂ©s dâAPI diffĂ©rentes, endpoints diffĂ©rents.
- Jeux de données anonymisés en non-prod.
Stratégie multi-pays
- Tenants séparés si contraintes légales fortes.
- Sinon, un tenant avec plusieurs sites selon les marques/pays.
Automatisation de la config
- Scripts pour créer / mettre à jour schemas & sites.
- Export/import de config entre env (dev â stage â prod).
- Versionning dans Git pour la partie âinfra CDCâ.
Intégration dans les pipelines
- Ătapes CI qui valident la bonne synchro (healthcheck CDC).
- Jobs de migration de data alignĂ©s sur les releases dâapps.
Opérations courantes
# Créer / mettre à jour un compte
accounts.setAccountInfo
# Lire un compte
accounts.getAccountInfo
# Chercher des comptes
accounts.search
# Gérer consent & subscriptions
accounts.setSubscriptions
accounts.setPolicies
# Export / import
accounts.getSchema
identities.search / exports
Ă retenir pour lâarchitecture
- Centraliser le login & consent autour de CDC.
- Ăviter dâavoir plusieurs sources âprofil clientâ ailleurs.
- Standardiser les flux dâexport/sync vers ton DWH.
- Bien séparer env (dev/stage/prod) et tenants.
