> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/release-orchestration/3.0/activity-types/reusable-activities.md).

# Reusable Activities

Reusable activities are activities that can be used across multiple processes, promoting consistency and reducing duplication.

### What are Reusable Activities? <a href="#what-are-reusable-activities" id="what-are-reusable-activities"></a>

Reusable activities are activities that:

* **Can be shared** across multiple processes
* **Have consistent behavior** wherever used
* **Are centrally maintained** and updated
* **Promote standardization** across the organization

### Benefits <a href="#benefits" id="benefits"></a>

#### Consistency <a href="#consistency" id="consistency"></a>

* Same activity behaves the same everywhere
* Standardized configurations
* Consistent error handling
* Uniform logging and monitoring

#### Efficiency <a href="#efficiency" id="efficiency"></a>

* Create once, use many times
* Faster process creation
* Reduced configuration errors
* Less maintenance overhead

#### Quality <a href="#quality" id="quality"></a>

* Well-tested activities
* Best practices built-in
* Centralized improvements

### Creating Reusable Activities <a href="#creating-reusable-activities" id="creating-reusable-activities"></a>

#### Design for Reusability <a href="#design-for-reusability" id="design-for-reusability"></a>

When creating reusable activities:

* **Parameterize**: Use inputs and variables
* **Generalize**: Avoid hardcoded values
* **Document**: Clear purpose and usage
* **Test**: Thoroughly test before sharing

#### Activity configuration <a href="#activity-configuration" id="activity-configuration"></a>

Reusable activities should be parameterized using inputs and variables so they can be used in different phases and processes.

#### Sharing Options <a href="#sharing-options" id="sharing-options"></a>

Share activities with:

* **Organization**: All teams
* **Project**: Specific projects
* **Team**: Team members
* **Private**: Personal use

### Using Reusable Activities <a href="#using-reusable-activities" id="using-reusable-activities"></a>

#### From Activity Store <a href="#from-activity-store" id="from-activity-store"></a>

1. Browse activity store
2. Search for activities
3. Select activity
4. Add to process
5. Configure inputs

#### Configuration <a href="#configuration" id="configuration"></a>

When you add a reusable activity to a process, you provide the values required for that activity (for example, via global/phase/activity variables mapped through the process).

### Best Practices <a href="#best-practices" id="best-practices"></a>

#### Parameterization <a href="#parameterization" id="parameterization"></a>

Make activities configurable:

* Use inputs for variable values
* Avoid hardcoded configurations
* Provide sensible defaults

#### Documentation <a href="#documentation" id="documentation"></a>

Document activities clearly:

* Purpose and usage
* Required inputs
* Expected outputs
* Common configurations

#### Testing <a href="#testing" id="testing"></a>

Test activities thoroughly:

* Unit testing
* Integration testing
* Edge case testing
* Failure scenario testing

#### Maintenance <a href="#maintenance" id="maintenance"></a>

Maintain activities properly:

* Regular updates
* Bug fixes
* Performance improvements
* Security patches

### Related Topics <a href="#related-topics" id="related-topics"></a>

* [Activity Store](/release-orchestration/use-release-orchestration/release-orchestration-activities/activity-store.md)
* [Activities Overview](/release-orchestration/use-release-orchestration/release-orchestration-activities/activities-overview.md)
* [Process Modeling](/release-orchestration/use-release-orchestration/release-orchestration-processes/process-modeling.md)
