Updated on February 21, 2025

cover image of add Ai to zendesk sunshine.

Zendesk Sunshine is the omnichannel conversations platform from Zendesk that helps you customize your communications. It’s a popular tool for customer service teams that want to integrate their products across social media and messaging apps to provide outstanding customer journeys to their clients. 

However, integrating AI with Zendesk Sunshine is not straightforward. The integration process is cumbersome (needing additional subscriptions and multiple coding steps), and customers have consistently complained about the lackluster AI agent. 

For example, take this review by Sami from the Zendesk forum: “We want to use messaging as a diversion strategy by having the Generative AI generate replies from our KB as possible solutions to customers. The AI does not generate a reply to known KB content, “Sorry I couldn’t answer your question.” We have a live help center with >400 articles. The messaging chatbot is set to “generate a reply.” We are not using intents/answers; we’ve set “Questions without matching intents” to “generate a reply.” No luck so far.  We’ve reviewed KBs and engaged with support.”

Screenshot of a forum post by Sami, reporting an issue with a Generative AI chatbot not providing answers from the knowledge base.

Zendesk’s AI also performs poorly compared to Intercom’s Fin, an AI agent that Kommunicate has outperformed in accuracy and response generation. 

Thus, it makes sense to integrate a more advanced and accurate AI agent with Zendesk Sunshine to take advantage of the Zendesk ecosystem while providing better automation. 

This article will cover how we can add AI models like Claude Haiku, GPT 4, and Gemini to Zendesk Sunshine Conversations. 

Before You Start

To integrate Zendesk Sunshine with advanced AI models, you need the following:

1. Admin access on a Zendesk Sunshine account

2. A Kommunicate account

Building Your AI Chatbot with Kommunicate

  1. Go to the Kommunicate dashboard
Screenshot of a dashboard showing conversation analytics with zero new, open, or resolved conversations.
  1. Choose Bot Integrations
Screenshot of the "Bot Integrations" page showing 3 integrated bots and an option to create a new bot with Kompose.
  • You’ll see the Manage Bots page if you have already created a chatbot with Kommunicate.
  • In that case, click on the Bot Integrations tab in the left-hand menu, (A)
  1. Choose Your AI Company
Screenshot of a platform to integrate bots, featuring OpenAI, Gemini, Anthropic, and Dialogflow CX as options.
  • Choose the AI you want to train your chatbot with. We have Open AI, Gemini, and Anthropic models available.
  • You can choose from Open AI, Gemini, and Anthropic. In this case, we’re selecting an Anthropic model.
  1. Choose Your AI Model and Set Parameters
Screenshot of the Kommunicate platform showing the setup for integrating an Anthropic bot, including model selection and API key options.
  • You can create a model with the Claude Sonnet or Claude Haiku models. For this customer service chatbot, we will select the Claude Sonnet model.
  • Now, select the Maximum Token. This helps you determine how long the AI’s answer can be. 1000 is a standard output number, so we are keeping this number unchanged.
    If you’re working in an industry where the answers are information-dense, you can increase the number of tokens. However, you might incur additional AI costs.
  • Select the Temperature. This is a metric that controls the creativity of your AI chatbot. We will select 0 because we don’t want creative answers in a search and recommendation chatbot. 
  • Once you’ve selected your model, maximum tokens, and temperature, click Save and Proceed, and you will be taken to the next page.
  1. Select How Your Chatbot Will Look
Screenshot of the Kommunicate platform showing the setup for creating an Anthropic bot, named "Customer Service Bot," including options for bot photo and default language.
  • First, set a name for your chatbot. For this demo, we will call our bot Customer Service Bot.
  • Then, select the avatar that will be the profile picture of your chatbot. We’re choosing a custom avatar from our brand.
  • Click on Save and Proceed to continue.
book a demo banner
  1. Select if you Want a Human-in-the-Loop System.
Screenshot of the Kommunicate platform showing the settings for automatic bot-to-human handoff for the "Customer Service Bot," with the option to enable or disable the feature.
  • We have a human handoff feature where the bot can push the chat to a particular human agent when the questions are too complex. 
  • Click on Yes, enable this feature for the bot, and click on Finish bot setup.
  1. You’ve Created Your Chatbot
