This template outlines the recommended structure for your extensions README. It's designed to showcase all the key features of your extension, provide clear usage instructions and help maintain consistent documentation across all extensions.
Example sentences / hints have been provided for each section to get your started but these should be changed to fit the context of your extension.
Hints are marked with an ℹ️ ( ) ℹ️ and should be removed from your README.
For convenience, you can search and replace the following keywords for quicker boiler plate setup:
| Keyword | Description | Example |
|---|---|---|
| [extension-name] | Name of the extension | YourExtension |
| [CompatibleVersion] | Version the extension works with | V3 |
Each extension should be organized into its own group folder. Copy this README template file into the root of your extension's directory and rename it to README.md. For example:
[group-name]/
├── README.md
├── Elsa.[extension-name]/
│ ├── Services/
│ ├── Activities/
│ ├── AI/
└── Elsa.[extension-name].Implementation/
├── Services/
├── Activities/
├── AI/
⛔ Remove this header section from your README. ⛔
📖 Table of Contents
This package extends Elsa Workflows with support for [extension-name]. It introduces custom activities that make it easy to integrate [extension-name] features directly into your workflow logic.
- Activities:
DoSomething,DoSomethingElseandDoSomethingAlso - Highlight the key features from your extension.
- Elsa Workflows [CompatibleVersion] installed in your project.
- Access to the [extension-name] system or API (credentials, URL, etc.).
The following NuGet packages are available for this extension:
Elsa.[extension-name]
Elsa.[extension-name].Implementation1
Elsa.[extension-name].Implementation2You can install the clients via NuGet:
dotnet add package Elsa.[extension-name].Implementation1Register the extension in your application startup:
using Elsa.Extensions;
using Elsa.[extension-name];
services.AddElsa(elsa =>
{
elsa.Use[extension-name](options =>
{
options.Property1 = "value1"
options.Config = options =>
{
options.Property2 = "value2";
};
})
}Or via appsettings.json:
"[extension-name]": {
"Property1": "value1",
"Config": {
"Property2": "value2"
}
}Once the extension is registered with your required implementations, the activities will be ready to use, either via code or Elsa Studio.
This extension comes with the following activities:
| Properties | Type | Description | Input/Output | Notes |
|---|---|---|---|---|
| SomeInput | int? | A brief summery of what this input is for. | Input | Perhaps the min / max values allowed. |
| OtherInput | string? / Secret | A brief summery of what this input is for. | Input | - |
| TheOutput | object? | A brief summery of what this output is for. | Output | - |
| Properties | Type | Description | Input/Output | Notes |
|---|---|---|---|---|
| SomeInput | int? | A brief summery of what this input is for. | Input | Perhaps the min / max values allowed. |
| OtherInput | string? / Secret | A brief summery of what this input is for. | Input | - |
| TheOutput | object? | A brief summery of what this output is for. | Output | - |
ℹ️ (List some code snippets / picture examples of how to use aspects of your extension to help others learn how to use them.) ℹ️
ℹ️ (Bullet point known limitations, if any. For example:) ℹ️
- Does not support async
- Requires an active and reachable [extension-name] service endpoint
ℹ️ (Bullet points known errors, if any. For example:) ℹ️
-
NullReferenceException
Ensure all required configuration values (API key, endpoint, etc.) are correctly set. -
401 Unauthorized
Verify that your API key is valid and the endpoint is correct. -
Activity not found
Ensure the activity was registered inProgram.csorStartup.csusing.AddActivity<>().
ℹ️ (Checkbox points for planned features, if any. For example:) ℹ️
- Add async retry/backoff support
- Add extension tests
This extension was developed to add [extension-name] functionality to Elsa Workflows.
If you have ideas for improvement, encounter issues, or want to share how you're using it, feel free to open an issue or start a discussion!