Fix GET /data_connectors/{id}: correct schema to use present_detail fields#407
Merged
salmanbshah merged 4 commits intomainfrom Mar 20, 2026
Merged
Conversation
Contributor
ellicenelson
left a comment
There was a problem hiding this comment.
Is there a corresponding developer-docs PR for these changes?
Also this may conflict with new changes on main.
41f03af to
5245126
Compare
salmanbshah
commented
Mar 16, 2026
salmanbshah
commented
Mar 16, 2026
Contributor
Author
salmanbshah
left a comment
There was a problem hiding this comment.
Separate developer-docs PR created for the data connectors show endpoint: https://github.com/intercom/developer-docs/pull/781
… state_version param
Changelog convention lives in developer-docs, not this repo. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5245126 to
17117c7
Compare
| type: string | ||
| description: The URL path to fetch execution results for this connector. | ||
| example: "/data_connectors/12345/execution_results" | ||
| data_connector_detail: |
Contributor
There was a problem hiding this comment.
Missing enums on data_connector_detail schema
These 9 fields are backed by Rails enums or frozen constant arrays but are documented as freeform type: string:
| Field | Values |
|---|---|
audiences[] |
users, leads, visitors |
execution_type |
server_side, client_side |
configuration_response_type |
test_response_type, mock_response_type |
data_transformation_type |
full_access, redacted_access, code_block_transformation |
data_inputs[].type |
string, integer, decimal, boolean |
data_inputs[].source |
fin, custom, attribute |
response_fields[].type |
unknown, string, integer, decimal, datetime, boolean |
object_mappings[].intercom_object_type |
conversation, user |
attribute_mappings[].mapping_type |
primitive_mapping, context_mapping |
reference_mappings[].intercom_object_type |
conversation, user |
descriptions/0/api.intercom.io.yaml
Outdated
| type: string | ||
| description: The Intercom conversation ID | ||
| required: true | ||
| source: conversation |
Contributor
There was a problem hiding this comment.
source: conversation is not a valid value. It's restricted to fin, custom, attribute. Fin is the common example
Per review: 9 fields backed by Rails enums now have proper enum constraints. Fixed invalid source: conversation → fin in example. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why?
The original documentation for
GET /data_connectors/{id}(merged in PR #403) used the wrong response schema — it reflected the list-view fields fromDataConnectorPresenter.presentrather than the richerpresent_detailthat theshowaction actually calls. Ellice Nelson flagged this: "The schema updates here don't match the fields returned." Customers relying on the docs to build against this endpoint would see fields likedata_inputs,response_fields, andobject_mappingsin real responses that are completely absent from the spec.How?
Corrected the path entry to reference a new
data_connector_detailschema that matchesDataConnectorPresenter.present_detailexactly, and added the optionalstate_versionquery parameter (live/draft) that the controller supports.Decisions
data_connector_detailschema rather than patching the existingdata_connectorschema — the list endpoint uses the simpler fields intentionally and should stay lightweight.Implementation Plan
Fix data_connectors schema + Surgical developer-docs PR
Context
PR #778 is wrong — it replaces the entire developer-docs Unstable YAML with the Intercom-OpenAPI copy, causing a +1260/-1400 diff with hundreds of unrelated deletions. The two repos were NEVER true mirrors (2033 lines of diff across 123 chunks before our work). PR #777 also made a huge reformat (+2201/-3249) that #778 predates.
The correct approach: add ONLY the 3 missing path entries surgically to the developer-docs YAML (fin_voice was already added by #777).
Confirmed Gaps
api/v3/data_connectors_controller.rbGET /data_connectors/{id}— schema wrong, needspresent_detailfieldsapi/v3/conversation_parts_controller.rbPUT /conversations/{conversation_id}/conversation_parts/{id}api/v3/messages_controller.rbGET /messages/whatsapp/statusBackend References
Generated with Claude Code