Getting Started

Endpoints

Patch Management

Vulnerability Management

Software Deployment & IT Assets

Automation & Remote Desktop

Real-Time Reports & Alerts

Account Access & Management

SSO Authentication

Security Concerns

Need Help?

Action1 5 Documentation 5 Data Sources

Data Sources

What is a data source?

A data source represents a specific component of your IT environment, such as a disk volume or local group assignments. Technically, it is a scripting template that queries certain endpoint data and presents it in a structured form, available for reporting or alerting.
Action1 offers more than 30 built-in scripting templates available under Configuration | Data Sources. The list of built-in data sources evolves with every Action1 platform update.

You can use data sources to create custom reports based on data that you are interested in. The data source will retrieve information from managed endpoints, while the custom report will present it in a user-friendly format.

NOTE: Currently, custom reports can be created for Windows endpoints only.

Available Data Sources

To view the list of available data sources, navigate to Configuration | Data Sources.

Data Sources list

The data sources are shared across all Organizations in your Action1 Enterprise.

Open any data source to review its settings and examine the script and the data columns it returns using the Data Source wizard:

  • On the General step, view the data source name and description.
  • On the Script step, review the script used to gather data from endpoints.
  • On the Columns step, explore the data columns returned by the script.

Creating a data source

NOTE: Currently, custom data sources can be created for Windows endpoints only; they should be implemented as Windows PowerShell scripts.

Tip: Before adding a new data source, test your data collection script independently to ensure it produces the expected results.

NOTE: To create a data source, a role with the Manage Data Sources permission is required. To learn more, see Permissions in Detail.

To create a data source:

  1. Navigate to Configuration | Data Sources and select + New to start the Data Source wizard.
  2. On the General step, provide a data source name and description.
  3. On the Script step, enter a script that will collect data from the managed endpoints.
Configuring a data source - step 2

NOTE: If you are using the signed PowerShell script, use the upload option. See Using Scripts for details on script signing.

  1. On the Columns step, select an endpoint where the script will run. Click Detect to execute the script and automatically identify the schema of returned data (displayed as a list of columns).
Configuring a data source - step 3
  1. Click Finish to save the settings.

The newly created custom data source will appear in the Data Sources list.

What is next?

Create custom data sources and reports to enrich your monitoring and management workflows with Action1. 

How to use a data source for reporting

You can base your custom reports on any existing data source. For that:

  1. Navigate to Real-Time Reports & Alerts | Custom Reports.
  2. Click + Add and select a data source from the list.

To learn more, see Custom Reports

Adding a custom report - General tab

Tips for Creating Custom Data Sources

To create your custom PowerShell scripts as data sources, you can use the Action1_DataSource_template.ps1 data source template provided below.

Always review and test your custom scripts before using them in a production environment. Verify that the script:

  • Collects the required data.
  • Returns fields in the expected order.
  • Places the A1_Key field last.
  • Returns a unique and stable A1_Key value for every object,
  • Handles errors and missing data correctly.

You can use an AI assistant, such as ChatGPT, Gemini, or Claude. Some AI assistants (e.g., Gemini)  may already be familiar with the Action1 data source format. You can start with a prompt such as:

Create an Action1 data source PowerShell script that reports BitLocker recovery keys. 
Create an Action1 data source PowerShell script that reports TPM status as true or false. 
Create an Action1 data source PowerShell script that reports <describe the required information>.

If the AI assistant is not familiar with the required Action1 data source structure, provide the Action1 data source script template:

  1. Use the Action1_DataSource_template.ps1 data source template (see below).
  2. Attach the template to the AI assistant or paste its contents into the conversation.
  3. Enter a prompt that clearly describes the required data. For example:
Using Action1_DataSource_template.ps1 as the template, create an Action1 data source PowerShell script that collects BitLocker recovery keys.
  1. Review the generated script and verify that it follows the template.
  2. Test the script on a limited group of endpoints before broader deployment.

Important! Do not provide confidential information, credentials, recovery keys, or endpoint data to a public AI service. The AI assistant needs only the script template and a description of the required output, not actual data collected from your environment.

Action1_DataSource_template.ps1

=====script title= Action1 Custom Data Source =====
# Description: What this data source collects and why


# ----- Result Object -----
# Rules:
#   - A1_Key MUST be the last property
#   - A1_Key value must uniquely identify the row (typically $env:COMPUTERNAME)
#   - Add/remove custom fields between ComputerName and ErrorMessage
#   - Initialize all fields to a safe default ($null, "", "Unknown", etc.)


$result = [PSCustomObject]@{
    ComputerName = $env:COMPUTERNAME


    # --- Custom fields: add your data columns here ---
    # Field1       = "Unknown"
    # Field2       = $null
    # Field3       = ""


    # --- Always keep these two last (before A1_Key) ---
    ErrorMessage = ""
    A1_Key       = $env:COMPUTERNAME   # <-- MUST be last
}




# ----- Primary Data Collection -----
try {
    # TODO: Replace with your primary query/cmdlet
    # Example: $data = Get-SomeWmiClass -ErrorAction Stop


    # Assign results to $result properties
    # $result.Field1 = $data.Property1
    # $result.Field2 = $data.Property2


} catch {
    # Set a safe fallback for any fields that depend on this block
    # $result.Field1 = "Error"


    $result.ErrorMessage = $_.Exception.Message
}




# ----- Secondary Data Collection (optional, repeat as needed) -----
# Remove this block if you only need one query.
try {
    # TODO: Replace with your secondary query/cmdlet
    # Example: $extra = Get-AnotherCmdlet -ErrorAction Stop


    # $result.Field3 = $extra.SomeProperty


} catch {
    # Append to ErrorMessage so the first error isn't lost
    if ($result.ErrorMessage) {
        $result.ErrorMessage += "; " + $_.Exception.Message
    } else {
        $result.ErrorMessage = $_.Exception.Message
    }
}




# ----- Output (required by Action1) -----
$result