Manage help center integrations with the Notiondesk API

Configure Google Analytics, Plausible, Umami, Intercom, Crisp, Help Scout and Google Tag Manager on your Notiondesk help center via the REST API.

4 min read

The Notiondesk API lets you list, configure and turn off the third-party integrations of your help center: analytics, live chat and tag manager providers. Use it to roll out the same analytics or chat setup across several help centers in one script.

MethodPathScopeDoes
GET/sites/{site_id}/integrationsreadLists the configured providers
PATCH/sites/{site_id}/integrations/{type}adminConfigures a provider and turns it on
POST/sites/{site_id}/integrations/{type}/disableadminTurns a provider off

Configuring and turning off providers needs a plan that includes integrations.

Every provider loads a third-party script on every page of your help center. A Google Tag Manager container runs whatever its owner publishes, and a Plausible or Umami proxy_url decides where the analytics script loads from. That is why changing integrations needs the admin scope. Give a key with admin only to integrations you trust.

Supported providers

typeFieldRequiredFormatSetup guide
google-analyticstracking_idYesA Google Analytics 4 measurement id: G- and 10 uppercase letters or digits, such as G-ABCDEFGHIJGoogle Analytics
plausible-analyticsdomainYesYour site domain as registered in PlausiblePlausible Analytics
plausible-analyticsproxy_urlNoThe https origin you proxy the script from, such as https://plausible.example.com
umamiwebsite_idYesLetters, digits, - and _Umami
umamiproxy_urlNoThe https origin you proxy the script from, such as https://umami.example.com
intercomapp_idYesLetters, digits, - and _Intercom
crispapp_idYesLetters, digits, - and _Crisp
helpscoutbeacon_idYesLetters, digits, - and _Help Scout
google-tag-managercontainer_idYesLetters, digits, - and _, such as GTM-ABC123Google Tag Manager

Every value is a string of up to 255 characters. None of them is a secret: each is an identifier the provider's script needs in the page. Notiondesk checks the format but not the id itself with the provider.

List your integrations

curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/integrations" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"
{
  "object": "list",
  "data": [
    {
      "type": "plausible-analytics",
      "settings": {"domain": "help.example.com", "proxy_url": null},
      "enabled": true
    },
    {
      "type": "crisp",
      "settings": {"app_id": "7d1c9a2e-5b4f-4e3a-9c8d-2f1e0a9b8c7d"},
      "enabled": false
    }
  ],
  "has_more": false,
  "next_cursor": null
}
FieldMeaning
typeThe provider
settingsThe provider's fields. null when the provider was switched on in the dashboard without being configured
enabledWhether the help center loads the provider

The list includes providers that are turned off, in no particular order, and always fits in one response. A provider that was never configured is absent.

Configure a provider

Send the provider's fields to its path. The route answers 200 OK with the integration.

curl -X PATCH "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/integrations/plausible-analytics" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16" \
  -H "Content-Type: application/json" \
  -d '{"domain": "help.example.com"}'
{
  "type": "plausible-analytics",
  "settings": {"domain": "help.example.com", "proxy_url": null},
  "enabled": true
}
  • An update always turns the provider on. There is no enabled field: to turn a provider off, use the disable route.
  • A field you leave out keeps its stored value. To turn a configured provider back on without changing it, send {}.
  • To remove a proxy, send "proxy_url": null.
  • Every update refreshes the whole help center, clearing its cached pages and rebuilding every page.
Note: A value saved before the current formats applied, such as a Google Analytics UA- id or a proxy_url that is not https, fails validation. Until you send a valid value for that field, every update of that provider answers 400 validation_error, {} included.

Turn a provider off

curl -i -X POST "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/integrations/google-tag-manager/disable" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"

The route answers 204 No Content and your help center stops loading the provider. Its settings are kept, so the list still shows it with enabled: false, and {} sent to its update route turns it back on.

Turning off a provider that is already off, or one that was never configured, also answers 204 and changes nothing, so a retry is always safe.

Errors

StatuscodeWhen
400validation_errorA required field is missing or empty, a value does not match its format or is longer than 255 characters, a stored value fails its format and the body leaves it out, or the body has an unknown field
403insufficient_scopeThe key lacks the read scope, or admin for changes
403permission_deniedYour plan does not include integrations, or the key's creator cannot change this help center
404not_foundThe help center does not exist in your workspace, or type is not a supported provider

See Handle Notiondesk API errors, rate limits, and retries for the error envelope and the other codes.

Common questions

Can I add a custom script with the Notiondesk API?

No. Custom JavaScript is set in the dashboard only. See Supercharge your help center with custom JavaScript.

Why can't my key configure integrations?

Changing integrations needs the admin scope, which only keys created by a workspace owner or Admin hold. Your plan must also include integrations.

Does disabling an integration delete its settings?

No. The settings are kept, and sending {} to the provider's update route turns it back on with them.

Can I use a Universal Analytics UA- id?

No. The API accepts only Google Analytics 4 measurement ids, which start with G-.

What's next

Related articles

Was this page helpful?

Still need help? Ask us