Skip to content

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

json5
{  
   "@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ètredescriptionexemple
signatureRequestIdIdentifiant du processus de signature créé précédemment3451
transition Type de transition souhaitée. Les valeurs possibles sont validate ou cancelvalidate
codeCode de validation reçu par SMS1234

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

json
{
  "@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.