# बनाएं और अपडेट करें

ये एंडपॉइंट्स Journey की परिभाषा बनाते और संपादित करते हैं: इसका शीर्षक, सेटिंग्स, और कैनवास पर पॉइंट्स। वे Journey शुरू नहीं करते हैं। उसके लिए [लाइफसाइकिल](/hi/developer/api-reference/customer-journey-api/lifecycle/) का उपयोग करें।

दोनों [Journey ऑब्जेक्ट](/hi/developer/api-reference/customer-journey-api/journey-object/) को स्वीकार और वापस करते हैं।

<Aside type="tip">
JSON में एक पूरा Journey ग्राफ़ लिखना मुश्किल है। प्रत्येक पॉइंट के अपने चैनल फ़ील्ड और शर्तें होती हैं ([पॉइंट संदर्भ](/hi/developer/api-reference/customer-journey-api/point-reference/))। सबसे विश्वसनीय वर्कफ़्लो यह है कि Journey को एक बार [Customer Journey बिल्डर](/hi/product/customer-journey/pushwoosh-journey-overview/) में बनाएं, इसे क्रिएट/अपडेट प्रतिक्रिया से वापस पढ़ें, और फिर इन एंडपॉइंट्स का उपयोग करके इसे प्रोग्रामेटिक रूप से क्लोन या समायोजित करें।
</Aside>

## बनाएं

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

`STATUS_DRAFT` स्थिति में एक नई Journey बनाता है।

### अनुरोध