Screenshot of the Kommunicate platform showing the confirmation message after creating the "Customer Service Bot," with a prompt to assign conversations to the new bot.
  • Your chatbot has been created!
  • Click on “I’ll set it up later,” and let’s start training our Customer Service Bot.
  1. Set Up Welcome Message
Screenshot of the Kommunicate interface for configuring the "Customer Service Bot," showing options for welcome message, intents, knowledge source, fallback, and dynamic messaging
  • Write a message to greet your customers whenever they interact with the bot.
  • Click on Train bot to finalize this change.
  1. Set Up Some Example Answers
Screenshot of the Kommunicate platform showing intent training for the "Customer Service Bot," specifically for the phrase "I need a password reset link," with a preview of the bot's response.
  • Click on the Intents button on the left side of the previous screen. 
  • Here, you can train your bot to give specific responses to some questions. For example, we are training the bot to answer a question about forgotten passwords. 
  • Next, we will set up the answers.
Screenshot of Kommunicate bot intent training for password reset.
  • In the Bot Says section, you can set up your answer; since we will pass a reset link to the customer in this process, we will click on + Buttons.
Kommunicate interface for training the "Customer Service Bot" to respond to "I need a password reset link," showing user phrases and bot response.
  • We are adding a Link Button to pass the reset password link to the customer.
  • This will open a separate dialog where you can customize the button. 
Kommunicate screenshot: Configuring a "Reset Password" button with a URL.
  • Here, we set up the Reset Link and click on Save.
  • Next, click the Train Bot button to train the chatbot to respond.
  1.  Let’s Teach Our Bot About Customer Service (Document Upload)
Kommunicate screenshot: Uploading PDF documents to train the "Customer Service Bot."
Kommunicate screenshot: Three documents uploaded successfully to the bot's knowledge base.
  • Once you upload your documents, the Claude model is trained with it.
Kommunicate screenshot: Three documents uploaded to the bot's knowledge base, showing "Active" status.
  • Once the training is complete, the documents will show Active status.
  1. Creating a Fallback Option
Kommunicate screenshot: Setting up the default fallback intent with a message and handover options.
  • The bot might sometimes fail to answer a question despite our documents and trained answers.
  • In this case, we will transfer the query to a human agent and send an intimation to the customer when that happens. We do this by Assigning based on Conversation Rules.
  1. Testing the Bot
Kommunicate interface for configuring the "Customer Service Bot," showing options for welcome message, intents, knowledge source, fallback, and dynamic messaging
  • Go back to the Welcome Message or Intents screen.
  • Click on Test Bot on the right-hand side to check how the bot responds to different questions.

Now that we have an AI chatbot ready to deploy let’s integrate it with Zendesk Sunshine. 

Integration with Zendesk Sunshine

  1. Generate API Key for Zendesk Sunshine
Screenshot of Sunshine Conversations developer settings showing App ID and a list of API keys.
  • Login to Zendesk -> Go to Admin Center -> Apps and Integrations -> Conversation Api -> Create Api Key-> Give a name to your Key and click on Next.
Screenshot of a Zendesk modal displaying App ID, Key ID, and Secret Key.
  • Copy the information from this dialog because you won’t be able to access it later.
  1. Manage the API with Kommunicate
Kommunicate screenshot: Settings for integrating Sunshine Conversations, showing App ID and API Key fields.
  • Login to Kommunicate -> Go to Integrations -> Sunshine Conversation -> Fill in the Details -> Click on Integrate.
Kommunicate screenshot: Sunshine Conversations integration settings with App ID, API Key, Secret Key, and Web Integration ID (connected)
  • After integrating, copy the Web Integration ID
  1. Set Up Your Website
book a demo banner
  • Add the following script to your <head> tag on the website:
