# Extract Salesforce Data

The following articles describe using **Single Dataloader** to extract data from Salesforce. The information is stored in CSV format.

1. Log in to your ARM account.
2. Hover your mouse over the [**`Dataloader`**](https://www.autorabit.com/blog/10-benefits-of-salesforce-data-loader/) module and select **`Dataloader`**.The **Dataloader** screen is best viewed when the zoom setting is **75%** on your Chrome/Firefox browser.
3. Click **`Extract`** on the right side of the screen.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FGRvICpVP6nqdT0co95k0%2Fimage.png?alt=media&#x26;token=54c39a63-dd9e-43ed-bd26-42228604d1ea" alt=""><figcaption></figcaption></figure>

4. Choose your [**`Salesforce org`**](https://knowledgebase.autorabit.com/~/revisions/cT0ZuVgeUzTQt27sMR9n/product-guides/arm/arm-features/dataloader/single-dataloader/broken-reference) and your org **`Environment`** (*Production* or *Development* edition, *Sandbox*, or *Pre-Release*).
5. The corresponding **`URL`** and your **`Username`** are automatically generated based on the above selection.
6. Click **`Login and Fetch objects`** to fetch all the objects from your Salesforce org.
7. Select the object from which you wish to extract the data. For example, **Account**, **Contact**, **Lead**, etc. You can use the **`Search`** function to search through your objects and  **`filter`** to filter your standard/custom objects quickly.
8. Click **`Next`**.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FOa1IFlI670SWPxdYpQdT%2Fimage.png?alt=media&#x26;token=029e5eaa-3f11-43c3-b045-430575cad755" alt=""><figcaption></figcaption></figure>

9. On the left, you will be provided with an option to select related objects and their fields. Each object will be displayed as a collapsible unit, under which you can select either all of the fields or required fields. Use the **`Quick Find`** search function to search through your fields quickly.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FifuZUa7UJCnhCdRDBvve%2Fimage.png?alt=media&#x26;token=d840cfd0-44a3-4d24-8dc3-fc5d57ef9aa1" alt="" width="319"><figcaption></figcaption></figure>

10. Select the checkbox before each field to include for the extraction process.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FAFhYtK3NjF8bmueEb3MJ%2Fimage.png?alt=media&#x26;token=7b9a079a-e6f0-4ae9-a298-bf4183b5edb5" alt="" width="320"><figcaption></figcaption></figure>

11. On the right, you can add **`Filters`** to your query. Specifying the filter criteria will extract records within a specified limit. To add filters to your query:

    * For your object *(example- Account)* selected, choose a **`field`** *(example- CreatedDate).*
    * Select the **`operator`**.
    * Enter the **`filter value`** *(example- Date Literals, Last\_week)*.
    * Click on the **+** icon to add the filter.&#x20;
    * To delete a filter, click on the **x** icon.

    <figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FsQ52wNrZrkuv2spnXfVg%2Fimage.png?alt=media&#x26;token=dfeccda2-496f-474d-8d80-50757e15e4c7" alt=""><figcaption></figcaption></figure>
12. In the **`Order By`** section, you can assign the order in which the record is generated, i.e., ascending or descending order.

    * Select a **`field`** to be your sorting criteria.
    * Select your sorting order: **`Ascending`** or **`Descending`**.

    <figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FP1ar2cNW0dwa4oovGAud%2Fimage.png?alt=media&#x26;token=511c1cd1-fa7e-4edd-8f0a-4cfbb178c70e" alt=""><figcaption></figcaption></figure>
13. You can verify your query using the **`Validate Query`** button to ensure it will work properly before running your task. The number of records being extracted is shown as a notification pop-up.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FIP8WJ5D7aMibDsRKXwoC%2Fimage.png?alt=media&#x26;token=440604f0-703a-472b-8637-57f4603ad31b" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2F7zHbIxjQw9L1SzKgUB5p%2Fimage.png?alt=media&#x26;token=264f4216-9482-40c3-a426-64b3f789e3d5" alt=""><figcaption></figcaption></figure>

14. On the **`Process Summary`** screen, you can:
    * Give the process/job a **`Name`**.
    * Select the **`Category`**. Categories are used to classify and group similar processes having similar functionality. In simple terms, you are assigning similar processes to a category. You can select an existing category or create a new one by clicking the **`+`** icon.
    * View the main **`Object`**.
    * View the operation **`Type`** (**`Extract`**).
    * View the number of extracted **`Records`**.
    * **`Limit`** the export row count. Use this option to retrieve some rows from your export results.&#x20;
15. You can schedule your tasks so they start running regularly. You can choose between **`Daily`**, **`Weekly`**, or **`On-demand`** schedules.
16. Finally, click **`Save`** to save your task and run it later.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2F8JjTAZzjVLW3OMC5ZGmb%2F8.png?alt=media&#x26;token=45a39e09-6a44-4608-8093-3ba49973fecb" alt=""><figcaption></figcaption></figure>

17. Your task is shown on top of the lists on the **`Dataloader Summary`** screen.
18. Click **`Run`** to start the dataloader immediately before the scheduled time.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FLxIxGBOagcVv7VqbGRFV%2Fimage.png?alt=media&#x26;token=476d9f0f-6d49-438b-aa3e-61820fac2c04" alt="" width="563"><figcaption></figcaption></figure>

19. Select the configurations here:
    * **Use Batch Size** whenever the Bulk API checkbox is left unchecked, the Batch API is used.
    * **Salesforce Batch API** is based on SOAP principles and is optimized for real-time client applications that update small numbers of records at a time. Although SOAP API can also process larger numbers of records, it becomes less practical when the data sets contain hundreds of thousands of records. In such cases, **Bulk API** is the best option. **Batch API** processes data in smaller batches than bulk API, resulting in a higher API call usage per operation on large volumes of data.
    * **Limit** the export row count.
    * **Use UTF-8 file encoding for file read and write operations**.
20. Click **`Run`**.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2F7hbLQdCnTANO6x4mo7hU%2Fimage.png?alt=media&#x26;token=5c057322-966e-40c1-9033-21002495f6db" alt="" width="413"><figcaption></figcaption></figure>

21. The **`Results of Last Run`** section shows the number of successful or failed records extracted. You can view the records or download them to your local system. The records are generated in ZIP format.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FPHXHj0lLJERLAtctc3EN%2Fimage.png?alt=media&#x26;token=188ea9f2-1be6-4f61-b095-8d3d9d04b6a5" alt="" width="563"><figcaption></figcaption></figure>

### More Options <a href="#more-options" id="more-options"></a>

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2Fk5s19w79v2OBdptF07OZ%2Fimage.png?alt=media&#x26;token=3e085a1c-3c70-499a-935d-8b79ab951e4e" alt="" width="563"><figcaption></figcaption></figure>

1. **`Edit:`** Modifies or updates the process details.&#x20;
2. **`Abort:`** Aborts the process while it is still running.
3. **`Schedule:`** Sets the schedule at which the process must run.
4. **`Delete:`** Deletes the extract process.
5. **`Log:`** Provides information about the execution of the extracted task.
6. **`VR/WFR:`** ARM lists all the validations/workflow rules that were set. The UI lists all the validation rules, and users must enable them for the disabled validation rules (if required). For more info, refer to the article: [Validation/ Workflow Rules](https://knowledgebase.autorabit.com/~/revisions/cT0ZuVgeUzTQt27sMR9n/product-guides/arm/arm-features/dataloader/validation-workflow-rules). Sample VR/WFR attached:

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FZF8rjur09qLC7Q3e8qMF%2Fimage.png?alt=media&#x26;token=25132e87-b104-4041-9930-ba4800734bb1" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FmZW4Rkf71yV9WzQhjvD9%2Fimage.png?alt=media&#x26;token=d974c5cb-042b-49d0-abdc-caaca5e4fc3f" alt=""><figcaption></figcaption></figure>

7. **`Clone:`** Creates a copy (clone) of the extract process. Operation type and object name are displayed. Enter the **`Process Name`** in the field. The default **`Salesforce Org`** is automatically selected. To choose a different org, use the dropdown list. Use the **`Edit`** button to change the query filter, then click **`Validate`**. Finally, click **`Clone`**.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2F8UF6sKeyFGU4ibG3BxwM%2Fimage.png?alt=media&#x26;token=f85a75c7-ff41-4e4f-834a-d74ec5ffa392" alt="" width="399"><figcaption></figcaption></figure>
