เชื่อมต่อ App Store Connect - แจ้งเตือนการรีวิว iOS

เชื่อม webhook ของ App Store Connect เข้ากับ Echobell เพื่อรับการแจ้งเตือนแบบพุชหรือสายโทรเข้าสำหรับสถานะการรีวิวแอป บิลด์ TestFlight และการอัปเดตการปล่อยเวอร์ชัน


Webhook ของ App Store Connect จะกระจายทุกความเปลี่ยนแปลงที่สำคัญในไปป์ไลน์การปล่อยแอป iOS ของคุณ เมื่อสัญญาณเหล่านั้นไหลเข้าสู่ Echobell ทีมของคุณจะเห็นผลการรีวิว การปล่อยเวอร์ชัน และฟีดแบ็กจาก TestFlight ทันทีที่เกิดขึ้น โดยไม่ต้องคอยรีเฟรชหน้าหรือรื้อค้นในกล่องอีเมล

ทำไมหลายทีมจึงเชื่อมต่อนี้:

  • ตอบสนองได้เร็วขึ้นเมื่อผลการรีวิวเปลี่ยนเป็น "Rejected" หรือ "Ready for Sale"
  • มีสายการแจ้งเตือนเดียวสำหรับทั้งฟีดแบ็ก TestFlight และการประมวลผลบิลด์
  • การแจ้งเตือนที่ชัดเจนและอ่านง่ายบนมือถือ ช่วยให้ PM, QA และฝ่ายการตลาดเห็นตรงกัน

Webhook ของ App Store Connect ใช้ได้กับนักพัฒนาที่มีบทบาท Account Holder, Admin หรือ App Manager แต่ละ webhook ใช้ได้กับแอปเดียวเท่านั้น และคุณสร้าง webhook ได้สูงสุด 10 รายการต่อแอป

สิ่งที่ต้องเตรียม

  • ช่อง Echobell ที่เปิดใช้ทริกเกอร์แบบ webhook แล้ว
  • สิทธิ์เข้าถึง App Store Connect (Account Holder, Admin หรือ App Manager)
  • แอป iOS ที่ใช้งานอยู่อย่างน้อยหนึ่งแอปเพื่อเฝ้าดู
  • Webhook URL ของ Echobell (ช่อง → Triggers)

สิ่งที่คุณเฝ้าดูได้

App Store Connect ส่งสัญญาณมายัง Echobell ได้ในกรณีต่อไปนี้:

  1. วงจรชีวิตของเวอร์ชันบน App Store — ความคืบหน้าการส่งตรวจ การอนุมัติ การถูกปฏิเสธ และการปล่อยเวอร์ชัน
  2. หมุดหมายของ TestFlight — ผลการประมวลผลบิลด์ ฟีดแบ็กจากผู้ทดสอบ และการเปลี่ยนสถานะคำเชิญ

ภาพรวมการตั้งค่า

  1. เตรียมช่อง Echobell พร้อมเทมเพลตการแจ้งเตือน
  2. คัดลอก webhook URL ของช่อง
  3. ตั้งค่า webhook ใน App Store Connect
  4. ส่งข้อมูลทดสอบเพื่อตรวจสอบรูปแบบข้อความ

คู่มือทีละขั้นตอน

สร้างช่องใน Echobell

  1. เปิดแอป Echobell
  2. สร้างช่องใหม่ (เช่น "App Store Connect")
  3. เลือกสีที่โดดเด่นเพื่อให้กวาดตาหาได้เร็ว
  4. เพิ่มเพื่อนร่วมทีมที่ควรได้รับอัปเดตเหล่านี้

ตั้งค่าเทมเพลตการแจ้งเตือน

ตั้งหัวข้อและสรุปที่ชัดเจนให้กับ payload ของแต่ละอีเวนต์ เพื่อให้ทีมลงมือได้อย่างรวดเร็ว

เทมเพลตหัวข้อ:

[{{app.name}}] {{eventType}} - {{status}}

เทมเพลตเนื้อหา:

