[api-sync 2026-07-31] gradientlabs-java: split outbound conversation start into chat/email/phone - #35
Merged
Merged
Conversation
POST /outbound/conversations has been removed from the public API and
replaced by /outbound/conversations/{chat,email,phone}.
startOutboundConversation is replaced by startOutboundChatConversation,
startOutboundEmailConversation and startOutboundPhoneConversation, each
with its own request type. customer_source has no replacement: customer_id
is now always your own customer ID, and third-party platform IDs go in
customer_support_platform_identifiers. support_platform is required on
chat and email; phone has no channel or support platform field.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
gmtuca
force-pushed
the
api-client-sync/2026-07-31
branch
2 times, most recently
from
August 4, 2026 14:51
2453b48 to
ab7857a
Compare
The release workflow set up JDK 11 while the poms compile with source/target 17, so mvn deploy would have failed at compilation with "invalid target release: 17" on the first tag push. CI already uses 17. The READMEs claimed Java 11, which has been wrong since the move to 17: class files are version 61, so an 11 runtime fails with UnsupportedClassVersionError after resolving the dependency rather than at build time.
gmtuca
force-pushed
the
api-client-sync/2026-07-31
branch
from
August 4, 2026 15:25
c586491 to
b2e8b40
Compare
vlad-tokarev
approved these changes
Aug 4, 2026
Contributor
Author
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.
Syncs the Java SDK to the public API change that removed
POST /outbound/conversationsand replaced it with three channel-specific endpoints.Outbound conversation start split per channel
GradientLabsClient.startOutboundConversation(...)andStartOutboundConversationRequest(including its nestedCustomerSource/SupportPlatformconstant classes) have been removed. There is no deprecation window — the underlying endpoint no longer exists.New methods, each with its own request type:
startOutboundConversation(...)withchannel = "web"startOutboundChatConversation(StartOutboundChatConversationRequest)POST /outbound/conversations/chatstartOutboundConversation(...)withchannel = "email"startOutboundEmailConversation(StartOutboundEmailConversationRequest)POST /outbound/conversations/emailstartOutboundConversation(...)withchannel = "voice"startOutboundPhoneConversation(StartOutboundPhoneConversationRequest)POST /outbound/conversations/phoneAll three return the existing
StartOutboundConversationResponse(conversation_id).Migration
channelvoice→ phone,email→ email,web→ chat. Phone has no channel or support-platform field at all.customerSourcecustomerIdis now always your own customer ID — the one echoed back in tool and webhook payloads.customerSupportPlatformIdentifiers(the existingCustomerSupportPlatformIdentifiertype already used bystartConversation), keyed by platform. Zendesk requires subtypezendesk_support_user; Salesforce requiressalesforce_contact_id.supportPlatformintercom,public-api; emailintercom,zendesk,salesforce,public-api(exposed as constants on each request class).subject/bodyIllegalArgumentExceptionat build time, mirroring server-side validation. Chat takesbodyalone; phone takes neither.toPhoneNumberandfromPhoneNumber(E.164; the from-number must already be provisioned for your company).Version
1.0.1-SNAPSHOT→1.0.2(patch — the removed endpoint has no known users, so this does not warrant a major bump); non--SNAPSHOTso it is releasable. Bumped in the root pom, both module poms, the example app's dependency pin, and the install snippets in both READMEs.The client jar now stamps
Implementation-Versioninto its manifest, so theUser-AgentreportsGradient-Labs-Java/1.0.2instead of thedevfallback it has been sending since 1.0.0.Verification
mvn verifyfrom the repo root: BUILD SUCCESS,Tests run: 15, Failures: 0, Errors: 0, Skipped: 0. Eight new tests cover serialization of all three payloads, omission of unset optionals, the required-field checks, and the email subject/body pairing rule.🤖 Generated with Claude Code
Release workflow fix
.github/workflows/release.ymlset up JDK 11 while the poms compile withsource/target 17, somvn deploywould have failed at compilation withinvalid target release: 17on the first tag push. Now 17, matching CI.The READMEs also claimed "Java 11 or higher" in four places, wrong since the move to 17: class files are version 61, so an 11 runtime fails with
UnsupportedClassVersionErrorafter resolving the dependency rather than at build time. Now 17.Verified with
mvn verify(BUILD SUCCESS, 15 tests) andmvn -P release package -DskipTests -Dgpg.skip=true(BUILD SUCCESS).