pancake-skills
Mục tiêu
Skill này cung cấp khả năng tương tác với Pancake Platform API - nền tảng quản lý bán hàng đa kênh. Hỗ trợ đầy đủ các thao tác:
- Pages: Liệt kê pages, tạo page access token
- Conversations: Quản lý hội thoại, gán tags, assign staff, đánh dấu read/unread
- Messages: Lấy lịch sử tin nhắn, gửi tin nhắn (inbox, reply comment, private reply)
- Customers: Quản lý khách hàng, thêm/sửa/xóa notes
- Statistics: Thống kê ads, engagement, page, tags, users
- Tags: Liệt kê tags của page
- Posts: Liệt kê bài viết
- Users: Quản lý staff, cấu hình round robin
- Upload: Upload media content
- Chat Plugin: Gửi tin nhắn qua chat plugin
Thiết lập môi trường (bắt buộc)
User API (endpoints /api/v1/pages):
USER_ACCESS_TOKEN: Token cá nhân, lấy từ Account → Personal Settings. Có hiệu lực 90 ngày.
Page API (endpoints /api/public_api/v1 và /api/public_api/v2):
PAGE_ACCESS_TOKEN: Token của page, lấy từ Settings → Tools. Không hết hạn trừ khi xóa/renew.
Tuỳ chọn:
PANCAKE_BASE_URL: Mặc định https://pages.fm
CONFIRM_WRITE: Set YES để cho phép thao tác ghi (POST/PUT/DELETE)
Cách gọi nhanh
Script gợi ý: scripts/pancake.sh
Ví dụ GET
# Liệt kê pages (User API)
export USER_ACCESS_TOKEN="***"
bash scripts/pancake.sh pages-list
# Liệt kê conversations của page (Page API)
export PAGE_ACCESS_TOKEN="***"
bash scripts/pancake.sh conversations-list 123456789
# Lọc conversations theo tags và type
bash scripts/pancake.sh conversations-list 123456789 "?tags=1,2&type=INBOX"
# Lấy tin nhắn trong conversation
bash scripts/pancake.sh messages-list 123456789 conv_abc123
# Liệt kê tags
bash scripts/pancake.sh tags-list 123456789
# Liệt kê staff
bash scripts/pancake.sh users-list 123456789
# Thống kê page (SINCE/UNTIL là Unix timestamp)
bash scripts/pancake.sh stats-page 123456789 1704067200 1706745600
Ví dụ WRITE
export PAGE_ACCESS_TOKEN="***"
export CONFIRM_WRITE=YES
# Gửi tin nhắn inbox
echo '{"action":"reply_inbox","message":"Xin chào!"}' | \
bash scripts/pancake.sh messages-send 123456789 conv_abc123
# Gửi tin nhắn với attachment (dùng content_ids từ upload API)
echo '{"action":"reply_inbox","content_ids":["xxx"]}' | \
bash scripts/pancake.sh messages-send 123456789 conv_abc123
# Reply comment
echo '{"action":"reply_comment","message_id":"comment123","message":"Cảm ơn bạn!"}' | \
bash scripts/pancake.sh messages-send 123456789 conv_abc123
# Private reply từ comment
echo '{"action":"private_replies","post_id":"post123","message_id":"comment123","message":"Inbox nhé!"}' | \
bash scripts/pancake.sh messages-send 123456789 conv_abc123
# Thêm tag vào conversation
echo '{"action":"add","tag_id":"123"}' | \
bash scripts/pancake.sh conversations-tag 123456789 conv_abc123
# Gỡ tag khỏi conversation
echo '{"action":"remove","tag_id":"123"}' | \
bash scripts/pancake.sh conversations-tag 123456789 conv_abc123
# Assign staff vào conversation
echo '{"assignee_ids":["user-uuid-1","user-uuid-2"]}' | \
bash scripts/pancake.sh conversations-assign 123456789 conv_abc123
# Đánh dấu conversation đã đọc
bash scripts/pancake.sh conversations-read 123456789 conv_abc123
# Cập nhật thông tin khách hàng
echo '{"changes":{"name":"Nguyễn Văn A","gender":"male","birthday":"1990-01-15"}}' | \
bash scripts/pancake.sh customers-update 123456789 customer_uuid
# Thêm ghi chú cho khách hàng
echo '{"message":"Khách hàng VIP, ưu tiên hỗ trợ"}' | \
bash scripts/pancake.sh customers-add-note 123456789 customer_uuid
# Upload file
bash scripts/pancake.sh upload 123456789 /path/to/image.jpg
# Cập nhật round robin users
echo '{"inbox":["user-uuid-1"],"comment":["user-uuid-2"]}' | \
bash scripts/pancake.sh users-round-robin 123456789
Guardrails
- Không ghi dữ liệu khi chưa set
CONFIRM_WRITE=YES
- Với thao tác ghi: luôn chạy 1 lệnh GET trước để xác nhận ID/shape dữ liệu
- Không lưu access token vào repo
- QUAN TRỌNG: Khi gửi message,
message và content_ids là MUTUALLY EXCLUSIVE - không được gửi cả hai cùng lúc
Endpoint thuộc skill này
User API (https://pages.fm/api/v1)
GET /pages - Liệt kê pages
POST /pages/{page_id}/generate_page_access_token - Tạo page access token
Page API v2 (https://pages.fm/api/public_api/v2)
GET /pages/{page_id}/conversations - Liệt kê conversations
Page API v1 (https://pages.fm/api/public_api/v1)
Conversations:
POST /pages/{page_id}/conversations/{conversation_id}/tags - Thêm/xóa tag
POST /pages/{page_id}/conversations/{conversation_id}/assign - Assign staff
POST /pages/{page_id}/conversations/{conversation_id}/read - Đánh dấu đã đọc
POST /pages/{page_id}/conversations/{conversation_id}/unread - Đánh dấu chưa đọc
Messages:
GET /pages/{page_id}/conversations/{conversation_id}/messages - Lấy tin nhắn
POST /pages/{page_id}/conversations/{conversation_id}/messages - Gửi tin nhắn
Customers:
GET /pages/{page_id}/page_customers - Liệt kê khách hàng
PUT /pages/{page_id}/page_customers/{page_customer_id} - Cập nhật khách hàng
POST /pages/{page_id}/page_customers/{page_customer_id}/notes - Thêm ghi chú
PUT /pages/{page_id}/page_customers/{page_customer_id}/notes - Sửa ghi chú
DELETE /pages/{page_id}/page_customers/{page_customer_id}/notes - Xóa ghi chú
Statistics:
GET /pages/{page_id}/statistics/pages_campaigns - Thống kê chiến dịch quảng cáo
GET /pages/{page_id}/statistics/ads - Thống kê quảng cáo
GET /pages/{page_id}/statistics/customer_engagements - Thống kê tương tác
GET /pages/{page_id}/statistics/pages - Thống kê page
GET /pages/{page_id}/statistics/tags - Thống kê tags
GET /pages/{page_id}/statistics/users - Thống kê users
Other:
GET /pages/{page_id}/tags - Liệt kê tags
GET /pages/{page_id}/posts - Liệt kê bài viết
GET /pages/{page_id}/users - Liệt kê users
POST /pages/{page_id}/round_robin_users - Cập nhật round robin
GET /pages/{page_id}/sip_call_logs - Lấy lịch sử cuộc gọi
GET /pages/{page_id}/export_data - Export dữ liệu
POST /pages/{page_id}/upload_contents - Upload media
Chat Plugin (https://pages.fm/api/v1)
POST /pke_chat_plugin/messages - Gửi tin nhắn qua chat plugin
GET /pke_chat_plugin/messages - Lấy tin nhắn chat plugin
Tham chiếu
- OpenAPI spec:
references/openapi-pancake.yaml
- Xem chi tiết parameters và response schema trong file OpenAPI
1---2name: pancake-skills3description: Tương tác với Pancake Platform API để quản lý pages, conversations, messages, customers, statistics, tags, posts, users. Sử dụng khi cần (1) Quản lý pages và tạo access token, (2) Xử lý conversations và messages, (3) Quản lý thông tin customers, (4) Xem statistics và analytics, (5) Quản lý tags và posts, (6) Quản lý users/staff, (7) Upload media content, (8) Chat plugin operations.4---56# pancake-skills78## Mục tiêu910Skill này cung cấp khả năng tương tác với Pancake Platform API - nền tảng quản lý bán hàng đa kênh. Hỗ trợ đầy đủ các thao tác:1112- **Pages**: Liệt kê pages, tạo page access token13- **Conversations**: Quản lý hội thoại, gán tags, assign staff, đánh dấu read/unread14- **Messages**: Lấy lịch sử tin nhắn, gửi tin nhắn (inbox, reply comment, private reply)15- **Customers**: Quản lý khách hàng, thêm/sửa/xóa notes16- **Statistics**: Thống kê ads, engagement, page, tags, users17- **Tags**: Liệt kê tags của page18- **Posts**: Liệt kê bài viết19- **Users**: Quản lý staff, cấu hình round robin20- **Upload**: Upload media content21- **Chat Plugin**: Gửi tin nhắn qua chat plugin2223## Thiết lập môi trường (bắt buộc)2425**User API** (endpoints `/api/v1/pages`):26- `USER_ACCESS_TOKEN`: Token cá nhân, lấy từ **Account → Personal Settings**. Có hiệu lực 90 ngày.2728**Page API** (endpoints `/api/public_api/v1` và `/api/public_api/v2`):29- `PAGE_ACCESS_TOKEN`: Token của page, lấy từ **Settings → Tools**. Không hết hạn trừ khi xóa/renew.3031**Tuỳ chọn**:32- `PANCAKE_BASE_URL`: Mặc định `https://pages.fm`33- `CONFIRM_WRITE`: Set `YES` để cho phép thao tác ghi (POST/PUT/DELETE)3435## Cách gọi nhanh3637Script gợi ý: `scripts/pancake.sh`3839### Ví dụ GET4041```bash42# Liệt kê pages (User API)43export USER_ACCESS_TOKEN="***"44bash scripts/pancake.sh pages-list4546# Liệt kê conversations của page (Page API)47export PAGE_ACCESS_TOKEN="***"48bash scripts/pancake.sh conversations-list 1234567894950# Lọc conversations theo tags và type51bash scripts/pancake.sh conversations-list 123456789 "?tags=1,2&type=INBOX"5253# Lấy tin nhắn trong conversation54bash scripts/pancake.sh messages-list 123456789 conv_abc1235556# Liệt kê tags57bash scripts/pancake.sh tags-list 1234567895859# Liệt kê staff60bash scripts/pancake.sh users-list 1234567896162# Thống kê page (SINCE/UNTIL là Unix timestamp)63bash scripts/pancake.sh stats-page 123456789 1704067200 170674560064```6566### Ví dụ WRITE6768```bash69export PAGE_ACCESS_TOKEN="***"70export CONFIRM_WRITE=YES7172# Gửi tin nhắn inbox73echo '{"action":"reply_inbox","message":"Xin chào!"}' | \74 bash scripts/pancake.sh messages-send 123456789 conv_abc1237576# Gửi tin nhắn với attachment (dùng content_ids từ upload API)77echo '{"action":"reply_inbox","content_ids":["xxx"]}' | \78 bash scripts/pancake.sh messages-send 123456789 conv_abc1237980# Reply comment81echo '{"action":"reply_comment","message_id":"comment123","message":"Cảm ơn bạn!"}' | \82 bash scripts/pancake.sh messages-send 123456789 conv_abc1238384# Private reply từ comment85echo '{"action":"private_replies","post_id":"post123","message_id":"comment123","message":"Inbox nhé!"}' | \86 bash scripts/pancake.sh messages-send 123456789 conv_abc1238788# Thêm tag vào conversation89echo '{"action":"add","tag_id":"123"}' | \90 bash scripts/pancake.sh conversations-tag 123456789 conv_abc1239192# Gỡ tag khỏi conversation93echo '{"action":"remove","tag_id":"123"}' | \94 bash scripts/pancake.sh conversations-tag 123456789 conv_abc1239596# Assign staff vào conversation97echo '{"assignee_ids":["user-uuid-1","user-uuid-2"]}' | \98 bash scripts/pancake.sh conversations-assign 123456789 conv_abc12399100# Đánh dấu conversation đã đọc101bash scripts/pancake.sh conversations-read 123456789 conv_abc123102103# Cập nhật thông tin khách hàng104echo '{"changes":{"name":"Nguyễn Văn A","gender":"male","birthday":"1990-01-15"}}' | \105 bash scripts/pancake.sh customers-update 123456789 customer_uuid106107# Thêm ghi chú cho khách hàng108echo '{"message":"Khách hàng VIP, ưu tiên hỗ trợ"}' | \109 bash scripts/pancake.sh customers-add-note 123456789 customer_uuid110111# Upload file112bash scripts/pancake.sh upload 123456789 /path/to/image.jpg113114# Cập nhật round robin users115echo '{"inbox":["user-uuid-1"],"comment":["user-uuid-2"]}' | \116 bash scripts/pancake.sh users-round-robin 123456789117```118119## Guardrails120121- Không ghi dữ liệu khi chưa set `CONFIRM_WRITE=YES`122- Với thao tác ghi: luôn chạy 1 lệnh GET trước để xác nhận ID/shape dữ liệu123- Không lưu access token vào repo124- **QUAN TRỌNG**: Khi gửi message, `message` và `content_ids` là **MUTUALLY EXCLUSIVE** - không được gửi cả hai cùng lúc125126## Endpoint thuộc skill này127128### User API (`https://pages.fm/api/v1`)129- `GET /pages` - Liệt kê pages130- `POST /pages/{page_id}/generate_page_access_token` - Tạo page access token131132### Page API v2 (`https://pages.fm/api/public_api/v2`)133- `GET /pages/{page_id}/conversations` - Liệt kê conversations134135### Page API v1 (`https://pages.fm/api/public_api/v1`)136137**Conversations:**138- `POST /pages/{page_id}/conversations/{conversation_id}/tags` - Thêm/xóa tag139- `POST /pages/{page_id}/conversations/{conversation_id}/assign` - Assign staff140- `POST /pages/{page_id}/conversations/{conversation_id}/read` - Đánh dấu đã đọc141- `POST /pages/{page_id}/conversations/{conversation_id}/unread` - Đánh dấu chưa đọc142143**Messages:**144- `GET /pages/{page_id}/conversations/{conversation_id}/messages` - Lấy tin nhắn145- `POST /pages/{page_id}/conversations/{conversation_id}/messages` - Gửi tin nhắn146147**Customers:**148- `GET /pages/{page_id}/page_customers` - Liệt kê khách hàng149- `PUT /pages/{page_id}/page_customers/{page_customer_id}` - Cập nhật khách hàng150- `POST /pages/{page_id}/page_customers/{page_customer_id}/notes` - Thêm ghi chú151- `PUT /pages/{page_id}/page_customers/{page_customer_id}/notes` - Sửa ghi chú152- `DELETE /pages/{page_id}/page_customers/{page_customer_id}/notes` - Xóa ghi chú153154**Statistics:**155- `GET /pages/{page_id}/statistics/pages_campaigns` - Thống kê chiến dịch quảng cáo156- `GET /pages/{page_id}/statistics/ads` - Thống kê quảng cáo157- `GET /pages/{page_id}/statistics/customer_engagements` - Thống kê tương tác158- `GET /pages/{page_id}/statistics/pages` - Thống kê page159- `GET /pages/{page_id}/statistics/tags` - Thống kê tags160- `GET /pages/{page_id}/statistics/users` - Thống kê users161162**Other:**163- `GET /pages/{page_id}/tags` - Liệt kê tags164- `GET /pages/{page_id}/posts` - Liệt kê bài viết165- `GET /pages/{page_id}/users` - Liệt kê users166- `POST /pages/{page_id}/round_robin_users` - Cập nhật round robin167- `GET /pages/{page_id}/sip_call_logs` - Lấy lịch sử cuộc gọi168- `GET /pages/{page_id}/export_data` - Export dữ liệu169- `POST /pages/{page_id}/upload_contents` - Upload media170171### Chat Plugin (`https://pages.fm/api/v1`)172- `POST /pke_chat_plugin/messages` - Gửi tin nhắn qua chat plugin173- `GET /pke_chat_plugin/messages` - Lấy tin nhắn chat plugin174175## Tham chiếu176177- OpenAPI spec: `references/openapi-pancake.yaml`178- Xem chi tiết parameters và response schema trong file OpenAPI