Quickstart
Use this quickstart to verify that your tenant integration is configured correctly.
Prepare prerequisites
You need:
- a Connected App client id and secret
- a backend route that mints Embed Tokens
- a frontend page where you can mount the SDK container
Load the SDK container
Add the loader script and mount point in your application page.<div id="nsdk-container" data-nsdk="true" data-nsdk-widget="insights"></div>
<script>
(function (w, d, s, u, n) {
w[n] = w[n] || function () { (w[n].q = w[n].q || []).push(arguments) }
var js = d.createElement(s); js.async = true; js.src = u
d.head.appendChild(js)
})(window, document, 'script', '<NSDK_BASE_URL>/nsdk-loader.js', 'NSDK')
</script>
Set an Embed Token
Fetch a short-lived token from your backend and pass it to the SDK container.const { embed_token } = await fetch('/your-embed-token-endpoint').then((r) => r.json())
document.getElementById('nsdk-container')?.setAttribute('data-nsdk-token', embed_token)
Validate auth and API health
Test authentication and one endpoint per product surface.curl -X POST "<NSDK_API_BASE_URL>/api/auth/refresh" \
-H "Content-Type: application/json" \
-d '{"refreshToken":"<refresh-jwt>"}'
curl "<NSDK_API_BASE_URL>/api/coach/bootstrap" -H "Authorization: Bearer <access-jwt>"
curl "<NSDK_API_BASE_URL>/api/money/metrics" -H "Authorization: Bearer <access-jwt>"
curl "<NSDK_API_BASE_URL>/api/growth/opps" -H "Authorization: Bearer <access-jwt>"
If the container renders and all API checks return 2xx, your baseline integration is ready.
Next