- Zendesk setup: Select or create the Sunshine Conversations app, copy its App ID, and create an API key.
- Artemis channel configuration: Enter those values, then copy the generated webhook URL.
- Webhook configuration in Zendesk: Register that URL as a conversations integration and subscribe it to the message and postback triggers.
- The App ID does two jobs: It routes inbound events and identifies the app for outbound replies. The connection dialog asks for it twice, once as the routing identifier and once as a credential, and both have to name the same Sunshine Conversations app.
- Two setup paths exist: Zendesk Suite customers work in Admin Center, while accounts with a separate Sunshine Conversations license use the Sunshine Conversations dashboard. The values are the same either way; the navigation isn’t.
- Webhook verification is optional and needs middleware: Artemis expects an
x-api-keyheader carrying an HMAC of the raw body, which Sunshine Conversations doesn’t send natively. Leave Webhook Secret empty unless something in front of Artemis generates that header. - Artemis doesn’t create the customer entry point: The app still needs a connected channel or client through which a customer can start a conversation. Registering the webhook adds no channel of its own.
Prerequisites
- A Sunshine Conversations app with at least one customer-facing channel already connected, such as Web Widget or a social channel.
- Zendesk Suite Professional or above with Agent Workspace activated, if you’re working in Admin Center. The Conversations API page doesn’t appear on lower plans.
- Administrator access in Zendesk, since only an administrator can create the API key.
- Artemis project access with permission to open Deployments -> Channels, and a deployed agent in the environment you intend to bind.
How Artemis routes Zendesk events
Artemis puts the App ID at the end of the webhook path and resolves the connection from that segment, then uses the matching app in the payload for replies.
The App ID travels in a public URL and isn’t a secret. It exists for deterministic lookup, so authorization rests on the API key and on whatever verification you put in front of the endpoint.
Zendesk setup
Complete the tab that matches your Zendesk account. Both paths produce the same three values: the App ID, the API Key ID, and the API Key Secret.- Zendesk Admin Center
- Sunshine Conversations dashboard
Use this path if your messaging runs on Zendesk Suite. Zendesk’s Conversations API keys article covers the same screen.
1
Open the Conversations API page
- Open Admin Center and select Apps and integrations in the sidebar.
- Select APIs -> Conversations API.
2
Create an API key
- Click Create API key.
- Enter an identifying name for the key, then click Next.
- Copy the App ID, Key ID, and Secret from the panel Zendesk shows.
3
Confirm the app carries a customer channel
Check that the app already carries a channel a customer can message, such as the Web Widget or a connected social channel.Artemis attaches to an existing app rather than creating an entry point. Without a connected channel, the webhook registers correctly and no customer can ever reach it.
Artemis channel configuration
Create the connection before you register the webhook. The callback URL ends with the App ID, and Artemis can resolve inbound events only after an active connection exists.- Open Artemis and select the project.
- Go to Deployments -> Channels -> Zendesk -> + New.
-
Configure the following fields:
- Click Create.
-
Open the connection and copy the Webhook URL from the Overview tab.
The URL ends with the App ID. Copy the whole thing, because the generic Zendesk webhook path can’t identify which connection an event belongs to.
Validation checklist
Webhook configuration in Zendesk
Zendesk calls the webhook a conversations integration in Admin Center, and a webhook in the Sunshine Conversations dashboard. Both create the same object. Zendesk documents the Admin Center route in Creating conversations integrations in Admin Center.1
Open the integrations page
In Admin Center, select Apps and integrations in the sidebar, then Integrations -> Conversations integrations, and click Create integration.In the Sunshine Conversations dashboard, add a webhook from the app’s integrations area instead. Create it in the same app that issued your API key, because a webhook registered on a neighboring app delivers events that this connection can’t claim.
2
Enter the Artemis webhook URL
Paste the complete Webhook URL from the connection’s Overview tab, including the App ID segment at the end.Zendesk sends an HTTP HEAD request to the root domain when you save, checking that the domain resolves and a service answers. A save that fails at this point signals a reachability issue, not a problem with the path.
3
Subscribe to the message and postback triggers
Select Conversation message to receive customer text, which Zendesk sends as
conversation:message.Add the postback trigger as well if your agent sends buttons. Postback taps arrive as conversation:postback rather than as messages, so an agent with buttons and no postback subscription answers text and then goes silent when someone taps. Artemis ignores event types it doesn’t support, so extra triggers cause no harm beyond noise.4
Save and confirm delivery
Save the integration, then check the delivery history after your first test to confirm Zendesk receives a 2xx response.Preserve the event identifiers Zendesk sends. Artemis deduplicates on the first event ID, so middleware that rewrites identifiers turns a provider retry into a duplicate agent turn.
Verify the connection
Artemis doesn’t synthesize Zendesk events, so a real conversation through a connected channel is the only end-to-end proof.- From the app’s connected customer channel, send a short message you can search for later.
Use the actual customer client rather than an agent-side tool, because the two produce different author types. - Confirm one
conversation:messagedelivery, one Artemis session, and one agent turn. - Check that the reply appears in the same customer conversation.
Artemis posts it as a business author through the Sunshine Conversations API, so the reply shows as coming from the business rather than from an agent. - Send an authored response carrying a button, tap it in the customer client, and confirm the postback resumes the same conversation with the action value you authored.
- Confirm the agent’s own reply doesn’t trigger a second turn.
Artemis ignores business-authored message events by design. A loop here means middleware is rewriting agent messages as customer or user authors.
Message behavior and limits
Sunshine Conversations normalizes many channels into one API, which shapes what your agent can rely on.Secure the connection
The API key is the credential that matters here, and nothing protects the inbound side unless you add that protection yourself. The Key ID and Key Secret authorize the Sunshine Conversations REST API for every conversation in the app. Use a dedicated key for this connection, keep it in encrypted storage, redact it from diagnostics, and revoke keys you no longer use. Rotating the key means updating both halves in Artemis together, because Artemis sends them as one Basic credential. Webhook verification is optional in this connection contract, and that’s a deliberate trade rather than an oversight. With Webhook Secret empty, Artemis accepts inbound events without a signature. Setting it requires every request to carry anx-api-key header holding the lowercase hexadecimal HMAC-SHA256 of the untouched raw body, which Sunshine Conversations doesn’t produce on its own. Put middleware in front of Artemis that generates the header exactly that way, or enforce an equivalent control at your ingress.
Don’t paste the API Key Secret into Webhook Secret. Each secret protects a different direction of traffic, and reusing one value for both spreads a single compromise across inbound and outbound paths.
Use distinct Sunshine Conversations apps or API keys, webhooks, secrets, and connections for development and production.
Manage the channel connection
Opening a connection shows four tabs. The delete control sits beside the connection name.- Overview
- Credentials
- Configuration
- Deployment
Connection Summary reports the connection’s state and identity.
Setup Instructions shows the Webhook URL to register in Zendesk and the App ID it ends with, each with a copy control. Compare the App ID here with the one in the payload whenever Artemis reports no connection found.
Troubleshoot connection issues
Zendesk reference
Use these Zendesk pages when you need detail beyond what this article covers.
Related articles: