# การเข้า Journey ผ่าน API

<Aside type="caution" icon="setting" title="ต้องการความช่วยเหลือจากนักพัฒนา">
 คุณจะต้องได้รับความช่วยเหลือจากทีมนักพัฒนาของคุณเพื่อตั้งค่า Journey ที่เข้าผ่าน API โปรดแชร์คู่มือนี้กับพวกเขา
</Aside>

## วิธีการทำงาน

การเข้า Journey ผ่าน API ช่วยให้คุณสามารถเปิดตัว Customer Journey ได้ทันทีที่มี event ทางธุรกิจเกิดขึ้น ในการเริ่มแคมเปญ คุณจะต้องส่งคำขอ API พิเศษ

นี่คือตัวอย่างการใช้งานบางส่วนสำหรับการเข้า Journey ผ่าน API:

* แจ้งลูกค้าเมื่อสินค้ากลับมามีในสต็อก
* บอกผู้ใช้ว่าราคาสินค้ายอดนิยมลดลง
* แจ้งเตือนผู้ติดตามเมื่อมีตอนใหม่ของพอดคาสต์ออกมา

ซึ่งแตกต่างจาก Events ทั่วไป event ทางธุรกิจเหล่านี้อาจเกิดขึ้นนอกแอป ตัวอย่างเช่น ความพร้อมจำหน่ายของสินค้าสามารถตรวจสอบได้ในฐานข้อมูลภายนอกเท่านั้น นี่คือจุดที่การเข้า Journey ผ่าน API มีประโยชน์: คุณสามารถตั้งค่าการส่งคำขอเพื่อเปิดตัว Journey เมื่อใดก็ตามที่มีการเปลี่ยนแปลงบางอย่างเกิดขึ้นนอกแอป (เช่น ในฐานข้อมูลภายนอกของคุณ)

<img src="/shared-33.webp" alt="องค์ประกอบการเข้า Journey ผ่าน API บน Journey canvas"/>

มันทำงานดังนี้:

1. สร้าง Journey ด้วยการเข้าผ่าน API ในการตั้งค่าการเข้า คุณจะพบเทมเพลตของคำขอที่ใช้เปิดตัว Journey
2. เพิ่มเงื่อนไขการแบ่งกลุ่มลงในคำขอโดยใช้ [Segmentation language](/th/developer/api-reference/segmentation-filters-api/segmentation-language) คุณยังสามารถเพิ่ม placeholders ของเนื้อหาลงในคำขอเพื่อเปลี่ยนเนื้อหาข้อความตามบริบทได้
3. ทำให้คำขอเป็นอัตโนมัติหากจำเป็น ตัวอย่างเช่น ข้อมูลเกี่ยวกับการเปลี่ยนแปลงราคาสามารถส่งจากฐานข้อมูลไปยัง webhook ได้ทันที เมื่อสิ่งนี้เกิดขึ้น webhook ควรส่งคำขอเพื่อเปิดตัว Journey โดยอัตโนมัติ คุณยังสามารถส่งคำขอด้วยตนเองได้หากไม่ต้องการระบบอัตโนมัติ

คุณสามารถส่งคำขอได้ไม่จำกัดจำนวนครั้งเพื่อเปลี่ยนเงื่อนไขการแบ่งกลุ่มหรือเนื้อหาข้อความ

สำหรับรายละเอียดเพิ่มเติม โปรดปฏิบัติตามคำแนะนำด้านล่าง

## ตั้งค่า Journey ด้วยการเข้าผ่าน API

1. สร้าง Journey ด้วยการเข้าผ่าน API:

<video src="/journey-elements-api-based-entry-1.webm" title="สร้าง Journey ใหม่และเลือกการเข้าผ่าน API" autoplay loop muted playsinline />

2. ดับเบิลคลิกที่ขั้นตอนการเข้าผ่าน API หน้าต่างการกำหนดค่าการเข้าจะเปิดขึ้น

3. คุณสามารถแก้ไขเนื้อหา push และอีเมลทุกครั้งที่ Journey เปิดตัวโดยใช้ placeholders ของเนื้อหา ค่าของแต่ละ placeholder สามารถเปลี่ยนแปลงได้ในคำขอ หากคุณไม่ต้องการตัวเลือกนี้ คุณสามารถข้ามขั้นตอนนี้ได้

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