<script>

    !(function (o, d, s, e, f) {

        var i,

          a,

          p,

          c = [],

          h = [];

        function t() {

          var t = "5";

          try {

            if (!f) throw new Error(t);

            var e,

              n = "https://cdn.smooch.io/",

              r = "smooch";

            e =

              "string" == typeof this.response

                ? JSON.parse(this.response)

                : this.response;

            var o = f.match(/([0-9]+)\.?([0-9]+)?\.?([0-9]+)?/),

              s = o && o[1],

              i = o && o[2],

              a = o && o[3],

              p = e["v" + s],

              c = e["v" + s + "." + i + ".patch"];

            if (e.url || p || c) {

              var h = d.getElementsByTagName("script")[0],

                u = d.createElement("script");

              if (((u.async = !0), a)) u.src = c || n + r + "." + f + ".min.js";

              else {

                if (!(5 <= s && p)) throw new Error(t);

                u.src = p;

              }

              h.parentNode.insertBefore(u, h);

            }

          } catch (e) {

            e.message === t && console.error(e);

          }

        }

        (o[s] = {

          init: function () {

            i = arguments;

            var t = {

              then: function (e) {

                return h.push({ type: "t", next: e }), t;

              },

              catch: function (e) {

                return h.push({ type: "c", next: e }), t;

              },

            };

            return t;

          },

          on: function () {

            c.push(arguments);

          },

          render: function () {

            a = arguments;

          },

          destroy: function () {

            p = arguments;

          },

        }),

          (o.__onWebMessengerHostReady__ = function (e) {

            if ((delete o.__onWebMessengerHostReady__, (o[s] = e), i))

              for (var t = e.init.apply(e, i), n = 0; n < h.length; n++) {

                var r = h[n];

                t = "t" === r.type ? t.then(r.next) : t.catch(r.next);

              }

            a && e.render.apply(e, a), p && e.destroy.apply(e, p);

            for (n = 0; n < c.length; n++) e.on.apply(e, c[n]);

          });

        var n = new XMLHttpRequest();

        n.addEventListener("load", t),

          n.open("GET", "https://" + e + ".webloader.smooch.io/", !0),

          (n.responseType = "json"),

          n.send();

      })(window, document, "Smooch", "integration-id", "5");

    </script>

Add the following script to the <body> tag

<script>

      Smooch.init({

        integrationId: "integration-id", // Add the integration id here

        canUserSeeConversationList: false,

        businessName: 'Kommunicate',

        businessIconUrl: 'https://static.zdassets.com/sunco-accounts/sunco-dashboard/v19/43f8f7a97a52a609c850cdbdfac3107a.svg',

      }).then(function (data) {

          Smooch.createConversation({

            metadata: {

              isFirstTimeCustomer: true,

            },

          }).then((conversation) => {

            console.log("Hello Sunshine");

          });

      });

</script>
  • Add the following script to the <body> tag
<script>

      Smooch.init({

        integrationId: "integration-id", // Add the integration id here

        canUserSeeConversationList: false,

        businessName: 'Kommunicate',

        businessIconUrl: 'https://static.zdassets.com/sunco-accounts/sunco-dashboard/v19/43f8f7a97a52a609c850cdbdfac3107a.svg',

      }).then(function (data) {

          Smooch.createConversation({

            metadata: {

              isFirstTimeCustomer: true,

            },

          }).then((conversation) => {

            console.log("Hello Sunshine");

          });

      });

</script>
  • Replace integration-id with the Integration ID that you got from the earlier step.
  1. Setup Default Fallback
Kommunicate screenshot: Setting up the default fallback with a message and handover options.
  • As we did earlier, we will set up the default fallback option in the bot training section. 
  • This will ensure that the bot follows the conversation rules you set up and performs human handover.

Congrats! Your chatbot has been integrated with Zendesk Sunshine.

Conclusion

Many enterprise and mid-sized businesses use Zendesk Sunshine for their daily use. However, other players, including Intercom and Kommunicate, constantly outperform their AI models. 

That’s why we’ve set up an easy integration guide so that you can benefit from superior AI models and the Zendesk ecosystem. 

In case you’re looking to automate your customer service live chat and emails, we have the perfect solution available. Talk to us to know more!

Write A Comment

Close

Eve from Kommunicate

Experience Your Own AI Chatbot!

Instantly create your own AI chatbot! Enter your URL and get started with just a click. No sign-up required

Create Your Chatbot Now!

You’ve unlocked 30 days for $0
Kommunicate Offer

Upcoming Webinar: Conversational AI in Fintech with Srinivas Reddy, Co-founder & CTO of TaxBuddy.

X