Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins/AutoTask/v1/cspell.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"words": [
"AutoTask",
"Autotask",
"Datto",
"itsm"
]
Expand Down
12 changes: 6 additions & 6 deletions plugins/AutoTask/v1/custom_types.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,42 +7,42 @@
"plural": "Companies"
},
{
"name": "AutotaskContact",
"name": "Autotask Contact",
"sourceType": "autotask-contact",
"icon": "user",
"singular": "Contact",
"plural": "Contacts"
},
{
"name": "AutotaskProject",
"name": "Autotask Project",
"sourceType": "autotask-project",
"icon": "folder-kanban",
"singular": "Project",
"plural": "Projects"
},
{
"name": "AutotaskResource",
"name": "Autotask Resource",
"sourceType": "autotask-resource",
"icon": "hard-hat",
"singular": "Resource",
"plural": "Resources"
},
{
"name": "AutotaskContract",
"name": "Autotask Contract",
"sourceType": "autotask-contract",
"icon": "file-text",
"singular": "Contract",
"plural": "Contracts"
},
{
"name": "AutotaskTicketStatus",
"name": "Autotask Ticket Status",
"sourceType": "autotask-ticket-status",
"icon": "circle-dot",
"singular": "Ticket Status",
"plural": "Ticket Statuses"
},
{
"name": "AutotaskTicketPriority",
"name": "Autotask Ticket Priority",
"sourceType": "autotask-ticket-priority",
"icon": "arrow-up-circle",
"singular": "Ticket Priority",
Expand Down
5 changes: 3 additions & 2 deletions plugins/AutoTask/v1/dataStreams/companies.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{
"name": "companies",
"displayName": "Companies",
"description": "All active companies in AutoTask",
"tags": ["Companies"],
"description": "All active companies in Autotask",
"baseDataSourceName": "httpRequestUnscoped",
"timeframes": false,
"config": {
Expand All @@ -20,7 +19,9 @@
}
},
"metadata": [
{ "name": "id", "displayName": "ID", "sourceType": "autotask-company", "shape": "string", "visible": false },
{ "name": "companyName", "displayName": "Company Name" },
{ "sourceId": "id", "sourceType": "autotask-company", "name": "companyName" },
{ "name": "isActive", "displayName": "Is Active" },
{ "name": "phone", "displayName": "Phone" },
{ "name": "address1", "displayName": "Address" },
Expand Down
1 change: 1 addition & 0 deletions plugins/AutoTask/v1/dataStreams/contacts.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "contacts",
"displayName": "Contacts",
"description": "All active contacts in Autotask",
"baseDataSourceName": "httpRequestUnscoped",
"visibility": { "type": "hidden" },
"timeframes": false,
Expand Down
2 changes: 1 addition & 1 deletion plugins/AutoTask/v1/dataStreams/contractStatus.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"name": "contractStatus",
"displayName": "Contract Status",
"description": "Status and key dates for contracts belonging to the selected company",
"tags": ["Contracts"],
"baseDataSourceName": "httpRequestScopedSingle",
"timeframes": false,
"matches": {
Expand All @@ -28,6 +27,7 @@
{ "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" },
{ "sourceId": "companyID", "sourceType": "autotask-company", "name": "companyName" },
{
"name": "contractTypeName",
"displayName": "Contract Type",
Expand Down
1 change: 1 addition & 0 deletions plugins/AutoTask/v1/dataStreams/contracts.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "contracts",
"displayName": "Contracts",
"description": "All contracts in Autotask",
"baseDataSourceName": "httpRequestUnscoped",
"visibility": { "type": "hidden" },
"timeframes": false,
Expand Down
1 change: 0 additions & 1 deletion plugins/AutoTask/v1/dataStreams/financialHealth.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"name": "financialHealth",
"displayName": "Financial Health",
"description": "Estimated revenue, cost, and hours across all contracts",
"tags": ["Finance"],
"baseDataSourceName": "httpRequestUnscoped",
"timeframes": false,
"config": {
Expand Down
1 change: 0 additions & 1 deletion plugins/AutoTask/v1/dataStreams/projectStatus.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"name": "projectStatus",
"displayName": "Project Status",
"description": "Status, progress, and schedule for all projects",
"tags": ["Projects"],
"baseDataSourceName": "httpRequestUnscoped",
"timeframes": false,
"config": {
Expand Down
1 change: 1 addition & 0 deletions plugins/AutoTask/v1/dataStreams/projects.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "projects",
"displayName": "Projects",
"description": "All projects in Autotask",
"baseDataSourceName": "httpRequestUnscoped",
"visibility": { "type": "hidden" },
"timeframes": false,
Expand Down
1 change: 0 additions & 1 deletion plugins/AutoTask/v1/dataStreams/resourceUtilisation.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"name": "resourceUtilisation",
"displayName": "Resource Utilization",
"description": "Time entries logged by resources within the selected timeframe",
"tags": ["Resources"],
"baseDataSourceName": "httpRequestUnscoped",
"timeframes": true,
"config": {
Expand Down
1 change: 1 addition & 0 deletions plugins/AutoTask/v1/dataStreams/resources.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "resources",
"displayName": "Resources",
"description": "All active resources in Autotask",
"baseDataSourceName": "httpRequestUnscoped",
"visibility": { "type": "hidden" },
"timeframes": false,
Expand Down
2 changes: 1 addition & 1 deletion plugins/AutoTask/v1/dataStreams/scripts/tickets.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
const selectedIds = new Set(context.objects.map(o => String(o.companyId)));
const selectedIds = new Set((context.objects ?? []).map(o => String(o.companyId)));
result = (data.items ?? []).filter(ticket => selectedIds.has(String(ticket.companyID)));
1 change: 0 additions & 1 deletion plugins/AutoTask/v1/dataStreams/surveyResults.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"name": "surveyResults",
"displayName": "Survey Results",
"description": "Survey results submitted within the selected timeframe",
"tags": ["Surveys"],
"baseDataSourceName": "httpRequestUnscoped",
"timeframes": true,
"config": {
Expand Down
3 changes: 1 addition & 2 deletions plugins/AutoTask/v1/dataStreams/ticketPriorities.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{
"name": "ticketPriorities",
"displayName": "Ticket Priorities",
"description": "All ticket priorities from AutoTask",
"tags": ["Tickets"],
"description": "All ticket priorities from Autotask",
"baseDataSourceName": "httpRequestUnscoped",
"visibility": { "type": "hidden" },
"timeframes": false,
Expand Down
3 changes: 1 addition & 2 deletions plugins/AutoTask/v1/dataStreams/ticketStatuses.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{
"name": "ticketStatuses",
"displayName": "Ticket Statuses",
"description": "All active ticket statuses from AutoTask, including custom statuses",
"tags": ["Tickets"],
"description": "All active ticket statuses from Autotask, including custom statuses",
"baseDataSourceName": "httpRequestUnscoped",
"visibility": { "type": "hidden" },
"timeframes": false,
Expand Down
10 changes: 5 additions & 5 deletions plugins/AutoTask/v1/dataStreams/tickets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"name": "tickets",
"displayName": "Tickets",
"description": "Tickets with last activity within the selected timeframe",
"tags": ["Tickets"],
"baseDataSourceName": "httpRequestScoped",
"timeframes": true,
"matches": {
Expand Down Expand Up @@ -57,6 +56,7 @@
{ "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" },
{ "sourceId": "companyID", "sourceType": "autotask-company", "name": "companyName" },
{ "name": "contactID", "sourceType": "autotask-contact", "shape": "string", "visible": false },
{ "name": "contactName", "displayName": "Contact", "sourceId": "contactID", "objectPropertyPath": "name" },
{ "name": "contractID", "sourceType": "autotask-contract", "shape": "string", "visible": false },
Expand All @@ -65,14 +65,14 @@
{ "name": "assignedResourceName", "displayName": "Assigned Resource", "sourceId": "assignedResourceID", "objectPropertyPath": "name" },
{ "name": "completedByResourceID", "sourceType": "autotask-resource", "shape": "string", "visible": false },
{ "name": "completedByResourceName", "displayName": "Completed By", "sourceId": "completedByResourceID", "objectPropertyPath": "name" },
{ "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": "firstResponseAssignedResourceID", "displayName": "First Response Assigned Resource ID", "sourceType": "autotask-resource", "shape": "string", "visible": false },
{ "name": "firstResponseAssignedResourceName", "displayName": "First Response Resource", "sourceId": "firstResponseAssignedResourceID", "objectPropertyPath": "name" },
{ "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" },
{ "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" },
{ "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 },
Expand Down
8 changes: 5 additions & 3 deletions plugins/AutoTask/v1/docs/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Before you start
Connect to Datto Autotask PSA to monitor tickets, contracts, projects, resources, and company data.

## Before you start

You will need an Autotask account with admin access to create an API User. API Users are a dedicated account type in Autotask used for system integrations. They are separate from regular user accounts and cannot log in to the Autotask UI.

Expand All @@ -9,7 +11,7 @@ You will need an Autotask account with admin access to create an API User. API U
3. Complete the required fields in the **General** section, including **Email Address**. This address is only used to notify you if the integration has a problem, and it is **not** the API Username
4. Set **Security Level** to an API User (API-only) level with read access to the entities you want to monitor
5. In the **Credentials** section, click **Generate Key** to create the **Username (Key)**, and **Generate Secret** to create the **Password (Secret)**. Let Autotask generate both rather than typing your own, so they are formatted correctly
6. In the **API Tracking Identifier** section, select your **Integration Vendor**, or choose **Custom (Internal Integration)** to generate an identifier. This value is the **API Integration Code**
6. In the **API Tracking Identifier** section, select **Squared Up** as your **Integration Vendor**. Its **API Integration Code** is `FWAABGUO7E7BBHD3PQMLWCGLGY` β€” enter this value when configuring the plugin
Comment thread
coderabbitai[bot] marked this conversation as resolved.
7. Save the record, then copy the Username (Key), Password (Secret) and tracking identifier somewhere safe. The secret cannot be retrieved again after you leave the page

The API User must have sufficient security permissions to read the entities you want to monitor (Companies, Tickets, Contracts, Projects, Resources, and Survey Results).
Expand Down Expand Up @@ -38,5 +40,5 @@ Enter the full base including `https://`.
|---|---|
| **Zone URL** | Derived from your Autotask login URL. See above |
| **API Username** | API User record > Credentials > **Username (Key)** |
| **API Integration Code** | API User record > **API Tracking Identifier** |
| **API Integration Code** | The **Squared Up** Integration Vendor code is `FWAABGUO7E7BBHD3PQMLWCGLGY` |
Comment thread
TimWheeler-SQUP marked this conversation as resolved.
| **API Secret** | API User record > Credentials > **Password (Secret)** |
6 changes: 3 additions & 3 deletions plugins/AutoTask/v1/metadata.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"name": "autotask",
"displayName": "Autotask",
"version": "1.0.5",
"version": "1.0.6",
"author": {
"name": "@TimWheeler-SQUP",
"type": "community"
"name": "SquaredUp Labs",
"type": "labs"
},
"description": "Monitor tickets, contracts, projects, resources, and company data from Datto Autotask PSA.",
"category": "Service Management",
Expand Down
6 changes: 3 additions & 3 deletions plugins/AutoTask/v1/ui.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
{
"type": "text",
"name": "userName",
"label": "API Username",
"label": "API username",
"placeholder": "A1B2C3D4E5F6@yourdomain.com",
"help": "On the Autotask API User record, this is **Credentials > Username (Key)**, created with the **Generate Key** button. It is not the **Email Address** field on the General section, even though the Username is formatted like an email address.",
"validation": {
Expand All @@ -23,7 +23,7 @@
{
"type": "password",
"name": "integrationCode",
"label": "API Integration Code",
"label": "API integration code",
"help": "On the Autotask API User record, this is the identifier under **API Tracking Identifier**. Select an Integration Vendor, or choose **Custom (Internal Integration)** to generate one.",
"validation": {
"required": true
Expand All @@ -32,7 +32,7 @@
{
"type": "password",
"name": "secret",
"label": "API Secret",
"label": "API secret",
"help": "On the Autotask API User record, this is **Credentials > Password (Secret)**, created with the **Generate Secret** button.",
"validation": {
"required": true
Expand Down
Loading