# Utiliser les données de réponse d'un webhook dans votre parcours

## Aperçu

Lorsque vous [mappez les valeurs d'une réponse de webhook](/fr/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables), Pushwoosh les stocke en tant que variables que vous pouvez utiliser plus tard dans le parcours, partout où vous utiliseriez autrement un [attribut d'événement](/fr/product/audience-data-and-segmentation/events/#2-set-attributes).

<Aside type="note">
Pour ajouter un élément **Webhook** et configurer le **Mappage de réponse**, consultez [Webhook](/fr/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables).
</Aside>

## Enregistrer une valeur de webhook en tant que Tag avec Mettre à jour le profil utilisateur

Un [**Webhook**](/fr/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables) peut renvoyer des données d'un système externe, telles qu'un ID utilisateur CRM ou un statut d'abonnement, que Pushwoosh ne stocke pas encore sur le profil utilisateur. [**Mettre à jour le profil utilisateur**](/fr/product/customer-journey/journey-elements/flow-controls/update-user-profile/#use-a-value-from-a-webhook-response) enregistre les valeurs mappées en tant que [Tags](/fr/product/audience-data-and-segmentation/user-data-tags/tags/) afin que vous puissiez les utiliser dans des [segments](/fr/product/audience-data-and-segmentation/segmentation/), du [contenu dynamique](/fr/product/personalization/dynamic-content/) et des étapes ultérieures du parcours.

### Exemple : enregistrer un ID utilisateur CRM en tant que Tag

Un nouvel utilisateur s'inscrit dans votre application, et le parcours crée un enregistrement correspondant dans votre CRM. L'enregistrement de l'ID utilisateur CRM renvoyé en tant que Tag vous permet de référencer ou de mettre à jour le même enregistrement CRM plus tard, par exemple depuis un autre parcours ou un appel Webhook de suivi, au lieu de créer un enregistrement en double chaque fois que l'utilisateur réintègre le parcours.

**Flux du parcours :** Entrée basée sur un déclencheur → Webhook → Mettre à jour le profil utilisateur → Sortie

1.  Créez un parcours avec une **Entrée basée sur un déclencheur** sur l'événement `SignUp`.
2.  Ajoutez un élément **Webhook** après l'étape d'entrée. Nommez-le (par exemple, `Create user in CRM`) et définissez l'URL de la requête sur le point de terminaison de création d'utilisateur de votre CRM.
3.  Dans **Mappage de réponse**, définissez **Chemin** sur le champ ID de la réponse (par exemple, `data.user.id`) et **Attribut** sur `crm_user_id`.

<img src="/journey-elements-webhook-response-data-1.webp" alt="Mappage de réponse de Webhook avec le chemin data.user.id et l'attribut crm_user_id" />

4.  Ajoutez un élément **Mettre à jour le profil utilisateur** après l'étape **Webhook**.

5.  Dans **Valeur de Tag dynamique**, cliquez sur **+ Valeur dynamique**. Dans **Tag**, sélectionnez le Tag qui stocke l'ID CRM (créez-le à l'avance si nécessaire). Dans **Événement**, sélectionnez l'étape webhook par le nom que vous lui avez donné (`Create user in CRM`). Dans **Valeur dynamique**, sélectionnez `crm_user_id`.
<img src="/journey-elements-webhook-response-data-2.webp" alt="Valeur de Tag dynamique avec Tag pour l'ID CRM, étape Événement Webhook, et Valeur dynamique crm_user_id" />
6.  Ajoutez **Sortie** à la fin de la branche.
<img src="/journey-elements-webhook-response-data-3.webp" alt="Branche du parcours se terminant par Sortie après l'étape Mettre à jour le profil utilisateur" />

