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.
| Method | Path | Scope | Does |
|---|---|---|---|
GET | /sites/{site_id}/integrations | read | Lists the configured providers |
PATCH | /sites/{site_id}/integrations/{type} | admin | Configures a provider and turns it on |
POST | /sites/{site_id}/integrations/{type}/disable | admin | Turns a provider off |
Configuring and turning off providers needs a plan that includes integrations.
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
type | Field | Required | Format | Setup guide |
|---|---|---|---|---|
google-analytics | tracking_id | Yes | A Google Analytics 4 measurement id: G- and 10 uppercase letters or digits, such as G-ABCDEFGHIJ | Google Analytics |
plausible-analytics | domain | Yes | Your site domain as registered in Plausible | Plausible Analytics |
plausible-analytics | proxy_url | No | The https origin you proxy the script from, such as https://plausible.example.com | |
umami | website_id | Yes | Letters, digits, - and _ | Umami |
umami | proxy_url | No | The https origin you proxy the script from, such as https://umami.example.com | |
intercom | app_id | Yes | Letters, digits, - and _ | Intercom |
crisp | app_id | Yes | Letters, digits, - and _ | Crisp |
helpscout | beacon_id | Yes | Letters, digits, - and _ | Help Scout |
google-tag-manager | container_id | Yes | Letters, digits, - and _, such as GTM-ABC123 | Google 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
}| Field | Meaning |
|---|---|
type | The provider |
settings | The provider's fields. null when the provider was switched on in the dashboard without being configured |
enabled | Whether 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
enabledfield: 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.
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
| Status | code | When |
|---|---|---|
| 400 | validation_error | A 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 |
| 403 | insufficient_scope | The key lacks the read scope, or admin for changes |
| 403 | permission_denied | Your plan does not include integrations, or the key's creator cannot change this help center |
| 404 | not_found | The 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?
UA- id?No. The API accepts only Google Analytics 4 measurement ids, which start with G-.