> ## Documentation Index
> Fetch the complete documentation index at: https://domoinc-bradley-turek-pfilter-operators-reference.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Magic ETL Tiles: AI Services

export const BetaNote = ({generic = false}) => <Note>
    <strong>Note:</strong>{" "}
    {generic ? "" : "This feature is in beta. "}
    Beta Program participants can enable features{" "}
    <a href="https://embed.domo.com/embed/pages/DQ8Ek">here</a>. To join the
    Beta Program, fill out{" "}
    <a href="https://embed.domo.com/embed/pages/K8GMx">this form</a>. For beta
    questions or feedback, email{" "}
    <a href="mailto:beta.admin@domo.com">beta.admin@domo.com</a>.
  </Note>;

## Intro

This article describes how to use the AI Services tiles in Magic ETL.

To learn how to use tiles in DataFlows, see [Create a Magic ETL DataFlow](/s/article/360055259234).

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_aiServices.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=b48813f55874de51fac521b51e5385c7" alt="Screenshot" width="668" height="602" data-path="images/kb/etl_aiServices.jpg" />
</Frame>

***

## AI Forecasting Tile

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/SBabM4O3-IotgqyR/images/kb/0EMVq000004EeeQ.jpg?fit=max&auto=format&n=SBabM4O3-IotgqyR&q=85&s=a8fa88ef78ff63b0bd17ecf47ff0d1e5" alt="Screenshot 2024-12-09 at 12.56.47 PM.png" width="103" height="114" data-path="images/kb/0EMVq000004EeeQ.jpg" />
</Frame>

The AI Forecasting tile allows you to predict future data points based on patterns or trends in your data by leveraging Domo's Forecasting Universal Model. After saving your forecast in an output DataSet, you can view the DataSet in Analyzer to visualize your forecast in a Forecasting Chart.

Access the AI Forecasting tile under **AI Services** in the Magic ETL interface.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/SBabM4O3-IotgqyR/images/kb/0EMVq000004Eehe.jpg?fit=max&auto=format&n=SBabM4O3-IotgqyR&q=85&s=5a8ef83746607fd69668edad0464c06a" alt="ai services.jpg" width="1338" height="699" data-path="images/kb/0EMVq000004Eehe.jpg" />
</Frame>

### Configure the AI Forecasting Tile

After you connect your input DataSet to an AI Forecasting tile on the Magic ETL canvas, you can configure your model preferences.

Select the AI Forecasting tile to expand the tile editor. Complete the steps in the editor.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/SBabM4O3-IotgqyR/images/kb/0EMVq000004EidB.jpg?fit=max&auto=format&n=SBabM4O3-IotgqyR&q=85&s=27f06b99714947b6529128d098e8f649" alt="model prefs.jpg" width="2253" height="1049" data-path="images/kb/0EMVq000004EidB.jpg" />
</Frame>

First, choose a model. You can select the Domo ETS Forecasting Univeral Model or the Domo ARIMA Forecasting Universal Model.\
Learn more about [models](/s/article/000005502).

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/SBabM4O3-IotgqyR/images/kb/0EMVq000004EiBl.jpg?fit=max&auto=format&n=SBabM4O3-IotgqyR&q=85&s=fd7609ae2461fbfea66a41e68036c48f" alt="choose model.jpeg" width="809" height="871" data-path="images/kb/0EMVq000004EiBl.jpg" />
</Frame>

After choosing the model, complete the other steps in the tile editor. This table describes how.

