Most AI tools start with a connector and end with a prompt. You hook them up to GitHub, Slack, Linear, Notion, and your calendar, and every question turns into a frantic round-trip across five different APIs.Your agent rebuilds your company from scratch every single time.We built Thor differently. Underneath everything Thor does is a live graph of your team’s work — what’s in flight, who owns it, what’s blocked, what changed, what was decided. It’s not a knowledge base. It’s not enterprise search. It’s a working picture of how your team runs, kept up to date as you go.
Knowledge bases store artifacts: docs, wiki pages, reports. Useful, but that’s not where work actually happens.Most of the stuff that matters never becomes a clean artifact:
Someone gets blocked in a Slack thread at 4pm.
Scope changes mid-meeting because Sarah raised a concern.
Two engineers commit to reviewing each other’s PRs by Friday.
A product call gets made in three messages and a thumbs-up.
Thor catches all of that. It treats Slack threads, meetings, and tickets as places where work changes — not just text to search later.The graph connects:
Work items stitched together from Slack threads, meeting clips, Linear issues, GitHub PRs, and the documents that actually describe them.
Documents from Notion and Google Docs you explicitly share — specs, PRDs, runbooks, and decision records Thor can search and read when answering questions or drafting work.
People as owners, reviewers, blockers, and decision-makers.
Projects and products picked up from how your team talks about them, not from a perfectly maintained taxonomy nobody has time to keep up.
Every org has its own language — product codenames, internal acronyms, customer names, process jargon. Thor centralizes that vocabulary in a Team Glossary: terms are mined from your issues, Slack, and meetings, then injected into prompts so standups, summaries, and agent replies use the words your team actually uses — not generic LLM guesses.Thor’s not a mind reader. If your team only talks about a project in DMs Thor can’t see, it’ll miss it. But for the work that happens in shared channels, meetings, and the tools you’ve connected, Thor builds a surprisingly complete picture.
You could connect your AI agent directly to GitHub MCP, Slack MCP, Linear MCP, Drive MCP, and a calendar MCP. Plenty of teams do.The problem isn’t access. It’s interpretation.A raw GitHub MCP can tell your agent that PR #482 is open. It can’t tell your agent that the PR’s been sitting because the owner has been waiting on design feedback for three days, the design discussion happened in a meeting last Tuesday, and the relevant Linear issue is actually #1041, not the one in the PR description.Thor knows.That’s the difference between tool access and team context. Raw connectors hand your agent a pile of disconnected responses. Thor hands it a graph.
The graph isn’t a one-time export. Thor keeps it up to date as work moves across your tools.That matters more than it sounds. A blocker that got resolved yesterday shouldn’t shape today’s standup. A project whose scope shifted this morning shouldn’t be understood through last week’s stale ticket.And when the tools disagree (a GitHub PR looks unblocked but Slack says the owner is waiting on feedback), Thor reconciles. It surfaces the real state, not the optimistic one.
The same graph that powers your morning Slack briefing also powers Thor’s MCP server. That means:
You can ask Thor in Slack, “what’s blocking the auth migration?” and get a real answer, not a list of search results.
Your coding agent can ask Thor, “what should I know before working on issue #123?” and get the related Slack threads, prior decisions, ownership, and adjacent work in a single call.
Your lead can get a Friday recap that knows the difference between a project that shipped and one that quietly drifted.
Same graph. Same source of truth. No more pasting Slack threads into prompts every time you start a new conversation.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Thor","colors":{"primary":"#5095dd","light":"#5095dd","dark":"#0c273c"},"logo":{"light":"https://mintcdn.com/thor/Dyi64mynkJIFNCmc/logo/light.svg?fit=max\u0026auto=format\u0026n=Dyi64mynkJIFNCmc\u0026q=85\u0026s=4b18bb7f0e79e92d15216f651d12f687","dark":"https://mintcdn.com/thor/Dyi64mynkJIFNCmc/logo/dark.svg?fit=max\u0026auto=format\u0026n=Dyi64mynkJIFNCmc\u0026q=85\u0026s=e7cf58ce3469506127713c3376e67198"},"favicon":"https://mintcdn.com/thor/Dyi64mynkJIFNCmc/favicon.svg?fit=max\u0026auto=format\u0026n=Dyi64mynkJIFNCmc\u0026q=85\u0026s=e6460ed8a9f3a2cf8056daf377e832dd","navbar":{"links":[{"href":"mailto:support@thor.ai","label":"Support"}],"primary":{"type":"button","label":"Login","href":"https://app.thor.ai"}},"footer":{"socials":{"x":"https://x.com/zenhubhq","github":"https://github.com/zenhubhq","linkedin":"https://linkedin.com/company/zenhub"}},"integrations":{"mixpanel":{"projectToken":"2d99689ec6ea2faa5eb117fb9da8e02e"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"thor","hasAudioNarration":false,"actualSubdomain":"thor","customDomains":["docs.thor.ai"],"gitSource":{"type":"github","owner":"zenhubhq","repo":"octopus","deployBranch":"main","contentDirectory":"docs-public","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae169d8d7a2888a20b7ab12","collectionId":"b1344f2a-b3ea-43d2-a322-e519f7c3c821","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae169d8d7a2888a20b7ab12"},"entitlements":{},"buildId":"6ae169d8d7a2888a20b7ab12","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Use cases","count":5},{"language":"default","tag":"Getting started","count":3},{"language":"default","tag":"Get help","count":3},{"language":"default","tag":"Why Thor?","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"why-thor/data-layer","slug":"/why-thor/data-layer","pageMetadata":{"title":"Data Layer","description":"Thor doesn't just connect to your tools. It builds a live graph of how your team actually works.","icon":"diagram-project","href":"/why-thor/data-layer"},"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: \"Thor doesn’t just connect to your tools. It builds a live graph of how your team actually works.\"\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`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Tip,{children:`Knowledge bases tell you what was written down. Thor tells you what your team is doing.`}),`\n`,_jsx(Heading,{level:`1`,id:`why-thor-isn’t-just-another-bot`,children:`Why Thor isn’t just another bot`}),`\n`,_jsx(_components.p,{children:`Most AI tools start with a connector and end with a prompt. You hook them up to GitHub, Slack, Linear, Notion, and your calendar, and every question turns into a frantic round-trip across five different APIs.`}),`\n`,_jsx(_components.p,{children:`Your agent rebuilds your company from scratch every single time.`}),`\n`,_jsx(_components.p,{children:`We built Thor differently. Underneath everything Thor does is a live graph of your team’s work — what’s in flight, who owns it, what’s blocked, what changed, what was decided. It’s not a knowledge base. It’s not enterprise search. It’s a working picture of how your team runs, kept up to date as you go.`}),`\n`,_jsx(Heading,{level:`1`,id:`what’s-in-the-graph-and-what-isn’t`,children:`What’s in the graph (and what isn’t)`}),`\n`,_jsx(_components.p,{children:`Knowledge bases store artifacts: docs, wiki pages, reports. Useful, but that’s not where work actually happens.`}),`\n`,_jsx(_components.p,{children:`Most of the stuff that matters never becomes a clean artifact:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Someone gets blocked in a Slack thread at 4pm.`}),`\n`,_jsx(_components.li,{children:`Scope changes mid-meeting because Sarah raised a concern.`}),`\n`,_jsx(_components.li,{children:`Two engineers commit to reviewing each other’s PRs by Friday.`}),`\n`,_jsx(_components.li,{children:`A product call gets made in three messages and a thumbs-up.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Thor catches all of that. It treats Slack threads, meetings, and tickets as places where `,_jsx(_components.strong,{children:`work changes`}),` — not just text to search later.`]}),`\n`,_jsx(_components.p,{children:`The graph connects:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Work items`}),` stitched together from Slack threads, meeting clips, Linear issues, GitHub PRs, and the documents that actually describe them.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Documents`}),` from Notion and Google Docs you explicitly share — specs, PRDs, runbooks, and decision records Thor can search and read when answering questions or drafting work.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`People`}),` as owners, reviewers, blockers, and decision-makers.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Projects and products`}),` picked up from how your team talks about them, not from a perfectly maintained taxonomy nobody has time to keep up.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`What’s happening`}),` — blockers, commitments, handoffs, scope changes, decisions, stalled work.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`your-team’s-vocabulary-in-one-place`,children:`Your team’s vocabulary, in one place`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/thor/YYCrix9H3kEt1_oM/images/team-glossary.png?fit=max\u0026auto=format\u0026n=YYCrix9H3kEt1_oM\u0026q=85\u0026s=4b3418c9c99a3916d82dc4bdee96029c`,alt:`team-glossary`,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`796`,height:`796`,\"data-path\":`images/team-glossary.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/thor/YYCrix9H3kEt1_oM/images/team-glossary.png?w=280\u0026fit=max\u0026auto=format\u0026n=YYCrix9H3kEt1_oM\u0026q=85\u0026s=f03c1bc735e904925e5fa75a4036d9c1 280w, https://mintcdn.com/thor/YYCrix9H3kEt1_oM/images/team-glossary.png?w=560\u0026fit=max\u0026auto=format\u0026n=YYCrix9H3kEt1_oM\u0026q=85\u0026s=ffd07626bb4da3c8c72e1869f3554a0b 560w, https://mintcdn.com/thor/YYCrix9H3kEt1_oM/images/team-glossary.png?w=840\u0026fit=max\u0026auto=format\u0026n=YYCrix9H3kEt1_oM\u0026q=85\u0026s=3e4db7d6be263c653ca38019ddba7de2 840w, https://mintcdn.com/thor/YYCrix9H3kEt1_oM/images/team-glossary.png?w=1100\u0026fit=max\u0026auto=format\u0026n=YYCrix9H3kEt1_oM\u0026q=85\u0026s=614980a794dc1ad2e4ddf627841a695d 1100w, https://mintcdn.com/thor/YYCrix9H3kEt1_oM/images/team-glossary.png?w=1650\u0026fit=max\u0026auto=format\u0026n=YYCrix9H3kEt1_oM\u0026q=85\u0026s=f1810ff91021e418582a777b73d924c5 1650w, https://mintcdn.com/thor/YYCrix9H3kEt1_oM/images/team-glossary.png?w=2500\u0026fit=max\u0026auto=format\u0026n=YYCrix9H3kEt1_oM\u0026q=85\u0026s=eb282489c03fda2ea5cc0d327964223c 2500w`}),`\n`,_jsxs(_components.p,{children:[`Every org has its own language — product codenames, internal acronyms, customer names, process jargon. Thor centralizes that vocabulary in a `,_jsx(_components.strong,{children:`Team Glossary`}),`: terms are mined from your issues, Slack, and meetings, then injected into prompts so standups, summaries, and agent replies use the words your team actually uses — not generic LLM guesses.`]}),`\n`,_jsx(_components.p,{children:`Thor’s not a mind reader. If your team only talks about a project in DMs Thor can’t see, it’ll miss it. But for the work that happens in shared channels, meetings, and the tools you’ve connected, Thor builds a surprisingly complete picture.`}),`\n`,_jsx(Heading,{level:`1`,id:`why-one-graph-beats-five-raw-connectors`,children:`Why one graph beats five raw connectors`}),`\n`,_jsx(_components.p,{children:`You could connect your AI agent directly to GitHub MCP, Slack MCP, Linear MCP, Drive MCP, and a calendar MCP. Plenty of teams do.`}),`\n`,_jsx(_components.p,{children:`The problem isn’t access. It’s interpretation.`}),`\n`,_jsx(_components.p,{children:`A raw GitHub MCP can tell your agent that PR #482 is open. It can’t tell your agent that the PR’s been sitting because the owner has been waiting on design feedback for three days, the design discussion happened in a meeting last Tuesday, and the relevant Linear issue is actually #1041, not the one in the PR description.`}),`\n`,_jsx(_components.p,{children:`Thor knows.`}),`\n`,_jsxs(_components.p,{children:[`That’s the difference between `,_jsx(_components.strong,{children:`tool access`}),` and `,_jsx(_components.strong,{children:`team context`}),`. Raw connectors hand your agent a pile of disconnected responses. Thor hands it a graph.`]}),`\n`,_jsx(Heading,{level:`1`,id:`always-current-always-reconciled`,children:`Always current. Always reconciled.`}),`\n`,_jsx(_components.p,{children:`The graph isn’t a one-time export. Thor keeps it up to date as work moves across your tools.`}),`\n`,_jsx(_components.p,{children:`That matters more than it sounds. A blocker that got resolved yesterday shouldn’t shape today’s standup. A project whose scope shifted this morning shouldn’t be understood through last week’s stale ticket.`}),`\n`,_jsx(_components.p,{children:`And when the tools disagree (a GitHub PR looks unblocked but Slack says the owner is waiting on feedback), Thor reconciles. It surfaces the real state, not the optimistic one.`}),`\n`,_jsx(Heading,{level:`1`,id:`one-graph-humans-and-agents`,children:`One graph. Humans and agents.`}),`\n`,_jsxs(_components.p,{children:[`The same graph that powers your morning Slack briefing also powers Thor’s `,_jsx(_components.a,{href:`/quickstart`,children:`MCP server`}),`. That means:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`You`}),` can ask Thor in Slack, “what’s blocking the auth migration?” and get a real answer, not a list of search results.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Your coding agent`}),` can ask Thor, “what should I know before working on issue #123?” and get the related Slack threads, prior decisions, ownership, and adjacent work in a single call.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Your lead`}),` can get a Friday recap that knows the difference between a project that shipped and one that quietly drifted.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Same graph. Same source of truth. No more pasting Slack threads into prompts every time you start a new conversation.`})]})}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":{"config":{},"pageMetadata":{"title":"Data Layer","description":"Thor doesn't just connect to your tools. It builds a live graph of how your team actually works.","icon":"diagram-project","href":"/why-thor/data-layer"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why Thor isn’t just another bot","slug":"why-thor-isn’t-just-another-bot","depth":1,"children":[]},{"title":"What’s in the graph (and what isn’t)","slug":"what’s-in-the-graph-and-what-isn’t","depth":1,"children":[]},{"title":"Your team’s vocabulary, in one place","slug":"your-team’s-vocabulary-in-one-place","depth":2,"children":[]},{"title":"Why one graph beats five raw connectors","slug":"why-one-graph-beats-five-raw-connectors","depth":1,"children":[]},{"title":"Always current. Always reconciled.","slug":"always-current-always-reconciled","depth":1,"children":[]},{"title":"One graph. Humans and agents.","slug":"one-graph-humans-and-agents","depth":1,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/thor/5b760fdd5799bc37/mixpanel.js"],"subdomain":"thor","siteName":"Thor","title":"Data Layer - Thor","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-28T22:55:32.012Z","originalFileLocation":"why-thor/data-layer.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=\"Thor doesn\u0026#x27;t just connect to your tools. It builds a live graph of how your team actually works.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Thor\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/thor/R2MsZRZfnE1YtCrW/_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/thor/R2MsZRZfnE1YtCrW/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/thor/R2MsZRZfnE1YtCrW/_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/thor/R2MsZRZfnE1YtCrW/_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/thor/R2MsZRZfnE1YtCrW/_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/thor/R2MsZRZfnE1YtCrW/_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/thor/R2MsZRZfnE1YtCrW/_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/thor/R2MsZRZfnE1YtCrW/_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/thor/R2MsZRZfnE1YtCrW/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Data Layer - Thor\">\u003cmeta data-mint-head property=\"og:description\" content=\"Thor doesn\u0026#x27;t just connect to your tools. It builds a live graph of how your team actually works.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Thor\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.thor.ai/why-thor/data-layer\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://thor.mintlify.app/_mintlify/api/og/v2?division=Why+Thor%3F\u0026amp;title=Data+Layer\u0026amp;description=Thor+doesn%27t+just+connect+to+your+tools.+It+builds+a+live+graph+of+how+your+team+actually+works.\u0026amp;theme=0ceae1078aac6a420255754c\u0026amp;signature=5ba47973e03a393a2ce0c0dac4f9859aeba1f45601418b38f8942e1e92187a9f\">\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=\"Data Layer - Thor\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Thor doesn\u0026#x27;t just connect to your tools. It builds a live graph of how your team actually works.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://thor.mintlify.app/_mintlify/api/og/v2?division=Why+Thor%3F\u0026amp;title=Data+Layer\u0026amp;description=Thor+doesn%27t+just+connect+to+your+tools.+It+builds+a+live+graph+of+how+your+team+actually+works.\u0026amp;theme=0ceae1078aac6a420255754c\u0026amp;signature=5ba47973e03a393a2ce0c0dac4f9859aeba1f45601418b38f8942e1e92187a9f\">\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/thor/R2MsZRZfnE1YtCrW/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Thor\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5095dd\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.thor.ai/why-thor/data-layer\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/why-thor/data-layer.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.thor.ai/#organization\",\"name\":\"Thor\",\"url\":\"https://docs.thor.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/thor/Dyi64mynkJIFNCmc/logo/light.svg?fit=max\u0026auto=format\u0026n=Dyi64mynkJIFNCmc\u0026q=85\u0026s=4b18bb7f0e79e92d15216f651d12f687\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.thor.ai#website\",\"name\":\"Thor\",\"url\":\"https://docs.thor.ai\",\"publisher\":{\"@id\":\"https://docs.thor.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.thor.ai/why-thor/data-layer#webpage\",\"url\":\"https://docs.thor.ai/why-thor/data-layer\",\"name\":\"Data Layer\",\"description\":\"Thor doesn't just connect to your tools. It builds a live graph of how your team actually works.\",\"dateModified\":\"2026-09-28T22:55:32.012Z\",\"isPartOf\":{\"@id\":\"https://docs.thor.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.thor.ai/why-thor/data-layer#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.thor.ai/why-thor/data-layer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Thor\",\"item\":\"https://docs.thor.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Layer\",\"item\":\"https://docs.thor.ai/why-thor/data-layer\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.thor.ai/why-thor/data-layer#article\",\"headline\":\"Data Layer\",\"name\":\"Data Layer\",\"description\":\"Thor doesn't just connect to your tools. It builds a live graph of how your team actually works.\",\"url\":\"https://docs.thor.ai/why-thor/data-layer\",\"mainEntityOfPage\":{\"@id\":\"https://docs.thor.ai/why-thor/data-layer#webpage\"},\"dateModified\":\"2026-09-28T22:55:32.012Z\",\"publisher\":{\"@id\":\"https://docs.thor.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.thor.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Thor\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Thor","nav":{"global":null,"groups":[{"group":"Getting started","pages":[{"title":"Introduction","href":"/index"},{"title":"Quickstart","href":"/quickstart"},{"title":"Changelog","description":"Product updates and announcements","href":"/changelog"}]},{"group":"Why Thor?","pages":[{"title":"Data Layer","icon":"diagram-project","href":"/why-thor/data-layer"},{"title":"Proactivity","description":"Most AI waits for you to ask. Thor doesn't.","icon":"bell","href":"/why-thor/proactivity"},{"title":"Busy Work","icon":"broom","href":"/why-thor/busy-work"}]},{"group":"Use cases","pages":[{"title":"Meetings","icon":"video","href":"/usecases/meetings"},{"title":"Tasks","icon":"pen-to-square","href":"/usecases/tasks"},{"title":"Reminders","icon":"clock","href":"/usecases/reminders"},{"title":"Stand-ups","icon":"calendar-check","href":"/usecases/standups"},{"title":"Documents","icon":"file","href":"/usecases/docs"}]},{"group":"Get help","pages":[{"title":"Troubleshooting","href":"/troubleshooting"},{"title":"Support","href":"/support"},{"title":"Uninstall","href":"/uninstall"}]}]},"basePath":"","title":"Data Layer - Thor","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-BG6oD64b.js","lightbox-handle-r17bVUz3.js"]}