Deployment Procedure for Zendesk Support

Once you’ve added a Zendesk source in your Coveo organization, you must:

Install the Coveo Application in Zendesk

  1. Install the Coveo Search App.

  2. On the installation page, enter your Coveo organization ID.

  3. (Optional) Enter specific field names to add to the allowlist.

  4. (Optional) Enter specific field names to add to the blocklist.

    • By default, all ticket fields are sent to Coveo as context and are used to automatically surface support content to agents in the Coveo Search app. If you wish to only use part of the ticket content, add the field names to the Fields Allowlist and Fields Blocklist accordingly. The field names must be specified as follows: Ticket_<FIELD_NAME>.

      For example, you want to add the ticket description to the blocklist. In that case, in Fields Blocklist, you’d enter Ticket_Description.

    • You can view or edit the ticket fields as required, or you can create a custom field to add to the ticket.

  5. Select the roles that should have access to the Coveo application.

  6. Select the roles that should be restricted from the Coveo Application.

  7. Click Install.

Create Search Pages

  1. On the Search Pages (platform-eu | platform-au) page, create the following search pages with the Interface Editor:

    • zd_support_new_ticket_sidebar

    • zd_support_ticket_sidebar

  2. Once the pages are created, click Edit Interface, and then Code View for each page, and replace the existing code with the this code.

  3. Create another search page named zd_support_top_bar for the top toolbar.

    This search page can be further customized at a later time as needed.

Generate API Key

To authorize the search interface to send queries and retrieve results from your Coveo Organization, you must generate an API Key in the Coveo Administration Console.

  1. Create an API key with the following privileges:

    Service Domain Required access level
    Analytics

    Analytics Data

    Push and view

    Impersonate

    Allowed
    Search

    Execute queries

    Allowed

    Impersonate

    Allowed
  2. Back on the Agent Dashboard, click on the Coveo icon located on the top bar.

  3. Enter the API key, and then click Allow in the Coveo for Zendesk window that appears.

View Ticket with Insight Panel

By selecting a ticket on the Agent Dashboard, the Coveo for Zendesk insight panel will appear on the right side of the ticket.

zendesk-ticket-view

Reference

Search Page Code

Enter this code into the Code View of the zd_support_new_ticket_sidebar and the zd_support_ticket_sidebar search pages.

