From 2a26e95a81727d7d954a6c2a2c01ceb5daac262d Mon Sep 17 00:00:00 2001 From: Tim Wheeler <63284593+TimWheeler-SQUP@users.noreply.github.com> Date: Mon, 7 Sep 2026 13:47:03 +0100 Subject: [PATCH 1/2] Declare shape:string on Autotask lookup columns to fix filter type inference sourceId + objectPropertyPath lookup columns (assignedResourceName, companyName, etc.) had no declared shape, so SquaredUp inferred their filter type by sampling resolved values. A numeric-looking sample flipped the whole column to numeric filtering, dropping string operators and breaking matches against real string rows (PLUG-4740). Declaring shape:string explicitly on all 13 affected lookup columns across tickets, contractStatus, companies and resourceUtilisation streams bypasses the sampling and fixes both symptoms at the plugin level. Co-Authored-By: Claude Sonnet 5 --- .../AutoTask/v1/dataStreams/companies.json | 2 +- .../v1/dataStreams/contractStatus.json | 2 +- .../v1/dataStreams/resourceUtilisation.json | 2 +- plugins/AutoTask/v1/dataStreams/tickets.json | 22 ++++++++++--------- plugins/AutoTask/v1/metadata.json | 2 +- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/plugins/AutoTask/v1/dataStreams/companies.json b/plugins/AutoTask/v1/dataStreams/companies.json index 1eccdff3..b2eee75a 100644 --- a/plugins/AutoTask/v1/dataStreams/companies.json +++ b/plugins/AutoTask/v1/dataStreams/companies.json @@ -30,7 +30,7 @@ { "name": "country", "displayName": "Country" }, { "name": "createDate", "displayName": "Created Date", "shape": ["date", { "timeZone": "Etc/UTC" }] }, { "name": "ownerResourceID", "sourceType": "autotask-resource", "shape": "string", "visible": false }, - { "name": "ownerResourceName", "displayName": "Owner", "sourceId": "ownerResourceID", "objectPropertyPath": "name" }, + { "name": "ownerResourceName", "displayName": "Owner", "sourceId": "ownerResourceID", "objectPropertyPath": "name", "shape": "string" }, { "pattern": ".*" } ] } diff --git a/plugins/AutoTask/v1/dataStreams/contractStatus.json b/plugins/AutoTask/v1/dataStreams/contractStatus.json index c652a392..613d952b 100644 --- a/plugins/AutoTask/v1/dataStreams/contractStatus.json +++ b/plugins/AutoTask/v1/dataStreams/contractStatus.json @@ -27,7 +27,7 @@ { "name": "id", "displayName": "ID", "sourceType": "autotask-contract", "shape": "string", "visible": false }, { "name": "contractName", "displayName": "Contract Name" }, { "name": "companyID", "displayName": "Company ID", "sourceType": "autotask-company", "shape": "string", "visible": false }, - { "name": "companyName", "displayName": "Company", "sourceId": "companyID", "objectPropertyPath": "name" }, + { "name": "companyName", "displayName": "Company", "sourceId": "companyID", "objectPropertyPath": "name", "shape": "string" }, { "name": "contractTypeName", "displayName": "Contract Type", diff --git a/plugins/AutoTask/v1/dataStreams/resourceUtilisation.json b/plugins/AutoTask/v1/dataStreams/resourceUtilisation.json index 423db20d..e18800d2 100644 --- a/plugins/AutoTask/v1/dataStreams/resourceUtilisation.json +++ b/plugins/AutoTask/v1/dataStreams/resourceUtilisation.json @@ -22,7 +22,7 @@ "metadata": [ { "name": "id", "displayName": "ID", "visible": false,"shape":"string" }, { "name": "resourceID", "sourceType": "autotask-resource", "shape": "string", "visible": false }, - { "name": "resourceName", "displayName": "Resource", "sourceId": "resourceID", "objectPropertyPath": "name" }, + { "name": "resourceName", "displayName": "Resource", "sourceId": "resourceID", "objectPropertyPath": "name", "shape": "string" }, { "name": "dateWorked", "displayName": "Date Worked", "shape": ["date", { "timeZone": "Etc/UTC" }] }, { "name": "hoursWorked", "displayName": "Hours Worked", "shape": ["number", { "decimalPlaces": 2 }] }, { "name": "hoursToBill", "displayName": "Hours to Bill", "shape": ["number", { "decimalPlaces": 2 }] }, diff --git a/plugins/AutoTask/v1/dataStreams/tickets.json b/plugins/AutoTask/v1/dataStreams/tickets.json index 7fbcc2df..57163613 100644 --- a/plugins/AutoTask/v1/dataStreams/tickets.json +++ b/plugins/AutoTask/v1/dataStreams/tickets.json @@ -33,7 +33,8 @@ "name": "statusName", "displayName": "Status", "sourceId": "status", - "objectPropertyPath": "name" + "objectPropertyPath": "name", + "shape": "string" }, { "name": "statusHealth", @@ -52,27 +53,28 @@ "name": "priorityName", "displayName": "Priority", "sourceId": "priority", - "objectPropertyPath": "name" + "objectPropertyPath": "name", + "shape": "string" }, { "name": "priority", "displayName": "Priority (Raw)", "sourceType": "autotask-ticket-priority", "shape": "string", "visible": false }, { "name": "companyID", "sourceType": "autotask-company", "shape": "string", "visible": false }, - { "name": "companyName", "displayName": "Company", "sourceId": "companyID", "objectPropertyPath": "name" }, + { "name": "companyName", "displayName": "Company", "sourceId": "companyID", "objectPropertyPath": "name", "shape": "string" }, { "name": "contactID", "sourceType": "autotask-contact", "shape": "string", "visible": false }, - { "name": "contactName", "displayName": "Contact", "sourceId": "contactID", "objectPropertyPath": "name" }, + { "name": "contactName", "displayName": "Contact", "sourceId": "contactID", "objectPropertyPath": "name", "shape": "string" }, { "name": "contractID", "sourceType": "autotask-contract", "shape": "string", "visible": false }, - { "name": "contractName", "displayName": "Contract", "sourceId": "contractID", "objectPropertyPath": "name" }, + { "name": "contractName", "displayName": "Contract", "sourceId": "contractID", "objectPropertyPath": "name", "shape": "string" }, { "name": "assignedResourceID", "sourceType": "autotask-resource", "shape": "string", "visible": false }, - { "name": "assignedResourceName", "displayName": "Assigned Resource", "sourceId": "assignedResourceID", "objectPropertyPath": "name" }, + { "name": "assignedResourceName", "displayName": "Assigned Resource", "sourceId": "assignedResourceID", "objectPropertyPath": "name", "shape": "string" }, { "name": "completedByResourceID", "sourceType": "autotask-resource", "shape": "string", "visible": false }, - { "name": "completedByResourceName", "displayName": "Completed By", "sourceId": "completedByResourceID", "objectPropertyPath": "name" }, + { "name": "completedByResourceName", "displayName": "Completed By", "sourceId": "completedByResourceID", "objectPropertyPath": "name", "shape": "string" }, { "name": "firstresponeassignedresourceID", "displayName": "First Response Assigned Resource ID", "sourceType": "autotask-resource", "shape": "string", "visible": false }, - { "name": "firstResponseAssignedResourceName", "displayName": "First Response Resource", "sourceId": "firstresponeassignedresourceID", "objectPropertyPath": "name" }, + { "name": "firstResponseAssignedResourceName", "displayName": "First Response Resource", "sourceId": "firstresponeassignedresourceID", "objectPropertyPath": "name", "shape": "string" }, { "name": "lastActivityResourceID", "sourceType": "autotask-resource", "shape": "string", "visible": false }, - { "name": "lastActivityResourceName", "displayName": "Last Activity Resource", "sourceId": "LastActivityResourceID", "objectPropertyPath": "name" }, + { "name": "lastActivityResourceName", "displayName": "Last Activity Resource", "sourceId": "LastActivityResourceID", "objectPropertyPath": "name", "shape": "string" }, { "name": "issueType", "displayName": "Issue Type" }, { "name": "resolution", "displayName": "Resolution" }, { "name": "creatorResourceID", "sourceType": "autotask-resource", "shape": "string", "visible": false }, - { "name": "creatorResourceName", "displayName": "Creator", "sourceId": "CreatorResourceID", "objectPropertyPath": "name" }, + { "name": "creatorResourceName", "displayName": "Creator", "sourceId": "CreatorResourceID", "objectPropertyPath": "name", "shape": "string" }, { "name": "lastActivityDate", "displayName": "Last Activity Date", "shape": ["date", { "timeZone": "Etc/UTC" }] }, { "name": "dueDateTime", "displayName": "Due Date", "shape": ["date", { "timeZone": "Etc/UTC" }] }, { "name": "apiVendorID", "displayName": "API Vendor ID", "shape": "string", "visible": false }, diff --git a/plugins/AutoTask/v1/metadata.json b/plugins/AutoTask/v1/metadata.json index 6c46df7f..d1d13250 100644 --- a/plugins/AutoTask/v1/metadata.json +++ b/plugins/AutoTask/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "autotask", "displayName": "Autotask", - "version": "1.0.5", + "version": "1.0.6", "author": { "name": "@TimWheeler-SQUP", "type": "community" From 178476c6626fb5bbca5a02d0bca5d4c252326eb5 Mon Sep 17 00:00:00 2001 From: Tim Wheeler <63284593+TimWheeler-SQUP@users.noreply.github.com> Date: Tue, 8 Sep 2026 21:34:18 +0100 Subject: [PATCH 2/2] Bump Autotask plugin to 1.0.7 Required since main already moved to 1.0.6 after merging separate AutoTask changes. Co-Authored-By: Claude Sonnet 5 --- plugins/AutoTask/v1/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/AutoTask/v1/metadata.json b/plugins/AutoTask/v1/metadata.json index 943dd2ae..ae3ea4bf 100644 --- a/plugins/AutoTask/v1/metadata.json +++ b/plugins/AutoTask/v1/metadata.json @@ -1,7 +1,7 @@ { "name": "autotask", "displayName": "Autotask", - "version": "1.0.6", + "version": "1.0.7", "author": { "name": "SquaredUp Labs", "type": "labs"