Self-Serve Actions
Self-Service Experiences empower users to create and execute actions within the organization. These actions allow users to manage existing resources or perform maintenance tasks. This documentation provides detailed instructions on how to create and enable self-service actions.
Set up and run your Self-Serve Actions following this steps:
- 1.
- 2.
- 3.
- Accelerate your time-to-market
- Drive standardization and reuse
- Improve your DevEx
- Improve your DevOps/Platform team experience
- Dramatic reductions in ticket volume
- Lower total cost of ownership
- Reduce maintenance overhead
Examples of Self-Serve Actions by job role:
- Software engineering
- Create ad-hoc dev environment
- Create a new service
- Add a cloud resource
- Upgrade package version
- New feature flag
- Add/change secret or environment variable
- Re-run a data pipeline/job
- Data engineering:
- Change access to data
- Set SLOs for a data pipeline
- Start an ad-hoc job
- Change job frequency
- DevOps
- Change pod replica counts
- Change auto scale group settings
- Provision IOPS on a cloud database
- Provision a new cloud resource
- Modify settings of an existing cloud resource
- Make cloud storage available in other regions
- Add a database replica
- Roll back a deployment
- Resize a machine instance
- Drain traffic from a region
- Quality
- Run performance tests
- Create a new QA environment
- Run your extended test suites
- Create a new test
- Disable a broken / obsolete tes
- Day 2: These actions are designed to manage existing resources or perform maintenance tasks within the organization.
- Create: Actions designed to create new resources.
- Delete: Actions designed to delete resources.
- Webhook: This method allows users to invoke an action by sending an HTTP request to a specified URL. The action is triggered by the incoming webhook request.
- A user performs an action from Configure8 UI interface.
- The user's inputs and relevant action metadata are bundled into a payload and sent to your infrastructure.
- Upon receiving the payload, your infrastructure triggers a job associated with the action.
- The user receives continuous indications of the job's progress, allowing them to track the status of the action.
- During the execution of the action, you can use the Configure8 API to update the status, provide information such as logs and timestamps, and ensure the durability of each step.
Self-service actions are created within the Configure8 application for your organization. To enable an action, follow these steps:
Specify the action's name, input type, URL, method, and user inputs to allow flexibility for individual actions.
Set up the logic responsible for handling the action upon form submission. The backend logic is customizable to suit your specific needs. As part of your backend implementation, you can keep the action's status up to date by sending API requests associated with the performed action.
In this section, provide a recognizable name, description, and type for the action. These details help users understand the purpose and functionality of the action.
Optional input for logos:

The Context section allows you to control the execution of the action based on user access. You can define access restrictions and permissions to ensure the action is only available to authorized users. Currently limited to Admins only
The User Inputs section enables you to define optional parameters that can be used within the action. These inputs provide flexibility for various action scenarios, allowing users to customize the behavior of the action. User inputs can be required or optional.
In the Method section, you specify the backend method, HTTP method, URL, query parameters, headers, and payload for the action. This information determines how the action interacts with external systems or services.



