<?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>SSIS Salesforce Connection Archives | ZappySys Blog</title>
	<atom:link href="https://zappysys.com/blog/category/ssis/connection-manager/ssis-salesforce-connection/feed/" rel="self" type="application/rss+xml" />
	<link>https://zappysys.com/blog/category/ssis/connection-manager/ssis-salesforce-connection/</link>
	<description>SSIS / ODBC Drivers / API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more</description>
	<lastBuildDate>Wed, 21 Jan 2026 22:44:44 +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>SSIS Salesforce Connection Archives | ZappySys Blog</title>
	<link>https://zappysys.com/blog/category/ssis/connection-manager/ssis-salesforce-connection/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to query salesforce data using Bulk API in SSIS</title>
		<link>https://zappysys.com/blog/query-salesforce-data-using-bulk-api-ssis/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Thu, 20 Jan 2022 19:07:09 +0000</pubDate>
				<category><![CDATA[SSIS CSV Source]]></category>
		<category><![CDATA[SSIS Salesforce API Task]]></category>
		<category><![CDATA[SSIS Salesforce Connection]]></category>
		<category><![CDATA[bulk api]]></category>
		<category><![CDATA[pagination]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[Regular Expression]]></category>
		<category><![CDATA[salesforce]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=9507</guid>

					<description><![CDATA[<p>Introduction In our previous post, we saw how to read Salesforce data using SSIS Salesforce Source (Which uses SOAP API under the hood). This may be slow if you have millions of rows because Salesforce Source paginates every 2000 rows, so it&#8217;s not a good option to read millions of rows to iterate on a [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/query-salesforce-data-using-bulk-api-ssis/">How to query salesforce data using Bulk API in SSIS</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In our previous post, we saw how to <a href="https://zappysys.com/blog/export-data-from-salesforce-to-sql-server-using-ssis/" target="_blank" rel="noopener">read Salesforce</a> data using SSIS Salesforce Source (Which uses SOAP API under the hood). This may be slow if you have millions of rows because Salesforce Source paginates every 2000 rows, so it&#8217;s not a good option to read millions of rows to iterate on a large Salesforce dataset (Table or Query). To increase the read speed, you can use BULK API. This article explains how to read salesforce data using BULK API and increase read speed.</p>
<div class="content_block" id="custom_post_widget-2523"><h2><span id="Prerequisites">Prerequisites</span></h2>
Before we perform the steps listed in this article, you will need to make sure the following prerequisites are met:
<ol style="margin-left: 1.5em;">
 	<li><abbr title="SQL Server Integration Services">SSIS</abbr> designer installed. Sometimes it is referred to as <abbr title="Business Intelligence Development Studio">BIDS</abbr> or <abbr title="SQL Server Data Tools">SSDT</abbr> (<a href="https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt" target="_blank" rel="noopener">download it from the Microsoft site</a>).</li>
 	<li>Basic knowledge of SSIS package development using <em>Microsoft SQL Server Integration Services</em>.</li>
 	<li>Make sure <span style="text-decoration: underline;"><a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">ZappySys SSIS PowerPack</a></span> is installed (<a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">download it</a>, if you haven't already).</li>
 	<li>(<em>Optional step</em>)<em>.</em> <a href="https://zappysys.zendesk.com/hc/en-us/articles/360035974593" target="_blank" rel="noopener">Read this article</a>, if you are planning to deploy packages to a server and schedule their execution later.</li>
</ol></div>
<h2>NEW Version (v5.5+)</h2>
<p>In the new version (v5.5), we have added an option to query in Bulk Mode. This means if you have millions of Salesforce object rows to read, no worries; it may be very fast in the new version. Previously, it used to take a long time because it read in batches of 2000 rows in each request. With the Bulk API, the batch size is really large.</p>
<p>Here is how to set Salesforce Bulk API Mode in SELECT query (Read operation).</p>
<ol>
<li>Install new version of SSIS PowerPack. Make sure it is v5.5 or higher.</li>
<li>Open existing Salesforce Source UI</li>
<li>Make sure you <strong>check [Use Bulk API]</strong> option like below. if you do not see this option then most likely you are using older version.<br />
-OR-<br />
Just add <strong>#bulkmode</strong> prefix in the SQL query like below, it will use Bulk API</p>
<div id="attachment_11114" style="width: 687px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-bulk-api-option-soql-select-query.png"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-11114" class="size-full wp-image-11114" src="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-bulk-api-option-soql-select-query.png" alt="" width="677" height="585" srcset="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-bulk-api-option-soql-select-query.png 677w, https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-bulk-api-option-soql-select-query-300x259.png 300w" sizes="(max-width: 677px) 100vw, 677px" /></a><p id="caption-attachment-11114" class="wp-caption-text">Bulk API mode for SSIS Salesforce Source (Read Large amount of data using SOQL Query)</p></div></li>
</ol>
<h2>OLD Version</h2>
<p>If you are using an older version of SSIS Power Pack (v5.4.0 or older), you can follow the steps mentioned in the following section.</p>
<p>We will see how to query using Salesforce Bulk API in SSIS. It involves three simple steps like the one below.</p>
<ol>
<li>Call BULK API &#8211; Submit SOQL Query and receive a JobId back (Use <a href="https://zappysys.com/products/ssis-powerpack/ssis-salesforce-api-task/">SSIS Salesforce API Task</a>)<br />
<pre class="crayon-plain-tag">https://{your-instance}.salesforce.com/services/data/v50.0/jobs/query</pre>
</li>
<li>Keep checking Job Status Until Status is <strong>JobComplete</strong> (Use <a href="https://zappysys.com/products/ssis-powerpack/ssis-salesforce-api-task/">SSIS Salesforce API Task</a>)<br />
<pre class="crayon-plain-tag">https://{your-instance}.salesforce.com/services/data/v50.0/jobs/query/{{User::JobId}}</pre>
</li>
<li>Read Query Result  (Use <a href="https://zappysys.com/products/ssis-powerpack/ssis-csv-file-source-flat-file-web-api/" target="_blank" rel="noopener">SSIS CSV Source</a>)<br />
<pre class="crayon-plain-tag">https://{your-instance}.salesforce.com/services/data/v50.0/jobs/query/{{User::JobId}}/results</pre>
</li>
</ol>
<div id="attachment_9515" style="width: 671px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-query-bulk-api-read-data.png"><img decoding="async" aria-describedby="caption-attachment-9515" class="size-full wp-image-9515" src="https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-query-bulk-api-read-data.png" alt="Query Salesforce Data using Bulk API in SSIS (read using SOQL query in Bulk mode / large dataset)" width="661" height="330" srcset="https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-query-bulk-api-read-data.png 661w, https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-query-bulk-api-read-data-300x150.png 300w" sizes="(max-width: 661px) 100vw, 661px" /></a><p id="caption-attachment-9515" class="wp-caption-text">Query Salesforce Data using Bulk API in SSIS (read using SOQL query in Bulk mode / large dataset)</p></div>
<p>Now, let&#8217;s look at everything in detail.</p>
<h3>Obtain Salesforce Credentials</h3>
<p>The first step to call Salesforce API is to obtain credentials (security token or OAuth ClientId /Secret)</p>
<p>Method#1 &#8211; Check <a href="https://zappysys.com/blog/export-data-from-salesforce-to-sql-server-using-ssis/#Get_Salesforce_Security_Token">this article</a> to use <strong>UserId/ Password / SecretToken</strong><br />
Method#2 &#8211; Check <a href="https://zappysys.com/blog/register-salesforce-app-obtain-client-id-secret-oauth-api-call/">this article</a> to use the <strong>OAuth</strong> Connection Option</p>
<h3>Create Salesforce Connection</h3>
<p>Once we have Salesforce Credentials, we can create a new Salesforce Connection (You can do this from Task UI or the below way)</p>
<ol>
<li>Open Visual Studio ( Assuming you already have SSIS installed along with <a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">ZappySys PowerPack</a> )</li>
<li>Create a New SSIS Package Project.</li>
<li>Right-click on the Connection Manager panel and click on New Connection.<br />
<img decoding="async" class="figureimage" title="SSIS Create New Connection" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/ssis-new-connection.png" alt="SSIS Create New Connection" /></li>
<li>Select <strong>ZS-SALESFORCE</strong> Connection Manager from the Connection Managers list and Click on the Add Button.<br />
<img decoding="async" class="figureimage" title="SSIS Salesforce Connection Manager - ADD" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/salesforce-connection/ssis-salesforce-api-task-connection-1.png" alt="SSIS Salesforce Connection Manager - ADD" /></li>
<li>Now in Connection Manager UI, Enter your SalesForce Credentials (OAuth Client Id/. Secret &#8211;or&#8212; User Name, Password and Security Token), and leave all other properties as it is.<br />
<img decoding="async" class="figureimage" title="SSIS Salesforce Connection Manager UI " src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/salesforce-connection/ssis-salesforce-connection-manager-ui.png" alt="SSIS Salesforce Connection Manager UI " /></li>
</ol>
<h3>Call Create Job &#8211; Retrieve / Save JobId</h3>
<p>Once the connection is created, we can create our first step. Basically, we will call this API to <a href="https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/query_create_job.htm" target="_blank" rel="noopener">create Job</a> (Bulk Read)</p>
<ol>
<li>Here, in Visual Studio, drag and drop the ZS Salesforce API Task on the design surface.<img decoding="async" class="figureimage" title="SSIS Salesforce API Task - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/salesforce-api-task/ssis-salesforce-api-task-drag.png" alt="SSIS Salesforce API Task - Drag and Drop" /></li>
<li>Double click the Task and configure Request Settings Tab like below<br />
&#8211; Select Salesforce Connection (Created in the previous section)<br />
&#8211; Check <strong>Use direct URL</strong><br />
&#8211; Enter URL like below (Replace <strong>{your-instance}</strong> with your own instance (i.e. na9) . For more information on how to find out my<br />
salesforce instance id <a href="https://help.salesforce.com/s/articleView?id=000322728&amp;type=1">check this article</a><br />
<pre class="crayon-plain-tag">https://{your-instance}.salesforce.com/services/data/v50.0/jobs/query</pre>
&#8211; Request Method <strong>POST</strong><br />
&#8211; Enter Body like below (You can use your own <a href="https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql.htm" target="_blank" rel="noopener">SOQL query</a>). Keep in mind SQOL must be <a href="https://www.freeformatter.com/json-escape.html" target="_blank" rel="noopener">encoded for JSON format</a>. This means the entire SQL must be in one line (replace new lines with \r\n , quotes with \&#8221; and tabs with \t)<br />
For example, to execute SELECT Id, Name FROM Accounts, you can write something like the one below in BODY.<br />
<pre class="crayon-plain-tag">{
  "operation": "query",
  "query": "SELECT Id, Name\r\nFROM Account"
}</pre>
The above is for below (with a new line)<br />
<pre class="crayon-plain-tag">SELECT Id, Name
FROM Account</pre>
<div id="attachment_9516" style="width: 690px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-call-salesforce-bulk-api-query-soql-sql.png"><img decoding="async" aria-describedby="caption-attachment-9516" class="size-full wp-image-9516" src="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-call-salesforce-bulk-api-query-soql-sql.png" alt="Create Job - Call Bulk API to Read / Query using SOQL" width="680" height="547" srcset="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-call-salesforce-bulk-api-query-soql-sql.png 680w, https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-call-salesforce-bulk-api-query-soql-sql-300x241.png 300w" sizes="(max-width: 680px) 100vw, 680px" /></a><p id="caption-attachment-9516" class="wp-caption-text">Create Job &#8211; Call Bulk API to Read / Query using SOQL</p></div></li>
<li>Now Click Test Request (Copy the <strong>JobId</strong> which we will use in the Variable for Designtime Testing)</li>
<li>On the Response Tab, configure it like the below.<br />
&#8211; Select Response content Type = Json<br />
&#8211; Enter <strong>$.id</strong> as the expression<br />
&#8211; Check Save response option<br />
&#8211; Select Save to Variable and click New to create a variable. Name it <strong>JobId</strong> and enter a sample <strong>JobId</strong> value (copied from the previous step)</p>
<div id="attachment_9517" style="width: 459px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-call-salesforce-bulk-api-extract-jobid-from-result.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9517" class="size-full wp-image-9517" src="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-call-salesforce-bulk-api-extract-jobid-from-result.png" alt="Extract Salesforce JobId save to SSIS Variable" width="449" height="236" srcset="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-call-salesforce-bulk-api-extract-jobid-from-result.png 449w, https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-call-salesforce-bulk-api-extract-jobid-from-result-300x158.png 300w" sizes="(max-width: 449px) 100vw, 449px" /></a><p id="caption-attachment-9517" class="wp-caption-text">Extract Salesforce JobId save to SSIS Variable</p></div></li>
</ol>
<h3>Do Status Check &#8211; Look for JobComplete</h3>
<p>Once we create a job and store JobId in the variable we have to keep <a href="https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/query_get_one_job.htm" target="_blank" rel="noopener">checking Job status</a> every X seconds. Don&#8217;t worry you don&#8217;t have to use Loop or timer control for that. ZappySys made it so simple to check such thing without Loop /Timer.</p>
<ol>
<li>Drag and drop the ZS Salesforce API Task in the design surface.<img decoding="async" class="figureimage" title="SSIS Salesforce API Task - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/salesforce-api-task/ssis-salesforce-api-task-drag.png" alt="SSIS Salesforce API Task - Drag and Drop" /></li>
<li>Double click and configure like below. URL will be different this time. Use variable as below and replace your instance ID<br />
<pre class="crayon-plain-tag">https://{your-instance}.salesforce.com/services/data/v50.0/jobs/query/{{User::JobId}}</pre>
<div id="attachment_9518" style="width: 720px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-api-job-status-check.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9518" class="size-full wp-image-9518" src="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-api-job-status-check.png" alt="Check Salesforce Job Status Periodically (Without Loop + Timer Controls) " width="710" height="566" srcset="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-api-job-status-check.png 710w, https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-api-job-status-check-300x239.png 300w" sizes="(max-width: 710px) 100vw, 710px" /></a><p id="caption-attachment-9518" class="wp-caption-text">Check Salesforce Job Status Periodically (Without Loop + Timer Controls)</p></div></li>
<li>Now go to the Status Check Tab and configure it, as shown below. It will keep looking for the words below in the response to decide whether it is a Success or Failure. If those words are not found, they will be checked every 5 seconds (Maximum 1200 secs).<br />
&#8211; Check Enable Status Check option<br />
&#8211; For Success Value &#8211; Enter <strong>JobComplete</strong><br />
-Check Fail task option<br />
&#8211; Enter <strong>Cancel|Failed|Abort</strong> in the text box</p>
<div id="attachment_9519" style="width: 709px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-api-job-status-check-2.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9519" class="size-full wp-image-9519" src="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-api-job-status-check-2.png" alt="Configure Job Status Check Loop using Salesforce API Task" width="699" height="640" srcset="https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-api-job-status-check-2.png 699w, https://zappysys.com/blog/wp-content/uploads/2022/01/ssis-salesforce-api-job-status-check-2-300x275.png 300w" sizes="(max-width: 699px) 100vw, 699px" /></a><p id="caption-attachment-9519" class="wp-caption-text">Configure Job Status Check Loop using Salesforce API Task</p></div></li>
</ol>
<h2></h2>
<h3>Read data (Compressed CSV Format)</h3>
<p>Last step is <a href="https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/query_get_job_results.htm" target="_blank" rel="noopener">read the result</a> from completed Salesforce Job. Its in CSV format so we will use Advanced <a href="https://zappysys.com/products/ssis-powerpack/ssis-csv-file-source-flat-file-web-api/" target="_blank" rel="noopener">SSIS CSV Source</a> which supports API connection to Salesforce. For that, we will use the same Salesforce API Task used before.</p>
<ol>
<li>Drag and Drop SSIS Data Flow Task from SSIS Toolbox.<br />
<img decoding="async" class="figureimage" title="SSIS Data Flow Task - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/drag-and-drop-data-flow-task.png" alt="SSIS Data Flow Task - Drag and Drop" /></li>
<li>Double click on the DataFlow task to see DataFlow designer surface.</li>
<li>Here, In Visual Studio, drag and drop the ZS CSV Source (Web API or File) in the design panel<br />
<img decoding="async" class="figureimage" title="SSIS CSV Source (Web API or File) - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/csv-source/ssis-csv-file-source-drag.png" alt="SSIS CSV Source (Web API or File) - Drag and Drop" /></li>
<li>Double click on ZS CSV Source (Web API or File) Configure it like below.<br />
&#8211; Enter URL to read result like this (You can supply OPTIONAL maxRecords parameters to control how much data comes in a single response)<br />
<pre class="crayon-plain-tag">https://{your-instance}.salesforce.com/services/data/v50.0/jobs/query/{{User::JobId}}/results
--OR--
https://{your-instance}.salesforce.com/services/data/v50.0/jobs/query/{{User::JobId}}/results?maxRecords=50000</pre>
&#8211; Check Use Credentials and select Salesforce Connection<br />
&#8211; Click Preview (assuming JobId variable has a valid completed JobId)</p>
<div id="attachment_9520" style="width: 689px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2022/01/read-salesforce-data-bulk-api-csv-result.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9520" class="size-full wp-image-9520" src="https://zappysys.com/blog/wp-content/uploads/2022/01/read-salesforce-data-bulk-api-csv-result.png" alt="Read Salesforce Bulk API Job Result - Using SSIS CSV / API Source" width="679" height="663" srcset="https://zappysys.com/blog/wp-content/uploads/2022/01/read-salesforce-data-bulk-api-csv-result.png 679w, https://zappysys.com/blog/wp-content/uploads/2022/01/read-salesforce-data-bulk-api-csv-result-300x293.png 300w" sizes="(max-width: 679px) 100vw, 679px" /></a><p id="caption-attachment-9520" class="wp-caption-text">Read Salesforce Bulk API Job Result &#8211; Using SSIS CSV / API Source</p></div></li>
<li>Now, set up Pagination as below to read all records using an automated loop. You will need <strong>VERSION Released after Jun 20, 2022</strong> to use Regular Expression feature in Header Value extractionBy default, Salesforce doesn&#8217;t send all records in response so we <a href="https://zappysys.com/blog/ssis-rest-api-looping-until-no-more-pages-found/#Method-7_REST_APIPagination_using_Cursor_Continuation_Token_from_Response_Header" target="_blank" rel="noopener">need to setup pagination</a>. In below example we are reading <strong>Sforce-Locator</strong> attribute from Response and sending it to the next URL as <strong>locator=&lt;continue-token&gt;</strong> value<br />
&#8211; Choose <strong>Response Header Contains Continue Token </strong><br />
&#8211; Enter below expression in <strong>Page Num Indicator</strong><br />
<pre class="crayon-plain-tag">locator=Sforce-Locator(^((?!null\b).)*$)</pre>
Basically, the above expression will keep looping until we find <strong>Sforce-Locator : null</strong> in the response header.</p>
<div id="attachment_9723" style="width: 872px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-bulk-query-api-pagination-read-csv-data.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-9723" class="size-full wp-image-9723" src="https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-bulk-query-api-pagination-read-csv-data.png" alt="Pagination for Salesforce Bulk Query API (Get Header Value from Sforce-Locator)" width="862" height="523" srcset="https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-bulk-query-api-pagination-read-csv-data.png 862w, https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-bulk-query-api-pagination-read-csv-data-300x182.png 300w, https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-bulk-query-api-pagination-read-csv-data-768x466.png 768w" sizes="(max-width: 862px) 100vw, 862px" /></a><p id="caption-attachment-9723" class="wp-caption-text">Pagination for Salesforce Bulk Query API (Get Header Value from Sforce-Locator)</p></div></li>
<li>Click OK to save and now run entire package like below.</li>
</ol>
<div id="attachment_9515" style="width: 671px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-query-bulk-api-read-data.png"><img decoding="async" aria-describedby="caption-attachment-9515" class="size-full wp-image-9515" src="https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-query-bulk-api-read-data.png" alt="Query Salesforce Data using Bulk API in SSIS (read using SOQL query in Bulk mode / large dataset)" width="661" height="330" srcset="https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-query-bulk-api-read-data.png 661w, https://zappysys.com/blog/wp-content/uploads/2022/01/salesforce-query-bulk-api-read-data-300x150.png 300w" sizes="(max-width: 661px) 100vw, 661px" /></a><p id="caption-attachment-9515" class="wp-caption-text">Query Salesforce Data using Bulk API in SSIS (read using SOQL query in Bulk mode / large dataset)</p></div>
<h2>Conclusion</h2>
<p>In this article we saw how to use various ZappySys Components / Task to achieve complex Salesforce API calls to read Query data using Bulk API. Download <a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">SSIS PowerPack</a> and try yourself and also explore 70+ other tasks /components not discussed in this article.</p>
<p>The post <a href="https://zappysys.com/blog/query-salesforce-data-using-bulk-api-ssis/">How to query salesforce data using Bulk API in SSIS</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to register Salesforce App and obtain Client ID / Secret (for API Call / OAuth)</title>
		<link>https://zappysys.com/blog/register-salesforce-app-obtain-client-id-secret-oauth-api-call/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Mon, 27 Dec 2021 20:40:45 +0000</pubDate>
				<category><![CDATA[Salesforce Driver]]></category>
		<category><![CDATA[SSIS Salesforce Connection]]></category>
		<category><![CDATA[SSIS Salesforce Destination]]></category>
		<category><![CDATA[SSIS Salesforce Source]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[odbc]]></category>
		<category><![CDATA[salesforce]]></category>
		<category><![CDATA[ssis]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=9482</guid>

					<description><![CDATA[<p>Introduction Using Salesforce Connection with OAuth App in SSIS / ODBC Once you have Client ID / Secret, you can use it in the Salesforce Connection in SSIS Connector / ODBC Driver for Salesforce like below (Only the new version will have OAuth option) Troubleshooting Known Issues Let&#8217;s look at some common issues with Salesforce [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/register-salesforce-app-obtain-client-id-secret-oauth-api-call/">How to register Salesforce App and obtain Client ID / Secret (for API Call / OAuth)</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<div class="content_block" id="custom_post_widget-9476">In this section, we will discuss how to register OAuth App to call Salesforce API using Client ID / Secret rather than using your User Id / Password.

Once you follow these steps below to register your Salesforce App (OAuth App), at the end you will get a Client ID (sometimes referred to as App Id) and Client Secret (or App Secret). These two pieces can be used later on to call Salesforce API using OAuth.

So let's get started.
<h3>Register Salesforce App (OAuth)</h3>
<ol>
 	<li>Login into your account and go to <strong><em>Setup</em> </strong>as shown below (click on gear icon at the top right corner):
<img loading="lazy" decoding="async" src="https://zappysys.zendesk.com/attachments/token/7D9Rx9qHJswkt28sC5vTggrNT/?name=inline-1178316509.png" alt="Accessing Salesforce Setup to create an OAuth App" width="342" height="233" data-original-height="233" data-original-width="342" /></li>
 	<li>Then in the search bar input "app" and open <strong><em>App Manager</em></strong>:
<img loading="lazy" decoding="async" src="https://zappysys.zendesk.com/attachments/token/DTjFQpyDw4NViKdJyhyFkO1ng/?name=inline1698967483.png" alt="Searching Salesforce App Manager to create an OAuth App" width="689" height="364" data-original-height="364" data-original-width="689" /></li>
 	<li>Then click <strong><em>New Connected App</em></strong> to create a new OAuth App:
<strong>NOTE:</strong> In some version, it may say <strong><strong>New External Client App
</strong></strong>
<p data-start="1271" data-end="1309">Look for one of the following buttons:</p>

<ul data-start="1310" data-end="1395">
 	<li data-start="1310" data-end="1348">
<p data-start="1312" data-end="1348"><strong data-start="1312" data-end="1333">New Connected App</strong> (Classic name)</p>
</li>
 	<li data-start="1349" data-end="1395">
<p data-start="1351" data-end="1395"><strong data-start="1351" data-end="1378">New External Client App</strong> (Lightning name)</p>
</li>
</ul>
<img loading="lazy" decoding="async" src="https://zappysys.zendesk.com/attachments/token/eD6OrA9TqfRuM5N41Vqd7nrvb/?name=inline684283902.png" alt="Creating a Salesforce App to get data via ODBC driver" width="867" height="327" data-original-height="327" data-original-width="867" /></li>
 	<li>Give your App a name and:
- Enable OAuth Settings
- Set callback URL to following two URLs (one in each line)
<strong><em>https://login.salesforce.com/services/oauth2/success
</em></strong><em><strong>https://zappysys.com/oauth</strong></em>
- Add an OAuth scope you want or simply add "<strong><em>Full access</em></strong>".
- Add "<strong><em>Perform requests on your behalf at any time (offline_token)</em></strong>" scope to get a refresh token so that you don't have to re-authenticate each time requesting an access token:<a href="https://zappysys.com/blog/wp-content/uploads/2018/06/create-salesforce-connected-oauth-app-for-odbc-datasource.png"><img loading="lazy" decoding="async" class="wp-image-4267 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/06/create-salesforce-connected-oauth-app-for-odbc-datasource.png" alt="Configuring Salesforce App OAuth settings to get data via ODBC driver" width="1041" height="700" srcset="https://zappysys.com/blog/wp-content/uploads/2018/06/create-salesforce-connected-oauth-app-for-odbc-datasource.png 1041w, https://zappysys.com/blog/wp-content/uploads/2018/06/create-salesforce-connected-oauth-app-for-odbc-datasource-300x202.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/06/create-salesforce-connected-oauth-app-for-odbc-datasource-768x516.png 768w, https://zappysys.com/blog/wp-content/uploads/2018/06/create-salesforce-connected-oauth-app-for-odbc-datasource-1024x689.png 1024w, https://zappysys.com/blog/wp-content/uploads/2018/06/create-salesforce-connected-oauth-app-for-odbc-datasource-272x182.png 272w" sizes="(max-width: 1041px) 100vw, 1041px" /></a>

<span style="text-decoration: underline; color: #800000;"><strong>IMPORTANT:</strong></span> You can use "<strong>Access and manage your data (api)</strong>" if you do not like to grant full permission to this app but make sure you request same permission from the caller app too  (Example on ZappySys Salesforce Connection UI -&gt; Advanced Tab -&gt; Set scope as "<strong>api offline_access</strong>" rather than "<strong>full offline_access</strong>"</li>
 	<li>Click "Save".</li>
</ol>
<h3>Get Client Id and Client Secret for Salesforce Connected App</h3>
Once the App is created, we need to find out the App Id / Secret so we can use it for API calls.
<ol>
 	<li>Go to App Manager</li>
 	<li>Find out the recently created App and click View (click on the small arrow to the right)
<a href="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-view-edit-oauth-app-settings.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9477" src="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-view-edit-oauth-app-settings.png" alt="" width="1029" height="413" srcset="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-view-edit-oauth-app-settings.png 1029w, https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-view-edit-oauth-app-settings-300x120.png 300w, https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-view-edit-oauth-app-settings-768x308.png 768w, https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-view-edit-oauth-app-settings-1024x411.png 1024w" sizes="(max-width: 1029px) 100vw, 1029px" /></a></li>
 	<li>Once App page is loaded you can Copy <strong>Consumer Key</strong> and <strong>Consumer Secret</strong> (click on reveal to see). Also copy anyone Call back URL (We will need this for OAuth Connection &gt; Advanced Tab &gt; Call Back URL or Redirect URL property depending on which ZappySys Product / Driver you are using)
<a href="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-oauth-app-clientid-secret-callbackurl.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9478" src="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-oauth-app-clientid-secret-callbackurl.png" alt="" width="974" height="554" srcset="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-oauth-app-clientid-secret-callbackurl.png 974w, https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-oauth-app-clientid-secret-callbackurl-300x171.png 300w, https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-oauth-app-clientid-secret-callbackurl-768x437.png 768w" sizes="(max-width: 974px) 100vw, 974px" /></a></li>
 	<li>That's it, you can now use these 3 pieces to ZappySys <strong>OAuth connection UI</strong> or on <strong>Salesforce Connection UI</strong> (new version with OAuth support). The above screenshot shows where to enter these 3 pieces in the New Salesforce Connection. For the OAuth Connection, the redirect URL goes to the Advanced Tab &gt; Callback URL textbox.</li>
</ol>
<h3>Get Client Id and Secret for Salesforce External Client App</h3>
If you created a new App by clicking on the <strong>New External Client App</strong> button, then your App may not be visible in the App Manager Screen. In that case, find it below way.

[caption id="attachment_11637" align="alignnone" width="1222"]<a href="https://zappysys.com/blog/wp-content/uploads/2021/12/obtain-salesforce-oauth-clientid-secret.jpg"><img loading="lazy" decoding="async" class="size-full wp-image-11637" src="https://zappysys.com/blog/wp-content/uploads/2021/12/obtain-salesforce-oauth-clientid-secret.jpg" alt="" width="1222" height="733" srcset="https://zappysys.com/blog/wp-content/uploads/2021/12/obtain-salesforce-oauth-clientid-secret.jpg 1222w, https://zappysys.com/blog/wp-content/uploads/2021/12/obtain-salesforce-oauth-clientid-secret-300x180.jpg 300w, https://zappysys.com/blog/wp-content/uploads/2021/12/obtain-salesforce-oauth-clientid-secret-1024x614.jpg 1024w, https://zappysys.com/blog/wp-content/uploads/2021/12/obtain-salesforce-oauth-clientid-secret-768x461.jpg 768w" sizes="(max-width: 1222px) 100vw, 1222px" /></a> Get Client Id, Client Secret - For New External Client App[/caption]
<h3>Enable Client Credentials Grant (Non-Interactive Run-As)</h3>
If you like to enable Non-Interactive mode, just like UserId / Password Authentication, but without actually passing a real UserId or Password on the Connection UI, then you can enable Client Credentials Flow as below.

<strong>NOTE:</strong> Only the New version of ZappySys Salesforce Connection supports Client Credentials Grant. <span style="text-decoration: underline;"><strong>Version released after Nov 1, 2025 supports this grant type</strong></span>.

[caption id="attachment_11639" align="alignnone" width="419"]<a href="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-client-credentials-grant-runas.jpg"><img loading="lazy" decoding="async" class="size-full wp-image-11639" src="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-client-credentials-grant-runas.jpg" alt="" width="419" height="480" srcset="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-client-credentials-grant-runas.jpg 419w, https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-client-credentials-grant-runas-262x300.jpg 262w" sizes="(max-width: 419px) 100vw, 419px" /></a> Enable Salesforce Client Credentials Grant (Run As)[/caption]
<h3>(OPTIONAL) Configure Salesforce OAuth refresh token validity</h3>
By default, Salesforce Refresh Token doesn't expire once you generate. If you want to change the default behavior, follow these steps.
<ol>
 	<li>Go to "<strong>Manage Connected Apps</strong>" menu item and press on your App name:<img loading="lazy" decoding="async" class="wp-image-4298 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/06/salesforce-oauth-app-policy-management-2.png" alt="Finding Salesforce App to configure its policies" width="660" height="410" srcset="https://zappysys.com/blog/wp-content/uploads/2018/06/salesforce-oauth-app-policy-management-2.png 660w, https://zappysys.com/blog/wp-content/uploads/2018/06/salesforce-oauth-app-policy-management-2-300x186.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/06/salesforce-oauth-app-policy-management-2-436x272.png 436w" sizes="(max-width: 660px) 100vw, 660px" /></li>
 	<li>Click "Edit Policies" to configure refresh token validity:
<img loading="lazy" decoding="async" class="wp-image-4271 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/06/edit-salesforce-connected-app-policies.png" alt="Editing Salesforce App OAuth refresh token issuing policy" width="680" height="391" srcset="https://zappysys.com/blog/wp-content/uploads/2018/06/edit-salesforce-connected-app-policies.png 680w, https://zappysys.com/blog/wp-content/uploads/2018/06/edit-salesforce-connected-app-policies-300x173.png 300w" sizes="(max-width: 680px) 100vw, 680px" /></li>
 	<li>Set "<strong>All users may self-authorize</strong>" and "<strong>Refresh token is valid until revoked</strong>" options:<a href="https://zappysys.com/blog/wp-content/uploads/2018/06/salesforce-rest-api-app-odbc-oauth-refresh-token-validity-1.png"><img loading="lazy" decoding="async" class="wp-image-4273 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/06/salesforce-rest-api-app-odbc-oauth-refresh-token-validity-1.png" alt="Making Salesforce App OAuth refresh token to never expire" width="870" height="498" srcset="https://zappysys.com/blog/wp-content/uploads/2018/06/salesforce-rest-api-app-odbc-oauth-refresh-token-validity-1.png 870w, https://zappysys.com/blog/wp-content/uploads/2018/06/salesforce-rest-api-app-odbc-oauth-refresh-token-validity-1-300x172.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/06/salesforce-rest-api-app-odbc-oauth-refresh-token-validity-1-768x440.png 768w" sizes="(max-width: 870px) 100vw, 870px" /></a></li>
 	<li>Click "Save".</li>
</ol>
<h3></h3></div>
<h2>Using Salesforce Connection with OAuth App in SSIS / ODBC</h2>
<p>Once you have Client ID / Secret, you can use it in the Salesforce Connection in SSIS Connector / ODBC Driver for Salesforce like below (Only the new version will have OAuth option)</p>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-connection-using-oauth-app-clientid-secret.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9513" src="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-connection-using-oauth-app-clientid-secret.png" alt="" width="604" height="383" srcset="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-connection-using-oauth-app-clientid-secret.png 604w, https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-connection-using-oauth-app-clientid-secret-300x190.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></a></p>
<h2>Troubleshooting Known Issues</h2>
<p>Let&#8217;s look at some common issues with Salesforce Connection and how to fix them.</p>
<h3>OAuth Error: Missing Required Code Challenge</h3>
<p>When you click Generate Token button, you may get an error like the one below.</p>
<div id="attachment_11066" style="width: 767px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-oauth-pkce-verfier-error-missing-required-code-challenge.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11066" class="size-full wp-image-11066" src="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-oauth-pkce-verfier-error-missing-required-code-challenge.png" alt="Salesforce OAuth Generate Token Error - Missing Required Code Challenge" width="757" height="571" srcset="https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-oauth-pkce-verfier-error-missing-required-code-challenge.png 757w, https://zappysys.com/blog/wp-content/uploads/2021/12/salesforce-oauth-pkce-verfier-error-missing-required-code-challenge-300x226.png 300w" sizes="(max-width: 757px) 100vw, 757px" /></a><p id="caption-attachment-11066" class="wp-caption-text">Salesforce OAuth Generate Token Error &#8211; Missing Required Code Challenge</p></div>
<p><strong>Solution</strong></p>
<p>Here is how to fix it.</p>
<p>For Salesforce Connection UI: Go to Advanced Tab =&gt; Check Enable PKCE Code Verifier option<br />
&#8211;OR&#8211;<br />
For OAuth Connection UI: Go to OAuth2 Grant Options Tab =&gt; Check Enable Code Verifier Option</p>
<div id="attachment_11067" style="width: 1384px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2021/12/oauth-connection-enable-pkce-code-verifier-option.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11067" class="size-full wp-image-11067" src="https://zappysys.com/blog/wp-content/uploads/2021/12/oauth-connection-enable-pkce-code-verifier-option.png" alt="Enable PKCE code verifier option - OAuth Connection for Salesforce" width="1374" height="637" srcset="https://zappysys.com/blog/wp-content/uploads/2021/12/oauth-connection-enable-pkce-code-verifier-option.png 1374w, https://zappysys.com/blog/wp-content/uploads/2021/12/oauth-connection-enable-pkce-code-verifier-option-300x139.png 300w, https://zappysys.com/blog/wp-content/uploads/2021/12/oauth-connection-enable-pkce-code-verifier-option-1024x475.png 1024w, https://zappysys.com/blog/wp-content/uploads/2021/12/oauth-connection-enable-pkce-code-verifier-option-768x356.png 768w" sizes="(max-width: 1374px) 100vw, 1374px" /></a><p id="caption-attachment-11067" class="wp-caption-text">Enable PKCE code verifier option &#8211; OAuth Connection for Salesforce.</p></div>
<p>The post <a href="https://zappysys.com/blog/register-salesforce-app-obtain-client-id-secret-oauth-api-call/">How to register Salesforce App and obtain Client ID / Secret (for API Call / OAuth)</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to read Salesforce Metadata in SSIS using REST API (JSON Source)</title>
		<link>https://zappysys.com/blog/read-salesforce-metadata-ssis-using-rest-api-json-source/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Mon, 18 May 2020 16:13:07 +0000</pubDate>
				<category><![CDATA[SSIS JSON Source (File/REST)]]></category>
		<category><![CDATA[SSIS Salesforce Connection]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[salesforce]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=8909</guid>

					<description><![CDATA[<p>Introduction In our previous posts we saw how to read and write Salesforce Data using SSIS. In this post we will see how to read Salesforce Metadata in SSIS using JSON Source. Step-By-Step In this section you will learn how to use ZappySys JSON Source Adapter to extract data from Salesforce REST API (JSON Format). You [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/read-salesforce-metadata-ssis-using-rest-api-json-source/">How to read Salesforce Metadata in SSIS using REST API (JSON Source)</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In our previous posts we saw how to <a href="https://zappysys.com/blog/export-data-from-salesforce-to-sql-server-using-ssis/" target="_blank" rel="noopener">read</a> and <a href="https://zappysys.com/blog/loading-data-salesforce-using-ssis-bulk-insert-update-delete/" target="_blank" rel="noopener">write</a> Salesforce Data using SSIS. In this post we will see how to read Salesforce Metadata in SSIS using <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">JSON Source</a>.</p>
<div class="content_block" id="custom_post_widget-2523"><h2><span id="Prerequisites">Prerequisites</span></h2>
Before we perform the steps listed in this article, you will need to make sure the following prerequisites are met:
<ol style="margin-left: 1.5em;">
 	<li><abbr title="SQL Server Integration Services">SSIS</abbr> designer installed. Sometimes it is referred to as <abbr title="Business Intelligence Development Studio">BIDS</abbr> or <abbr title="SQL Server Data Tools">SSDT</abbr> (<a href="https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt" target="_blank" rel="noopener">download it from the Microsoft site</a>).</li>
 	<li>Basic knowledge of SSIS package development using <em>Microsoft SQL Server Integration Services</em>.</li>
 	<li>Make sure <span style="text-decoration: underline;"><a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">ZappySys SSIS PowerPack</a></span> is installed (<a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">download it</a>, if you haven't already).</li>
 	<li>(<em>Optional step</em>)<em>.</em> <a href="https://zappysys.zendesk.com/hc/en-us/articles/360035974593" target="_blank" rel="noopener">Read this article</a>, if you are planning to deploy packages to a server and schedule their execution later.</li>
</ol></div>
<h2>Step-By-Step</h2>
<p>In this section you will learn how to use ZappySys JSON Source Adapter to extract data from Salesforce REST API (JSON Format). You can call pretty much Any REST API to fetch data from salesforce but our example for this post would be read metadata (i.e. table list) from salesforce (we will call <a href="https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_basic_info.htm" target="_blank" rel="noopener">sobjects</a> to get all table information) .</p>
<p>So lets get started.</p>
<ol>
<li>In case you missed the previous section, You need to <b>Download and Install</b> SSIS <a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">ZappySys PowerPack.</a></li>
<li>Once you finished first step, Open Visual Studio and Create New SSIS Package Project.</li>
<li>Now, Drag and Drop SSIS <b>Data Flow Task</b> from SSIS Toolbox.<br />
<img decoding="async" class="figureimage" title="SSIS Data Flow Task - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/drag-and-drop-data-flow-task.png" alt="SSIS Data Flow Task - Drag and Drop" /></li>
<li>Double click on the Data Flow task to see Data Flow designer surface.</li>
<li>From the SSIS toolbox drag and drop JSON Source on the Data Flow designer surface.<br />
<img decoding="async" class="figureimage" title="SSIS JSON Source - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/json-source/ssis-json-source-adapter-drag.png" alt="SSIS JSON Source - Drag and Drop" /></li>
<li>Now double click JSON Source enter any valid REST API URL like below. Make sure you used correct instance name. Using wrong instance name might slow down connection or fail your request. If you are not sure then just login to salesforce portal using credentials you like to use and observe browser URL.. It will have instance number.<br />
<pre class="crayon-plain-tag">https://na34.salesforce.com/services/data/v20.0/sobjects/Account/describe/</pre>
</li>
<li>Check Use Connection and select New <strong>ZS-Salesforce</strong> Connection from the list.
<div id="attachment_8918" style="width: 602px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/07/create-ssis-rest-api-connection-connect-http-oauth-salesforce.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8918" class="size-full wp-image-8918" src="https://zappysys.com/blog/wp-content/uploads/2018/07/create-ssis-rest-api-connection-connect-http-oauth-salesforce.png" alt="Create new REST API Connection in SSIS (For JSON, XML or CSV Source)" width="592" height="215" srcset="https://zappysys.com/blog/wp-content/uploads/2018/07/create-ssis-rest-api-connection-connect-http-oauth-salesforce.png 592w, https://zappysys.com/blog/wp-content/uploads/2018/07/create-ssis-rest-api-connection-connect-http-oauth-salesforce-300x109.png 300w" sizes="(max-width: 592px) 100vw, 592px" /></a><p id="caption-attachment-8918" class="wp-caption-text">Create new REST API Connection in SSIS (For JSON, XML or CSV Source)</p></div></li>
<li>Configure your salesforce connection<br />
<img decoding="async" class="figureimage" title="SSIS Salesforce Connection Manager UI " src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/salesforce-connection/ssis-salesforce-connection-manager-ui.png" alt="SSIS Salesforce Connection Manager UI " /></li>
<li>Select or type filter. For example in this case you will type <pre class="crayon-plain-tag">$.sobjects[*]</pre></li>
<li>Click OK to Save UI and attach your source to some target like OLEDB Destination and run your data flow to test.</li>
<li>Here is full UI after all configurations.
<div id="attachment_10310" style="width: 909px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-call-rest-api-get-metadata-eg-table-field-list.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10310" class="wp-image-10310 size-full" src="https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-call-rest-api-get-metadata-eg-table-field-list.png" alt="ssis-salesforce-call-rest-api-get-metadata-eg-table-field-list" width="899" height="792" srcset="https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-call-rest-api-get-metadata-eg-table-field-list.png 899w, https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-call-rest-api-get-metadata-eg-table-field-list-300x264.png 300w, https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-call-rest-api-get-metadata-eg-table-field-list-768x677.png 768w" sizes="(max-width: 899px) 100vw, 899px" /></a><p id="caption-attachment-10310" class="wp-caption-text">Read Salesforce Metadata in SSIS (Get Table List Example &#8211; SOObject REST API Call)</p></div></li>
</ol>
<h2>How to read Salesforce Table Fields Metadata</h2>
<p>If you have need to read fields and its information for tables then use below steps</p>
<ol>
<li>Use almost identical steps as previous section. Except two things. Our URL and Filter would be different.</li>
<li>Configure your API URL as below<br />
<pre class="crayon-plain-tag">https://YOUR-INSTANCE.salesforce.com/services/data/v20.0/sobjects/YOUR-TABLE/describe/</pre>
<strong>Example:</strong><br />
<pre class="crayon-plain-tag">https://demo.salesforce.com/services/data/v20.0/sobjects/Account/describe/</pre>
</li>
<li>Configure Filter as a <pre class="crayon-plain-tag">$.fields[*]</pre></li>
</ol>
<div id="attachment_10311" style="width: 902px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-get-table-fields-metadata-1.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10311" class="wp-image-10311 size-full" src="https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-get-table-fields-metadata-1.png" alt="ssis-salesforce-get-table-fields-metadata-1" width="892" height="757" srcset="https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-get-table-fields-metadata-1.png 892w, https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-get-table-fields-metadata-1-300x255.png 300w, https://zappysys.com/blog/wp-content/uploads/2020/05/ssis-salesforce-get-table-fields-metadata-1-768x652.png 768w" sizes="(max-width: 892px) 100vw, 892px" /></a><p id="caption-attachment-10311" class="wp-caption-text">Get Salesforce Table Fields Metadata using REST API call in SSIS</p></div>
<p>&nbsp;</p>
<p>The post <a href="https://zappysys.com/blog/read-salesforce-metadata-ssis-using-rest-api-json-source/">How to read Salesforce Metadata in SSIS using REST API (JSON Source)</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Read from Salesforce Custom Reports in SSIS / ODBC</title>
		<link>https://zappysys.com/blog/read-salesforce-custom-reports-ssis-odbc/</link>
		
		<dc:creator><![CDATA[ZappySys]]></dc:creator>
		<pubDate>Wed, 11 Jul 2018 19:21:11 +0000</pubDate>
				<category><![CDATA[JSON File / REST API Driver]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[REST API Integration]]></category>
		<category><![CDATA[SSIS JSON Source (File/REST)]]></category>
		<category><![CDATA[SSIS Salesforce Connection]]></category>
		<category><![CDATA[odbc]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[salesforce]]></category>
		<guid isPermaLink="false">https://zappysys.com/blog/?p=4414</guid>

					<description><![CDATA[<p>Introduction In our previous posts we saw how to read and write Salesforce Data using SSIS Salesforce Connectors (Source /Destination). It covered how to read salesforce data from Tables and SOQL query but it does not support reading from reports. So now in this post we will see how to read Salesforce data from Custom Reports [&#8230;]</p>
<p>The post <a href="https://zappysys.com/blog/read-salesforce-custom-reports-ssis-odbc/">Read from Salesforce Custom Reports in SSIS / ODBC</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p><a href="https://zappysys.com/blog/wp-content/uploads/2017/09/salesforce-logo-180x180.png"><img loading="lazy" decoding="async" class=" wp-image-1764 alignleft" src="https://zappysys.com/blog/wp-content/uploads/2017/09/salesforce-logo-180x180.png" alt="" width="107" height="107" srcset="https://zappysys.com/blog/wp-content/uploads/2017/09/salesforce-logo-180x180.png 180w, https://zappysys.com/blog/wp-content/uploads/2017/09/salesforce-logo-180x180-150x150.png 150w" sizes="(max-width: 107px) 100vw, 107px" /></a>In our previous posts we saw how to <a href="https://zappysys.com/blog/export-data-from-salesforce-to-sql-server-using-ssis/" target="_blank" rel="noopener">read</a> and <a href="https://zappysys.com/blog/loading-data-salesforce-using-ssis-bulk-insert-update-delete/" target="_blank" rel="noopener">write</a> Salesforce Data using SSIS Salesforce Connectors (Source /Destination). It covered how to read salesforce data from Tables and SOQL query but it does not support reading from reports. So now in this post we will see <strong>how to read Salesforce data from Custom Reports in SSIS</strong> which will use <a href="https://zappysys.com/products/ssis-powerpack/ssis-json-file-source/" target="_blank" rel="noopener">JSON Source</a> rather than <a href="https://zappysys.com/products/ssis-powerpack/ssis-salesforce-source-connector/" target="_blank" rel="noopener">Salesforce Source</a>.</p>
<p>Later in this post we will show you how to integrate Salesforce data in Apps like Power BI, SSRS, Informatica and languages like C#, Java, Python or T-SQL for MS SQL Folks.</p>
<p>So let&#8217;s get started!!!</p>
<div class="content_block" id="custom_post_widget-2523"><h2><span id="Prerequisites">Prerequisites</span></h2>
Before we perform the steps listed in this article, you will need to make sure the following prerequisites are met:
<ol style="margin-left: 1.5em;">
 	<li><abbr title="SQL Server Integration Services">SSIS</abbr> designer installed. Sometimes it is referred to as <abbr title="Business Intelligence Development Studio">BIDS</abbr> or <abbr title="SQL Server Data Tools">SSDT</abbr> (<a href="https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt" target="_blank" rel="noopener">download it from the Microsoft site</a>).</li>
 	<li>Basic knowledge of SSIS package development using <em>Microsoft SQL Server Integration Services</em>.</li>
 	<li>Make sure <span style="text-decoration: underline;"><a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">ZappySys SSIS PowerPack</a></span> is installed (<a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">download it</a>, if you haven't already).</li>
 	<li>(<em>Optional step</em>)<em>.</em> <a href="https://zappysys.zendesk.com/hc/en-us/articles/360035974593" target="_blank" rel="noopener">Read this article</a>, if you are planning to deploy packages to a server and schedule their execution later.</li>
</ol></div>
<h2></h2>
<h2>Read Salesforce Custom Reports in SSIS</h2>
<p>In this section you will learn how to use ZappySys JSON Source Adapter to extract data from Salesforce REST API (JSON Format). You can call pretty much Any REST API to fetch data from salesforce but our example for this post would be read metadata (i.e. table list) from salesforce (we will call <a href="https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_basic_info.htm" target="_blank" rel="noopener">sobjects</a> to get all table information) .</p>
<p>So lets get started.</p>
<ol>
<li>In case you missed the previous section, You need to <b>Download and Install</b> SSIS <a href="https://zappysys.com/products/ssis-powerpack/download/" target="_blank" rel="noopener">ZappySys PowerPack.</a></li>
<li>Once you finished first step, Open Visual Studio and Create New SSIS Package Project.</li>
<li>Now, Drag and Drop SSIS <b>Data Flow Task</b> from SSIS Toolbox.<br />
<img decoding="async" class="figureimage" title="SSIS Data Flow Task - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/drag-and-drop-data-flow-task.png" alt="SSIS Data Flow Task - Drag and Drop" /></li>
<li>Double click on the Data Flow task to see Data Flow designer surface.</li>
<li>From the SSIS toolbox drag and drop JSON Source on the Data Flow designer surface.<br />
<img decoding="async" class="figureimage" title="SSIS JSON Source - Drag and Drop" src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/json-source/ssis-json-source-adapter-drag.png" alt="SSIS JSON Source - Drag and Drop" /></li>
<li>Now double click JSON Source and enter your Report URL like below. Make sure you replace instance name and report ID as per the screenshot.<br />
<pre class="crayon-plain-tag">https://YOUR-ORG-INSTANCE.salesforce.com/services/data/v64.0/analytics/reports/YOUR-REPORT-ID</pre>
<strong>Example URLs</strong><br />
<pre class="crayon-plain-tag">Using Salesforce Org Domain:
https://zappysys21.salesforce.com/services/data/v64.0/analytics/reports/00O61000001a97n

Using Personal Lighting/My Domain (works when [My Domain] feature enabled):
https://zappysys21.my.salesforce.com/services/data/v64.0/analytics/reports/00O61000001a97n

Using Direct Pod/Instance URL:
https://na34.salesforce.com/services/data/v64.0/analytics/reports/00O61000001a97n</pre>
</li>
<li>Check Use Credentials and configure Salesforce Connection
<div id="attachment_8918" style="width: 602px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/07/create-ssis-rest-api-connection-connect-http-oauth-salesforce.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8918" class="size-full wp-image-8918" src="https://zappysys.com/blog/wp-content/uploads/2018/07/create-ssis-rest-api-connection-connect-http-oauth-salesforce.png" alt="Create new REST API Connection in SSIS (For JSON, XML or CSV Source)" width="592" height="215" srcset="https://zappysys.com/blog/wp-content/uploads/2018/07/create-ssis-rest-api-connection-connect-http-oauth-salesforce.png 592w, https://zappysys.com/blog/wp-content/uploads/2018/07/create-ssis-rest-api-connection-connect-http-oauth-salesforce-300x109.png 300w" sizes="(max-width: 592px) 100vw, 592px" /></a><p id="caption-attachment-8918" class="wp-caption-text">Create new REST API Connection in SSIS (For JSON, XML or CSV Source)</p></div></li>
<li>Configure your Salesforce connection<img decoding="async" class="figureimage" title="SSIS Salesforce Connection Manager UI " src="https://zappysys.com/onlinehelp/ssis-powerpack/scr/images/salesforce-connection/ssis-salesforce-connection-manager-ui.png" alt="SSIS Salesforce Connection Manager UI " /></li>
<li>Select or type filter. For example in this case you will type <pre class="crayon-plain-tag">$.factMap.T!T.rows[*]</pre></li>
<li>Uncheck Use Parents option (You can keep it but it will add many unwanted fields)<div class="su-note"  style="border-color:#e5e54c;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:#FFFF66;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><strong>NOTE:</strong> Please make sure that you&#8217;re configuring an API URL and not the HTML/Browser Page URL as both URLs will be different.Please make sure you replace instance name and report ID as per the below screenshot.<br />
<pre class="crayon-plain-tag">https://YOUR-ORG-INSTANCE.salesforce.com/services/data/v64.0/analytics/reports/YOUR-REPORT-ID</pre>
<strong>Example URLs </strong><br />
<pre class="crayon-plain-tag">https://na34.salesforce.com/services/data/v64.0/analytics/reports/00O61000001a97n

Using Salesforce Org Domain:
https://zappysys21.salesforce.com/services/data/v64.0/analytics/reports/00O61000001a97n

Using Personal Lighting/My Domain (works when [My Domain] feature enabled):
https://zappysys21.my.salesforce.com/services/data/v64.0/analytics/reports/00O61000001a97n

Using Direct Pod/Instance URL:
https://na34.salesforce.com/services/data/v64.0/analytics/reports/00O61000001a97n</pre>
</div></div>
<div id="attachment_10205" style="width: 794px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-read-salesforce-custom-reports.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-10205" class="wp-image-10205 size-full" src="https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-read-salesforce-custom-reports.png" alt="ssis-read-salesforce-custom-reports" width="784" height="652" srcset="https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-read-salesforce-custom-reports.png 784w, https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-read-salesforce-custom-reports-300x249.png 300w, https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-read-salesforce-custom-reports-768x639.png 768w" sizes="(max-width: 784px) 100vw, 784px" /></a><p id="caption-attachment-10205" class="wp-caption-text">Configure &#8211; Read Salesforce Custom Reports Data</p></div></li>
<li>Now Go to Array Transform Tab
<ol>
<li>Select Transform Type : <pre class="crayon-plain-tag">Complex 2-dimensional array</pre></li>
<li>Column name filter: <pre class="crayon-plain-tag">$.reportMetadata.detailColumns[*]</pre></li>
<li>Row values filter: <pre class="crayon-plain-tag">$.dataCells[*].label</pre></li>
</ol>
</li>
<li>Here is how your Array Transform Tab configuration should look like
<div id="attachment_8921" style="width: 689px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/07/advanced-options-salesforce-custom-reports-rest-api-call.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8921" class="size-full wp-image-8921" src="https://zappysys.com/blog/wp-content/uploads/2018/07/advanced-options-salesforce-custom-reports-rest-api-call.png" alt="Configure - Advanced Array Transform (Read Salesforce Custom Reports Data in SSIS)" width="679" height="232" srcset="https://zappysys.com/blog/wp-content/uploads/2018/07/advanced-options-salesforce-custom-reports-rest-api-call.png 679w, https://zappysys.com/blog/wp-content/uploads/2018/07/advanced-options-salesforce-custom-reports-rest-api-call-300x103.png 300w" sizes="(max-width: 679px) 100vw, 679px" /></a><p id="caption-attachment-8921" class="wp-caption-text">Configure &#8211; Advanced Array Transform (Read Salesforce Custom Reports Data in SSIS)</p></div></li>
<li>Now Click OK to Save UI and attach your source to some target like OLEDB Destination and run your data flow to test.
<div id="attachment_8922" style="width: 548px" class="wp-caption alignnone"><a href="https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-extract-data-from-custom-salesforce-report.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-8922" class="size-full wp-image-8922" src="https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-extract-data-from-custom-salesforce-report.png" alt="Extract Data from Salesforce Custom Reports in SSIS - Load into Target like SQL Server, MySQL, PostgreSql, Oracle" width="538" height="602" srcset="https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-extract-data-from-custom-salesforce-report.png 538w, https://zappysys.com/blog/wp-content/uploads/2018/07/ssis-extract-data-from-custom-salesforce-report-268x300.png 268w" sizes="(max-width: 538px) 100vw, 538px" /></a><p id="caption-attachment-8922" class="wp-caption-text">Extract Data from Salesforce Custom Reports in SSIS &#8211; Load into Target like SQL Server, MySQL, PostgreSql, Oracle</p></div></li>
</ol>
<h2>Read Salesforce Custom Reports in ODBC Apps</h2>
<p>So far we have seen how to read salesforce custom report data in SSIS using ETL approach, but what if you are not using SSIS and you want to pull data in programming languages like C#, Java, Python or apps like Power BI, Informatica, Excel, SSRS or using pure T-SQL way in SQL Server?</p>
<div class="content_block" id="custom_post_widget-9166"><h2>Requirements</h2>
In order to access API data inside your App using ODBC Driver you will need to make sure following requirements are met.
<ol>
 	<li>Download and Install <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">ZappySys ODBC PowerPack</a> (This includes XML / JSON / REST API and few other drivers for SQL Server and ODBC connectivity in tools like Excel, Power BI, SSRS)</li>
</ol></div>
<p>ZappySys Provides native <a href="https://zappysys.com/products/odbc-powerpack/salesforce-odbc-driver/" target="_blank" rel="noopener">Salesforce Driver</a> to read / write Salesforce Object&#8217;s data (Its part of <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">ODBC PowerPack</a>). This driver can read/write standard objects (e.g. Accounts, Contacts) However <strong>reading from salesforce custom report</strong> is not supported by native driver. For this purpose you have to use <a href="https://zappysys.com/blog/how-to-call-salesforce-rest-api-via-odbc-driver/" target="_blank" rel="noopener">JSON / REST Driver using this approach</a>. With Generic REST / JSON API driver you can automate pretty much any Salesforce Operations. To get some advanced information on Report API you <a href="https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/SF_Reports_and_Dashboards_Rest_API_web.pdf" target="_blank" rel="noopener">can refer this guide</a></p>
<p>So let&#8217;s get started.</p>
<ol>
<li>Follow <a href="https://zappysys.com/blog/how-to-call-salesforce-rest-api-via-odbc-driver/" target="_blank" rel="noopener">this blog post</a> to install JSON / REST Driver and configure Salesforce OAuth Connection.</li>
<li>Once you can read some sample data described in previous step we are ready to run advanced queries.</li>
<li>Go to Preview Tab and Run below Query to pull data from Custom Report<br />
<pre class="crayon-plain-tag">--change YOUR-INSTANCE and YOUR-REPORT-ID
SELECT * FROM $
WITH(
Src='https://YOUR-ORG-INSTANCE.salesforce.com/services/data/v64.0/analytics/reports/YOUR-REPORT-ID'
,Filter='$.factMap.T!T.rows[*]'
,ArrayTransformType='TransformComplexTwoDimensionalArray'
,ArrayTransColumnNameFilter='$.reportMetadata.detailColumns[*]'
,ArrayTransRowValueFilter='$.dataCells[*].label'
,RequestMethod='GET'
)</pre>
&nbsp;</li>
</ol>
<h2>Integrate Salesforce Data in ODBC Apps (e.g. Power BI, SSRS, Excel, Informatica, Access, C#&#8230;)</h2>
<div class="content_block" id="custom_post_widget-7051">ZappySys ODBC Drivers built using ODBC standard which is widely adopted by industry for a long time. Which mean the majority of BI Tools / Database Engines / ETL Tools already there will support native / 3rd party ODBC Drivers. Below is the small list of most popular tools / programming languages our Drivers support. If your tool / programming language doesn't appear in the below list, which means we have not documented use case but as long as your tool supports ODBC Standard, our drivers should work fine.

&nbsp;

<img loading="lazy" decoding="async" class="" src="//zappysys.com/images/odbc-powerpack/odbc-powerpack-integration.jpg" alt="ZappySys ODBC Drivers for REST API, JSON, XML - Integrate with Power BI, Tableau, QlikView, QlikSense, Informatica PowerCenter, Excel, SQL Server, SSIS, SSAS, SSRS, Visual Studio / WinForm / WCF, Python, C#, VB.net, PHP. PowerShell " width="750" height="372" />
<table style="valign: top;">
<tbody>
<tr>
<td>
<p style="text-align: center;"><strong>BI / Reporting Tools
Integration</strong></p>
</td>
<td style="text-align: center;"><strong>ETL Tools
Integration
</strong></td>
<td style="text-align: center;"><strong>Programming Languages</strong>
<strong>Integration</strong></td>
</tr>
<tr>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/howto-import-json-rest-api-power-bi/" target="_blank" rel="noopener">Microsoft Power BI</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-tableau-read-json-soap-xml-csv/">Tableau</a></li>
 	<li><a href="https://zappysys.com/blog/read-rest-api-using-ssrs-reports-call-json-xml-web-service/" target="_blank" rel="noopener">SSRS (SQL Reporting Services)</a></li>
 	<li><a href="https://zappysys.com/blog/qlik-rest-connector-examples-read-json-xml-api/" target="_blank" rel="noopener">QlikView /Qlik Sense</a></li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-in-microstrategy-json-soap-xml/" target="_blank" rel="noopener">MicroStrategy</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-google-sheet-call-appscript-load-json-soap-xml-csv/" target="_blank" rel="noopener">Google Sheet</a></li>
 	<li><a href="https://zappysys.com/blog/import-json-excel-load-file-rest-api/" target="_blank" rel="noopener">Microsoft Excel</a></li>
 	<li><a href="https://zappysys.com/api/integration-hub/rest-api-connector/access?context=connector" target="_blank" rel="noopener">Microsoft Access</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li><a href="https://zappysys.com/blog/read-json-informatica-import-rest-api-json-file/" target="_blank" rel="noopener">Informatica PowerCenter</a> (Windows)</li>
 	<li>Informatica Cloud</li>
 	<li>SSIS (SQL Integration Services)</li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">SQL Server</a></li>
 	<li><a href="https://zappysys.com/blog/read-write-rest-api-data-in-talend-json-xml-soap/" target="_blank" rel="noopener">Talend Data Studio</a></li>
 	<li><a href="https://zappysys.com/blog/pentaho-read-rest-api-in-pentaho/" target="_blank" rel="noopener">Pentaho Kettle</a></li>
 	<li>Oracle OBIEE</li>
 	<li>Many more (not in this list).....</li>
</ul>
</td>
<td>
<ul>
 	<li>Visual Studio</li>
 	<li><a href="https://zappysys.com/blog/calling-rest-api-in-c/" target="_blank" rel="noopener">C#</a></li>
 	<li>C++</li>
 	<li><a href="https://zappysys.com/blog/connect-java-to-rest-api-json-soap-xml/" target="_blank" rel="noopener">JAVA</a></li>
 	<li><a href="https://zappysys.com/blog/set-rest-python-client/" target="_blank" rel="noopener">Python</a></li>
 	<li>PHP</li>
 	<li><a href="https://zappysys.com/blog/call-rest-api-powershell-script-export-json-csv/" target="_blank" rel="noopener">PowerShell</a></li>
 	<li><a href="https://zappysys.com/blog/import-rest-api-json-sql-server/" target="_blank" rel="noopener">T-SQL (Using Linked Server)</a></li>
</ul>
</td>
</tr>
</tbody>
</table>
&nbsp;</div>
<h2>Conclusion</h2>
<p>In this post we saw how easy it is to perform Salesforce Data Integration in SSIS or any other apps using ZappySys SSIS Connectors or ODBC Drivers. Download FREE Trial of <a href="https://zappysys.com/products/ssis-powerpack/" target="_blank" rel="noopener">SSIS PowerPack</a> or if you need to integration in other apps then <a href="https://zappysys.com/products/odbc-powerpack/" target="_blank" rel="noopener">get ODBC PowerPack here</a></p>
<p>&nbsp;</p>
<p>The post <a href="https://zappysys.com/blog/read-salesforce-custom-reports-ssis-odbc/">Read from Salesforce Custom Reports in SSIS / ODBC</a> appeared first on <a href="https://zappysys.com/blog">ZappySys Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
