---
title: "Tích hợp App Store Connect - Cảnh báo duyệt iOS"
sidebarTitle: App Store Connect
description: Kết nối webhook App Store Connect với Echobell để nhận thông báo đẩy hoặc cuộc gọi về trạng thái duyệt ứng dụng, bản dựng TestFlight và cập nhật phát hành.
---

import { Step, Steps } from "fumadocs-ui/components/steps";

# Tích hợp App Store Connect

Webhook của App Store Connect phát đi mọi thay đổi đáng chú ý trong quy trình phát hành iOS của bạn. Khi những tín hiệu đó chảy vào Echobell, cả nhóm sẽ thấy quyết định duyệt, bản phát hành và phản hồi TestFlight ngay khi chúng xảy ra — không cần tải lại trang hay lục hộp thư.

**Vì sao các nhóm thiết lập tích hợp này:**

- Phản ứng nhanh hơn khi trạng thái duyệt chuyển sang "Rejected" hay "Ready for Sale"
- Một luồng thông báo duy nhất cho phản hồi TestFlight và quá trình xử lý bản dựng
- Cảnh báo rõ ràng, dễ đọc trên di động, giúp PM, QA và marketing luôn đồng bộ

<Callout type="info">
  Webhook của App Store Connect chỉ dành cho lập trình viên có vai trò Account
  Holder, Admin hoặc App Manager. Mỗi webhook chỉ áp dụng cho một ứng dụng, và
  bạn có thể tạo tối đa mười webhook cho mỗi ứng dụng.
</Callout>

## Điều kiện cần có

- Kênh Echobell đã bật kích hoạt bằng webhook
- Quyền truy cập App Store Connect (Account Holder, Admin hoặc App Manager)
- Ít nhất một ứng dụng iOS đang hoạt động để theo dõi
- Webhook URL của Echobell (Kênh → **Kích hoạt**)

## Bạn có thể theo dõi những gì

App Store Connect có thể báo tới Echobell về:

1. **Vòng đời phiên bản trên App Store** — tiến trình nộp bài, phê duyệt, từ chối, phát hành
2. **Các mốc TestFlight** — kết quả xử lý bản dựng, phản hồi của tester, thay đổi trạng thái lời mời

## Tổng quan thiết lập

1. Chuẩn bị một kênh Echobell cùng các mẫu thông báo
2. Sao chép webhook URL của kênh
3. Cấu hình một webhook trong App Store Connect
4. Gửi thử một lượt gửi để kiểm tra định dạng

## Hướng dẫn từng bước

<Steps>
<Step>
### Tạo một kênh Echobell

1. Mở ứng dụng Echobell
2. Tạo một kênh mới (ví dụ: "App Store Connect")
3. Chọn một màu dễ nhận biết để quét nhanh bằng mắt
4. Thêm các đồng đội cần nhận những cập nhật này
</Step>
<Step>

### Cấu hình mẫu thông báo

Hãy đặt cho mỗi payload sự kiện một tiêu đề và tóm tắt rõ ràng để cả nhóm hành động nhanh chóng.

**Mẫu tiêu đề:**

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

**Mẫu nội dung:**

```
📱 App: {{app.name}}
🔄 Event: {{eventType}}
📊 Status: {{status}}
⏰ Time: {{eventDate}}
💬 Message: {{message}}
🔗 View in App Store Connect
```

Cứ bỏ emoji đi nếu bạn thích văn phong khô khan hơn — các biến trong mẫu vẫn giữ nguyên.

</Step>
<Step>
### Lấy webhook URL của Echobell

1. Mở phần cài đặt kênh → **Kích hoạt** (Triggers)
2. Sao chép webhook URL được cung cấp
3. Giữ kín URL này; bạn sẽ dán nó vào App Store Connect
</Step>
<Step>

### Cấu hình webhook trong App Store Connect