📱 แอป: {{app.name}}
🔄 อีเวนต์: {{eventType}}
📊 สถานะ: {{status}}
⏰ เวลา: {{eventDate}}
💬 ข้อความ: {{message}}
🔗 ดูใน App Store Connect

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

รับ Webhook URL ของ Echobell

  1. เปิดหน้าตั้งค่าช่องของคุณ → Triggers
  2. คัดลอก webhook URL ที่ระบบให้มา
  3. เก็บไว้เป็นความลับ เพราะคุณจะนำไปวางใน App Store Connect

ตั้งค่า Webhook ใน App Store Connect

ทำตาม คู่มืออย่างเป็นทางการของ Apple โดยใช้ URL ของ Echobell ที่คุณคัดลอกไว้ก่อนหน้านี้:

สร้าง Webhook

  1. ลงชื่อเข้าใช้ App Store Connect
  2. ไปที่ Users and AccessIntegrations
  3. ในหัวข้อ Additional ให้คลิก Webhooks
  4. คลิกปุ่มเพิ่ม (+) ที่อยู่ข้าง Webhooks
  5. ตั้งค่า webhook ของคุณ:
    • Name: ชื่อที่สื่อความหมาย (เช่น "Echobell Notifications")
    • Payload URL: วาง webhook URL ของ Echobell
    • Secret: สร้างสตริงที่ปลอดภัยไว้ใช้ยืนยันความถูกต้อง
    • App: เลือกแอปที่คุณต้องการเฝ้าดู
    • Event Triggers: เลือกอีเวนต์ที่คุณต้องการติดตาม

อีเวนต์ทริกเกอร์ที่ใช้ได้

เลือกผสมกันได้ตามสิ่งที่คุณให้ความสำคัญ:

อีเวนต์ของเวอร์ชันบน App Store

  • App Store Version State Changed — ทุกความเคลื่อนไหวระหว่างสถานะการรีวิว
  • App Store Version Released — การปล่อยขึ้นสโตร์ครั้งสุดท้าย

อีเวนต์ของ TestFlight

  • TestFlight Beta Feedback — ความคิดเห็นใหม่ คะแนน และรายละเอียดอุปกรณ์
  • TestFlight Beta Review State Changed — การอนุมัติและการปฏิเสธบิลด์
  1. คลิก Add เพื่อสร้าง webhook

ทดสอบการเชื่อมต่อ

ใช้ปุ่ม Test ที่มีอยู่ใน App Store Connect:

  1. ในรายการ webhook ให้เปิด webhook ที่คุณเพิ่งเพิ่ม
  2. คลิก Test แล้ว App Store Connect จะส่ง ping ออกมา
  3. ยืนยันว่า Echobell แสดงอีเวนต์ "Ping" ตามรูปแบบเทมเพลตของคุณ

การตั้งค่าขั้นสูง

ความปลอดภัยของ Webhook

  1. HTTPS: URL ของ Echobell มาพร้อม TLS อยู่แล้ว ไม่ต้องตั้งค่าเพิ่ม
  2. การจัดการ secret: App Store Connect บังคับให้ใส่ secret แต่ Echobell ถือว่าเป็นข้อมูลเมตา เก็บไว้เผื่อคุณต้องการนำไปตรวจสอบลายเซ็นในภายหลัง
  3. การอนุญาต IP: รัดกุมยิ่งขึ้นด้วยการอนุญาตเฉพาะช่วง IP ขาออกของ Apple

เทมเพลตการแจ้งเตือนแบบกำหนดเอง

ใช้รูปแบบที่ต่างกันระหว่างการเปลี่ยนสถานะการรีวิวกับฟีดแบ็ก เพื่อให้สัญญาณชัดเจนขึ้น

สำหรับการเปลี่ยนสถานะแอป

  • หัวข้อ:
[{{app.name}}] App {{eventType}}
  • เนื้อหา:
🍎 สถานะแอป "{{app.name}}" ของคุณเปลี่ยนแล้ว!

