Skip to content

Align the 2.17 and Preview tag, note, segment, subscription type and job endpoints with what the API does - #759

Open
markdennis22 wants to merge 5 commits into
mainfrom
markdennis/2-17-tags-notes-segments-jobs
Open

markdennis22 wants to merge 5 commits into
mainfrom
markdennis/2-17-tags-notes-segments-jobs

Conversation

@markdennis22

@markdennis22 markdennis22 commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Why?

The 2.17 spec for the tag, note, segment, subscription type and job status endpoints didn't match the API. The lists were missing query parameters, note ids were typed as integers, the note list described cursor paging where the API pages by number, and several error responses were missing. The Preview spec had the same problems, and the next version is cut from Preview, so it needs the same fixes.

How?

Corrects these endpoints and their schemas to match the API's current behaviour, and adds the OAuth scopes each endpoint accepts to its description. The same changes go into the Preview spec, keeping content that only applies to Preview, such as the {id} path parameter name.

Risks

The Preview SDKs are generated from this spec, so these changes affect generated Preview types:

Change Could SDK code stop compiling? Did that code work before?
listTags returns a new ListTagsResponse union of a tag list or a tag, instead of TagList Yes, because the return type becomes a union No. GET /tags?id= already returned a single tag
The id path parameter on createNote, retrieveNote and deleteNote becomes a string Yes, where an integer was passed No. Both ids are strings
NoteList.pages becomes PagesLink instead of CursorPages Yes, if it reads pages.next as an object No. The API sends a URL
SegmentList.pages goes Yes, if it reads pages No. The API never sends it
CreateNoteRequest.contact_id goes Yes, where code sets it No. The API ignores it and uses the contact id in the path
UntagCompanyRequestCompaniesItem.untag becomes a required boolean Only for a payload without untag, which tags instead of untagging —
New optional request fields on the tag requests, new query parameters on listTags, the two note lists, listSegments and retrieveSegment, and new 400 and 404 errors No —
Notes for reviewers
  • fern check shows 0 errors. There are no new dangling refs and no operationId changes, and none of the changed Preview types is unknown.

Generated with Claude Code

markdennis22 and others added 2 commits October 22, 2026 09:50
…erence with what the API does

Declares the query parameters the lists accept, types note ids as strings, switches the note list to pages_link, documents the error responses the API returns, and adds the accepted OAuth scopes to most operations.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Any body with a name matches the create-or-update shape, so a request that tags or untags companies or users matched more than one branch and oneOf rejected it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…view

Applies the same 2.17 changes to the Preview spec, merged operation by operation so Preview-only content stays, such as the `{id}` path parameter name. The next version is cut from Preview, and the Preview SDKs are generated from it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@markdennis22 markdennis22 changed the title Align the 2.17 tag, note, segment, subscription type and job endpoints with what the API does Align the 2.17 and Preview tag, note, segment, subscription type and job endpoints with what the API does Oct 23, 2026
markdennis22 and others added 2 commits October 23, 2026 16:26
…notes-segments-jobs

# Conflicts:
#	descriptions/0/api.intercom.io.yaml
#	descriptions/2.17/api.intercom.io.yaml
The missing-body note 400 says "Body can't be nil". The note lists send pages.next as null on the last page and never send prev, and leave author out of list items. include_count adds counts for any value but not a bare key, and company segments only get the count of a contact segment with the same name. Renaming a tag by id to a name over 191 characters, or to one another tag has, returns 200 without saving it. With ids_to_add, users and companies come back empty and a 404 still leaves the tag changed. Preview drops the createNote contact_id body property, which the path value overrides, as 2.17 does.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant