VI | EN
Nhắn Messenger
Dành cho developer

Xuất hội thoại đến từ quảng cáo — API Pancake Chat

get /pages/{page_id}/export_data · gọi qua Quantri360 bằng một API key cho chính tài khoản / tài sản bạn đã kết nối và ủy quyền — 360 lo việc ký request và làm mới phiên đăng nhập bạn đã cấp.

get /pages/{page_id}/export_data

GET/public_api/v1/pages/{page_id}/export_dataGọi qua 360: GET https://partner.quantri360.com/v1/pancake_chat/public_api/v1/pages/{page_id}/export_data
Sắp mở. API này đã chạy thật qua 360 và đang được chốt giá — bạn có thể đọc tài liệu và chuẩn bị tích hợp trước.
Mô tả API

Xuất các hội thoại ĐẾN TỪ QUẢNG CÁO (khách bấm quảng cáo Click-to-Messenger) trong khoảng thời gian: mã hội thoại, mã quảng cáo khách đã bấm, SĐT khách để lại, nhãn, nhân viên đã xem / phụ trách. Dùng để đo chi phí trên mỗi hội thoại / mỗi SĐT theo từng quảng cáo và tỉ lệ khách để lại số.

  • Mỗi phần tử là một LƯỢT bấm, không phải một hội thoại: cùng id có thể lặp lại (thử thật: trang 60 bản ghi chỉ có 59 hội thoại khác nhau). Khóa đúng là (hội thoại, ad id, inserted_at).
  • Múi giờ trộn lẫn: inserted_at / updated_at là GIỜ VN, còn recent_seen_users[].seen_at và API tin nhắn / hội thoại trả UTC — lệch 7 giờ cho cùng sự kiện.
  • since / until là mốc UTC trong khi dữ liệu trả giờ VN → gọi từng ngày dễ hụt hội thoại ở rìa ngày. Nên quét một khoảng liền mạch nới thêm 1 ngày hai đầu rồi tự chia ngày theo inserted_at.
  • Thiếu action → HTTP 400 "Server internal error"; thiếu since / until → HTTP 500 "Server internal error" (chuỗi trơn, không phải JSON).
  • Phản hồi chứa tên, SĐT và đoạn tin nhắn của khách — chỉ lưu ở nơi có kiểm soát quyền. Pancake giới hạn 5 lượt / giây / trang: nghỉ ~1 giây giữa các lần.

Request

Địa chỉ

GET https://partner.quantri360.com/v1/pancake_chat/public_api/v1/pages/{page_id}/export_data

Xác thực & gian hàng

TênVị tríKiểuMẫuMô tả
AuthorizationheaderheaderBearer q360_live_ab12cd34_…Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand.
platform_shop_idquerystring107896751234567page_id đã nối — có thể bỏ (lấy từ đường dẫn).

Tham số request

TênVị tríKiểuBắt buộcMẫuMô tả
page_idpathstringCó107896751234567Mã trang đã nối với 360.
actionquerystringCóconversations_from_adsLuôn là conversations_from_ads.
sincequerytimestampCó1790614799Từ (Unix giây, UTC).
untilquerytimestampCó1793206799Đến (Unix giây, UTC).
offsetqueryintKhông0Vị trí bắt đầu, mặc định 0; mỗi lần trả tối đa 60 bản ghi.

Phân trang

Tăng offset thêm 60 (0, 60, 120…) tới khi data_length < 60. Bản ghi xếp theo inserted_at TĂNG dần (cũ trước).

Ví dụ request

