ข้ามไปยังเนื้อหา

การผสานรวมสถานะเที่ยวบิน

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

ภาพรวมการผสานรวม

Anchor link to

ประเภทการผสานรวม

Anchor link to

Source: คุณสมัครรับข้อมูลการจองสำหรับเที่ยวบินจากภายใน Journey Pushwoosh จะส่งการเปลี่ยนแปลงสถานะกลับมาเป็นอีเวนต์ที่คุณใช้ในภายหลังใน Journey เดียวกันนั้น

ข้อกำหนดเบื้องต้น

Anchor link to

ก่อนเชื่อมต่อสถานะเที่ยวบิน ตรวจสอบให้แน่ใจว่าคุณมี:

  • บัญชี Pushwoosh ที่ใช้งานอยู่พร้อมแอปพลิเคชันในศูนย์ข้อมูล NUE ของ Pushwoosh ขณะนี้สถานะเที่ยวบินยังไม่พร้อมใช้งานในศูนย์ข้อมูลอื่น
  • บัญชี AeroDataBox และคีย์ API ฟีดจะถูกเรียกเก็บเงินในบัญชี AeroDataBox ของคุณเอง
  • อีเวนต์การจองที่ระบุสายการบิน หมายเลข วันที่ และสนามบินต้นทางของเที่ยวบิน (ดู สร้าง Journey สถานะเที่ยวบิน)
  • API Access token เฉพาะสำหรับ Journey เพื่อใช้ในการรับรองความถูกต้อง

การผสานรวมทำงานอย่างไร?

Anchor link to

การเชื่อมต่อการผสานรวมและการติดตามเที่ยวบินเป็นสองขั้นตอนที่แยกจากกัน ซึ่งทำในเวลาที่ต่างกัน:

  1. เชื่อมต่อคีย์ AeroDataBox ของคุณใน Settings → 3rd-party integrations
  2. อีเวนต์การจองนำผู้โดยสารเข้าสู่ Journey ของคุณ
  3. ขั้นตอน Webhook ของ Journey จะสมัครรับข้อมูลการจองสำหรับเที่ยวบินผ่าน API สาธารณะของ Pushwoosh
  4. Pushwoosh ติดตามเที่ยวบินด้วย AeroDataBox และตรวจจับการเปลี่ยนแปลง: ประตูขึ้นเครื่อง ความล่าช้า การขึ้นเครื่อง การมาถึง การยกเลิก หรือการกำหนดสายพานรับกระเป๋า
  5. การเปลี่ยนแปลงแต่ละครั้งจะถูกส่งไปยังแอปเป็นอีเวนต์ PW_FlightStatusChanged ซึ่ง Wait for Trigger และ Condition split ของ Journey จะนำทางไปยังข้อความที่ถูกต้อง

การสมัครรับข้อมูลเที่ยวบินแต่ละรายการจะสิ้นสุดโดยอัตโนมัติ 36 ชั่วโมงหลังจากวันที่ออกเดินทางตามเวลาท้องถิ่น และอาจสิ้นสุดเร็วกว่านั้นได้ เมื่อเที่ยวบินลงจอดหรือถูกยกเลิก หรือเมื่อไม่มีสิ่งใดติดตามเที่ยวบินนั้นอีกต่อไป จากนั้น Pushwoosh จะยกเลิกการสมัครรับข้อมูล AeroDataBox ที่ตรงกัน เพื่อไม่ให้มีการเรียกเก็บเงินต่อในเบื้องหลัง

ช่วงเวลานี้จะถูกกำหนดตายตัวตอนสมัครรับข้อมูล โดยนับจากวันที่ออกเดินทางที่จองไว้ และจะไม่เลื่อนออกไปหาก AeroDataBox รายงานความล่าช้าในภายหลัง ความล่าช้าที่ทำให้เที่ยวบินเลื่อนไปเป็นวันถัดไปตามปฏิทินอาจทำให้การสมัครรับข้อมูลสิ้นสุดก่อนเวลาออกเดินทางจริงที่ล่าช้า

กรณีการใช้งาน

Anchor link to

สถานะเที่ยวบินครอบคลุมการอัปเดตสี่ประเภท ซึ่งแต่ละประเภทสามารถใช้ได้ด้วยตัวเองหรือรวมกันใน Journey เดียว:

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

