[api-sync 2026-07-31] gradientlabs-python: split outbound conversation start into chat/email/phone - #136
Open
gmtuca wants to merge 2 commits into
Open
[api-sync 2026-07-31] gradientlabs-python: split outbound conversation start into chat/email/phone#136gmtuca 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 POST /outbound/conversations/{chat,email,phone}.
Replaces start_outbound_conversation with start_outbound_chat_conversation,
start_outbound_email_conversation and start_outbound_phone_conversation.
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 takes to_phone_number/from_phone_number and no platform.
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
6079435 to
604364a
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.
0.13.0POST /outbound/conversationshas been removed from the Gradient Labs public API and replaced by three channel-specific endpoints.Client.start_outbound_conversationis gone; there is no deprecation shim, because the request shape changed too much to bridge.POST /outbound/conversationsPOST /outbound/conversations/chatPOST /outbound/conversations/emailPOST /outbound/conversations/phoneMigration
StartOutboundConversationParams)channel="web"client.start_outbound_chat_conversation(params=StartOutboundChatConversationParams(...))channel="email"client.start_outbound_email_conversation(params=StartOutboundEmailConversationParams(...))channel="voice"client.start_outbound_phone_conversation(params=StartOutboundPhoneConversationParams(...))customer_source=...customer_idis now always your own customer IDcustomer_id+customer_sourcecustomer_support_platform_identifiers=[CustomerSupportPlatformIdentifier(...)]— the same typestart_conversationalready takes. Zendesk requirestype="zendesk_support_user", Salesforce requirestype="salesforce_contact_id"support_platformoptional (auto-selected the highest-priority connected platform)subject/bodyloosely coupledsubjectandbodyare required together and forbidden individually. Chat:bodyonly. Phone: neitherto_phone_numberandfrom_phone_number(E.164);from_phone_numbermust be provisioned for your workspaceAll three return
StartOutboundConversationResponsewith aconversation_id.Removed public API
Client.start_outbound_conversationStartOutboundConversationParamsCustomerSource—conversation.CustomerSourceno longer exists in the spec, and this enum existed solely for itSupportPlatformenum, replaced byOutboundSupportPlatform(intercom,zendesk,salesforce,public-api) so it no longer collides with the identifier-scopedSupportPlatformAlso in this PR
User-Agentheader now carries the package version (Gradient Labs Python/0.13.0); it previously had none, so there was nothing keeping it in step withpyproject.toml.uv.lockhad drifted to0.13.0against a0.12.1pyproject.toml; bumpingpyproject.tomlto0.13.0makes the two agree, souv.lockis unchanged by this PR.Verification
uv run pytest tests— 21 passed, 4 failed. The 4 failures are all intests/test_webhook.py(expired signature: hardcoded webhook timestamps outside the 5-minute leeway) and reproduce unchanged onmain. Six new outbound tests added, all passing.uv run ruff check—All checks passed!uvx ruff format --check—114 files already formattedScope is deliberately narrow: only the outbound endpoints, plus the version bump.
🤖 Generated with Claude Code