curl -s "https://partner.quantri360.com/v1/pancake_chat/public_api/v1/pages/107896751234567/export_data?action=conversations_from_ads&since=1790614799&until=1793206799&offset=0" \
  -H "Authorization: Bearer $KEY"
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.get(
    "https://partner.quantri360.com/v1/pancake_chat/public_api/v1/pages/107896751234567/export_data",
    params={
        "action": "conversations_from_ads",
        "since": 1790614799,
        "until": 1793206799,
        "offset": 0
    },
    headers={"Authorization": f"Bearer {KEY}"},
    timeout=60,
)
print(r.status_code)
print(r.json())
Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/pancake_chat/public_api/v1/pages/107896751234567/export_data');
for (const [k, v] of Object.entries({"action":"conversations_from_ads","since":1790614799,"until":1793206799,"offset":0})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
  method: 'GET',
  headers: { Authorization: `Bearer ${KEY}` },
});
console.log(r.status, await r.json());
PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/pancake_chat/public_api/v1/pages/107896751234567/export_data' . '?' . http_build_query(['action' => 'conversations_from_ads', 'since' => 1790614799, 'until' => 1793206799, 'offset' => 0]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]);
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, "\n", $res;

Response

Tham số phản hồi (nguyên của Pancake Chat)

TênKiểuMẫuMô tả
successbooltrue
offsetint0offset đã dùng.
limitint60Số bản ghi tối đa / lần.
data_lengthint6Số bản ghi lần này.
id_export_historystring0c7cf221-…_107896751234567…Mã lượt xuất phía Pancake (không cần dùng).
dataobject[]Mỗi phần tử là MỘT LƯỢT bấm quảng cáo dẫn tới hội thoại.
idstring107896751234567_7712345678901234Mã hội thoại — dùng cho API tin nhắn.
psidstring7712345678901234PSID khách.
inserted_atstring2026-10-04T08:57:33Thời điểm bấm quảng cáo / mở hội thoại — GIỜ VN.
updated_atstring2026-10-04T09:01:02Cập nhật cuối — giờ VN.
ad_clicksstring[]["120247891034600559"]Mã quảng cáo khách đã bấm (tra tên ở /ads).
tagsint[][39]Mã nhãn (số; có thể có mã âm không nằm trong /tags).
fromobjectKhách: id, name, email.
customersobject[]Hồ sơ khách: id, fb_id, name.
recent_phone_numbersobject[][]SĐT khách để lại: phone_number, captured, m_id (mã tin chứa số), m_content (nội dung tin chứa số), offset, length, status.
recent_seen_usersobject[]Nhân viên đã xem: fb_id, fb_name, seen_at (giờ UTC).
assigneesobject[][]Nhân viên phụ trách: id, name.
thread_keystringt_3000802860213832Mã luồng Messenger.
is_bannedboolfalseKhách bị chặn.

Mẫu phản hồi

{
  "data": [
    {
      "id": "107896751234567_7712345678901234",
      "psid": "7712345678901234",
      "inserted_at": "2026-10-04T08:57:33",
      "updated_at": "2026-10-04T09:01:02",
      "ad_clicks": [
        "120247891034600559"
      ],
      "tags": [
        39
      ],
      "from": {
        "id": "7712345678901234",
        "name": "Khách hàng A",
        "email": "7712345678901234@facebook.com"
      },
      "customers": [
        {
          "id": "23aeef26-8157-…",
          "fb_id": "7712345678901234",
          "name": "Khách hàng A"
        }
      ],
      "recent_phone_numbers": [],
      "recent_seen_users": [
        {
          "fb_id": "100000920907782",
          "fb_name": "Nhân viên B",
          "seen_at": "2026-10-04T02:01:00.693950"
        }
      ],
      "thread_key": "t_3000802860213832",
      "is_banned": false,
      "assignees": []
    }
  ],
  "offset": 0,
  "success": true,
  "limit": 60,
  "data_length": 6,
  "id_export_history": "0c7cf221-…"
}

Bắt đầu dùng

  1. Đăng ký tài khoản Partner
  2. Mở loại dữ liệu thuộc nhóm Thống kê ở trang nền tảng
  3. Tạo API key (tick kênh Pancake Chat)
  4. Gọi theo ví dụ ở trên