Field | Required | Description | Notes |
id | true | Unique identifier for action | Auto generated |
Name | true | Human-readable name for the action | |
Type | true | Dropdown with supported action types | Enumerable: Day2, Create, Delete |
Logo | true | Logo icon | |
Status | true | Active or Draft | |
Description | false | Human-readable description for the action | |
Owners | true | Who owns this action | User who is creating is the default owner |
Visibility control | true | Dropdown with supported visibility control | Default is the same as company level visibility control |
Viewers | false | Who can see the results of this action | |
Allowed People | false | Who can run this action | |
Applies to | false | Dropdown with items this actions applies to | |
User inputs* | false | Array of user inputs | In case of input is provided it is assumed as required *see additional information in next table |
Method | true | Dropdown with supported method types | Webhook by default. (Limited options currently available) |
HTTP Method | true | Dropdown with supported http methods | POST by default. (Limited options currently available) |
Webhook URL | true | URL to your backend and its logic implementation | |
Query Parameters | false | Additional query parameters | Parameters assuming not to be changeable from different executions |
Headers | false | Additional header parameters | |
Payload | false | Additional payload object |
Field | Required | Description | Notes |
type | true | Type of string Value - “text” | At present, the feature is limited to the “text” option only. |
title | true | Human-readable title for the input parameter | |
payloadName | true | Unique input parameter identifier | Duplicates are not acceptable |
defaultValue | false | Human-readable example of the input parameter | |
helpText | false | Human-readable description for the input parameter |
User inputs example:
Code
Visualization
[
{
"type": "text",
"title": "Provide branch name",
"payloadName": "ref",
"defaultValue": "main",
"helpText": "Branch name (e.g. feature/C8-123)"
},
{
"type": "text",
"title": "Title",
"payloadName": "name",
"defaultValue": "Provide tiltle"
},
{
"type": "text",
"title": "Description",
"payloadName": "pr_name"
}
]

User inputs TYPES example:
Code
Visualization
Expanded
[
{
"type": "text",
"title": "Text example",
"payloadName": "text",
"defaultValue": "main",
"helpText": "Text description"
},
{
"type": "dropdown",
"title": "Dropdown example",
"payloadName": "dropdown",
"defaultValue": "first option",
"options": [
{
"label": "first option"
"value": "any related to first option information which will be used in payload"
},
{
"label": "second option"
"value": "any related to second option information which will be used in payload"
}
],
"helpText": "Dropdown description"
},
{
"type": "number",
"title": "Number example",
"payloadName": "number",
"defaultValue": "2",
"helpText": "Number description"
},
{
"type": "email",
"title": "Email example",
"payloadName": "email",
"defaultValue": "[email protected]",
"helpText": "Email description"
},
{
"type": "checkbox",
"title": "Checkbox example",
"payloadName": "checkbox",
"defaultValue": "true",
"helpText": "Checkbox description"
} ,
{
"type": "datepicker",
"title": "Datepicker example",
"payloadName": "datepicker",
"defaultValue": "01.01.2023",
"helpText": "Datepicker description"
},
{
"type": "url",
"title": "URL",
"payloadName": "URL example",
"defaultValue": "https://app.configure8.io",
"helpText": "URL description"
}
]



- Only Owners can create, update, or delete actions. Other user types can preview action configurations.
- Actions in progress cannot be updated or deleted.
- Users are not allowed to change the action method
We send a request to the provided URL with all the webhook-related data, including additional key: c8-report-token. You can include token in action payload using placeholder {{ c8ReportToken }} in this case additional key would be ignored.
Important: This is pre-defined place holders and behave only in this way
Example usage of token placeholder in action payload:
{
"title": "Run build",
"inputs": {
"c8-report-token": "{{ c8ReportToken }}",
"description": "Execution of new build"
}
}
The token is valid for 1 hour. After this period, if the action is not in the "Complete" or "Failed" status, the app marks it as "Terminated".
This can be used if you need to structure your payload in specific way. In payload you can specify structure that can be send, and if you need to specify value provided in user inputs you can use next pattern – {{ *make sure to use payloadName from user inputs* }}
Example usage of user inputs placeholder in action payload:
{
"title": "Run build",
"inputs": {
"c8-report-token": "{{ c8ReportToken }}",
"description": {{ description }}
}
}
Payload should include “description” payloadName
Example:
[
{
"type": "text",
"title": "Description",
"payloadName": "description",
"helpText": "Provide description"
}
]
Important: If you would not provide related payloadName in user inputs and use it payload in the end we will send string instead of replacing placeholder.
It can be replaced only once so if you use it multiple times it would be replaced only for first match.
Run Action
When action is created, blueprint is provided in action level, each user with ADMIN role has possibility to execute(run) action. Each action can have multiple executions which optionally can differ with user inputs or just be new execution.
To run an action of the webhook type, follow these steps:
- Go to configure8 application and open self-service action in top menu
- In the "Actions" section, choose the action that you want to execute and click on the "three dots" or press on action name icon.
- Select "Run" from the popup menu.
- Depending on the action and the user inputs required, fill in the action parameters (if provided).
- Click the "Run" button to initiate the execution of the action.
What is happening in background?
- We create a default state for the current execution, setting it to the "In Progress" status and including additional information about the user and timestamp of execution.
- If there is no response from the provided URL, the execution information is saved in our database. If an immediate response is received (within 10 seconds), the information is added to the status information. If the system responds with an error, the action is automatically set to "Failed".
- An example of a valid response:
{
"status": "inprogress",
"startedAt": "2023-05-24T09:42:40.000-08:00",
"steps": [
{
"title": "Set up job",
"status": "inprogress",
"startedAt": "2023-05-24T09:42:40.000-08:00",
}
]
}
Diagram


