Sunshine Conversations integration
Sunshine Conversations is the Zendesk messaging platform behind Zendesk Messaging: one conversation API across web and mobile SDKs, WhatsApp, Messenger, Instagram, SMS and other channels. Create, list, read, update and delete conversations and their participants; send messages (text, images, files, carousels, forms, WhatsApp templates) and typing or read activity to end users; read and delete message history; hand a conversation between bots and agents with the switchboard (pass, offer, accept, release control); create, read, update and delete messaging users, their channel clients and devices, erase their personal information or sync them with Zendesk; list and delete channel integrations and manage custom-integration webhooks. Conversations, messages and users are end users' personal data. Not exposed: app and account provisioning, API key creation (it returns secrets), channel integration creation and editing (channel credentials), OAuth routes and Apple message-ref downloads. Authentication is a Conversations API key from Zendesk Admin Center (Apps and integrations, Conversations API): its key ID and secret are sent as Basic auth; the connection also takes the Zendesk subdomain and the app ID shown with the key.
Say what should happen.
The workflow builds itself.
What you can do with Sunshine Conversations
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Conversation, 5 operations
create_conversationCreate conversationPOSTCreates a conversation: personal (exactly one participant) or sdkGroup (up to 10 participants), with optional display name, description, icon, metadata and the switchboard integration to put in control.delete_conversationDelete conversationDELETEDeletes a conversation with all its messages and attachments. A user's default conversation cannot be deleted, only emptied with delete_all_messages.get_conversationGet conversationGETReturns one conversation by id: type, display name, description, metadata, default flag, last activity times and which switchboard integration is in control or pending.list_conversationsList conversationsGETLists the conversations a user is part of (filter by userId or userExternalId), with type, display name, metadata and switchboard state. Cursor paged: pass meta.afterCursor as page.after.update_conversationUpdate conversationPATCHUpdates a conversation's display name, description, icon URL or metadata. Answers the updated conversation.
User, 5 operations
create_userCreate userPOSTCreates a messaging user with an optional externalId (your own id), profile (given name, surname, email, avatar, locale), sign-up date and metadata. Answers the user with its id.delete_userDelete userDELETEDeletes a messaging user with its clients and conversation history; deletion completes when the user:delete webhook fires. To erase only personal details use delete_user_personal_information.get_userGet userGETReturns one messaging user by id or externalId: profile, metadata, identities, Zendesk id and sign-up date (personal data).list_usersList usersGETFinds messaging users by email identity (filter identities.email), matching emails in their identities, not profile.email. Answers the users with profile and identities (personal data).update_userUpdate userPATCHUpdates a messaging user's profile, metadata, sign-up date or retention flag. Answers the updated user.
Webhook, 5 operations
create_webhookCreate webhookPOSTCreates a webhook on a custom (or Connect) integration that POSTs the chosen events (triggers such as conversation:message) to a target URL. The signing secret is left out of the answer.delete_webhookDelete webhookDELETEDeletes a webhook from an integration; its target stops receiving events.get_webhookGet webhookGETReturns one webhook of an integration: target URL, triggers and payload options. The signing secret is left out.list_webhooksList webhooksGETLists the webhooks of a custom (or Connect) integration: target URL, triggers and payload options. The signing secret is left out.update_webhookUpdate webhookPATCHChanges a webhook's target URL, triggers or payload options; fields left out keep their value. Answers the updated webhook without its signing secret.
Message, 4 operations
delete_all_messagesDelete all messagesDELETEDeletes every message of a conversation, keeping the conversation itself. Cannot be undone.delete_messageDelete messageDELETEDeletes one message of a conversation by its id. Cannot be undone.list_messagesList messagesGETLists the messages of a conversation, newest page first (up to 100 per page), with author, content, source channel and quoted message. Page back in history with page.before set to meta.beforeCursor.post_messagePost messagePOSTSends a message in a conversation, as the business or on behalf of a user: text, image, file, carousel, list, form, location or a WhatsApp template. Business messages are delivered to the end user on their channel.
Switchboard, 4 operations
create_switchboardCreate switchboardPOSTCreates the app's switchboard, which routes control of conversations between integrations such as bots and agent workspaces. Only one switchboard can exist per app.delete_switchboardDelete switchboardDELETEDeletes the switchboard and all its switchboard integrations; the linked integrations then receive every conversation event.list_switchboardsList switchboardsGETLists the app's switchboard (at most one per app), with whether it is enabled and its default switchboard integration.update_switchboardUpdate switchboardPATCHEnables or disables the switchboard, or sets the switchboard integration that gets control of new conversations.
Switchboard integration, 4 operations
create_switchboard_integrationCreate switchboard integrationPOSTLinks an integration to the switchboard under a name used in control transfers (pass_control, offer_control), with its next integration and whether it gets events while on standby.delete_switchboard_integrationDelete switchboard integrationDELETERemoves an integration from the switchboard; conversations it controlled get a new one by the default assignment rules on their next activity.list_switchboard_integrationsList switchboard integrationsGETLists the integrations linked to the switchboard, with their name, integration id or type, next integration and standby event setting.update_switchboard_integrationUpdate switchboard integrationPATCHChanges a switchboard integration's name, linked integration, next integration, standby events or message history count.
Client, 3 operations
create_clientCreate clientPOSTLinks a user to a channel (SMS, WhatsApp, email and others) as a pending client found by match criteria such as a phone number, attached to a conversation. A confirmation message, if given, is sent to the user on that channel.list_clientsList clientsGETLists a user's channel clients (linked and pending): channel type, status, external id such as a phone number, display name and last seen time. Cursor paged with page.after.remove_clientRemove clientDELETERemoves a client from a user and unsubscribes it from all its conversations.
Integration, 3 operations
delete_integrationDelete integrationDELETEDeletes a channel integration: the channel stops sending and receiving messages for the app.get_integrationGet integrationGETReturns one channel integration by id: type, status, display name and its channel settings. Channel credentials and signing secrets are left out.list_integrationsList integrationsGETLists the app's channel integrations (web, iOS, Android, WhatsApp, Messenger, custom and others) with id, type, status and display name. Filter by types; cursor paged with page.after.
Device, 2 operations
get_deviceGet deviceGETReturns one SDK device of a user: platform, app version, status and last seen time.list_devicesList devicesGETLists a user's SDK devices (web, iOS, Android), sorted by last seen time, with platform, app version, status and last seen time.
Accept control, 1 operation
accept_controlAccept controlPOSTTransfers control of a conversation to the switchboard integration that was offered it (the pending one).
Activity, 1 operation
post_activityPost activityPOSTSends a typing indicator (typing:start, typing:stop), shown to the end user, or marks the conversation as read (conversation:read), as the business or a user. A user author can only send conversation:read.
Attachment, 1 operation
upload_attachmentUpload attachmentPOSTUploads a file to Sunshine Conversations and returns its mediaUrl, to send in a file, image or carousel message with post_message. Sunshine limits the size and type of uploaded files.
Conversion event, 1 operation
post_conversion_eventsPost conversion eventsPOSTReports conversion events for a conversation's end user to Meta (Messenger, Instagram or WhatsApp), with the payload Meta expects. Answers the dataset id and how many events were received.
Join, 1 operation
join_conversationJoin conversationPOSTAdds a user (by userId or userExternalId) as a participant of an sdkGroup conversation. Answers the participant.
Leave, 1 operation
leave_conversationLeave conversationPOSTRemoves a user from a conversation, by userId, userExternalId or participantId.
Offer control, 1 operation
offer_controlOffer controlPOSTOffers control of a conversation to a switchboard integration, which becomes pending and is notified by webhook; it takes over with accept_control. Replaces any earlier offer.
Participant, 1 operation
list_participantsList participantsGETLists the participants of a conversation, with their user id, external id, unread count and last read time. Cursor paged: pass meta.afterCursor as page.after.
Pass control, 1 operation
pass_controlPass controlPOSTGives control of a conversation to a switchboard integration (by id, name, or next for its default next one); every other switchboard integration goes to standby.
Personalinformation, 1 operation
delete_user_personal_informationDelete user personal informationDELETEErases a user's personal information: name, email, avatar and custom properties, and the channel details of their clients. The conversation history is kept.
Release control, 1 operation
release_controlRelease controlPOSTReleases control of a conversation: clears its switchboard state so that no integration is in control.
Remove, 1 operation
remove_attachmentRemove attachmentPOSTRemoves a previously uploaded attachment by its mediaUrl. Deleted files can stay in the CDN cache for up to 15 minutes.
Sync, 1 operation
sync_userSync userPOSTRe-synchronizes a messaging user with its core Zendesk user (by zendeskId), for example after the Zendesk user's email changed or two users were merged (survivingZendeskId).
Use Sunshine Conversations from Claude Code, Cursor or Codex
Connect Sunshine Conversations in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Sunshine Conversations operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Sunshine Conversations
- Create your workspace
Sign up free. Nothing to install.
- Connect Sunshine Conversations once
Add your Sunshine Conversations connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Sunshine Conversations integration FAQ
What can you do with the Sunshine Conversations integration?
LiveContext exposes 48 operations on Sunshine Conversations, covering conversation, user, webhook and message.