ตั้งค่าการผสานรวม

Anchor link to

เชื่อมต่อสถานะเที่ยวบินกับ Pushwoosh

Anchor link to

เชื่อมต่อคีย์ AeroDataBox ของคุณหนึ่งครั้งต่อแอปพลิเคชัน:

  1. เปิดแอปพลิเคชันของคุณและไปที่ Settings → 3rd-party integrations

  2. ใต้ Available services ค้นหาการ์ด Flight Status และคลิก Configure

    การ์ดสถานะเที่ยวบินในรายการการผสานรวมของบุคคลที่สาม แสดงคำอธิบายและปุ่ม Configure

  3. วางคีย์ AeroDataBox ของคุณลงใน API key และคลิก Connect

    กล่องโต้ตอบการกำหนดค่าสถานะเที่ยวบินโดยตั้งค่า Provider เป็น AeroDataBox และช่อง API key ว่างเปล่า

หลังจากที่คุณคลิก Connect การ์ดจะย้ายไปที่ Connected services

หากคีย์ถูกปฏิเสธ

Anchor link to

Pushwoosh จะตรวจสอบคีย์ในเบื้องหลัง หากมีสิ่งผิดปกติ การ์ดจะแสดงข้อความใดข้อความหนึ่งต่อไปนี้:

ข้อความสาเหตุ
provider rejected the API keyคีย์ไม่ถูกต้องหรือถูกเพิกถอนใน AeroDataBox
provider account is out of creditsแผน AeroDataBox ของคุณใช้เครดิตหมดแล้ว
provider rate limit reachedAeroDataBox กำลังควบคุมคำขอ และปัญหานี้จะหายไปเอง
provider is unavailableไม่สามารถเข้าถึง AeroDataBox ได้ เนื่องจากปัญหาเครือข่ายหรือการหยุดทำงานของฝ่ายใดฝ่ายหนึ่ง
provider refused the requestAeroDataBox ส่งคืนข้อผิดพลาดที่ Pushwoosh ไม่รู้จัก

เปลี่ยนคีย์

Anchor link to

เปิดการ์ด Flight Status ใน Connected services อีกครั้ง เช่น หลังจากคีย์ถูกปฏิเสธ:

  • เปลี่ยนคีย์: วางคีย์ใหม่ลงใน API key
  • ใช้คีย์ปัจจุบันต่อ: ปล่อย API key ว่างไว้ ช่องนี้จะแสดงเฉพาะอักขระสองสามตัวสุดท้ายของคีย์ที่บันทึกไว้

ยกเลิกการเชื่อมต่อการผสานรวม

Anchor link to
  1. เปิดการ์ด Flight Status ใน Connected services
  2. ลบคีย์

หลังจากที่คุณยกเลิกการเชื่อมต่อ:

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

สร้าง Journey สถานะเที่ยวบิน

Anchor link to

ก่อนสร้าง Journey

Anchor link to

ตรวจสอบให้แน่ใจว่าคุณมี:

  • อีเวนต์การจองที่ระบุสายการบิน หมายเลข วันที่ (YYYY-MM-DD) และสนามบินต้นทางของเที่ยวบิน พร้อมด้วยแอตทริบิวต์หนึ่งที่เก็บคีย์เที่ยวบินในรูปแบบ <carrier><number>/<date>/<departure airport> ตัวอย่างเช่น LH400/2026-09-20/MUC นี่คือสิ่งที่การจับคู่เซสชันใช้ตลอดทั้ง Journey
  • API Access token เฉพาะ เมธอด subscribe ยอมรับโทเค็นใดๆ จากบัญชีของคุณโดยไม่ต้องให้สิทธิ์ใดๆ สร้างโทเค็นเฉพาะสำหรับ Journey นี้เพื่อให้คุณสามารถเพิกถอนได้ในภายหลังโดยไม่กระทบต่อสิ่งอื่น
  • โฮสต์ API สาธารณะของศูนย์ข้อมูลของคุณ สำหรับบัญชี NUE คือ rpc-api.svc-nue.pushwoosh.com
  • ขีดจำกัดการเข้าแคมเปญ ของ Journey ถูกปิดไว้ ขีดจำกัดการเข้าแคมเปญจะติดตามการเข้าต่อผู้ใช้เท่านั้น ไม่รู้จักตัวระบุเซสชันที่คุณตั้งค่าด้านล่าง ดังนั้นมันจะบล็อกเที่ยวบินที่สองของผู้โดยสารจนกว่าระยะเวลาจำกัดจะผ่านไป

เริ่มต้น Journey จากอีเวนต์การจอง

Anchor link to
  1. เพิ่ม Trigger-based entry และเลือกอีเวนต์การจองของคุณ เช่น flight_booked
  2. ใต้ Control how many sessions a user can have at the same time เลือก Multiple active sessions per user
  3. เลือกแอตทริบิวต์คีย์เที่ยวบินเป็นตัวระบุเซสชัน ซึ่งจะช่วยให้ผู้โดยสารคนเดียวกันสามารถติดตามเที่ยวบินได้มากกว่าหนึ่งเที่ยวบินพร้อมกัน โดยแต่ละเที่ยวบินอยู่ในเซสชันของตัวเอง

สมัครรับข้อมูลการจองด้วยขั้นตอน Webhook

Anchor link to

เพิ่มขั้นตอน Webhook ทันทีหลังจากการเข้า เนื้อหาคำขอจะดึงฟิลด์เที่ยวบินจากอีเวนต์การเข้า ดังนั้นขั้นตอนจึงต้องอยู่หลังจากการเข้าทันทีเพื่อใช้งาน

  1. ตั้งค่า REQUEST TYPE เป็น POST

  2. ตั้งค่า URL เป็น https://rpc-api.svc-nue.pushwoosh.com/api/integrations/flight-status/subscriptions

  3. ใน HEADERS ให้คง Content-Type: application/json ไว้

  4. เพิ่มเฮดเดอร์ Authorization: Token <your API token> Pushwoosh จะปิดบังค่านี้หลังจากที่คุณบันทึก เนื่องจากเฮดเดอร์ใดๆ ที่ชื่อ Authorization จะถูกถือว่าเป็นความลับโดยอัตโนมัติ ดู ทำเครื่องหมายค่าเฮดเดอร์เป็นความลับ สำหรับความหมายในการแก้ไขและประวัติเวอร์ชัน

  5. ใน DATA ป้อนเนื้อหาคำขอด้านล่าง โดยพิมพ์รหัสแอปพลิเคชันของคุณเองโดยตรง:

    {
    "application": "<your application code>",
    "user_id": "{{device:user_id}}",
    "source": "journey",
    "flight": {
    "carrier": "",
    "flight_number": "",
    "flight_date": "",
    "departure_airport": ""
    }
    }
  6. สำหรับค่า flight ที่ว่างทั้งสี่ค่า ให้เปิด DATA BUILDER

  7. เลือกหมวดหมู่ Event

  8. เลือกแอตทริบิวต์ที่ตรงกันจากอีเวนต์การจองของคุณ (สายการบิน หมายเลขเที่ยวบิน วันที่เที่ยวบิน สนามบินต้นทาง)

  9. คัดลอกมาโครที่ Pushwoosh สร้างขึ้นและวางเป็นค่าของฟิลด์นั้น ทำซ้ำสำหรับค่าที่เหลืออีกสามค่า

คุณไม่จำเป็นต้องแมปข้อมูลใดๆ จากการตอบกลับ การตอบกลับจะส่งคืน flight_key ซึ่งมีอยู่แล้วในอีเวนต์การจองของคุณ

รอการอัปเดตสถานะ

Anchor link to

เพิ่มขั้นตอน Wait for Trigger หลังจากขั้นตอน Webhook

  1. เพิ่มหนึ่งสาขาและตั้งค่าอีเวนต์เป็น PW_FlightStatusChanged
  2. ใต้การจับคู่แอตทริบิวต์หลายเซสชัน เลือกแอตทริบิวต์คีย์เที่ยวบินเดียวกับที่คุณใช้ในการเข้า ซึ่งจะช่วยให้แน่ใจว่าการอัปเดตสถานะจะปลุกเฉพาะผู้โดยสารที่เกี่ยวข้องกับเที่ยวบินนั้นจริงๆ
  3. ตั้งค่าระยะเวลารอให้ครอบคลุมเที่ยวบินอย่างสบายๆ 48 ชั่วโมงก็เพียงพอสำหรับแผนการเดินทางส่วนใหญ่
  4. ปล่อยให้สาขา Not triggered ไม่มีขั้นตอนถัดไป หรือเพิ่มข้อความสำรอง ผู้โดยสารที่เที่ยวบินไม่มีการอัปเดตก่อนที่การรอจะสิ้นสุดจะออกจาก Journey ที่นี่ ซึ่งเป็นเรื่องปกติ

