Hub / Topics / Agentic usage

Agentic usage with TSANet Connect

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.

Shipped Four agent skills · the hub assistant launcher Assessed Copilot Studio Providers Anthropic · Microsoft · OpenAI · Google Updated 2026-09-13

Read this before you use anything below

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.

Agent skillsFour member-facing skills shipped, in the connector repositories; a fifth, TSANet-internal one covers adapters TSANet builds itself. Plain markdown; load into any assistant.
Hub assistantLauncher and wiring shipped in this site. The Copilot Studio agent behind it is not yet created.
Copilot StudioAssessed from Microsoft Learn. No TSANet agent, custom connector or MCP server exists.
MCP server for ConnectNone. Every provider's hosted agent would want one; nobody has written it.
shipped exists in a tsanetgit repository or this site documented read in vendor documentation or shipped source community reported in a forum, not by the vendor needs probe unverified, and known to be unverified

Shipped

Agent skills: the part that already exists

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.

SkillWhereWhat it carriesGet it
Zendesk connectorSKILL_TSANet_Connect.md in tsanetgit/Zendesk_AppThe 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 handlingSingle 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 deploymentskills/connect-sdk-deploy in tsanetgit/Connect_SDKArtifact-versus-source, the GitHub Packages token, both credential modes, the demo runbook, symptom-first troubleshootingFolder with references and evals; SDK → Build with an assistant
Fin / Intercom deploymentskills/fin-intercom-deploy in tsanetgit/Fin-Intercom_AppThe adapter's invariants, Intercom workspace setup, the hardened permission profile, TSANet-side provisioning, the environment tableFolder with references, with repository access granted at early-access onboarding; Fin / Intercom → Build with an assistant
Gateway adapter authorskills/connect-adapter-author in the Connect Gateway repositoryThe build order and rules for a member- or vendor-written adapter, binding semantics, onboarding, go-live, the vendored API specGranted with repository access at onboarding; Gateway page

Loading a skill, whichever assistant you use

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.

Two boundaries, whatever the tool. Client secrets, tokens, tenant ids and webhook signing keys never go into an assistant session — every skill is written against placeholders and never needs a real value. And a skill is distilled guidance, not the source of truth: where it seems to disagree with the repository, the repository is newer, and each connector page says what it was verified against.

This site

The hub assistant

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

Why Copilot Studio, for a static site

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.

Building the agent

  1. Admin switches first. Claude appears in the model picker only after the three switches below are on: Anthropic enabled as a subprocessor in the Microsoft 365 admin center (with the maker in the allowed users or groups), external models on for the environment in the Power Platform admin center, and data movement across regions if the tenant is outside the United States. Skip Claude, and the default GPT-4.1 needs none of them. documented
  2. Create the agent on the standard harness and pick the model in the Model section of its Overview page. Claude Sonnet 4.6 is the general-category Claude that is GA there; Sonnet 5 needs the GitHub Copilot harness, which does not offer the custom-website embed this site uses. documented
  3. Instructions. Something close to this, adjusted as testing shows:
    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.
  4. Knowledge: public websites. Add 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 probe
  5. Security → Authentication → No authentication. This is what makes the custom-website embed available, and Microsoft's own caution applies verbatim: it "allows anyone who has the link to chat and interact with your bot or agent". That is the intended audience here, but it means the agent's Copilot Credits are spent by anyone who finds it. A Power Platform data policy that requires authentication removes this option entirely. documented
  6. Publish, then Channels → Custom website and copy the iframe. Its src 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.
  7. Wire it into the site. Paste the 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.
  8. Test from the pages. Ask the questions the hub answers well — the scope that looks right and fails, why 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.
What to watch once it is live. Consumption: the agent bills Copilot Credits to TSANet's tenant per conversation, and there is no per-visitor cap on an unauthenticated agent. Model fallback: if an admin later revokes Anthropic, the agent silently moves to an internal model or errors out, so the instructions should read well on GPT-4.1 too. Drift: the hub's rule that two disagreeing sources are both reported is one an assistant will happily flatten; the instruction above is there to stop it.

Provider-agnostic