Làm theo [hướng dẫn chính thức của Apple](https://developer.apple.com/help/app-store-connect/manage-your-team/manage-webhooks/) với URL Echobell bạn vừa sao chép:

#### Tạo một webhook

1. Đăng nhập [App Store Connect](https://appstoreconnect.apple.com/)
2. Vào **Users and Access** → **Integrations**
3. Ở mục **Additional**, nhấp **Webhooks**
4. Nhấp nút thêm (+) bên cạnh Webhooks
5. Cấu hình webhook của bạn:
   - **Name**: Nhãn mô tả (ví dụ: "Echobell Notifications")
   - **Payload URL**: Dán webhook URL của Echobell
   - **Secret**: Tạo một chuỗi an toàn để xác minh
   - **App**: Chọn ứng dụng bạn muốn theo dõi
   - **Event Triggers**: Chọn những sự kiện bạn muốn theo dõi

#### Các sự kiện kích hoạt có sẵn

Kết hợp tùy theo nhu cầu của bạn:

**Sự kiện phiên bản App Store**

- **App Store Version State Changed** — mọi bước chuyển trạng thái trong quá trình duyệt
- **App Store Version Released** — lần đẩy cuối cùng lên cửa hàng

**Sự kiện TestFlight**

- **TestFlight Beta Feedback** — bình luận, đánh giá và thông tin thiết bị mới
- **TestFlight Beta Review State Changed** — bản dựng được duyệt hoặc bị từ chối

7. Nhấp **Add** để tạo webhook
</Step>
<Step>

### Kiểm thử tích hợp

Dùng nút **Test** có sẵn của App Store Connect:

1. Trong danh sách webhook, mở webhook bạn vừa thêm
2. Nhấp **Test** → App Store Connect gửi một ping
3. Xác nhận Echobell hiển thị sự kiện "Ping" với đúng định dạng mẫu của bạn
</Step>
</Steps>

## Cấu hình nâng cao

### Bảo mật webhook

1. **HTTPS**: URL của Echobell luôn đi kèm TLS; không cần thiết lập gì thêm.
2. **Xử lý secret**: App Store Connect bắt buộc phải có secret, nhưng Echobell chỉ coi nó là siêu dữ liệu. Hãy lưu lại để sau này bạn có thể xác thực chữ ký nếu muốn.
3. **Danh sách IP cho phép**: Siết chặt tường lửa bằng cách chỉ cho phép các dải IP đi ra của Apple.

### Mẫu thông báo tùy chỉnh

Dùng bố cục khác nhau cho thay đổi trạng thái duyệt và cho phản hồi, để tín hiệu luôn rõ ràng.

**Cho thay đổi trạng thái ứng dụng**

- Tiêu đề:

```
[{{app.name}}] App {{eventType}}
```

- Nội dung:

```
🍎 Your app "{{app.name}}" status has changed!

📊 Status: {{status}}
📅 Date: {{eventDate}}
```

- Liên kết:

```
{{app.url}}
```

**Cho phản hồi TestFlight**

- Tiêu đề:

```
[{{app.name}}] New TestFlight Feedback
```

- Nội dung:

```
📱 App: {{app.name}}
👤 Tester: {{tester.name}}
⭐ Rating: {{rating}}/5
💬 Feedback: {{feedback}}
📱 Device: {{device}}
```

- Liên kết:

```
{{feedbackUrl}}
```

### Quản lý nhiều ứng dụng

- Lập kênh riêng cho từng ứng dụng hoặc từng môi trường ("MyApp - Beta", "MyApp - Prod")
- Chuẩn hóa cách đặt tên để đồng đội biết ngay cần xem ở đâu
- Thêm quy tắc tự động hoặc giờ im lặng cho từng kênh khi lưu lượng tăng đột biến
- Chỉ thêm mỗi người vào những kênh phù hợp với vai trò của họ

## Cấu trúc payload của webhook

App Store Connect gửi payload webhook ở định dạng JSON. Cấu trúc thường gặp như sau:

```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"
    }
  }
}
```

## Thực hành tốt nhất

1. **Sắp xếp kênh**: Tạo kênh riêng cho từng ứng dụng hoặc môi trường khác nhau
2. **Quản lý nhóm**: Chỉ thêm những thành viên thực sự liên quan vào mỗi kênh
3. **Tùy chỉnh mẫu**: Điều chỉnh mẫu để hiển thị thông tin sát nhất với quy trình của bạn
4. **Kiểu thông báo**: Dùng Khẩn cấp cho các trường hợp ứng dụng bị từ chối, Thông thường cho cập nhật thường lệ

## Khắc phục sự cố

Nếu bạn không nhận được thông báo:

1. Kiểm tra webhook URL đã được sao chép đúng chưa
2. Kiểm tra kênh có đang hoạt động và có người đăng ký không
3. Kiểm tra lại cấu hình webhook trong App Store Connect
4. Dùng nút Test trong App Store Connect để kiểm tra kết nối
5. Xem lịch sử gửi webhook trong App Store Connect

## Quyền riêng tư và xử lý dữ liệu

Cách tiếp cận ưu tiên quyền riêng tư của Echobell:

- Nội dung thông báo được lưu cục bộ trên thiết bị của bạn
- Chỉ dữ liệu cấu hình thiết yếu được lưu trên máy chủ
- Webhook URL cần được coi như thông tin bí mật
- Không có dữ liệu cảnh báo nào được giữ lại trên máy chủ Echobell

## Tài nguyên bổ sung

- [Tài liệu Webhook của Apple](https://developer.apple.com/help/app-store-connect/manage-your-team/manage-webhooks/)
- [Tích hợp Webhook của Echobell](/docs/webhook)
- [Hướng dẫn mẫu thông báo](/docs/template)
- [Trung tâm hỗ trợ](/docs/support)
