<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Integration: Published Ordered Knowledge Base: : General | Helprace Support</title>
    <description>Published Ordered Knowledge Base: Integration</description>
    <generator>Helprace RSS</generator>
    <link>https://support.helprace.com/s1-general/knowledgebase/c3-integration?format=rss</link>
    <item>
      <title>Converting live chat history and offline messages to tickets</title>
      <description><![CDATA[<p>This guide explains how to turn chat transcripts and offline chats into tickets in Helprace.</p>
<p>Tip: If you haven't added a live chat button to your Helprace portal yet, now is a good time to do this. This allows customers to start a chat with you right from your Helprace portal.</p>
<p>Go to your live chat settings and and specify the email address for sending offline chat messages.</p>
<p>These settings may vary according to chat software. If your chat provider has a built-in ticketing system, these settings may be quite difficult to find :).</p>
<p>Here's how to set up forwarding in certain chat providers:</p>
<p>Tawk.to</p>
<p>Go to[_cuted_]</p>]]></description>
      <pubDate>Thu, 20 Sep 2018 06:34:32 +0000</pubDate>
      <link>https://support.helprace.com/i641-converting-live-chat-history-and-offline-messages-to-tickets</link>
      <guid>https://support.helprace.com/i641-converting-live-chat-history-and-offline-messages-to-tickets</guid>
      <author>Edward</author>
      <dc:creator>Edward</dc:creator>
      <content:encoded><![CDATA[<p>This guide explains how to turn chat transcripts and offline chats into tickets in Helprace.</p>
<blockquote>
<p>Tip: If you haven't <a href="https://support.helprace.com/i640-adding-a-live-chat-button-to-user-portal">added a live chat button to your Helprace portal</a> yet, now is a good time to do this. This allows customers to start a chat with you right from your Helprace portal.</p>
</blockquote>
<p>Go to your live chat settings and and specify the email address for sending offline chat messages.</p>
<p>These settings may vary according to chat software. If your chat provider has a built-in ticketing system, these settings may be quite difficult to find :).</p>
<p>Here's how to set up forwarding in certain chat providers:</p>
<div class="mce-toc">
<div style="display: none;"> </div>
<ul>
<li><a href="#mcetoc_1c5te4l3a0" rel="nofollow">Tawk.to</a></li>
<li><a href="#mcetoc_1c5te4l3a1" rel="nofollow">LiveChat</a></li>
</ul>
</div>
<h2 id="mcetoc_1c5te4l3a0">Tawk.to</h2>
<p>Go to Settings &gt; Mail Notifications.</p>
<p><img src="//s3.amazonaws.com/chd-data/data/support/items/641/media/tawk-to-1.png" alt="" border="1" data-file="___chdfid_11866___"></p>
<p>Here you can add emails where chat transcripts, offline form and missed chat notifications will be sent. Insert your support email address here (e.g. go to Settings &gt; Mailboxes in Helprace to see your list of addresses).</p>
<p><img src="//s3.amazonaws.com/chd-data/data/support/items/641/media/tawk-to-2.png" alt="" width="500" border="1" data-file="___chdfid_11868___"></p>
<h2 id="mcetoc_1c5te4l3a1">LiveChat</h2>
<p>Go to Settings &gt; Installation &gt; Email and click on the 'Forward messages from visitors' at the bottom.</p>
<p><img src="//s3.amazonaws.com/chd-data/data/support/items/641/media/livechatinc-1.png" alt="" width="500" border="1" data-file="___chdfid_11864___"></p>
<p>Specify emails where offline form and missed chat notifications will be sent. Insert your support email address here (e.g. go to Settings &gt; Mailboxes in Helprace to see the list of your addresses).</p>
<p><img src="//s3.amazonaws.com/chd-data/data/support/items/641/media/livechatinc-2.png" alt="" border="1" data-file="___chdfid_11865___"></p>
<p>Go to Chat Settings &gt; Archives Forwarding and specify an email for chat transcripts.</p>
<p><img src="//s3.amazonaws.com/chd-data/data/support/items/641/media/livechatinc-3.png" alt="" width="500" border="1" data-file="___chdfid_11867___"></p>]]></content:encoded>
    </item>
    <item>
      <title>Webhooks</title>
      <description><![CDATA[<p>Webhooks allow Helprace to call a script on your server when one or more events have happened. You can think of Webhooks as push notifications or event listeners. Webhooks send requests in JSON format.</p>
<p>Webhooks can be triggered when users, tickets, community topics or KB articles are created or updated.</p>
<p>Getting started</p>
<p>You can view, add, update, and remove webhooks via API. For convenience you can use our API docs page, which allows you to call API endpoints (e.g. Create Hook) without writing a single line of code.</p>
<p>Turn on API on the Settings &gt; INTEGRATIONS &gt; API page in your admin[_cuted_]</p>]]></description>
      <pubDate>Thu, 18 Oct 2018 09:30:36 +0000</pubDate>
      <link>https://support.helprace.com/i461-webhooks</link>
      <guid>https://support.helprace.com/i461-webhooks</guid>
      <author>Edward</author>
      <dc:creator>Edward</dc:creator>
      <content:encoded><![CDATA[<p>Webhooks allow Helprace to call a script on your server when one or more events have happened. You can think of Webhooks as push notifications or event listeners. Webhooks send requests in JSON format.</p>
<p>Webhooks can be triggered when users, tickets, community topics or KB articles are created or updated.</p>
<h2>Getting started</h2>
<p>You can view, add, update, and remove webhooks via API. For convenience you can use our API docs page, which allows you to call API endpoints (e.g. Create Hook) without writing a single line of code.</p>
<p>Turn on API on the Settings &gt; INTEGRATIONS &gt; API page in your admin panel.</p>
<p>Generate an API key on that page.</p>
<p>Go to the <a href="https://helprace.com/developers/api/#!/Webhooks/put_api_v1_webhooks">WebHooks &gt; Create Hook</a> page in API docs.</p>
<p>Login to API docs by providing your account name and separately your email with the API key in the following format:</p>
<pre><span style="background-color: #ffff00;">your@email.com</span>/api_key:<span style="background-color: #ffff00;">your_generated_api_key</span></pre>
<p>Click -&gt; button to login.</p>
<p>Click on BODY SAMPLE on the left and then click on the JSON sample to paste it into the request body.</p>
<p>Modify the code as you see fit. For instance you can specify a desired event (or an array of ["multiple", "events"]) or change the callback_url.</p>
<p>Go to the <a href="https://helprace.com/developers/api/#!/Webhooks/get_api_v1_webhooks_description">WebHooks &gt; Description</a> page to learn more about using Webhooks in Helprace.</p>
<blockquote>
<p><span style="color: #800000;"><span style="color: #000000;">Try the</span> <a href="https://webhook.site/" rel="nofollow">Webhook Tester</a><span style="color: #000000;">. It's a 3rd party site that allows you to test your webhook events without writing an actual webhook handler. You can copy a unique URL from that site and use it as a callback_url in your webhooks.</span></span></p></blockquote>]]></content:encoded>
    </item>
    <item>
      <title>Building Custom Apps</title>
      <description><![CDATA[<p>The Custom App pulls data in real time from your internal systems into the Helprace user sidebar. The sidebar appears on the right on ticket and user profile pages.</p>
<p>The example below shows a fragment of a ticket with a user sidebar on the right. The sidebar contains a sample "hugeCommerce" app, which pulled data from a shopping cart on this customer. </p>
<p></p>
<p>Two kinds of apps</p>
<p>There are two kinds of apps:</p>
<ol>
<li>Static App - can be setup in minutes, but has limited functionality. Useful for simple quick integrations.</li>
<li>Dynamic App - requires a bit of programming and unleashes full potential of integrating[_cuted_]</li></ol>]]></description>
      <pubDate>Thu, 25 Sep 2025 07:20:42 +0000</pubDate>
      <link>https://support.helprace.com/i437-building-custom-apps</link>
      <guid>https://support.helprace.com/i437-building-custom-apps</guid>
      <author>Edward</author>
      <dc:creator>Edward</dc:creator>
      <content:encoded><![CDATA[<p>The Custom App pulls data in real time from your internal systems into the Helprace user sidebar. The sidebar appears on the right on ticket and user profile pages.</p>
<p>The example below shows a fragment of a ticket with a user sidebar on the right. The sidebar contains a sample "hugeCommerce" app, which pulled data from a shopping cart on this customer. </p>
<p><img src="https://s3.amazonaws.com/chd-data/files/1/3546276501_0082fed6baf3fdda9dc29a240cb19e57_1452/app-sample.png" alt="" border="1" data-file="___chdfid_1452___"></p>
<h2>Two kinds of apps</h2>
<p>There are two kinds of apps:</p>
<ol>
<li>Static App - can be setup in minutes, but has limited functionality. Useful for simple quick integrations.</li>
<li>Dynamic App - requires a bit of programming and unleashes full potential of integrating your Helprace with your internal or 3rd party system.</li>
</ol>
<h3>Static App</h3>
<p>You can setup a Static App to add some basic HTML in the user sidebar. It will appear in every ticket and every user page in the admin panel.</p>
<p>Static App supports placeholders. They will be replaced by actual values, like customer email or ticket subject, when user sidebar is loaded. See the full placeholder list in the <a href="https://support.helprace.com/i124-helprace-email-placeholder-guide">placeholders reference</a>.</p>
<p>Here is an example of a Static App.</p>
<h4>Find customer on Facebook</h4>
<p><img src="https://s3.amazonaws.com/chd-data/files/1/822591119_8456b0dfdf96264e266df62f81d5be5a_1454/find-on-facebook.png" alt="" border="1" data-file="___chdfid_1454___"></p>
<p>App code looks like this:</p>
<pre class="language-markup"><code>&lt;a href="https://www.facebook.com/search/top/?q={$ticket.requester.email}" target="_blank"&gt;Find customer on Facebook&lt;/a&gt;</code></pre>
<p>When you click this link, it will take you to Facebook and search for any pages linked with the ticket requester's email address. If the search is successful, you'll see the customer's Facebook profile.</p>
<h4>Link to conversation in user portal</h4>
<pre class="language-markup"><code>&lt;a href="{$ticket.user_url}" target="_blank"&gt;{$ticket.user_url}&lt;/a&gt;</code></pre>
<h3>Dynamic App</h3>
<p>Helprace makes an HTTP POST request to the endpoint URL you've specified in the app settings when a ticket or user page is opened in the admin panel.</p>
<p>The POST body contains a JSON encoded details. If a ticket page has been opened, JSON will include ticket details:</p>
<pre class="language-json"><code>{
   "context":"ticket",
   "ticket":{
      "id":3687,
      ...
   }
}
</code></pre>
<p>If called from a user page, JSON will include user details. Note that the "context" also is different.</p>
<pre class="language-json"><code>{
   "context":"user",
   "user":{
      "id":31,
      ...
   }
}
</code></pre>
<p>By checking the context you can display (or not display) different data on ticket and user profile pages.</p>
<p>Helprace expects response with a valid JSON containing "data" and optional "header".</p>
<pre class="language-bash"><code>{"data":"Body","header":"App header (optional)"}</code></pre>
<p>By default the app title on the sidebar shows the app name you provided in the app settings. If "header" is included in the response, it will replace the app name in the app title. The header supports the same HTML formatting as the body, enabling you to show a quick summary even when app panel is collapsed.</p>
<p><img src="https://s3.amazonaws.com/chd-data/files/1/3473039450_ba4f72b5010e7e1f96a20053477bec26_1455/app-expanded.png" alt="" border="1" data-file="___chdfid_1455___"> <img src="https://s3.amazonaws.com/chd-data/files/1/1967306447_0e3e0613d4fb86043e730686c07227eb_1456/app-collapsed.png" alt="" border="1" data-file="___chdfid_1456___"></p>
<p>"data" should contain your HTML. It will be sanitized and inserted in the user sidebar. Check the <a href="https://helprace.com/docs/style-guide/">Style Guide</a> for a list of allowed tags and attributes.</p>
<p>Please make sure your JSON response is valid and properly escaped.</p>
<p>If the endpoint returns an empty response or an error, the app won't render in the sidebar (unless Debug Mode is On).</p>
<h4>Security</h4>
<p>Helprace generates a signature using the secret key you set in the app settings. The signature is included in the request headers as X-HELPRACE-SIGNATURE. To verify if the request came from Helprace, compute the SHA256 HMAC hash of the request body and compare it to the X-HELPRACE-SIGNATURE. If the computed signatures match, you can be sure the request was sent from Helprace. Otherwise, we recommend discarding the request. Recommended length of a secret is 40 characters.</p>
<p>This is how you can generate SHA256 HMAC hash in PHP:</p>
<pre class="language-php"><code>hash_hmac('sha256', $json_payload, secret);</code></pre>
<h4>Debug mode</h4>
<p>Turn on the "Debug Mode" option in the app settings to test your app. Debug mode allows you to call a non-HTTPS URL and app panel on the sidebar will render even if no response is received.</p>
<p><img src="https://s3.amazonaws.com/chd-data/files/1/1655486603_c6d1379108d4f3b3de68ffa6e96e7e20_1453/debugger.png" alt="" border="1" data-file="___chdfid_1453___"></p>
<p>Clicking "Open App Debugger" will open a debugger in a new tab, where you can test your app with a different endpoint URL or request body.</p>
<h2>Layout and design</h2>
<p>Helprace includes a bunch of CSS classes to give your app a nice look. The "style" attribute is also allowed, so you can use your custom inline styles too. Check the <a href="https://helprace.com/docs/style-guide/">Style Guide</a> for a full reference, formatting examples and a list of allowed tags and attributes.</p>]]></content:encoded>
    </item>
    <item>
      <title>Feedback Widget plugin &amp; SSO Integration for Wordpress</title>
      <description><![CDATA[<p>Our Feedback Widget Tab Plugin make integrating your WordPress blog or site with Helprace easier. You do not need to edit your WordPress templates to add a Feedback Widget to your site. Simply install the Plugin, adjust the tab design and you're good to go.</p>
<p>Enabling Single Sign On allows your Wordpress users to get logged in to your Helprace portal automatically when they login to your Wordpress site.</p>
<p>This step-by-step guide will help you with the installation and configuration process.</p>
<p>Installing the plugin</p>
<p>Automatic installation</p>
<p>Automatic installation is the easiest option as WordPress handles the file transfers itself and you don't[_cuted_]</p>]]></description>
      <pubDate>Mon, 01 Oct 2018 09:24:14 +0000</pubDate>
      <link>https://support.helprace.com/i348-feedback-widget-plugin-sso-integration-for-wordpress</link>
      <guid>https://support.helprace.com/i348-feedback-widget-plugin-sso-integration-for-wordpress</guid>
      <author>Edward</author>
      <dc:creator>Edward</dc:creator>
      <content:encoded><![CDATA[<p>Our Feedback Widget Tab Plugin make integrating your WordPress blog or site with Helprace easier. You do not need to edit your WordPress templates to add a Feedback Widget to your site. Simply install the Plugin, adjust the tab design and you're good to go.</p>
<p>Enabling Single Sign On allows your Wordpress users to get logged in to your Helprace portal automatically when they login to your Wordpress site.</p>
<p>This step-by-step guide will help you with the installation and configuration process.</p>
<div class="mce-toc">
<div style="display: none;"> </div>
<ul>
<li><a href="#mcetoc_1c5nl1dkg0" rel="nofollow">Installing the plugin</a>
<ul>
<li><a href="#mcetoc_1c5nl1dkg1" rel="nofollow">Automatic installation</a></li>
<li><a href="#mcetoc_1c5nl1dkg2" rel="nofollow">Manual installation</a></li>
</ul>
</li>
<li><a href="#mcetoc_1c5nl1dkg3" rel="nofollow">Configuring the feedback tab</a></li>
<li><a href="#mcetoc_1c5nl1dkg4" rel="nofollow">Setting Up Single Sign On (SSO)</a></li>
</ul>
</div>
<h2 id="mcetoc_1c5nl1dkg0">Installing the plugin</h2>
<h3 id="mcetoc_1c5nl1dkg1">Automatic installation</h3>
<p>Automatic installation is the easiest option as WordPress handles the file transfers itself and you don't need to leave your web browser. To do an automatic install of the Helprace Feedback Tab, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New.</p>
<p>In the search field type "Helprace Feedback Tab &amp; SSO plugin" and click Search Plugins. Once you've found our Helprace Feedback Tab plugin you can install it by simply clicking "Install Now". Activate the plugin and read on "Configuring the feedback tab" section below.</p>
<h3 id="mcetoc_1c5nl1dkg2">Manual installation</h3>
<ol>
<li>Download <a href="https://wordpress.org/plugins/helprace-feedback-tab-widget/" rel="nofollow">Helprace Feedback Tab &amp; SSO plugin</a> to your desktop</li>
<li>If downloaded as a zip archive, extract the Plugin folder to your desktop</li>
<li>Upload the plugin folder to the `wp-content/plugins` folder in your WordPress directory online</li>
<li>Activate the plugin through the 'Plugins' screen in WordPress</li>
<li>Enable and configure your feedback widget tab as described below</li>
</ol>
<h2 id="mcetoc_1c5nl1dkg3">Configuring the feedback tab</h2>
<ol>
<li>If you do not have a Helprace account yet, <a href="http://helprace.com/signup">sign up for a free trial here</a></li>
<li>Open your Wordpress admin panel and go to Helprace &gt; Feedback Tab in the main menu to configure the plugin</li>
<li>Enable the plugin and specify the subdomain of your Helprace account (please, no alias here)</li>
<li>Select a desired type of integration: 'Tab' to show a feedback tab on all site pages automatically, or 'Own Link' to call the feedback widget when user clicks your custom link or button</li>
<li>If you selected 'Tab' for integration type, you can customize its look &amp; feel and behavior: text on the tab, background and text color, etc.</li>
<li>If you selected 'Own Link', copy the sample code to a desired place in your Wordpress templates. Feel free to customize it as you like, you just need to preserve the JavaScript function call that opens the widget</li>
<li>Save the plugin settings</li>
</ol>
<h2 id="mcetoc_1c5nl1dkg4">Setting Up Single Sign On (SSO)</h2>
<ol>
<li>Open your Wordpress admin panel and go to Helprace &gt; <span style="font-weight: 400;">SSO Auth</span> in the main menu to configure the plugin</li>
<li><span style="font-weight: 400;">Check 'Single Sign-On (SSO)'. Click 'Save'</span></li>
<li><span style="font-weight: 400;">Specify your Helprace subdomain.</span></li>
<li><span style="font-weight: 400;">Go to your Helprace admin panel &gt; Settings &gt; SECURITY &gt; Authentication</span></li>
<li><span style="font-weight: 400;">Enable 'Single Sign-On (SSO)'</span></li>
<li><span style="font-weight: 400;">Copy the 'Key' over to Wordpress as 'Security Key'</span></li>
<li><span style="font-weight: 400;">Copy 'Remote Login URL' and 'Remote Logout URL' over from Wordpress to Helprace</span></li>
<li><span style="font-weight: 400;">Click 'Save Changes' in plugin SSO settings</span></li></ol>]]></content:encoded>
    </item>
    <item>
      <title>Adding Community &amp; Knowledge Base search field to your site</title>
      <description><![CDATA[<p>Users can run a search in your community and knowledge base right from your website.</p> <p>Just copy this HTML code to a desired place in your website templates and replace "http://acme.helprace.com" with the URL of your user portal:</p> <p>User can type their query to the search field and press Enter or click the "Search" button. This will open the search results page in your user portal.</p>]]></description>
      <pubDate>Tue, 05 Apr 2016 10:27:03 +0000</pubDate>
      <link>https://support.helprace.com/i302-adding-community-knowledge-base-search-field-to-your-site</link>
      <guid>https://support.helprace.com/i302-adding-community-knowledge-base-search-field-to-your-site</guid>
      <author>Edward</author>
      <dc:creator>Edward</dc:creator>
      <content:encoded><![CDATA[<p>Users can run a search in your community and knowledge base right from your website.</p>
<p>Just copy this HTML code to a desired place in your website templates and replace "http://acme.helprace.com" with the URL of your user portal:</p>
<pre class="language-markup">
<code>&lt;form action="http://acme.helprace.com/search" method="GET"&gt;
   &lt;input name="q" value=""&gt;
   &lt;input type="submit" value="Search"&gt;
&lt;/form&gt;
</code>
</pre>
<p>User can type their query to the search field and press Enter or click the "Search" button. This will open the search results page in your user portal.</p>]]></content:encoded>
    </item>
    <item>
      <title>X-Frame-Options issue with Single Sign-On in Feedback Widget</title>
      <description><![CDATA[<p>Normally, remote login URLs open in a pop-up window. After successful authorization the pop-up closes and the user is logged in to the user portal.</p>
<p>However, if all authorization options, except SSO, are disabled and Anonymous Access is not allowed, Helprace doesn’t show a login prompt when an unauthenticated user visits the portal. Instead, it redirects the user to the remote login URL in the same window. This is considered best behavior for a smooth user experience.</p>
<p>There is one exception to this. When you’re using the Feedback Widget and the following is true:</p>
<ul>
<li>Anonymous Access is disabled</li>
<li>Helprace Login is disabled</li>
<li>Social[_cuted_]</li></ul>]]></description>
      <pubDate>Thu, 07 Apr 2016 11:09:48 +0000</pubDate>
      <link>https://support.helprace.com/i298-x-frame-options-issue-with-single-sign-on-in-feedback-widget</link>
      <guid>https://support.helprace.com/i298-x-frame-options-issue-with-single-sign-on-in-feedback-widget</guid>
      <author>Edward</author>
      <dc:creator>Edward</dc:creator>
      <content:encoded><![CDATA[<p>Normally, remote login URLs open in a pop-up window. After successful authorization the pop-up closes and the user is logged in to the user portal.</p>
<p>However, if all authorization options, except SSO, are disabled and Anonymous Access is not allowed, Helprace doesn’t show a login prompt when an unauthenticated user visits the portal. Instead, it redirects the user to the remote login URL in the same window. This is considered best behavior for a smooth user experience.</p>
<p>There is one exception to this. When you’re using the Feedback Widget and the following is true:</p>
<ul>
<li>Anonymous Access is disabled</li>
<li>Helprace Login is disabled</li>
<li>Social Authentication is disabled</li>
<li>Single Sign-On is enabled</li>
<li>Your authentication provider returns at least one of these headers:
<ul>
<li>X-Frame-Options: SAMEORIGIN</li>
<li>X-Frame-Options: DENY</li>
</ul>
</li>
</ul>
<p>In this case, Helprace would normally have to redirect the user to the remote login URL once they launch the Feedback Widget. If your authentication provider blocks its login screen from opening in an iframe, users won't see the login screen. They'll most likely see a white screen within the widget. </p>
<p>In this case you need to force the remote login URL to open in a pop-up window. Once the user logs in, the pop-up is closed automatically and the user appears logged in in the Feedback Widget.</p>
<p>Please note that if you’re not using the Feedback Widget, it's recommended you keep this setting off, so that the user logs in without seeing any pop-ups.</p>
<p>If you have more than one login option enabled or Anonymous Access is allowed, this setting is irrelevant. It won’t change the behavior, as the remote login URL will be opened in a pop-up every time. That's why this setting is hidden in this case.</p>]]></content:encoded>
    </item>
    <item>
      <title>Introduction to Helprace REST API </title>
      <description><![CDATA[<p>The Helprace API is a REST (REpresentational State Transfer) API. Helprace API allows you to integrate your website or application using RESTful calls, such as retrieving, creating, modifying or deleting data from your help desk.</p> <p>To start using the API you need to turn the API.</p> <p>Go to the  Settings &gt; INTEGRATIONS &gt; API page and check Turn API on.</p> <p>Check the Helprace API Documentation page for a complete API reference. It also allows you to try different API requests without writing a single line of code.</p>]]></description>
      <pubDate>Thu, 27 Dec 2018 09:37:53 +0000</pubDate>
      <link>https://support.helprace.com/i287-introduction-to-helprace-rest-api</link>
      <guid>https://support.helprace.com/i287-introduction-to-helprace-rest-api</guid>
      <author>Edward</author>
      <dc:creator>Edward</dc:creator>
      <content:encoded><![CDATA[<p>The Helprace API is a REST (REpresentational State Transfer) API. Helprace API allows you to integrate your website or application using RESTful calls, such as retrieving, creating, modifying or deleting data from your help desk.</p>
<p>To start using the API you need to turn the API.</p>
<p>Go to the <i class="fa fa-cog"> </i>Settings &gt; INTEGRATIONS &gt; API page and check Turn API on.</p>
<p>Check the <a href="https://helprace.com/developers/api/">Helprace API Documentation</a> page for a complete API reference. It also allows you to try different API requests without writing a single line of code.</p>]]></content:encoded>
    </item>
    <item>
      <title>Setting up Single Sign-On (SSO)</title>
      <description><![CDATA[<p>With the help of Single Sign-On your users can authenticate to your systems and get logged in to your Helprace portal automatically.</p>
<p>Single Sign-On can be used in conjunction with other authentications mechanisms, such as social authentication (via Facebook, Twitter, and Google) and native Helprace login.</p>
<p>Helprace Single Sign-On is based on JWT (JSON Web Token).</p>
<p>JWT code examples</p>
<p>JWT implementation is straight forward and there are plenty of libraries for any stack. We provide code examples here:</p>
<p>https://github.com/Helprace/helprace-jwt-sso-examples</p>
<p>If you implement JWT in any other stack, we would be happy to feature it there as well. Please comment on this article[_cuted_]</p>]]></description>
      <pubDate>Tue, 08 Jan 2019 11:59:52 +0000</pubDate>
      <link>https://support.helprace.com/i4-setting-up-single-sign-on-sso</link>
      <guid>https://support.helprace.com/i4-setting-up-single-sign-on-sso</guid>
      <author>Edward</author>
      <dc:creator>Edward</dc:creator>
      <content:encoded><![CDATA[<p>With the help of Single Sign-On your users can authenticate to your systems and get logged in to your Helprace portal automatically.</p>
<p>Single Sign-On can be used in conjunction with other authentications mechanisms, such as social authentication (via Facebook, Twitter, and Google) and native Helprace login.</p>
<p>Helprace Single Sign-On is based on JWT (JSON Web Token).</p>
<div class="mce-toc">
<div style="display: none;"> </div>
<ul>
<li><a href="#mcetoc_1ci9ef1cr0" rel="nofollow">JWT code examples</a></li>
<li><a href="#mcetoc_1ci9ef1cr1" rel="nofollow">The Single Sign-On authentication process</a></li>
<li><a href="#mcetoc_1ci9ef1cr2" rel="nofollow">Configuring your JWT implementation</a></li>
<li><a href="#mcetoc_1ci9ef1cr3" rel="nofollow">Enabling JWT Single Sign-On in your Helprace</a></li>
<li><a href="#mcetoc_1ci9ef1cr4" rel="nofollow">The return_to URL for login</a>
<ul>
<li><a href="#mcetoc_1ci9ef1cr5" rel="nofollow">User lands on a Helprace portal page</a></li>
<li><a href="#mcetoc_1ci9ef1cr6" rel="nofollow">User lands on a page of your website or application</a></li>
<li><a href="#mcetoc_1ci9im8fqm" rel="nofollow">Redirection</a></li>
<li><a href="#mcetoc_1ci9im8fqn" rel="nofollow">Silent authentication</a>
<ul>
<li><a href="#mcetoc_1ci9im8fqo" rel="nofollow">Iframe</a></li>
<li><a href="#mcetoc_1ci9im8fqp" rel="nofollow">Pixel</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#mcetoc_1ci9ef1cr7" rel="nofollow">The return_to URL for logout</a>
<ul>
<li><a href="#mcetoc_1ci9ef1cr8" rel="nofollow">User clicks Logout while being on a Helprace portal page</a></li>
<li><a href="#mcetoc_1ci9ef1crb" rel="nofollow">User clicks Logout in your website or application</a></li>
</ul>
</li>
<li><a href="#mcetoc_1ci9fba2dl" rel="nofollow">SSO log and troubleshooting</a></li>
<li><a href="#mcetoc_1ci9ef1crf" rel="nofollow">Preventing repetitive authorization requests</a></li>
<li><a href="#mcetoc_1ci9ef1crg" rel="nofollow">Authentication settings</a>
<ul>
<li><a href="#mcetoc_1ci9ef1csh" rel="nofollow">SSO for all agents and users</a></li>
<li><a href="#mcetoc_1ci9ef1csi" rel="nofollow">SSO for customers and native Helprace logins for agents</a></li>
<li><a href="#mcetoc_1ci9ef1csj" rel="nofollow">SSO for agents and native Helprace login or social authentication for users</a></li>
<li><a href="#mcetoc_1ci9ef1csk" rel="nofollow">Manual user control</a></li>
</ul>
</li>
</ul>
</div>
<h2 id="mcetoc_1ci9ef1cr0">JWT code examples</h2>
<p>JWT implementation is straight forward and there are plenty of libraries for any stack. We provide code examples here:</p>
<p><a href="https://github.com/Helprace/helprace-jwt-sso-examples" rel="nofollow">https://github.com/Helprace/helprace-jwt-sso-examples</a></p>
<p>If you implement JWT in any other stack, we would be happy to feature it there as well. Please comment on this article to let us know what you have implemented.</p>
<h2 id="mcetoc_1ci9ef1cr1">The Single Sign-On authentication process</h2>
<p>Once you enable Single Sign-On, a new button with a lock icon appears on the login screen.</p>
<p><img src="//s3.amazonaws.com/chd-data/data/support/items/4/media/sso-button.png" alt="" border="1" data-file="___chdfid_2789___"></p>
<blockquote>
<p>If you disable the native Helprace login, social login options and anonymous access (found on Settings &gt; SECURITY &gt; Authentication page), users will be redirected to the SSO remote login URL and logged in immediately when they come to your Helprace portal.</p>
</blockquote>
<p>When users clicks this button, they are routed to a remote login URL, which is a login page in your system (external to your Helprace portal).</p>
<p>Here are the Single Sign-On (SSO) authentication process instructions (when <a href="#sso-all" rel="nofollow">SSO is the only authentication option</a>):</p>
<ol>
<li>An unauthenticated user navigates to your Helprace portal page (e.g. <i>https://mycompany.helprace.com</i>).</li>
<li>The user is redirected to the Single Sign-On script in your system.</li>
<li>A script on your side authenticates the customer using your proprietary login process.</li>
<li>Your script builds a JWT request that contains the relevant user data.</li>
<li>You redirect the customer to the Helprace endpoint at <i>https://auth.helprace.com/jwt/mycompany?jwt=</i> with the JWT payload.</li>
<li>Helprace decodes the user details from the JWT payload and then grants the user a session.</li>
</ol>
<p>As you can see, this process relies on browser redirects and passing signed messages using JWT. The redirects happen entirely in the browser and there is no direct connection between Helprace and your systems, so you can keep your authentication scripts safely behind your corporate firewall.</p>
<h2 id="mcetoc_1ci9ef1cr2"><a id="configuring-jwt" name="configuring-jwt"></a>Configuring your JWT implementation</h2>
<p><span style="color: #000000;">To perform SSO for a user, you need to send several required attributes to Helprace as a base64-encoded hash. In addition to the required attributes you can specify additional user details. These details will be updated in the Helprace user profile.</span></p>
<p><span style="color: #000000;">Specify HS256 as the encryption algorithm in the header of your JWT payload (it is often used by default).</span></p>
<pre><span style="color: #000000;">{<br>  "typ":"JWT",<br>  "alg":"HS256"<br>}</span>
</pre>
<p><span style="color: #000000;">Redirect the user with the JWT payload to the following Helprace endpoint:</span></p>
<pre><span style="color: #000000;">https://auth.helprace.com/jwt/acme?jwt={payload}</span>
</pre>
<p><span style="color: #000000;">Note to use the 'https' protocol and replace 'acme' with your Helprace subdomain (domain alias is not allowed here).</span></p>
<p>Here is the list of supported attributes.</p>
<table>
<thead>
<tr>
<td>Attribute</td>
<td>Required</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>jti</td>
<td style="text-align: center;">✔</td>
<td>JSON Web Token ID. A unique token ID. Used to prevent token replay attacks.</td>
</tr>
<tr>
<td>iat</td>
<td style="text-align: center;">✔</td>
<td>Issued At. Identifies the time at which the token was issued. Used to determine the age of the JWT to ensure that a given token used shortly after it's been issued. This value must be a number of seconds passed since the beginning of the UNIX epoch. Helprace allows up to two minutes clock skew, so make sure to configure NNTP or similar on your servers.</td>
</tr>
<tr>
<td>email</td>
<td style="text-align: center;">✔</td>
<td>Email of the user being signed in. Could be any email assigned to the user, primary or not. Used to uniquely identify user in Helprace.</td>
</tr>
<tr>
<td>external_id</td>
<td style="text-align: center;"> </td>
<td>If user email is a subject to change and your users are uniquely identified by a different ID, send it as the external ID.<b> external_id must be unique for each user.</b></td>
</tr>
<tr>
<td>name</td>
<td style="text-align: center;"> </td>
<td>Full name of the user.</td>
</tr>
<tr>
<td>organization</td>
<td style="text-align: center;"> </td>
<td>The name of the user's organization. </td>
</tr>
<tr>
<td>organization_url</td>
<td style="text-align: center;"> </td>
<td>The user's organization URL.</td>
</tr>
<tr>
<td>job_title</td>
<td style="text-align: center;"> </td>
<td>User's job title.</td>
</tr>
<tr>
<td>avatar</td>
<td style="text-align: center;"> </td>
<td>URL of the user's profile photo. Must be accessible from the internet.</td>
</tr>
<tr>
<td>role</td>
<td style="text-align: center;"> </td>
<td>The user's role. Can be one of the following: "user", "agent", "admin", "owner". Default is "user". If the user's role is different than it is in your Helprace account, the role is changed in your Helprace account.</td>
</tr>
</tbody>
</table>
<blockquote>
<p>If a user's email has been changed and they log in via SSO with the same external_id, the new email will be added to the user's account. The previous email will also be preserved.</p>
</blockquote>
<h2 id="mcetoc_1ci9ef1cr3">Enabling JWT Single Sign-On in your Helprace</h2>
<p>In order to start using JWT Single Sign-On you need to enable it in your Helprace admin panel.</p>
<ol>
<li>Go the Settings &gt; SECURITY &gt; Authentication page.</li>
<li>Check the "Single Sign-On (SSO)" option.</li>
<li>Enter the Remote Login URL. This is where your user will be redirected when they attempt to login to your Helprace via SSO.</li>
<li>Enter the Remote Logout URL. This is where Helprace will return your users to after they log out.</li>
<li>Copy the Key to your SSO script.</li>
</ol>
<h2 id="mcetoc_1ci9ef1cr4">The return_to URL for login</h2>
<p>Typically, users would expect to return to a page they were on previously while logged in via Single Sign-On. There are two possible cases to this depending on where they start the session:</p>
<h3 id="mcetoc_1ci9ef1cr5">User lands on a Helprace portal page</h3>
<p>In this case users are redirected to your Single Sign-On script (set in Remote Login URL) and then back to Helprace. Helprace returns users to the page they were on before logging in. This happens automatically and doesn't require any setup on your part. If a user creates a knowledge base article and clicks "publish" while being unauthenticated, the post will be published immediately after the user gets back on Helprace after successful SSO authentication.</p>
<h3 id="mcetoc_1ci9ef1cr6">User lands on a page of your website or application</h3>
<p>You can authenticate a user through redirecting them to Helprace and back to your app. Another options is to make use of so-called "Silent Authentication" by passing the URL with JWT payload to the <code>src</code> parameter of <code>&lt;iframe&gt;</code> or <code>&lt;img&gt;</code> tag and thus authenticating the user on the background.</p>
<h3 id="mcetoc_1ci9im8fqm">Redirection</h3>
<p>Your SSO script redirects users to your Helprace portal with JWT payload and return_to URL, which is normally the page within your website/application that users were on before they have been redirected to Helprace. Helprace will redirect users to the return_to URL after successful authentication.</p>
<p>This can be enabled by adding return_to GET parameter to the URL with the JWT payload:</p>
<pre><span style="color: #000000;">https://auth.helprace.com/jwt/acme?jwt={payload}<span style="background-color: #ffff00;">&amp;</span><span style="background-color: #ffff99;">return_to=https://acme.com/page-to-show-after-login</span></span>
</pre>
<p>Where "https://acme.com/page-to-show-after-login" is the URL you would like to return the user to.</p>
<h3 id="mcetoc_1ci9im8fqn">Silent authentication</h3>
<h4 id="mcetoc_1ci9im8fqo">Iframe</h4>
<p>Display a 1×1px <code>&lt;iframe&gt;</code> on your SSO script page. Use the same URL with payload in "src" parameter of the image. There is no need to provide return_to in this case.</p>
<pre>&lt;iframe src="https://auth.helprace.com/jwt/acme?jwt={payload}" width="1" height="1" style="border: none;"&gt;&lt;/iframe&gt;</pre>
<h4 id="mcetoc_1ci9im8fqp">Pixel</h4>
<p>Display a 1×1px <code>&lt;image&gt;</code> on your SSO script page. Use the same URL with payload in "src" parameter of the image. There is no need to provide return_to in this case.</p>
<pre>&lt;img src="https://auth.helprace.com/jwt/acme?jwt={payload}" width="1" height="1" /&gt;
</pre>
<blockquote>
<p><span style="color: #800000;">Authentication via an image is supported in Firefox, Safari and Chrome browsers, but not supported in IE and EDGE.</span></p>
</blockquote>
<h2 id="mcetoc_1ci9ef1cr7">The return_to URL for logout</h2>
<p>Just like with the login option, users would expect to land on the same page they were on before logging out. It might also be a specific page set by you. There are four possible cases to this depending on where user logs out first and if the Remote Logout URL setting is present:</p>
<h3 id="mcetoc_1ci9ef1cr8">User clicks Logout while being on a Helprace portal page</h3>
<h5 id="mcetoc_1ci9ef1cr9">If Remote Logout URL is set</h5>
<p>The user will be redirected to that URL after logging out from Helprace. It will also send a return_to parameter with the URL of the page the user were on before they clicked Logout:</p>
<pre>https://acme.com/logout<span style="background-color: #ffff99;">?return_to=https://acme.helprace.com/i4-some-kb-article-for-example</span>
</pre>
<p>This allows you to configure your website or application to redirect the user back to that Helprace page.</p>
<h5 id="mcetoc_1ci9ef1cra">If Remote Logout URL is NOT set</h5>
<p>The user will be logged out from Helprace and stay on the Helprace page he were on before clicking Logout. </p>
<h3 id="mcetoc_1ci9ef1crb">User clicks Logout in your website or application</h3>
<p>To log user out from Helprace as well, your website or application needs to redirect the user to the Helprace logout page:</p>
<pre>https://acme.helprace.com/auth/logout
</pre>
<p>You can tell Helprace to redirect user back to your site or application after it logs him out. For that you need to pass return_to URL to Helprace:</p>
<pre>https://acme.helprace.com/auth/logout<span style="background-color: #ffff99;">?return_to=https://acme.com/page-to-show-after-login</span>
</pre>
<p>What happens next depends on the Remote Logout URL setting.</p>
<h5 id="mcetoc_1ci9ef1crc">If Remote Logout URL is set</h5>
<p>After logging the user out, Helprace will redirect the user to the Remote Logout URL and pass your return_to URL as a parameter. E.g.:</p>
<pre>https://acme.com/logout<span style="background-color: #ffff99;">?return_to=https://acme.com/page-to-show-after-login</span>
</pre>
<p>Your website or application needs to redirect the user to the return_to URL that it receives from Helprace.</p>
<h5 id="mcetoc_1ci9ef1crd">If Remote Logout URL is NOT set</h5>
<p>After logging the user out, Helprace will redirect the user to the return_to URL. E.g.:</p>
<pre>https://acme.com/some_page</pre>
<h2 id="mcetoc_1ci9fba2dl">SSO log and troubleshooting</h2>
<p>SSO requests and server responses are displayed on the Settings &gt; LOGS &gt; Single Sign-On (SSO) Log page</p>
<h2 id="mcetoc_1ci9ef1crf">Preventing repetitive authorization requests</h2>
<p>When implementing SSO on your end, please make sure to prevent unnecessary repetitive authorization requests to Helprace.</p>
<p>For example, when you redirect user with JWT payload to Helprace and they are successfully authenticated, you should keep a record of this in your app. Check that record next time before sending user to Helprace for authentication. If the record says that the user is already logged in, do not redirect them to Helprace.</p>
<p>This record should be reset when user navigates to the Remote Logout URL page.</p>
<h2 id="mcetoc_1ci9ef1crg">Authentication settings</h2>
<p>You can find multiple authentication options on the Settings &gt; SECURITY &gt; Authentication page. Different combinations of these settings allow you to create your own custom login setup.</p>
<h3 id="mcetoc_1ci9ef1csh"><a id="sso-all"></a>SSO for all agents and users</h3>
<p>Disable all options, with the exception of "Single Sign-On (SSO)". When an unauthenticated user or agent opens your Helprace page they will be immediately logged in via SSO.</p>
<p>By leaving "Anonymous Access" turned on, users and agents would need to click the Login button to authenticate. However, they can browse the user portal anonymously without logging in.</p>
<h3 id="mcetoc_1ci9ef1csi">SSO for customers and native Helprace logins for agents</h3>
<p>Same settings as with the previous scenario. Agents can login via direct login URL with their native Helprace username and password.</p>
<pre>http://account.helprace.com/backup-login</pre>
<p>"account" must be replaced with your account name.</p>
<h3 id="mcetoc_1ci9ef1csj">SSO for agents and native Helprace login or social authentication for users</h3>
<p>Turn on "Single Sign-On (SSO)" option and at least one of the following two options: "Helprace Login", "Social authentication".</p>
<p>"Anonymous Access" could be turned on or off according to your preferences.</p>
<p>Your customers can login using their Helprace passwords or via social login.</p>
<h3 id="mcetoc_1ci9ef1csk">Manual user control</h3>
<p>Disable "Allow new users registration", "Social Authentication" and "Single Sign-On (SSO)" options. Invite or import users with desired permissions manually from the admin panel "People" page.</p>
<p>You may want to disable "Anonymous Access" which blocks your user portal to users you didn't invite beforehand.</p>]]></content:encoded>
    </item>
    <item>
      <title>Setting up Google Analytics to monitor your User Portal</title>
      <description><![CDATA[<p>To find the tracking code or your property ID in your Google Analytics account:</p>
<ol>
<li>Sign in to your Analytics account, and go to the admin page.</li>
<li>Select an account from the drop-down in the Account column.</li>
<li>Select a property from the drop-down in the Property column.</li>
<li>Click Tracking Info. The tracking ID is a string like UA-12345678-1. The first set of numbers (12345678, in the example) refers to your account number, and the second set (01, in the example) refers to the specific property number associated with the account. The tracking ID is in large font on the Tracking Info page.</li>
<li>Copy[_cuted_]</li></ol>]]></description>
      <pubDate>Tue, 05 Apr 2016 10:29:18 +0000</pubDate>
      <link>https://support.helprace.com/i77-setting-up-google-analytics-to-monitor-your-user-portal</link>
      <guid>https://support.helprace.com/i77-setting-up-google-analytics-to-monitor-your-user-portal</guid>
      <author>Edward</author>
      <dc:creator>Edward</dc:creator>
      <content:encoded><![CDATA[<p>To find the tracking code or your property ID in your Google Analytics account:</p>
<ol>
<li>Sign in to your Analytics account, and go to the admin page.</li>
<li>Select an account from the drop-down in the Account column.</li>
<li>Select a property from the drop-down in the Property column.
<br>
<br>
<img src="//s3.amazonaws.com/chd-data/data/support/items/77/media/google-analytics.png" alt="" border="1" data-file="___chdfid_2068___"></li>
<li>Click Tracking Info.
<br>
<br>
<img src="//s3.amazonaws.com/chd-data/data/support/items/77/media/google-analytics-tracking-code.png" alt="" border="1" data-file="___chdfid_2069___">
<br>
<br>
The tracking ID is a string like UA-12345678-1. The first set of numbers (12345678, in the example) refers to your account number, and the second set (01, in the example) refers to the specific property number associated with the account. The tracking ID is in large font on the Tracking Info page.</li>
<li>Copy your tracking ID to the <b>Settings</b> &gt; <b>Google Analytics</b> page in Helprace Admin Panel and turn on the "Enable Google Analytics" option.
<br>
<br>
<img src="//s3.amazonaws.com/chd-data/data/support/items/77/media/google-analytics-helprace.png" alt="" border="1" data-file="___chdfid_2070___"></li>
<li>Click Save.</li></ol>]]></content:encoded>
    </item>
  </channel>
</rss>