ขั้นแรก เพิ่มชื่อ placeholder ในหน้าต่างตั้งค่าการเข้าผ่าน API คุณสามารถใช้ชื่อใดก็ได้ที่สะดวกสำหรับคุณ

<img src="/journey-elements-api-based-entry-2.webp" alt="เพิ่มชื่อ placeholder ของเนื้อหาในหน้าต่างตั้งค่าการเข้าผ่าน API"/>

ตอนนี้ สร้าง [push preset](/th/product/content/push-presets) หรือ [email content](/th/product/content/email-content/) และแทรก placeholder แทนข้อความที่คุณต้องการแก้ไข placeholder ต้องอยู่ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้ขึ้นอยู่กับความต้องการของคุณ:

* `{placeholder_name|format_modifier|}` – หากไม่ได้ระบุค่า placeholder เมื่อเปิดตัวแคมเปญ ผู้ใช้จะเห็นพื้นที่ว่างแทน
* `{placeholder_name|format_modifier}` – หากไม่ได้ระบุค่า placeholder และยังไม่เคยถูกกำหนดให้กับผู้ใช้ (ในกรณีที่คุณใช้ Tag เป็น placeholder) ข้อความจะไม่ถูกส่ง

<details>

<summary>ตัวปรับแต่งรูปแบบ</summary>

* **CapitalizeFirst** – ทำให้ตัวอักษรตัวแรกในค่า placeholder เป็นตัวพิมพ์ใหญ่
* **CapitalizeAllFirst** – ทำให้ตัวอักษรตัวแรกของทุกคำในค่า placeholder เป็นตัวพิมพ์ใหญ่
* **UPPERCASE** – เปลี่ยนตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่
* **lowercase** – เปลี่ยนตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็ก
* **regular** – แทรกค่า placeholder ตรงตามที่ระบุในคำขอ

</details>

<img src="/journey-elements-api-based-entry-3.webp" alt="แทรก placeholder ลงใน push preset สำหรับเนื้อหาแบบไดนามิก"/>

<Aside type="tip">
คุณยังสามารถใช้ชื่อ [Tag ที่มีอยู่](/th/product/audience-data-and-segmentation/user-data-tags/) แทนชื่อ placeholder ได้ ในกรณีนี้ คุณต้องกำหนดค่าการเขียนทับค่า Tag นี้ด้วยค่าที่ระบุในคำขอตามที่อธิบายไว้ด้านล่าง
</Aside>

เมื่อกำหนดค่าองค์ประกอบ Push หรือ Email ใน Journey ของคุณ ให้เลือก preset ที่สร้างขึ้นและเปิดตัวเลือก **Personalize message with event attributes**

เลือก placeholders ที่คุณต้องการแก้ไขในคำขอเมื่อเปิดตัว Journey เลือก **API-based entry** เป็นแหล่งที่มาและชื่อ placeholder เป็นแอตทริบิวต์แบบไดนามิก:

<video src="/journey-elements-api-based-entry-4.webm" title="ปรับแต่งข้อความส่วนบุคคลด้วยแอตทริบิวต์ของ event จากการเข้าผ่าน API" autoplay loop muted playsinline />

คลิก **Apply** เพื่อบันทึกการเปลี่ยนแปลง

4. ในหน้าต่างการกำหนดค่าการเข้า ให้คัดลอกเทมเพลตคำขอเพื่อแก้ไข:

<img src="/journey-elements-api-based-entry-5.webp" alt="คัดลอกเทมเพลตคำขอจากหน้าต่างการกำหนดค่าการเข้าผ่าน API"/>
<Aside> 
ในการเปิดตัว Journey ผ่าน API คุณต้องใส่โทเค็นการให้สิทธิ์ที่ถูกต้องใน Authorization header

**รูปแบบ header ที่ต้องการ**

  ```http
  Authorization: Api <your_api_token>
  ```
  **ตัวอย่าง**

  ```http
  Authorization: Api c8dc6435-xxxxxxxxxxxxxxx
  ```
  
 </Aside>


5. เพิ่มตัวกรองผู้ชมไปยังพารามิเตอร์ `"filter"` โดยใช้ [Segmentation language](/th/developer/api-reference/segmentation-filters-api/segmentation-language) หรือ [คัดลอกตรรกะการแบ่งกลุ่ม](/th/product/audience-data-and-segmentation/segmentation/#copy-segment-logic) จากกลุ่มของคุณ ตั้งค่า [Tags](/th/product/audience-data-and-segmentation/user-data-tags/tags) ที่จำเป็นล่วงหน้า

ตัวอย่างเช่น เพื่อกำหนดเป้าหมายผู้ใช้ที่เพิ่มรายการ _Socks_ ไปยัง _Wishlist_ ของพวกเขา ค่า `"filter"` จะต้องมีลักษณะดังนี้:

`"filter": "A(\"12345-12345\") * "T(\"Wishlist\", EQ, \"Socks\")"`

ในตัวอย่างนี้ คุณต้องมี Tag _Wishlist_ ที่กำหนดค่าไว้ในแอปของคุณ

<Aside type="note">
รหัสแอปพลิเคชันของคุณจะถูกเพิ่มไปยังพารามิเตอร์ `"filter"` โดยอัตโนมัติในรูปแบบ `A(\"12345-12345\")` อย่าลบหรือแก้ไขมัน

นอกจากนี้ โปรดทราบว่าเครื่องหมายคำพูด ("") และแบ็กสแลช (\\) ควรถูก escape ด้วยแบ็กสแลช (\\) ในการสืบค้น JSON
</Aside>

<Aside type="tip">
คุณยังสามารถกำหนดเป้าหมายอุปกรณ์หรือผู้ใช้ที่เฉพาะเจาะจงได้โดยตรงโดยการส่งอาร์เรย์ของ HWIDs ในพารามิเตอร์ `"hwids"` หรือ User IDs ในพารามิเตอร์ `"users"` แทนการใช้ตัวกรอง:

```json
"users": ["user_id_1", "user_id_2", ...],
"hwids": ["hwid_1", "hwid_2", ...]
```
</Aside>

6. หากคุณได้ตั้งค่า placeholders ให้ระบุเนื้อหาที่ต้องการเป็นค่าของมัน:

<img src="/journey-elements-api-based-entry-6.webp" alt="ระบุค่า placeholder ในคำขอ API เพื่อเปิดตัว Journey"/>


7. หากคุณวางแผนที่จะเริ่มแคมเปญของคุณใหม่บ่อยครั้งและไม่ต้องการให้ผู้ใช้คนเดิมเข้าสู่ Journey หลายครั้ง ให้ตั้งค่า [Campaign entry limits](/th/product/customer-journey/journey-settings#campaign-entry-limit)

> ตัวอย่างเช่น คุณได้สร้างแคมเปญเพื่อแจ้งเตือนผู้ใช้เกี่ยวกับการลดราคาสำหรับผลิตภัณฑ์เฉพาะ คุณต้องการเปิดตัว Journey ใหม่อีกสองสามครั้งโดยส่งคำขอหลายรายการพร้อมตัวกรองผู้ชมที่แตกต่างกัน ในกรณีนี้ คุณสามารถเพิ่ม Campaign entry limits เพื่อไม่ให้การแจ้งเตือนถูกส่งซ้ำไปยังผู้ใช้ที่ตรงกับตัวกรองหลายตัว

8. หากคุณต้องการให้ Journey เปิดตัวเมื่อใดก็ตามที่มี event ทางธุรกิจเกิดขึ้น ให้ทำให้คำขอเป็นอัตโนมัติโดยใช้ webhook เมื่อ event เกิดขึ้น webhook ควรส่งคำขอเพื่อเริ่ม Journey โดยอัตโนมัติ

คุณยังสามารถส่งคำขอด้วยตนเองได้หากไม่ต้องการระบบอัตโนมัติ

<Aside type="note">
* หากคุณเปลี่ยนเงื่อนไขการแบ่งกลุ่มเมื่อส่งคำขอใหม่ สิ่งนี้จะไม่ส่งผลกระทบต่อผู้ใช้ที่ได้เข้าสู่ Journey แล้ว
* หากคุณเปลี่ยนเนื้อหาข้อความเมื่อส่งคำขอใหม่ ผู้ใช้ทุกคนจะได้รับข้อความเวอร์ชันใหม่ (รวมถึงผู้ที่ได้เข้าสู่ Journey แล้วแต่ยังไม่ได้รับข้อความนี้)
</Aside>