Any provider's agent: what it needs from Connect

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 · surfaceTool definitionAuth it can do on its ownApp-only client credentials?
Anthropic · Claude API tool use, Claude Code, Agent SDKJSON schema per tool; your code executes the callWhatever your code does — the model never holds a credentialYes your code mints the token. An MCP server can be attached directly through the API's MCP connector. documented
Anthropic · Managed AgentsYour custom tools, plus MCP servers declared on the agentVault credentials substituted at egress, never visible in the sandboxYes via a vault credential or a custom tool your host runs. documented
Microsoft · Copilot Studio REST API toolOpenAPI v2, JSON (v3 is translated on upload)None · API key · OAuth 2.0 with an authorization URL and a consent card — a user-delegated flowNot 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 toolAn MCP server over Streamable HTTPNone · 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 ActionsOpenAPI documentNone · API key · OAuth with an authorization URL — the authorization_code grantNo client credentials is not among the documented options. documented
Google · Agent Development Kit OpenAPIToolsetOpenAPI 3 document, YAML or JSONAPI key · HTTP bearer · OAuth 2.0 · OpenID Connect · Google service accountYes, 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.

Getting the spec. Every one of these frameworks starts from the OpenAPI document. The public reference is the GitBook API reference and a Postman collection; the OpenAPI file the SDK is generated from comes through membership@tsanet.org. Ask for it before designing around a spec upload, and check its version — Copilot Studio wants v2, the others v3.

Design

What no model changes

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.

Platform assessment

Microsoft Copilot Studio, with Claude

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.

Which Claude it offers, and where it runs

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

