Datto RMM Setup

To get started with automating QuickBooks updates in Datto RMM, create a PowerShell component and run it against the Windows devices you want to update.

QB-Flow can be deployed silently through Datto RMM by downloading the QB-Flow executable, passing your Customer ID, and writing a local deployment log to the endpoint.

Get Customer ID

Get your Customer ID that was emailed to you when you subscribed to QB-Flow.

Your Customer ID will look similar to:

cus_XXXXXXXXXXXXXXXX

Replace Your_Customer_ID in the script below with your assigned Customer ID.

Create Datto RMM Component

In Datto RMM:

  1. Go to Automation
  2. Select Components
  3. Create a new component
  4. Choose PowerShell as the script type
  5. Name the component something like:
QB-Flow Deployment
  1. Paste the script below
  2. Save the component
  3. Run it against a small test group before deploying broadly

PowerShell Deployment Script

# QB-Flow Deployment for Datto RMM
# Run as a Datto RMM PowerShell component

$ErrorActionPreference = "Stop"

# Enter your Customer ID, which can be found in your Welcome Email after subscribing to QB-Flow
$CustomerId = "Your_Customer_ID"

# URL to download the QB-Flow executable
$Url = "https://flowdevsblob.blob.core.windows.net/qbflow/QB-flow.exe"

# Destination path for the QB-Flow executable
$Dest = "C:\Windows\Temp\qb-flow.exe"

# Log file location
$Log = "C:\Windows\Temp\qbflow_$(Get-Date -Format 'yyyyMMdd_HHmmss').log"

function Write-Log {
    param([string]$Message)

    $Line = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') $Message"
    Write-Output $Line
    Add-Content -Path $Log -Value $Line
}

try {
    Write-Log "Starting QB-Flow deployment..."
    Write-Log "Customer ID: $CustomerId"
    Write-Log "Download URL: $Url"
    Write-Log "Destination: $Dest"

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

    if (Test-Path $Dest) {
        Write-Log "Removing existing QB-Flow executable at $Dest"
        Remove-Item $Dest -Force
    }

    Write-Log "Downloading QB-Flow executable..."
    $WebClient = New-Object System.Net.WebClient
    $WebClient.DownloadFile($Url, $Dest)

    if (!(Test-Path $Dest)) {
        throw "Download failed. File was not found at $Dest"
    }

    Write-Log "Download complete."
    Write-Log "Executing QB-Flow..."
    Write-Log "Command: $Dest /customerid $CustomerId"

    $Output = & $Dest "/customerid" $CustomerId 2>&1
    $ExitCode = $LASTEXITCODE

    $Output | ForEach-Object {
        Write-Log $_
    }

    Write-Log "QB-Flow exit code: $ExitCode"

    if ($ExitCode -ne 0) {
        throw "QB-Flow failed with exit code $ExitCode"
    }

    Write-Log "QB-Flow deployment complete."
    exit 0
}
catch {
    Write-Log "ERROR: $($_.Exception.Message)"
    exit 1
}

Deployment Notes

We recommend running the component against 1–3 test endpoints first before deploying to all devices.

The deployment log is written to:

C:\Windows\Temp\qbflow_[timestamp].log

Example:

C:\Windows\Temp\qbflow_20260505_143000.log

If the deployment fails, review the log file on the endpoint and confirm that:

  1. The endpoint has internet access
  2. PowerShell is allowed to run through Datto RMM
  3. The endpoint can download from the FlowDevs Azure Blob URL
  4. Endpoint security or application control is not blocking execution from C:\Windows\Temp
  5. The correct Customer ID was entered in the script

Optional Reboot

A reboot is not always required for QB-Flow deployment, but you may schedule one through Datto RMM after the component runs if that matches your normal patching or maintenance process.

For larger rollouts, we recommend scheduling deployment and reboot tasks during a maintenance window.

New Client Information

Looking for detailed information about Customer IDs, pricing, and billing?