Transférer un prospect
Lorsqu'un prospect existe au sein d'une chaîne de clubs, celui-ci est lié à son club d'origine. La documentation ci-après explique le process de migration de prospect permettant une mobilité contrôlée des prospects au sein d'une chaîne de clubs.
Retrouvez ce scénario dans notre collection Bruno
Gagnez du temps dans votre implémentation en observant l'enchaînement des appels et en récupérant les requêtes directement depuis Bruno.
Le principe de migration
Une fiche prospect étant la propriété d'un club A, si ce même prospect souhaite aller dans le club B il initiera un processus de migration. Du point de vu du prospect ce processus consiste à:
- Initier une demande de migration
- Recevoir un code de confirmation par SMS
- saisir le code de confirmation
Attention
Les en-tête réseau à utiliser lors de chaque appel varient, la règle à respecter étant d'utiliser les en-tête réseau de là où se situe le contact
- [Club de provenance] Identifiez le contact que vous allez vouloir migrer
- [Club de provenance] Initialisation de la migration
- [Club de provenance] Validation de la migration
- [Club de destination] Ce n'est qu'après validation, que vous pouvez utiliser les en-tête réseau du club de destination
Initier la migration
La migration de prospect passe donc par l'envoi d'un SMS au contact qui contient un code à utiliser à l'étape suivante.
Exemple
curl --request POST \
--url https://gateway.prod.gravitee.stadline.tech/{{env}}/{{clientToken}}/contact_migration_requests \
--header 'Authorization: Bearer {{jwtToken}}' \
--header 'X-Gravitee-Api-Key: {{apiKey}}' \
--header 'content-type: application/json' \
--header 'x-user-club-id: {{clubOneId}}' \ -- Club de provenance
--header 'x-user-network-node-id: {{clubOneNetworkNodeId}}' \ -- Club de provenance
--data '{
"contactId":"{{contactId}}", -- Identifiant du contact
"clubId":"{{clubTwoId}}" -- Club de destination
}'Réponse 201 Created
{
"@context":"\/clientToken\/contexts\/SignatureRequest",
v------ Identifiant de demande de migration ------v
"@id":"\/clientToken\/signature_requests\/455434",
"@type":"SignatureRequest",
// ...
}Terminer le processus de migration
Une fois le SMS reçu l'application souhaitant orchestrer la migration devra récolter le code en provenance du contact ciblé et terminer le processus de signature en validant ce code.
POST /{clientToken}/signature_requests/{signatureRequestId}/transitions
| paramètre | description | exemple |
|---|---|---|
signatureRequestId | Identifiant du processus de signature créé précédemment | 3451 |
transition | Type de transition souhaitée. Les valeurs possibles sont validate ou cancel | validate |
code | Code de validation reçu par SMS | 1234 |
Exemple
curl --request POST \
--url https://gateway.prod.gravitee.stadline.tech/{{env}}/{{clientToken}}/signature_requests/{{id}}/transitions \
--header 'Authorization: Bearer {{jwtToken}}' \
--header 'X-Gravitee-Api-Key: {{apiKey}}' \
--header 'content-type: application/json' \
--header 'x-user-club-id: {{clubOneId}}' \ -- Club de provenance
--header 'x-user-network-node-id: {{clubOneNetworkNodeId}}' \ -- Club de provenance
--data '{
"transition": "validate",
"code": "949875" -- Le code reçu par SMS
}'Réponse 201 Created
{
"@context": "/demoapi/contexts/SignatureRequest",
"@id": "/demoapi/signature_requests/23716",
"@type": "SignatureRequest",
"state": "validated",
// ...
"targetIds": [
"/demoapi/clubs/1357"
],
v------ Identifiant du contact créé dans son club de destination ------v
"resultTargetId": "/demoapi/contacts/2973829"
}Erreurs référencées
400 : Bad Request La ressource \"/{clientToken}/contacts/{id}\" n'existe pas.
Cela est en relation avec la notion de partage de données entre clubs configurée au sein d'une chaîne. Vous opérez actuellement pour un club qui n'a pas les droits nécessaires pour atteindre la fiche de contact à migrer.
Solution: Si vous êtes connecté en client_credentials et spécifiez les headers de noeud, opérez depuis un niveau supérieur au noeud du club.
400 : Bad Request api.error.contact.migration.club-not-valid
Le club cible n'est pas valie. Cela se produit lorsque l'on demande une migration vers le club actuel du contact.
Solution: Revoyez la cible.
400 : Bad Request api.error.contact.migration.contact-not-valid
Le contact n'est pas transférable. Cela se produit si le statut du contact n'est ni prospect, ni ancien client.
Solution: Revoyez le contact.