
<div class="youtube-embed youtube-facade not-prose" data-youtube-id="-ANo5qAAiSs" role="button" tabindex="0" aria-label="Play YouTube video"><img src="https://img.youtube.com/vi/-ANo5qAAiSs/hq720.jpg" alt="YouTube video" class="youtube-facade-thumb" loading="lazy" /><span class="youtube-facade-play" aria-hidden="true"><svg viewBox="0 0 68 48" width="68" height="48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.64 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/><path d="M45 24 27 14v20" fill="white"/></svg></span></div>

This node allows you to get the data of a selected group of customers. This allows you to create workflows in which the system retrieves the data of the selected customer groups at defined frequency, then you can edit the retrieved data by using [data transformation](/docs/automation/data-transformation-and-imports/introduction) (for example, change the value of `newsletter_agreement` from `enabled/disabled` to `true/false`) and send such modified data further, for example to an external server using the SFTP protocol.

### Scope of retrieved data


- [Aggregates](/docs/analytics/aggregates) -  You can retrieve the values of the selected aggregates.
- [Attributes](/docs/assets/customer-properties) - You can retrieve the values of profile attributes (such as newsletter agreement, first name, last name, date of birth, size) and check if selected [profile tags](/docs/assets/customer-tag) are assigned to the profile.
- [Expressions](/docs/analytics/expressions) - You can retrieve the values of the selected expressions.
- [Segmentations](/docs/analytics/segmentations) -  You can retrieve information if a profile belongs to the selected segmentations.


| Retrieved data types | Output in the exported file                                                                                                                                                                                                                 |
|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Aggregates           | When you choose an aggregate in the node, a new property is added to a file for export with that aggregate's name. Each aggregate property shows the aggregate value for each profile.  **Example**: You select an aggregate with the Last purchased item title in the node configuration, the output of this aggregate in the exported file will be as follows: <br> - For `.JSON` files <br>`"Last purchased item": "Sneakers EY0934"`,  <br> - For `.CSV` files: <br> A column with `Last purchased item` and row with `Sneakers EY0934`  <br>  where: <br> - `Last purchased item` is the title of the aggregate, <br> - `Sneakers EY0934` is the value of the aggregate.                                                                |
| Attributes           | Each attribute creates an property with the value of this property.                                                                                                                                         |
| Expressions          | When you choose an expression in the node, a new property is added to a file for export with that expression's name. Each expression property shows the expression value for each profile.                                                                            |
| Segmentations        | When you select a segmentation in the node, a new property is added to a file for export with that segmentation's name. Each segmentation property displays a true or false value which states whether a profile belongs to the segmentation (true) or not (false). |
| Tags                 | When you select a tag in the node, a new property is added to a file for export with that tag's name. Each tag property displays a true or false value which states whether a profile is assigned with this tag (true) or not (false).                              |




### Dynamic keys in attributes
---
If analyses selected in the node contain at least one dynamic key, the name of the keys with their default values are displayed in the configuration of the node.

- In the configuration of the **Get Profiles** node, you can enter values for the dynamic keys to use in the calculation. 
- You can use static values, [snippets](/docs/assets/snippets) and [inserts](/developers/inserts) as dynamic key values. 
- If multiple analyses include a dynamic key with the same name, it's included as a single item on the list. All analyses which contain that dynamic key will be calculated for the specified value.
- If an analysis is modified and the dynamic keys change, the results will be generated for the most recent version. If there is a difference between the keys in the node and the latest analysis version, you will receive information about it in the **Insights** section in the workflows which use this analysis.

<figure>
<img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/docs/analytics/_gfx/dynamic-key-value.png" alt="The marked area on the screen presents the dynamic key value selected in a metric condition. In this example the $sku parameter must be equal to the value of the id dynamic key (default is 12345678)" class="full" >
<figcaption>The marked area on the screen presents the dynamic key value selected in a metric condition. In this example the $sku parameter must be equal to the value of the id dynamic key (default is 12345678) </figcaption>
</figure>  

### Limits
---
- You can only use a segmentation which contains up to 10,000,000 profiles. If the selected segmentation exceeds the limit at the moment of launching the workflow or triggering the node, an error is logged.
- You can use up to 10 attributes with dynamic values.
- You can use up to 100 attributes with static values.
- These limits apply per a single node and the limits do not combine.

### Recommendations
---
Make sure your attributes have unique names. If you select two attributes with the same name, for example, 2 aggregates: `Last purchased item`, the exported file will contain two properties with the following names:
- `Last purchased item`,
- `Last purchased item1`


