# วิธีส่งข้อความ Transactional

ข้อความ Transactional เช่น การยืนยันคำสั่งซื้อ การต่ออายุการสมัครสมาชิก การรีเซ็ตรหัสผ่าน การอัปเดตการจัดส่ง หรือการแจ้งเตือนการชำระเงิน เป็นสิ่งจำเป็นสำหรับการให้ข้อมูลที่ทันเวลาและเกี่ยวข้องกับผู้ใช้ตามการกระทำที่เฉพาะเจาะจง Pushwoosh ช่วยให้คุณสามารถทำให้ข้อความเหล่านี้เป็นอัตโนมัติได้โดยใช้เครื่องมือ **Customer Journey Builder**

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

ก่อนที่จะตั้งค่าข้อความ Transactional ตรวจสอบให้แน่ใจว่า:

* [**Pushwoosh SDK**](/th/developer/pushwoosh-sdk/pushwoosh-sdk-overview) ได้ถูกรวมเข้ากับแอปพลิเคชันมือถือหรือเว็บไซต์ของคุณแล้ว
* Event ที่คุณต้องการใช้ใน Journey แบบ Transactional ได้ถูกสร้าง ตั้งค่า และติดตามใน Pushwoosh แล้ว [เรียนรู้เพิ่มเติมเกี่ยวกับการสร้าง Event](/th/product/audience-data-and-segmentation/events#implementation)


ด้านล่างนี้คือตัวอย่างของข้อความ Transactional ทั่วไปและขั้นตอนในการกำหนดค่าโดยใช้ [**Customer Journey Builder**](/th/product/customer-journey/pushwoosh-journey-overview)

## การส่งการยืนยันคำสั่งซื้อ

หากต้องการส่งข้อความยืนยันคำสั่งซื้อส่วนบุคคลโดยอัตโนมัติเมื่อมี Event การซื้อเกิดขึ้น ให้ทำตามขั้นตอนต่อไปนี้:

1. ในบัญชี Pushwoosh ของคุณ ไปที่ **Campaigns > Customer Journey Builder** และคลิก **Create campaign** เพื่อเริ่มสร้างโฟลว์ข้อความ Transactional
2. ใน **Customer Journey Builder** เพิ่ม **Trigger-based entry element** ลงใน canvas และเลือก Event [PW_InAppPurchase](/th/product/audience-data-and-segmentation/events/default-events#pw_inapppurchase) (Event เริ่มต้น) ตรวจสอบให้แน่ใจว่า Event ได้รับการกำหนดค่าอย่างถูกต้อง [เรียนรู้เพิ่มเติม](/th/product/audience-data-and-segmentation/events/default-events#pw_inapppurchase)

<Aside type="tip">
หากจำเป็นต้องใช้ Event ที่กำหนดเองสำหรับแอปของคุณ ให้สร้างและตั้งค่าล่วงหน้า [เรียนรู้เพิ่มเติมเกี่ยวกับการสร้าง Event](/th/product/audience-data-and-segmentation/events/custom-events)
</Aside>

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-1.webp" alt="Customer Journey Builder canvas แสดง Trigger-based entry element พร้อมกับ Event PW_InAppPurchase ที่ถูกเลือกสำหรับการตั้งค่าการยืนยันคำสั่งซื้อ"/>

3. เพิ่มองค์ประกอบ [**push notification**](/th/product/customer-journey/journey-elements#push) ลงใน canvas สร้างเนื้อหาข้อความ และใช้ตัวยึดตำแหน่งเช่น `{order_id}` เพื่อปรับแต่งข้อความให้เป็นส่วนตัว

### ตัวอย่างเนื้อหา push

**หัวข้อ**: "การยืนยันคำสั่งซื้อ"

**ข้อความ**: "ขอบคุณสำหรับคำสั่งซื้อของคุณ `{order_id}`! สินค้าของคุณจะถูกจัดส่งในไม่ช้า"

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-2.webp" alt="ตัวอย่างเนื้อหา push notification แสดงข้อความยืนยันคำสั่งซื้อพร้อมตัวยึดตำแหน่ง order_id สำหรับการปรับแต่งส่วนบุคคล"/>

4. เพื่อให้แน่ใจว่าข้อความจะถูกส่งโดยไม่คำนึงถึงขีดจำกัดข้อความใดๆ ให้เลือก [**Send messages without global frequency capping**](/th/product/messaging-channels/global-frequency-capping/#ignore-global-frequency-capping) ในการตั้งค่าการจัดส่ง

<img src="/shared-53.webp" alt="การตั้งค่าการจัดส่งพร้อมกับตัวเลือก Send messages without global frequency capping ที่ถูกเลือกสำหรับข้อความ Transactional"/>

5. **สรุปและเปิดใช้งาน Journey** กำหนดค่าข้อความ และขั้นตอนการแบ่งกลุ่มหรือการรอที่เป็นทางเลือก สิ้นสุดสาขาด้วย [**Exit element**](/th/product/customer-journey/journey-elements/flow-controls/exit/) หรือโดยการปล่อยไว้โดยไม่มีการเชื่อมต่อขาออก จากนั้นคลิก **Launch** เพื่อเริ่ม Journey

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-3.webp" alt="Customer Journey ที่เสร็จสมบูรณ์พร้อมกับ Exit element ที่กำหนดค่าและพร้อมที่จะเปิดใช้งาน"/>

ตอนนี้ข้อความ Transactional จะถูกส่งโดยอัตโนมัติเมื่อเงื่อนไขของทริกเกอร์เป็นไปตามที่กำหนด

## การส่งอีเมลต่ออายุการสมัครสมาชิก

โดยการใช้บริการจัดการการสมัครสมาชิกของบุคคลที่สาม เช่น [**Adapty**](/th/product/integrations/adapty-integration), [**Apphud**](https://docs.apphud.com/docs/pushwoosh) ฯลฯ คุณสามารถส่งการแจ้งเตือนการต่ออายุหรืออีเมลไปยังผู้ใช้โดยอัตโนมัติเมื่อการสมัครสมาชิกของพวกเขาหมดอายุ เพื่อกระตุ้นให้พวกเขาต่ออายุ สำหรับสิ่งนี้ ให้ทำดังต่อไปนี้:

1. ขั้นแรก กำหนดค่าการรวมบริการกับ Pushwoosh [เรียนรู้เพิ่มเติมเกี่ยวกับการรวมที่มีอยู่](/th/product/integrations/#in-app-purchases)
2. ถัดไป ตั้งค่า Event **Subscription_expired** ในบริการจัดการการสมัครสมาชิกที่คุณเลือก เมื่อการสมัครสมาชิกของผู้ใช้หมดอายุ บริการจะส่ง Event **subscription expired** ไปยัง Pushwoosh
3. เมื่อคุณตั้งค่า Event แล้ว ใน **Customer Journey Builder** ให้คลิก **Create campaign** และเพิ่ม **Trigger-based entry element** ลงใน canvas
4. เลือก Event **subscription expired** ที่ส่งมาจากบริการของบุคคลที่สาม

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-4.webp" alt="Trigger-based entry element ที่กำหนดค่าด้วย Event subscription expired จากบริการของบุคคลที่สาม"/>

5. เพิ่ม [**email element**](/th/product/customer-journey/journey-elements#email) ลงใน canvas และเลือกเนื้อหาอีเมลที่คุณสร้างไว้ล่วงหน้า

### ตัวอย่างเนื้อหาอีเมล

***หัวเรื่อง**: "การสมัครสมาชิกของคุณหมดอายุแล้ว – ต่ออายุตอนนี้เพื่อเชื่อมต่ออยู่เสมอ!"*

***เนื้อหา:***

*สวัสดี,*

*เราสังเกตเห็นว่าการสมัครสมาชิกของคุณหมดอายุแล้ว และเราไม่ต้องการให้คุณพลาดสิทธิประโยชน์ดีๆ ทั้งหมด! ต่ออายุการสมัครสมาชิกของคุณวันนี้เพื่อเพลิดเพลินกับการเข้าถึงบริการของเราอย่างต่อเนื่อง*

*[ต่ออายุการสมัครสมาชิกของฉัน]*

*ขอบคุณที่เป็นลูกค้าคนสำคัญของเรา เราหวังว่าจะได้ต้อนรับคุณกลับมาอีกครั้ง!*

6. เพื่อให้แน่ใจว่าข้อความจะถูกส่งโดยไม่คำนึงถึงขีดจำกัดข้อความใดๆ ให้เลือก [**Send messages without global frequency capping**](/th/product/messaging-channels/global-frequency-capping/#ignore-global-frequency-capping) ในการตั้งค่าการจัดส่ง

7. ทำการกำหนดค่า Journey ให้เสร็จสมบูรณ์และคลิก **Launch campaign**

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-5.webp" alt="Journey อีเมลต่ออายุการสมัครสมาชิกที่เสร็จสมบูรณ์พร้อมสำหรับการเปิดใช้งาน"/>

เมื่อตั้งค่าแล้ว การแจ้งเตือนการต่ออายุจะถูกส่งโดยอัตโนมัติเมื่อ Event การสมัครสมาชิกหมดอายุถูกทริกเกอร์โดยบริการของบุคคลที่สาม

## การส่งข้อความรีเซ็ตรหัสผ่าน

ในการส่งอีเมลรีเซ็ตรหัสผ่าน คุณจะต้องตั้งค่า Event การรีเซ็ตรหัสผ่าน กำหนดค่าลิงก์รีเซ็ตรหัสผ่านในฝั่งของคุณ จากนั้น [สร้าง Customer Journey](/th/product/customer-journey/create-a-customer-journey-for-your-project) เพื่อส่งอีเมล

ทำตามขั้นตอนด้านล่างเพื่อทำการตั้งค่าให้เสร็จสมบูรณ์:

### ขั้นตอนที่ 1. กำหนดค่า Event การรีเซ็ตรหัสผ่านใน Pushwoosh

เมื่อผู้ใช้ร้องขอการเปลี่ยนแปลงรหัสผ่าน คุณจะทริกเกอร์ Event เช่น **password change requested** คุณต้องตั้งค่า Event นี้ล่วงหน้า

1. ไปที่ **Events** ในแดชบอร์ด Pushwoosh และคลิก **Create event**
2. ตั้งชื่อ Event ตัวอย่างเช่น **Password reset request**
3. เพิ่มแอตทริบิวต์ต่อไปนี้ลงใน Event:

| ชื่อแอตทริบิวต์ | ประเภท | คำอธิบาย | ค่าตัวอย่าง |
| ----- | ----- | ----- | ----- |
| reset_link | String | ลิงก์รีเซ็ตรหัสผ่านที่ไม่ซ้ำกัน | https://yourapp.com/reset-password?token=abc |
| user_name | String | ชื่อผู้ใช้สำหรับการปรับแต่งส่วนบุคคล | John |
| token_durability | Integer | ความถูกต้องของโทเค็นในหน่วยวินาที (เช่น 24 ชั่วโมง) | 86400 |
| date | Date | วันที่และเวลาของการร้องขอรีเซ็ต | 2024-11-18T10:00:00Z |

แอตทริบิวต์เหล่านี้ทำหน้าที่เป็นตัวยึดตำแหน่ง รับข้อมูลแบบไดนามิกจากระบบของคุณเมื่อ Event ถูกทริกเกอร์

<Aside type="caution" title="สำคัญ">
ในแอตทริบิวต์ของ Event คุณต้องส่งลิงก์รีเซ็ตรหัสผ่านที่ไม่ซ้ำกันที่คุณสร้างขึ้นในฝั่งของคุณ หรือคีย์ที่ไม่ซ้ำกันที่ต้องรวมอยู่ในลิงก์เพื่อให้ทำงานได้ ลิงก์นี้ต้องมีโทเค็นที่ไม่ซ้ำกันซึ่งปรับให้เป็นส่วนตัวสำหรับผู้ใช้แต่ละคนและฝังอยู่ใน URL ผ่านแอตทริบิวต์ของ Event ที่ส่งมาจากระบบของคุณ โทเค็นควรมีระยะเวลาหมดอายุ (เช่น 24 ชั่วโมง) เพื่อความปลอดภัย ทำให้ผู้ใช้สามารถรีเซ็ตรหัสผ่านได้เฉพาะภายในกรอบเวลาที่กำหนด
</Aside>

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-6.webp" alt="อินเทอร์เฟซการกำหนดค่า Event แสดง Event การร้องขอรีเซ็ตรหัสผ่านพร้อมแอตทริบิวต์ที่จำเป็น"/>

ตั้งค่า Event ในแอปของคุณ [เรียนรู้เพิ่มเติมเกี่ยวกับการตั้งค่า Event ที่กำหนดเอง](/th/product/audience-data-and-segmentation/events#implementation)

### ขั้นตอนที่ 2. สร้างลิงก์รีเซ็ตรหัสผ่าน

เมื่อผู้ใช้ร้องขอการรีเซ็ตรหัสผ่าน (เช่น โดยการคลิก "ลืมรหัสผ่าน") คุณจะต้อง:

1. **สร้างโทเค็นที่ไม่ซ้ำกัน** สร้างโทเค็นที่ปลอดภัยและสร้างขึ้นแบบสุ่มสำหรับผู้ใช้ ตัวอย่างเช่น 12345-abcde-67890
2. รวมโทเค็นกับ URL รีเซ็ตรหัสผ่านของคุณ ตัวอย่างเช่น https://yourapp.com/reset-password?token=12345-abcde-67890
3. บันทึกโทเค็นในฐานข้อมูลของคุณ เชื่อมโยงกับบัญชีของผู้ใช้ และตั้งเวลาหมดอายุ (เช่น 24 ชั่วโมง)
4. รวมลิงก์รีเซ็ตในแอตทริบิวต์ของ Event reset_link เมื่อทริกเกอร์ Event **Password Reset Request**

### ขั้นตอนที่ 3. สร้างเนื้อหาอีเมล

1. ไปที่ **Email content** ใน Pushwoosh และสร้างเนื้อหาอีเมลใหม่ [เรียนรู้เพิ่มเติม](/th/product/content/email-content/drag-and-drop-email-editor/create-email-content-with-drag-and-drop-editor/#create-new-email-content)
2. เพิ่มตัวยึดตำแหน่งสำหรับเนื้อหาแบบไดนามิก:
   1. `{reset_link}` สำหรับลิงก์รีเซ็ตรหัสผ่าน
   2. `{user_name}` สำหรับชื่อผู้ใช้
   3. `{token_durability}` สำหรับเวลาหมดอายุของลิงก์

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-7.webp" alt="ตัวแก้ไขเนื้อหาอีเมลพร้อมตัวยึดตำแหน่งสำหรับฟิลด์ reset_link, user_name และ token_durability"/>

### ขั้นตอนที่ 4. สร้างแคมเปญ

1. ไปที่ส่วน **Customer Journey** ใน Pushwoosh และคลิก **Create Campaign**
2. ลากและวางองค์ประกอบ **Trigger-based entry** ลงบน canvas
3. กำหนดค่าทริกเกอร์ให้เปิดใช้งานเมื่อระบบของคุณส่ง Event **Password Reset Request**

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-8.webp" alt="Customer Journey canvas แสดง Trigger-based entry element ที่กำหนดค่าสำหรับ Event Password Reset Request"/>

4. เพิ่มองค์ประกอบ **Email** ลงใน canvas

5. เชื่อมโยงอีเมลกับองค์ประกอบ **Trigger-based entry**

6. เลือกเนื้อหาอีเมลที่สร้างไว้ก่อนหน้านี้พร้อมตัวยึดตำแหน่งสำหรับลิงก์รีเซ็ตและรายละเอียดผู้ใช้

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-9.webp" alt="องค์ประกอบอีเมลที่เชื่อมโยงกับทริกเกอร์พร้อมเนื้อหาอีเมลรีเซ็ตรหัสผ่านและตัวยึดตำแหน่งแบบไดนามิก"/>

7. เพื่อให้แน่ใจว่าข้อความจะถูกส่งโดยไม่คำนึงถึงขีดจำกัดข้อความใดๆ ให้เลือก **Send messages without global frequency capping** ในการตั้งค่าการจัดส่ง

8. หลังจากเพิ่มเนื้อหาข้อความแล้ว ตรวจสอบให้แน่ใจว่าทุกขั้นตอนใน Journey ได้รับการกำหนดค่าอย่างถูกต้อง สิ้นสุดสาขาด้วยองค์ประกอบ **Exit** หรือโดยการปล่อยไว้โดยไม่มีการเชื่อมต่อขาออก จากนั้นคลิก **Launch campaign** เพื่อเริ่ม Journey

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-10.webp" alt="Journey อีเมลรีเซ็ตรหัสผ่านที่เสร็จสมบูรณ์พร้อมกับ Exit element ที่กำหนดค่าและพร้อมที่จะเปิดใช้งาน"/>

เมื่อเปิดใช้งานแล้ว **ข้อความรีเซ็ตรหัสผ่าน** จะถูกส่งโดยอัตโนมัติเมื่อผู้ใช้ร้องขอการรีเซ็ตรหัสผ่าน ซึ่งมอบประสบการณ์ที่ราบรื่นและปลอดภัย