Personalizza il branding e i temi del centro assistenza con l'API Notiondesk

Aggiornamento del branding del centro assistenza Notiondesk tramite API REST: colori, caratteri, layout, link di intestazione e piè di pagina, visualizzazione dei risultati di ricerca e temi.

7 min di lettura

L'API Notiondesk consente di leggere e modificare l'immagine coordinata del centro assistenza: colori, caratteri, layout, intestazione e piè di pagina, collegamenti, visualizzazione della ricerca e del feedback e tema. Utilizzala per implementare lo stesso marchio in diversi centri assistenza o per mantenere l'immagine coordinata nel codice insieme al resto del sistema di progettazione.

Metodo Sentiero Ambito di applicazione Fa
GET/sites/{site_id}/settings/customizereadLegge il marchio
PATCH/sites/{site_id}/settings/customizeadminAggiorna il marchio
GET/sites/{site_id}/themesreadElenca i temi disponibili

Il branding è visibile su ogni pagina pubblica, quindi per aggiornarlo è necessario l'ambito admin, non write. Solo una chiave creata dal proprietario di un'area di lavoro o da un amministratore detiene admin.

Per modificare il branding nella dashboard, consulta la sezione Personalizzare i colori e i caratteri del centro assistenza .

Ciò che l'API non cambia

Questi rimangono solo nella dashboard. Il percorso di lettura non li restituisce e un aggiornamento che ne nomina uno risponde 400 validation_error:

  • loghi (chiaro e scuro), loghi a piè di pagina (chiaro e scuro), favicon, immagine per i social media e immagini di intestazione (chiaro e scuro).

Leggi il tuo marchio

La risposta contiene esattamente i campi accettati dall'aggiornamento, con gli stessi nomi. Ecco un esempio abbreviato:

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
}
  • Un colore che non è mai stato impostato è "". colors.dark contiene i colori della modalità scura ed è assente quando il centro assistenza non ha una tavolozza scura.
  • Un elenco vuoto si legge [].
  • theme è il code del tema corrente, ovvero null.

Aggiorna il tuo marchio

Il percorso risponde 204 No Content. Rileggi il branding per confermare la modifica.

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"}]}'
  • Un campo che ometti mantiene il suo valore. All'interno di colors, anche un colore che ometti mantiene il suo valore.
  • Un elenco inviato sostituisce l'intero elenco memorizzato e [] lo svuota.
  • I colori sono valori esadecimali #rrggbb o "". Le forme abbreviate come #fff vengono rifiutate.
  • Invia valori booleani JSON. I valori 0 e "false" vengono letti come true, e null come false.
Ogni aggiornamento accettato aggiorna l'intero centro assistenza: Notiondesk cancella le pagine memorizzate nella cache e ricostruisce ogni pagina, indipendentemente dalle modifiche apportate dall'aggiornamento. Invia ogni modifica in un'unica richiesta, non una richiesta per ogni campo.

Aggiornamenti sicuri: leggi, modifica, rimanda indietro

Il modo più sicuro per aggiornare il branding è inviare nuovamente il testo letto, con le modifiche apportate. Un campo inviato con il suo valore attuale è accettato da qualsiasi piano, quindi questo schema non supera mai i limiti del piano per i campi che non sono stati modificati.

Un corpo della risposta può comunque essere rifiutato in due casi. Correggi il valore nella dashboard oppure ometti quel campo dal corpo della risposta:

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);
  • un colore memorizzato in forma abbreviata come #fff;
  • un elenco memorizzato più lungo dei limiti indicati di seguito.

Campi che è possibile modificare

Zona Campi
Colori colors con 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 e dark con gli stessi campi per la modalità scura
Aspetto appearance (default: light, dark o system; strict: booleano)
Caratteri e layout primary_font, secondary_font, layout_collection, layout_article (column_1, column_2 o column_3), theme
Intestazione header_variant (hero o bar), headline_size, header_background_type (color, image o gradient), header_gradient_type, header_gradient_angle, header_gradient_colors, header_shape_type, header_links, header_link_translations, homepage_link, homepage_link_translations
Ricerca 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
Collezioni 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
Articoli 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
Feedback show_article_feedback_form, require_email_for_article_feedback, feedback_reaction_style (emoji o thumbs), feedback_question_label, feedback_comment_mode
Menù laterale aside_menu_expansion_mode, show_aside_menu_article_icons, show_aside_menu_collection_icons
Piè di pagina footer_layout (compact, standard o multi_level), footer_shape_type, footer_links, footer_link_translations, footer_text_translations, social_media_links, social_link_translations
Pulsante di contatto show_contact_us_button, contact_us_custom_link, contact_us_button_position (header o footer)
Distintivoshow_powered_by_badge