| Settings           | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Recommendations                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Date Column        | Select the date column that identifies the date interval corresponding to each row in your DataSet. Values in this column must be stored as a date or time-stamp data type and must also be at the daily, weekly, monthly, quarterly, or yearly granularity level. If you have selected a DataSource, all available data columns with date or time-stamp data types are listed.                                                                                                                                               | —                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Value Column       | Select the numeric column of data to forecast. Values in this column must be stored as an integer, floating decimal, or fixed decimal data type. If you have selected a DataSource, all available numeric data columns that are an integer, floating decimal, or fixed decimal data type are listed.                                                                                                                                                                                                                          | —                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Frequency          | Select the time-frequency to forecast.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | —                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Forecast Length    | Select or input the number of time intervals you want to forecast.For example, if you select the **Day**option for the **Frequency**setting and want to receive a forecast for the next two weeks, enter 14 for the Forecast Length. The number you input should be an integer (whole number, no decimals) that is greater than or equal to 1.                                                                                                                                                                                | —                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Seasonality Period | Input the number of seasonality periods you would like the forecast to take into consideration. The input should be an integer (whole number, no decimals) that is greater than or equal to one. Seasonality refers to a repeating pattern that occurs in your data at a fixed frequency (ex., every hour, day, week, or month). For example, if you have daily sales data and tend to observe higher sales on weekdays than weekends, your data exhibits weekly seasonality and should set your Seasonality Period to seven. | - **Daily Data** - Weekly seasonality (a reoccurring pattern for every seven days): set your seasonality period to 7. - Monthly seasonality (reoccurring pattern every thirty days): set your seasonality period to 30. - Annual seasonality (reoccurring pattern every 365 days): set your seasonality period to 365. - For no seasonality, set the period to 1. - The seasonality period is set to 7 if the Frequency = Day. - **Weekly Data** - Weekly seasonality (a reoccurring pattern every four weeks): set your seasonality period to 4. - Quarterly seasonality (a reoccurring pattern every thirteen weeks): set your seasonality period to 13. - Annual seasonality (a reoccurring pattern every fifty-two weeks): set your seasonality period to 52. - For no seasonality, set the period to 1. - The seasonality period is set to 1 if the Frequency = Week. - **Monthly Data** - Quarterly seasonality (a reoccurring pattern every three months): set your seasonality period to 3. - Annual seasonality (a reoccurring pattern every twelve months): set your seasonality period to 12. - For no seasonality, set the period to 1. - The seasonality period is set to 12 if the Frequency = Day. - **Quarterly Data** - Annual seasonality (a reoccurring pattern every four quarters): set the seasonality period to 4. - For no seasonality, set the period to 1. - The seasonality period is set to 4 if the Frequency = Quarterly. - **Yearly Data** - If your data exhibits a reoccurring pattern every X years (such as 1, 2, 3..., set the seasonality period to X. - For no seasonality, set the period to one. - The seasonality period is set to one if the Frequency = Yearly. |

After configuring the AI Forecasting tile, finish configuring your Magic ETL DataFlow and create the output Dataset.

<Note>
  **Note:** The number of rows in your output DataSet depends on the number of
  data points you configured to be forecasted.
</Note>

The output DataSet includes seven columns. This table provides more information about them.

| Column          | Description                                                                                                                                                                         | Example |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| forecast\_value | This column includes the forecasted values.                                                                                                                                         | —       |
| confidence\_0   | The type of confidence interval built.                                                                                                                                              | 80%     |
| confidence\_1   |                                                                                                                                                                                     |         |
| lower\_0        | The lower range of your confidence interval. The columns depend on the associated confidence interval. For example, `lower\_0` is the lower range for the `confidence\_0` interval. | —       |
| lower\_1        |                                                                                                                                                                                     |         |
| upper\_0        | The upper range of your confidence interval. The columns depend on the associated confidence interval. For example, `upper\_0` is the upper range for the `confidence\_0` interval. | —       |
| upper\_1        |                                                                                                                                                                                     |         |

#### Configure Your AI Forecasting Tile to Match Its Input Granularity

Drag and drop an **AI Forecasting** tile onto the authoring canvas and connect to your DataFlow.

Select the **AI Forecasting** tile to expand the tile editor.

Select **Configuration** (tab).

Adjust your date and value columns, then choose a forecast frequency and length, and select a seasonality period—all according to your specified granularity.\
For example, if you are ordering granularity by month, you can select your configured column “Order Date Month,” a value sum, a “Monthly” frequency, and a seasonality period of "12."

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/comVVwP4ECseWTUl/images/kb/0EMVq00000G8U7m.jpg?fit=max&auto=format&n=comVVwP4ECseWTUl&q=85&s=49aab4addd825af38655401c993bd285" alt="Screenshot" width="936" height="496" data-path="images/kb/0EMVq00000G8U7m.jpg" />
</Frame>

### Interpret Results from the AI Forecasting Tile

You can interpret and explore the results of your forecast by opening the output DataSet in Analyzer. Use the chart type finder to choose a Forecasting Chart.

Use the upper and lower bound columns from your output DataSet to set your bounds and display the forecast confidence ranges.

Learn more about the [Forecasting Chart](/s/article/360043429093).

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/SBabM4O3-IotgqyR/images/kb/0EMVq000004Eiuw.jpg?fit=max&auto=format&n=SBabM4O3-IotgqyR&q=85&s=066ef639be443f9b7208034db4550762" alt="interpret results.jpeg" width="1842" height="775" data-path="images/kb/0EMVq000004Eiuw.jpg" />
</Frame>

### Convert Input Granularity

Follow the steps below to convert your input DataSet from a minute granularity to a month/day or other specific granularity when creating a DataFlow with the AI Forecasting tile.

#### Add a Granularity Formula

Drag and drop an **Add Formula** tile onto the authoring canvas.

Connect that tile to your DataSet.

Select the **Add Formula** tile to expand the tile editor.

Select **Configuration** (tab).

Enter a name in the **Name output column** field.\
For example, to create a column granularity by month, you can enter “Order Date Month.”

Enter the corresponding formula in the **Write formula** field.\
For example, to order granularity by month, you can write `DATE_TRUNC ('month', 'Order Date')`.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/comVVwP4ECseWTUl/images/kb/0EMVq00000G8bZ3.jpg?fit=max&auto=format&n=comVVwP4ECseWTUl&q=85&s=1c67509da4553eb45744f968b5573123" alt="Screenshot" width="936" height="724" data-path="images/kb/0EMVq00000G8bZ3.jpg" />
</Frame>

#### Alter Your Column Granularity

Drag and drop an **Alter Columns** tile onto the authoring canvas.

Connect that tile to your DataFlow.

Select the **Alter Columns** tile to expand the tile editor.

Select **Configuration** (tab).

Alter applicable columns.\
For example, to order granularity by month, you can select the "Order Date Month" column you created with your granularity formula.\
Then, change the Cast Data Type to “Date.”

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/comVVwP4ECseWTUl/images/kb/0EMVq00000G80WJ.jpg?fit=max&auto=format&n=comVVwP4ECseWTUl&q=85&s=519c3e633828d9b2437ae889425b8927" alt="Screenshot" width="936" height="752" data-path="images/kb/0EMVq00000G80WJ.jpg" />
</Frame>

#### Group Your Column by Granularity

Drag and drop a **Group By** tile onto the authoring canvas.

Connect that tile to your DataFlow.

Select the **Group By** tile to expand the tile editor.

Select **Configuration** (tab).

Select the applicable columns.\
For example, to order granularity by month, you can select the "Order Date Month"column you created and altered in the Add Formula and Alter Columns tiles.

You now have a column that you have altered and grouped according to your specified granularity.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/comVVwP4ECseWTUl/images/kb/0EMVq00000G8cEz.jpg?fit=max&auto=format&n=comVVwP4ECseWTUl&q=85&s=bf81cb107ae6a09bfd2e2d0c8bbc5651" alt="Screenshot" width="936" height="758" data-path="images/kb/0EMVq00000G8cEz.jpg" />
</Frame>

#### Configure Your AI Forecasting Tile to Match Its Input Granularity

Drag and drop an **AI Forecasting** tile onto the authoring canvas and connect to your DataFlow.

Select the **AI Forecasting** tile to expand the tile editor.

Select **Configuration** (tab).

Adjust your date and value columns, then choose a forecast frequency and length, and select a seasonality period—all according to your specified granularity.\
For example, if you are ordering granularity by month, you can select your configured column “Order Date Month,” a value sum, a “Monthly” frequency, and a seasonality period of "12."

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/comVVwP4ECseWTUl/images/kb/0EMVq00000G8U7m.jpg?fit=max&auto=format&n=comVVwP4ECseWTUl&q=85&s=49aab4addd825af38655401c993bd285" alt="Screenshot" width="936" height="496" data-path="images/kb/0EMVq00000G8U7m.jpg" />
</Frame>

#### Save Your Granularity Configuration

Select **Save** to save your configuration.

You can also check your work by selecting the dropdown next to Save and selecting **Save and Run**.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/comVVwP4ECseWTUl/images/kb/0EMVq00000G8RRe.jpg?fit=max&auto=format&n=comVVwP4ECseWTUl&q=85&s=d4c423c72490efa9ece1da9c85383103" alt="Screenshot" width="936" height="486" data-path="images/kb/0EMVq00000G8RRe.jpg" />
</Frame>

The Save and Run DataFlow modal displays.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/comVVwP4ECseWTUl/images/kb/0EMVq00000G8Mrm.jpg?fit=max&auto=format&n=comVVwP4ECseWTUl&q=85&s=24d5f28d6683f711958801a53eddbe29" alt="Screenshot" width="936" height="448" data-path="images/kb/0EMVq00000G8Mrm.jpg" />
</Frame>

(Optional) Add a version description to explain what you changed.

Select **Save and Run** to run the DataFlow and ensure that all granularity columns in the ETL flow match.

<Warning>
  **Important:** To ensure your DataFlow runs properly, you must match the data
  granularity feeding the AI Forecasting tile with the [granularity selected in
  the AI Forecasting tile
  configuration](#configure-your-ai-forecasting-tile-to-match-its-input-granularity).
</Warning>

## AI Model Inference Tile

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/ZqACrVS3G0EVuBT_/images/kb/0EMVq000001D88s.jpg?fit=max&auto=format&n=ZqACrVS3G0EVuBT_&q=85&s=502d08ec83706463c5b8f36fd5d60e8d" alt="Screenshot 2024-06-04 at 4.03.19 PM.png" width="272" height="412" data-path="images/kb/0EMVq000001D88s.jpg" />
</Frame>

The AI Model Inference tile allows you to gather insights from your input DataSet and use the inferred output DataSet throughout Domo.

You can also use the output DataSet from your AI Model Inference tile to create App Studio apps and DataBricks that display data analysis, model performance, model predictions, and what-if analysis examples to share with other people in your organization.

### Required Grant

To access the AI Model Inference tile in Magic ETL, the following grant must be enabled for your role:

* \*\*Use AI Services —\*\*Allows a user to access and use the [AI Services](/s/article/000005279) in Domo.

For more information on grants, see [Managing Custom Roles](/s/article/360043438973).

### Configure the AI Model Inference Tile

<Warning>
  **Important:** The Magic ETL Preview function doesn't work with the AI Model
  Inference tile.
</Warning>

1. Select the DataSet you want to gather inferences from and open it in Magic ETL.

2. In the Magic ETL sidebar, expand **Data Science** and drag an **AI Model Inference** tile to the canvas.

   <Frame>
     <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/cxKyuPFGfpuriWLA/images/kb/0EMVq000000j3oC.jpg?fit=max&auto=format&n=cxKyuPFGfpuriWLA&q=85&s=a74719e719fe53ec7aaf738557ceb4ac" alt="ai model inference tile.jpg" width="3380" height="1886" data-path="images/kb/0EMVq000000j3oC.jpg" />
   </Frame>

3. Connect your input DataSet to the tile. You can only use one DataSet as input.

4. In the tile editor, choose **Select a Model** to search for and choose a model to use for your inference. The model schema must match the schema of the input DataSet. If the schemas do not match, an error message displays.

   <Frame>
     <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/ZqACrVS3G0EVuBT_/images/kb/0EMVq000001q5iz.jpg?fit=max&auto=format&n=ZqACrVS3G0EVuBT_&q=85&s=430595c14ef0176af83be1ef5e4c8641" alt="Screenshot 2024-07-19 at 9.15.57 AM.png" width="920" height="396" data-path="images/kb/0EMVq000001q5iz.jpg" />
   </Frame>

   If the schema of your input DataSet matches the model's schema, you can select the model you want to bring in. You can only use models with a CSV type in Magic ETL.

   <Frame>
     <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/ZqACrVS3G0EVuBT_/images/kb/0EMVq000001Xxn8.jpg?fit=max&auto=format&n=ZqACrVS3G0EVuBT_&q=85&s=8951d824d1d6ad7ac82ae21bcbf8d059" alt="Screenshot" width="1600" height="750" data-path="images/kb/0EMVq000001Xxn8.jpg" />
   </Frame>

5. Depending on the model, you can select a task if multiple options are available in the **Pick a Task** dropdown. The model task automatically generates from your selected model. Models may have multiple tasks, but only one task is selected for the DataFlow. In the example used above, only the "Other" task type is available.

6. Select a tier, depending on the number of resources used to run the model. A *tier*is the size of the resources the model is running with and the number of central processing units (CPUs) used. Learn more about [compute tiers](/s/article/36004740075).

7. (Optional) Check the box labeled **Include Input Data in Output Data** to duplicate all the rows from your input DataSet. This means that if you have 10 rows of data in your input, there will be 10 rows of data in your output.\
   If you leave the box unchecked, only the inferred data is included in the output DataSet.

## Text Generation Tile

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/kcvMKIThBy_vFzMZ/images/kb/textGenerationTile.jpg?fit=max&auto=format&n=kcvMKIThBy_vFzMZ&q=85&s=5a29c100f830e8a56f63abc467c111f9" alt="Screenshot" width="206" height="192" data-path="images/kb/textGenerationTile.jpg" />
</Frame>

Valuable information is often inaccessible inside text columns in your DataSets—and parsing, categorizing, and analyzing text can be manual and time-consuming. The Text Generation tile leverages Domo AI to translate and process text fields, allowing you to analyze and take advantage of your text data's full value.

### Required Grants

To access the Text Generation tile in Magic ETL, the following grants must be enabled for your role:

* Execute AutoML
* Create AI Service Models
* Use AI Services

Learn more about [grants](/s/article/360043438973).

<Warning>
  **Important:** You must also have AI Services enabled and the ability to
  create a DataFlow. Learn how to [create a DataFlow](/s/article/360055259234).
</Warning>

### Configure the Text Generation Tile

1. Open the Magic ETL canvas and choose an input DataSet that contains a text column you want to analyze.

<Warning>
  **Important:** Due to an AWS limitation, if the DataSet you choose has fewer than 100 rows, the
  system automatically switches to non-batch mode.
</Warning>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration1.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=f5950d774356cbf75540a213e1606586" alt="Screenshot" width="3084" height="2388" data-path="images/kb/etl_textGeneration1.jpg" />
</Frame>

2\. Under **AI Services** in the left drawer, drag a Text Generation tile to the
canvas. The tile editor expands below the canvas.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration2.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=28b3ecc583615c10ef3d242569066219" alt="Screenshot" width="3080" height="1012" data-path="images/kb/etl_textGeneration2.jpg" />
</Frame>

3\. In the tile editor, choose the AI model you want to use with the Text
Generation tile.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration3.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=1ea96c0de83b379a869d7f0c313d647a" alt="Screenshot" width="3084" height="1358" data-path="images/kb/etl_textGeneration3.jpg" />
</Frame>

4\. Choose the Execution Preference.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration4.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=ca6b767e4d96a7d17d89491d0fbb6861" alt="Screenshot" width="3078" height="1356" data-path="images/kb/etl_textGeneration4.jpg" />
</Frame>

<Note>
  **Note:** Batch and non-batch processing differ primarily in latency, cost, and use case.

  Batch processing is designed for high-volume, asynchronous workloads, so execution times vary. It's generally more cost-effective.

  Non-batch processing is intended for more consistent execution times with a small number of rows. Non-batch is always used when processing fewer than 100 rows of data.
</Note>

5. Provide the model with instructions on how to analyze the column. Be very
   specific; describe exactly what you want the model to do (and not to do).

<Tip>
  **Tip:** Constructing a prompt that returns the results you need is a skill
  that takes time and practice.
</Tip>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration5.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=c9facc9829af48f349c7d53ba4a108dd" alt="Screenshot" width="3076" height="1358" data-path="images/kb/etl_textGeneration5.jpg" />
</Frame>

6\. Use the **Insert Value** dropdown to choose the column that contains the text
to be analyzed. You can also provide more details about what should be done with
the data.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration6.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=0527c72598cebf61e4d4fa9ec18c7d8d" alt="Screenshot" width="3080" height="1356" data-path="images/kb/etl_textGeneration6.jpg" />
</Frame>

7\. If needed, choose additional Knowledge.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration7.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=0582e7f799a0789890897b976f074af6" alt="Screenshot" width="3084" height="1358" data-path="images/kb/etl_textGeneration7.jpg" />
</Frame>

8\. Configure the desired output. Choose structured or unstructured output, and either a single column or multiple output columns—each with a name, type, and description.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration8.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=ad2984d8a68ecca2044d97c5aaf7003c" alt="Screenshot" width="3070" height="1350" data-path="images/kb/etl_textGeneration8.jpg" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration9.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=3196219e437054d88fa7e9ab271d2b03" alt="Screenshot" width="3082" height="1590" data-path="images/kb/etl_textGeneration9.jpg" />
</Frame>

9\. Choose the temperature of your desired response. Lower values provide
more predictability, while higher values provide more creativity.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_textGeneration10.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=09600b9add99127bf8099e23705237b4" alt="Screenshot" width="3084" height="1284" data-path="images/kb/etl_textGeneration10.jpg" />
</Frame>

After the Text Generation tile executes, it adds a column to your DataSet named `Output`. You can use tiles farther downstream in the DataFlow to rename that column.

**Consumption Ramifications:**

* AI Operations: 1 operation per tile
* Tokens: input and output tokens vary based on the prompt and the data volume processed

**Notes:**

* You can include multiple Text Generation tiles in the same DataFlow, tasking them with different aspects of analysis for the column (or analysis of different columns).
* You can give multiple instructions in a single Text Generation tile, although you'll need a way to parse the results of the multiple instructions from the single output column.

  For example, you could instruct the model to separate the output of each instruction with a specific delimiter and then use the Split Columns action to parse.

  Here's an example of the output DataSet from a DataFlow leveraging multiple instances of the Text Generation tile to analyze language, translate the review to English, analyze sentiment, and categorize the review based on provided themes.

  <Frame>
    <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/Jw82MSdMkP_fsYNl/images/kb/0EMVq000006fNd7.jpg?fit=max&auto=format&n=Jw82MSdMkP_fsYNl&q=85&s=bbd25d22e43410c6612a6db0ecc9063e" alt="Screenshot" width="1632" height="272" data-path="images/kb/0EMVq000006fNd7.jpg" />
  </Frame>

## FAQ

<AccordionGroup>
  <Accordion title="Can I use my own model in the Text Generation tile?">
    Not currently, but this capability is on the roadmap.
  </Accordion>

  <Accordion title="Can you output multiple columns from a single Text Generation tile?">
    Yes, you can enable Structure Output.
  </Accordion>
</AccordionGroup>

## Classification Tile <Badge className="text-primary bg-primary/10 font-bold">Beta</Badge>

<BetaNote />

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classifyTile.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=26f668add70381478679ac3d133aa833" alt="Screenshot" width="238" height="210" data-path="images/kb/etl_classifyTile.jpg" />
</Frame>

The Classification tile categorizes data—text, images, or files—into predefined classes. Because the tile comes pre-configured for classification, you can focus on your classification entities instead of configuration details. It's faster and easier to configure and use than the Text Generation tile for classification.

### Required Grants

To access the Classification tile in Magic ETL, the following grants must be enabled for your role:

* Execute AutoML
* Create AI Service Models
* Use AI Services

Learn more about [grants](/s/article/360043438973).

<Warning>
  **Important:** You must also have AI Services enabled and the ability to
  create a DataFlow. Learn how to [create a DataFlow](/s/article/360055259234).
</Warning>

### Configure the Classification Tile

1. Open the Magic ETL canvas and choose an input DataSet that contains a text column you want to analyze.

<Warning>
  **Important:** Due to an AWS limitation, if the DataSet you choose has fewer than 100 rows, the
  system automatically switches to non-batch mode.
</Warning>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classification1.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=513c27adc1f33da0ef5d261ace7cb229" alt="Screenshot" width="3456" height="1802" data-path="images/kb/etl_classification1.jpg" />
</Frame>

2\. Under **AI Services** in the left drawer, drag a Classification tile to the
canvas. The tile editor expands below the canvas.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classification2.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=82e6e9a1e0a5f75d3be81056b85e8f3e" alt="Screenshot" width="3456" height="1796" data-path="images/kb/etl_classification2.jpg" />
</Frame>

3\. In the tile editor, choose the input data—**Data Column** or **Documents**.

If the data you want to classify is already in a data column, select the column from the selector.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classification3.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=711adfa60c82b2135afde3d36f2e3cab" alt="Screenshot" width="3456" height="1804" data-path="images/kb/etl_classification3.jpg" />
</Frame>

If the data you want to classify is in a Document Collection, select the Document Collection ID and File Path from the selectors.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classification4.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=773be9e21ad163e312abda8a97dbd882" alt="Screenshot" width="3452" height="1804" data-path="images/kb/etl_classification4.jpg" />
</Frame>

4. In the tile editor, choose the AI model you want to use with the
   Classification tile.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classification5.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=9be251694dc3f1cb251a41e8e86ee84b" alt="Screenshot" width="3456" height="1804" data-path="images/kb/etl_classification5.jpg" />
</Frame>

5\. Choose the Execution Preference.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classification6.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=643e1d9f895cb7515bc73977f69069a3" alt="Screenshot" width="3454" height="1806" data-path="images/kb/etl_classification6.jpg" />
</Frame>

<Note>
  **Note:** Batch and non-batch processing differ primarily in latency, cost, and use case.

  Batch processing is designed for high-volume, asynchronous workloads, so execution times vary. It's generally more cost-effective.

  Non-batch processing is intended for more consistent execution times with a small number of rows. Non-batch is always used when processing fewer than 100 rows of data.
</Note>

6. Provide the model with any additional instructions on how to analyze the column. Be very
   specific; describe exactly what you want the model to do (and not to do).

<Tip>
  **Tip:** Constructing a prompt that returns the results you need is a skill
  that takes time and practice.
</Tip>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classification7.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=ea6ad305d19f5b01fa1e50b21dfb98d9" alt="Screenshot" width="3456" height="1806" data-path="images/kb/etl_classification7.jpg" />
</Frame>

7\. Configure the desired output—**Single Label** or **Multi Label**.

* **Single Label** assigns one class per row. For example, given the classes Corduroy, Denim, and Leather, a row's `Fabric Type` resolves to a single value:

  ```
  Fabric Type = Denim
  ```

* **Multi Label** evaluates each class independently and returns one-hot-encoded Boolean values. For example, given the classes Corduroy, Denim, Leather, Skinny, and Flare:

  ```
  Corduroy = True
  Denim = False
  Leather = False
  Skinny = False
  Flare = True
  ```

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classification8.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=17cea91dec82ef5c0027a1f011bec359" alt="Screenshot" width="3452" height="1806" data-path="images/kb/etl_classification8.jpg" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_classification9.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=aa38c76291267d4a98fc6eb2068045cf" alt="Screenshot" width="3456" height="1806" data-path="images/kb/etl_classification9.jpg" />
</Frame>

After the Classification tile executes, it adds a classification column or columns to your DataSet. You can use tiles farther downstream in the DataFlow to rename that column(s).

**Consumption Ramifications:**

* AI Operations: 1 operation per tile
* Tokens: input and output tokens vary based on the prompt and the data volume processed

**Notes:**

* You can include multiple Classification tiles in the same DataFlow, tasking them with different aspects of analysis for the column (or analysis of different columns).

## FAQ

<AccordionGroup>
  <Accordion title="Can I use my own model in the Classification tile?">
    Not currently, but this capability is on the roadmap.
  </Accordion>

  <Accordion title="Can you output multiple columns from a single Classification tile?">
    Yes, you can enable Multi Label output.
  </Accordion>
</AccordionGroup>

## Sentiment Analysis Tile <Badge className="text-primary bg-primary/10 font-bold">Beta</Badge>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/kcvMKIThBy_vFzMZ/images/kb/sentimentTile.jpg?fit=max&auto=format&n=kcvMKIThBy_vFzMZ&q=85&s=c5b82f49e2efc8ff1ad0c134af0b89de" alt="Screenshot" width="230" height="240" data-path="images/kb/sentimentTile.jpg" />
</Frame>

The Sentiment Analysis tile automatically classifies text—such as reviews, social media posts, and surveys—as positive, negative, or neutral. This helps businesses monitor brand reputation in real time, improve customer service by identifying frustrated users, and analyze trends for better decision-making.

**Supported values:** Positive, Negative, Neutral, Not Applicable

Because the tile comes pre-configured for sentiment analysis, you can focus on your topics instead of configuration details. It's faster and easier to configure and use than the Text Generation tile for sentiment analysis.

### Required Grants

To access the Sentiment Analysis tile in Magic ETL, the following grants must be enabled for your role:

* Execute AutoML
* Create AI Service Models
* Use AI Services

Learn more about [grants](/s/article/360043438973).

<Warning>
  **Important:** You must also have AI Services enabled and the ability to
  create a DataFlow. Learn how to [create a DataFlow](/s/article/360055259234).
</Warning>

### Configure the Sentiment Analysis Tile

1. Open the Magic ETL canvas and choose an input DataSet that contains a text column you want to analyze.

<Warning>
  **Important:** Due to an AWS limitation, if the DataSet you choose has fewer than 100 rows, the
  system automatically switches to non-batch mode.
</Warning>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_sentimentAnalysis1.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=2a8145f41a924988ed4d2de8cde319dd" alt="Screenshot" width="3084" height="2394" data-path="images/kb/etl_sentimentAnalysis1.jpg" />
</Frame>

2\. Under **AI Services** in the left drawer, drag a Sentiment Analysis tile to the
canvas. The tile editor expands below the canvas.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_sentimentAnalysis2.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=5762c48ab4da17f669667b15bce1f15f" alt="Screenshot" width="3084" height="2392" data-path="images/kb/etl_sentimentAnalysis2.jpg" />
</Frame>

3\. In the tile editor, choose the input data; Data Column or Documents.

If the data you want to analyze is already in a data column, select the column from the selector.
If the data you want to classify is in a Document Collection, select the Document Collection ID and File Path from the selectors.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_sentimentAnalysis3.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=475e913670d669ffb1a9f203ce554ba7" alt="Screenshot" width="3082" height="2392" data-path="images/kb/etl_sentimentAnalysis3.jpg" />
</Frame>

4\. In the tile editor, choose the AI model you want to use with the
Sentiment Analysis tile.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_sentimentAnalysis4.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=8c103c3e737615f0573dce8461f5881d" alt="Screenshot" width="3082" height="2272" data-path="images/kb/etl_sentimentAnalysis4.jpg" />
</Frame>

5\. Choose the Execution Preference.

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_sentimentAnalysis5.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=1b271525b62f5694d2b121aaf40779c4" alt="Screenshot" width="3076" height="2274" data-path="images/kb/etl_sentimentAnalysis5.jpg" />
</Frame>

<Note>
  **Note:** Batch and non-batch processing differ primarily in latency, cost, and use case.

  Batch processing is designed for high-volume, asynchronous workloads, so execution times vary. It's generally more cost-effective.

  Non-batch processing is intended for more consistent execution times with a small number of rows. Non-batch is always used when processing fewer than 100 rows of data.
</Note>

6. Provide the model with any additional instructions on how to analyze the column. Be very
   specific; describe exactly what you want the model to do (and not to do).

<Tip>
  **Tip:** Constructing a prompt that returns the results you need is a skill
  that takes time and practice.
</Tip>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_sentimentAnalysis6.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=4a41654dee12888d12a41f65743fcd1a" alt="Screenshot" width="3080" height="2276" data-path="images/kb/etl_sentimentAnalysis6.jpg" />
</Frame>

7\. Configure the desired output—**Overall Sentiment** or **Targeted Sentiment**.

* **Overall Sentiment** returns a single sentiment value for the text:

  ```
  Overall Sentiment = Positive
  ```

* **Targeted Sentiment** returns a sentiment value for each topic you specify (for example, overall, fit, durability, and customer service):

  ```
  Overall Sentiment = Positive
  Fit = Neutral
  Durability = Positive
  Customer Service = Positive
  ```

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_sentimentAnalysis7.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=42fac630729a23e3a3ff6f623bbab456" alt="Screenshot" width="3078" height="2270" data-path="images/kb/etl_sentimentAnalysis7.jpg" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/domoinc-bradley-turek-pfilter-operators-reference/zoXALZmTja48zRxU/images/kb/etl_sentimentAnalysis8.jpg?fit=max&auto=format&n=zoXALZmTja48zRxU&q=85&s=2ad7d1ba972b2a388b9bbfb93e5f6bfb" alt="Screenshot" width="3080" height="2278" data-path="images/kb/etl_sentimentAnalysis8.jpg" />
</Frame>

After the Sentiment Analysis tile executes, it adds a sentiment column or columns to your DataSet. You can use tiles farther downstream in the DataFlow to rename that column(s).

**Consumption Ramifications:**

* AI Operations: 1 operation per tile
* Tokens: input and output tokens vary based on the prompt and the data volume processed

**Notes:**

* You can include multiple Sentiment Analysis tiles in the same DataFlow, tasking them with different aspects of analysis for the column (or analysis of different columns).

## FAQ

<AccordionGroup>
  <Accordion title="Can I use my own model in the Sentiment Analysis tile?">
    Not currently, but this capability is on the roadmap.
  </Accordion>

  <Accordion title="Can you output multiple columns from a single Sentiment Analysis tile?">
    Yes, you can enable Targeted Sentiment.
  </Accordion>
</AccordionGroup>