| फ़ील्ड | आवश्यक | प्रकार | विवरण |
|---|---|---|---|
| `title` | हाँ | string | Journey का नाम। |
| `params` | हाँ | [`JourneyParams`](/hi/developer/api-reference/customer-journey-api/journey-object/#journeyparams) | Journey-व्यापी कॉन्फ़िगरेशन। `params.application_code` आवश्यक है। |
| `points` | नहीं | [`Point`](/hi/developer/api-reference/customer-journey-api/journey-object/#point) का ऐरे | कैनवास पर Journey के तत्व और उनके कनेक्शन। |
| `comments` | नहीं | [`JourneyComment`](/hi/developer/api-reference/customer-journey-api/journey-object/#journeycomment) का ऐरे | कैनवास टिप्पणियाँ। |

##### अनुरोध का उदाहरण
```bash title="एक Journey बनाएं"
curl -X POST https://journey.pushwoosh.com/api/v3/journeygateway \
  -H "Authorization: Api YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Welcome series",
    "params": { "application_code": "XXXXX-XXXXX" },
    "points": [],
    "comments": []
  }'
```

### प्रतिक्रिया

नया [Journey ऑब्जेक्ट](/hi/developer/api-reference/customer-journey-api/journey-object/) लौटाता है। Journey का UUID `info.uuid` से पढ़ें और इसे बाद के अपडेट और लाइफसाइकिल कॉल्स के लिए उपयोग करें।
##### प्रतिक्रिया का उदाहरण
```json
{
  "info": {
    "uuid": "11111111-2222-3333-4444-555555555555",
    "title": "Welcome series",
    "status": "STATUS_DRAFT",
    "params": { "application_code": "XXXXX-XXXXX" }
  },
  "points": [],
  "comments": []
}
```

## पूरी Journey का उदाहरण

एक छोटे स्वागत प्रवाह के लिए एक पूर्ण `Create` बॉडी। ग्राफ़ है:

```
सेगमेंट द्वारा शुरू करें ──default──▶ पुश भेजें ──default──▶ 1 दिन प्रतीक्षा करें ──default──▶ बूलियन स्प्लिटर ──output1──▶ ईमेल भेजें ──default──▶ बाहर निकलें
                                                                                              └──default───────────────────────────▶ बाहर निकलें
```

पॉइंट्स प्रत्येक आउटपुट के `info.next_point_uuid` के माध्यम से एक साथ जुड़े होते हैं। [आउटपुट कीज़](/hi/developer/api-reference/customer-journey-api/journey-object/#output-keys) पर ध्यान दें: हर पॉइंट `default` का उपयोग करता है, बूलियन स्प्लिटर को छोड़कर, जो मेल खाने वाली स्थिति शाखा के लिए `output1` जोड़ता है (`default` इसका फ़ॉलबैक है)। एग्जिट पॉइंट में कोई आउटपुट नहीं होता है।

```json
{
  "title": "Welcome series",
  "params": {
    "application_code": "XXXXX-XXXXX",
    "user_id_track_change_policy": "TRACK"
  },
  "points": [
    {
      "uuid": "11111111-1111-1111-1111-111111111111",
      "title": "New signups",
      "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": "Welcome push",
      "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": "Welcome!",
          "content": "Thanks for joining — here's how to get started."
        }
      }
    },
    {
      "uuid": "33333333-3333-3333-3333-333333333333",
      "title": "Wait 1 day",
      "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": "Opened the push?",
      "point_type": "POINT_TYPE_BOOLEAN_SPLITTER",
      "position": { "x": 860, "y": 200 },
      "outputs": [
        { "identity": { "key": "output1", "order": 1 },
          "info": { "title": "Matched", "next_point_uuid": "55555555-5555-5555-5555-555555555555" } },
        { "identity": { "key": "default", "order": 0 },
          "info": { "title": "Everyone else", "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": "Follow-up email",
      "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": "Exit",
      "point_type": "POINT_TYPE_EXIT",
      "position": { "x": 1380, "y": 200 },
      "outputs": [],
      "point_data": {
        "terminator": {}
      }
    }
  ],
  "comments": []
}
```

## अपडेट करें

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

किसी मौजूदा Journey की परिभाषा को बदलता है। **पूरी** परिभाषा भेजें। आपके द्वारा सबमिट किए गए पॉइंट्स और टिप्पणियाँ मौजूदा को बदल देती हैं।

### पाथ पैरामीटर्स

| नाम | प्रकार | विवरण |
|---|---|---|
| `uuid` | string | अपडेट करने के लिए [Journey ID](/hi/developer/api-reference/api-identifiers/#journey-id)। |

### अनुरोध

| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| `title` | string | नया Journey नाम। |
| `params` | [`JourneyParams`](/hi/developer/api-reference/customer-journey-api/journey-object/#journeyparams) | नया Journey-व्यापी कॉन्फ़िगरेशन। |
| `points` | [`Point`](/hi/developer/api-reference/customer-journey-api/journey-object/#point) का ऐरे | पॉइंट्स का नया पूरा सेट। |
| `comments` | [`JourneyComment`](/hi/developer/api-reference/customer-journey-api/journey-object/#journeycomment) का ऐरे | टिप्पणियों का नया पूरा सेट। |
| `autosave` | bool | जब `true` होता है, तो परिवर्तन को एक संपादक ऑटोसेव के रूप में माना जाता है। डिफ़ॉल्ट रूप से `false` होता है। |

##### अनुरोध का उदाहरण 

```bash title="एक Journey का नाम बदलें और पुनः कॉन्फ़िगर करें"
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": "Welcome series v2",
    "params": { "application_code": "XXXXX-XXXXX" },
    "points": [],
    "comments": []
  }'
```

### प्रतिक्रिया

अपडेट किया गया [Journey ऑब्जेक्ट](/hi/developer/api-reference/customer-journey-api/journey-object/) लौटाता है।

## अपडेट करें और फिर से शुरू करें

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

एक ही कॉल में एक Journey में संपादन लागू करता है और उसे फिर से शुरू करता है। यह एक [अपडेट](#update) के बाद एक लाइफसाइकिल [स्टार्ट](/hi/developer/api-reference/customer-journey-api/lifecycle/) के बराबर है। अनुरोध बॉडी [अपडेट](#update) से मेल खाती है। इसका उपयोग तब करें जब आप एक रोकी गई Journey को संपादित कर रहे हों जिसे आप `STATUS_RUNNING` स्थिति में वापस लाना चाहते हैं।

## नाम बदलें

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

केवल Journey का शीर्षक बदलता है, इसके पॉइंट्स या सेटिंग्स को छुए बिना।

| फ़ील्ड | आवश्यक | प्रकार | विवरण |
|---|---|---|---|
| `title` | हाँ | string | नया Journey नाम। |

##### अनुरोध का उदाहरण

```bash title="एक Journey का नाम बदलें"
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": "Welcome series (Q3)" }'
```

## संबंधित

<CardGrid>
  <LinkCard title="Journey ऑब्जेक्ट" href="/developer/api-reference/customer-journey-api/journey-object/" />
  <LinkCard title="लाइफसाइकिल" href="/developer/api-reference/customer-journey-api/lifecycle/" />
  <LinkCard title="API द्वारा शुरू करें" href="/developer/api-reference/customer-journey-api/start-by-api/" />
</CardGrid>