Repository navigation
Align Fin Agent API, AI Content, data connector and workflow export docs with the API - #747
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Document OAuth scopes and the token scope error, add missing response and request fields, extend execution result enums, fix example cursors and examples to match actual responses, and document the create 400. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…th the API Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Also fix the content import source type description and the update request title. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
yasser-aboelgheit-intercom
left a comment
There was a problem hiding this comment.
Thanks for this. It's a big one, and most of it holds up. I checked it with the spec comparator, ref checks, fern check (0 errors, no new warnings) and the Preview Fern IR, and checked each claim against how the API behaves. The "escalation closes the original conversation" claim is confirmed.
A few questions:
internal_descriptionauto-sync — The create and update data connector requests say that ifinternal_descriptionis omitted whiledescriptionis sent, it's set todescription. Through the API that never happens. An omittedinternal_descriptionkeeps its stored value on update, and starts as""on create. Should the sentence go, and the create 201 example stop showinginternal_descriptionequal todescription?environment"Fin for Platforms workspaces with environments" — The API only checks whether the workspace is Fin for Platforms. On a Fin for Platforms workspace with no environments, an identifier returns 422 "Invalid environment" rather than being ignored. Could this drop "with environments"?- Escalate capability text — The
/fin/capabilitiesexample's escalate description says "...leaving this one untouched...". That's what the API returns today, but it contradicts the escalate docs, which say the original is closed. Should the example carry a note until the returned text is updated? - 403 "Response format not available" — Every Fin Agent API operation returns this when
response_format: markdownisn't available, not just start, reply and ask. Should run_procedure, capabilities, escalate and csat list it too? - Content import source
url— A URL whose host isn't a public domain seems to pass the format check and then fail with 500server_errorrather than 400. Can you confirm? If so, should the docs avoid promising a 400 for that case until the API returns one? - Breaking shape changes — These change 2.17 and the Preview SDK. The capabilities items lose
typeandid,namechanges meaning,descriptionbecomes nullable andinputSchemais added. Elsewhere,fin_availabilityis removed from the update external page request,external_idbecomes required, several data connector fields losenullable, and workflow export's 403 becomes 503. Each one matches the API, but could the PR body list them, and could someone who owns the public contract sign off? - Merge conflicts — This conflicts with main (the Help Center PR, #744) and with #752 in the 2.17 spec. It needs a rebase.
Holding approval for items 1, 2 and 6, and the rebase.
~ Automated via Claude
…mplete Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…markdown format, page limit Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…n pre-review Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Thanks Mark. Fixed in f561138:
A further pass against the API turned up a few more, fixed in 7cea9ee:
|
There was a problem hiding this comment.
Thanks Cathal. The shape changes are signed off: they correct the reference to what the API already returns. Three things left before I approve:
- Update
internal_description: the copy fromdescriptiononly happens when the stored value isnull. Connectors created through the API store"", so they never get it. Please say the exception only applies to anullvalue. userescalation: the separate Helpdesk conversation only opens when no escalation workflow matches. Please add "by default" in the escalate description and theintercom_conversation_iddescription.- Capabilities example: please add a line to the PR body notes saying the example's escalate text is kept as the API returns it, even though it contradicts the escalate description, until that text is updated.
~ Automated via Claude
markdennis22
left a comment
There was a problem hiding this comment.
Approving. The three points in my review above still stand, so please pick them up before merging.
~ Automated via Claude
Why?
The Fin Agent API, AI Content, data connector and workflow export operations describe errors, fields and behaviour the API doesn't have, so clients and generated SDKs are built against the wrong contract.
How?
Each changed claim was checked against what the API actually returns and corrected in both 2.17 and Preview.
Notes for reviewers: shape changes in 2.17 and the Preview SDK
Each of these matches what the API returns today, but changes the documented contract or a generated SDK type:
error.listbecomes 422{errors: {...}}.typeandidare removed,nameis now the tool name,descriptionis nullable, andinputSchema,endpointandmethodare added.messagebecomes its own type with onlybodyrequired, in place of the shared Fin Agent message type.localeis no longer limited toen. Update now requiresexternal_idinstead ofurl, and replacesfin_availabilitywith theai_agent_availability,ai_copilot_availabilityandai_sales_agent_availabilityflags.headersitems requirenameandvalue,data_inputsitems requirename,description,typeandrequired, andexecution_type,configuration_response_typeanddata_transformation_typeare no longer nullable.Generated with Claude Code