Working on Connect with an AI agent rather than by hand — whichever provider's agent it is. The skills TSANet ships and how to load them into any assistant, the assistant embedded in this hub, what every provider's agent framework needs from the Connect API and where each one falls short, and a platform assessment of Microsoft Copilot Studio as one hosted way to build such an agent.
This page mixes three kinds of claim, and tags each one. Some of it is shipped — the agent skills exist, the pages that have one were verified against it, and the hub assistant's launcher is in this site's source. Some of it is documented, not observed — read on a vendor's documentation, never watched working against Connect. And some is a known unknown. The bar everywhere else on the hub applies here: nothing below describes something as built unless it is.
Shipped
An agent skill is a folder with a SKILL.md in it — name and description in frontmatter, instructions underneath, optionally reference files and scripts alongside. An assistant reads the description to decide when the skill applies and loads the full instructions only then. Anthropic released the format as an open standard on 18 December 2025; the specification lives at agentskills.io, and the site lists Claude, OpenAI Codex, Gemini CLI, GitHub Copilot, Cursor and VS Code among the tools that read it. documented That is why the connector pages can say "nothing in it is Claude-specific": the same folder loads into any of them.
TSANet ships four member-facing skills (a fifth, internal one covers the adapters TSANet builds itself and is not part of any kit). Each was distilled from the production implementation it sits next to, and the Zendesk, Fin / Intercom, SDK and Gateway pages on this hub were verified against their skills' repositories. Salesforce and Dynamics have no skill yet.
| Skill | Where | What it carries | Get it |
|---|---|---|---|
| Zendesk connector | SKILL_TSANet_Connect.md in tsanetgit/Zendesk_App | The two-layer ZAF + ZIS architecture, the OAuth setup and its traps, the custom-field scheme, lifecycle rules, platform gotchas, auto-accept and inbound form fields, PII retention and data handling | Single file with a trigger key rather than the folder convention; its PII section links a sibling file in the repo; Zendesk → Build with an assistant |
| Connect SDK deployment | skills/connect-sdk-deploy in tsanetgit/Connect_SDK | Artifact-versus-source, the GitHub Packages token, both credential modes, the demo runbook, symptom-first troubleshooting | Folder with references and evals; SDK → Build with an assistant |
| Fin / Intercom deployment | skills/fin-intercom-deploy in tsanetgit/Fin-Intercom_App | The adapter's invariants, Intercom workspace setup, the hardened permission profile, TSANet-side provisioning, the environment table | Folder with references, with repository access granted at early-access onboarding; Fin / Intercom → Build with an assistant |
| Gateway adapter author | skills/connect-adapter-author in the Connect Gateway repository | The build order and rules for a member- or vendor-written adapter, binding semantics, onboarding, go-live, the vendored API spec | Granted with repository access at onboarding; Gateway page |
Claude Code reads project skills from .claude/skills/. Copy the whole folder, because the references must ride along with the SKILL.md that cites them:
git clone --depth 1 https://github.com/tsanetgit/Connect_SDK.git
cp -R Connect_SDK/skills/connect-sdk-deploy your-project/.claude/skills/
Any other assistant that reads the standard puts the same folder in its own skills directory — check the tool's documentation for the path. A tool that does not read skills at all still takes SKILL.md and its references as project instructions or a context attachment. The skill lives in the connector repository and evolves with it, so refresh your copy when you upgrade the connector.
This site
A chat assistant for developers working from these pages: ask it which connector fits a platform, what a status transition needs, why an auth call fails with a given code, and it answers from the hub, the API reference and the public tsanetgit repositories, with a link to the page it drew on. It is designed as a Microsoft Copilot Studio agent, running on Claude, embedded in every page of this site as an iframe — the site half is shipped, the agent half is not yet created.
Two halves. The site half is shipped: assets/assistant.js renders a launcher in the bottom-right corner and a panel that loads the agent on first open — but only once an embed URL is configured, so no launcher appears for an agent that does not exist. shipped The agent half is not yet created. It has to be built in TSANet's Microsoft tenant by someone with Copilot Studio maker rights, and the recipe below is exactly that job. needs probe
This hub is plain HTML on GitHub Pages with no server. An assistant built directly on a provider's API — Anthropic's, OpenAI's, Google's — needs a hosted backend to hold the API key and run the retrieval; Copilot Studio hosts all of that and hands back a one-line iframe. It also lets TSANet pick the model in a dropdown, including Claude Sonnet 4.6, and change it later without touching this site. documented The trade is that the agent's cost and governance live in TSANet's Microsoft tenant, and the knowledge retrieval runs on Bing's index of these pages rather than on the pages themselves.
You help software developers integrate with TSANet Connect. Answer only from
your knowledge sources: the TSANet Developer Hub, the Connect API reference on
GitBook, and the public tsanetgit repositories. Link the page you used.
If the sources do not cover a question, say so and point to the hub's
Community page; do not invent endpoints, field names, status codes or limits.
Never ask for or accept credentials, tokens or secrets; credential and
membership matters go to membership@tsanet.org.
Prefer the hub's wording where it flags a contradiction between sources, and
repeat the contradiction rather than resolving it.https://tsanetgit.github.io/tsanet-developer-hub, https://tsanet.gitbook.io/connect and https://github.com/tsanetgit. Public-website knowledge is retrieved through Grounding with Bing Search; the URL may be at most two path levels deep (all three are), the site must be public and indexed by Bing, and a generatively orchestrated agent may hold up to 25 such sources. documented Whether Bing has indexed this hub is unverified; if it has not, upload the pages as file knowledge instead until it has. needs probesrc has the shape https://copilotstudio.microsoft.com/environments/<env>/bots/<bot>/webchat?__version__=2 and the embed code is shown only while authentication is off. documented Microsoft's current Learn page shows the longer alternative — Bot Framework Web Chat with the token endpoint from Channels → Email — which this site does not need.src into embedUrl in assets/assistant.js, bump the ?v= query on the script tag (the same asset-cache rule as the stylesheet), commit and push. The launcher appears on every page on the next deploy; the script refuses any URL that is not on copilotstudio.microsoft.com.responded gates the SLA, why a note has two fields — and check the link it cites. Then ask something the hub does not cover and confirm it says so.Provider-agnostic
Strip away the branding and every agent framework needs the same two things to act on TSANet Connect: a tool definition it can read — an OpenAPI document or a JSON schema per operation — and an authentication path that produces the app-only token Connect expects. The first is easy everywhere. The second is where the frameworks split, because the Connect API's server-to-server path is OAuth 2.0 client credentials: no user signs in, and the service principal is one TSANet provisions and maps to the member company.
| Provider · surface | Tool definition | Auth it can do on its own | App-only client credentials? |
|---|---|---|---|
| Anthropic · Claude API tool use, Claude Code, Agent SDK | JSON schema per tool; your code executes the call | Whatever your code does — the model never holds a credential | Yes your code mints the token. An MCP server can be attached directly through the API's MCP connector. documented |
| Anthropic · Managed Agents | Your custom tools, plus MCP servers declared on the agent | Vault credentials substituted at egress, never visible in the sandbox | Yes via a vault credential or a custom tool your host runs. documented |
| Microsoft · Copilot Studio REST API tool | OpenAPI v2, JSON (v3 is translated on upload) | None · API key · OAuth 2.0 with an authorization URL and a consent card — a user-delegated flow | Not in the wizard a custom connector reportedly accepts a client-credentials grant, and one thread reports delegated tokens sent regardless community needs probe |
| Microsoft · Copilot Studio MCP tool | An MCP server over Streamable HTTP | None · API key · OAuth 2.0 (dynamic discovery, dynamic, manual) | Inside the server the server holds the member credential; Copilot Studio authenticates to the server, not to Connect. documented |
| OpenAI · custom GPT Actions | OpenAPI document | None · API key · OAuth with an authorization URL — the authorization_code grant | No client credentials is not among the documented options. documented |
Google · Agent Development Kit OpenAPIToolset | OpenAPI 3 document, YAML or JSON | API key · HTTP bearer · OAuth 2.0 · OpenID Connect · Google service account | Yes, by hand the documented OAuth flow is the interactive authorization-code one, but your code can mint a token and pass it as an HTTP bearer credential. documented |
The pattern in that last column is the whole finding. Hosted, no-code agent builders assume a signed-in human — Copilot Studio's wizard and custom GPT Actions both offer OAuth only as a redirect-and-consent flow — so they cannot use the client-credentials path as documented — the legacy POST /v1/login JWT remains available, at the cost of something in your system holding and refreshing the token. Code-first frameworks can, because the code that runs the tool is yours and can do the client-credentials exchange itself. The reusable piece, then, is a small service that holds a member's Connect credential and exposes cases, notes, forms and file forwarding as tools. Today the shape most of these frameworks agree on for that service is an MCP server over Streamable HTTP: Copilot Studio and the Claude API both attach one directly documented; the others advertise MCP support that this page has not verified. needs probe Nobody has written that server for Connect. When somebody does, it is the same translation-service work as Working with the API describes, hosted somewhere reachable — gateway-class if TSANet operates it, member-hosted otherwise, which is the open question in the table below.
membership@tsanet.org. Ask for it before designing around a spec upload, and check its version — Copilot Studio wants v2, the others v3.Design
Everything on the API page still applies when the caller is a language model, and a few of those rules become sharper rather than softer.
documentId arrives with the fetch and partners change their forms. Do not let an agent cache a partner's process form as knowledge.summary and description are Subject and Details — both reach the partner, rendered as two sections. Internal-versus-partner visibility is a connector-platform concept (Zendesk models it), not an API one. A tool that "adds a note" is underspecified until it fills both fields.Accept header that switches on RFC 7807 bodies has to be sent by whatever executes the tool, or the model will read every validation failure as an outage and retry it.Platform assessment
One hosted way to build an agent over Connect, assessed in detail because it is the platform behind the hub assistant and the one a Dynamics member already has an environment for. Everything here is documented, not observed: read on Microsoft Learn (dates in the sources) and in the source of the shipped Dynamics solution. No Copilot Studio agent has been built against Connect. Assessed 2026-09-13.
A maker picks the agent's primary model from a dropdown on the agent's Overview page, and picks again, separately, for each prompt tool. Since 7 January 2026 Anthropic operates as a Microsoft subprocessor for these models, so Microsoft's Product Terms and Data Protection Addendum apply rather than Anthropic's commercial terms — except for models Microsoft labels "with Data Retention", which stay off by default and need a separate opt-in. documented
| Model | Where it can be picked | Status | Notes |
|---|---|---|---|
| Claude Sonnet 4.6 | Agent primary model · prompt tools | GA | General-category. Cross-geo everywhere except the United States. Standard rate in prompt tools, 200K-token context per call. The model this page assumes. |
| Claude Sonnet 5 | Agent primary model | GA | Only for agents on the GitHub Copilot harness. Not offered in Australia or Saudi Arabia; in the United States, GA only in early-access environments. |
| Claude Opus 4.6 · 4.7 | Agent primary model · prompt tools (4.6) | GA | Deep-category: highest latency and cost. Premium rate in prompt tools. |
| Claude Sonnet 4.5 | — | Retired | GA in March 2026; retired in every region by the September 2026 table. |
| Claude Haiku (any version) | — | Not offered | Absent from the agent-model table, the prompt-tool table and every release note. See below. |
/chat/completions) and lists no Anthropic models; Claude in Foundry is served through the Messages API at /anthropic/v1/messages. documented Whether any shim bridges that is untested needs probe — and even if one did, that route reaches prompt tools only, never orchestration. Sonnet 4.6 is the practical floor.| Switch | Where | Default | Who |
|---|---|---|---|
| Anthropic as a subprocessor, plus which users or groups may use it | Microsoft 365 admin center → Copilot → Settings → AI providers operating as Microsoft subprocessors → Anthropic | On in commercial cloud; Off for EU, EFTA and UK tenants | AI Administrator or Global Administrator |
| External models for the environment | Power Platform admin center → Manage → Environments → environment → Settings → Product → Features → the model-family toggle; or the External Models rule on a managed environment group | Visible but not selectable until the first switch is on | Power Platform admin |
| Data movement across regions | Environment setting Move data across regions in the Power Platform admin center | Needed wherever the model is tagged cross-geo — every region except the United States for Sonnet 4.6 | Tenant administrator |
Copilot Studio gives an agent tools; what a TSANet agent needs is a tool that reaches Connect. There are three shapes, and the platform's own rules decide which one a member can use.
The Dynamics solution already installs six Dataverse tables — the case, its notes, the mapping and settings tables — and a set of Power Automate flows that do the Connect calls: a Login child flow that holds the client-credentials exchange in one place, and flows for fetching cases, posting a case, posting a note, and posting or updating an approval. All of it is in the public repository. documented
A Copilot Studio agent in the same environment can use Dataverse as a knowledge source and call flows as tools, so the shape is: read the ap_ tables directly, and write by invoking the solution's own flows rather than the API. The agent never sees a Connect credential, the connector's log table records what happened, and the whole thing stays in the member's tenant. Nothing on this route has been wired up and tested. needs probe For a Dynamics member it adds an agent to something that already works, which is why it is the route to try first.
The REST API tool (preview, standard harness only) takes an OpenAPI specification — v2, as JSON; a v3 file is translated on upload — plus one of three auth shapes: none, an API key, or OAuth 2.0 with an authorization URL and a consent card shown to the user in chat. That last shape is an authorization-code flow: it exists to let an individual user sign in. documented There is no user to redirect on Connect's app-only path, so the wizard's OAuth option does not fit. Community write-ups say a Power Apps custom connector accepts a Client Credentials grant, and one forum thread reports Copilot Studio still sending a delegated token at runtime for such a connector. community needs probe The fallback that certainly works is the one route A already uses: a Power Automate flow with an HTTP action doing the exchange itself.
Both harnesses can attach an MCP server as a tool: the standard harness through an onboarding wizard (or a custom connector whose OpenAPI stub carries x-ms-agentic-protocol: mcp-streamable-1.0), the GitHub Copilot harness through its Build tab, in preview since July 2026. Only the Streamable HTTP transport is supported — SSE was dropped in August 2025 — and because access rides on Power Platform connectors, the tenant's data-loss-prevention policies govern it too. documented What does not exist is the server; see the provider-agnostic finding above for why it is the piece every hosted builder ends up needing.
Copilot Studio runs agents on one of two harnesses, and since June 2026 the choice is real. The Claude model and the Connect tooling are not chosen independently: each harness admits a different Claude and a different set of tool types. documented
| Standard harness | GitHub Copilot harness | |
|---|---|---|
| Claude available | Sonnet 4.6 · Opus 4.6 · Opus 4.7 | Sonnet 5 (GA), plus the standard set |
| Status | GA; the rule-based runtime | "Production-ready preview" since June 2026 |
| Reaches Connect by | REST API tool (preview) · custom connector · flows · MCP wizard | MCP server or workflow as a tool (preview) · connected agents |
| Embeds in a website by | Custom website channel (iframe) or Web Chat with a token endpoint | Not documented for this harness |
| Billing | Copilot Credits at the standard-harness rates; Sonnet 4.6 standard rate, Opus premium rate in prompts | Usage-based Copilot Credits, including build and test |
Open questions
| Question | Blocks |
|---|---|
| Has Bing indexed this hub, so that public-website knowledge returns its pages | The hub assistant's knowledge; the fallback is uploading the pages as files |
| What a hub-assistant conversation on Claude Sonnet 4.6 costs in Copilot Credits, and what an unauthenticated public agent spends in a month | Whether the assistant stays on |
Can a standard-harness agent read the Dynamics solution's ap_ tables and invoke its flows as tools, end to end | Route A — the cheapest pilot for a Dynamics member |
| Does a custom connector with a Client Credentials grant actually send an app-only token when Copilot Studio calls it | Route B without a flow in between |
| Do the OpenAI Agents SDK and Google ADK attach a Streamable HTTP MCP server the way Copilot Studio and the Claude API do | Whether one MCP server for Connect serves every provider |
| Which Learn page is right about Claude in Copilot Studio prompt tools — GA, or experimental under preview terms | Whether a member can call a Copilot Studio agent production-grade |
| Whether an MCP server for Connect should be TSANet-hosted (gateway class) or member-hosted | Route C entirely, and who operates it |
membership@tsanet.org.Verified against
Vendor documentation changes monthly; the dates are each page's own date stamps at the time of reading. Where a row here contradicts the live page, the live page wins and this one needs revisiting.
| Read on | Source | Used for |
|---|---|---|
| 2026-09-13 | agentskills.io and the four skills in the tsanetgit repositories — three folders and one file | The skills standard and which tools read it; what each TSANet skill carries |
| 2026-06-02 · upd. 2026-08-03 | Publish an agent to a live or demo website | Demo versus live website; the Web Chat and token-endpoint alternative |
| 2026-05-01 · upd. 2026-07-21 | Configure user authentication | "No authentication" and its caution; the data-policy override |
| 2026-07-21 · upd. 2026-08-03 | Add a public website as a knowledge source | Bing grounding; the two-level URL rule; the Bing-indexed requirement |
| 2026-05-04 · upd. 2026-08-03 | Customize the look and feel of an agent | Where the token endpoint lives (Channels → Email) |
| undated | Deploying Copilot Studio agents externally (Microsoft adoption guide) | The custom-website iframe shape and its no-authentication condition |
| 2026-05-28 · upd. 2026-09-05 | Select a primary AI model for your agent | The model availability table; cross-geo; fallback and retirement rules |
| 2026-05-28 · upd. 2026-09-05 | Choose an external model as the primary AI model | Anthropic as subprocessor; behaviour when access is revoked; the two gates |
| 2026-08-04 · upd. 2026-08-05 | Change the model version and settings (prompt builder) | Claude in prompt tools, rates, the "experimental stage" note, the moderation slider |
| 2026-07-14 · upd. 2026-08-03 | Bring your own model for your prompts | The chat-completions requirement that rules out Haiku via Foundry |
| 2026-09-11 | Claude models in Microsoft Foundry | Haiku 4.5 GA in Foundry; the Messages API endpoint shape |
| 2026-07-28 · upd. 2026-09-09 | Harnesses in Copilot Studio | Standard versus GitHub Copilot harness; billing split |
| 2026-08-18 · upd. 2026-08-20 | What's new in Copilot Studio | Release dates: Claude GA March 2026, Sonnet 5 June 2026, MCP-as-tool and Entra Agent ID July 2026 |
| 2026-04-17 · upd. 2026-08-19 | Extend your agent with tools from a REST API (preview) | OpenAPI v2 JSON; the three auth shapes |
| 2026-05-28 · upd. 2026-08-19 | Connect your agent to an existing MCP server | Streamable-only transport; auth flavours; DLP applies through connectors |
| 2026-07-28 · upd. 2026-07-29 | Add an MCP server as a tool (GitHub Copilot harness, preview) | MCP on the newer harness |
| 2026-09-10 | Anthropic models in Microsoft Online Services | Subprocessor terms; the Microsoft 365 admin center path; regional defaults; GCC |
| 2026-05-28 · upd. 2026-08-14 | Allow external language models for generative responses | The Power Platform admin center path; EU Data Boundary, FedRAMP and PCI exclusions |
| undated | GPT Actions authentication (OpenAI) | None / API key / OAuth authorization-code; no client-credentials option |
| undated | Authenticating with tools (Google Agent Development Kit) | OpenAPIToolset auth schemes and credential types; the documented interactive OAuth flow |
| 2026-09-13 | Tool use overview and Managed Agents MCP connector (Anthropic) | JSON-schema tools executed by your code; MCP servers on the API and on managed agents; vault credentials |
| 2026-09-13 | tsanetgit/MS_Power_App, the solution's Workflows folder | The flows route A would call: Login, GetMe, GetCases, PostCase, PostCaseNote, PostCaseApproval and their siblings |