Field | Required | Description | Notes |
status | true | Enumerable action status | inprogress, failed, complete, terminated, |
startedAt | true | Timestamp when action started | |
completedAt | false | Timestamp when action completed | |
steps | false | Array of steps | *see additional information in next table |
Field | Required | Description | Notes |
title | true | Unique title name | |
status | true | Enumerable step status | inprogress, failed, complete, terminated, |
startedAt | true | Timestamp when step started | |
completedAt | false | Timestamp when step completed | |
logs | false | Array of string |
To update the progress status of an action, perform the following steps:
- Include the c8-report-token to validate the request.
- Obtain the c8-report-token from the first request to your system when you run the action.
- Provide the desired updates for the main status and steps in the request body.
- Ensure each step title is unique. Steps that are already in the "Complete" status do not need to be included in subsequent requests, as new incoming steps will be added based on the uniqueness of the step title.
Body example:
{
"status": "inprogress",
"startedAt": "2023-05-10T15:35:42.714+00:00",
"steps": [
{
"title": "Set up job",
"status": "complete",
"startedAt": "2023-05-10T15:35:42.714+00:00",
"completedAt": "2023-05-10T15:35:43.714+00:00"
},
{
"title": "Run actions/checkout@v2",
"status": "complete",
"startedAt": "2023-05-10T15:35:43.714+00:00",
"completedAt": "2023-05-10T15:35:44.625+00:00",
"logs": [
"Current runner version: 1.0.0",
"Prepare workflow directory",
"Download action repository",
"Complete job name: Do the job on the runner"
]
}
]
}
Please note that each step title should be unique. You don't need to send the same step with each request if it's already in the "Complete" status. New incoming steps will be added based on the uniqueness of the step title.
At Configure8, we prioritize the security and protection of your sensitive data. To ensure the confidentiality and integrity of your information, we employ robust encryption mechanisms. All sensitive data is encrypted.
When your data is stored within our systems, it is encrypted. This ensures that even in the unlikely event of unauthorized access to our storage infrastructure, your data remains secure and inaccessible without the proper decryption keys.
We continuously monitor and update our security measures to stay up-to-date with the latest industry practices and standards. By leveraging encryption mechanisms, we aim to provide a secure environment for your sensitive data within the Configure8 platform.
At Configure8, we prioritize data privacy and strictly enforce access controls to ensure that your action details are protected. We understand the importance of maintaining the confidentiality of your organization's information and take the following measures to safeguard your data:
- Access Restrictions: Customers from other organizations are strictly prohibited from reading, sharing, or managing the details of your actions. Our access control mechanisms ensure that each organization's data is isolated and accessible only to authorized users within the respective organization.
- User Roles and Permissions: Configure8 employs a role-based access control (RBAC) system that allows organizations to define granular access permissions for their users. This ensures that only authorized personnel within your organization can access and manage the actions and associated information.
By implementing stringent access controls, user authentication mechanisms, and data segregation practices, Configure8 ensures that your action details are kept confidential and secure. We are committed to maintaining the privacy and security of your organization's data throughout our platform.
Last modified 2mo ago