Start here if your platform has no TSANet connector, or you are wiring Connect into something of your own. One question decides which of four routes fits, the routes are ordered by how much you have to build, and the tools you use on any of them are one page away.
Settle this first
The answer decides who operates the integration, where credentials live, whether connector faults are isolated to one member or shared across all of them, and whether shipping a fix means asking every member to upgrade. Ask it before scoping anything, because it is what makes route one or route two the natural fit — and the platforms that answer "sort of" are where the design work is.
The taxonomy, the consequences of each class, and what to do when a platform answers both ways: Two Ways to Build a Connector. The worked case of an ambiguous answer is the ServiceNow assessment.
Options
TSANet supplies the engine, the contract and a conformance harness that certifies the seam; you write only the half that talks to your own platform — and never touch the Connect API or its errors. The least effort, and the route for any platform that will not run your code in the member's tenant. The repository is private; adapter authors get access at onboarding.
Design & adapter guide → v3.0.0 · JavaA Java client over the Connect API with typed facades, validation and both auth modes, published as a public package. The shortest path on the JVM that is not hand-rolled HTTP, and the one that already encodes the API's sharp edges.
Library reference → PatternThe translation-service pattern: your platform's events in, Connect API calls out, updatedAfter polling back. For any stack that is not the JVM. Read the behaviour guide before you design; the reference alone will not tell you about the default error mode or the webhook version trap.
Which platform your team runs on is the single most useful thing you can say to us — it is what decides which connector gets built next. If yours is common among members, the right route may be to wait for a connector rather than build one.
Community →Sequence
GET /v1/me and confirm the company your credentials resolve to. Every call is scoped to that identity.testSubmission: true. Nothing you send reaches a real partner while the flag is set, and the documentId you must submit comes from that fetch.responded, not the status name, is what gates the SLA. TSANET-2026-001 is the map.Accept: application/json, application/problem+json — or every rejection arrives as HTTP 500 and looks like an outage.Each of those is a section of Working with the API, which exists because the reference does not say them.
Tools
The environment to build on, and the flag that keeps partners out of it until you mean it.
PublicThe generated endpoint reference and a collection that exercises every path with your credentials.
PublicThe Java client as a public package; the console app and web demo behind it.
Access at onboardingThe Gateway conformance harness for adapter authors; the connector test harness is not public yet.
PublicFour skills that load into any assistant that reads the open skill format, two of them public today.
QuestionsTrackers for connector bugs, membership for credentials, the discussions for everything else.
Worked examples
Four connectors and one assessment. Each page shows the class it landed in, what it installs, and how it maps the canonical case onto its platform's data model — which is the part to read before you design your own mapping. The comparison matrix puts the four side by side.
Managed package; collaboration state in first-class custom objects; a Flow library as the extension point.
GA · in-tenantManaged solution; six Dataverse tables; field mapping as a configuration table rather than code.
GA · partialA sandboxed app plus declarative flows; state in ticket fields and tags; the three-audience note model.
Early access · gatewayThe first gateway-class adapter: TSANet-hosted or self-hosted, the engine holds the state, the taxonomy parks ambiguity.
Not built · assessmentWhat scoping looks like before code exists: every claim tagged, every open question named with what it blocks.