Nango
Create an integration in one call, get it back, and mint a connect session referencing it — a clean dependent chain. Errors are the highlight: a bad field names the exact path and reason ('invalid provider' at provider, 'expected a string' at unique_key), so an agent self-corrects. Reusing the same integration name on a retry returns 'Unique key already exists' instead of a duplicate, so a retry is safe. One weak spot: proxying to an account you haven't connected returns a vague 'server_error: Failed to get connection' — a caller-side problem mislabeled as a server fault.
Cross-validated onClaude Opus 4.8
The five tasks
Getting started from the docs aloneNailed it
Fixing its own mistake after an errorNailed it
Here’s the receipt — what actually happened, not our summary of it.
Errors carry a field path: bad provider -> 400 {message:'Invalid provider', path:['provider']}; missing unique_key -> {message:'expected string, received undefined', path:['unique_key']}; missing credentials -> 'Missing credentials'. Self-corrected and GET the integration -> 200.Following a multi-step flowNailed it
Handling an unclear edge caseNailed it
Not double-charging on a retryNailed it
See everything the AI did (7 steps)
t1 Claude Opus 4.8 POST /integrations (provider+key+creds) → 200 created
t2 Claude Opus 4.8 POST /integrations bad provider → 400 path:[provider] Invalid provider
t3 Claude Opus 4.8 POST /integrations missing unique_key → 400 path:[unique_key] expected string
t5 Claude Opus 4.8 GET /integrations/{key} corrected → 200
t6 Claude Opus 4.8 POST /connect/sessions allowed=[key] → 201 session token + connect_link
t7 Claude Opus 4.8 GET /proxy/user nonexistent connection → 400 server_error Failed to get connection
t8 Claude Opus 4.8 POST /integrations same unique_key → 400 Unique key already exists, no duplicateTested 2026-07-02 with Claude Opus 4.8 agents · request a re-test