Skip to main content
Back to messaging or digital channels Connect a Zendesk Sunshine Conversations app to your agent so customers reach it through any messaging channel that app already serves. Sunshine Conversations normalizes Web Widget, social channels, and SMS into one API, so Artemis integrates once and inherits every entry point the app carries. The setup requires:
  1. Zendesk setup: Select or create the Sunshine Conversations app, copy its App ID, and create an API key.
  2. Artemis channel configuration: Enter those values, then copy the generated webhook URL.
  3. Webhook configuration in Zendesk: Register that URL as a conversations integration and subscribe it to the message and postback triggers.
After the configuration is complete, a customer message on any channel connected to the app opens a session in Artemis, the bound deployment answers it, and the reply posts back into the same conversation as a business author. Important considerations
  • 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-key header 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.
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

  1. Open Admin Center and select Apps and integrations in the sidebar.
  2. Select APIs -> Conversations API.
If the page doesn’t appear, your plan or workspace configuration is the cause rather than a permissions problem. The page needs Zendesk Suite Professional or above with Agent Workspace activated.
2

Create an API key

  1. Click Create API key.
  2. Enter an identifying name for the key, then click Next.
  3. Copy the App ID, Key ID, and Secret from the panel Zendesk shows.
Zendesk displays the secret once. Copy all three values into your secret manager before you close the panel, because recovering the secret means creating a replacement key.Create a dedicated key for this Artemis connection rather than reusing one that already serves another integration. An account stores up to 10 keys, so a separate key per integration costs nothing and lets you revoke this one in isolation.
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.
  1. Open Artemis and select the project.
  2. Go to Deployments -> Channels -> Zendesk -> + New.
  3. Configure the following fields:
  4. Click Create.
  5. 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.
  1. 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.
  2. Confirm one conversation:message delivery, one Artemis session, and one agent turn.
  3. 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.
  4. 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.
  5. 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 an x-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.
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: