# Lifecycle

endpoints ของ lifecycle จะย้าย journey ไปยังสถานะต่างๆ ส่ง [Journey ID](/th/developer/api-reference/api-identifiers/#journey-id) ของ journey เป็น `uuid` ใน request body การเรียก API จะส่งคืน [journey object](/th/developer/api-reference/customer-journey-api/journey-object/) ที่อัปเดตแล้ว

Journey จะอยู่ในสถานะใดสถานะหนึ่งต่อไปนี้เสมอ:

| สถานะ | ความหมาย |
|---|---|
| `STATUS_DRAFT` | กำลังแก้ไข ไม่ประมวลผลผู้ใช้ |
| `STATUS_RUNNING` | ทำงานอยู่ กำลังประมวลผลผู้ใช้ |
| `STATUS_PAUSED` | หยุดชั่วคราว สามารถกลับมาทำงานต่อได้ |
| `STATUS_FINISHED` | เสร็จสมบูรณ์ ไม่ประมวลผลผู้ใช้อีกต่อไป |
| `STATUS_ARCHIVED` | จัดเก็บถาวรเพื่อการเก็บรักษา |

## Endpoints

การเรียก lifecycle ทั้งหมดใช้ request body เดียวกัน: [Journey ID](/th/developer/api-reference/api-identifiers/#journey-id) ที่ส่งเป็น `uuid` โดยจะแตกต่างกันที่ path เท่านั้น:

| การดำเนินการ | เมธอดและ path | สถานะผลลัพธ์ |
|---|---|---|
| เริ่มต้น | `POST /api/v3/journeygateway/start` | `STATUS_RUNNING` |
| หยุดชั่วคราว | `POST /api/v3/journeygateway/pause` | `STATUS_PAUSED` |
| สิ้นสุด | `POST /api/v3/journeygateway/finish` | `STATUS_FINISHED` |
| ร่าง | `POST /api/v3/journeygateway/draft` | `STATUS_DRAFT` |
| จัดเก็บถาวร | `POST /api/v3/journeygateway/archive` | `STATUS_ARCHIVED` |

## Request

| ฟิลด์ | จำเป็น | ประเภท | คำอธิบาย |
|---|---|---|---|
| `uuid` | ใช่ | string | [Journey ID](/th/developer/api-reference/api-identifiers/#journey-id) ของ journey ที่จะเปลี่ยนสถานะ |

```json title="Body"
{ "uuid": "11111111-2222-3333-4444-555555555555" }
```

API จะตรวจสอบสถานะปัจจุบันก่อนที่จะเปลี่ยนสถานะ ตัวอย่างเช่น การเริ่มต้น journey ที่สิ้นสุดไปแล้ว หรือการหยุด journey ที่ไม่ได้ทำงานอยู่ จะส่งคืนข้อผิดพลาด

<Aside type="note">
หากต้องการเริ่มต้น journey **และ** ใช้การแก้ไขที่รอดำเนินการในการเรียกครั้งเดียว ให้ใช้ [อัปเดตและดำเนินการต่อ](/th/developer/api-reference/customer-journey-api/create-update/#update-and-resume) แทน `start`
</Aside>

### ตัวอย่าง Request

#### เริ่มต้น journey

```bash
curl -X POST https://journey.pushwoosh.com/api/v3/journeygateway/start \
  -H "Authorization: Api YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "uuid": "11111111-2222-3333-4444-555555555555" }'
```

#### หยุด journey ชั่วคราว

```bash
curl -X POST https://journey.pushwoosh.com/api/v3/journeygateway/pause \
  -H "Authorization: Api YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "uuid": "11111111-2222-3333-4444-555555555555" }'
```

## Response

ส่งคืน [journey object](/th/developer/api-reference/customer-journey-api/journey-object/) ที่อัปเดตแล้ว: `info`, `points` และ `comments` ฟิลด์ `info.status` จะแสดงสถานะใหม่

### ตัวอย่าง Response
```json
{
  "info": {
    "uuid": "11111111-2222-3333-4444-555555555555",
    "title": "Welcome series",
    "status": "STATUS_RUNNING",
    "created_at": "2026-05-01T09:00:00Z",
    "updated_at": "2026-06-17T12:00:00Z",
    "params": { "application_code": "XXXXX-XXXXX" },
    "campaign_type": "TriggerBased"
  },
  "points": [],
  "comments": []
}
```

ดู [การอ้างอิง journey object](/th/developer/api-reference/customer-journey-api/journey-object/) สำหรับรายการฟิลด์ทั้งหมด

## ที่เกี่ยวข้อง

<CardGrid>
  <LinkCard title="สร้างและอัปเดต" href="/developer/api-reference/customer-journey-api/create-update/" />
  <LinkCard title="เริ่มต้นด้วย API" href="/developer/api-reference/customer-journey-api/start-by-api/" />
  <LinkCard title="Journey object" href="/developer/api-reference/customer-journey-api/journey-object/" />
</CardGrid>