Claude models a maker can pick, from the availability tables on Microsoft Learn. "Cross-geo" means the request may be processed outside the tenant's region; only United States tenants avoid it.
ModelWhere it can be pickedStatusNotes
Claude Sonnet 4.6Agent primary model · prompt toolsGAGeneral-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 5Agent primary modelGAOnly 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.7Agent primary model · prompt tools (4.6)GADeep-category: highest latency and cost. Premium rate in prompt tools.
Claude Sonnet 4.5RetiredGA in March 2026; retired in every region by the September 2026 table.
Claude Haiku (any version)Not offeredAbsent from the agent-model table, the prompt-tool table and every release note. See below.
Why not Haiku. Claude Haiku 4.5 is generally available in Microsoft Foundry, in both Azure-hosted and Anthropic-hosted variants, but Copilot Studio does not list it anywhere. The only documented way to bring a Foundry model into Copilot Studio is Bring your own model for prompts, which requires a chat-completions endpoint (a URL ending in /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.

Three switches, in two admin centres, before a maker sees Claude

SwitchWhereDefaultWho
Anthropic as a subprocessor, plus which users or groups may use itMicrosoft 365 admin center → CopilotSettingsAI providers operating as Microsoft subprocessors → AnthropicOn in commercial cloud; Off for EU, EFTA and UK tenantsAI Administrator or Global Administrator
External models for the environmentPower Platform admin center → ManageEnvironments → environment → SettingsProductFeatures → the model-family toggle; or the External Models rule on a managed environment groupVisible but not selectable until the first switch is onPower Platform admin
Data movement across regionsEnvironment setting Move data across regions in the Power Platform admin centerNeeded wherever the model is tagged cross-geo — every region except the United States for Sonnet 4.6Tenant administrator

Three routes from an agent to the Connect API

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.

Copilot Studio agent Standard harness · Claude Sonnet 4.6 GitHub Copilot harness · Claude Sonnet 5 Model picked on the Overview page in the member's own Power Platform environment The model, wherever it is picked Anthropic as a Microsoft subprocessor Cross-geo · outside the EU Data Boundary Off by default in EU / EFTA / UK tenants not in GCC · FedRAMP not achieved A · Dynamics solution (Dataverse) Read the tables the connector keeps Write through its flows as agent tools in-tenant · no new credential · not yet wired B · REST API tool / custom connector OpenAPI v2 JSON; the wizard's OAuth is delegated Connect wants app-only client credentials preview · the auth mismatch needs a probe C · An MCP server for Connect Streamable HTTP only · nothing exists to connect to TSANet Connect API Same rules on every route: the token is the primary key, forms are fetched fresh, accepting is a commitment.
Route A keeps every Connect credential where the Dynamics connector already holds it and needs nothing new from TSANet. Routes B and C both put a new caller in front of the API, and route C also needs a server that has not been written. The model box applies whichever route is chosen.
A

Sit the agent on the Dynamics connector

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.

B

Give the agent the API directly

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.

C

Put an MCP server in between

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.

The harness decides the model and the tools together

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 harnessGitHub Copilot harness
Claude availableSonnet 4.6 · Opus 4.6 · Opus 4.7Sonnet 5 (GA), plus the standard set
StatusGA; the rule-based runtime"Production-ready preview" since June 2026
Reaches Connect byREST API tool (preview) · custom connector · flows · MCP wizardMCP server or workflow as a tool (preview) · connected agents
Embeds in a website byCustom website channel (iframe) or Web Chat with a token endpointNot documented for this harness
BillingCopilot Credits at the standard-harness rates; Sonnet 4.6 standard rate, Opus premium rate in promptsUsage-based Copilot Credits, including build and test

Open questions

What has to be answered, and what each one blocks

QuestionBlocks
Has Bing indexed this hub, so that public-website knowledge returns its pagesThe 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 monthWhether the assistant stays on
Can a standard-harness agent read the Dynamics solution's ap_ tables and invoke its flows as tools, end to endRoute 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 itRoute 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 doWhether 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 termsWhether a member can call a Copilot Studio agent production-grade
Whether an MCP server for Connect should be TSANet-hosted (gateway class) or member-hostedRoute C entirely, and who operates it
Interested in shaping this? A Dynamics member with a Copilot Studio licence and a non-production environment could close two of these rows in a day. If you have built an agent against Connect on any provider, say so in Show and tell; for a pilot, membership@tsanet.org.

Verified against

Sources, with the dates that were read

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 onSourceUsed for
2026-09-13agentskills.io and the four skills in the tsanetgit repositories — three folders and one fileThe skills standard and which tools read it; what each TSANet skill carries
2026-06-02 · upd. 2026-08-03Publish an agent to a live or demo websiteDemo versus live website; the Web Chat and token-endpoint alternative
2026-05-01 · upd. 2026-07-21Configure user authentication"No authentication" and its caution; the data-policy override
2026-07-21 · upd. 2026-08-03Add a public website as a knowledge sourceBing grounding; the two-level URL rule; the Bing-indexed requirement
2026-05-04 · upd. 2026-08-03Customize the look and feel of an agentWhere the token endpoint lives (Channels → Email)
undatedDeploying Copilot Studio agents externally (Microsoft adoption guide)The custom-website iframe shape and its no-authentication condition
2026-05-28 · upd. 2026-09-05Select a primary AI model for your agentThe model availability table; cross-geo; fallback and retirement rules
2026-05-28 · upd. 2026-09-05Choose an external model as the primary AI modelAnthropic as subprocessor; behaviour when access is revoked; the two gates
2026-08-04 · upd. 2026-08-05Change 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-03Bring your own model for your promptsThe chat-completions requirement that rules out Haiku via Foundry
2026-09-11Claude models in Microsoft FoundryHaiku 4.5 GA in Foundry; the Messages API endpoint shape
2026-07-28 · upd. 2026-09-09Harnesses in Copilot StudioStandard versus GitHub Copilot harness; billing split
2026-08-18 · upd. 2026-08-20What's new in Copilot StudioRelease dates: Claude GA March 2026, Sonnet 5 June 2026, MCP-as-tool and Entra Agent ID July 2026
2026-04-17 · upd. 2026-08-19Extend your agent with tools from a REST API (preview)OpenAPI v2 JSON; the three auth shapes
2026-05-28 · upd. 2026-08-19Connect your agent to an existing MCP serverStreamable-only transport; auth flavours; DLP applies through connectors
2026-07-28 · upd. 2026-07-29Add an MCP server as a tool (GitHub Copilot harness, preview)MCP on the newer harness
2026-09-10Anthropic models in Microsoft Online ServicesSubprocessor terms; the Microsoft 365 admin center path; regional defaults; GCC
2026-05-28 · upd. 2026-08-14Allow external language models for generative responsesThe Power Platform admin center path; EU Data Boundary, FedRAMP and PCI exclusions
undatedGPT Actions authentication (OpenAI)None / API key / OAuth authorization-code; no client-credentials option
undatedAuthenticating with tools (Google Agent Development Kit)OpenAPIToolset auth schemes and credential types; the documented interactive OAuth flow
2026-09-13Tool 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-13tsanetgit/MS_Power_App, the solution's Workflows folderThe flows route A would call: Login, GetMe, GetCases, PostCase, PostCaseNote, PostCaseApproval and their siblings