All JavaScript native globals are available
(Object,
Array,
Promise,
etc.). There are no built-in Node.js modules like
fs,
http.
It’s possible to import npm packages as long as they don’t depend on Node.js Modules and missing
Web Globals.
atob() and btoa() work on binary strings, matching browser behaviour. btoa() throws an
InvalidCharacterError for characters above U+00FF, so encode text with TextEncoder first (and
decode with TextDecoder) if it may contain non-Latin-1 characters.
Intl only includes DateTimeFormat, NumberFormat and ListFormat. Other members, such as
Intl.RelativeTimeFormat or Intl.Collator, are not available.
crypto.subtle, with
importKey, generateKey, sign, verify and digest
crypto.subtle.generateKey only supports secret key algorithms, such as HMAC and AES. Key pair
algorithms, such as RSA and ECDSA, reject with NotSupportedError. A server function can hold at
most 100 keys, importKey accepts at most 16 KiB of key data, and HMAC keys can be at most 1024
bits.
To compare secrets such as webhook signatures, use timingSafeEqual from
attio/server.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Attio Docs","colors":{"primary":"#3b6be8","light":"#f1f3f5"},"logo":{"light":"https://mintcdn.com/attio/uDPxmqB0ooRQJQ39/logo/light.svg?fit=max\u0026auto=format\u0026n=uDPxmqB0ooRQJQ39\u0026q=85\u0026s=9af1b9c979be94d84881d4779d7eb31f","dark":"https://mintcdn.com/attio/uDPxmqB0ooRQJQ39/logo/dark.svg?fit=max\u0026auto=format\u0026n=uDPxmqB0ooRQJQ39\u0026q=85\u0026s=52a2e543a1cd72afbc860cc48259bd57"},"favicon":"https://mintcdn.com/attio/DVPA9KuK1yKhf6bD/favicon.svg?fit=max\u0026auto=format\u0026n=DVPA9KuK1yKhf6bD\u0026q=85\u0026s=b9d65163aef9a3430f212095aff95ec4","background":{"color":{"light":"#fff","dark":"#191b1f"}},"footer":{"socials":{"x":"https://x.com/Attio","website":"https://attio.com"}},"seo":{"indexing":"navigable"},"fonts":{"heading":{"family":"Inter","weight":100},"body":{"family":"Inter"}},"styling":{"codeblocks":"system","latex":true},"integrations":{"ga4":{"measurementId":"G-PZRKGLEPJ3"},"intercom":{"appId":"cqp3eh0z"}},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Developer console","icon":"terminal","href":"https://build.attio.com/"},{"anchor":"Support","icon":"headset","href":"https://attio.com/help"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"attio","hasAudioNarration":false,"actualSubdomain":"attio","customDomains":["docs.attio.com"],"gitSource":{"type":"github","owner":"attio","repo":"developer-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae9dc0098ee2cfbfea87f19","collectionId":"1704cc6e-bd92-40bf-8971-5f443b2d36c0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9dc0098ee2cfbfea87f19"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea3d091985ad56cad808c4","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"REST API","count":217},{"language":"default","tag":"Endpoint reference","count":156},{"language":"default","tag":"App SDK","count":148},{"language":"default","tag":"Core endpoints","count":98},{"language":"default","tag":"Components","count":62},{"language":"default","tag":"Standard objects","count":46},{"language":"default","tag":"Webhook reference","count":34},{"language":"default","tag":"Guides","count":21},{"language":"default","tag":"Attribute types","count":18},{"language":"default","tag":"Forms","count":18}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"*{--font-weight-headings-custom:500}th{text-align:left}:not(pre)>code{padding:.125rem}.mermaid-inline button{width:100%;display:flex;justify-content:center;align-items:center}.mermaid-inline button>a{width:100%}img[alt~=logo]{width:90px}.rounded-2xl,.rounded-xl{border-radius:10px}.rounded-\\[14px\\][data-component-part=code-block-root]{border-radius:8px}#navbar div>a[href=\"/sdk/guides/creating-an-app\"]::after{content:\"Alpha\";display:inline-block;font-size:.7rem;font-weight:600;color:#f97514;background-color:rgb(249,117,20,.1);padding:.1rem .4rem;border-radius:4px;margin-left:.5rem}#navbar div>a[href=\"/sdk/guides/creating-an-app\"],#navigation-items>ul>li>a[href=\"/sdk/guides/creating-an-app\"]{position:relative}#navigation-items>ul>li>a[href=\"/sdk/guides/creating-an-app\"]::after{content:\"Alpha\";display:inline-block;font-size:.7rem;font-weight:600;color:#06f;background-color:rgba(0,102,255,.1);padding:.1rem .4rem;border-radius:4px;margin-left:.5rem}"}],"page":{"pagePath":"sdk/server/available-globals","slug":"/sdk/server/available-globals","pageMetadata":{"title":"Available Globals","description":"Global variables available to your app's code","href":"/sdk/server/available-globals"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Global variables available to your app’s code\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`All JavaScript native globals are available\n(`,_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object`,children:_jsx(_components.code,{children:`Object`})}),`,\n`,_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array`,children:_jsx(_components.code,{children:`Array`})}),`,\n`,_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise`,children:_jsx(_components.code,{children:`Promise`})}),`,\netc.). There are no built-in Node.js modules like\n`,_jsx(_components.a,{href:`https://www.w3schools.com/nodejs/nodejs_filesystem.asp`,children:_jsx(_components.code,{children:`fs`})}),`,\n`,_jsx(_components.a,{href:`https://www.w3schools.com/nodejs/nodejs_http.asp`,children:_jsx(_components.code,{children:`http`})}),`.\nIt’s possible to import npm packages as long as they don’t depend on Node.js Modules and missing\nWeb Globals.`]}),`\n`,_jsx(Heading,{level:`2`,id:`shared-globals`,children:`Shared Globals`}),`\n`,_jsx(_components.p,{children:`The following globals are available on both the server and client side.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/console/log_static`,children:_jsx(_components.code,{children:`console.log()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/console/info_static`,children:_jsx(_components.code,{children:`console.info()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/console/warn_static`,children:_jsx(_components.code,{children:`console.warn()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/console/error_static`,children:_jsx(_components.code,{children:`console.error()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder`,children:_jsx(_components.code,{children:`TextEncoder`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder`,children:_jsx(_components.code,{children:`TextDecoder`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Window/atob`,children:_jsx(_components.code,{children:`atob()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Window/btoa`,children:_jsx(_components.code,{children:`btoa()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout`,children:_jsx(_components.code,{children:`setTimeout()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Window/clearTimeout`,children:_jsx(_components.code,{children:`clearTimeout()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval`,children:_jsx(_components.code,{children:`setInterval()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Window/clearInterval`,children:_jsx(_components.code,{children:`clearInterval()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/URL/URL`,children:_jsx(_components.code,{children:`URL`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams/URLSearchParams`,children:_jsx(_components.code,{children:`URLSearchParams`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat`,children:_jsx(_components.code,{children:`Intl.DateTimeFormat`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat`,children:_jsx(_components.code,{children:`Intl.NumberFormat`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat`,children:_jsx(_components.code,{children:`Intl.ListFormat`})})}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`atob()`}),` and `,_jsx(_components.code,{children:`btoa()`}),` work on binary strings, matching browser behaviour. `,_jsx(_components.code,{children:`btoa()`}),` throws an\n`,_jsx(_components.code,{children:`InvalidCharacterError`}),` for characters above `,_jsx(_components.code,{children:`U+00FF`}),`, so encode text with `,_jsx(_components.code,{children:`TextEncoder`}),` first (and\ndecode with `,_jsx(_components.code,{children:`TextDecoder`}),`) if it may contain non-Latin-1 characters.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Intl`}),` only includes `,_jsx(_components.code,{children:`DateTimeFormat`}),`, `,_jsx(_components.code,{children:`NumberFormat`}),` and `,_jsx(_components.code,{children:`ListFormat`}),`. Other members, such as\n`,_jsx(_components.code,{children:`Intl.RelativeTimeFormat`}),` or `,_jsx(_components.code,{children:`Intl.Collator`}),`, are not available.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`client-only`,children:`Client Only`}),`\n`,_jsx(_components.p,{children:`The following globals are only available on the client (web) side.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Window/queueMicrotask`,children:_jsx(_components.code,{children:`queueMicrotask()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Window/open`,children:_jsx(_components.code,{children:`window.open()`})})}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`server-only`,children:`Server Only`}),`\n`,_jsx(_components.p,{children:`The following globals are only available on the server side.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://fetch.spec.whatwg.org/#fetch-api`,children:_jsx(_components.code,{children:`fetch()`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://fetch.spec.whatwg.org/#response-class`,children:_jsx(_components.code,{children:`Response`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://fetch.spec.whatwg.org/#request-class`,children:_jsx(_components.code,{children:`Request`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://fetch.spec.whatwg.org/#headers-class`,children:_jsx(_components.code,{children:`Headers`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/sdk/server/environment-variables`,children:_jsx(_components.code,{children:`process.env`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID`,children:_jsx(_components.code,{children:`crypto.randomUUID()`})})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto`,children:_jsx(_components.code,{children:`crypto.subtle`})}),`, with\n`,_jsx(_components.code,{children:`importKey`}),`, `,_jsx(_components.code,{children:`generateKey`}),`, `,_jsx(_components.code,{children:`sign`}),`, `,_jsx(_components.code,{children:`verify`}),` and `,_jsx(_components.code,{children:`digest`})]}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`crypto.subtle.generateKey`}),` only supports secret key algorithms, such as HMAC and AES. Key pair\nalgorithms, such as RSA and ECDSA, reject with `,_jsx(_components.code,{children:`NotSupportedError`}),`. A server function can hold at\nmost 100 keys, `,_jsx(_components.code,{children:`importKey`}),` accepts at most 16 KiB of key data, and HMAC keys can be at most 1024\nbits.`]})}),`\n`,_jsxs(_components.p,{children:[`To compare secrets such as webhook signatures, use `,_jsx(_components.a,{href:`/sdk/server/timing-safe-equal`,children:_jsx(_components.code,{children:`timingSafeEqual`})}),` from\n`,_jsx(_components.code,{children:`attio/server`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Available Globals","description":"Global variables available to your app's code","href":"/sdk/server/available-globals"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Shared Globals","slug":"shared-globals","depth":2,"children":[]},{"title":"Client Only","slug":"client-only","depth":2,"children":[]},{"title":"Server Only","slug":"server-only","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"attio","siteName":"Attio Docs","title":"Available Globals - Attio Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T13:05:36.349Z","originalFileLocation":"sdk/server/available-globals.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Global variables available to your app\u0026#x27;s code\">\u003cmeta data-mint-head name=\"application-name\" content=\"Attio Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Available Globals - Attio Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Global variables available to your app\u0026#x27;s code\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Attio Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.attio.com/sdk/server/available-globals\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://attio.mintlify.app/_mintlify/api/og/v2?division=Server\u0026amp;title=Available+Globals\u0026amp;description=Global+variables+available+to+your+app%27s+code\u0026amp;theme=d607837df3ef191e4b13ec8c\u0026amp;signature=78ebbffca706fcc76fed3c2b2968276fde4e83a0cdd9083c1e3320d33d44c5fe\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Available Globals - Attio Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Global variables available to your app\u0026#x27;s code\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://attio.mintlify.app/_mintlify/api/og/v2?division=Server\u0026amp;title=Available+Globals\u0026amp;description=Global+variables+available+to+your+app%27s+code\u0026amp;theme=d607837df3ef191e4b13ec8c\u0026amp;signature=78ebbffca706fcc76fed3c2b2968276fde4e83a0cdd9083c1e3320d33d44c5fe\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/attio/tuL1-j3wTEWKOtgw/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Attio Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3b6be8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.attio.com/sdk/server/available-globals\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sdk/server/available-globals.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.attio.com/#organization\",\"name\":\"Attio Docs\",\"url\":\"https://docs.attio.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/attio/uDPxmqB0ooRQJQ39/logo/light.svg?fit=max\u0026auto=format\u0026n=uDPxmqB0ooRQJQ39\u0026q=85\u0026s=9af1b9c979be94d84881d4779d7eb31f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.attio.com#website\",\"name\":\"Attio Docs\",\"url\":\"https://docs.attio.com\",\"publisher\":{\"@id\":\"https://docs.attio.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.attio.com/sdk/server/available-globals#webpage\",\"url\":\"https://docs.attio.com/sdk/server/available-globals\",\"name\":\"Available Globals\",\"description\":\"Global variables available to your app's code\",\"dateModified\":\"2026-11-03T13:05:36.349Z\",\"isPartOf\":{\"@id\":\"https://docs.attio.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.attio.com/sdk/server/available-globals#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.attio.com/sdk/server/available-globals#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Server\",\"item\":\"https://docs.attio.com/sdk/server/server-functions\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Available Globals\",\"item\":\"https://docs.attio.com/sdk/server/available-globals\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.attio.com/sdk/server/available-globals#article\",\"headline\":\"Available Globals\",\"name\":\"Available Globals\",\"description\":\"Global variables available to your app's code\",\"url\":\"https://docs.attio.com/sdk/server/available-globals\",\"mainEntityOfPage\":{\"@id\":\"https://docs.attio.com/sdk/server/available-globals#webpage\"},\"dateModified\":\"2026-11-03T13:05:36.349Z\",\"publisher\":{\"@id\":\"https://docs.attio.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.attio.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Attio Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Attio Docs","nav":{"global":{"anchors":[{"anchor":"Developer console","icon":"terminal","href":"https://build.attio.com/"},{"anchor":"Support","icon":"headset","href":"https://attio.com/help"}]},"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/docs/overview"}]},{"tab":"App SDK","groups":[{"group":"Introduction","pages":[{"title":"App SDK","href":"/sdk/overview"},{"title":"SDK concepts","href":"/sdk/deep-dives/overview"}]},{"group":"Guides","pages":[{"title":"Creating an app","href":"/sdk/guides/creating-an-app"},{"title":"Querying Attio data","href":"/sdk/guides/querying-attio-data"},{"title":"Making HTTP requests","href":"/sdk/guides/making-http-requests"},{"title":"Authenticating to external services","href":"/sdk/guides/authenticating-to-external-services"},{"title":"Building forms","href":"/sdk/guides/building-forms"},{"title":"Using charts","href":"/sdk/guides/using-charts"},{"title":"Defining app settings","href":"/sdk/guides/adding-workspace-settings"},{"title":"Building app pages","href":"/sdk/guides/building-app-pages"},{"title":"Receiving HTTP requests","href":"/sdk/guides/receiving-http-requests"},{"title":"Debugging your app","href":"/sdk/guides/debugging-your-app"},{"title":"AI-assisted development","href":"/sdk/guides/ai"},{"title":"Migration: Folder structure","href":"/sdk/guides/folder-structure-migration"},{"title":"Building workflow blocks","href":"/guides/building-workflow-blocks"}]},{"group":"Extensions","pages":[{"title":"App structure","href":"/sdk/extensions/overview"},{"title":"Record action","sidebarTitle":"Record action","href":"/sdk/extensions/record-action"},{"title":"Bulk record action","sidebarTitle":"Bulk record action","href":"/sdk/extensions/bulk-record-action"},{"title":"Record widget","sidebarTitle":"Record widget","href":"/sdk/extensions/record-widget"},{"title":"Record tab","sidebarTitle":"Record tab","href":"/sdk/extensions/record-tab"},{"title":"Object action","sidebarTitle":"Object action","href":"/sdk/extensions/object-action"},{"group":"Text selection","pages":[{"title":"Call recording transcript text action","sidebarTitle":"Call recording transcript","href":"/sdk/extensions/call-recording-transcript-text-action"},{"title":"Call recording insight text action","sidebarTitle":"Call recording insights","href":"/sdk/extensions/call-recording-insight-text-action"},{"title":"Call recording summary text action","sidebarTitle":"Call recording summary","href":"/sdk/extensions/call-recording-summary-text-action"}]}]},{"group":"Pages","pages":[{"title":"Pages","sidebarTitle":"Overview","href":"/sdk/pages/overview"},{"title":"Extensions.definePage()","href":"/sdk/pages/define-page"}]},{"group":"Workflow blocks","pages":[{"title":"Workflow blocks","sidebarTitle":"Overview","href":"/sdk/workflow-blocks/overview"},{"title":"File structure","href":"/sdk/workflows/file-structure"},{"group":"Defining a block","pages":[{"title":"Block definition","href":"/sdk/workflows/define-workflow-block"},{"title":"Config schema","href":"/sdk/workflows/config-schema"},{"title":"Outcome schema","href":"/sdk/workflows/outcome-schema"}]},{"title":"Configurator","href":"/sdk/workflows/configurator"},{"title":"Block lifecycle","href":"/sdk/workflows/block-lifecycle"},{"group":"Step handlers","pages":[{"title":"Executing a step","href":"/sdk/workflows/define-workflow-block-execute"},{"title":"Finishing a deferred step","href":"/sdk/workflows/define-workflow-block-resume-callback"}]},{"group":"Trigger handlers","pages":[{"title":"Registering a trigger","href":"/sdk/workflows/define-workflow-block-activate"},{"title":"Receiving a trigger event","href":"/sdk/workflows/define-workflow-block-on-trigger-callback"},{"title":"Deactivating a trigger","href":"/sdk/workflows/define-workflow-block-deactivate"}]}]},{"group":"Notifications","pages":[{"title":"Notifying the user","href":"/sdk/notifications/notifications"},{"title":"alert()","href":"/sdk/notifications/alert"},{"title":"confirm()","href":"/sdk/notifications/confirm"},{"title":"showToast()","href":"/sdk/notifications/show-toast"}]},{"group":"Dialogs","pages":[{"title":"showDialog()","href":"/sdk/dialogs/show-dialog"},{"title":"\u003cDialogList />","href":"/sdk/dialogs/dialog-list"}]},{"group":"Navigation","pages":[{"title":"Navigation","sidebarTitle":"Overview","href":"/sdk/navigation/overview"},{"title":"\u003cAttioLink />","href":"/sdk/navigation/attio-link"},{"title":"navigate()","href":"/sdk/navigation/navigate"}]},{"group":"Components","pages":[{"title":"\u003cAvatar />","href":"/sdk/components/avatar"},{"title":"\u003cBadge />","href":"/sdk/components/badge"},{"title":"\u003cBanner />","href":"/sdk/components/banner"},{"title":"\u003cButton />","href":"/sdk/components/button"},{"title":"\u003cCard />","href":"/sdk/components/card"},{"title":"\u003cDescriptionList />","href":"/sdk/components/description-list"},{"title":"\u003cDivider />","href":"/sdk/components/divider"},{"title":"\u003cEmptyState />","href":"/sdk/components/empty-state"},{"title":"\u003cGrid />","href":"/sdk/components/grid"},{"title":"\u003cImage />","href":"/sdk/components/image"},{"title":"\u003cJson />","href":"/sdk/components/json"},{"title":"\u003cLink />","href":"/sdk/components/link"},{"title":"\u003cLoadingState />","href":"/sdk/components/loading-state"},{"title":"\u003cSection />","href":"/sdk/components/section"},{"title":"\u003cStack />","href":"/sdk/components/stack"},{"title":"\u003cStatusBadge />","href":"/sdk/components/status-badge"},{"title":"\u003cTable />","href":"/sdk/components/table"},{"title":"experimental_useDataTable()","href":"/sdk/components/data-table"},{"title":"\u003cTextBlock />","href":"/sdk/components/text-block"},{"title":"\u003cTypography />","href":"/sdk/components/typography"},{"group":"Charts","pages":[{"title":"\u003cChart.Bar />","href":"/sdk/components/charts/bar"},{"title":"\u003cChart.Line />","href":"/sdk/components/charts/line"},{"title":"\u003cChart.Pie />","href":"/sdk/components/charts/pie"},{"title":"\u003cChart.Metric />","href":"/sdk/components/charts/metric"},{"title":"\u003cChart.Funnel />","href":"/sdk/components/charts/funnel"},{"title":"\u003cChart.Loading />","href":"/sdk/components/charts/loading"}]},{"group":"Forms","pages":[{"title":"\u003cAttioRecordCombobox />","href":"/sdk/components/forms/attio-record-combobox"},{"title":"\u003cAttioUserCombobox />","href":"/sdk/components/forms/attio-user-combobox"},{"title":"\u003cCheckbox />","href":"/sdk/components/forms/checkbox"},{"title":"\u003cCombobox />","href":"/sdk/components/forms/combobox"},{"title":"\u003cDateTimeInput />","href":"/sdk/components/forms/date-time-input"},{"title":"\u003cFieldset />","href":"/sdk/components/forms/fieldset"},{"title":"\u003cForm />","href":"/sdk/components/forms/form"},{"title":"\u003cInputGroup />","href":"/sdk/components/forms/input-group"},{"title":"\u003cNumberInput />","href":"/sdk/components/forms/number-input"},{"title":"\u003cPlainDateInput />","href":"/sdk/components/forms/plain-date-input"},{"title":"\u003cRadioGroup />","href":"/sdk/components/forms/radio-group"},{"title":"\u003cSubmitButton />","href":"/sdk/components/forms/submit-button"},{"title":"\u003cTextInput />","href":"/sdk/components/forms/text-input"},{"title":"\u003cTextArea />","href":"/sdk/components/forms/text-area"},{"title":"\u003cToggle />","href":"/sdk/components/forms/toggle"},{"title":"\u003cWithState />","href":"/sdk/components/forms/with-state"}]},{"group":"Workspace settings","pages":[{"title":"\u003cAttioUserCombobox />","href":"/sdk/components/workspace-settings/attio-user-combobox"},{"title":"\u003cButton />","href":"/sdk/components/workspace-settings/button"},{"title":"\u003cCheckbox />","href":"/sdk/components/workspace-settings/checkbox"},{"title":"\u003cCombobox />","href":"/sdk/components/workspace-settings/combobox"},{"title":"\u003cFieldset />","href":"/sdk/components/workspace-settings/fieldset"},{"title":"\u003cForm />","href":"/sdk/components/workspace-settings/form"},{"title":"\u003cInputGroup />","href":"/sdk/components/workspace-settings/input-group"},{"title":"\u003cNumberInput />","href":"/sdk/components/workspace-settings/number-input"},{"title":"\u003cRadioGroup />","href":"/sdk/components/workspace-settings/radio-group"},{"title":"\u003cRichTextInput />","href":"/sdk/components/workspace-settings/rich-text-input"},{"title":"\u003cSection />","href":"/sdk/components/workspace-settings/section"},{"title":"\u003cTextInput />","href":"/sdk/components/workspace-settings/text-input"},{"title":"\u003cToggle />","href":"/sdk/components/workspace-settings/toggle"},{"title":"\u003cWithState />","href":"/sdk/components/workspace-settings/with-state"}]},{"group":"Widgets","pages":[{"title":"\u003cWidget.TextWidget />","href":"/sdk/components/widgets/text-widget"},{"title":"\u003cWidget.Title />","href":"/sdk/components/widgets/title"},{"title":"\u003cWidget.Text.Primary />","href":"/sdk/components/widgets/text-primary"},{"title":"\u003cWidget.Text.Secondary />","href":"/sdk/components/widgets/text-secondary"},{"title":"\u003cWidget.Loading />","href":"/sdk/components/widgets/loading"},{"title":"\u003cWidget.Decoration />","href":"/sdk/components/widgets/decoration"}]}]},{"group":"Forms","pages":[{"title":"Form schema","href":"/sdk/forms/form-schema"},{"title":"useForm()","href":"/sdk/forms/use-form"}]},{"group":"Icons","pages":[{"title":"AttioIcon","href":"/sdk/icons"}]},{"group":"Settings","pages":[{"title":"Workspace settings","href":"/sdk/settings/overview"},{"title":"Settings.defineWorkspaceSchema()","href":"/sdk/settings/define-workspace-schema"},{"title":"Settings.defineWorkspacePage()","href":"/sdk/settings/define-workspace-page"},{"title":"Settings.useForm()","href":"/sdk/settings/use-form"},{"title":"Settings.useSettings()","href":"/sdk/settings/use-settings"},{"title":"Settings.getSettings()","href":"/sdk/settings/get-settings"},{"title":"Settings.setSettings()","href":"/sdk/settings/set-settings"}]},{"group":"GraphQL","pages":[{"title":"GraphQL","href":"/sdk/graphql/graphql"},{"title":"runQuery()","href":"/sdk/graphql/run-query"},{"title":"useQuery()","href":"/sdk/graphql/use-query"}]},{"group":"Data fetching","pages":[{"title":"useAsyncCache()","href":"/sdk/data-fetching/use-async-cache"},{"title":"React Query","href":"/sdk/data-fetching/react-query"}]},{"group":"Server","pages":[{"title":"Server functions","mode":"wide","href":"/sdk/server/server-functions"},{"title":"Attio API Token","href":"/sdk/server/attio-api-token"},{"title":"Environment Variables","description":"App-level secrets and configuration for your server-side code","href":"/sdk/server/environment-variables"},{"title":"Available Globals","href":"/sdk/server/available-globals"},{"group":"Connections","pages":[{"title":"Connections","description":"Authentication to third party services","href":"/sdk/server/connections/connections"},{"title":"getUserConnection()","href":"/sdk/server/connections/get-user-connection"},{"title":"getWorkspaceConnection()","href":"/sdk/server/connections/get-workspace-connection"}]},{"group":"Events","pages":[{"title":"Events","href":"/sdk/server/events/events"},{"title":"connection-added","href":"/sdk/server/events/connection-added"},{"title":"connection-removed","href":"/sdk/server/events/connection-removed"}]},{"group":"Webhooks","pages":[{"title":"Webhook Handlers","href":"/sdk/server/webhooks/webhook-handlers"},{"title":"createWebhookHandler()","href":"/sdk/server/webhooks/create-webhook-handler"},{"title":"deleteWebhookHandler()","href":"/sdk/server/webhooks/delete-webhook-handler"},{"title":"updateWebhookHandler()","href":"/sdk/server/webhooks/update-webhook-handler"}]},{"title":"KV Store","href":"/sdk/server/kv-store"},{"title":"timingSafeEqual","href":"/sdk/server/timing-safe-equal"}]},{"group":"System","pages":[{"title":"platform","href":"/sdk/system/platform"}]},{"group":"Legacy","pages":[{"title":"App configuration file","sidebarTitle":"app.ts","href":"/sdk/entry-points/app-ts"},{"group":"Settings (legacy)","pages":[{"title":"Workspace settings schema","href":"/sdk/settings/app-settings-schema"},{"title":"useWorkspaceSettingsForm()","href":"/sdk/settings/use-workspace-settings-form"},{"title":"useWorkspaceSettings()","href":"/sdk/settings/use-workspace-settings"},{"title":"getWorkspaceSettings()","href":"/sdk/settings/get-workspace-settings"},{"title":"getWorkspaceSetting()","href":"/sdk/settings/get-workspace-setting"},{"title":"setWorkspaceSetting()","href":"/sdk/settings/set-workspace-setting"}]}]}]},{"tab":"REST API","pages":[{"title":"REST API","href":"/rest-api/overview"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"SQL","pages":[{"title":"SQL","href":"/sql/overview"}]},{"tab":"Share","pages":[{"title":"Share","href":"/share/the-publication-lifecycle"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/app-sdk"}]}]},"basePath":"","title":"Available Globals - Attio Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":[],"chunks":[]}