Autotask Web Services API. API Version 1.1



Similar documents
Integrating Autotask Service Desk Ticketing with the Cisco OnPlus Portal

Security Analytics Engine 1.0. Help Desk User Guide

Integrating ConnectWise Service Desk Ticketing with the Cisco OnPlus Portal

Aras Corporation Aras Corporation. All rights reserved. Notice of Rights. Notice of Liability

Cvent Web Services API. Version V June 2008

OnTime Web Services User Guide

Teiid - Salesforce Connector Guide 6.2.0

CA Nimsoft Monitor. Probe Guide for CA ServiceDesk Gateway. casdgtw v2.4 series

CA Nimsoft Service Desk

CounterACT Plugin Configuration Guide for ForeScout Mobile Integration Module MaaS360 Version ForeScout Mobile

ALTIRIS CMDB Solution 6.5 Product Guide

Sentinel EMS v7.1 Web Services Guide

Unleash the Power of e-learning

CA Clarity PPM. Connector for Microsoft SharePoint Product Guide. Service Pack

Virtual Contact Center

Wave Analytics External Data API Developer Guide

Easy Manage Helpdesk Guide version 5.4

WebSphere Business Monitor

REST Webservices API Tutorial

HP A-IMC Firewall Manager

Connector for CA Unicenter Asset Portfolio Management Product Guide - On Premise. Service Pack

Virtual Contact Center

Provider Web Portal Registration Form

c360 to Case Installation and Configuration Guide

MBAM Self-Help Portals

Interworks. Interworks Cloud Platform Installation Guide

Scribe Online Integration Services (IS) Tutorial

The QuickBooks Extension

formerly Help Desk Authority Upgrade Guide

Configuring Integration Between Multichannel and Salesforce.com

Administrator Guide. LANDesk Service Desk Suite

Dell InTrust Preparing for Auditing Microsoft SQL Server

QAD BPM Release Notes

Integrating Siebel CRM with Microsoft SharePoint Server

Fairsail REST API: Guide for Developers

Sage HRMS 2014 Sage HRMS Payroll Getting Started Guide. October 2013

Jobs Guide Identity Manager February 10, 2012

How To Use Microsoft Gpa On Microsoft Powerbook (Windows) On A Microsoft P2.1 (Windows 2.2) On An Uniden Computer (Windows 1.5) On Micro

ADP Workforce Now Security Guide. Version 2.0-1

Kaseya 2. Quick Start Guide. for VSA 6.3

Microsoft Dynamics CRM Security Provider Module

System Requirements. Installation. Microsoft SQL Express 2008 R2 Installation

Accounts Payable Workflow Guide. Version 12.0

formerly Help Desk Authority HDAccess Administrator Guide

REST Webservices API Reference Manual

Event Manager. LANDesk Service Desk

TIBCO Spotfire Metrics Modeler User s Guide. Software Release 6.0 November 2013

Workflow Conductor Widgets

Business Portal for Microsoft Dynamics GP. Project Time and Expense Administrator s Guide Release 10.0

Pervasive Data Integrator. Oracle CRM On Demand Connector Guide

Neuron Event Manager. USER S GUIDE Product Version:

Custom Apps A Beginners Guide

API Commands for Web hosting

How To Set Up Total Recall Web On A Microsoft Memorybook (For A Microtron)

HP IMC Firewall Manager

Welcome to ComputerEase 10.0

CA Nimsoft Service Desk

Dell One Identity Manager 7.0. Help Desk Module Administration Guide

Copyright NetSuite, Inc All rights reserved. Trademarks

Enterprise Toolbar User s Guide. Revised March 2015

IBM Emptoris Contract Management. Release Notes. Version GI

Safeguard Ecommerce Integration / API

ORACLE CRM ON DEMAND DEVELOPMENT ADDENDUM TO THE ORACLE PARTNERNETWORK AGREEMENT

TeamViewer 9 Manual Management Console

Legal Information Trademarks Licensing Disclaimer

Quick Connect for Cloud Services

Introduction Purpose... 2 Scope... 2 Icons Tasks and ehealth Processes Incident Management... 3 Change Management...

Oracle Marketing Encyclopedia System

Master Data Services. SQL Server 2012 Books Online

What's New Feature Guide

Dell KACE K1000 System Management Appliance Version 5.4. Service Desk Administrator Guide

CRM to Exchange Synchronization

Using SAML for Single Sign-On in the SOA Software Platform

Dell Statistica Document Management System (SDMS) Installation Instructions

RealPresence Media Manager Blackboard Learn 9.1 Learning Management System Integration Guide

User Application: Design Guide

Salesforce Customer Portal Implementation Guide

Polar Help Desk 4.1. User s Guide

HP Service Manager. Software Version: 9.40 For the supported Windows and Linux operating systems. Application Setup help topics for printing

Nevepoint Access Manager 1.2 BETA Documentation

CA Clarity Project & Portfolio Manager

Setting Up Person Accounts

2009, AdventNet Inc. All rights reserved. Product Customization

Provider secure web portal & Member Care Information portal Registration Form

User Replicator USER S GUIDE

CaseWare Time. CaseWare Cloud Integration Guide. For Time 2015 and CaseWare Cloud

How To Filter A List In Jangomail In A Database In A Row (For A List)

Dell Statistica Statistica Enterprise Installation Instructions

Symantec Mobile Management for Configuration Manager

ALTIRIS Notification Connector Configuration Guide

Aras Innovator Authentication Setup

MAKER FOR VTIGER CRM

Installation and Administration Guide

Integrating Kareo PM and WebPT EHR

Lab 9 Access PreLab Copy the prelab folder, Lab09 PreLab9_Access_intro

v7.1 SP1 Release Notes

TIBCO Slingshot User Guide

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

NetBak Replicator 4.0 User Manual Version 1.0

HP Project and Portfolio Management Center

Transcription:

Autotask Web Services API API Version 1.1 Document Created: 9/28/2006 Last modified: 4/04/2012