I collegamenti sono oggetti con un title e un url. I gruppi di collegamenti del piè di pagina sono oggetti con un title e un elenco links. Le traduzioni sono oggetti con un locale e il links, groups o value tradotto.

Piano limite

Campi È necessaria la funzione Piano per modificarli
show_powered_by_badgeRimuovi il marchio. Vedi Come rimuovere il badge 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, i campi di feedback, i campi del menu laterale, i campi del piè di pagina, i link social e i campi del pulsante di contatto Personalizzazione avanzata

Modificandone uno su un piano senza la funzionalità, si ottiene l'errore 403 permission_denied, il messaggio indica la funzionalità e non viene scritto nulla.

Senza personalizzazioni avanzate, i colori del piè di pagina mantengono il loro valore memorizzato senza errori. Senza un chatbot AI abilitato, anche ai_search_display_mode, ai_search_aside_position e ai_search_enabled: true mantengono il loro valore memorizzato.

Elenco delle dimensioni

  • Ciascun elenco può contenere fino a 100 voci, così come ciascun elenco links o groups al suo interno.
  • Tutte le liste insieme possono contenere fino a 3.000 voci, comprese le voci annidate e le liste memorizzate che il tuo corpo esclude.

Il pulsante di contatto attiva il modulo di contatto

Mentre show_contact_us_button è true su un piano con personalizzazione avanzata, ogni aggiornamento del marchio attiva il modulo di contatto del centro assistenza, come avviene con un salvataggio nella dashboard. Consulta la sezione relativa al modulo di contatto in Aggiornare le impostazioni del centro assistenza con l'API Notiondesk .

Scegli un tema

L'elenco contiene sempre tutti i temi in una risposta, nell'ordine di visualizzazione. Applicane uno inviando il suo code come theme:

L'impostazione di un tema richiede una personalizzazione avanzata. L'invio di "theme": null lascia il tema invariato.

Errori

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"}'
Stato Quandocode
400 Il corpo specifica un campo presente solo nella dashboard, un valore non è una delle opzioni del campo, un colore non è #rrggbb, un valore obbligatorio è null, un elenco è troppo lungo, theme non specifica alcun tema oppure il corpo contiene un campo sconosciutovalidation_error
403 La chiave non ha l'ambito read o admin per l'aggiornamentoinsufficient_scope
403 L'aggiornamento modifica un campo non incluso nel tuo piano oppure il creatore della chiave non può modificare questo centro assistenzapermission_denied
404 Il centro assistenza non è presente nel tuo spazio di lavoronot_found

Gli errori di campo specificano il valore, ad esempio colors.primary o footer_links[0].links. Vedi Gestione degli errori API, dei limiti di frequenza e dei tentativi di invio per Notiondesk .

Domande frequenti

Posso caricare un logo tramite l'API Notiondesk?

No. I loghi, la favicon e le immagini dell'intestazione vengono impostati nella dashboard.

Posso modificare CSS o JavaScript personalizzati tramite API?

No. Il CSS personalizzato e il JavaScript personalizzato sono disponibili solo nella dashboard e l'API non li legge né li modifica mai.

Perché il mio aggiornamento restituisce un errore 403 su un campo che non ho modificato?

Hai inviato un valore diverso da quello memorizzato in un campo non previsto dal tuo piano. Leggi prima le informazioni sul marchio e invia nuovamente il valore memorizzato, oppure ometti il ​​campo.

Un aggiornamento del marchio richiede una sincronizzazione?

No. L'aggiornamento aggiorna automaticamente l'intero centro assistenza.

Cosa succederà dopo?

Articoli correlati

Questa pagina è stata utile?

Still need help? Ask us