In development ·Join early access
A practical integration pattern

Centralize your API stack

Bring payment, email, messaging, and custom API connections into one operating model for authentication, execution, visibility, and recovery.

In development · Join early access

Your product has one job. Its API dependencies have many.

A fictional product takes a payment-status read, sends a transactional notification, posts an operational message, and synchronizes a record with a custom API. Its business logic decides when those actions belong together. Each connection still has its own credentials, environments, quotas, response shapes, failure modes, and support procedure.

Invokation puts those connections behind explicit profiles and a shared execution model. A backend calls an application-defined operation; the profile selects authentication, adapter version, execution policy, and route. This works for one company using several providers. An enterprise-client identity is optional.

Stripe, SendGrid, Twilio, Slack, Salesforce, and GitHub are recognizable examples of APIs a team might use. They illustrate compatibility patterns, not shipped connectors or endorsements. A payment read and an email dispatch keep their different semantics. Moving between providers may require adapter and application changes.

Four connections, one place to operate them

ConnectionApplication-owned operationExecution choiceWhat needs attention
Payment providerpayments.getStatusBounded interactive readPermissions, ambiguous earlier writes, provider state
Transactional emailmessages.sendQueued dispatchAcceptance versus delivery, duplicate side effects
Team messagingnotifications.publishQueued operationChannel scope, quotas, delivery result
Custom enterprise APIrecords.listInteractive read or scheduled jobToken endpoint, mapping version, network approval

These names belong to the fictional application. They are not a universal payment, messaging, or record schema. The adapter translates each operation into an allowed provider interaction and validates the result. Unsupported actions return an explicit error instead of a plausible empty response.

Configure the connection once

A profile such as stripe.production or sendgrid.production binds an adapter to protected credential references, an environment, permissions, and a bounded execution policy. A custom API can instead use a configured authentication endpoint and token-lifecycle policy. Callers keep using the same developer interface without fetching downstream tokens themselves.

Managed API authentication covers protected storage, expiry buffers, coordinated renewal, and reconnect-required states. Credentials remain scoped to approved destinations. Authorizing Invokation does not create provider accounts or grant permissions the developer never obtained.

Keep decisions in the application

Your application decides whether a payment is sufficiently confirmed, whether a notification should be sent, and what a record’s status means. Integration infrastructure executes those authorized operations, records outcomes, and exposes failures. It does not turn several remote APIs into one database transaction.

Inbound webhook handling and schedules belong to the platform vision alongside outbound requests. A durable event receipt is distinct from successful business processing. An accepted queued dispatch is distinct from delivery. These distinctions should survive normalization, logs, and dashboards.

Recover with evidence

Inspect a trace by profile, operation, environment, and outcome. Separate a provider outage from a revoked credential or invalid request. Redact sensitive payload fields before storage. Retry only when the operation policy and destination behavior permit it; investigate unknown write outcomes before replaying.

Separate queues and concurrency budgets prevent a slow provider from occupying every worker. Centralization also introduces an additional failure domain and network hop. Choose bounded timeouts, backpressure, and ownership deliberately; see the centralization architecture guide for tradeoffs.

Integration requirements checklist

Use this checklist when adding a connection. Record references and categories, never secret values or confidential endpoints in a shared research document.

RequirementQuestions to settle
Provider and ownerWhich dependency, which team, and who responds to failure?
OperationsWhich reads and writes, contracts, unsupported actions, and business rules?
AuthenticationAPI key, OAuth, custom token endpoint, or a supported session mechanism?
CredentialsWho grants permission, where is the secret reference, and who rotates it?
Token lifecycleApproved auth endpoint reference, lifetime contract, buffer, renewal and reconnect rules?
EnvironmentsSandbox and production accounts, scopes, adapter versions, and promotion gates?
QuotasLimit scope, concurrency, Retry-After behavior, and fairness?
Incoming eventsSignature verification, acknowledgment, duplicate and ordering policies?
Side effectsIdempotency support, ambiguity handling, reconciliation, and replay approval?
Sensitive dataField redaction, retention, authorized access, and deletion?
ObservabilityTrace correlation, final outcome, alerts, owner, and runbook?
ConnectivityOrdinary public HTTPS, approved source addresses, or a separate private route?

The copyable template below is intentionally a requirements document, not an executable profile. Adapt it to your own repository and review it with the owning team.

Start with the dependency that keeps interrupting you

A small, stable API call may need only a good direct adapter. A recurring authentication failure, scattered logs, or duplicated recovery code is a stronger reason to centralize. Compare the platform ownership model, explore the developer design preview, or join early access with the connection problem you want to solve.

A checklist to take to your next integration review

Copyable requirements checklist · no secret values
# Integration requirements — references and categories only
- Provider / connection alias:
- Owning team / incident contact:
- Operations / input-output contracts / unsupported actions:
- Authentication strategy / credential owner / secret version reference:
- Approved auth endpoint reference / token lifetime source / renewal policy:
- Environment / audience / scopes / adapter version:
- Quota scope / concurrency / backoff / total retry budget:
- Webhook signature / durable receipt / duplicate and ordering policy:
- Idempotency / unknown outcomes / replay approval:
- Data sensitivity / redaction / retention / deletion:
- Trace fields / alerts / final-outcome definition / runbook:
- Public route / source-address approval / private path requirements:
# Do not put secret values or confidential endpoints in this checklist.
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