Autotask Web Services API API License Agreement WARRANTY DISCLAIMER - THE APIs are provided AS IS without warranty of any kind. Except to the extent required by applicable law, Autotask disclaims all warranties, whether express, implied or statutory, regarding the APIs, including without limitation any and all implied warranties of merchantability, accuracy, results of use, reliability, fitness for a particular purpose, title and non-infringement with thirdparty rights. Further, Autotask disclaims any warranty that your use of the APIs will be uninterrupted or error free. COMMERCIAL USE You may build applications using the API for commercial use. It is highly recommended that You contact our Autotask After-market Sales Team before building any commercial applications. Please send an outline of your planned application to aftermarketsales@autotask.com. We will respond within 48 hours to let you know whether the feature is part of the short-term roadmap or being developed by a partner. We will also discuss the possibility of including your proposed application in the after-market store and whether there are opportunities for joint sales efforts. SUPPORT AND UPGRADES Autotask does not guarantee upward compatibility but will make every effort to do so. You are not entitled to any support for the APIs beyond their standard support for Autotask. Autotask provides support for the current and previous two versions of the API. PROPRIETARY RIGHTS - The APIs and all intellectual property rights in and to the APIs are and shall at all times remain the sole and exclusive property of Autotask and are protected by applicable intellectual property laws and treaties. Autotask is not restricted from developing and/or adding any features necessary to the Autotask product which may compete or overlap with applications built by You. INDEMNITY - You agree that Autotask shall have no liability whatsoever for any use You make of the APIs. You shall indemnify and hold harmless Autotask from any and all claims, damages, liabilities, costs and fees (including reasonable attorneys' fees) arising from your use of the APIs. TERM AND TERMINATION - Either party may terminate this Agreement at any time, for any reason, or for no reason including, but not limited to, if You violate any provision of this Agreement. You agree to be fully responsible for your own conduct and content while using the API, and for any consequences thereof. You agree to use the API only for purposes that are legal and not malicious. April 2012 i

Autotask Web Services API API Revision History Version Date Changes/Additions 1.1 06/21/2007 Initial release. 02/23/2009 Update Web Services URLs as per information from IT Services. 06/09/2009 Document correction. No API change. 12/09/2009 Document addition No API change: added table to QueryXML section that lists five XML special characters and the entity references required to escape them. 09/07/2010 API Call Threshold added. 09/21/2010 Document update only: updated API call threshold description 11/10/2010 Updated query: api call to indicate that querying on protected UDFs is case sensitive. Autotask now allows Roles to be inactivated. Added conditional requirement to Ticket, Task, and TimeEntry entities to indicate that attempt to create resource + role combinations where the Role is inactive will trigger an error message 03/02/2011 InstalledProduct entity: ReferenceNumber ( string) - character limit changed to 100 SerialNumber (string) - character limit changed to 100 05/04/2011 Added base URL information for London Data Center (formerly G1) 07/07/2011 Update URLs for North America zone changes. 08/09/2011 Added Pre-release zone information to Getting Started 09/21/2011 Note added to TicketNote entity re: excluding workflow notes 10/23/2011 Contact entity Account ID is now read only (to avoid potential data corruption) 11/17/2011 Add AU Zone, ww6, to list of URLs Installed Product entity Active field data type changed from short to boolean, per change to AT Database 12/08/2011 Document change: remove zone redirect information from Getting Started 04/04/2012 Account and Contact entities: Country field increased to 100 characters April 2012 ii

Autotask Web Services API Table of Contents API License Agreement... i API Revision History... ii Introduction... 1 Requirements... 1 Autotask Community Support... 1 Getting Started... 2 VB.NET Sample Code... 3 API Call Threshold... 3 Entities... 5 About Entities... 5 About Entity Fields... 5 About the id Field... 5 Entity Descriptions... 5 Account... 7 Entity Details... 7 Field Details... 7 AccountNote... 9 Entity Details... 9 Field Details... 9 Contact... 10 Entity Details... 10 Field Details... 10 Contract... 12 Entity Details... 12 Field Details... 12 Installed Product... 13 Entity Details... 13 Field Details... 13 Resource... 14 Entity Details... 14 Field Details... 14 Ticket... 15 Entity Details... 15 Field Details... 15 TicketNote... 17 Entity Details... 17 Field Details... 17 API Calls... 18 About API Calls... 18 API Call Descriptions... 18 create:... 19 Description... 19 Sample create: Code... 19 Sample Code to Check if the Object Exists... 19 Considerations... 20 query:... 21 Description... 21 April 2012 iii

Autotask Web Services API Sample query: Code... 22 Considerations... 22 update:... 23 Description... 23 Sample update: Code... 23 Considerations... 24 getentityinfo:... 25 Description... 25 Sample getentityinfo: Code... 25 getfieldinfo:... 26 Description... 26 Sample getfieldinfo: Code... 27 getudfinfo:... 28 Description... 28 Sample getudfinfo: Code... 29 API Return Values... 30 API Return Values... 30 ATWSResponse... 30 ATWSError... 30 User-Defined Fields (UDFs)... 31 Description... 31 UDF update: Sample Code... 31 Considerations... 31 QueryXML... 32 QueryXML Elements and Attributes... 32 QueryXML Examples... 33 Example 1: Simple field test... 33 Example 2: Multiple Field Test... 33 Example 3: Multiple Fields combined with OR... 34 Example 4: Nested Conditions... 34 XML Special Characters... 35 Copyright 2010 Autotask. All Rights Reserved. April 2012 iv

Introduction Autotask Web Service API The Autotask Web Services API allows you to create Web based client applications to access your organization s Autotask data and functionality. You can extend existing Web based applications to allow your users to access Autotask from those applications and complete tasks like create Autotask tickets and accounts and retrieve, update, and delete selected Autotask data. Authentication passes the end user's login name and password. Client access to data and actions is limited by the Autotask permission level of the logged in end user. Requirements The following conditions must be met in order to utilize the Autotask Web Services API. Your Autotask setup must include the Autotask Web Services API module. Autotask Customer Support must make the Web Services API URL available to your organization. You must configure the authentication as discussed in Getting Started. Threshold on API Requests To ensure an acceptable response time for all Web Services API users, Autotask sets a limit on the number of calls per hour between the API and an individual database. The limit is high and if you are using the API as intended you should not see an impact. For additional details, see API Call Threshold. Autotask Community Support Visit the Autotask Community Developer Tools and API forum to gain valuable information and assistance from other developers working with the Autotask Web Services API. April 2012 1

Getting Started NOTE: There are currently several variations in the base URL for the WSDL and the web services. You must use the variation that is consistent with the base URL that you use to access the Autotask Web site. If you use the wrong base URL, you will receive a 401: error. See below for a list of all base URL variations. Going forward, the URL for your Autotask access may change; therefore we recommend that you anticipate possible changes when writing your applications and store the URL information in an initialization or configuration file. For example,.net developers can store the information in the Web.config file. This allows easy updating if the URL information changes. Before you begin accessing the Autotask Web Services API, you must do the following: 1. When the Autotask Web Services API module becomes available to your organization, Autotask Customer Support enables access to the URL indicated below. Check that Autotask Customer Support has enabled the Web Services API for your organization. In your development environment, create a proxy class (Web Reference) for the Autotask Web Services API by referencing the WSDL file. The appropriate URL is determined by your Autotask zone. Because an Autotask client can be located in any of Autotask s zones, we recommend that you set up your application so that the getzoneinfo: call is the first call made in order to determine the proper zone (and accompanying URL) to use for all API interactions. You can direct the getzoneinfo request to any zone. NOTE: North America zone customers have been reassigned to America East or America West. The current variations for the URL (see Note above) of the WDSDL file for version 1.1 are: America East America West https://webservices3.autotask.net/atservices/1.1/atws.wsdl https://webservices5.autotask.net/atservices/1.1/atws.wsdl London Data Center https://webservices4.autotask.net/atservices/1.1/atws.wsdl (Formerly Global 1) Australia Limited Release Pre-release https://webservices6.autotask.net/atservices/1.1/atws.wsdl https://webservices1.autotask.net/atservices/1.1/atsw.wsdl https://webservices2.autotask.net/atservices/1.1/atws.wsdl The URLs for the web service for version 1.1 are: NOTE: North America zone customers have been reassigned to America East or America West. America East Amreica West https://webservices3.autotask.net/atservices/1.1/atws.asmx https://webservices5.autotask.net/atservices/1.1/atws.asmx London Data Center https://webservices4.autotask.net/atservices/1.1/atws.asmx (Formerly Global 1) Australia https://webservices6.autotask.net/atservices/1.1/atws.asmx Limited Release Pre-release https://webservices1.autotask.net/atservices/1.1/atws.asmx https://webservices2.autotask.net/atservices/1.1/atws.asmx Autotask anticipates the regular release of new versions of the Web Service API. Although new versions will, for the most part, support backward compatibility through multiple releases, there may be changes to functionality that have an impact on your application. Please check Autotask release notes and any additional notifications that provide information on changes for each new version. April 2012 2

In addition, Autotask will not continue to support each release indefinitely. We will provide advance notice of when we anticipate ending support of any version. We strongly suggest that you update your application with each Web Service API release, or monitor the impact that changes might have on your application, plan accordingly, and be sure to update the API version that you are using before Autotask removes support. 2. Configure programmatic authentication. You can use your preferred language to configure your programmatic authentication to the Web Services API. This documentation currently includes sample authentication code in the following language(s): VB.NET VB.NET Sample Code The following is sample VB.NET code to configure authentication to the Web Services API. This code assumes that you have a Web Reference class for the API named WebReference. NOTE: This sample code uses the base URL www.autotask.net. Your code may require that you use an alternate base URL. See the note in the beginning of this section under Getting Started. Dim strweburi As String = "https://www.autotask.net/atservices/1.1/atws.asmx" Dim myservice As New WebReference.ATWS myservice.url = strweburi Dim cred As New System.Net.NetworkCredential("myUserName@domain.com", "mypassword") Dim credcache As New System.Net.CredentialCache credcache.add(new Uri(myService.Url), "Basic", cred) myservice.credentials = credcache API Call Threshold To ensure an acceptable response time for all Web Services API users and prevent inadvertent coding errors from crippling the system, Autotask sets a limit on the number of external requests allowed per hour between an individual database and the API. That is, when the API receives a request, it will check the number of requests received for that database in the preceding 60 minutes. The limit is generous and varies according to the size of the database and your API usage. You should not see an impact with normal API usage. If you should reach the threshold, API service will be temporarily suspended and an error message generated. To help ensure that you will not reach the point where API service is suspended, we have added a warning message. Automatic Warning An automatic warning notification will be sent if usage approaches the threshold. The notification is sent in the following order of preference. 1. If you have set up an ATES "Unsuccessful Ticket Creation" email address configured to receive humanreadable notifications, we will sent to that email address. If there are multiple addresses configured, we will send to all of them. You set up this email address configuration in the Autotask Admin module under Extensions > Tools > Add Ticket Email Service > Notifications tab. 2. If the email address described above is not found, we will send the email to your Support Email Address. 3. If no Support Email Address is found, we will send the email to the primary email address of the logged-in user responsible for the violation. April 2012 3

If your service is suspended, in addition to the error message, an email notification will be sent. The message will be sent in the order of preference outlined above. Future requests will not be processed until the number of requests received within the preceding 60 minutes falls below the threshold level. If you have a legitimate use of the API that requires a higher threshold than the one assigned, please contact us to discuss your needs. For information on the API threshold and other API questions from developers using the tool, visit the Autotask Community Developer Tools and API forum. April 2012 4

Entities This section discusses how the Web Services API exposes Autotask entities. It includes a description of each currently available entity and its fields. The API currently includes the following entities: Account AccountNote Contact Contract Installed Product Resource Ticket TicketNote About Entities Each of the entities inherits from the Autotask base class: Entity. The Autotask Web Services API presents selected Autotask entities as programming objects that allow the client to perform actions on the specific entity type. Each Autotask Entity object inherits from the Autotask base class Entity. Currently the API provides the following actions: create, update, and query. The allowed actions are specific to the entity object, for example, although the client can create certain entity types, not all entity types accept a create: call. Note that all entities can be queried. About Entity Fields Each entity type object contains an array of properties that describe instances of the entity type. The properties represent data fields. The client can access and act on the entity's field parameters: supplying, updating, or deleting the field data. The allowed actions are specific to the field, for example, when updating an entity, not all fields within the entity can be updated. Note that all fields can be queried. Consult the individual descriptions under Entity Descriptions below for additional information on the currently available entities and fields. Some field data may vary between Autotask implementations and cannot be provided in this document, for example, picklist values and user-defined fields. For complete field descriptions specific to your Autotask implementation, use the getfieldinfo: or getudfinfo: API calls; see getfieldinfo: or getudfinfo:. About the id Field The id field belongs to each entity and acts as the unique identifier. It is created by the system and cannot be changed by the user application; for example, if you attempt to specify a value for the id field when using the create: API call, the create will fail. Entity Descriptions Each of the following sections describes one of the currently available Entity types and provides details about the entity and its standard Autotask fields. The following entities are included: Account, AccountNote, Contact, Contract, Installed Product, Resource, Ticket, and TicketNote. The description for each entity indicates which actions can be performed on the entity. Note that actions are governed by the permissions of the logged in end user; that is, although an Account entity allows a create: call, the logged in end user may not have permission to create an Account entity. Each Entity description includes a table that lists all standard Autotask fields by Field Name and provides the following information for each field: Field Name, Label, DataType, ReadOnly, IsRequired, Reference Name (provided only if the field is a reference), Picklist, and PicklistParent Column Name (only if the field is a picklist child). Can Query is not included because currently all fields can be queried. April 2012 5

To obtain current information on Entities and their field data specific to your implementation, use the following two API calls: For standard Autotask fields for each entity and all field data specific to your Autotask implementation, use the getfieldinfo: API call. For user-defined fields (UDFs) and UDF field data for each entity that allows User Defined Fields, use the getudfinfo: API call. For additional information, see getfieldinfo: or getudfinfo:. April 2012 6

Account Entity Details An Account entity describes an Autotask Account. An account represents a company or organization that you do business with. Autotask users manage Accounts through the CRM module (CRM >Accounts). The following table describes the Account entity. You can retrieve this information using the Web Services API getentityinfo: API call. Entity Name Can Create Can Update Can Query Can Delete Can Have UDFs Account No Field Details The following table describes the standard Autotask Account entity field objects. You can use the Web Services API getfieldinfo: call to retrieve more detailed information specific to your organization's Autotask implementation. For information on entity UDFs, use the GetUDFInfo: API call. In the table, LT indicates Local Term. Field Name Label Datatype Read Only Is Required Reference Name Picklist Picklist Parent Column Name AccountName {LT:Account} Name string AccountNumber {LT:Account} Number string AccountType {LT:Account} Type short Address1 Address 1 string Address2 Address 2 string AlternatePhone1 Alternate Phone 1 string AlternatePhone2 Alternate Phone 2 string AssetValue Asset Value double City City string CompetitorID Competitor integer Country Country string CreateDate Create Date datetime Fax Fax string id {LT:Account} ID integer KeyAccountIcon Key Account Icon integer LastActivityDate Last Activity Date datetime MarketSegmentID Market Segment integer OwnerResourceID {LT:Account} Owner integer Resource ParentAccountID {LT:ParentAccount} integer Account Phone Phone string PostalCode {LT:ZipCode} string SICCode SIC Code string State {LT:State} string StockMarket Stock Market string April 2012 7

Field Name Label Datatype Read Only StockSymbol Stock Symbol string Is Required Reference Name TerritoryID Territory Name integer WebAddress Web string Picklist Picklist Parent Column Name April 2012 8

AccountNote An AccountNote entity describes notes created by an Autotask user and associated with an Account entity. Autotask users manage Account Notes through the CRM module (CRM > Accounts). An account note represents any sort of note that the user may wish to associate with an account. Entity Details The following table describes the AccountNote entity. You can retrieve this information using the Web Services API getentityinfo: call. Entity Name Can Create Can Update Can Query Can Delete Can Have UDFs AccountNote No No Field Details The following table describes the standard Autotask AccountNote entity field objects. You can use the Web Services API getfieldinfo: call to retrieve more detailed information specific to your organization's Autotask implementation. In the table, LT indicates Local Term. Field Name Label Datatype Read Only Is Required Reference Name Picklist Picklist Parent Column Name AccountID {LT:Account} integer Account ActionType TypeValue integer AssignedResourceID Assigned Resource integer Resource CompletedDateTime DateCompleted datetime ContactID Contact integer Contact EndDateTime EndDate datetime id {LT:Account} Note ID integer LastModifiedDate DateStamp datetime Name Name string Note Detail string StartDateTime StartDate datetime April 2012 9

Contact Entity Details The Contact entity describes an Autotask Contact. A contact is an individual associated with an Account. Autotask users manage contacts through the CRM module (CRM > Contacts). The following table describes the Contact entity. You can retrieve this information using the Web Services API getentityinfo: call. Entity Name Can Create Can Update Can Query Can Delete Can Have UDFs Contact No Field Details The following table describes the standard Autotask Contact entity fields. You can use the Web Services APIgetFieldInfo: call to retrieve more detailed information specific to your organization's Autotask implementation. For information on entity UDFs, use the getudfinfo: API call. NOTE: To avoid potential data corruption, the AccountID field is now read only. In the table, LT indicates Local Term. Field Name Label Datatype Read Only Is Required Reference Name Picklist Picklist Parent Column Name AccountID {LT:Account} integer Account Active Active integer AddressLine Address 1 string AddressLine1 Address 2 string AlternatePhone Alternate Phone string City City string Country Country string CreateDate Create Date datetime EMailAddress Email string Extension Phone Ext. string FaxNumber Fax string FirstName First Name string id Contact ID integer LastActivityDate Last Activity Date datetime LastModifiedDate Last Modified Date datetime LastName Last Name string MiddleInitial Middle Initial string MobilePhone Mobile Phone string Note Note string Notification Notification boolean Phone Phone string RoomNumber Room Number string State {LT:State} string April 2012 10

Field Name Label Datatype Read Only Is Required Reference Name Picklist Picklist Parent Column Name Title Title string ZipCode {LT:ZipCode} string April 2012 11

Contract Entity Details The Contract entity describes an Autotask Contract. Contracts specify a billing arrangement with an account. Autotask users manage contracts through the Contract module. The following table describes the Contract entity. You can retrieve this information using the Web Services API getentityinfo: call. Entity Name Can Create Can Update Can Query Can Delete Can Have UDFs Contract No No No No Field Details The following table describes the standard Autotask Contract entity fields. You can use the Web Services API getfieldinfo: call to retrieve more detailed information specific to your organization's Autotask implementation. In the table, LT indicates Local Term. Field Name Label Datatype Read Only Is Required Reference Name Picklist Picklist Parent Column Name AccountID {LT:Account} integer Account BillingPreference Billing Preference integer ContactName Contract Contact string ContractCategory Category integer ContractName Contract Name string ContractNumber Contract Number string Description Description string EndDate End Date datetime EstimatedCost Estimated Cost integer EstimatedHours Estimated Hours float EstimatedRevenue Estimated Revenue double id Contract ID integer StartDate Start Date datetime Status Status integer TimeReportingRequiresStartAndStopTimes Time Reporting Requires Start and Stop Times integer April 2012 12

Installed Product The InstalledProduct entity describes Autotask Installed Products. Installed products are products cataloged under Autotask Products and associated with an Account entity. Autotask users manage Installed Products through the CRM Module (CRM > Installed Products). Entity Details The following table describes the Installed Product entity. You can retrieve this information using the Web Services API getentityinfo: call. Entity Name Can Create Can Update Can Query Can Delete Can Have UDFs InstalledProduct No No No Field Details The following table describes the standard Autotask Installed Product entity fields. You can use the Web Services API getfieldinfo: call to retrieve more detailed information specific to your organization's Autotask implementation. For information on entity UDFs, use the getudfinfo: API call. In the table, LT indicates Local Term. Field Name Label Datatype Read Only Is Required Reference Name Picklist Picklist Parent Column Name AccountID {LT:Account} integer Account Active Product Active boolean id {LT:InstalledProduct} ID integer InstallDate Install Date datetime ProductID Product ID integer ReferenceNumber Reference Number string ReferenceTitle Reference Title string SerialNumber Serial Number string WarrantyExpirationDate Warranty Expiration Date datetime April 2012 13

Resource Entity Details The Resource entity describes Autotask Resources. Autotask Resources are employees, contractors, or consultants who access a company's Autotask system to perform work related tasks. Autotask administrators manage Resources through the Admin Module (Admin >Site Setup > Resource Setup > Resources). The following table describes the Resource entity. You can retrieve this information using the Web Services API getentityinfo: call. Entity Name Can Create Can Update Can Query Can Delete Can Have UDFs Resource No No No No Field Details The following table describes the Autotask standard Resource entity fields. You can use the Web Services API getfieldinfo: call to retrieve more detailed information specific to your organization's Autotask implementation. In the table, LT indicates Local Term. Field Name Label Datatype Read Only Is Required Reference Name Picklist Picklist Parent Column Name Active Status boolean Email Email string Email2 Add Email 1 string Email3 Add Email 2 string EmailTypeCode Email Type string EmailTypeCode2 Add Email 1 Type string EmailTypeCode3 Add Email 2 Type string FirstName First Name string Gender Gender string Greeting Greeting integer id Resource ID integer ` Initials Pay Roll Identifier string LastName Last Name string LocationID Primary Location integer MiddleName Middle Initial string MobilePhone Mobile Phone string OfficeExtension Office Extension string OfficePhone Office Phone string ResourceType Resource Type string Suffix Suffix string Title Title string UserName UserName string UserType User Type integer April 2012 14

Ticket The Ticket entity describes Autotask Tickets. Tickets define service requests within the Autotask system. Autotask users manage Tickets through the Service Desk module (Service Desk > Tickets). Entity Details The following table describes the Ticket entity. You can retrieve this information using the Web Services API getentityinfo: call. Entity Name Can Create Can Update Can Query Can Delete Can Have UDFs Ticket No Field Details The following table describes the Autotask standard Ticket entity fields. You can use the Web Services API getfieldinfo: call to retrieve more detailed information specific to your organization's Autotask implementation. For information on entity UDFs, use the getudfinfo: API call. In the table, LT indicates Local Term. Conditional Requirements: Autotask now allows Roles to be inactivated. An attempt to create a Ticket using a Resource + Role combination with an inactive Role will trigger an error. You can update an existing Ticket that has a Resource + Role combination that uses an inactive role. Field Name Label Datatype Read Only Is Required Reference Name Picklist Picklist Parent Column Name AccountID {LT:Account} integer Account AllocationCodeID Allocation Code Name integer AssignedResourceID Resource integer Resource AssignedResourceRoleID CompletedDate Resource Role Name Ticket Date Completed by Complete Project Wizard integer AssignedResourceID datetime ContactID Ticket Contact integer Contact ContractID Contract integer Contract CreateDate Ticket Creation Date datetime CreatorResourceID Ticket Creator integer Resource Description Ticket Description string DueDateTime Ticket End Date datetime EstimatedHours Ticket Estimated Hours float id Ticket ID integer April 2012 15

Field Name Label Datatype Read Only Is Required Reference Name Picklist InstalledProductID {LT:InstalledProduct} integer InstalledProduct IssueType Ticket Issue integer LastActivityDate Ticket Last Activity Date datetime Priority Ticket Priority integer QueueID Ticket Department Name OR Ticket Queue Name integer Source Ticket Source integer Status Ticket Status integer SubIssueType Ticket Subissue Type TicketNumber Ticket Number string Title Ticket Title string Picklist Parent Column Name integer IssueType April 2012 16

TicketNote Entity Details The TicketNote entity describes notes created by an Autotask user and associated with a Ticket entity. Autotask users manage Ticket Notes through Tickets under the Service Desk module (Service Desk > Tickets). Users can add notes to a new or existing ticket. The following table describes the TicketNote entity. You can retrieve this information using the Web Services API getentityinfo: call. Entity Name Can Create Can Update Can Query Can Delete Can Have UDFs Note No No Field Details The following table describes the Autotask standard TicketNote entity fields. You can use the Web Services API getfieldinfo: call to retrieve more detailed information specific to your organization's Autotask implementation. NOTE: With the current redesign of Autotask s workflow engine, API queries for TicketNote entities with Publish = 1 now include all System Workflow Notes. If your query currently includes code that specifies TickektNote.Publish = 1 and you do not want system workflow notes returned, you ll have to modify the query to include a condition that excludes TicketNote.NoteType = 13. Field Name Label Datatype Read Only Is Required Reference Name Picklist Picklist Parent Column Name CreatorResourceID Creator Resource integer Resource Description Description text id Ticket Note ID integer LastActivityDate LastActivityDate datetime NoteType Note Type integer Publish Publish integer TicketID Ticket integer Ticket Title Title string April 2012 17

API Calls Autotask Web Service API This section provides information on the Autotask Web Services API calls. It lists and describes all currently available API calls: create: query: update: getentityinfo: getfieldinfo: getudfinfo: About API Calls The Web Services API calls allow you to create, query, and update Autotask entities including Accounts, Account Notes, Contacts, Contracts, Installed Products, Tickets, and Ticket Notes. Not all API calls are available for each entity type. Additional calls, getentityinfo, getfieldinfo, and getudfinfo, allow you to retrieve descriptions for all currently available entities, entity fields, and entity user-defined fields. API Call Descriptions The following sections provide a description of each currently available API call. Descriptions include general information, sample code, and considerations. April 2012 18

create: Description The create: API call is used to add new objects in the Autotask system. Currently this call is available for Account, Contact, Ticket, and TicketNote objects. This create call is like an SQL INSERT statement. Some considerations appear after the code samples. Sample create: Code The following sample code creates a new Ticket. Function AddTicket() As Boolean Dim sresponse As WebReference.ATWSResponse Dim TicketToCreate As New WebReference.Ticket Dim TicketArray() As WebReference.Ticket TicketToCreate.AccountID = 123 'an existing account id TicketToCreate.DueDateTime = CDate("2/03/2008") TicketToCreate.Priority = 3 ' this corresponds to a picklist value TicketToCreate.QueueID = 23 ' this corresponds to a picklist value TicketToCreate.Status = 4 'this corresponds to a picklist value TicketToCreate.Title = "My Ticket Title" TicketArray(0) = TicketToCreate Dim entityarray() As WebReference.Entity = CType(TicketArray, WebReference.Entity()) sresponse = myservice.create(entityarray) If sresponse.returncode = 1 Then Return True Else Return False End If End Function Sample Code to Check if the Object Exists Autotask suggests that before creating a new object, you include a query to check to insure that the object being created does not already exist. The following sample query checks for a contact. Function CheckContactExists(ByVal slastname As String, ByVal semail As String, ByVal sphone As String) As Boolean Dim sresponse As WebReference.ATWSResponse Dim sbuilder As New System.Text.StringBuilder sbuilder.append("<queryxml version=""1.0"">") sbuilder.append("<entity>contact</entity>") sbuilder.append("<query>") sbuilder.append("<field>lastname<expression op=""equals"">" & slastname & "</expression></field>") sbuilder.append("<field>emailaddress<expression op=""equals"">" & semail & "</expression></field>") April 2012 19

sbuilder.append("<field>phone<expression op=""equals"">sphone</expression></field>") sbuilder.append("</query></queryxml>") sresponse = myservice.query(sbuilder.tostring, 0) If sresponse.returncode > 0 AndAlso sresponse.entityresults.length > 0 Then Return True Else Return False End If End Function Considerations When working with create:, the following considerations apply. Permissions ReadOnly Fields AutoID Required Fields System Integrity White Spacing Maximum Entries Exists? Your client must be logged in with a user account that has access to the appropriate Autotask module for the entity type and with sufficient rights to create the object. You also need permission to handle the parent object. You may also need permission to create on the field level. You can use the getentityinfo: API call to check your permission level. You must check the getfieldinfo: and getudfinfo: API calls to assure that the field value can be set from the API call. You cannot specify an id when doing a create call. The id is auto-generated and, if you attempt to specify an id, the create will fail. Some fields on Entities are required fields that may or may not have an associated default value; please use the getfieldinfo: and getudfinfo: API calls to check for Required Fields. Some fields on Entities require an ID to a parent Entity. You must supply this key. For example, when creating a Ticket Note you must supply the number for the Ticket that the note will be associated with. The create: function will trim all white spaces in the beginning and end of each string type entry. The create: API call will allow a maximum of 200 objects to be created with one create: call. If you send more then 200 elements in your array, the creates will fail and nothing will be created in Autotask. We suggest that when using create: you incorporate a query to check whether the object being created already exists. A sample query that provides this check appears before this list of considerations. April 2012 20

query: Description Example: This API call executes a query against Autotask and returns an array of matching entities. The queries are built using the QueryXML format and will return a maximum of 500 records at once. These records are sorted by their ID value. To query for additional records over the 500 maximum for a given set of search criteria, repeat the query and filter by: id value > the previous maximum id value retrieved. Dim boolqueryfinished = False Dim strcurrentid As String = "0" While Not (boolqueryfinished) Dim strquery As String = "<queryxml><entity>account</entity>" & _ "<query><field>id<expression op=""greaterthan"">" & strcurrentid & "</expression></field></query>" & _ "</queryxml>" Dim r As myws.atwsresponse r = myservice.query(strquery) If r.entityresults.length > 0 Then For Each ent As myws.entity In r.entityresults ' execute some code on the current account Console.WriteLine(CType(ent, myws.account).accountname) Console.WriteLine(ent.id) strcurrentid = ent.id Next Else boolqueryfinished = True End If End While Currently, all entities and all fields are supported by the query: call. For additional information on the QueryXML format, see April 2012 21

QueryXML. Sample query: Code The following sample code submits a simple query: API call. Dim sresponse As WebReference.ATWSResponse Dim sbuilder As New System.Text.StringBuilder sbuilder.append("<queryxml version=""1.0"">") sbuilder.append("<entity>contact</entity>") sbuilder.append("<query>") sbuilder.append("<field>name<expression op=""startswith"">svalue</expression></field>") sbuilder.append("</query></queryxml>") sresponse = myservice.query(sbuilder.tostring) If sresponse.returncode > 0 Then For Each field As WebReference.TicketNote In sresponse.entityresults Console.Write(field.CreatorResourceID) Console.Write(field.Description) Console.Write(field.id) Console.Write(field.LastActivityDate) Console.Write(field.NoteType) Console.Write(field.Publish) Console.Write(field.TicketID) Console.Write(field.Title) Next End If Considerations When working with query:, the following considerations apply. Permissions The Client must be logged in with a user account that has access to the appropriate Autotask module for the entity type and with sufficient rights to query the object. You might also need permission to query on the field level. Please use the information provided by the getfieldinfo: and getudfinfo: API calls to check your permission level. April 2012 22

update: Description The update: API call is used to update objects in the Autotask system. Currently, the Account, Account Note, Contact, Ticket, and TicketNote entity types are supported by the Update call. This create call is like an SQL UPDATE statement. Sample update: Code The following sample code updates an Account entity. Public Function UpdateAccount(ByVal aid As Integer) As Boolean Dim sresponse As WebReference.ATWSResponse Dim AccountToUpdate As New WebReference.Account Dim AccountArray() As WebReference.Account AccountToUpdate.AccountName = txtaccountname.text AccountToUpdate.AccountNumber = txtaccountnumber.text AccountToUpdate.AccountType = txtaccounttype.text AccountToUpdate.Address1 = txtaddress1.text AccountToUpdate.Address2 = txtaddress2.text AccountToUpdate.AlternatePhone1 = txtalternatephone1.text AccountToUpdate.AssetValue = txtassetvalue.text AccountToUpdate.City = txtcity.text AccountToUpdate.CompetitorID = txtcompetitorid.text AccountToUpdate.Country = txtcountry.text AccountToUpdate.CreateDate = txtcreatedate.text AccountToUpdate.Fax = txtfax.text AccountToUpdate.KeyAccountIcon = txtkeyaccounticon.text AccountToUpdate.MarketSegmentID = txtmarketsegmentid.text AccountToUpdate.OwnerResourceID = txtownerresourceid.text AccountToUpdate.ParentAccountID = txtparentaccountid.text AccountToUpdate.Phone = txtphone.text AccountToUpdate.PostalCode = txtpostalcode.text AccountToUpdate.SICCode = txtsiccode.text AccountToUpdate.State = txtstate.text AccountToUpdate.StockMarket = txtstockmarket.text AccountToUpdate.StockSymbol = txtstocksymbol.text AccountToUpdate.TerritoryID = txtterritoryid.text AccountToUpdate.WebAddress = txtwebaddress.text AccountToUpdate.id = aid AccountArray(0) = AccountToUpdate Dim entityarray() As WebReference.Entity = CType(AccountArray, WebReference.Entity()) sresponse = myservice.update(entityarray) If sresponse.returncode = 1 Then Return True April 2012 23

Else Return False End If End Function Considerations When working with update:, the following considerations apply. Permissions ReadOnly Fields Required Fields System Integrity White Spacing The Client must be logged in with a user account that has access to the appropriate Autotask module for the entity type and with sufficient rights to update the object. You might also need permission to update on the field level. Please use the information returned by the getentityinfo: API call to check your permission level. Check the information returned by the getfieldinfo: and getudfinfo: API calls to make sure the field values can be set from the API call. Some fields on Entities are required fields that may or may not have an associated default value. Please check the information returned by the getfieldinfo: and getudfinfo: API calls to see which fields are marked as Required. Some fields on Entities require an ID to a parent Entity. To update a field with this requirement, you must supply this key. For example, when updating a Ticket Note you must provide the number of the ticket that you want to associate the note with. The Update function will trim all white spaces in the beginning and end of each string type entry. Maximum Entries The Update system will only take an array of 200 elements or less. If you send more then 200 Update statements, the Updates will fail and nothing will be updated in to the system. April 2012 24

getentityinfo: Description The getentityinfo: API call returns an array of EntityInfo objects that contain descriptive information about each available Autotask Web Service entity including which actions the Web Services API can perform on each entity. The following table describes the information provided for each entity. EntityName as String CanCreate as Boolean CanUpdate as Boolean CanQuery as Boolean CanDelete as Boolean Has User Defined Fields The Name of the entity, for example, Ticket, Note, Account. Indicates whether you can create objects on the specified entity. The access varies by Autotask end user permission level. Indicates whether you can update objects on the specified entity. The access varies by Autotask end user permission level. Indicates whether you can Query objects on the specified entity. Note that currently all entities can be queried; however, the access varies by Autotask end user permission level. Indicates whether you can Delete objects on specified entity. The access varies by Autotask end user permission level. Indicates whether the specified entity for your organization contains user defined fields (UDFs). Currently the, Account, Contact, Installed Product, and Ticket entities can contain UDFs. If your organization uses UDFs with an entity, the getfieldinfo: call does not return the UDFs. You must use the getudfinfo: API call to return a listing and descriptions of the UDFs. Sample getentityinfo: Code The following getentityinfo code sample prints out the properties of each entity. Dim ei() As WebReference.EntityInfo = myservice.getentityinfo For Each ent As WebReference.EntityInfo In ei Console.Write("Field Name=" & ent.name) Console.Write("Field CanCreate=" & ent.cancreate) Console.Write("Field CanDelete=" & ent.candelete) Console.Write("Field CanQuery=" & ent.canquery) Console.Write("Field CanUpdate=" & ent.canupdate) Console.Write("Field HasUDF=" & ent.hasuserdefinedfields) Next April 2012 25

getfieldinfo: Description The getfieldinfo: API call is an informational Web Service that returns an array of the standard Autotask fields for a specified entity with descriptive information about each field. The information includes the field label and type; whether the field is required, read only, can be queried; whether it references another field and the reference data type; or whether the field is a pick list. If the field is a pick list, the available values are provided and, where the picklist is a child, the name of the picklist parent is provided. The following table describes the information provided for each field. Name as String Label as String Type as String Description as String IsRequired as Boolean IsReadOnly as Boolean IsQueryable as Boolean IsReference as Boolean ReferenceEntityType as String IsPicklist as Boolean PickListValues() as PickListValue Name of the field element, this is not what you see on the UI. Name of the field on the UI. The field element data type Integer: Whole number with no decimal places String: Can contain alpha-numeric and most special characters (note: some fields have specific lengths) Double: Like Integer but can contain decimal places datetime: Contains the date and time as one value like a time stamp. Date: Date only, no time. Boolean: True () (1) or False (No) (0) The long Description of the field element. True or False. Returns True () if the element is required to update or create. True or False. Returns True () if the element cannot be updated or created. True or False. Returns True () if the element can be searched on. True or False. Returns True () if the field contains the ID value of another entity type. If the element IsReference is True (), indicates the Entity Type of the reference. True or False. Returns True () if the element is a picklist, specifically a drop down list. If IsPicklist = True, then this will hold the values of the Drop Down List. The picklist values elements include the following: Value as String The picklist value of the item. Label as String IsDefault as Boolean The name of the item as it appears in the drop down list. Indicates whether the item is the default value for the field. SortOrder as Boolean Indicates the order of the items as they appear in the list. ParentValue as String If the picklist is a child of another field, identifies the parent field. April 2012 26

PicklistParentFieldName If IsPicklist=True for the current field, and if the value for the current field depends upon another field for this entity, then PicklistParentFieldName holds the name of the field. Use the known value for this field to filter the picklistvalues for the current field. Sample getfieldinfo: Code The following sample code returns to you all standard Autotask fields for the contact form in the UI and all the pick list values that are in the contact fields from the UI. Dim MetaDataSet As New DataSet Dim EntityDataTable As DataTable Dim FieldDataRow As DataRow Dim EntityInfo() As WebReference.EntityInfo EntityInfo = myservice.getentityinfo For Each ent As WebReference.EntityInfo In EntityInfo EntityDataTable = MetaDataSet.Tables.Add(ent.Name) EntityDataTable.Columns.Add("name") EntityDataTable.Columns.Add("type") EntityDataTable.Columns.Add("isRequired") EntityDataTable.Columns.Add("isUDF") EntityDataTable.Columns.Add("datatype") Dim FieldInfo() As WebReference.Field FieldInfo = myservice.getfieldinfo(ent.name) For Each fld As WebReference.Field In FieldInfo FieldDataRow = EntityDataTable.NewRow() FieldDataRow("Name") = fld.name.tostring FieldDataRow("type") = fld.type.tostring FieldDataRow("isRequired") = fld.isrequired FieldDataRow("isUDF") = String.Empty FieldDataRow("datatype") = fld.type EntityDataTable.Rows.Add(FieldDataRow) Next Next April 2012 27

getudfinfo: Description The getudfinfo: API call is an informational Web Service that returns an array of all User-defined fields (UDF), that is, non-standard fields, for a specified entity with descriptive information about each field. The information includes the field label and type whether the field is required, read only, and can be queried; whether it references another field and the reference data type; or whether the field is a pick list. If the field is a pick list, the available values are provided. Currently, the following Autotask entities can include UDFs: Account, Ticket, Contact, and Installed Products. The following table describes the information provided for each field. Name as String Label as String Type as String Description as String IsRequired as Boolean IsReadOnly as Boolean IsQueryable as Boolean IsReference as Boolean ReferenceEntityType as String IsPicklist as Boolean Name of the field element - this is not what you see on the UI. Name of the field on the UI. The field element data type Integer: Whole number with no decimal places String: Can contain alpha-numeric and most special characters (note: some fields have specific lengths) Double: Like Integer but can contain decimal places datetime: Contains the date and time as one value like a time stamp. Date: Date only, no time. Boolean: True () (1) or False (No) (0) The long Description of the field element. True or False. Returns True () if the element is required to update or create. True or False. Returns True () if the element can not be updated or created. True or False. Returns True () if the element can be searched on. True or False. For standard Autotask fields, returns True () if the field contains the ID value of another entity type. For User Defined Fields (UDFs), will never return True. If the element IsReference is True (), indicates the Entity Type of the reference. Note that for User Defined Fields, the element IsReference will always return False. True or False. Returns True () if the element is a picklist, specifically a drop down list. April 2012 28

PickListValues() as PickListValue If IsPicklist = True, then this will hold the values of the Drop Down List. The picklist values' elements include the following: Value as String The picklist value of the item. Label as String IsDefault as Boolean The name of the item as it appears in the drop down list. Indicates whether the item is the default value for the field. SortOrder as Boolean Indicates the order of the items as they appear in the list. ParentValue as String If the picklist is a child of another field, identifies the parent field. Sample getudfinfo: Code The following sample code returns an array containing all UDFs for a specified entity and selected descriptive information for each field. Dim MetaDataSet As New DataSet Dim EntityDataTable As DataTable Dim FieldDataRow As DataRow Dim EntityInfo() As WebReference.EntityInfo EntityInfo = myservice.getentityinfo For Each ent As WebReference.EntityInfo In EntityInfo EntityDataTable = MetaDataSet.Tables.Add(ent.Name) EntityDataTable.Columns.Add("name") EntityDataTable.Columns.Add("type") EntityDataTable.Columns.Add("isRequired") EntityDataTable.Columns.Add("isUDF") EntityDataTable.Columns.Add("datatype") Dim FieldInfo() As WebReference.Field FieldInfo = myservice.getfieldinfo(ent.name) For Each UDF As WebReference.Field In myservice.getudfinfo(ent.name) FieldDataRow = EntityDataTable.NewRow() FieldDataRow("Name") = UDF.Name.ToString FieldDataRow("Type") = String.Empty FieldDataRow("isRequired") = UDF.IsRequired.ToString FieldDataRow("isUDF") = "UDF" FieldDataRow("datatype") = UDF.Type EntityDataTable.Rows.Add(FieldDataRow) Next Next April 2012 29