Connect Granola: Enter your Granola API key in the Integrations settings.
Link Context: From any Source details page, click “Add Source Context” and select Granola.
Select Notes: Browse and select meeting notes to use as context for your charts.
AI Analysis: Our AI automatically uses the meeting summaries to provide deeper insights into your pulse summaries, connecting your live data to your meeting context.
Open the Granola desktop app, go to Settings → API → Create new key, and generate a key.
Granola Settings → API key screen
Granola offers two key types — either works with Chartcastr:
Key Type
Scope
Plan Required
Personal API key
Your own notes, notes shared with you, and notes in private folders shared with you
Business or Enterprise
Enterprise API key
All notes in the Team space (org-wide, excludes private notes/folders)
Enterprise only (admin)
Which key should I use? Use a Personal API key if you want to attach your own meeting notes as context. Use an Enterprise API key if a workspace admin wants to provide org-wide meeting context across all team members’ notes.
On Enterprise plans, workspace admins can control whether members can create Personal API keys via the “Allow personal API keys” toggle in Settings → Workspace.
2
Connect in Chartcastr
In Chartcastr, go to Settings → Source Integrations and find the Granola card. Enter your API key and click Test & Connect.
3
Attach Meeting Notes
From any Source or Source Group detail page, click Add Source Context, select Granola, and browse your meeting notes. Select the notes relevant to the data you’re tracking.
A Business or Enterprise plan. Personal API keys are available on both. Enterprise API keys require the Enterprise plan and must be created by a workspace admin.
Can I use the Granola MCP instead?
Granola also offers an MCP (Model Context Protocol) integration for conversational AI tools like Claude and ChatGPT. The MCP uses browser-based OAuth and is designed for interactive chat. For Chartcastr’s automated context enrichment, the API key approach is the right fit since it runs in the background without user interaction.
Are webhooks available?
Not yet — Granola’s webhook support is on their roadmap. Currently, Chartcastr fetches note content when you attach a note as context.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Chartcastr","colors":{"primary":"#b3450b","light":"#EA580B","dark":"#EA580B"},"logo":{"light":"https://mintcdn.com/chartcastr/M5ICqDu3pqtuq0Gh/logo/light-logo.png?fit=max\u0026auto=format\u0026n=M5ICqDu3pqtuq0Gh\u0026q=85\u0026s=b3ccd67e5172adaa7aaf4cd53f6c890c","dark":"https://mintcdn.com/chartcastr/M5ICqDu3pqtuq0Gh/logo/dark-logo.png?fit=max\u0026auto=format\u0026n=M5ICqDu3pqtuq0Gh\u0026q=85\u0026s=413f12a3fce07bc7d207d84411959e1b"},"favicon":"https://mintcdn.com/chartcastr/Y_oUD6VGPVXdfSR0/favicon.ico?fit=max\u0026auto=format\u0026n=Y_oUD6VGPVXdfSR0\u0026q=85\u0026s=5edf2b8fe52f9e29bfd720b610482e4b","navbar":{"links":[{"href":"mailto:support@chartcastr.com","label":"Support"}],"primary":{"type":"button","label":"Sign In","href":"https://chartcastr.com/admin?ref=docs"}},"footer":{"socials":{"x":"https://x.com/chartcastr","linkedin":"https://linkedin.com/company/chartcastr"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"chartcastr","hasAudioNarration":false,"actualSubdomain":"chartcastr","customDomains":["docs.chartcastr.com"],"gitSource":{"type":"github","owner":"mewc","repo":"chartcastr","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a30dc870f0ec7a45145e432","collectionId":"e4f3f3db-4ace-42c2-a119-da0f1bfe3618","schemaVersion":"v2"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae9402be9c36af6b42d3dae:success","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Sources","count":63},{"language":"default","tag":"Analysis","count":22},{"language":"default","tag":"Admin","count":21},{"language":"default","tag":"Context","count":9},{"language":"default","tag":"Destinations","count":9},{"language":"default","tag":"Manage","count":7},{"language":"default","tag":"Briefings","count":7},{"language":"default","tag":"AI Tools","count":7},{"language":"default","tag":"For Agencies","count":5},{"language":"default","tag":"Getting Started","count":4}]},"assistantConfig":{"enableStarterQuestions":false},"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":"rbac-expansion","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":"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":"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":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"analysis/context/granola","slug":"/analysis/context/granola","pageMetadata":{"title":"Granola meeting notes as context","description":"Link Granola meeting notes to Chartcastr sources so AI pulse summaries correlate metric changes with recent decisions and action items.","href":"/analysis/context/granola"},"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: \"Link Granola meeting notes to Chartcastr sources so AI pulse summaries correlate metric changes with recent decisions and action items.\"\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={li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Frame,Heading,Info,Note,OptimizedImage,Step,Steps,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`State`}),`: Available on all plans. Requires a Granola `,_jsx(_components.strong,{children:`Business`}),` or `,_jsx(_components.strong,{children:`Enterprise`}),` plan for API access.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Link Granola meeting notes to your Chartcastr Sources to provide meeting context for your automated pulses. This is perfect for:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Correlating metric changes with recent meetings and decisions`}),`\n`,_jsx(_components.li,{children:`Adding meeting summaries as context for chart analysis`}),`\n`,_jsx(_components.li,{children:`Understanding the “why” behind data trends using meeting notes`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How It Works`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Connect Granola`}),`: Enter your Granola API key in the Integrations settings.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Link Context`}),`: From any Source details page, click “Add Source Context” and select Granola.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Select Notes`}),`: Browse and select meeting notes to use as context for your charts.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AI Analysis`}),`: Our AI automatically uses the meeting summaries to provide deeper insights into your pulse summaries, connecting your live data to your meeting context.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`setup`,children:`Setup`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Generate a Granola API Key`,children:[_jsxs(_components.p,{children:[`Open the `,_jsx(_components.strong,{children:`Granola desktop app`}),`, go to `,_jsx(_components.strong,{children:`Settings → API → Create new key`}),`, and generate a key.`]}),_jsx(Frame,{caption:`Granola Settings → API key screen`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/chartcastr/FtmQsextKE2Y1kDT/images/integrations/context/granola/granola-api-key.png?fit=max\u0026auto=format\u0026n=FtmQsextKE2Y1kDT\u0026q=85\u0026s=434de1e7c0b6ae320a768f1b05defe0c`,alt:`Granola API key settings screen`,\"data-og-width\":`648`,width:`648`,\"data-og-height\":`276`,height:`276`,\"data-path\":`images/integrations/context/granola/granola-api-key.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/chartcastr/FtmQsextKE2Y1kDT/images/integrations/context/granola/granola-api-key.png?w=280\u0026fit=max\u0026auto=format\u0026n=FtmQsextKE2Y1kDT\u0026q=85\u0026s=6b66da544c3fb5198defff310bfccd8a 280w, https://mintcdn.com/chartcastr/FtmQsextKE2Y1kDT/images/integrations/context/granola/granola-api-key.png?w=560\u0026fit=max\u0026auto=format\u0026n=FtmQsextKE2Y1kDT\u0026q=85\u0026s=160dec719056b06ad5cfefb8a68777c1 560w, https://mintcdn.com/chartcastr/FtmQsextKE2Y1kDT/images/integrations/context/granola/granola-api-key.png?w=840\u0026fit=max\u0026auto=format\u0026n=FtmQsextKE2Y1kDT\u0026q=85\u0026s=5977c1b4b7d60a7f1d46a9adbb5da3a1 840w, https://mintcdn.com/chartcastr/FtmQsextKE2Y1kDT/images/integrations/context/granola/granola-api-key.png?w=1100\u0026fit=max\u0026auto=format\u0026n=FtmQsextKE2Y1kDT\u0026q=85\u0026s=f53193bed1d8836ea49c3bd36147425b 1100w, https://mintcdn.com/chartcastr/FtmQsextKE2Y1kDT/images/integrations/context/granola/granola-api-key.png?w=1650\u0026fit=max\u0026auto=format\u0026n=FtmQsextKE2Y1kDT\u0026q=85\u0026s=446a27bc1ce5266fd364f2f807cd9bfa 1650w, https://mintcdn.com/chartcastr/FtmQsextKE2Y1kDT/images/integrations/context/granola/granola-api-key.png?w=2500\u0026fit=max\u0026auto=format\u0026n=FtmQsextKE2Y1kDT\u0026q=85\u0026s=4148ee316342e687fc73eab2a87e9289 2500w`})}),_jsx(_components.p,{children:`Granola offers two key types — either works with Chartcastr:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Key Type`}),_jsx(_components.th,{children:`Scope`}),_jsx(_components.th,{children:`Plan Required`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Personal API key`})}),_jsx(_components.td,{children:`Your own notes, notes shared with you, and notes in private folders shared with you`}),_jsx(_components.td,{children:`Business or Enterprise`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Enterprise API key`})}),_jsx(_components.td,{children:`All notes in the Team space (org-wide, excludes private notes/folders)`}),_jsx(_components.td,{children:`Enterprise only (admin)`})]})]})]}),_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Which key should I use?`}),` Use a `,_jsx(_components.strong,{children:`Personal API key`}),` if you want to attach your own meeting notes as context. Use an `,_jsx(_components.strong,{children:`Enterprise API key`}),` if a workspace admin wants to provide org-wide meeting context across all team members’ notes.`]})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`On Enterprise plans, workspace admins can control whether members can create Personal API keys via the `,_jsx(_components.strong,{children:`“Allow personal API keys”`}),` toggle in `,_jsx(_components.strong,{children:`Settings → Workspace`}),`.`]})})]}),_jsx(Step,{title:`Connect in Chartcastr`,children:_jsxs(_components.p,{children:[`In Chartcastr, go to `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Source Integrations`}),` and find the `,_jsx(_components.strong,{children:`Granola`}),` card. Enter your API key and click `,_jsx(_components.strong,{children:`Test \u0026 Connect`}),`.`]})}),_jsx(Step,{title:`Attach Meeting Notes`,children:_jsxs(_components.p,{children:[`From any Source or Source Group detail page, click `,_jsx(_components.strong,{children:`Add Source Context`}),`, select `,_jsx(_components.strong,{children:`Granola`}),`, and browse your meeting notes. Select the notes relevant to the data you’re tracking.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-gets-cached`,children:`What Gets Cached`}),`\n`,_jsx(_components.p,{children:`When you attach a Granola meeting note, Chartcastr caches the following information for AI analysis:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Meeting title`}),` and date/time`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Attendees`}),` (names and emails)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AI-generated summary`}),` (in markdown format)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Folder membership`}),` for organizational context`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Full transcripts are not cached to keep token usage efficient. The AI summary provides the most relevant context in a compact form.`})}),`\n`,_jsx(Heading,{level:`2`,id:`benefits`,children:`Benefits`}),`\n`,_jsx(_components.p,{children:`By linking Granola meeting notes, your AI-generated summaries will understand the “why” behind your data:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Correlate metric spikes with decisions made in recent meetings`}),`\n`,_jsx(_components.li,{children:`Include meeting context in your daily or weekly pulses`}),`\n`,_jsx(_components.li,{children:`Get smarter answers to follow-up questions in Slack based on your meeting history`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`access-scope`,children:`Access Scope`}),`\n`,_jsx(_components.p,{children:`What notes you can browse in Chartcastr depends on which API key type you use:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Key Type`}),_jsx(_components.th,{children:`What You Can Access`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Personal API key`})}),_jsx(_components.td,{children:`Notes you own, notes shared with you, notes in private folders shared with you`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Enterprise API key`})}),_jsx(_components.td,{children:`All notes in the Team space (everything workspace members can read, excluding private notes/folders)`})]})]})]}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`If your organization has multiple Granola workspaces, you’ll need a separate API key per workspace.`})}),`\n`,_jsx(Heading,{level:`2`,id:`rate-limits`,children:`Rate Limits`}),`\n`,_jsx(_components.p,{children:`Granola enforces rate limits per user (Personal) or per workspace (Enterprise):`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Metric`}),_jsx(_components.th,{children:`Value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Burst capacity`}),_jsx(_components.td,{children:`25 requests`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Time window`}),_jsx(_components.td,{children:`5 seconds`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sustained rate`}),_jsx(_components.td,{children:`5 requests/second (300/minute)`})]})]})]}),`\n`,_jsx(_components.p,{children:`Chartcastr respects these limits when browsing and fetching notes.`}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`What Granola plan do I need?`,id:`what-granola-plan-do-i-need`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.strong,{children:`Business`}),` or `,_jsx(_components.strong,{children:`Enterprise`}),` plan. Personal API keys are available on both. Enterprise API keys require the Enterprise plan and must be created by a workspace admin.`]})}),_jsx(Accordion,{title:`Can I use the Granola MCP instead?`,id:`can-i-use-the-granola-mcp-instead`,children:_jsx(_components.p,{children:`Granola also offers an MCP (Model Context Protocol) integration for conversational AI tools like Claude and ChatGPT. The MCP uses browser-based OAuth and is designed for interactive chat. For Chartcastr’s automated context enrichment, the API key approach is the right fit since it runs in the background without user interaction.`})}),_jsx(Accordion,{title:`Are webhooks available?`,id:`are-webhooks-available`,children:_jsx(_components.p,{children:`Not yet — Granola’s webhook support is on their roadmap. Currently, Chartcastr fetches note content when you attach a note as context.`})})]})]})}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":"Granola meeting notes as context","description":"Link Granola meeting notes to Chartcastr sources so AI pulse summaries correlate metric changes with recent decisions and action items.","href":"/analysis/context/granola"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"How It Works","slug":"how-it-works","depth":2,"children":[]},{"title":"Setup","slug":"setup","depth":2,"children":[]},{"title":"What Gets Cached","slug":"what-gets-cached","depth":2,"children":[]},{"title":"Benefits","slug":"benefits","depth":2,"children":[]},{"title":"Access Scope","slug":"access-scope","depth":2,"children":[]},{"title":"Rate Limits","slug":"rate-limits","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"chartcastr","siteName":"Chartcastr","title":"Granola meeting notes as context - Chartcastr","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-21T07:11:02.016Z","originalFileLocation":"analysis/context/granola.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=\"Link Granola meeting notes to Chartcastr sources so AI pulse summaries correlate metric changes with recent decisions and action items.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Chartcastr\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/chartcastr/gIE6d8sGLkOqJOlv/_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/chartcastr/gIE6d8sGLkOqJOlv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/chartcastr/gIE6d8sGLkOqJOlv/_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/chartcastr/gIE6d8sGLkOqJOlv/_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/chartcastr/gIE6d8sGLkOqJOlv/_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/chartcastr/gIE6d8sGLkOqJOlv/_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/chartcastr/gIE6d8sGLkOqJOlv/_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/chartcastr/gIE6d8sGLkOqJOlv/_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/chartcastr/gIE6d8sGLkOqJOlv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Granola meeting notes as context - Chartcastr\">\u003cmeta data-mint-head property=\"og:description\" content=\"Link Granola meeting notes to Chartcastr sources so AI pulse summaries correlate metric changes with recent decisions and action items.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Chartcastr\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.chartcastr.com/analysis/context/granola\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://chartcastr.mintlify.site/_mintlify/api/og/v2?division=Context\u0026amp;title=Granola+meeting+notes+as+context\u0026amp;description=Link+Granola+meeting+notes+to+Chartcastr+sources+so+AI+pulse+summaries+correlate+metric+changes+with+recent+decisions+and+action+items.\u0026amp;theme=004e5e495b5ffafc1f4f696b\u0026amp;signature=6bf879141317c61ac97c78ec5c53a56cf243d2912cf2561214a9861b68485fa9\">\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=\"Granola meeting notes as context - Chartcastr\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Link Granola meeting notes to Chartcastr sources so AI pulse summaries correlate metric changes with recent decisions and action items.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://chartcastr.mintlify.site/_mintlify/api/og/v2?division=Context\u0026amp;title=Granola+meeting+notes+as+context\u0026amp;description=Link+Granola+meeting+notes+to+Chartcastr+sources+so+AI+pulse+summaries+correlate+metric+changes+with+recent+decisions+and+action+items.\u0026amp;theme=004e5e495b5ffafc1f4f696b\u0026amp;signature=6bf879141317c61ac97c78ec5c53a56cf243d2912cf2561214a9861b68485fa9\">\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/chartcastr/gIE6d8sGLkOqJOlv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Chartcastr\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#b3450b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.chartcastr.com/analysis/context/granola\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/analysis/context/granola.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.chartcastr.com/#organization\",\"name\":\"Chartcastr\",\"url\":\"https://docs.chartcastr.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/chartcastr/M5ICqDu3pqtuq0Gh/logo/light-logo.png?fit=max\u0026auto=format\u0026n=M5ICqDu3pqtuq0Gh\u0026q=85\u0026s=b3ccd67e5172adaa7aaf4cd53f6c890c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.chartcastr.com#website\",\"name\":\"Chartcastr\",\"url\":\"https://docs.chartcastr.com\",\"publisher\":{\"@id\":\"https://docs.chartcastr.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.chartcastr.com/analysis/context/granola#webpage\",\"url\":\"https://docs.chartcastr.com/analysis/context/granola\",\"name\":\"Granola meeting notes as context\",\"description\":\"Link Granola meeting notes to Chartcastr sources so AI pulse summaries correlate metric changes with recent decisions and action items.\",\"dateModified\":\"2026-04-21T07:11:02.016Z\",\"isPartOf\":{\"@id\":\"https://docs.chartcastr.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.chartcastr.com/analysis/context/granola#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.chartcastr.com/analysis/context/granola#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Analysis\",\"item\":\"https://docs.chartcastr.com/analysis/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Context\",\"item\":\"https://docs.chartcastr.com/analysis/context/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Granola meeting notes as context\",\"item\":\"https://docs.chartcastr.com/analysis/context/granola\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.chartcastr.com/analysis/context/granola#article\",\"headline\":\"Granola meeting notes as context\",\"name\":\"Granola meeting notes as context\",\"description\":\"Link Granola meeting notes to Chartcastr sources so AI pulse summaries correlate metric changes with recent decisions and action items.\",\"url\":\"https://docs.chartcastr.com/analysis/context/granola\",\"mainEntityOfPage\":{\"@id\":\"https://docs.chartcastr.com/analysis/context/granola#webpage\"},\"dateModified\":\"2026-04-21T07:11:02.016Z\",\"publisher\":{\"@id\":\"https://docs.chartcastr.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.chartcastr.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Chartcastr\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Chartcastr","nav":{"global":null,"groups":[{"group":"Getting Started","pages":[{"title":"What is Chartcastr?","href":"/index"},{"title":"Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Pulses","href":"/admin/pulses"},{"title":"Connections","href":"/admin/connections"}]},{"group":"Sources","pages":[{"title":"Sources overview","href":"/integrations/sources"},{"title":"Source groups","href":"/admin/sources/source-groups"},{"group":"Google Sheets","pages":[{"title":"Google Sheets source","href":"/integrations/sources/google-sheets"},{"title":"Premade Google Sheets charts","href":"/integrations/sources/google-sheets/premade-charts"},{"title":"Custom data range charts","href":"/integrations/sources/google-sheets/custom-data-range"}]},{"group":"Xero","pages":[{"title":"Xero accounting source","href":"/integrations/sources/xero"},{"title":"Xero accounting charts","href":"/integrations/sources/xero/available-charts"}]},{"group":"Shopify","pages":[{"title":"Shopify source","href":"/integrations/sources/shopify"},{"title":"Shopify default reports","href":"/integrations/sources/shopify/default-reports"}]},{"group":"HubSpot CRM","pages":[{"title":"HubSpot CRM source","href":"/integrations/sources/hubspot"},{"title":"HubSpot CRM charts","href":"/integrations/sources/hubspot/available-charts"}]},{"group":"Attio CRM","pages":[{"title":"Attio CRM source","href":"/integrations/sources/attio"},{"title":"Attio CRM charts","href":"/integrations/sources/attio/available-charts"}]},{"group":"PostHog","pages":[{"title":"PostHog source","href":"/integrations/sources/posthog"},{"title":"PostHog charts","href":"/integrations/sources/posthog/available-charts"}]},{"group":"Mixpanel","pages":[{"title":"Mixpanel source","href":"/integrations/sources/mixpanel"},{"title":"Mixpanel charts","href":"/integrations/sources/mixpanel/available-charts"}]},{"group":"Amplitude","pages":[{"title":"Amplitude source","href":"/integrations/sources/amplitude"},{"title":"Amplitude charts","href":"/integrations/sources/amplitude/available-charts"}]},{"group":"Resend","pages":[{"title":"Resend source","href":"/integrations/sources/resend"},{"title":"Resend charts","href":"/integrations/sources/resend/available-charts"}]},{"group":"Plausible Analytics","pages":[{"title":"Plausible Analytics source","href":"/integrations/sources/plausible"},{"title":"Plausible Analytics charts","href":"/integrations/sources/plausible/available-charts"}]},{"title":"Notion Database source","href":"/integrations/sources/notion"},{"group":"RevenueCat","pages":[{"title":"RevenueCat source","href":"/integrations/sources/revenuecat"},{"title":"RevenueCat charts","href":"/integrations/sources/revenuecat/available-charts"}]},{"group":"Triple Whale","pages":[{"title":"Triple Whale source","href":"/integrations/sources/triple-whale"},{"title":"Triple Whale available charts","href":"/integrations/sources/triple-whale/available-charts"}]},{"group":"Grafana","pages":[{"title":"Grafana source","href":"/integrations/sources/grafana"}]},{"group":"Google Search Console","pages":[{"title":"Google Search Console source","href":"/integrations/sources/google-search-console"},{"title":"Google Search Console charts","href":"/integrations/sources/google-search-console/available-charts"}]},{"group":"Google Ads","pages":[{"title":"Google Ads source","href":"/integrations/sources/google-ads"},{"title":"Google Ads charts","href":"/integrations/sources/google-ads/available-charts"}]},{"group":"Meta Ads","pages":[{"title":"Meta Ads source","href":"/integrations/sources/meta-ads"},{"title":"Meta Ads charts","href":"/integrations/sources/meta-ads/available-charts"}]},{"title":"LinkedIn Ads source","href":"/integrations/sources/linkedin-ads"},{"group":"Linear","pages":[{"title":"Linear source","href":"/integrations/sources/linear"},{"title":"Linear charts","href":"/integrations/sources/linear/available-charts"}]},{"group":"Typeform","pages":[{"title":"Typeform source","href":"/integrations/sources/typeform"},{"title":"Typeform charts","href":"/integrations/sources/typeform/available-charts"}]},{"group":"Klaviyo","pages":[{"title":"Klaviyo source","href":"/integrations/sources/klaviyo"},{"title":"Klaviyo charts","href":"/integrations/sources/klaviyo/available-charts"}]},{"group":"Harvest","pages":[{"title":"Harvest source","href":"/integrations/sources/harvest"},{"title":"Harvest charts","href":"/integrations/sources/harvest/available-charts"}]},{"group":"OpenPageRank","pages":[{"title":"OpenPageRank source","href":"/integrations/sources/openpagerank"}]},{"group":"Savio","pages":[{"title":"Savio source","href":"/integrations/sources/savio"},{"title":"Savio charts","href":"/integrations/sources/savio/available-charts"}]},{"group":"AppsFlyer","pages":[{"title":"AppsFlyer source","href":"/integrations/sources/appsflyer"},{"title":"AppsFlyer available charts","href":"/integrations/sources/appsflyer/available-charts"}]},{"group":"DataFast","pages":[{"title":"DataFast source","href":"/integrations/sources/datafast"},{"title":"DataFast charts","href":"/integrations/sources/datafast/available-charts"}]},{"group":"Umami Analytics","pages":[{"title":"Umami Analytics source","href":"/integrations/sources/umami"},{"title":"Umami Analytics charts","href":"/integrations/sources/umami/available-charts"}]},{"group":"Microsoft Clarity","pages":[{"title":"Microsoft Clarity source","href":"/integrations/sources/clarity"},{"title":"Microsoft Clarity charts","href":"/integrations/sources/clarity/available-charts"}]},{"group":"Spotify Ads","pages":[{"title":"Spotify Ads","href":"/integrations/sources/spotify"},{"title":"Available Charts","href":"/integrations/sources/spotify/available-charts"}]},{"group":"Typefully","pages":[{"title":"Typefully source","href":"/integrations/sources/typefully"},{"title":"Typefully charts","href":"/integrations/sources/typefully/available-charts"}]},{"group":"AskNicely","pages":[{"title":"AskNicely source","href":"/integrations/sources/asknicely"},{"title":"AskNicely charts","href":"/integrations/sources/asknicely/available-charts"}]},{"group":"Luma","pages":[{"title":"Luma source","href":"/integrations/sources/luma"},{"title":"Luma charts","href":"/integrations/sources/luma/available-charts"}]}]},{"group":"Destinations","pages":[{"title":"Destinations overview","href":"/integrations/destinations"},{"group":"Slack","pages":[{"title":"Slack destination","href":"/integrations/destinations/slack"},{"title":"Tagging @chartcastr in Slack","href":"/integrations/destinations/slack/tagging"}]},{"title":"Google Chat destination","href":"/integrations/destinations/google-chat"},{"title":"Ando destination","href":"/integrations/destinations/ando"},{"title":"WhatsApp delivery (private beta)","href":"/integrations/destinations/whatsapp"},{"title":"Microsoft Teams destination","href":"/integrations/destinations/teams"},{"title":"Email destination","href":"/integrations/destinations/email"},{"title":"Custom email destination (early access)","href":"/integrations/destinations/custom-email"}]},{"group":"Analysis","pages":[{"title":"Analysis features overview","href":"/analysis/overview"},{"title":"AI analysis in pulses","href":"/analysis/in-pulses"},{"group":"Briefings","pages":[{"title":"Briefings overview","href":"/analysis/briefings/overview"},{"title":"Briefings use cases","href":"/analysis/briefings/use-cases"},{"title":"Briefing rows","href":"/analysis/briefings/rows"},{"title":"Overall review \u0026 AI commentary","href":"/analysis/briefings/overall-review"},{"title":"Save \u0026 commit","href":"/analysis/briefings/save-and-commit"},{"title":"Snapshots \u0026 delivery","href":"/analysis/briefings/snapshots"},{"title":"The /admin/briefings page","href":"/analysis/briefings/admin-page"}]},{"group":"Context","pages":[{"title":"External context overview","href":"/analysis/context/overview"},{"title":"Google Sheets as context","href":"/analysis/context/google-sheets"},{"title":"Google Docs as context","href":"/analysis/context/google-docs"},{"title":"Notion as context","description":"Connect Notion pages and databases as external context for Chartcastr AI. Correlate data trends with project milestones and team documentation.","href":"/analysis/context/notion"},{"title":"Granola meeting notes as context","href":"/analysis/context/granola"},{"title":"Slack Canvas as context","description":"Let Chartcastr automatically use Slack channel canvases as extra AI context for pulses sent into that channel.","href":"/analysis/context/slack-canvas"},{"title":"Confluence context (coming soon)","href":"/analysis/context/confluence"},{"title":"OneDrive context (early access)","href":"/analysis/context/onedrive"},{"title":"User notes","href":"/analysis/context/user-notes"}]},{"group":"Chat (Private Beta)","pages":[{"title":"AI chat overview","href":"/analysis/chat/overview"},{"title":"Chat follow-ups in Slack and Teams","href":"/analysis/chat/followups"},{"title":"Chat actions","href":"/analysis/chat/actions"},{"title":"Conversational data analysis","href":"/analysis/chat/analysis"}]}]},{"group":"Stats","pages":[{"title":"Stats overview","href":"/stats/overview"},{"title":"Delivery and volume stats","href":"/stats/delivery"},{"title":"Engagement stats","href":"/stats/engagement"}]},{"group":"AI Tools","pages":[{"title":"AI Tools — Setup","href":"/integrations/ai-tools"},{"title":"AI Tools — Concepts","href":"/integrations/ai-tools-concepts"},{"title":"Claude Code","href":"/integrations/claude-code"},{"title":"Claude (Desktop)","href":"/integrations/claude"},{"title":"Cursor","href":"/integrations/cursor"},{"title":"ChatGPT","href":"/integrations/chatgpt"},{"title":"Codex (OpenAI)","href":"/integrations/codex"}]},{"group":"API","pages":[{"title":"API Overview","href":"/api/overview"},{"title":"Sources","href":"/api/sources"},{"title":"Pulses","href":"/api/pulses"}]},{"group":"Streams","pages":[{"title":"Streams overview","href":"/streams/overview"},{"title":"Xero streams","href":"/streams/xero"},{"title":"Shopify streams","href":"/streams/shopify"},{"title":"Meta Ads streams","href":"/streams/meta-ads"}]},{"group":"Admin","pages":[{"title":"Admin dashboard","href":"/admin/dashboard"},{"title":"Pulse Score","icon":"activity","href":"/admin/pulse-score"},{"title":"Agency workspaces","href":"/admin/agency-workspaces"},{"group":"Settings","pages":[{"title":"Pulse thread cross-linking","href":"/admin/settings/pulse-thread-linking"},{"title":"AI summary locale","href":"/admin/settings/locale"},{"title":"Schedule timezone","href":"/admin/settings/timezone"}]},{"group":"Manage","pages":[{"title":"Invite team members","href":"/admin/manage/invite-members"},{"title":"Leave an organization","href":"/admin/manage/leave-org"},{"title":"Update organization profile image","href":"/admin/manage/update-profile-image"},{"title":"Add email addresses","href":"/admin/manage/add-emails"},{"title":"Google account connection","href":"/admin/manage/google-account"},{"title":"Archived items","href":"/admin/manage/archived-items"},{"title":"Usage and limits","href":"/admin/manage/usage"}]},{"group":"Billing","pages":[{"title":"Subscription plans","href":"/admin/billing/plans"},{"title":"Invoices","href":"/admin/billing/invoices"},{"title":"Payment methods","href":"/admin/billing/payment-methods"}]},{"group":"For Agencies","pages":[{"title":"Agency overview","href":"/agencies/overview"},{"title":"Setting up your agency","href":"/agencies/setup"},{"title":"Agency billing","href":"/agencies/billing"},{"title":"Managing client workspaces","href":"/agencies/managing-clients"},{"title":"Agency limits","href":"/agencies/limits"}]}]}]},"basePath":"","title":"Granola meeting notes as context - Chartcastr","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-NdetNziF.js","DynamicMarkdown-CD8713Yy.js","zoom-image-lightbox-DMoL6lHz.js","lightbox-handle-r17bVUz3.js"]}