Sunshine Conversations
MessagingRun omnichannel messaging on Zendesk Sunshine Conversations, covering users, conversations, messages, and attachments with a realtime webhook trigger. Agents handle the routine thread and escalate what needs a person.
What This Integration Enables
Sunshine Conversations is the odd one out in this category, and the difference is worth being blunt about: it is not an inbox anybody logs into. Formerly Smooch, it is the messaging layer that other products are built on top of, the thing you embed when you want conversations inside your own application rather than a place for your support team to work. There are no tickets here, no agent seats, no assignment operations. What there is instead: users carrying your own external IDs, so the same person is recognised across devices and channels. Conversations are either a single customer thread or an SDK group thread of up to ten participants. Messages include a raw content object path that reaches carousels, lists, forms, locations and templates. Attachments, integrations and webhooks wire the whole thing into whichever channels you have connected.
That makes this a developer-platform story, and it is the clearest illustration in this whole category of what Orchestration as a Service is for. Your product owns the surface the customer sees. FlowRunner owns the logic behind it: what happens when a message arrives, which system gets consulted, what gets sent back, and crucially when the automation stops and puts a person in the loop instead. You do not stand up a service to hold that logic, and you do not redeploy to change it. The trigger registers a realtime webhook on an integration you choose, subscribes to any of 22 documented events covering inbound messages, delivery results, conversation changes and user changes, and verifies every delivery against a generated secret before your flow runs. Note the app-wide limit of ten webhooks when planning how many triggers to register. FlowRunner's connectors are built and verified against each vendor's official API.
Without FlowRunner
With FlowRunner
Use Case Scenarios
In-product messaging with the business logic in a flow
A customer opens the chat inside your application. On Conversation Event fires on the inbound message. The agent resolves the user by the external ID your product already assigned them, looks up their account state in PostgreSQL, and answers from that context with Send Text Message. When the question needs structure rather than prose, it uses Send Rich Message with the raw content object to present a form or a carousel of options. Post Activity sends a typing indicator around the slow lookup so the customer sees the business is working rather than staring at silence. None of this required a service to be built, and changing what the flow answers does not require one to be redeployed.
Escalation from the embedded chat to the people who can act
The agent handles the routine question and recognises the one it should not. It posts a holding message into the conversation, then escalates into Slack with the full transcript from List Messages, the user record and the specific reason it stopped. A person answers in Slack and the agent relays the reply back into the customer's conversation with Send Text Message, so the customer keeps talking to your product and never learns which channel the answer came from. The conversation stays in one place. The judgment happens where your team already works.
Attachments handled without a second storage system
A customer needs to send a document, or your flow needs to send them one. Upload Attachment takes a FlowRunner file, uploads it as multipart and returns the vendor-hosted media URL, which Send Media Message then delivers. Linking the upload to the conversation lets Sunshine Conversations remove the attachment automatically when the associated message or conversation is deleted, so file lifecycle follows conversation lifecycle without a separate cleanup job. No FlowRunner file storage is consumed, because the hosted URL is returned directly.
Human-in-Loop Highlight
The gate on this connector is not whether to delete. It is which deletion, and that is a question a workflow should never answer on its own.
Sunshine Conversations offers three destructive paths and they leave very different things behind. Delete User Personal Information scrubs identifying data from a user and their message history while keeping the user record and the conversation structure intact, which satisfies an erasure obligation without destroying the analytics built on conversation volume and shape. Delete User permanently removes the user together with their conversations, messages and channel clients, and cannot be undone. Delete All Messages clears every message from a conversation while leaving the conversation and its participants in place. Choosing the heaviest option because it feels safest destroys data the business may be required to retain. Choosing the lightest because it is reversible may not satisfy the request at all. And if the person appears in an SDK group conversation, deleting the user takes their side of a thread other participants are still in.
So a FlowRunner agent does all the work and none of the deciding. It resolves the account with Find Users By Email and enumerates every thread with List Conversations. It checks each one with List Conversation Participants to find the shared ones. Then it posts into the privacy queue: "Erasure request PR-2214 resolved to one user across four conversations, one of which is a group thread with two other participants. Delete User Personal Information scrubs the identifying data and keeps the threads. Delete User removes the account, all four conversations and their messages permanently, including this user's side of the group thread. Which path, and does the retention policy cover the conversation structure?" The privacy owner answers once, the agent executes exactly that path, and the whole exchange is on the record. This is human-in-the-loop at the point where it is worth the most: not approving a message, but choosing between irreversible options that a script would be happy to pick between at random.
Agent Capabilities
25 actionsUsers
6- Create User Creates a user record, optionally carrying your own external ID so the same person is recognised across devices and channels. Profile fields and free-form metadata can be supplied at creation, which is how your product's account identity is bound to the messaging identity.
- Get User Retrieves a single user by platform ID or by your own external ID, including their profile, metadata and the channel identities linked to them.
- Find Users By Email Looks up users by an email address held in their channel identities. This matches the identities array only and will not find an address stored solely on the user profile, which is worth knowing before a lookup returns nothing.
- Update User Updates the profile fields or metadata of an existing user. Only the fields supplied are changed.
- Delete User Permanently deletes a user together with their conversations, messages and channel clients. This cannot be undone, and it is the heavier of the two erasure paths.
- Delete User Personal Information Scrubs personally identifiable information from a user and their message history while keeping the user record and conversation structure intact. This is the path that honours a data erasure request without destroying conversation analytics.
Conversations
6- Create Conversation Creates a conversation and adds participants. A personal conversation takes exactly one participant and represents a single customer thread; an SDK group conversation takes up to ten participants and can also start empty.
- List Conversations Lists the conversations a given user takes part in. The API requires a user filter here, so supply the user's ID or your own external ID for them. Cursor paginated.
- Get Conversation Retrieves a single conversation with its type, display name, participants, unread counts and metadata. Used to inspect a thread before posting into it.
- Update Conversation Changes a conversation's display name, description, icon or metadata. Only the fields supplied are modified.
- Delete Conversation Permanently deletes a conversation and all of its messages. This cannot be undone, and any attachments scoped to the conversation are removed with it.
- List Conversation Participants Lists everyone taking part in a conversation with each participant's ID, linked user ID and unread message count. This is the check that reveals whether a thread is shared before anything destructive touches it.
Messages
7- Send Text Message Posts a plain text message into a conversation, delivered to whichever channel the customer is on. Text is limited to 4096 characters, and optional Markdown or HTML variants let supported channels render richer formatting.
- Send Media Message Posts an image or file into a conversation from a hosted media URL. Alt text is recommended for accessibility.
- Send Rich Message Posts a structured message by supplying the raw content object, which reaches the carousel, list, form, location and template types the text and media actions do not. The content object must match the message schema for its type in the API reference, which makes this the escape hatch for anything the connector does not model directly.
- List Messages Retrieves the message history of a conversation, newest last, with author, content and delivery source for each message. Cursor paginated.
- Delete Message Permanently removes a single message from a conversation. It disappears from the history for every participant, which makes it the right tool for retracting content sent in error and the wrong one for tidying up.
- Delete All Messages Clears every message from a conversation while keeping the conversation and its participants in place. Irreversible, and best understood as a history purge rather than an edit.
- Post Activity Sends a conversation activity rather than a message: a typing indicator or a read receipt. Used around slow backend work so the customer sees the business responding instead of silence.
Attachments
2- Upload Attachment Uploads a FlowRunner file as multipart and returns the vendor-hosted media URL to pass to a media send. Linking the upload to a conversation lets the platform delete the attachment automatically when the associated message or conversation is removed. File size and type limits apply.
- Delete Attachment Removes a previously uploaded attachment from storage by its media URL. Messages that already referenced the file keep their record but the media stops resolving.
App and Integrations
4- Get App Retrieves the configured app with its display name, settings and metadata. Useful as a connection health check and to confirm which app the credentials point at.
- List Integrations Lists the channel and custom integrations configured on the app, such as WhatsApp, Messenger, the web SDK and custom integrations. Custom integrations are the ones that can host webhooks, so this is how a trigger's integration ID is found.
- Get Integration Retrieves a single integration by ID with its type, status and display name. Used to confirm a channel is active before routing messages through it.
- List Webhooks Lists the webhooks registered on an integration, showing each target URL, subscribed triggers and shared secret. An app is limited to ten webhooks in total, so this is worth checking before adding another trigger.
Triggers
1 triggersEvent Triggers
1- On Conversation Event Fires when Sunshine Conversations reports a chosen event: an inbound message, a delivery result, a conversation change or a user change, across 22 documented event types. A webhook is registered on the integration you pick and removed again when the trigger is deleted, so the subscription lifecycle follows the flow. Each delivery is verified against the webhook's generated shared secret, sent as a header, before your flow runs, which means an unverified payload never starts an execution. This is the realtime entry point for everything built on top of an embedded messaging experience.
Frequently Asked Questions
What can FlowRunner do with Sunshine Conversations?
FlowRunner agents can run Create User, Get User, and Find Users By Email in Sunshine Conversations, plus 22 more actions.
Does connecting Sunshine Conversations to FlowRunner require OAuth?
No. Sunshine Conversations connects to FlowRunner with basic authentication (a username and password), no OAuth flow required.
Can Sunshine Conversations trigger a FlowRunner workflow automatically?
Yes. Sunshine Conversations supports 1 trigger that can start a FlowRunner workflow automatically.
Start building with Sunshine Conversations
$100 in credits. No card required. Connect in minutes.