airtable, mercadolibre, netsuite and zettle; other catalog entries do not yet imply setup support.
Prepare the session
data.id and present data.completion_url to the person who initiated the request. Pending sessions expire after ten minutes. The link is an authenticated locator, not a bearer credential. Only the session creator can submit consent; a current administrator may recover a departed creator’s unresolved session.
Review the real effects
Readcredential_livemode, effect_scope and disclosures before continuing. MCP sessions use the signed credential’s mode. Firebase sessions use the person’s stored preference for that team. Callers cannot override the mode in the request body. Airtable requires expected_livemode to match the reviewed current mode; a mismatch returns 409 mode_changed.
The signed-in browser renders the returned
credential_schema and submits explicit consent. Keep secrets out of agent arguments, logs and transcripts. OAuth authorization URLs are returned only to the submitting browser; session readbacks never contain them, OAuth state or saved secrets.
Read the outcome
pending, processing and awaiting_oauth are unfinished states. completed confirms the attempt’s result. failed or outcome_unknown must not be reported as success. A result with connected: false does not prove an older provider connection was disconnected. All timestamps are milliseconds.
Reconcile an uncertain attempt with POST /teams/{id}/integration-connection-sessions/{sessionId}/reconcile and {}. This reads exact attempt evidence and does not repeat provider writes. Current remote configuration alone cannot prove that a lost request completed.
DELETE on the session with {} cancels pending/expired setup; it never disconnects an established provider. One pending/in-flight/unknown session holds the team’s lock for that provider. On setup_locked, inspect the existing session instead of creating a new attempt.
After ten minutes, a signed-in browser administrator can explicitly acknowledge unconfirmed effects and release the lock through /resolve. The old outcome stays unknown. This permits a new reviewed session; it does not undo remote changes, prove they never happened or automatically retry them.
Troubleshoot
401 requires a verified personal identity. 403 means the current role, account entitlement or browser identity does not permit the action. 409 means the session is locked or changed, cancellation is unavailable, or recovery is not yet eligible. 503 can mean the runtime project or matching browser origin is not configured. After an interrupted request, read the saved session before attempting another connection.
These workflows have offline coverage. Test mode and staging do not establish provider isolation; external connection checks require approval for their actual effects.
For Airtable, finishing OAuth does not create an import mapping. Continue with the
Airtable lifecycle guide to choose a base/table, map payment fields,
register a webhook, and recover uncertain cleanup. A recovery OAuth result with
connected:false keeps imports disabled and the original operation unknown.