<div id="search" class="CoveoSearchInterface" data-results-per-page="5">
  <div class="CoveoFolding"></div>
  <div class="CoveoAnalytics"></div>
  <div class="coveo-tab-section">
    <a class="CoveoTab" data-id="All" data-caption="All"></a>
    <a class="CoveoTab" data-id="Confluence" data-caption="Wiki" data-expression="@connectortype==Confluence2Crawler AND NOT @documenttype==Space"></a>
    <a class="CoveoTab" data-id="GoogleDrive" data-caption="KB" data-expression="@connectortype==GoogleDriveCrawler AND @documenttype==(File,Folder)"></a>
    <a class="CoveoTab" data-id="Lithium" data-caption="Community" data-expression="@litopicid @filetype==lithiummessage" data-sort="date descending"></a>
    <a class="CoveoTab" data-id="ServiceNow" data-caption="ServiceNow" data-expression="@snsysid"></a>
    <a class="CoveoTab" data-id="YouTube" data-caption="YouTube" data-expression="@filetype==&quot;youtubevideo&quot;"></a>
  </div>
  <div class="CoveoUserActions"></div>
  <div class="coveo-search-section">
    <div class="CoveoSearchbox" data-enable-omnibox="true"></div>
  </div>
  <div class="coveo-main-section">
    <div class="coveo-facet-column">
      <div class="CoveoDynamicFacet" data-title="Type" data-field="@objecttype" data-tab="All"></div>
      <div class="CoveoDynamicFacet" data-title="FileType" data-field="@filetype" data-tab="All"></div>
      <div class="CoveoDynamicFacet" data-title="Author" data-field="@author" data-tab="All"></div>
      <div class="CoveoDynamicFacet" data-title="Type" data-field="@confdocumenttype" data-tab="Confluence"></div>
      <div class="CoveoDynamicFacet" data-title="Space" data-field="@confspacename" data-tab="Confluence"></div>
      <div class="CoveoDynamicFacet" data-title="FileType" data-field="@filetype" data-tab="Confluence"></div>
      <div class="CoveoDynamicFacet" data-title="Author" data-field="@author" data-tab="Confluence"></div>
      <div class="CoveoDynamicFacet" data-title="FileType" data-field="@filetype" data-tab="GoogleDrive"></div>
      <div class="CoveoDynamicFacet" data-title="Origin" data-field="@gdfilesource" data-tab="GoogleDrive"></div>
      <div class="CoveoDynamicFacet" data-title="Owner" data-field="@author" data-tab="GoogleDrive"></div>
      <div class="CoveoDynamicFacet" data-title="Last modified By" data-field="@gdfilelastmodifyinguserdisplayname" data-tab="GoogleDrive"></div>
      <div class="CoveoDynamicFacet" data-title="Shared To" data-field="@to" data-tab="GoogleDrive"></div>
      <div class="CoveoDynamicFacet" data-title="Shared From" data-field="@from" data-tab="GoogleDrive"></div>
      <div class="CoveoDynamicFacet" data-title="Category" data-field="@licategoryshorttitle" data-tab="Lithium">
      </div>
      <div class="CoveoDynamicFacet" data-title="Board" data-field="@liboardshorttitle" data-tab="Lithium"></div>
      <div class="CoveoDynamicFacet" data-title="Author" data-field="@limessageauthor" data-tab="Lithium"></div>
      <div class="CoveoDynamicFacet" data-title="Year" data-field="@year" data-tab="Lithium"></div>
      <div class="CoveoDynamicFacet" data-title="Month" data-field="@month" data-tab="Lithium"></div>
      <div class="CoveoDynamicFacet" data-title="Type" data-field="@objecttype" data-tab="Salesforce"></div>
      <div class="CoveoDynamicFacet" data-title="Status" data-field="@sfstatus" data-tab="Salesforce"></div>
      <div class="CoveoDynamicFacet" data-title="Close quarter" data-field="@sfopportunityclosedquarterc" data-tab="Salesforce"></div>
      <div class="CoveoDynamicFacet" data-title="Salesforce Account" data-field="@sfaccountname" data-tab="Salesforce"></div>
      <div class="CoveoDynamicFacet" data-title="Salesforce Owner" data-field="@sfownername" data-tab="Salesforce"></div>
      <div class="CoveoDynamicFacet" data-title="Opportunity Type" data-field="@sfopportunitytype" data-tab="Salesforce"></div>
      <div class="CoveoDynamicFacet" data-title="Opportunity Stage" data-field="@sfopportunitystagename" data-tab="Salesforce"></div>
      <div class="CoveoDynamicFacet" data-title="Lead Source" data-field="@sfleadsource" data-tab="Salesforce"></div>
      <div class="CoveoDynamicFacet" data-title="Created By" data-field="@sfcreatedbyname" data-tab="Salesforce"></div>
      <div class="CoveoDynamicFacet" data-title="Type" data-field="@objecttype" data-tab="ServiceNow"></div>
      <div class="CoveoDynamicFacet" data-title="Priority" data-field="@snpriority" data-tab="ServiceNow"></div>
      <div class="CoveoDynamicFacet" data-title="Urgency" data-field="@snurgency" data-tab="ServiceNow"></div>
      <div class="CoveoDynamicFacet" data-title="Opened By" data-field="@snopenedbytitle" data-tab="ServiceNow"></div>
      <div class="CoveoDynamicFacet" data-title="State" data-field="@snstate" data-tab="ServiceNow"></div>
      <div class="CoveoDynamicFacet" data-title="Category" data-field="@sncategory" data-tab="ServiceNow"></div>
      <div class="CoveoDynamicFacet" data-title="Product" data-field="@sncmdbciname" data-tab="ServiceNow"></div>
      <div class="CoveoDynamicFacet" data-title="Author" data-field="@author" data-tab="YouTube"></div>
    </div>
    <div class="coveo-results-column">
      <div class="CoveoShareQuery"></div>
      <div class="CoveoPreferencesPanel">
        <div class="CoveoResultsPreferences"></div>
        <div class="CoveoResultsFiltersPreferences"></div>
      </div>
      <div class="CoveoTriggers"></div>
      <div class="CoveoBreadcrumb"></div>
      <div class="CoveoDidYouMean"></div>
      <div class="coveo-results-header">
        <div class="coveo-summary-section">
          <span class="CoveoQuerySummary"><div class="coveo-show-if-no-results"></div></span>
        </div>
        <div class="coveo-result-layout-section">
          <span class="CoveoResultLayout"></span>
        </div>
        <div class="coveo-sort-section">
          <span class="CoveoSort" data-sort-criteria="relevancy" data-caption="Relevance"></span>
          <span class="CoveoSort" data-sort-criteria="date descending,date ascending" data-caption="Date"></span>
        </div>
      </div>
      <div class="CoveoHiddenQuery"></div>
      <div class="CoveoErrorReport" data-pop-up="false"></div>
      <div class="CoveoResultList" data-layout="list" data-wait-animation="fade" data-auto-select-fields-to-include="true">
        <script id="Salesforce" class="result-template" type="text/html" data-layout="list" data-field-filetype="SalesforceItem">
          <div class="coveo-result-frame">
                        <div class="CoveoResultActionsMenu">
                            <div class="CoveoQuickview" data-use-advanced-quickview="true"></div>
                        </div>
                        <div class="coveo-result-cell" style="vertical-align: top;">
                            <div class="coveo-result-row" style="margin-top:0;">
                                <div class="coveo-result-cell" style="vertical-align:top;font-size:16px;">
                                    <span class="badge" data-field="@filetype" style="margin-right:5px; background-color: #03363D; color: white; border-radius: 2px; padding: 2px; font-size: 14px;">Knowledge</span>
                                    <span></span>
                                    <a class="CoveoResultLink"></a>
                                </div>
                            </div>
                            <div class="coveo-result-row" style="">
                                <div class="coveo-result-cell">
                                    <span class="CoveoExcerpt" data-html-value="true"></span>
                                </div>
                            </div>
                            <div class="coveo-result-row">
                                <div class="coveo-result-cell">
                                    <div class="CoveoMissingTerms"></div>
                                </div>
                            </div>
                        </div>
                    </div>
                </script>
        <script id="YouTubeVideo" class="result-template" type="text/html" data-layout="list" data-field-filetype="YouTubeVideo">
          <div class="coveo-result-frame">
                        <div class="CoveoResultActionsMenu">
                            <div class="CoveoAttachResult"></div>
                            <div class="CoveoQuickview" data-use-advanced-quickview="true"></div>
                        </div>
                        <div class="coveo-result-row">
                            <div class="coveo-result-cell">
                                <div class="coveo-result-row">
                                    <div class="coveo-result-cell" style="font-size:16px">
                                        <a class="CoveoResultLink">
                                        </a>
                                    </div>
                                </div>
                                <div class="coveo-result-row" style="margin-top:10px;">
                                    <div class="coveo-result-cell">
                                        <span class="CoveoYouTubeThumbnail">
          </span>
                                    </div>
                                </div>
                                <div class="coveo-result-row" style="margin-top:10px;">
                                    <div class="coveo-result-cell">
                                        <span class="CoveoFieldValue" data-field="@author" data-text-caption="Author" style="margin-right:30px;"></span>
                                        <span class="CoveoFieldValue" data-field="@ytvideoduration" data-helper="timeSpan" data-helper-options-is-milliseconds="false"
                                         data-text-caption="Length" style="margin-right:30px;"></span>
                                        <span class="CoveoFieldValue" data-field="@ytviewcount" data-text-caption="Views" style="margin-right:30px;"></span>
                                        <span class="CoveoFieldValue" data-field="@language" data-text-caption="Language" style="margin-right:30px;"></span>
                                    </div>
                                </div>
                                <div class="coveo-result-row">
                                    <div class="coveo-result-cell">
                                        <div class="CoveoMissingTerms"></div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </script>
        <script id="Answer" class="result-template" type="text/html" data-layout="list" data-field-filetype="kb_social_qa_answer">
          <div class="coveo-result-frame">
                        <div class="CoveoResultActionsMenu">
                            <div class="CoveoAttachResult"></div>
                            <div class="CoveoQuickview" data-use-advanced-quickview="true"></div>
                        </div>
                        <div class="coveo-result-cell" style="vertical-align: top;">
                            <div class="coveo-result-row" style="margin-top:0;">
                                <div class="coveo-result-cell" style="vertical-align:top;font-size:16px;">
                                    <span class="CoveoFieldValue badge" data-field="@filetype" style="margin-right:5px; background-color: #03363D; color: white; border-radius: 2px; padding: 2px; font-size: 14px;"
                                     data-helper="translatedCaption"></span>
                                    <span></span>
                                    <a class="CoveoResultLink"></a>
                                </div>
                            </div>
                            <div class="coveo-result-row" style="margin-top:5px;">
                                <div class="coveo-result-cell">
                                    <span class="CoveoFieldValue answer" data-field="@snanswer" data-html-value="true"></span>
                                </div>
                            </div>
                            <div class="coveo-result-row">
                                <div class="coveo-result-cell">
                                    <div class="CoveoMissingTerms"></div>
                                </div>
                            </div>
                        </div>
                    </div>
                </script>
        <script id="Default" class="result-template" type="text/html" data-layout="list">
          <div class="coveo-result-frame">
                        <div class="CoveoResultActionsMenu">
                            <div class="CoveoAttachResult"></div>
                            <div class="CoveoQuickview" data-use-advanced-quickview="true"></div>
                        </div>
                        <div class="coveo-result-cell" style="vertical-align: top;">
                            <div class="coveo-result-row" style="margin-top:0;">
                                <div class="coveo-result-cell" style="vertical-align:top;font-size:16px;">
                                    <span class="CoveoFieldValue badge" data-field="@filetype" style="margin-right:5px; background-color: #03363D; color: white; border-radius: 2px; padding: 2px; font-size: 14px;"
                                     data-helper="translatedCaption"></span>
                                    <span></span>
                                    <a class="CoveoResultLink"></a>
                                </div>
                            </div>
                            <div class="coveo-result-row" style="">
                                <div class="coveo-result-cell">
                                    <span class="CoveoExcerpt" style="font-size: 14px;"></span>
                                </div>
                            </div>
                            <div class="coveo-result-row" style="font-size: 12px;">
                                <div class="coveo-result-cell">
                                    <span class="CoveoFieldValue" data-field="@author" data-text-caption="Author" style="margin-right:10px;"></span>
                                    <span class="CoveoFieldValue" data-field="@source" data-text-caption="Source" style="margin-right:10px;"></span>
                                </div>
                            </div>
                            <div class="coveo-result-row">
                                <div class="coveo-result-cell">
                                    <div class="CoveoMissingTerms"></div>
                                </div>
                            </div>
                        </div>
                    </div>
                </script>
      </div>
      <div class="CoveoPager"></div>
      <div class="CoveoLogo"></div>
    </div>
  </div>
</div>
What's next for me?