Skip to content

AutoTask LCP#45

Merged
clarkd merged 22 commits into
mainfrom
work/tw/AutoTask
May 11, 2026
Merged

AutoTask LCP#45
clarkd merged 22 commits into
mainfrom
work/tw/AutoTask

Conversation

@TimWheeler-SQUP
Copy link
Copy Markdown
Contributor

@TimWheeler-SQUP TimWheeler-SQUP commented May 9, 2026

🔌 Plugin overview

  • Plugin name: AutoTask
  • Purpose / problem solved: Enable SquaredUp users to monitor tickets, contracts, projects, companies, contacts, and resources via Autotask PSA
  • Primary audience (e.g. platform teams, SREs, product teams): MSPs and IT service teams using Autotask for PSA/ticketing
  • **Authentication method - API username and secret (API user credentials)

🖼️ Plugin screenshots


🧪 Testing

Tested all data streams return results. Status and state mappings validated for tickets, contracts, and projects. OOB tickets dashboard loads and displays data correctly. Object indexing confirmed for companies, contacts, contracts, projects, and resources.


⚠️ Known limitations

None at this time.


📚 Checklist

  • Plugin, datastream and UI naming follow SquaredUp guidelines
  • Logo added
  • One or more dashboards added
  • README added including configuration guidance
  • No secrets or credentials included
  • I agree to the Code of Conduct

@TimWheeler-SQUP TimWheeler-SQUP requested a review from a team May 9, 2026 20:45
@TimWheeler-SQUP TimWheeler-SQUP changed the title Add AutoTask plugin AutoTask LCP May 9, 2026
@TimWheeler-SQUP TimWheeler-SQUP requested a review from clarkd May 9, 2026 20:51
Comment thread plugins/AutoTask/v1/dataStreams/tickets.json
Comment thread plugins/AutoTask/v1/metadata.json Outdated
Comment thread test-present.txt Outdated
Comment thread plugins/AutoTask/v1/metadata.json Outdated
- Rename displayName AutoTask → Autotask, update name to autotask
- Update description to reference Datto Autotask PSA with full stop
- Add documentation link to metadata.json; bump version to 1.0.1
- Change category from User Defined to Service Management
- Update configValidation, custom_types, ui.json, README: AutoTask → Autotask
- Fix ui.json help text to start with verbs and drop possessive phrasing
- Add computed statusName with state mapping to projectStatus.json
- Add plugins/AutoTask to CODEOWNERS
- Remove CLAUDE.md, CLAUDE.local.md, and test-present.txt from PR

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

🧩 Plugin PR Summary

📦 Modified Plugins

  • plugins/AutoTask/v1

📋 Results

Step Status
Validation ✅ Passed
Deployment 🚀 Deployed

🔍 Validation Details

autotask
{
  "valid": true,
  "pluginName": "autotask",
  "pluginType": "cloud",
  "summary": {
    "Data Streams": 11,
    "Import Definitions": 1,
    "UI Configuration": true,
    "Has Icon": true,
    "Has Default Content": true,
    "Config Validation": true,
    "Custom Types": true
  }
}

Copy link
Copy Markdown
Member

@clarkd clarkd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great - a few minor comments/discussion, but nothing blocking. Take it or leave it!

@@ -0,0 +1,2 @@
const selectedIds = new Set(context.objects.map(o => String(o.companyId)));
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I presume there's not an API parameter to filter by company ID/name?

"config": {
"httpMethod": "get",
"expandInnerObjects": true,
"endpointPath": "atservicesrest/v1.0/Companies/query?search={\"MaxRecords\":500,\"filter\":[{\"op\":\"exist\",\"field\":\"id\"}]}",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given you have paging added, you could reduce the 500 needed here if you hit size limits - or it could be faster fetching more smaller pages.

"name": "statusName",
"displayName": "Status",
"computed": true,
"valueExpression": "{{ $['status'] == 1 ? 'Active' : $['status'] == 2 ? 'Upcoming' : $['status'] == 3 ? 'Cancelled' : $['status'] == 4 ? 'Completed' : $['status'] == 6 ? 'Inactive' : 'Unknown' }}",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you using a value expression AND a map here so users can both see our statues like 'success', 'error' as well as nicer raw names like 'Active' and 'Completed'? I think it's OK, just not seen this before.

"computed": true,
"valueExpression": "{{ $['contractType'] == 1 ? 'Time and Materials' : $['contractType'] == 3 ? 'Fixed Price' : $['contractType'] == 4 ? 'Block Hours' : $['contractType'] == 6 ? 'Retainer' : $['contractType'] == 7 ? 'Recurring Service' : $['contractType'] == 8 ? 'Incident' : 'Unknown' }}"
},
{ "name": "estimatedRevenue", "displayName": "Estimated Revenue", "shape": ["number", { "decimalPlaces": 2 }] },
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currency shape better?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can specify the currency dynamically if it's returned in the data / as a column FYI.

"label": "Status",
"allowCustomValues": true,
"isMulti": true,
"defaultValue": "1,5,8,9,10,11,12,13",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little surprised & intrigued that this works ok?

@@ -0,0 +1,37 @@
[
{
"name": "Autotask Company",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the name is used for much, but this has a space in while the others do not...

@clarkd clarkd merged commit 00335a2 into main May 11, 2026
1 check passed
@clarkd clarkd deleted the work/tw/AutoTask branch May 11, 2026 09:09
@clarkd clarkd added the new-plugin Used to PR newly added plugins label May 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-plugin Used to PR newly added plugins

Development

Successfully merging this pull request may close these issues.

2 participants