> AI agents: this is one page from Mammoth Analytics documentation. The index of all pages as Markdown is https://mammoth.io/docs/llms.txt. Append `.md` to any docs URL, or send `Accept: text/markdown`, to get Markdown.

# Build your first data pipeline in Mammoth, step by step

> Load the Multi-Store Retail Sales sample, add a Conditional Filter, Bulk Replace and Math Function, preview each task, reorder tasks and fix common problems.

A pipeline is the ordered list of tasks in a view that cleans and reshapes a dataset, and runs again on new data. In this tutorial you load the built-in **Multi-Store Retail Sales** sample from **Data** > **New dataset** > **Sample Files**, then build a three-task pipeline that filters rows, standardises values and adds a calculated column. You need the Project Admin or Project Editor role; a Project Viewer can't add data or tasks.

![Diagram of a pipeline: raw data passes through Filter, Standardize, and Calculate tasks to produce clean data](https://mammoth.io/docs/images/20260324_061547_Completepipelineworkflowdiagram.webp)

## Before you start

- A Mammoth account, with the Project Admin or Project Editor role in the project you use. See [Members, roles and custom roles](https://mammoth.io/docs/learn/workspace/members-and-roles/).
- The **Multi-Store Retail Sales** sample file (built in), or your own data.

You learn to load a file, add tasks from the Transform menu, see results as you build, run tasks in sequence, and reuse the pipeline when new data arrives. For a shorter tour that ends with a shared dashboard, see the [Quick start](https://mammoth.io/docs/learn/start/quick-start/).

## Step 1: Load the Multi-Store Retail Sales sample data

Use the sample for your first pipeline; the steps below use its column names.

1. Click **Data** in the left sidebar.
2. Click **New dataset**.
3. In **Where do you want to add data from?**, click **Sample Files**.
4. On the **Business** tab, click the **Multi-Store Retail Sales** card.
5. Click **Create new dataset**.

![New Dataset dialog with Sample Files selected and the Multi-Store Retail Sales sample highlighted](https://mammoth.io/docs/images/20260305_061015_upload_via_sample.webp)

The dataset appears in the Data Library. It has 51 rows of retail sales from five clothing stores. See [Create data with AI or a sample file](https://mammoth.io/docs/learn/get-data-in/sample-and-ai-data/) for the other samples.

### Upload your own file instead

1. Click **Data** in the left sidebar, then **New dataset**.
2. Choose **Upload** (the default option).
3. Drag your file into the upload area, or click **Upload file** and pick it.
4. Click **Submit**.

![New Dataset dialog on the Upload option with Upload file and Upload folder buttons and a file drop area](https://mammoth.io/docs/images/20260305_061112_upload_file.webp)

The file appears in the Data Library while Mammoth reads it. If Mammoth needs your input (for example, **Choose how to read it** or **Extract sheets**), the dataset says so. See [Upload files](https://mammoth.io/docs/learn/get-data-in/upload-files/) for those prompts, the supported formats and size limits.

## Step 2: Open the dataset in a view

Click the new dataset in the Data Library, then click **Explore** in its panel. The data opens in a view, where you build the pipeline. The view shows:

- the **data grid**, showing your data like a spreadsheet;
- the **Pipeline panel** on the left, whose first card is **Source** and whose header reads "No tasks";
- the **Describe your transformation** box and the blue **+** button (tooltip "Add a task") in the action bar, which both open the Transform menu;
- the **Explore** panel above the grid. A new view shows **No cards yet**; click **Add card** to pick a column. See [Explore cards](https://mammoth.io/docs/learn/explore/explore-cards/).

![Freshly loaded View with an empty Pipeline panel showing only Source and the plus button, and Explore Cards above the data grid](https://mammoth.io/docs/images/20261009_092922_View_empty_pipeline_explore_cards.webp)

**Expected result:** the grid shows 51 rows and the Pipeline panel header reads "No tasks".

## Step 3: Keep high-revenue orders with a Conditional Filter

This task keeps only the orders with a total revenue over 100.

1. Click the blue **+** button (tooltip "Add a task"). The Transform menu opens on **AI Powered**, with the **Describe your transformation** search box at the top. The categories on the left are **AI Powered**, **Filter, Label & Replace**, **Date, Numeric & Text**, **Reshape, Group & Pivot**, **Column Management**, **Unify** and **Controls**.
2. Click the **Filter, Label & Replace** category, or type "filter" in the search box.
3. Click **Conditional Filter**. The panel opens at the bottom of the view, in **SQL** mode.
4. Click **Builder**. The **SQL** / **Builder** toggle sits below the **Describe what you want to generate** bar.
5. Leave **Keep** selected in front of "values where…". **Remove** would drop the matching rows instead.
6. For **Column**, select **total_revenue**.
7. For **Operator**, select **is greater than**.
8. For **Value**, enter **100**.
9. Click **Apply**.

![Task picker opened from the plus button in the Pipeline panel, with the search box, the category list and the Filter, Label & Replace category expanded to show Conditional Filter and Remove Duplicate Rows](https://mammoth.io/docs/images/20261009_092921_Task_picker_filter_label_replace.webp)

![Conditional Filter Function Panel set to keep rows where total_revenue is greater than 100](https://mammoth.io/docs/images/20260305_053837_Filter_rule.webp)

The **Condition Summary** below the builder restates the rule in words. In SQL mode you could type `"total_revenue" > 100` instead, or describe the rule in the **Describe what you want to generate** bar and click **Generate**. See [Filter rows](https://mammoth.io/docs/learn/clean-and-shape/filter-rows/) for every operator.

![View with one Conditional Filter task in the Pipeline panel and the grid reduced to 20 rows](https://mammoth.io/docs/images/20260305_053928_filter_applied.webp)

The panel closes, and the Pipeline panel shows a **Conditional Filter** card under **Source**. The filter ran straight away, because Draft mode is off by default, and it runs again every time the pipeline runs.

**Expected result:** the header reads "1 Task", and the card's footer shows "20 rows", all with total_revenue above 100.

## Step 4: Standardise product names with Bulk Replace

**Bulk Replace** replaces groups of variant values in a text column with one standard name per group. Mammoth suggests groups, and you can build your own.

1. Click the **+** button, go to **Filter, Label & Replace**, and click **Bulk Replace**.
2. Pick **product_name** as the column.
3. Open the **Group Suggestions** tab.
4. In **Grouping Settings**, choose how suggestions are made (see the table below).
5. Click **Add suggestion** on a suggestion to turn it into a group, or **Create all Group Suggestions** to add them all.

| Grouping setting | How it groups |
| --- | --- |
| **Smart** | Understands meaning and context (AI) |
| **Similarity** (default) | Groups by calculated similarity |
| **Spelling Match** | Groups words with similar spelling |
| **Common Patterns** | Groups common word variations |

The sample's product names are already fairly consistent, so Mammoth may suggest few groups, and a suggestion can join two different products. Only keep groups whose values mean the same thing.

### Build a group by hand

To see Bulk Replace change values in the sample, make a group yourself:

1. Open the **All Values** tab.
2. Tick **Leather Jacket** and **Blazer**.
3. Click **Add to New Group**.
4. Click the edit icon beside **Group Name** and name the group **Jackets**.
5. Click **Next**. A summary lists each group and its values.
6. Leave **Place in** set to the existing column.
7. Click **Apply**.

To take a group out of the replacement before you apply, click its trash icon (**Remove Group**). Every value in a group is replaced with the group's name; values in no group stay as they are. See [Find and replace values](https://mammoth.io/docs/learn/clean-and-shape/find-and-replace/) for moving values between groups and for rules that catch new variants.

![View with a Conditional Filter task and a Bulk Replace task on product_name in the Pipeline panel](https://mammoth.io/docs/images/20260305_054426_filter_bulk_replace_two_task_applied.webp)

**Expected result:** the header reads "2 Tasks", and product_name shows **Jackets** where it showed Leather Jacket or Blazer.

## Step 5: Add a Gross_Sale column with Math Function

This task creates a new column of gross sales from quantity and unit price.

1. Click the **+** button.
2. Go to the **Date, Numeric & Text** category and click **Math Function**. It opens in **SQL** mode.
3. In the **SQL Expression** editor, type `"quantity_sold" * "unit_price"`. You can also describe the calculation in the **Describe what you want to generate** bar and click **Generate**.
4. Under **Place in**, choose **New Column** and enter **Gross_Sale** as the name.
5. Check the result in the preview window above the panel.
6. Click **Apply**.

![Math Function panel with an expression box, Apply results into New Column option, and a New Column Name field](https://mammoth.io/docs/images/20260305_061817_math_function.webp)

![Animation of entering a math expression and a new column name, then applying the Math Function task](https://mammoth.io/docs/images/20260324_092107_math_pipeline.webp)

To write the formula in **Formula** mode instead, see [Calculate with formulas](https://mammoth.io/docs/learn/clean-and-shape/formulas/).

![View with three tasks in the Pipeline panel and a new Gross_Sale column in the data grid](https://mammoth.io/docs/images/20260305_062002_three_rules_view.webp)

**Expected result:** the header reads "3 Tasks", and scrolling right in the grid shows the new Gross_Sale column with a value on every row.

## How the three tasks run in order

```plaintext
3 Tasks                                ← Pipeline panel header
Source                                 ← Your original data
├── 1. Conditional Filter              ← Runs first
│   Keep rows where total_revenue > 100
│
├── 2. Bulk Replace                    ← Runs second
│   product_name: Jackets group
│
└── 3. Math Function                   ← Runs last
    New column Gross_Sale
```

When the pipeline runs, Mammoth starts with your original data and applies task 1. It passes the result to task 2, then to task 3, which produces the final output. Each task works on the output of the task above it, like a recipe where each step builds on the last.

## Suspend, copy, rename or delete a task

Hover over any task card to see its options.

![Animation of hovering over a task in the Pipeline panel to reveal its options toolbar](https://mammoth.io/docs/images/20260324_092508_Pipelinepanelwithhover.webp)

| Option | What it does |
| --- | --- |
| **Add note** | Attaches a note explaining the task |
| **Suspend** (pause icon) | Turns the task off without deleting it; **Restore** turns it back on |
| **Copy** | Copies the task so you can paste it elsewhere |
| **Edit** (pencil icon) | Reopens the task's panel |
| **More options** (...) | **Rename**, **Duplicate**, **Paste below** and **Delete** |

The row count in a card's footer (tooltip "Preview Data at this Task") shows the data as it was right after that task. See [Edit, reorder and copy tasks](https://mammoth.io/docs/learn/clean-and-shape/manage-tasks/).

## Reorder tasks in the pipeline

1. Drag a task card up or down by its drag handle. A bar at the bottom of the panel warns "Reordering tasks may affect your data."
2. Click **Reorder Tasks** to save the new order, or **Cancel** to put it back.

Mammoth checks dependencies before it saves. If task B uses a column that task A creates, moving B above A shows a warning. When the reorder works, "Tasks reordered successfully" confirms it.

![Animation of dragging tasks in the Pipeline panel to reorder them, with a warning that reordering may affect data](https://mammoth.io/docs/images/20260324_090629_reorder-tasks_1-test.webp)

## Check the results before and after the pipeline

| | Before | After |
| --- | --- | --- |
| Rows | 51, with all revenue values | 20, all with total_revenue over 100 |
| Product names | Leather Jacket and Blazer separate | Both replaced with Jackets |
| Gross_Sale | No column | A value on every row |

![Two stacked screenshots of the View: the source data with 51 rows above, and the transformed data with 20 rows and a Gross_Sale column below](https://mammoth.io/docs/images/20260324_090814_Splitviewcomparison.webp)

The screenshot compares the source data (51 rows) with the transformed data (20 rows, and 20 columns including Gross_Sale).

### Preview the data at one task

1. Hover the row count in a task card's footer (tooltip "Preview Data at this Task") and click it.
2. A banner reads "Previewing Data at Task 1..." (with that task's number), and the grid shows the data right after that task.
3. Click **Exit Preview [Esc]** or press **Esc** to go back.

Checking each task in turn shows where an issue starts. To see single numbers, such as the sum of Gross_Sale, open the Metrics panel. See [Metrics](https://mammoth.io/docs/learn/explore/metrics/).

## Save and reuse the pipeline

Every task you add is saved to this view straight away. There is no separate save button:

- The pipeline stays in this view when you close the browser.
- Everyone with access to the project sees the same pipeline.
- Earlier versions are kept in **Pipeline Version history** (in the **More Pipeline options (...)** menu). How many you can see depends on your plan.

What you can do next with it:

| Goal | How |
| --- | --- |
| Run it on new data | Add next month's file to this dataset and the pipeline runs on it. See [Add or replace data](https://mammoth.io/docs/learn/get-data-in/add-or-replace-data/). |
| Build a dashboard | Click **Dashboards** in the left sidebar, then **Create**. On **What do you want to build?**, choose your view under **With my data**, pick a format, then build a suggested idea or describe what you want. See [Create a dashboard](https://mammoth.io/docs/learn/dashboards/create/). |
| Export after every run | Click **Export** in the action bar and choose a destination on **External Destinations** (a database, warehouse, file store or app) or **Mammoth Managed** (**Send to Dataset**, **Live link** on Team and Pro, or a managed database). See [Send data to a database or BI tool](https://mammoth.io/docs/learn/share-and-export/send-to-destinations/). |
| Save a one-time file | Use the download icon beside **Export** (CSV, Excel, JSON and more). See [Download data](https://mammoth.io/docs/learn/share-and-export/download/). |
| Refresh on a schedule | For data from a connector, a **Dataset Refresh** automation fetches new data on a schedule, and the pipeline runs on each refresh. See [Refresh a dataset](https://mammoth.io/docs/learn/automate/refresh-a-dataset/). |

![Export menu open on External Destinations: Azure Blob Storage, Google BigQuery, Databricks, Elasticsearch, Email, REST API Export, Google Sheets, SQL Server, MySQL, OneDrive, PostgreSQL, Amazon Redshift, SFTP, SharePoint, Snowflake, Tableau Server/Cloud and Somewhere else](https://mammoth.io/docs/images/20261102_export-menu-external.webp)

![Create page "What do you want to build?" with With my data and With a shape starting points](https://mammoth.io/docs/images/20261102_create-page.webp)

To let AI write a task, describe what you want in the **Describe what you want to generate** bar of Conditional Filter or Math Function, or use **Ask in plain words** for a whole query. See [Write SQL with AI](https://mammoth.io/docs/learn/clean-and-shape/sql-with-ai/).

## The five transformations to learn first

1. **Conditional Filter**: keep or remove rows that match a rule.
2. **Bulk Replace**: standardise text values that have variations.
3. **Convert Column Type**: fix data types (text to number, text to date).
4. **Remove Duplicate Rows**: remove repeated records.
5. **Math Function**: calculate new values from existing columns.

## Pipeline best practices for beginners

- **Start with filters.** Remove rows you don't need early. Smaller data makes later tasks faster.
- **Use Draft mode for longer builds.** If you're adding five or more tasks, or working on a large dataset, turn on Draft mode, build the pipeline, then run every task at once with **Apply now**.
- **Add notes to tasks.** Use **Add note** to record business logic, formulas or decisions. Turn on **Display notes** in **Cards Density** to show them on the cards.
- **Test with small data first.** Build and test on a small sample file, then apply the pipeline to the full dataset.

## Troubleshooting your first pipeline

| Symptom | Cause | Fix |
| --- | --- | --- |
| You added a task, but the data didn't change | Draft mode is on. The header shows **Draft mode ON**, new tasks are marked **New**, and a bar reads "Pipeline has Pending Updates" | Click **Apply now** in that bar. Tasks don't run until you do |
| A column doesn't appear in a task's column list | A task only sees the columns that exist at its position | Reorder the tasks so the one that creates the column comes first, or insert the task further down with the **+** button between cards |
| Results don't match what you expected | One task in the chain is wrong | Click the row count in the footer of the first task card, check the grid, then move to the next task until you find where the data went wrong. Edit that task |
| You want to undo a task | The task is applied | Hover the card, click **More options** (...) > **Delete**. Mammoth warns you first if later tasks depend on it, then runs the pipeline again. Suspend it instead to keep its settings, or restore an earlier version from **Pipeline Version history** |
| You're not sure how to set up a task | A setting's meaning isn't clear | Click the book icon (tooltip "Learn more") in the task panel's header to open that function's documentation. Watch the preview above the panel, for example "120 rows removed". In Conditional Filter, Math Function and Ask in plain words, describe what you want in plain words |

![Pipeline with Draft mode ON, a Copy Columns task marked New, and a Pipeline has Pending Updates bar with Apply now](https://mammoth.io/docs/images/20260305_062339_challenge1.webp)

## Related

- [How the pipeline works](https://mammoth.io/docs/learn/clean-and-shape/how-the-pipeline-works/): how tasks run, task previews and Draft mode.
- [Edit, reorder and copy tasks](https://mammoth.io/docs/learn/clean-and-shape/manage-tasks/): version history and copying tasks between views.
- [Core ideas](https://mammoth.io/docs/learn/start/core-ideas/): datasets, batches, views, pipelines and tasks in one picture.
- [Fix a failing step](https://mammoth.io/docs/learn/clean-and-shape/fix-a-failing-step/): what to do when a task shows an error.
- [What you can automate](https://mammoth.io/docs/learn/automate/): run refreshes, exports and emails on a schedule.
- [Pick your path](https://mammoth.io/docs/learn/start/pick-your-path/): what to learn next for your role.

---
Source: https://mammoth.io/docs/learn/start/build-your-first-pipeline.md · Updated: 2026-11-08
