API Notiondesk cho phép bạn đọc và thay đổi thương hiệu của trung tâm trợ giúp: màu sắc, phông chữ, bố cục, tiêu đề và chân trang, liên kết, hiển thị tìm kiếm và phản hồi, và chủ đề. Sử dụng nó để triển khai cùng một thương hiệu trên nhiều trung tâm trợ giúp, hoặc để giữ thương hiệu của bạn trong mã nguồn bên cạnh phần còn lại của hệ thống thiết kế.
| Phương pháp | Con đường | Phạm vi | Làm |
|---|---|---|---|
GET | /sites/{site_id}/settings/customize | read | Đọc phần mô tả thương hiệu. |
PATCH | /sites/{site_id}/settings/customize | admin | Cập nhật thương hiệu |
GET | /sites/{site_id}/themes | read | Liệt kê các chủ đề có sẵn |
Thương hiệu hiển thị trên mọi trang công khai, vì vậy việc cập nhật cần phạm vi admin, chứ không phải write. Chỉ khóa do chủ sở hữu không gian làm việc hoặc Quản trị viên tạo mới có quyền admin.
Để thay đổi thương hiệu trong bảng điều khiển, hãy xem Tùy chỉnh màu sắc và phông chữ của trung tâm trợ giúp .
Những gì API không thay đổi
Những mục này chỉ hiển thị trên bảng điều khiển. Tuyến đọc không trả về chúng và một bản cập nhật đặt tên cho một mục sẽ trả về lỗi 400 validation_error:
- Tùy chỉnh CSS và JavaScript. Xem phần "Tùy chỉnh trung tâm trợ giúp của bạn với CSS tùy chỉnh ";
- Logo (sáng và tối), logo chân trang (sáng và tối), favicon, hình ảnh mạng xã hội và hình ảnh đầu trang (sáng và tối).
Hãy đọc kỹ thông tin thương hiệu của bạn.
Phản hồi chứa chính xác các trường mà bản cập nhật chấp nhận, với cùng tên gọi. Ví dụ rút gọn:
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/customize" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"{
"colors": {
"primary": "#2563eb",
"text": "#111827",
"link": "#2563eb",
"link_hover": "#1d4ed8",
"header": "#2563eb",
"header_text": "#ffffff",
"background": "#ffffff",
"footer_background": ""
},
"appearance": null,
"layout_collection": "column_2",
"layout_article": "column_1",
"footer_layout": "compact",
"primary_font": "Inter",
"header_links": [{"title": "Docs", "url": "https://example.com/docs"}],
"footer_links": [{"title": "Product", "links": [{"title": "Pricing", "url": "https://example.com/pricing"}]}],
"show_powered_by_badge": false,
"theme": null
}- Màu chưa từng được thiết lập sẽ hiển thị là
"".colors.darkchứa các màu của chế độ tối và sẽ không xuất hiện khi trung tâm trợ giúp không có bảng màu tối.
- Một danh sách không chứa gì sẽ hiển thị là
[].
themelàcodecủa chủ đề hiện tại, haynull.
Cập nhật thương hiệu của bạn
Tuyến đường trả lời 204 No Content. Hãy đọc lại phần mô tả thương hiệu để xác nhận sự thay đổi.
curl -i -X PATCH "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/customize" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Content-Type: application/json" \
-d '{"primary_font": "Inter", "colors": {"primary": "#2563eb"}, "header_links": [{"title": "Docs", "url": "https://example.com/docs"}]}'- Một trường bạn bỏ trống vẫn giữ nguyên giá trị của nó. Bên trong
colors, một màu bạn bỏ trống cũng giữ nguyên giá trị của nó.
- Danh sách bạn gửi sẽ thay thế toàn bộ danh sách đã lưu trữ, và
[]sẽ xóa sạch danh sách đó.
- Màu sắc được biểu diễn bằng mã thập lục phân
#rrggbbhoặc"". Các dạng viết tắt như#fffsẽ bị từ chối.
- Gửi các giá trị boolean JSON. Các giá trị
0và"false"được đọc làtrue, vànulllàfalse.
Cập nhật an toàn: đọc, chỉnh sửa, gửi lại
Cách an toàn nhất để cập nhật thương hiệu là gửi lại nội dung bạn đã đọc, sau khi đã áp dụng các thay đổi của bạn. Một trường được gửi với giá trị hiện tại sẽ được chấp nhận trên mọi gói dịch vụ, vì vậy cách này sẽ không bao giờ vượt quá giới hạn của gói dịch vụ đối với các trường mà bạn không chỉnh sửa.
Nội dung gửi trả vẫn có thể bị từ chối trong hai trường hợp. Sửa giá trị trong bảng điều khiển hoặc bỏ trường đó ra khỏi nội dung:
const url = "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/customize";
const headers = {
Authorization: `Bearer ${process.env.NOTIONDESK_API_KEY}`,
"nd-version": "2026-10-16",
"Content-Type": "application/json",
};
const branding = await (await fetch(url, { headers })).json();
branding.colors.primary = "#7c3aed";
branding.colors.link = "#7c3aed";
const response = await fetch(url, { method: "PATCH", headers, body: JSON.stringify(branding) });
console.log(response.status);- một màu được lưu trữ dưới dạng viết tắt như
#fff;
- Một danh sách được lưu trữ dài hơn các giới hạn bên dưới.
Các trường bạn có thể thay đổi
| Khu vực | Các cánh đồng |
|---|---|
| Màu sắc | colors với primary, text, link, link_hover, header, header_top, header_text, header_top_text, header_link, header_link_hover, background, footer_background, footer_text, article_card_background, collection_card_background, aside_menu_text, aside_menu_text_hover, aside_menu_background_hover và dark với các trường giống nhau cho chế độ tối. |
| Vẻ bề ngoài | appearance (default: light, dark hoặc system; strict: boolean) |
| Phông chữ và bố cục | primary_font, secondary_font, layout_collection, layout_article (column_1, column_2 hoặc column_3), theme |
| Tiêu đề | header_variant (hero hoặc bar), headline_size, header_background_type (color, image hoặc gradient), header_gradient_type, header_gradient_angle, header_gradient_colors, header_shape_type, header_links, header_link_translations, homepage_link, homepage_link_translations |
| Tìm kiếm | search_bar_length, search_bar_alignment, search_bar_corner_style, search_bar_shadow, search_result_variant, instant_search, segmented_search_results, ai_search_enabled, ai_search_display_mode, ai_search_aside_position |
| Bộ sưu tập | collections_style, collection_card_corner_style, collection_section_variant, collection_content_variant, collapsable_sub_categories, collapsable_sub_categories_default_state, show_collection_icons, show_collection_descriptions, show_collection_content, show_collection_authors, show_collection_articles_count |
| Bài viết | articles_style, article_card_corner_style, content_tabs_style, article_footer_variant, table_of_contents_position, show_table_of_contents, show_article_icons, show_article_descriptions, show_article_authors, show_related_articles, show_breadcrumb_icon, show_article_publish_date, show_article_page_author |
| Nhận xét | show_article_feedback_form, require_email_for_article_feedback, feedback_reaction_style (emoji hoặc thumbs), feedback_question_label, feedback_comment_mode |
| Thực đơn phụ | aside_menu_expansion_mode, show_aside_menu_article_icons, show_aside_menu_collection_icons |
| Chân trang | footer_layout (compact, standard hoặc multi_level), footer_shape_type, footer_links, footer_link_translations, footer_text_translations, social_media_links, social_link_translations |
| Nút liên hệ | show_contact_us_button, contact_us_custom_link, contact_us_button_position (header hoặc footer) |
| Huy hiệu | show_powered_by_badge |
Các liên kết là các đối tượng có title và url. Các nhóm liên kết chân trang là các đối tượng có title và danh sách links. Bản dịch là các đối tượng có locale và bản dịch tương ứng có links, groups hoặc value.
Giới hạn kế hoạch
| Các cánh đồng | Cần có tính năng lập kế hoạch để thay đổi chúng. |
|---|---|
show_powered_by_badge | Xóa bỏ logo thương hiệu. Xem Cách xóa huy hiệu "Powered by Notiondesk". |
theme, header_shape_type, instant_search, segmented_search_results, ai_search_display_mode, ai_search_aside_position, show_article_publish_date, show_article_page_author, các trường phản hồi, các trường menu bên, các trường chân trang, các liên kết mạng xã hội và các trường nút liên hệ | Tùy chỉnh nâng cao |
Việc thay đổi một trong số chúng trên gói cước không có tính năng đó sẽ trả về lỗi 403 permission_denied, thông báo nêu tên tính năng nhưng không có nội dung nào được ghi lại.
Nếu không tùy chỉnh nâng cao, màu sắc chân trang sẽ giữ nguyên giá trị đã lưu mà không có lỗi. Nếu không bật chatbot AI, ai_search_display_mode, ai_search_aside_position và ai_search_enabled: true cũng giữ nguyên giá trị đã lưu.
Giới hạn danh sách
- Mỗi danh sách chứa tối đa 100 mục, và mỗi danh sách
linkshoặcgroupsbên trong nó cũng vậy.
- Tổng cộng tất cả các danh sách có thể chứa tối đa 3.000 mục, bao gồm cả các mục lồng nhau và các danh sách đã lưu trữ mà phần thân danh sách không hiển thị.
Nút liên hệ sẽ bật biểu mẫu liên hệ.
Trong khi show_contact_us_button là true trên gói có tùy chỉnh nâng cao, mỗi lần cập nhật thương hiệu sẽ bật biểu mẫu liên hệ của trung tâm trợ giúp, giống như thao tác lưu trong bảng điều khiển. Xem phần biểu mẫu liên hệ của Cập nhật cài đặt trung tâm trợ giúp bằng API Notiondesk .
Chọn một chủ đề
Danh sách luôn chứa mọi chủ đề trong một phản hồi duy nhất, theo thứ tự hiển thị. Áp dụng một chủ đề bằng cách gửi code của nó dưới dạng theme:
Việc thiết lập chủ đề cần tùy chỉnh nâng cao. Gửi "theme": null sẽ giữ nguyên chủ đề.
Lỗi
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/themes" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"{
"object": "list",
"data": [
{
"code": "ocean",
"name": "Ocean",
"description": "A calm, airy theme",
"preview_image_url": "https://example.com/ocean.png",
"layout": "default"
}
],
"has_more": false,
"next_cursor": null
}curl -i -X PATCH "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/customize" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Content-Type: application/json" \
-d '{"theme": "ocean"}'| Trạng thái | Khi | code |
|---|---|---|
| 400 | Tên phần thân là tên của một trường chỉ hiển thị trên bảng điều khiển, giá trị không phải là một trong các lựa chọn của trường, màu sắc không phải là #rrggbb, giá trị bắt buộc là null, danh sách quá dài, theme không đặt tên cho chủ đề nào, hoặc phần thân chứa một trường không xác định. | validation_error |
| 403 | Khóa này thiếu phạm vi read hoặc admin để cập nhật. | insufficient_scope |
| 403 | Bản cập nhật thay đổi một trường mà gói của bạn không bao gồm hoặc người tạo khóa không thể thay đổi trung tâm trợ giúp này. | permission_denied |
| 404 | Trung tâm trợ giúp không tồn tại trong không gian làm việc của bạn. | not_found |
Lỗi trường sẽ đặt tên cho giá trị, ví dụ: colors.primary hoặc footer_links[0].links. Xem Xử lý lỗi API Notiondesk, giới hạn tỷ lệ và số lần thử lại .
Câu hỏi thường gặp
Tôi có thể tải lên logo bằng API Notiondesk không?
Không. Logo, favicon và hình ảnh tiêu đề được thiết lập trong bảng điều khiển.
Tôi có thể thay đổi CSS hoặc JavaScript tùy chỉnh bằng API không?
Không. CSS và JavaScript tùy chỉnh chỉ dành cho bảng điều khiển và API không bao giờ đọc hoặc thay đổi chúng.
Tại sao bản cập nhật của tôi lại trả về lỗi 403 ở một trường mà tôi không hề thay đổi?
Bạn đã gửi một giá trị khác với giá trị đã lưu trữ trên một trường không có trong gói dịch vụ của bạn. Hãy đọc mô tả thương hiệu trước rồi gửi lại giá trị đã lưu trữ, hoặc bỏ qua trường đó.
Việc cập nhật thương hiệu có cần đồng bộ hóa không?
Không. Bản cập nhật sẽ tự động làm mới toàn bộ trung tâm trợ giúp.