📊 สถานะ: {{status}}
📅 วันที่: {{eventDate}}
  • ลิงก์:
{{app.url}}

สำหรับฟีดแบ็กของ TestFlight

  • หัวข้อ:
[{{app.name}}] มีฟีดแบ็ก TestFlight ใหม่
  • เนื้อหา:
📱 แอป: {{app.name}}
👤 ผู้ทดสอบ: {{tester.name}}
⭐ คะแนน: {{rating}}/5
💬 ฟีดแบ็ก: {{feedback}}
📱 อุปกรณ์: {{device}}
  • ลิงก์:
{{feedbackUrl}}

การจัดการหลายแอป

  • สร้างช่องแยกกันตามแอปหรือตามสภาพแวดล้อม ("MyApp - Beta", "MyApp - Prod")
  • ตั้งชื่อให้เป็นมาตรฐานเดียวกัน เพื่อให้เพื่อนร่วมทีมรู้ทันทีว่าต้องดูที่ไหน
  • เพิ่มกฎอัตโนมัติหรือช่วงเวลาเงียบให้แต่ละช่องเมื่อมีการแจ้งเตือนถี่ขึ้น
  • เพิ่มคนเข้าเฉพาะช่องที่ตรงกับบทบาทของเขาเท่านั้น

โครงสร้าง Payload ของ Webhook

App Store Connect ส่ง payload ของ webhook มาในรูปแบบ JSON โครงสร้างทั่วไปเป็นดังนี้:

{
  "eventType": "APP_STORE_VERSION_STATE_CHANGED",
  "apiVersion": "v1",
  "eventId": "12345678-1234-1234-1234-123456789012",
  "eventDate": "2025-01-15T10:30:00Z",
  "data": {
    "app": {
      "id": "1234567890",
      "name": "My App"
    },
    "appStoreVersion": {
      "id": "12345678",
      "versionString": "1.2.3",
      "state": "READY_FOR_SALE"
    }
  }
}

แนวปฏิบัติที่ดี

  1. การจัดระเบียบช่อง: สร้างช่องแยกกันสำหรับแต่ละแอปหรือแต่ละสภาพแวดล้อม
  2. การจัดการทีม: เพิ่มเฉพาะสมาชิกทีมที่เกี่ยวข้องเข้าแต่ละช่อง
  3. การปรับแต่งเทมเพลต: ปรับเทมเพลตให้แสดงข้อมูลที่เกี่ยวข้องกับเวิร์กโฟลว์ของคุณมากที่สุด
  4. ประเภทการแจ้งเตือน: ใช้แบบสำคัญตามเวลาสำหรับกรณีแอปถูกปฏิเสธซึ่งเป็นเรื่องวิกฤต และใช้แบบปกติสำหรับอัปเดตทั่วไป

การแก้ปัญหา

หากคุณไม่ได้รับการแจ้งเตือน:

  1. ตรวจสอบว่าคัดลอก webhook URL มาถูกต้อง
  2. ตรวจสอบว่าช่องยังใช้งานอยู่และมีผู้ติดตาม
  3. ตรวจสอบการตั้งค่า webhook ใน App Store Connect
  4. ใช้ปุ่ม Test ใน App Store Connect เพื่อตรวจสอบการเชื่อมต่อ
  5. ดูประวัติการส่ง webhook ใน App Store Connect

ความเป็นส่วนตัวและการจัดการข้อมูล

แนวทางที่ให้ความเป็นส่วนตัวมาก่อนของ Echobell:

  • เนื้อหาการแจ้งเตือนถูกเก็บไว้บนเครื่องของคุณ
  • เซิร์ฟเวอร์เก็บเฉพาะข้อมูลการตั้งค่าที่จำเป็นเท่านั้น
  • ควรถือว่า webhook URL เป็นข้อมูลลับ
  • ไม่มีการเก็บข้อมูลการแจ้งเตือนไว้บนเซิร์ฟเวอร์ของ Echobell

แหล่งข้อมูลเพิ่มเติม