<!-- Source: https://docs.squirro.com/en/latest/technical/pipelets/index.html -->
# Pipelets

This page provides an overview of pipelets, which are plugins to the [Squirro pipeline](../data-processing/pipeline.md#data-processing-pipeline-overview) used to customize data processing.

## Overview

When you set up a data source to ingest data into Squirro, you need to assign a [pipeline](../data-processing/pipeline.md#data-processing-pipeline-overview) workflow to that data source. The pipeline workflow defines a set of built-in [pipeline steps](../data-processing/pipeline-steps/index.md#data-processing-pipeline-steps) that are applied to the data passing through the pipeline.

In addition to the built-in steps, you can add your own custom enrichment or processing steps, called _pipelets_.

[![](https://s3.amazonaws.com/download.squirro.net/docs/technical/pipelets/pipelet_overview.png)](https://s3.amazonaws.com/download.squirro.net/docs/technical/pipelets/pipelet_overview.png)

The [Pipelets Tutorial](how-to/tutorial.md#pipelets-tutorial) covers creating, uploading, and using pipelets in your workflow. Note that uploading pipelets requires server-level administrator privileges.

## Pipelets and the Data-Loading Process

Pipelets modify _items_. Squirro refers to _data_ as _items_ once it’s transformed into the consistent and predictable Squirro [item format](../api/item-format.md#data-loading-item).

For this reason, you should always design your pipelets to work with data in the Squirro item format. You don’t have to worry about the transformation, however. The Squirro [data loader](../data-loading/ui.md#data-loading-ui) tool automatically transforms all source data (data produced by [data loader plugins](../data-loading/plugins/index.md#data-loader-plugins)) into the Squirro item format.

## Development Workflow

To add a pipelet to the pipeline, you must first upload the pipelet to the Squirro server. Then you’ll use the [pipeline editor](../data-processing/pipeline-editor.md#data-processing-pipeline-editor)  (_Pipeline_ tab) to add the pipelet to the pipeline and, if required, change its configuration.

See [Development Workflow](workflow.md#pipelets-workflow) for an overview of the pipelets workflow, from getting started with the `pipelet` command line tool to development, validation, testing, and deployment.

## Creating Pipelets

Squirro uses the Python programming language to develop pipelets.

For an overview of pipelet creation, see [Writing Pipelets](write.md#pipelets-write).

## Rerunning a Pipelet

Pipelets enrich items loaded _after_ the pipelet is configured.

To run a pipelet on items already loaded into your project, see [Rerunning a Pipelet](rerun.md#pipelets-rerun).

## Reference

See [Pipelets Reference](reference.md#pipelets-reference) for reference information including classes, parameters, and returns.

## Troubleshooting

See [Troubleshooting and FAQ](trouble.md#pipelets-trouble) for troubleshooting, including frequently asked questions.