แยกสาขาตามประเภทอีเวนต์

Anchor link to

เพิ่ม Condition split หลังจากขั้นตอน Wait for Trigger

  1. เลือก Event เป็นประเภทเงื่อนไข
  2. ใน Event from Journey เลือก PW_FlightStatusChanged
  3. ใต้ Attribute เลือก event_type
  4. ตั้งค่าเงื่อนไขเป็น is
  5. เพิ่มสาขาด้วยค่า gate_change
  6. คลิก Save ซึ่งจะสร้างสองสาขา: สาขาที่คุณตั้งชื่อสำหรับการเปลี่ยนแปลงประตูขึ้นเครื่อง และ All other users สำหรับประเภทอีเวนต์อื่นๆ ทั้งหมด

ทำซ้ำองค์ประกอบนี้ หรือเพิ่มสาขาเพิ่มเติมสำหรับค่า event_type อื่นๆ ที่คุณต้องการดำเนินการ: delay, boarding, departed, arrived, cancelled และ baggage_ready ทั้งหมดทำงานในลักษณะเดียวกัน

แจ้งเตือนผู้โดยสาร

Anchor link to

เพิ่มองค์ประกอบ Push ในสาขาการเปลี่ยนแปลงประตูขึ้นเครื่อง

  1. เลือกหรือสร้างพรีเซ็ตพุช
  2. ตั้งค่า Message type เป็น Transactional message เนื่องจากการแจ้งเตือนสถานะเที่ยวบินเป็นการแจ้งเตือนบริการ ไม่ใช่โปรโมชัน การจำกัดความถี่ไม่มีผล และยังคงเข้าถึงผู้โดยสารใน กลุ่มควบคุม
  3. เปิดใช้งาน การปรับแต่งส่วนบุคคลด้วยแอตทริบิวต์อีเวนต์
  4. เลือก PW_FlightStatusChanged เป็นอีเวนต์ต้นทาง
  5. เติมค่าในช่องว่างของพรีเซ็ตของคุณจาก flight_number และ gate_new

แสดงการ์ด Live Activity แทน

Anchor link to

เพิ่มองค์ประกอบ Live Activity สามรายการ แทนที่ Push หรือเพิ่มเติมจาก Push:

  • Start: ทันทีหลังจากขั้นตอน Webhook ไม่ใช่หลังจากการเข้าโดยตรง การเข้าเชื่อมต่อกับขั้นตอนถัดไปได้เพียงขั้นตอนเดียว ดังนั้น Webhook และ Start จึงไม่สามารถอยู่ถัดจากการเข้าทั้งคู่ได้
  • Update: บนสาขาการเปลี่ยนแปลงประตูขึ้นเครื่อง
  • End: เมื่อ Journey ไม่จำเป็นต้องติดตามเที่ยวบินอีกต่อไป เช่น หลังจากการมาถึงหรือการยกเลิก

ในองค์ประกอบ Start ใต้ Card attributes ให้เพิ่มฟิลด์ทั้งหกที่ประเภท ActivityAttributes ของการ์ดต้องการ Card attributes เป็นรายการชื่อและค่าแบบอิสระ และอินเทอร์เฟซไม่ตรวจสอบชื่อ ดังนั้นให้ป้อนแต่ละชื่อให้ตรงตามรายการ ห้ารายการมีอยู่แล้วในอีเวนต์การจองของคุณ:

  • carrier
  • flight_number
  • flight_date
  • departure_airport
  • flight_key
  • arrival_airport: การเรียก subscribe ไม่ต้องการฟิลด์นี้ ดังนั้นให้เพิ่มลงในอีเวนต์การจองเฉพาะเมื่อคุณใช้ Live Activity เท่านั้น

มีเพียง Start เท่านั้นที่ตั้งค่า Card attributes และค่าเหล่านี้จะคงเดิมตลอดอายุการใช้งานของการ์ด Update และ End ไม่ได้ตั้งค่า ฟิลด์ที่เปลี่ยนแปลง เช่น สถานะ ประตูขึ้นเครื่อง และความล่าช้า คือ Card content และมาจากสกีมาวิดเจ็ตที่คุณเผยแพร่สำหรับแอปนี้

