Claude Ecosystem Anthropic launched the Claude ecosystem, enabling users to connect tools like Slack, Google Workspace, and Microsoft Office to Claude for automated workflows. The platform includes connectors and plugins for tasks such as turning Figma designs into code and fixing errors via Sentry integration, with enterprise admin controls. Claude meets you where you work Claude meets you where you work Build on, grow with, or buy from the Claude ecosystem. Connect your favorite services or find partner solutions built on Claude. Customize Claude for the best results Connectors bring your apps and data into Claude to complete tasks. Plugins combine connectors and skills to complete workflows. Bring your tools to Claude Connect Slack, Google Workspace, Microsoft Office, and more. Connect across products Your tools can be connected to Claude Code, Cowork, and Claude on web, desktop, and mobile. Built for enterprise Admins control which tools each team can use, and what those tools can do. Claude works with your stack No retrofitting required. Connect the tools you use everyday. How teams use connectors Turn designs into coded websites Handing off designs to engineering takes time and leaves room for things to get lost in translation. Connect Figma to Claude and go from frame to responsive, production-ready code in one step. $ claude "Fix the latest Sentry error and open a PR" Claude claude-sonnet-4-6 · ~/projects/acme-web ● Fetching latest Sentry issues… ✔ sentry issues list --project acme-web --limit 1 --status unresolved ISSUE-4821 TypeError: Cannot read properties of undefined reading 'data' Project: acme-web · Environment: production First seen: 2026-06-15 22:14 UTC · Last seen: 2026-06-16 07:03 UTC Events: 1,847 · Users affected: 312 Culprit: src/components/Dashboard/MetricsPanel.tsx line 94 ● Fetching full stacktrace for ISSUE-4821… TypeError: Cannot read properties of undefined reading 'data' at MetricsPanel.tsx:94:28 — processChartData response at MetricsPanel.tsx:61:12 — useEffect callback at react-dom/cjs/react-dom.development.js:22794 Most recent breadcrumb: → GET /api/v2/metrics?range=7d → 200 OK response.metrics was null ● Reading src/components/Dashboard/MetricsPanel.tsx… Line 90–98: 90 │ const processChartData = response: ApiResponse = { 91 │ const { metrics } = response 92 │ // metrics can be null when no data for the selected range 93 │ return metrics.data.map m: Metric = { 94 │ label: m.label, 95 │ value: m.value ?? 0, 96 │ } 97 │ } ● Root cause identified. API returns { metrics: null } when the selected range has no data. Line 93 dereferences metrics.data without a null guard, throwing at runtime. ● Checking git status… On branch main · nothing to commit, working tree clean ● Creating fix branch… $ git checkout -b fix/metrics-panel-null-data-sentry-4821 Switched to a new branch 'fix/metrics-panel-null-data-sentry-4821' ● Applying fix to src/components/Dashboard/MetricsPanel.tsx… @@ -90,8 +90,8 @@ const processChartData = response: ApiResponse = { const { metrics } = response - return metrics.data.map m: Metric = { + if metrics?.data return + return metrics.data.map m: Metric = { label: m.label, value: m.value ?? 0, } ● Also updating src/components/Dashboard/MetricsPanel.tsx render guard… @@ -61,6 +61,7 @@ useEffect = { fetchMetrics range .then response = { + if response?.metrics { setChartData ; return } setChartData processChartData response } }, range ● Running tests… $ pnpm test --testPathPattern=MetricsPanel PASS src/components/Dashboard/ tests /MetricsPanel.test.tsx ✓ renders loading state 12ms ✓ renders chart when data present 34ms ✓ renders empty state when metrics is null 8ms ✓ renders empty state when metrics.data is empty array 6ms Test Suites: 1 passed, 1 total Tests: 4 passed, 4 total ● Committing… $ git add src/components/Dashboard/MetricsPanel.tsx $ git commit -m "fix dashboard : guard against null metrics.data in MetricsPanel Fixes Sentry ISSUE-4821 1,847 events, 312 users . The /api/v2/metrics endpoint returns { metrics: null } when no data exists for the requested range. processChartData dereferenced metrics.data without a null check, causing a TypeError at runtime. - Add early return guard in processChartData : if metrics?.data return - Add response guard in useEffect to short-circuit setChartData call - Affected users would see a blank panel crash; now renders empty state Sentry: ISSUE-4821" fix/metrics-panel-null-data-sentry-4821 a3f9c12 fix dashboard : guard against null metrics.data... 1 file changed, 2 insertions + , 1 deletion - ● Pushing branch and opening PR… $ git push -u origin fix/metrics-panel-null-data-sentry-4821 Enumerating objects: 9, done. Counting objects: 100% 9/9 , done. Writing objects: 100% 5/5 , 1.02 KiB | 1.02 MiB/s, done. Branch 'fix/metrics-panel-null-data-sentry-4821' set up to track remote. $ gh pr create \ --title "fix dashboard : guard against null metrics.data in MetricsPanel" \ --body "..." \ --base main \ --label "bug,sentry" ✓ Pull request created: https://github.com/acme-org/acme-web/pull/1138 ────────────────────────────────────────────────── Done. PR 1138 opened · 2 lines changed · 4 tests passing Sentry ISSUE-4821 will auto-resolve once the deploy goes out. $ Turn a production error into a ready-to-review PR Triaging a production error means jumping between your error monitor, your codebase, and your version control before you can write a single line of fix. Connect Sentry and GitHub to Claude and go straight from error to pull request. Turn threads into action items Important decisions and next steps get buried in Slack threads. Connect Slack and Asana to Claude and turn any conversation into a structured task list without leaving the thread.