[api-sync 2026-07-31] gradientlabs-java: split outbound conversation start into chat/email/phone - #35
Open
gmtuca wants to merge 2 commits into
Open
[api-sync 2026-07-31] gradientlabs-java: split outbound conversation start into chat/email/phone#35gmtuca wants to merge 2 commits into
gmtuca wants to merge 2 commits into
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
from
July 31, 2026 13:43
d47cef0 to
2453b48
Compare
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.Breaking change
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.1.0(minor, by request — note this is still a breaking change for callers, so the version alone will not signal it; 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.1.0instead 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