ข้อมูลอ้างอิงอีเวนต์ PW_FlightStatusChanged

Anchor link to

ทุกการเปลี่ยนแปลงที่การผสานรวมตรวจพบจะถูกส่งเป็นอีเวนต์ PW_FlightStatusChanged หนึ่งรายการ โดยมีแอตทริบิวต์ทั้งหมดอยู่เสมอ: แอตทริบิวต์ที่ว่างเปล่าจะถูกส่งเป็นค่าว่าง ไม่เคยถูกละไว้

แอตทริบิวต์ประเภทคำอธิบาย
event_typeStringสิ่งที่เปลี่ยนแปลง (ดูค่าด้านล่าง)
flight_keyStringคีย์เที่ยวบินเดียวกับที่คุณตั้งค่าในอีเวนต์การจอง
flight_numberStringหมายเลขเที่ยวบิน
departure_airportStringรหัสสนามบินต้นทาง
arrival_airportStringรหัสสนามบินปลายทาง
statusStringสถานะเที่ยวบินปัจจุบัน (ดูค่าด้านล่าง)
gate_old / gate_newStringประตูขึ้นเครื่องก่อนและหลังการเปลี่ยนแปลง
terminal_old / terminal_newStringอาคารผู้โดยสารขาออกก่อนและหลังการเปลี่ยนแปลง
baggage_claimStringหมายเลขสายพานรับกระเป๋า เมื่อได้รับการกำหนด
providerStringผู้ให้บริการข้อมูลที่รายงานการเปลี่ยนแปลง (aerodatabox)
delay_minutesIntegerจำนวนนาทีที่ล่าช้ากว่ากำหนดการ ปรากฏในทุกอีเวนต์
scheduled_at / estimated_at / actual_atStringเวลาออกเดินทางตามกำหนดการ เวลาที่คาดการณ์ในปัจจุบัน และเวลาจริง ในรูปแบบของผู้ให้บริการเอง
arrival_terminalStringอาคารผู้โดยสารขาเข้า เมื่อได้รับการกำหนด
arrival_scheduled_at / arrival_estimated_at / arrival_actual_atStringเวลามาถึงตามกำหนดการ เวลาที่คาดการณ์ในปัจจุบัน และเวลาจริง ในรูปแบบของผู้ให้บริการเอง
scheduled_at_local / estimated_at_local / actual_at_localStringเวลาออกเดินทางทั้งสามข้างต้น ตามเวลาท้องถิ่นของสนามบินต้นทาง
arrival_scheduled_at_local / arrival_estimated_at_local / arrival_actual_at_localStringเวลามาถึงทั้งสามข้างต้น ตามเวลาท้องถิ่นของสนามบินปลายทาง
flight_date / event_timeDateวันที่ของเที่ยวบิน และเวลาที่เกิดการเปลี่ยนแปลง

ค่าและรูปแบบของแอตทริบิวต์

Anchor link to
  • ค่า event_type: gate_change, delay, boarding, departed, arrived, cancelled, baggage_ready
  • ค่า status: scheduled, check_in, boarding, departed, delayed, arrived, cancelled, diverted, unknown สถานะ AeroDataBox ที่ Pushwoosh ไม่รู้จักจะถูกรายงานเป็น unknown
  • delay_minutes: ปรากฏในทุกอีเวนต์ ไม่ใช่เฉพาะอีเวนต์ delay ค่า 0 หมายความว่าเที่ยวบินตรงเวลา และค่าติดลบหมายความว่าเที่ยวบินเร็วกว่ากำหนด อีเวนต์ delay จะถูกส่งเมื่อความล่าช้าถึง 5 นาที
  • แอตทริบิวต์เวลา: ทั้งหมด รวมถึงแอตทริบิวต์ arrival_* และ _local เป็นประเภท String ไม่ใช่ Date ด้วยวิธีนี้ เวลาที่ว่างเปล่าจะไม่ถูกลบออกจากอีเวนต์ และเวลาท้องถิ่นจะคงค่า UTC offset ของสนามบินไว้ หากต้องการกรองตามวันที่ ให้ใช้ flight_date และ event_time