## Prerequisites
---
- To be able to retrieve values of [aggregates](/docs/analytics/aggregates), [attributes](/docs/assets/customer-properties), [expressions](/docs/analytics/expressions), [profile tags](/docs/assets/customer-tag), and [segmentations](/docs/analytics/segmentations), they must exist before you open the node for editing.
- You must be assigned a user role with an **Export profiles** permission within Data export (read, execute, edit)

## Node configuration
---

<figure><img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/docs/automation/_gfx/get-profiles.png" class="large" alt="A blank form in the Get Profiles node"><figcaption>A blank form in the Get Profiles node</figcaption></figure>

1. Click the node.  
2. Select profiles whose data you want to export. You can do it in the following ways:  
    
   <details class="accordion"><summary>Select all recognized profiles</summary><div class="accordion-content"><p>Click the <strong>Everyone</strong> tab. No further configuration is needed. </p> <div class="admonition admonition-warning"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" /></svg></div><div class="admonition-body"><div class="admonition-content"> <p>There is a limit of 10,000,000 records and the file cannot exceed 5GB.</p> </div></div></div></div></details>

    
   <details class="accordion"><summary>Select profiles who belong to specific segmentations</summary><div class="accordion-content"><ol> <li>To select profiles who belong to specific <a href="/docs/analytics/segmentations/">segmentations</a>, click the <strong>Segments</strong> tab. </li> <li>Click <strong>Select segments</strong>. </li> <li>On the pop-up, next to the segmentations you want to include in the export, select the checkbox.</li> <li>Confirm your choice by clicking <strong>Apply</strong>.</li> </ol></div></details>

    
   <details class="accordion"><summary>Define conditions the profiles must meet to be included in export</summary><div class="accordion-content"><ol> <li>To define the conditions profiles must meet to be included in the export, click the <strong>Filter profiles</strong> tab. </li> <li>Click <strong>Define conditions</strong>. </li> <li>On the pop-up, click <strong>Add condition</strong>. </li> <li>You can build conditions based on events, profile attributes, expressions, aggregates, segmentations, and tags.<br> You can read more about building conditions in <a href="/docs/analytics/i_profile-filter">Filtering</a>.</li> <li>Confirm the conditions by clicking <strong>Apply</strong>.</li> </ol></div></details>
   

3. To add attributes and profile tags whose values you want to retrieve, under **Attributes values**, click **Select attributes**. 
    - Each attribute is exported as a property with an assigned value.
    - Each selected tag creates a property with its name. They can be assigned a `true` or `false` value; 
        - `true` if a profile is assigned with the selected tag, 
        - `false` if they aren't.
4. On the pop-up, select the attributes and profile tags.  
5. To select expression values you want to retrieve, under **Expressions values**, click **Select expressions**.  
4. On the pop-up, select the expressions whose values you want to extract.  
5. To select aggregate values you want to retrieve, under **Aggregate values**, click **Select aggregates**.  
4. On the pop-up, select the aggregates whose values you want to extract.  
5. To check if a profile belongs to selected segmentations, under **Segmentations**, click **Select segmentations**.  
    Each selected segmentation creates a property with its name. These properties can be assigned a `true` or `false` value;  
        - `true` if a profile is belongs to the segmentation,   
        - `false` if they don't.
4. On the pop-up, select the segmentations which you want to check.  
5. Confirm the configuration by clicking **Apply**.  


## Example of use
--- 

In this example, you can select a group of customers and their attributes to pass it further to the external resource (for example, Azure) by using HTTP protocol.

<figure><img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/docs/automation/_gfx/http-send-file-example.png" class="large" alt="Final workflow configuration"><figcaption>Final workflow configuration</figcaption></figure>

1. Add the **Scheduled Run** node.
2. In the configuration of the node, set it to **immediately**.  
3. Add the **Get Profiles** node.  
4. In the configuration of the node:  
    1. Select a segmentation of customers.  
    2. Select the attributes to be extracted.  
    3. Confirm by clicking **Apply**.
5. Click **THEN**, from the dropdown list, select **HTTPS > Send File**.  
6. In the configuration of the node:
    1. Select the authentication method.
        - If no connections are available or you want to create a new one, see Add connection.
        - If you selected an existing connection, proceed to defining the integration settings.
    2. Select the method. 
    3. Enter the **URL** of the endpoint.  
    4. Select the format of the file.  
    5. **Only for CSV files**, verify the following fields: **Delimiter**, **Quotation mark**, **Escape character**, **Charset**, **Line ending**.
    6. If required, enter the headers.  
    7. Confirm by clicking **Apply**.  
7. Add the **End** node.