In development ·Join early access
The platform

A connection profile for every provider or client

Keep provider credentials, authentication strategy, mappings, environments, and execution policies in explicit, versioned integration profiles.

In development · Join early access

Give each connection a configuration boundary

A company provider connection such as stripe.production or sendgrid.production needs no enterprise-client identity. It binds an adapter, protected credential version, authentication strategy, token-lifecycle policy, environment, execution policy, and route. Client-specific connections add customer configuration to that same model.

Your product should be able to ask for records.list without choosing a SOAP envelope, interpreting a provider-specific status code, or knowing which outbound addresses an enterprise approved. A connection profile is the boundary that contains those differences.

The operation belongs to your application. In our fictional example, its input is a resource and a limit; its output is a list of normalized records with an optional continuation cursor. These fields demonstrate a vendor-defined contract, not a universal Invokation data model.

Template, profile, environment: three different things

An adapter template describes reusable implementation behavior: how to construct requests, validate input, parse a response, and classify failures. A template might implement a particular REST interface or a documented SOAP service. Sharing a template does not mean sharing credentials or customer data.

A customer profile binds an adapter version to an endpoint, mappings, credentials, supported operations, and a connectivity policy. Client Alpha and Client Beta can implement the same application operation through different adapters. Client Gamma can explicitly decline an action its gateway does not expose.

An environment is a separate operating context. Staging should have its own profile ID, credential references, destination, and route. Promoting configuration should require a deliberate review of every environment-specific reference, rather than copying a live secret into a fixture.

A profile can contain static-key injection, an approved OAuth token endpoint, or documented custom token acquisition. Cache scope and renewal coordination follow the connection and environment. Read managed authentication for the credential boundary.

Map meaning, not just field names

Alpha’s account_name and Beta’s AccountLabel can both map to displayName. Their identifiers may still have different scopes. Their status enums may describe different business states. Your adapter needs to decide whether a source value is representable in the agreed output.

A source status of archived should produce a mapping-validation failure if the application contract only understands active and inactive and no approved interpretation exists. Silently guessing creates apparently successful data that can cause a much later failure.

Pagination also belongs in the adapter. An opaque vendor cursor can encode a page number or gateway continuation token, but callers need documented expiry and stability behavior. A profile should expose capability limits rather than pretending all destinations offer identical sorting, filtering, or writes.

Test the contract before promoting the profile

Fixtures should cover a valid record, an empty page, a missing required field, an unknown enum, an expired credential, rate limiting, and an unsupported action. Keep them synthetic or carefully redacted. A happy-path fixture alone says little about operational readiness.

The workflow combines local tests with a customer-approved sandbox check. Configuration lives in Git; CI validates contracts and mappings; an authorized operator selects the production references. Tests against a sandbox are useful evidence, but cannot substitute for the enterprise approving production routing and access.

Change versions with a recovery plan

Pin the adapter and mapping version in each profile. Test a proposed version against existing fixtures and add fixtures for the new behavior. Record who promoted it, the environment, and the reason. A production change can be breaking even when its configuration diff looks small.

Run history should retain the versioned configuration reference used for each attempt. Replay uses that original version, unless an operator explicitly chooses and reviews a migration. Keeping audit metadata does not require exposing secret values or retaining unrestricted payloads.

Profiles reduce branching inside the vendor application; they do not eliminate adapter maintenance. Someone still owns upstream changes, mapping decisions, certificates, OAuth scopes, and the escalation path when a customer system changes.

Follow the standardization guide for contract design, or see the onboarding sequence for the handover around a new client.

Explore the model

Provider connections and client profiles. One operating model.

Integration workspaceInteractive product preview · simulated data
Illustrative providers · no shipped connectors
Provider API / API key

Stripeproduction

mapping v1.2.0

Public HTTPS · configured provider destination. Authentication uses a protected credential reference; no downstream token is passed by the caller.

Proposed SDK; not yet published
// Proposed SDK — illustrative API design; not a published package.
const invokation = new Invokation({
  apiKey: process.env.INVOKATION_API_KEY
});

// The profile handles downstream authentication.
const result = await invokation.request({
  profile: "stripe.production",
  operation: "payments.getStatus",
  input: { paymentId: "payment_demo_123" },
  timeoutMs: 8000
});
Run inspectorCompleted
Trace
trace_demo_01
Duration
142 ms
Result
200

Normalized response

{
  "data": {
    "paymentId": "payment_demo_123",
    "status": "confirmed"
  },
  "traceId": "trace_demo_01"
}
Attempt 1 completed

Explicit adapter semantics

Provider state → application status · Single payment read · payments.getStatus is application-defined; adapter translates it.

Authorization: Restricted API key reference. Endpoint: Provider-approved endpoint configured by adapter. An egress allocation alone does not provide a private route, authentication, or approval.

Both contexts use explicit profiles and application-owned contracts. Stripe and SendGrid illustrate API-key connections; the custom API illustrates a fictional token endpoint. These are not shipped connectors. The operation names, customers resource, and record shape belong to this fictional vendor’s contract. Your product defines its own. REST, SOAP, and gateway profiles need explicit logic for identifiers, status values, pagination, and supported actions.

In development · Shape the first product

Bring a real integration problem.

Share the constraints your team keeps meeting. No payment or commitment required.

Join early access