<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>zendesk Archives | ZappySys Blog</title>
	<atom:link href="https://zappysys.com/blog/tag/zendesk/feed/" rel="self" type="application/rss+xml" />
	<link>https://zappysys.com/blog/tag/zendesk/</link>
	<description>SSIS / ODBC Drivers / API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more</description>
	<lastBuildDate>Wed, 11 Mar 2026 00:31:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.4</generator>

<image>
	<url>https://zappysys.com/blog/wp-content/uploads/2023/01/cropped-zappysys-symbol-large-32x32.png</url>
	<title>zendesk Archives | ZappySys Blog</title>
	<link>https://zappysys.com/blog/tag/zendesk/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to configure Zendesk OAuth Application and Connection for REST API</title>
		<link>https://zappysys.com/blog/configure-zendesk-oauth-application-for-rest-api-call/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Tue, 19 Dec 2017 16:44:40 +0000</pubDate>
				<category><![CDATA[REST API Integration]]></category>
		<category><![CDATA[SSIS JSON Source (File/REST)]]></category>
		<category><![CDATA[SSIS PowerPack]]></category>
		<category><![CDATA[SSIS REST API Task]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[oauth2]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[ssis json source]]></category>
		<category><![CDATA[zendesk]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=2384</guid>

					<description><![CDATA[<p>Introduction To consume Zendesk data using the REST API, you can use different methods. Now, let&#8217;s see how to create an OAuth Application so you don&#8217;t have to rely on a static Token or a UserID/Password to access data. The OAuth method is more secure and recommended over other methods, so whenever possible, use it. [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/configure-zendesk-oauth-application-for-rest-api-call/">How to configure Zendesk OAuth Application and Connection for REST API</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<div class="su-note"  style="border-color:#e5de9d;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#FFF8B7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><strong>UPDATE:</strong> ZappySys has released a brand new <a href="https://zappysys.com/api/integration-hub/zendesk-connector/">API Connector for Zendesk Online</a>, which makes it much simpler to <strong>Read/Write Zendesk Data in SSIS</strong> compared to the steps listed in this article. You can still use the steps from this article, but if you are new to APIs or want to avoid the learning curve, use a newer approach.</p>
<p><span style="box-sizing: border-box; margin: 0px; padding: 0px;">Please visit <a href="https://zappysys.com/api/integration-hub/" target="_blank" rel="noopener">this page to see all</a> pre-configured, ready-to-use API connectors<span style="box-sizing: border-box; margin: 0px; padding: 0px;"> you can use in <a href="https://zappysys.com/products/ssis-powerpack/ssis-api-source/" target="_blank" rel="noopener">SSIS API Source</a>/<a href="https://zappysys.com/products/ssis-powerpack/ssis-api-destination/" target="_blank" rel="noopener">SSIS API Destination</a> or the <a href="https://zappysys.com/products/odbc-powerpack/odbc-api-driver/" target="_blank" rel="noopener">API ODBC Driver</a> (for non-SSIS Apps such as Excel, Power BI, and </span>Informatica).</span></p>
</div></div>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/zendesk-api-integration.png"><img decoding="async" class=" wp-image-1628 alignleft" src="https://zappysys.com/blog/wp-content/uploads/2015/10/zendesk-api-integration.png" alt="" width="90" height="90" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/zendesk-api-integration.png 200w, https://zappysys.com/blog/wp-content/uploads/2015/10/zendesk-api-integration-150x150.png 150w" sizes="(max-width: 90px) 100vw, 90px" /></a>To consume Zendesk data using the REST API, you can use <a href="https://zappysys.com/blog/tag/zendesk/" target="_blank" rel="noopener">different methods</a>. Now, let&#8217;s see how to create an OAuth Application so you don&#8217;t have to rely on a static Token or a UserID/Password to access data.</p>
<p>The OAuth method is more secure and recommended over other methods, so whenever possible, use it.</p>
<h2></h2>
<h2>Create Zendesk OAuth Application</h2>
<p>To create an OAuth App for Zendesk, perform the following steps.</p>
<ol>
<li>Log in to your Zendesk Portal. And go tothe  following URL (This step assumes you have admin rights to createan  OAuth App)<br />
<pre class="crayon-plain-tag">https://zappysys.zendesk.com/agent/admin/api/oauth_clients</pre>
<div id="attachment_2385" style="width: 878px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2017/12/create-configure-zendesk-oauth-application.png"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-2385" class="size-full wp-image-2385" src="https://zappysys.com/blog/wp-content/uploads/2017/12/create-configure-zendesk-oauth-application.png" alt="How to create Zendesk OAuth Application for REST API Access in SSIS" width="868" height="384" srcset="https://zappysys.com/blog/wp-content/uploads/2017/12/create-configure-zendesk-oauth-application.png 868w, https://zappysys.com/blog/wp-content/uploads/2017/12/create-configure-zendesk-oauth-application-300x133.png 300w, https://zappysys.com/blog/wp-content/uploads/2017/12/create-configure-zendesk-oauth-application-768x340.png 768w" sizes="(max-width: 868px) 100vw, 868px" /></a><p id="caption-attachment-2385" class="wp-caption-text">How to create a Zendesk OAuth Application for REST API Access</p></div></li>
<li>After clicking on the plus sign and entering app information (e.g., Display name, Unique ID, also known as ClientId or AppId )
<div id="attachment_2386" style="width: 1318px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2017/12/zendesk-create-oauth-application-for-rest-api-access.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2386" class="size-full wp-image-2386" src="https://zappysys.com/blog/wp-content/uploads/2017/12/zendesk-create-oauth-application-for-rest-api-access.png" alt="Configure Zendesk OAuth App" width="1308" height="926" srcset="https://zappysys.com/blog/wp-content/uploads/2017/12/zendesk-create-oauth-application-for-rest-api-access.png 1308w, https://zappysys.com/blog/wp-content/uploads/2017/12/zendesk-create-oauth-application-for-rest-api-access-300x212.png 300w, https://zappysys.com/blog/wp-content/uploads/2017/12/zendesk-create-oauth-application-for-rest-api-access-768x544.png 768w, https://zappysys.com/blog/wp-content/uploads/2017/12/zendesk-create-oauth-application-for-rest-api-access-1024x725.png 1024w" sizes="(max-width: 1308px) 100vw, 1308px" /></a><p id="caption-attachment-2386" class="wp-caption-text">Configure Zendesk OAuth App</p></div></li>
<li>All the way at the bottom of that page, you will see <strong>Secret (i.e.</strong>,<strong> Client Secret)</strong>. Save that along with a unique identifier for later use.</li>
<li>That&#8217;s it. Now you can start using the Zendesk OAuth App to access the REST API</li>
</ol>
<p>Understanding Scopes</p>
<p>In the next section, you will learn how to configure an OAuth connection. During that, you will need to specify scopes (Token Permissions you want to grant).</p>
<p>The syntax to define the scope is as follows. Scope can be <strong>read-only</strong>, <strong>write-only,</strong> or read-write. The resource is an optional part. If you omit the scope, it will be applied to all.</p><pre class="crayon-plain-tag">resource:scope</pre><p>
<p class="p">You can use the following resource scope for the following resources:</p>
<div class="p">
<ul id="topic_gql_kbd_gt__ul_idz_gcd_gt" class="ul">
<li class="li">tickets</li>
<li class="li">users</li>
<li class="li">auditlogs (read only)</li>
<li class="li">organizations</li>
<li class="li">hc</li>
<li class="li">apps</li>
<li class="li">triggers</li>
<li class="li">automations</li>
<li class="li">targets</li>
</ul>
<p><strong>Examples of scopes for Zendesk Tickets APIs</strong></p>
</div>
<div class="p">
<pre class="crayon-plain-tag">read
write
read write
users:read
users:read users:write
users:read users:write organizations:write</pre>
</div>
<p><strong>Examples of scopes for Zendesk Chat APIs</strong></p><pre class="crayon-plain-tag">read
chat</pre><p>
<h2>Calling Zendesk REST API using SSIS PowerPack OAuth Connection</h2>
<p>Here is how you can use Zerdesk OAuth to access the API using the SSIS PowerPack <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">JSON / REST Source</a></p>
<ol>
<li>First, drag the <strong>ZS JSON Source</strong> from the SSIS Toolbox into the Data Flow designer</li>
<li>Configure JSON Source as below. Make sure you update the URL to your domain.<br />
URL for Zendesk Tickets API<br />
<pre class="crayon-plain-tag">https://{YOUR-DOMAIN}.zendesk.com/api/v2/tickets</pre>
URL for Zendesk Chat API<br />
<pre class="crayon-plain-tag">https://{YOUR-DOMAIN}.zopim.com/api/v2/chats</pre>
</li>
<li><strong>Configure the OAuth Connection</strong> As below for the <strong>Zendesk Ticket API</strong>. Scopes differ for the Ticket and Chat APIs; please enter the appropriate ones.
<div id="attachment_2387" style="width: 685px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2017/12/ssis-oauth-zendesk-connection-1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2387" class="size-full wp-image-2387" src="https://zappysys.com/blog/wp-content/uploads/2017/12/ssis-oauth-zendesk-connection-1.png" alt="Configure SSIS OAuth connection for Zendesk API Access" width="675" height="615" srcset="https://zappysys.com/blog/wp-content/uploads/2017/12/ssis-oauth-zendesk-connection-1.png 675w, https://zappysys.com/blog/wp-content/uploads/2017/12/ssis-oauth-zendesk-connection-1-300x273.png 300w" sizes="(max-width: 675px) 100vw, 675px" /></a><p id="caption-attachment-2387" class="wp-caption-text">Configure SSIS OAuth connection for Zendesk API Access</p></div>
<div id="attachment_2388" style="width: 679px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2017/12/ssis-oauth-zendesk-connection-2.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2388" class="size-full wp-image-2388" src="https://zappysys.com/blog/wp-content/uploads/2017/12/ssis-oauth-zendesk-connection-2.png" alt="Configure OAuth Redirect URL for Zendesk" width="669" height="556" srcset="https://zappysys.com/blog/wp-content/uploads/2017/12/ssis-oauth-zendesk-connection-2.png 669w, https://zappysys.com/blog/wp-content/uploads/2017/12/ssis-oauth-zendesk-connection-2-300x249.png 300w" sizes="(max-width: 669px) 100vw, 669px" /></a><p id="caption-attachment-2388" class="wp-caption-text">Configure OAuth Redirect URL and Content Type</p></div></li>
<li><strong>Configure the OAuth Connection</strong> As below for the <strong>Zendesk Chat API</strong>. Scopes differ for the Ticket and Chat APIs; please enter the appropriate ones.
<div id="attachment_9134" style="width: 789px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9134" class="size-full wp-image-9134" src="https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-1.png" alt="Zendesk Chat OAuth Settings - General Tab" width="779" height="654" srcset="https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-1.png 779w, https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-1-300x252.png 300w, https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-1-768x645.png 768w" sizes="(max-width: 779px) 100vw, 779px" /></a><p id="caption-attachment-9134" class="wp-caption-text">Zendesk Chat OAuth Settings &#8211; General Tab</p></div>
<div id="attachment_9133" style="width: 790px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-2.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9133" class="size-full wp-image-9133" src="https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-2.png" alt="Zendesk Chat OAuth Settings - Advanced Tab" width="780" height="654" srcset="https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-2.png 780w, https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-2-300x252.png 300w, https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-2-768x644.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></a><p id="caption-attachment-9133" class="wp-caption-text">Zendesk Chat OAuth Settings &#8211; Advanced Tab</p></div>
<div id="attachment_9132" style="width: 789px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-3.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9132" class="size-full wp-image-9132" src="https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-3.png" alt="Zendesk Chat OAuth Settings - OAuth2 Grant Options Tab" width="779" height="654" srcset="https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-3.png 779w, https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-3-300x252.png 300w, https://zappysys.com/blog/wp-content/uploads/2017/12/Zendesk-Chat-OAuth-3-768x645.png 768w" sizes="(max-width: 779px) 100vw, 779px" /></a><p id="caption-attachment-9132" class="wp-caption-text">Zendesk Chat OAuth Settings &#8211; OAuth2 Grant Options Tab</p></div></li>
<li>After you set the necessary parameters, click <strong>Generate Token</strong> (Login using your account with the required permission needed to access data)<div class="su-note"  style="border-color:#e5de9d;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#fff8b7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;">As of now, Zendesk doesn&#8217;t support Refresh Token. So once you click Generate Token, it will only create an Access Token (which doesn&#8217;t expire until you revoke it explicitly). The Refresh Token will be blank, as expected. </div></div><strong>OAuth 2.0 Flow (Google API Example)</strong>
<div id="attachment_6855" style="width: 930px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2016/04/ssis-oauth-connection-manager-generate-access-token.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6855" class="size-full wp-image-6855" src="https://zappysys.com/blog/wp-content/uploads/2016/04/ssis-oauth-connection-manager-generate-access-token.png" alt="Connect to Google API using OAuth 2.0 (Youtube API Example)" width="920" height="1032" srcset="https://zappysys.com/blog/wp-content/uploads/2016/04/ssis-oauth-connection-manager-generate-access-token.png 920w, https://zappysys.com/blog/wp-content/uploads/2016/04/ssis-oauth-connection-manager-generate-access-token-267x300.png 267w, https://zappysys.com/blog/wp-content/uploads/2016/04/ssis-oauth-connection-manager-generate-access-token-768x861.png 768w, https://zappysys.com/blog/wp-content/uploads/2016/04/ssis-oauth-connection-manager-generate-access-token-913x1024.png 913w" sizes="(max-width: 920px) 100vw, 920px" /></a><p id="caption-attachment-6855" class="wp-caption-text">Connect to Google API using OAuth 2.0 (YouTube API Example)</p></div></li>
<li>Configure Pagination parameters as below
<div id="attachment_1187" style="width: 559px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-zendesk-api-pagination-settings-nextpage.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1187" class="size-full wp-image-1187" src="https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-zendesk-api-pagination-settings-nextpage.png" alt="SSIS JSON Source - Configure Zendesk REST API Pagination" width="549" height="335" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-zendesk-api-pagination-settings-nextpage.png 549w, https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-zendesk-api-pagination-settings-nextpage-300x183.png 300w" sizes="(max-width: 549px) 100vw, 549px" /></a><p id="caption-attachment-1187" class="wp-caption-text">SSIS JSON Source &#8211;<br />Configure Zendesk REST API Pagination</p></div></li>
<li>Select Filter
<div id="attachment_1186" style="width: 706px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-zendesk-api-call-json-path-filter-extract-data-restful-api.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1186" class="size-full wp-image-1186" src="https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-zendesk-api-call-json-path-filter-extract-data-restful-api.png" alt="Select Filter - Extract Data from Zendesk API Response (Read Tickets)" width="696" height="328" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-zendesk-api-call-json-path-filter-extract-data-restful-api.png 696w, https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-zendesk-api-call-json-path-filter-extract-data-restful-api-300x141.png 300w" sizes="(max-width: 696px) 100vw, 696px" /></a><p id="caption-attachment-1186" class="wp-caption-text">Select Filter &#8211; Extract Data from Zendesk API Response (Read Tickets)</p></div></li>
<li>Click Preview to test
<div id="attachment_1188" style="width: 849px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-extract-zendesk-tickets-rest-api-call-json-source.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-1188" class="size-full wp-image-1188" src="https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-extract-zendesk-tickets-rest-api-call-json-source.png" alt="SSIS JSON Source - Data Preview - Zendesk REST API Call to extract tickets" width="839" height="579" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-extract-zendesk-tickets-rest-api-call-json-source.png 839w, https://zappysys.com/blog/wp-content/uploads/2015/10/ssis-extract-zendesk-tickets-rest-api-call-json-source-300x207.png 300w" sizes="(max-width: 839px) 100vw, 839px" /></a><p id="caption-attachment-1188" class="wp-caption-text">SSIS JSON Source &#8211; Data Preview &#8211; Zendesk REST API Call to extract tickets</p></div></li>
</ol>
<h3>Adding Retry Settings for HTTP or OAuth connection</h3>
<p>Zendesk enforces an API rate limit, which means you cannot issue too many API calls in a given time frame. <a href="https://developer.zendesk.com/rest_api/docs/support/introduction#rate-limits" target="_blank" rel="noopener">Check this document</a> for exact information.</p>
<p>ZappySys provides API retry settings on both the OAuth Connection and the HTTP Connection. For Zendesk you can retry on a specific status code <strong>429</strong></p>
<ol>
<li>Open connection manager UI</li>
<li>Go to Retry-Settings page</li>
<li>Select <strong>Retry web error on matching response status code</strong>.</li>
<li>Enter <strong>429</strong> for status code</li>
<li>Check <strong>multiply wait time</strong></li>
<li>In the wait time enter <strong>5000</strong> (wait 5 seconds or multiple of 5 seconds)</li>
<li>Set Max retry count as <strong>6</strong></li>
</ol>
<p>See below example (Its not for Zendesk but will give you an idea)</p>
<div id="attachment_7156" style="width: 599px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/09/http-retry-settings-oauth-connection.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7156" class="size-full wp-image-7156" src="https://zappysys.com/blog/wp-content/uploads/2018/09/http-retry-settings-oauth-connection.png" alt="Retry Options" width="589" height="429" srcset="https://zappysys.com/blog/wp-content/uploads/2018/09/http-retry-settings-oauth-connection.png 589w, https://zappysys.com/blog/wp-content/uploads/2018/09/http-retry-settings-oauth-connection-300x219.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></a><p id="caption-attachment-7156" class="wp-caption-text">Retry Options</p></div>
<h3>Configure Zendesk API Pagination and Filter for SSIS JSON Source</h3>
<p>The post <a href="https://zappysys.com/blog/configure-zendesk-oauth-application-for-rest-api-call/">How to configure Zendesk OAuth Application and Connection for REST API</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Call Zendesk REST API in SSIS &#8211; Create Ticket</title>
		<link>https://zappysys.com/blog/call-zendesk-rest-api-ssis-create-ticket-example/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Mon, 04 Jan 2016 18:02:01 +0000</pubDate>
				<category><![CDATA[SSIS REST API Task]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[ssis]]></category>
		<category><![CDATA[SSIS PowerPack]]></category>
		<category><![CDATA[zendesk]]></category>
		<guid isPermaLink="false">http://zappysys.com/blog/?p=233</guid>

					<description><![CDATA[<p>Introduction Zendesk is one the most popular customer service platforms available in the market today. Zendesk offers REST API so you can interact with their cloud based service programmatically (manage or read data). The problem is not every one is programmer and not everyone has time to learn how to write C# or JAVA code [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/call-zendesk-rest-api-ssis-create-ticket-example/">Call Zendesk REST API in SSIS &#8211; Create Ticket</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<div class="su-note"  style="border-color:#e5de9d;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#FFF8B7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><strong>UPDATE:</strong> ZappySys has released a brand new <a href="https://zappysys.com/api/integration-hub/zendesk-connector/">API Connector for Zendesk Online</a> which makes it much simpler to <strong>Read/Write Zendesk Data in SSIS</strong> compared to the steps listed in this article. You can still use steps from this article but if you are new to API or want to avoid learning curve with API then use newer approach.</p>
<p>Please visit <a href="https://zappysys.com/api/integration-hub/">this page to see all</a> Pre-Configured ready to use API connectors which you can use in <a href="https://zappysys.com/products/ssis-powerpack/ssis-api-source/">SSIS API Source</a> / <a href="https://zappysys.com/products/ssis-powerpack/ssis-api-destination/">SSIS API Destination</a> OR <a href="https://zappysys.com/products/odbc-powerpack/odbc-api-driver/">API ODBC Driver</a> (for non-SSIS Apps such as Excel, Power BI, Informatica).</p>
</div></div>
<p><a href="http://zendesk.com">Zendesk</a> is one the most popular customer service platforms available in the market today. <a href="https://developer.zendesk.com/rest_api/docs/core/introduction" target="_blank" rel="noopener">Zendesk offers REST API</a> so you can interact with their cloud based service programmatically (manage or read data). The problem is not every one is programmer and not everyone has time to learn how to write C# or JAVA code to access REST API.</p>
<p>In this article you will learn how to use <a href="//zappysys.com/products/ssis-powerpack/ssis-rest-api-web-service-task/" target="_blank" rel="noopener">SSIS REST API Task</a> to interact with Zendesk or similar type of services in few clicks. In this post we will show example of create new zendesk ticket(s) but you can any operation supported by Zendesk REST API.</p>
<p>Also check our another article on <a href="//zappysys.com/blog/read-zendesk-data-in-ssis-call-rest-api/" target="_blank" rel="noopener">How to extract Zendesk data in SSIS using REST API</a></p>
<h2>Different methods for Zendesk REST API Access</h2>
<p>Zendesk allows you to access three different ways so you can access their data.</p>
<ol>
<li>REST API access using Basic Authentication (Use userid (e.g. email) and password)</li>
<li>REST API access using API Token</li>
<li>REST API access using OAuth Access Token</li>
</ol>
<p>Each method has pros and cons. First method is easy to use but requires to use your account password. Second method is also easy to use but requires additional step to create access token. Third method is most secure but it has several extra steps compared to first and second methods.</p>
<p>In this article we will only show you second and third method (Using API Access Token).</p>
<h2>Zendesk API Access using OAuth</h2>
<p>To read about OAuth Method <a href="https://zappysys.com/blog/configure-zendesk-oauth-application-for-rest-api-call/" target="_blank" rel="noopener">click here</a></p>
<h2>Create API Access Token</h2>
<ol>
<li>Login to your account https://{{your-subdomain}}.zendesk.com/login and then click on setting icon</li>
<li>On the next page click on API link</li>
<li>On API page scroll to API Access Tokens section. Make sure <strong>Token Access</strong> method is checked.</li>
<li>Click on add new token hyper link. once prompted give some name to your token (this is just label)</li>
<li>Once above steps done token should be created and listed under your API Access page. This token will be used as your password to access REST API (Will show in the next section)</li>
</ol>
<div id="attachment_239" style="width: 1070px" class="wp-caption alignnone"><a href="//zappysys.com/blog/wp-content/uploads/2016/01/create-zendesk-rest-api-access-token.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-239" class="size-full wp-image-239" src="//zappysys.com/blog/wp-content/uploads/2016/01/create-zendesk-rest-api-access-token.png" alt="Create new Zendesk REST API Access Token" width="1060" height="531" srcset="https://zappysys.com/blog/wp-content/uploads/2016/01/create-zendesk-rest-api-access-token.png 1060w, https://zappysys.com/blog/wp-content/uploads/2016/01/create-zendesk-rest-api-access-token-300x150.png 300w, https://zappysys.com/blog/wp-content/uploads/2016/01/create-zendesk-rest-api-access-token-1024x513.png 1024w, https://zappysys.com/blog/wp-content/uploads/2016/01/create-zendesk-rest-api-access-token-960x480.png 960w" sizes="(max-width: 1060px) 100vw, 1060px" /></a><p id="caption-attachment-239" class="wp-caption-text">Create new Zendesk REST API Access Token</p></div>
<div id="attachment_238" style="width: 636px" class="wp-caption alignnone"><a href="//zappysys.com/blog/wp-content/uploads/2016/01/ssis-zendesk-rest-api-access-http-connection.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-238" class="size-full wp-image-238" src="//zappysys.com/blog/wp-content/uploads/2016/01/ssis-zendesk-rest-api-access-http-connection.png" alt="Create SSIS HTTP connection to access Zendesk REST API using Token method" width="626" height="691" srcset="https://zappysys.com/blog/wp-content/uploads/2016/01/ssis-zendesk-rest-api-access-http-connection.png 626w, https://zappysys.com/blog/wp-content/uploads/2016/01/ssis-zendesk-rest-api-access-http-connection-272x300.png 272w" sizes="(max-width: 626px) 100vw, 626px" /></a><p id="caption-attachment-238" class="wp-caption-text">Create SSIS HTTP connection to access Zendesk REST API using Token method</p></div>
<div id="attachment_237" style="width: 683px" class="wp-caption alignnone"><a href="//zappysys.com/blog/wp-content/uploads/2016/01/create-new-zendesk-ticket-using-ssis-http-post.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-237" class="size-full wp-image-237" src="//zappysys.com/blog/wp-content/uploads/2016/01/create-new-zendesk-ticket-using-ssis-http-post.png" alt="Configure SSIS REST API Task to create new Zendesk ticket request using POST method" width="673" height="664" srcset="https://zappysys.com/blog/wp-content/uploads/2016/01/create-new-zendesk-ticket-using-ssis-http-post.png 673w, https://zappysys.com/blog/wp-content/uploads/2016/01/create-new-zendesk-ticket-using-ssis-http-post-300x296.png 300w" sizes="(max-width: 673px) 100vw, 673px" /></a><p id="caption-attachment-237" class="wp-caption-text">Configure SSIS REST API Task to create new Zendesk ticket request using POST method</p></div>
<div id="attachment_241" style="width: 319px" class="wp-caption alignnone"><a href="//zappysys.com/blog/wp-content/uploads/2016/01/call-zendesk-rest-api-using-ssis.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-241" class="size-full wp-image-241" src="//zappysys.com/blog/wp-content/uploads/2016/01/call-zendesk-rest-api-using-ssis.png" alt="Run SSIS Package - Call Zendesk REST API Example" width="309" height="254" srcset="https://zappysys.com/blog/wp-content/uploads/2016/01/call-zendesk-rest-api-using-ssis.png 309w, https://zappysys.com/blog/wp-content/uploads/2016/01/call-zendesk-rest-api-using-ssis-300x247.png 300w" sizes="(max-width: 309px) 100vw, 309px" /></a><p id="caption-attachment-241" class="wp-caption-text">Run SSIS Package &#8211; Call Zendesk REST API Example</p></div>
<div id="attachment_236" style="width: 738px" class="wp-caption alignnone"><a href="//zappysys.com/blog/wp-content/uploads/2016/01/ssis-zendesk-ticket-creation-rest-api.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-236" class="size-full wp-image-236" src="//zappysys.com/blog/wp-content/uploads/2016/01/ssis-zendesk-ticket-creation-rest-api.png" alt="Verify tickets created  from SSIS using Zendesk REST API Call " width="728" height="245" srcset="https://zappysys.com/blog/wp-content/uploads/2016/01/ssis-zendesk-ticket-creation-rest-api.png 728w, https://zappysys.com/blog/wp-content/uploads/2016/01/ssis-zendesk-ticket-creation-rest-api-300x101.png 300w" sizes="(max-width: 728px) 100vw, 728px" /></a><p id="caption-attachment-236" class="wp-caption-text">Verify tickets created from SSIS using Zendesk REST API Call</p></div>
<h2>Conclusion</h2>
<p>In this post you saw how easy it is to call Zendesk REST API using SSIS REST API Task. <a href="//zappysys.com/products/ssis-powerpack/ssis-rest-api-web-service-task/" target="_blank" rel="noopener">Click here to Download</a> and try it yourself.</p>
<p>The post <a href="https://zappysys.com/blog/call-zendesk-rest-api-ssis-create-ticket-example/">Call Zendesk REST API in SSIS &#8211; Create Ticket</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to read Zendesk data in SSIS with REST API</title>
		<link>https://zappysys.com/blog/read-zendesk-data-in-ssis-call-rest-api/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Tue, 27 Oct 2015 20:18:41 +0000</pubDate>
				<category><![CDATA[REST API Integration]]></category>
		<category><![CDATA[SSIS JSON Source (File/REST)]]></category>
		<category><![CDATA[API Integration]]></category>
		<category><![CDATA[api pagination]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[pagination]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[ssis]]></category>
		<category><![CDATA[SSIS PowerPack]]></category>
		<category><![CDATA[zendesk]]></category>
		<guid isPermaLink="false">http://zappysys.com/blog/?p=132</guid>

					<description><![CDATA[<p>Introduction Zendesk is one of the most popular customer service platforms available today. Zendesk offers a REST API to interact with its cloud-based service programmatically (to manage or read data). The problem is that not everyone is a programmer, and not everyone has time to learn how to write C# or JAVA code to access a [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/read-zendesk-data-in-ssis-call-rest-api/">How to read Zendesk data in SSIS with REST API</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<div class="su-note"  style="border-color:#e5de9d;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#FFF8B7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><strong>UPDATE:</strong> ZappySys has released a brand new <a target="_blank" rel="noopener">Zendesk Online connector,</a> which makes it much simpler to <strong>read/write Zendesk Data in SSIS</strong> compared to the steps listed in this article. You can still use the steps from this article, but if you are new to APIs or want to avoid the learning curve, use a newer approach.</p>
</div></div>
<p><a href="//zappysys.com/blog/wp-content/uploads/2015/10/zendesk-api-integration.png"><img loading="lazy" decoding="async" class=" wp-image-1628 alignleft" src="//zappysys.com/blog/wp-content/uploads/2015/10/zendesk-api-integration.png" alt="" width="126" height="126" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/zendesk-api-integration.png 200w, https://zappysys.com/blog/wp-content/uploads/2015/10/zendesk-api-integration-150x150.png 150w" sizes="(max-width: 126px) 100vw, 126px" /></a><a href="http://zendesk.com">Zendesk</a> is one of the most popular customer service platforms available today. <span style="box-sizing: border-box; margin: 0px; padding: 0px;"><a href="https://developer.zendesk.com/rest_api/docs/support/introduction" target="_blank" rel="noopener">Zendesk offers a REST API</a> to interact with its cloud-based service programmatically (to manage or read data).</span> The problem is that not everyone is a programmer, and not everyone has time to learn how to write C# or JAVA code to access a REST API.</p>
<p>In this article, you will learn how to get Zendesk data using the <a target="_blank" rel="noopener">SSIS JSON Source (REST API Connector).</a> This connector allows you to read Zendesk data in SSIS using REST API Calls without any scripting/programming. <span style="box-sizing: border-box; margin: 0px; padding: 0px;">Techniques mentioned in this article can also be used to consume data from other services (e.g., <a target="_blank" rel="noopener">read data from Twitter</a>).</span> In this article, you will see step-by-step instructions to read Zendesk ticket information and load it into on-premises SQL Server.</p>
<p>Also, check our other article <span style="box-sizing: border-box; margin: 0px; padding: 0px;">on <a target="_blank" rel="noopener">how</a></span><a href="//zappysys.com/blog/call-zendesk-rest-api-ssis-create-new-ticket/" target="_blank" rel="noopener"> to call the Zendesk REST API to create a new ticket</a>.</p>
<h2>Different methods for Zendesk REST API Access</h2>
<p>Zendesk allows you to access its data in three different ways.</p>
<ol>
<li>REST API access using OAuth Access Token</li>
<li>REST API access using API Token</li>
<li>REST API access using Basic Authentication (Use userid (e.g., email) and Password)</li>
</ol>
<p>Each method has pros and cons. The simplest method is the third, which is easy to use but requires passing your account password with each call. The second method is also easy to use but requires an additional step to create an access token. The first method is the most secure, but it has a few extra steps compared to the other methods.</p>
<h2><span id="Prerequisite">Prerequisite</span></h2>
<p>Before you can finish the tasks explained in this article, you have to finish the following steps. This article assumes you have basic knowledge of SSIS (SQL Server Integration Services)</p>
<ol>
<li>Make sure you have the SSIS designer installed. Sometimes it&#8217;s referred to as BIDS or SSDT (<a href="https://msdn.microsoft.com/en-us/mt186501" target="_blank" rel="noopener">Get from here)</a></li>
<li><a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">Download SSIS PowerPack</a> (FREE Trial &#8211; 30 days).</li>
<li>Optional – Another very useful Free tool is Fiddler. You can use it to see raw request/response (<a href="https://zappysys.com/blog/how-to-use-fiddler-to-analyze-http-web-requests/" target="_blank" rel="noopener">Check this article</a>)</li>
</ol>
<h2>Method-1: Zendesk API Access using OAuth in SSIS</h2>
<p>To read about the OAuth Method, <a href="https://zappysys.com/blog/configure-zendesk-oauth-application-for-rest-api-call/" target="_blank" rel="noopener">click here</a></p>
<h2>Method-2: Zendesk API Access using Token in SSIS</h2>
<p>Now let&#8217;s look at the second method for accessing Zendesk data using SSIS.</p>
<h3>Create Token in Zendesk Portal for REST API Access</h3>
<ol>
<li>Log in to your account https://{{your-subdomain}}.zendesk.com/login and then click on the settings icon</li>
<li>On the next page, click on the API link</li>
<li>On the API page, scroll to the API Access Tokens section. Make sure the <strong>Token Access</strong> method is checked.</li>
<li>Click on the &#8221; add new token hyperlink. Once prompted, give a name to the Token token (this is just a label)</li>
<li>Once the above steps are done, a token should be created and listed under your API Access page. The token will be used as your Password to access the REST API (will be shown in the next section). For more information, check this link &gt;&gt;&gt;  <a href="https://support.zendesk.com/hc/en-us/articles/226022787-Generating-a-new-API-token-" target="_blank" rel="noopener">How to generate a token for ZenDesk API Call</a>.
<div id="attachment_11852" style="width: 993px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/Create-new-Zendesk-REST-API-Access-Token.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11852" class="size-full wp-image-11852" src="https://zappysys.com/blog/wp-content/uploads/2015/10/Create-new-Zendesk-REST-API-Access-Token.png" alt="" width="983" height="701" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/Create-new-Zendesk-REST-API-Access-Token.png 983w, https://zappysys.com/blog/wp-content/uploads/2015/10/Create-new-Zendesk-REST-API-Access-Token-300x214.png 300w, https://zappysys.com/blog/wp-content/uploads/2015/10/Create-new-Zendesk-REST-API-Access-Token-768x548.png 768w" sizes="(max-width: 983px) 100vw, 983px" /></a><p id="caption-attachment-11852" class="wp-caption-text">Create a new Zendesk REST API Access Token</p></div></li>
</ol>
<h3>Configure SSIS HTTP Connection</h3>
<p>Perform the following steps to extract data from Zendesk and load it into SQL Server. The steps below assume that you are using the API Token method (#2 from the supported methods to call the Zendesk API). This is better than using Userid and Password.</p>
<ol>
<li>Open a new SSIS Project.</li>
<li>First of all, drag and drop the Data Flow Task from the SSIS Toolbox and double-click it to edit.
<div class="mceTemp"></div>
<div id="attachment_11784" style="width: 485px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2026/02/Drag-and-drop-Data-flow.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11784" class="size-full wp-image-11784" src="https://zappysys.com/blog/wp-content/uploads/2026/02/Drag-and-drop-Data-flow.png" alt="" width="475" height="178" srcset="https://zappysys.com/blog/wp-content/uploads/2026/02/Drag-and-drop-Data-flow.png 475w, https://zappysys.com/blog/wp-content/uploads/2026/02/Drag-and-drop-Data-flow-300x112.png 300w" sizes="(max-width: 475px) 100vw, 475px" /></a><p id="caption-attachment-11784" class="wp-caption-text">Drag and drop Data flow.w</p></div></li>
<li>From the SSIS toolbox, drag and drop the <a target="_blank" rel="noopener">ZS JSON Source</a> onto the data flow designer surface, then double-click it to edit.
<div id="attachment_11533" style="width: 553px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/09/ssis-json-source-adapter-drag.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11533" class="size-full wp-image-11533" src="https://zappysys.com/blog/wp-content/uploads/2015/09/ssis-json-source-adapter-drag.png" alt="" width="543" height="146" srcset="https://zappysys.com/blog/wp-content/uploads/2015/09/ssis-json-source-adapter-drag.png 543w, https://zappysys.com/blog/wp-content/uploads/2015/09/ssis-json-source-adapter-drag-300x81.png 300w" sizes="(max-width: 543px) 100vw, 543px" /></a><p id="caption-attachment-11533" class="wp-caption-text">SSIS JSON Source &#8211; Drag and Drop</p></div>
<div class="mceTemp"></div>
</li>
<li>From the AccessMode dropdown [<strong>Url From Connection</strong>]</li>
<li>Assume you want to extract all tickets from Zendesk, then enter the following URL (in the screenshot, we appended?page=1, which is optional)<br />
<pre class="crayon-plain-tag">https://YOUR_SUB_DOMAIN.zendesk.com/api/v2/tickets.json</pre>
</li>
<li>Check the <strong>Use Credentials</strong> option and select New ZS-HTTP connection. When prompted<br />
For Credential Type: select <strong>Basic Authentication</strong>  (Use of UserID and Token ).<br />
For Web URL: Enter any URL (This will be ignored anyway because the URL entered on the JSON Source UI will be used)<br />
For user name : enter <strong>YOUR_EMAIL/token  (e.g. bob@mycompany.com/token)<br />
</strong>For Password: enteToken token obtained from the Admin console &gt; API section. For more information, check this link &gt;&gt;&gt;  <a href="https://support.zendesk.com/hc/en-us/articles/226022787-Generating-a-new-API-token-" target="_blank" rel="noopener">How to generate a token for ZenDesk API Call</a>.<br />
<div class="su-note"  style="border-color:#e5e5c6;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#ffffe0;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;">NOTE: Appending /token command in Userid will allow us to pass the token rather than the Password of that account. This approach is more secure because you can disable the Token at any time without deactivating the user account. If you want to access data using your userid and Password rather than a token, then do not use <strong>/token</strong> after your email. By default, uToken Token and the use of Password are not allowed unless you enable these methods from the Admin console (See above section)</div></div>
<div class="mceTemp"></div>
<div id="attachment_11844" style="width: 838px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/Configure-SSIS-HTTP-Connection-Use-Zendesk-Token-to-Call-REST-API.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11844" class="size-full wp-image-11844" src="https://zappysys.com/blog/wp-content/uploads/2015/10/Configure-SSIS-HTTP-Connection-Use-Zendesk-Token-to-Call-REST-API.png" alt="" width="828" height="745" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/Configure-SSIS-HTTP-Connection-Use-Zendesk-Token-to-Call-REST-API.png 828w, https://zappysys.com/blog/wp-content/uploads/2015/10/Configure-SSIS-HTTP-Connection-Use-Zendesk-Token-to-Call-REST-API-300x270.png 300w, https://zappysys.com/blog/wp-content/uploads/2015/10/Configure-SSIS-HTTP-Connection-Use-Zendesk-Token-to-Call-REST-API-768x691.png 768w" sizes="(max-width: 828px) 100vw, 828px" /></a><p id="caption-attachment-11844" class="wp-caption-text">Configure SSIS HTTP Connection &#8211; Use Zendesk Token to Call REST API</p></div></li>
</ol>
<h3>Adding Retry Settings for HTTP or OAuth connection</h3>
<p>Zendesk enforces an API rate limit, which means you cannot issue too many API calls within a given time frame. <a href="https://developer.zendesk.com/rest_api/docs/support/introduction#rate-limits" target="_blank" rel="noopener">Check this document</a> for exact information.</p>
<p>ZappySys provides API retry settings on both the OAuth Connection and the HTTP Connection. For Zendesk, you can retry on a specific status code <strong>429</strong></p>
<ol>
<li>Open connection manager UI</li>
<li>Go to the Retry-Settings page</li>
<li>Select <strong>Retry web error on matching response status code</strong>.</li>
<li>Enter <strong>429</strong> for the status code</li>
<li>Check <strong>multiple wait times</strong></li>
<li>In the wait time, enter <strong>5000</strong> (wait 5 seconds or multiple of 5 seconds)</li>
<li>Set the max retry count to <strong>6. </strong>See the example (It&#8217;s not for Zendesk, but will give you an idea)
<div id="attachment_11847" style="width: 667px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/OAuth-connection-Retry-Options.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11847" class="size-full wp-image-11847" src="https://zappysys.com/blog/wp-content/uploads/2015/10/OAuth-connection-Retry-Options.png" alt="" width="657" height="604" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/OAuth-connection-Retry-Options.png 657w, https://zappysys.com/blog/wp-content/uploads/2015/10/OAuth-connection-Retry-Options-300x276.png 300w" sizes="(max-width: 657px) 100vw, 657px" /></a><p id="caption-attachment-11847" class="wp-caption-text">OAuth connection &#8211; Retry Options</p></div></li>
</ol>
<h3>Configure Zendesk API Pagination and Filter for SSIS JSON Source</h3>
<ol>
<li>Now click [Select Filter], select the tickets node (see the array icon), and click OK. It will generate the following Filter Expression to extract all records found under the tickets array node (e.g., tickets : [ {&#8230;} , {&#8230;} &#8230; ] )<br />
<pre class="crayon-plain-tag">$.tickets[*]</pre>
<div class="mceTemp"></div>
<div id="attachment_11853" style="width: 838px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/Select-Filter-Extract-Data-from-Zendesk-API-Response-Read-Ticket.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11853" class="size-full wp-image-11853" src="https://zappysys.com/blog/wp-content/uploads/2015/10/Select-Filter-Extract-Data-from-Zendesk-API-Response-Read-Ticket.png" alt="" width="828" height="745" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/Select-Filter-Extract-Data-from-Zendesk-API-Response-Read-Ticket.png 828w, https://zappysys.com/blog/wp-content/uploads/2015/10/Select-Filter-Extract-Data-from-Zendesk-API-Response-Read-Ticket-300x270.png 300w, https://zappysys.com/blog/wp-content/uploads/2015/10/Select-Filter-Extract-Data-from-Zendesk-API-Response-Read-Ticket-768x691.png 768w" sizes="(max-width: 828px) 100vw, 828px" /></a><p id="caption-attachment-11853" class="wp-caption-text">Select Filter &#8211; Extract Data from Zendesk API Response (Read Ticket)</p></div></li>
<li>N, let&#8217;sts configure pagination. By default, Zendesk API doesn&#8217;t return all records, so you have to specify pagination as below. Click on the <strong>Pagination</strong> Tab. Enter <em>$.next_page</em> for Next URL attribute as below (you can also Browse Path)
<div id="attachment_11854" style="width: 841px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Zendesk-Pagination.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11854" class="size-full wp-image-11854" src="https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Zendesk-Pagination.png" alt="" width="831" height="747" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Zendesk-Pagination.png 831w, https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Zendesk-Pagination-300x270.png 300w, https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Zendesk-Pagination-768x690.png 768w" sizes="(max-width: 831px) 100vw, 831px" /></a><p id="caption-attachment-11854" class="wp-caption-text">SSIS JSON Source Zendesk Pagination</p></div></li>
<li>Now time to click <strong>Preview. </strong>If you followed everything correctly, then when you click the <strong>Preview</strong> Button, you should see some data in the preview (assuming you have at least one ticket).
<div class="mceTemp"></div>
<div id="attachment_11850" style="width: 840px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Data-Preview-Zendesk-REST-API-Call-to-extract-tickets.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11850" class="size-full wp-image-11850" src="https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Data-Preview-Zendesk-REST-API-Call-to-extract-tickets.png" alt="" width="830" height="747" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Data-Preview-Zendesk-REST-API-Call-to-extract-tickets.png 830w, https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Data-Preview-Zendesk-REST-API-Call-to-extract-tickets-300x270.png 300w, https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-JSON-Source-Data-Preview-Zendesk-REST-API-Call-to-extract-tickets-768x691.png 768w" sizes="(max-width: 830px) 100vw, 830px" /></a><p id="caption-attachment-11850" class="wp-caption-text">SSIS JSON Source &#8211; Data Preview &#8211; Zendesk REST API Call to extract tickets</p></div></li>
<li>Now click the <strong>Columns tab</strong> to review data types (you can change the default length and check the Lock option on the right side). This change is needed because the datatype guess happens based on the design-time setting (only 300 rows scanned by default). At runtime, if you get a truncation-related error, then copy the error message into Notepad to get the exact steps and column name that caused the error. If you need a length greater than 4000 chars, use the DT_NTEXT data type instead (change the datatype and click the column name cell on the right to save the change).</li>
<li>Click <strong>OK</strong> to save UI</li>
</ol>
<h3>How to extract Zendesk data using Incremental API</h3>
<p>There will be a time when you need to extract data incrementally (i.e., Extract only the changed data since the last load). Zendesk API supports many <a href="https://developer.zendesk.com/rest_api/docs/support/incremental_export" target="_blank" rel="noopener">Incremental API endpoints</a>. If you are using this endpoint, you have to make sure of a few things.</p>
<ul>
<li>For the OAuth connection method, make sure the <pre class="crayon-plain-tag">read</pre>  scope is included ( <pre class="crayon-plain-tag">tickets:read</pre>  won&#8217;t work, so just use <pre class="crayon-plain-tag">read</pre> )</li>
<li>Your URL must include /incremental path before the API type, and you must include start_time for the extract in <a href="https://www.epochconverter.com/" target="_blank" rel="noopener">Unix Epoch Format</a>.  The following example will pull records modified after<br />
<pre class="crayon-plain-tag">https://zappysys.zendesk.com/api/v2/incremental/tickets.json?start_time=1514764800</pre>
</li>
<li>On the pagination tab, you have to configure the following settings
<ul>
<li>Set Next Link as <pre class="crayon-plain-tag">$.next_link</pre></li>
<li>Set the Stop Indicator attribute as <pre class="crayon-plain-tag">$.count</pre></li>
<li>Set the Stop Indicator Value as <pre class="crayon-plain-tag">regex=^\d{1,3}$</pre>  Notice that using <strong>regex=</strong> prefix treats your end indicator value as a pattern check.<strong>&#8212;OR&#8212;</strong></li>
<li>Set the Stop Indicator attribute as <pre class="crayon-plain-tag">$.end_of_stream</pre>   and the Stop indicator value as <pre class="crayon-plain-tag"><span class="lang:default decode:true crayon-inline ">true</pre></span>
<div id="attachment_11848" style="width: 838px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/Pagination-for-Zendesk-Incremental-API-Next-Link-and-Last-Page-detection-using-Stop-Indicator-Regular-Expression.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11848" class="size-full wp-image-11848" src="https://zappysys.com/blog/wp-content/uploads/2015/10/Pagination-for-Zendesk-Incremental-API-Next-Link-and-Last-Page-detection-using-Stop-Indicator-Regular-Expression.png" alt="" width="828" height="745" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/Pagination-for-Zendesk-Incremental-API-Next-Link-and-Last-Page-detection-using-Stop-Indicator-Regular-Expression.png 828w, https://zappysys.com/blog/wp-content/uploads/2015/10/Pagination-for-Zendesk-Incremental-API-Next-Link-and-Last-Page-detection-using-Stop-Indicator-Regular-Expression-300x270.png 300w, https://zappysys.com/blog/wp-content/uploads/2015/10/Pagination-for-Zendesk-Incremental-API-Next-Link-and-Last-Page-detection-using-Stop-Indicator-Regular-Expression-768x691.png 768w" sizes="(max-width: 828px) 100vw, 828px" /></a><p id="caption-attachment-11848" class="wp-caption-text">Pagination for Zendesk Incremental API &#8211; Next Link and Last Page detection using Stop Indicator Regular Expression</p></div></li>
</ul>
</li>
</ul>
<p>Here is a simple SQL query to convert date/time to Unix time</p><pre class="crayon-plain-tag">select DATEDIFF(SECOND,'1970-01-01', GETUTCDATE() )

select DATEDIFF(SECOND,'1970-01-01', LastExtractDate ) as LastExtractDateAsUnix From dbo.ExtractStatus Where ExtractName='ZendeskExtract'</pre><p>
For C# code in the SSIS Script Task, you can use something like the following:</p><pre class="crayon-plain-tag">Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;</pre><p>
Assuming you extracted Date/Time from the database and saved it to some SSIS Variable called User::varLastExtract. Now we like to convert that to Unix format using C#.</p>
<p>We assume you have created the following variables in the SSIS Package. Also, you have set varLastExtract to a date/time value you want to convert.</p><pre class="crayon-plain-tag">User::varLastExtractTimeUnix  (Int32)
User::varLastExtractTime (DateTime)</pre><p>
Use the steps below. to convert date time to Unix format in C#</p>
<ol>
<li>Drag and drop Script Task in SSIS designer</li>
<li>Add both variable names in Read/Write Variable List (e.g., User::varLastExtractTimeUnix, User::varLastTimeExtract ).</li>
<li>Edit Script</li>
<li>Enter something like below<br />
<pre class="crayon-plain-tag">DateTime dtUtc= Convert.ToDateTime( Dts.Variables["User::varLastExtractTime"].Value ).ToUniversalTime();
Dts.Variables["User::varLastExtractTimeUnix"].Value = (Int32)(dtUtc.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;</pre>
</li>
</ol>
<p>Now you can use this variable in your JSON Source URL to make things dynamic.</p><pre class="crayon-plain-tag">https://zappysys.zendesk.com/api/v2/incremental/tickets.json?start_time={{User::varLastExtractTimeUnix}}</pre><p>
<h3>Handling duplicate data during incremental load (DISTINCT)</h3>
<p>As per <a href="https://developer.zendesk.com/rest_api/docs/support/incremental_export#excluding-pagination-duplicates" target="_blank" rel="noopener">this Zendesk document,</a> they may include the last row of the previous page on the next page if the update timestamp. It is possible to have duplicate rows in your staging table. <span style="box-sizing: border-box; margin: 0px; padding: 0px;">You can easily avoid this by using the <strong>DISTINCT</strong> keyword or another SQL query to remove duplicates.</span> Make sure not to include <strong>P_next_page</strong> and <strong>P_count,</strong> as they can differ when duplicate rows are detected at page boundaries.</p><pre class="crayon-plain-tag">SELECT DISTINCT 
--[P_next_page] --- Do NOT include this... 
[P_previous_page]
--,[P_count] --- Do NOT include this... 
,[url]
,[id]
,[external_id]
,[via.channel]
,[via.source.rel]

,[assignee_id]
......
......
......
,[allow_attachments]
FROM [dbo]._stgZendeskTickets</pre><p>
&nbsp;</p>
<h3>Loading data from Zendesk to SQL Server using SSIS</h3>
<ol>
<li>Now, drag a new OLE DB Destination into the Data Flow Designer. Connect the JSON source with the destination. Now double-click Destination. At the destination, select connection manager (or create one), then click [New] next to the Table name dropdown. You will see default metadata for the table based on upstream columns. Notice how P_previous_link is 40 chars rather than 140. This can be edited in the source metadata under the Columns tab, as described in the previous step, so that Table datatypes are set correctly. Once you change the table name and datatypes, click OK to create the new table. Click on the <strong>Mapping</strong> Tab to map source columns to target columns. Once that&#8217;s done, click OK to save.
<div id="attachment_11846" style="width: 763px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/Load-Zendesk-Data-into-SQL-Server-Using-SSIS-JSON-Connector-REST-API.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11846" class="size-full wp-image-11846" src="https://zappysys.com/blog/wp-content/uploads/2015/10/Load-Zendesk-Data-into-SQL-Server-Using-SSIS-JSON-Connector-REST-API.png" alt="" width="753" height="684" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/Load-Zendesk-Data-into-SQL-Server-Using-SSIS-JSON-Connector-REST-API.png 753w, https://zappysys.com/blog/wp-content/uploads/2015/10/Load-Zendesk-Data-into-SQL-Server-Using-SSIS-JSON-Connector-REST-API-300x273.png 300w" sizes="(max-width: 753px) 100vw, 753px" /></a><p id="caption-attachment-11846" class="wp-caption-text">Load Zendesk Data into SQL Server Using SSIS JSON Connector (REST API)</p></div></li>
<li>Now execute the package. If you have multiple pages in response, you will notice several requests in the log (e.g., &amp;page=1 &#8230; &amp;page=2 &#8230;).<br />
<div class="su-note"  style="border-color:#e5e5c6;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#ffffe0;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;">NOTE: In below screenshot we used per_page=2 for example purpose only. In reality, make it bigger, e.g., per_page=100 or per_page=200, so you don&#8217;t hit the server too often. If you&#8217;re not sure, then exclude the per_page parameter from the URL to use the default setting.</div></div>
<div id="attachment_11845" style="width: 1099px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/Execute-SSIS-Package-Extract-data-from-Zendesk-and-load-into-SQL-Server.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11845" class="size-full wp-image-11845" src="https://zappysys.com/blog/wp-content/uploads/2015/10/Execute-SSIS-Package-Extract-data-from-Zendesk-and-load-into-SQL-Server.png" alt="" width="1089" height="416" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/Execute-SSIS-Package-Extract-data-from-Zendesk-and-load-into-SQL-Server.png 1089w, https://zappysys.com/blog/wp-content/uploads/2015/10/Execute-SSIS-Package-Extract-data-from-Zendesk-and-load-into-SQL-Server-300x115.png 300w, https://zappysys.com/blog/wp-content/uploads/2015/10/Execute-SSIS-Package-Extract-data-from-Zendesk-and-load-into-SQL-Server-1024x391.png 1024w, https://zappysys.com/blog/wp-content/uploads/2015/10/Execute-SSIS-Package-Extract-data-from-Zendesk-and-load-into-SQL-Server-768x293.png 768w" sizes="(max-width: 1089px) 100vw, 1089px" /></a><p id="caption-attachment-11845" class="wp-caption-text">Execute SSIS Package &#8211; Extract data from Zendesk and load into SQL Server</p></div></li>
</ol>
<h2>Method-3: Zendesk API Access using Username and Password in SSIS (Basic Authentication)</h2>
<p>This method is the same as the second method outlined in the previous section. Except for a few changes. When you create an HTTP Connection, use your Username (without appenTokentoken ). For the Password, use your account password (the same one you use to log in to the Zendesk portal)</p>
<h2>Zendesk API Rate Limit (Throttling)</h2>
<p>Zendesk may limit how many calls you can make per second, so make sure to slow down if you get errors about api rate limit. You can slow down by entering Wait time on the Throttling tab of JSON Source (100 means wait 100 ms after each Request &#8230; only useful if pagination is enabled)</p>
<h2>Making things Dynamic (e.g., URL)</h2>
<p>You can use SSIS variables in your URL to make it dynamic. See below</p><pre class="crayon-plain-tag">https://mycompany.zendesk.com/api/v2/items/{{User::TicketNumber}}.json</pre><p>
<h2>Dealing with common errors</h2>
<p><span style="box-sizing: border-box; margin: 0px; padding: 0px;">For detailed instructions to fix common metadata-related errors, <a target="_blank" rel="noopener">read this article</a>.</span></p>
<div id="attachment_11851" style="width: 796px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-PowerPack-Column-Metadata-Editor-i.e.-Change-DataType-Column-Length.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11851" class="size-full wp-image-11851" src="https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-PowerPack-Column-Metadata-Editor-i.e.-Change-DataType-Column-Length.png" alt="" width="786" height="471" srcset="https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-PowerPack-Column-Metadata-Editor-i.e.-Change-DataType-Column-Length.png 786w, https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-PowerPack-Column-Metadata-Editor-i.e.-Change-DataType-Column-Length-300x180.png 300w, https://zappysys.com/blog/wp-content/uploads/2015/10/SSIS-PowerPack-Column-Metadata-Editor-i.e.-Change-DataType-Column-Length-768x460.png 768w" sizes="(max-width: 786px) 100vw, 786px" /></a><p id="caption-attachment-11851" class="wp-caption-text">SSIS PowerPack &#8211; Column Metadata Editor (i.e., Change DataType, Column Length)</p></div>
<div class="content_block" id="custom_post_widget-1887"><h3>Truncation related error</h3>
<p style="text-align: justify;">The most common error you may face when you run an SSIS package is truncation error. During the design time only 300 rows are scanned from a source (a file or a REST API call response) to detect datatypes but at runtime, it is likely you will retrieve far more records. So it is possible that you will get longer strings than initially expected. For detailed instructions on how to fix common metadata related errors read an article "<a href="//zappysys.com/blog/handling-ssis-component-metadata-issues/" target="_blank" rel="noopener">How to handle SSIS errors (truncation, metadata issues)</a>".</p>

<h3>Authentication related error</h3>
Another frequent error you may get is an authentication error, which happens when you deploy/copy a package to another machine and run it there. Check <a href="#Deployment_to_Production">the paragraph below</a> to see why it happens and how to solve this problem.</div>
<h2>Deploy to production</h2>
<div class="content_block" id="custom_post_widget-1932"><p style="text-align: justify;">In SSIS package <a href="https://docs.microsoft.com/en-us/sql/integration-services/security/access-control-for-sensitive-data-in-packages" target="_blank" rel="noopener">sensitive data such as tokens and passwords are by default encrypted by SSIS</a> with your Windows account which you use to create a package. So SSIS will fail to decrypt tokens/passwords when you run it from another machine using another Windows account. To circumvent this when you are creating an SSIS package which uses authentication components (e.g. an <a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/ssis-oauth-connection-manager.htm" target="_blank" rel="noopener">OAuth Connection Manager</a> or an <a href="https://zappysys.com/onlinehelp/ssis-powerpack/scr/ssis-http-connection-manager.htm" target="_blank" rel="noopener">HTTP Connection Manager</a> with credentials, etc.), consider using parameters/variables to pass tokens/passwords. In this way, you won’t face authentication related errors when a package is deployed to a production server.</p>
<p style="text-align: justify;">Check our article on <a href="https://zappysys.com/blog/how-to-run-an-ssis-package-with-sensitive-data-on-sql-server/" target="_blank" rel="noopener">how to configure packages with sensitive data on your production or development server</a>.</p></div>
<div class="content_block" id="custom_post_widget-2021"><h2>Things have gone bad: Error handling &amp; debugging</h2>
<p style="text-align: justify;">Incidentally, bad things can happen<i>. </i>A remote server may go offline or your server may go out of memory. In any case, you may want to know when that happens and take actions accordingly. For that purpose, you have to redirect bad rows to some other destination. For this example, we will take and use <em>Web API Destination</em>, but basically, you can use any SSIS component:</p>

<h3>Handling errors</h3>
<ol style="margin-left: 0;">
 	<li>Add a <em>Derived Column</em> above <em>Web API Destination</em> with expression <strong>"(DT_WSTR,4000)ZS_JSON_OUT"</strong> and name it <strong>"JsonAsString"</strong>. This will let you see what JSON you are actually passing.</li>
 	<li>Then add a database or file destination or use another <em>Trash Destination</em> for debugging purposes and redirect the bad rows (<span style="color: #d66565;">red arrow</span>) from <em><em>Web API Destination </em></em>into it<em><em>. </em></em>Don't forget to set <span class="lang:default decode:true crayon-inline">Redirect row</span> option for both, <em>Error</em> and <em>Truncation</em> columns:<em><em>
</em></em>
<div class="wp-caption">

<a href="//zappysys.com/blog/wp-content/uploads/2017/06/ssis-sql-server-to-elasticsearch-error-handling-redirecting-bad-rows.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="alignnone wp-image-1487 size-full" src="https://zappysys.com/blog/wp-content/uploads/2017/06/ssis-sql-server-to-elasticsearch-error-handling-redirecting-bad-rows.png" alt="Redirect bad rows from &lt;em&gt;Web API Destination&lt;/em&gt; to &lt;em&gt;Trash Destination&lt;/em&gt; when load from SQL Server to Elasticsearch is failing. Add derived column JsonAsString to be able to read JSON you are using." width="739" height="267" srcset="https://zappysys.com/blog/wp-content/uploads/2017/06/ssis-sql-server-to-elasticsearch-error-handling-redirecting-bad-rows.png 739w, https://zappysys.com/blog/wp-content/uploads/2017/06/ssis-sql-server-to-elasticsearch-error-handling-redirecting-bad-rows-300x108.png 300w" sizes="(max-width: 739px) 100vw, 739px" /></a>
<p class="wp-caption-text">Redirected failed requests from <em>Web API Destination</em> to a desired destination when loading from SQL Server to REST API Service is failing. Derived Column <em>JsonAsString</em> added to be able to read JSON which was passed to Elasticsearch</p>

</div></li>
 	<li>Finally, add a <a href="https://technet.microsoft.com/en-us/library/ms140318%28v=sql.90%29.aspx?f=255&amp;MSPPError=-2147217396" target="_blank" rel="noopener"><em>Data Viewer</em></a> for the red path, if you want to debug the flow. You will be able to see URL, JSON and the error message for each record. You may want to copy-paste <em>ErrorMessage</em> to <em>Notepad </em>if you want it to be more readable:
<div class="wp-caption">

<a href="//zappysys.com/blog/wp-content/uploads/2017/06/ssis-sql-server-to-elasticsearch-error-handling.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="alignnone wp-image-1494 size-full" src="https://zappysys.com/blog/wp-content/uploads/2017/06/ssis-sql-server-to-elasticsearch-error-handling.png" alt="Use Data Viewer to view HTTP requests that failed to be fulfilled in Elasticsearch" width="752" height="280" srcset="https://zappysys.com/blog/wp-content/uploads/2017/06/ssis-sql-server-to-elasticsearch-error-handling.png 752w, https://zappysys.com/blog/wp-content/uploads/2017/06/ssis-sql-server-to-elasticsearch-error-handling-300x112.png 300w" sizes="(max-width: 752px) 100vw, 752px" /></a>
<p class="wp-caption-text">Use Data Viewer to view HTTP requests that failed to be fulfilled.</p>

</div></li>
</ol>
<div class="su-note" style="border-color: #e5dea5; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px;">
<div class="su-note-inner su-clearfix" style="background-color: #fff7b7; border-color: #fffdf1; color: #333333; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px;"><strong>NOTE</strong>: You can read more about redirecting rows in <a href="//zappysys.com/blog/ssis-error-handling-in-data-flow-redirect-bad-rows/" target="_blank" rel="noopener">SSIS Error Handling (Redirect bad rows)</a> article.</div>
</div>
<h3>Debugging HTTP requests</h3>
<p style="text-align: justify;">A common thing you have to do when working with HTTP requests is to debug those requests; e.g. to check what headers, body or URL was passed. <span id="Debug_Web_API_call_using_Fiddler"></span>To test how things look behind the scenes we strongly suggest to use <a href="https://zappysys.com/blog/how-to-use-fiddler-to-analyze-http-web-requests/" target="_blank" rel="noopener">Fiddler</a> - a popular web debugging tool.</p>
<p style="text-align: justify;">Inside it, you can double-click the URL entry (Right side) to see Request and Response Panels. The top panel is Request (URL, Headers, Body) and Bottom Panel is Response. For https:// (secure URL) make sure you enable HTTPS option in Fiddler (Tools &gt; Options &gt; HTTPS &gt; Check Decrypt https request):</p>

<div id="attachment_2344" class="wp-caption alignnone">

<a href="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?ssl=1" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="alignnone wp-image-2344 size-full" style="border: 0px; max-width: 100%; height: auto; box-shadow: rgba(0, 0, 0, 0.176) 0px 1px 2px;" src="https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png" alt="Debugging Web API call using Fiddler in SSIS" width="1287" height="564" data-attachment-id="2344" data-permalink="https://zappysys.com/blog/pass-authorization-header-redirected-location/ssis-rest-api-call-debug-via-fiddler/#main" data-orig-file="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?fit=1287%2C564&amp;ssl=1" data-orig-size="1287,564" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ssis-rest-api-call-debug-via-fiddler" data-image-description="&lt;p&gt;Debugging Web API call using Fiddler in SSIS&lt;/p&gt; " data-medium-file="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?fit=300%2C131&amp;ssl=1" data-large-file="https://i1.wp.com/zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png?fit=720%2C316&amp;ssl=1" srcset="https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler.png 1287w, https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler-300x131.png 300w, https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler-768x337.png 768w, https://zappysys.com/blog/wp-content/uploads/2016/05/ssis-rest-api-call-debug-via-fiddler-1024x449.png 1024w" sizes="(max-width: 1287px) 100vw, 1287px" /></a>
<p class="wp-caption-text">Debugging Web API call using Fiddler in SSIS</p>

</div></div>
<h2>Conclusion</h2>
<p>In this post, you saw how easy it is to read data from Zendesk using the SSIS JSON Source (REST API Connector). <a href="//zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">Click here to download</a> and try it yourself.</p>
<p><strong>Keywords</strong></p>
<p>Loading Zendesk data into SQL Server<br />
How to read Zendesk tickets in SSIS<br />
Calling Zendesk REST API in SSIS<br />
Fetch Zendesk data using a REST API call in SSIS<br />
Extract Zendesk data using a REST API call in SSIS<br />
Reading data from Zendesk using rest api call<br />
Pulling Zendesk tickets using rest api call</p>
<p>The post <a href="https://zappysys.com/blog/read-zendesk-data-in-ssis-call-rest-api/">How to read Zendesk data in SSIS with REST API</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
