# Créer et mettre à jour

Ces points de terminaison créent et modifient la définition du parcours : son titre, ses paramètres et les points sur le canevas. Ils ne démarrent pas le parcours. Utilisez [Cycle de vie](/fr/developer/api-reference/customer-journey-api/lifecycle/) pour cela.

Les deux acceptent et retournent l'[objet de parcours](/fr/developer/api-reference/customer-journey-api/journey-object/).

<Aside type="tip">
Écrire un graphique de parcours complet en JSON est difficile. Chaque point a ses propres champs de canal et conditions ([Référence des points](/fr/developer/api-reference/customer-journey-api/point-reference/)). Le flux de travail le plus fiable consiste à construire le parcours une fois dans le [constructeur de Customer Journey](/fr/product/customer-journey/pushwoosh-journey-overview/), à le relire à partir d'une réponse de création/mise à jour, puis à utiliser ces points de terminaison pour le cloner ou l'ajuster par programmation.
</Aside>

## Créer

`POST` `https://journey.pushwoosh.com/api/v3/journeygateway`

Crée un nouveau parcours à l'état `STATUS_DRAFT`.

### Requête

| Champ | Requis | Type | Description |
|---|---|---|---|
| `title` | Oui | string | Nom du parcours. |
| `params` | Oui | [`JourneyParams`](/fr/developer/api-reference/customer-journey-api/journey-object/#journeyparams) | Configuration à l'échelle du parcours. `params.application_code` est requis. |
| `points` | Non | tableau de [`Point`](/fr/developer/api-reference/customer-journey-api/journey-object/#point) | Éléments du parcours sur le canevas et leurs connexions. |
| `comments` | Non | tableau de [`JourneyComment`](/fr/developer/api-reference/customer-journey-api/journey-object/#journeycomment) | Commentaires sur le canevas. |

##### Exemple de requête
```bash title="Créer un parcours"
curl -X POST https://journey.pushwoosh.com/api/v3/journeygateway \
  -H "Authorization: Api YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Série de bienvenue",
    "params": { "application_code": "XXXXX-XXXXX" },
    "points": [],
    "comments": []
  }'
```

### Réponse

Retourne le nouvel [objet de parcours](/fr/developer/api-reference/customer-journey-api/journey-object/). Lisez l'UUID du parcours depuis `info.uuid` et utilisez-le pour les appels de mise à jour et de cycle de vie ultérieurs.
##### Exemple de réponse
```json
{
  "info": {
    "uuid": "11111111-2222-3333-4444-555555555555",
    "title": "Série de bienvenue",
    "status": "STATUS_DRAFT",
    "params": { "application_code": "XXXXX-XXXXX" }
  },
  "points": [],
  "comments": []
}
```

## Exemple de parcours complet

Un corps de requête `Create` complet pour un petit flux de bienvenue. Le graphique est :

```
Démarrer par segment ──default──▶ Envoyer un push ──default──▶ Attendre 1 jour ──default──▶ Séparateur booléen ──output1──▶ Envoyer un e-mail ──default──▶ Sortie
                                                                                                      └──default───────────────────────────▶ Sortie
```

Les points sont reliés entre eux via le `info.next_point_uuid` de chaque sortie. Notez les [clés de sortie](/fr/developer/api-reference/customer-journey-api/journey-object/#output-keys) : chaque point utilise `default`, sauf le séparateur booléen, qui ajoute `output1` pour la branche de condition correspondante (`default` est sa solution de repli). Le point de sortie n'a pas de sorties.

```json
{
  "title": "Série de bienvenue",
  "params": {
    "application_code": "XXXXX-XXXXX",
    "user_id_track_change_policy": "TRACK"
  },
  "points": [
    {
      "uuid": "11111111-1111-1111-1111-111111111111",
      "title": "Nouvelles inscriptions",
      "point_type": "POINT_TYPE_START_BY_SEGMENT",
      "position": { "x": 80, "y": 200 },
      "outputs": [
        { "identity": { "key": "default", "order": 0 },
          "info": { "title": "", "next_point_uuid": "22222222-2222-2222-2222-222222222222" } }
      ],
      "point_data": {
        "start_by_segment": {
          "application_code": "XXXXX-XXXXX",
          "filter_code": "AAAAA-BBBBB"
        }
      }
    },
    {
      "uuid": "22222222-2222-2222-2222-222222222222",
      "title": "Push de bienvenue",
      "point_type": "POINT_TYPE_SEND_PUSH",
      "position": { "x": 340, "y": 200 },
      "outputs": [
        { "identity": { "key": "default", "order": 0 },
          "info": { "title": "", "next_point_uuid": "33333333-3333-3333-3333-333333333333" } }
      ],
      "point_data": {
        "send_push": {
          "application_code": "XXXXX-XXXXX",
          "title": "Bienvenue !",
          "content": "Merci de nous avoir rejoints — voici comment commencer."
        }
      }
    },
    {
      "uuid": "33333333-3333-3333-3333-333333333333",
      "title": "Attendre 1 jour",
      "point_type": "POINT_TYPE_WAIT",
      "position": { "x": 600, "y": 200 },
      "outputs": [
        { "identity": { "key": "default", "order": 0 },
          "info": { "title": "", "next_point_uuid": "44444444-4444-4444-4444-444444444444" } }
      ],
      "point_data": {
        "delay": { "sec": 86400 }
      }
    },
    {
      "uuid": "44444444-4444-4444-4444-444444444444",
      "title": "Push ouvert ?",
      "point_type": "POINT_TYPE_BOOLEAN_SPLITTER",
      "position": { "x": 860, "y": 200 },
      "outputs": [
        { "identity": { "key": "output1", "order": 1 },
          "info": { "title": "Correspondant", "next_point_uuid": "55555555-5555-5555-5555-555555555555" } },
        { "identity": { "key": "default", "order": 0 },
          "info": { "title": "Tous les autres", "next_point_uuid": "66666666-6666-6666-6666-666666666666" } }
      ],
      "point_data": {
        "boolean_splitter": {
          "application_code": "XXXXX-XXXXX",
          "split_strategy": "SPLIT_FILTER",
          "load_policy": "ALL",
          "filter_code": "CCCCC-DDDDD"
        }
      }
    },
    {
      "uuid": "55555555-5555-5555-5555-555555555555",
      "title": "E-mail de suivi",
      "point_type": "POINT_TYPE_SEND_EMAIL",
      "position": { "x": 1120, "y": 120 },
      "outputs": [
        { "identity": { "key": "default", "order": 0 },
          "info": { "title": "", "next_point_uuid": "66666666-6666-6666-6666-666666666666" } }
      ],
      "point_data": {
        "send_email": {
          "application_code": "XXXXX-XXXXX",
          "preset_code": "12345-67890"
        }
      }
    },
    {
      "uuid": "66666666-6666-6666-6666-666666666666",
      "title": "Sortie",
      "point_type": "POINT_TYPE_EXIT",
      "position": { "x": 1380, "y": 200 },
      "outputs": [],
      "point_data": {
        "terminator": {}
      }
    }
  ],
  "comments": []
}
```

## Mettre à jour

`PUT` `https://journey.pushwoosh.com/api/v3/journeygateway/{uuid}`

Remplace la définition d'un parcours existant. Envoyez la définition **complète**. Les points et commentaires que vous soumettez remplacent les actuels.

### Paramètres de chemin

| Nom | Type | Description |
|---|---|---|
| `uuid` | string | [ID de parcours](/fr/developer/api-reference/api-identifiers/#journey-id) à mettre à jour. |

### Requête

| Champ | Type | Description |
|---|---|---|
| `title` | string | Nouveau nom de parcours. |
| `params` | [`JourneyParams`](/fr/developer/api-reference/customer-journey-api/journey-object/#journeyparams) | Nouvelle configuration à l'échelle du parcours. |
| `points` | tableau de [`Point`](/fr/developer/api-reference/customer-journey-api/journey-object/#point) | Nouvel ensemble complet de points. |
| `comments` | tableau de [`JourneyComment`](/fr/developer/api-reference/customer-journey-api/journey-object/#journeycomment) | Nouvel ensemble complet de commentaires. |
| `autosave` | bool | Lorsque `true`, le changement est traité comme une sauvegarde automatique de l'éditeur. La valeur par défaut est `false`. |

##### Exemple de requête 

```bash title="Renommer et reconfigurer un parcours"
curl -X PUT https://journey.pushwoosh.com/api/v3/journeygateway/11111111-2222-3333-4444-555555555555 \
  -H "Authorization: Api YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Série de bienvenue v2",
    "params": { "application_code": "XXXXX-XXXXX" },
    "points": [],
    "comments": []
  }'
```

### Réponse

Retourne l'[objet de parcours](/fr/developer/api-reference/customer-journey-api/journey-object/) mis à jour.

## Mettre à jour et reprendre

`POST` `https://journey.pushwoosh.com/api/v3/journeygateway/{uuid}/resume`

Applique des modifications à un parcours et le reprend en un seul appel. C'est l'équivalent d'une [Mise à jour](#mettre-à-jour) suivie d'un [Démarrage](/fr/developer/api-reference/customer-journey-api/lifecycle/) du cycle de vie. Le corps de la requête correspond à [Mettre à jour](#mettre-à-jour). Utilisez ceci lorsque vous modifiez un parcours en pause que vous souhaitez remettre à l'état `STATUS_RUNNING`.

## Renommer

`POST` `https://journey.pushwoosh.com/api/v3/journeygateway/{uuid}/rename`

Modifie uniquement le titre du parcours, sans toucher à ses points ou paramètres.

| Champ | Requis | Type | Description |
|---|---|---|---|
| `title` | Oui | string | Nouveau nom de parcours. |

##### Exemple de requête

```bash title="Renommer un parcours"
curl -X POST https://journey.pushwoosh.com/api/v3/journeygateway/11111111-2222-3333-4444-555555555555/rename \
  -H "Authorization: Api YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Série de bienvenue (T3)" }'
```

## Articles connexes

<CardGrid>
  <LinkCard title="Objet de parcours" href="/developer/api-reference/customer-journey-api/journey-object/" />
  <LinkCard title="Cycle de vie" href="/developer/api-reference/customer-journey-api/lifecycle/" />
  <LinkCard title="Démarrer par API" href="/developer/api-reference/customer-journey-api/start-by-api/" />
</CardGrid>