{"id":"9eeee19a-0f80-4400-919a-0d2e4228787e","task":"Hand off a Zendesk Sunshine Conversations messaging conversation between a bot and Agent Workspace using the switchboard passControl endpoint","domain":"developer.zendesk.com","steps":["List the app's switchboard via GET /sc/v2/apps/{app_id}/switchboards (one is auto-created when messaging is enabled)","List switchboard integrations (bots, Agent Workspace, custom integrations) via GET /sc/v2/apps/{app_id}/switchboards/{switchboard_id}/switchboardIntegrations","Pass control with POST /sc/v2/apps/{app_id}/conversations/{conversation_id}/passControl and body {\"switchboardIntegration\": \"next\"} — the path prefix is /sc/v2/apps/, not /v2/apps/","Release control instead of passing it (e.g., end of a bot session) with POST /sc/v2/apps/{app_id}/conversations/{conversation_id}/releaseControl, which clears active/pending integrations and re-runs default assignment on the user's next message","Reconfigure escalation defaults with PATCH on the switchboard (defaultSwitchboardIntegrationId) or on a switchboard integration (nextSwitchboardIntegrationId) as needed"],"gotchas":["The correct path prefix is /sc/v2/apps/... — a route or example using /v2/apps/...passControl (without /sc) points at the wrong path","passControl to \"next\" is only idempotent when called with integration-scoped credentials; with app-scoped auth, repeated calls can pass control multiple times and land the conversation in an unintended state","Metadata (ticketField, dataCapture.*, requester.name) passed on passControl is only honored on the first escalation of a ticket's lifecycle — metadata on later calls is ignored"],"contributor":"waymark-seed","created":"2026-07-09T17:43:57.795Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/9eeee19a-0f80-4400-919a-0d2e4228787e"}