<Aside type="caution">
Si la valeur du webhook est manquante pour un utilisateur (la réponse n'était pas au format JSON, le **Chemin** n'a pas été résolu ou l'appel a échoué), Pushwoosh ignore cette mise à jour de Tag. Le Tag conserve sa valeur précédente ou reste non défini, et le parcours continue sans erreur à cette étape. Exécutez [**Tester le webhook**](/fr/product/customer-journey/journey-elements/channels/webhook/#test-the-webhook) avant le lancement pour confirmer votre mappage. [En savoir plus](/fr/product/customer-journey/journey-elements/flow-controls/update-user-profile/#use-a-value-from-a-webhook-response).
</Aside> 

## Planifier un délai à partir d'une valeur de webhook avec Délai

Les dates de visite, les échéances de renouvellement et les fenêtres de livraison se trouvent souvent dans un système de réservation ou de facturation externe. Après qu'un [**Webhook**](/fr/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables) a mappé la date de la réponse de l'API, [**Délai**](/fr/product/customer-journey/journey-elements/flow-controls/time-delay/#use-a-date-from-a-webhook-response) peut mettre le parcours en pause jusqu'à ce moment, par exemple 2 jours avant un rendez-vous, afin que le message suivant soit envoyé à temps.

### Exemple : planifier un rappel à partir d'une date dans la réponse

Un utilisateur prend un rendez-vous dans votre application. Le parcours récupère la date de la visite depuis votre système de réservation et envoie un rappel push 2 jours avant la visite.


1.  Créez un parcours avec une **Entrée basée sur un déclencheur** sur l'événement `AppointmentBooked`.
2.  Ajoutez un élément **Webhook** après l'étape d'entrée. Nommez-le (par exemple, `Get appointment details`) et définissez l'URL de la requête sur l'API de votre système de réservation.
3.  Dans **Mappage de réponse**, définissez **Chemin** sur le champ de date dans la réponse (par exemple, `appointment.date`) et **Attribut** sur `visit_date`.
<img src="/journey-elements-webhook-response-data-4.webp" alt="Étape Webhook avec mappage de réponse pour appointment.date vers visit_date" />
4.  Ajoutez un élément **Délai** après l'étape **Webhook**. Sélectionnez **Basé sur les données utilisateur/événement**, définissez **Obtenir la date de** sur **Événement**, définissez **Événement** sur l'étape webhook par le nom que vous lui avez donné (`Get appointment details`), définissez **Valeur de l'événement** sur `visit_date`, et définissez le délai sur **Avant** `2` **Jours**.
<img src="/journey-elements-webhook-response-data-5.webp" alt="Délai configuré à partir de la date visit_date du webhook avec un décalage de 2 jours avant" />
5.  Si les utilisateurs peuvent réserver moins de 2 jours avant la visite, activez **Diviser en branches si la date est dans le passé ou si la date est vide** sur l'élément **Délai**. Cela crée deux branches, **Dans le passé** et **Dans le futur**. Voir [Diviser les branches lorsque la date est dans le passé ou vide](/fr/product/customer-journey/journey-elements/flow-controls/time-delay/#split-branches-when-the-date-is-in-the-past-or-empty).
6.  Ajoutez une étape **Push** avec votre message de rappel. Si la division est activée, ajoutez ce **Push** dans les deux branches : **Dans le passé** (envoyer immédiatement) et **Dans le futur** (après **Délai**).
7.  Ajoutez **Sortie** à la fin de chaque branche.
<img src="/journey-elements-webhook-response-data-6.webp" alt="Délai divisé en branches Dans le passé et Dans le futur, chacune avec des étapes Push et Sortie" />

<Aside type="caution">
Si la valeur mappée est manquante ou n'est pas une date valide, l'utilisateur quitte le parcours avec une erreur à cette étape. 

Si la visite a lieu dans moins de 2 jours, la cible **Avant** `2` **Jours** est déjà dans le passé lorsque l'utilisateur atteint l'étape **Délai**, et l'utilisateur quitte le parcours sans erreur et sans rappel, à moins que vous n'activiez **Diviser en branches si la date est dans le passé ou si la date est vide**. 

Contrairement à [**Mettre à jour le profil utilisateur**](/fr/product/customer-journey/journey-elements/flow-controls/update-user-profile/#use-a-value-from-a-webhook-response), qui laisse le Tag inchangé et continue, **Délai** arrête l'utilisateur lorsque la date est manquante, invalide ou dans le passé (sans division de branche).
Assurez-vous que votre webhook renvoie de manière fiable une date dans un [format pris en charge](/fr/product/customer-journey/journey-elements/flow-controls/time-delay/#delay-based-on-user-or-event-data). Exécutez [**Tester le webhook**](/fr/product/customer-journey/journey-elements/channels/webhook/#test-the-webhook) avant le lancement. [En savoir plus](/fr/product/customer-journey/journey-elements/flow-controls/time-delay/#use-a-date-from-a-webhook-response).
</Aside>

## Points à garder à l'esprit

*   **Syntaxe du chemin :** utilisez un chemin séparé par des points (par exemple, `data.user.id`). Les caractères génériques et les filtres ne sont pas pris en charge. Voir [Mappage de la réponse du webhook](/fr/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables) pour plus de détails.
*   **Taille de la réponse :** les réponses de plus de 64 Ko ne sont pas traitées pour le mappage.
*   **Test :** exécutez [**Tester le webhook**](/fr/product/customer-journey/journey-elements/channels/webhook/#test-the-webhook) dans l'élément **Webhook** avant d'utiliser les valeurs mappées dans un parcours en direct.