The Atria Autotask integration takes billing data from Atria and updates the corresponding Recurring Services contract line quantity in Autotask .
This document will help you understand how the integration works and what you need to do to get it up and running.
Changes to provisioning occur in Atria, these are collated and stored in the database, tracking the change made and who made the change.
For example:
On a daily basis, Service changes are used to generate billing data for the current Billing Period. Non-billable data is filtered out based on pre-configured billing rules
Depending on the configured schedule, billing data is used to update Autotask. The Contract quantities in Autotask are updated to reflect the quantities returned from the Atria API.
A Job in Atria is a recurring task, this will perform the Autotask update on a scheduled basis.
1. Navigate to Configuration > Jobs
2. Select Add a new Job to show the Job form:
Give a meaningful name – this will be used to identify the job. e.g "Transfer Billing Data to Autotask on 27th of each month"
Select “Autotask PSA” from the drop down list of available Tasks.
To start with, Select Verbose, this will give increased logging – you can adjust this later.
This determines the frequency of execution. The expression “0 22 26 * *” means that the process will run automatically at 10pm on the 26 th of the month. More information on CRON expressions is available here https://support.automate101.com/portal/en/kb/articles/cron-expressions-in-atria
This contains the parameters for your scheduled task, each parameter can have a default value. Parameters are stored in JSON format https://en.wikipedia.org/wiki/JSON
Name | Purpose | Default Value |
BaseUrl | Autotask Base API – this is the URL for connecting to Autotask. Recommend to leave blank and use the ZoneUser setting to automatically determine the correct URL. If set, this is the URL that Atria will use to access the Autotask API. | "" |
ZoneUser | Email address of a valid user for your Autotask instance. Suggest you use the address for the API user. | "" |
BillingPeriod | Determines which billing period to use for the transfer from Atria. “Previous” – the previous closed billing period. “Current” – the current billing period “YYYY-MM-DD” – specify a date, the billing period will be selected based on the date. | “Current” |
CustomersFilter | Will only process records for the specified customers – based on Atria customer code, if blank or unspecified – all customers will be processed. | “” |
ProRatedTransactions | If set to True, Atria will set the EffectiveDate of each contract change to the current date/time. When set to False, Atria will use the start date of the current billing period as the effective date. If you do not do part month billing for services, set to false. If you have part month billing, this process will need to execute at least every day in order to capture changes. | "False" |
AllowAtriaCreateItems | Determines if Atria can create contract lines. If set to "False" Atria will log that a contract line is missing, if it's set to true, it will create a contract line for the service. | "False" |
Example Parameters
Secrets are encrypted and stored, once stored, they are unable to be retrieved and displayed in the UI. If you need to update them, re-enter the secrets on the Secrets page and resave the job. if you missed the earlier step - follow this guide to setup the user in Autotask Guide on how to setup an API User in Autotask
Value | Description |
Username | The API User configured in Autotask |
Secret | The corresponding password for the API User |
To create the Secrets parameter set – copy below, then replace the XXXX with your values.
Press Save to create the Job
The job is now displayed in the Jobs screen:
Manually run the job – the job may take a few moments to start, when the job has completed a link to the Log will be shown in the “Last Run Result” column. Click on this to view the runs of the job. From here you can select the run to see the detailed log entries.
Each line item in the log has an code, and a logging level.
Errors are likely to be technical issues – for example, if an API is unavailable this will result in an error and the process is u
Warnings are likely to need some intervention in order to resolve and are likely to be data related – e.g. Could not find something, a reference field is missing etc.
Verbose and Info provide information, but should not require action.
In order to make sure the integration is successful, some work may need to be done to configure the two systems to link records correctly. Depending on how you operate today, this could be very simple, or it may be more complex.
Ensure all Atria Customers are correctly mapped to the Autotask Account ID. Copy the value from Autotask, and ensure it is set in Atria.
Autotask Field to use | Type | Setting to use in Atria Job Parameters |
ServiceID | string | "SKUType":{"name":"ServiceId", "type":"int"} |
Name | string | "SKUType":{"name":"name", "type":"string"} |
InvoiceDescription | string | "SKUType":{"name":"InvoiceDescription", "type":"string"} |
description | string | "SKUType":{"name":"description", "type":"string"} |
Review all of the products managed in Atria and ensure everything that needs to be billed has an associated SKU which maps directly to the ServiceID in the Autotask Service Catalog.
For information on where to configure SKUs in Atria – read the Configuring Product SKUs in this guide https://support.automate101.com/portal/en/kb/articles/billing-setup-user-guide
Setup Billing Rules to mark all non-important items as non-billable – this will stop them from being transitioned to invoices and potentially creating “Noise” in the log files.
If you have completed the Setup Product Mapping in Atria, it may be adequate for you to just exclude all items which do not have a SKU assigned.
For information on billing rules, there is more information in this KB https://support.automate101.com/portal/en/kb/articles/billing-rule-engine-user-guide
On 25 th of month
On 26 th of month
Autotask Billing process executes and updates contracts in Autotask, processing the Billing Period that has just completed.
Review and Resolve Results:
ID | Task/Action |
1 | Export Log Entries
|
2 | Review Errors
|
3 | Review Warn level entries and action problems as below
|
4 | Review Informational Changes
|
5 |
|
Guidance for Resolving Data relationship issues between Autotask and Atria. All possible codes are listed at the bottom of this article.
ID | Occurs When | Log Level | Resolution |
AT04 | A customer does not have a Billing Identifier | Warning | Locate the Account in Autotask, copy the Account ID. Locate Customer in Atria, paste the AccountID into the Billing Identifier field and Save. |
AT06 | Customer Does not have a Recurring Service Contract | Warning | Check that the Account in Autotask has a "Recurring Services" Contract configured. |
AT07 | SKU Missing in Atria | Warning | If you do not want this data in Autotask, you can ignore or filter using an Atria billing rule. If this needs to be invoiced, ensure a product exists in ConnectWise and that the SKU code is stored against the Service in Atria. |
AT08 | Service Does not exist in Autotask | Warning | This means that the Service ID specified in the SKU does not match anything in the Autotask Service catalog. Check the Service Identifier stored in Atria or add the service to autotask |
AT12 | Contract Line Missing in Autotask | Warning | The Recurring Services contract for the customer does not contain this service. Either add the service manually or reconfigure the Atria with the AllowAtriaCreateAdditions set to True. |
AT15 | No record found in a billing period | Warning | This is a warning - it could mean that the billing process has not executed. Check the billing report in Atria for the specified period. |
Use the following features to ease the process.
1. The arrow buttons will order the results by error code, this will mean you can go through and fix all similar issues in one go – e.g. for customer identifier issues, order by Code, then go through and fix all missing Billing Identifier problems.
2. Similarly, you can order by Log Type, then scroll down to the warning level logs and review.
3. The search can be used to filter, the Code and Message fields are indexed, for example, typing in AT04 will show all AT04 lines. Or typing a product code may find a log entry.
4. Use the download button to download the data into spreadsheet format – then use Excel or similar to filter/review the data.
The Following table lists the possible codes returned from the Autotask integration process.
ID | Occurs When | Log Level | Message |
AT01 | Start of Process | Info | Billing Process Started: For Billing Period{BillPeriod End Date} |
AT02 | Cannot Connect to Autotask | Error | Failed to connect to Autotask: Error reported was : {Error Details} |
AT03 | Cannot Connect to Atria | Error | Failed to connect to Atria: Error reported was : {Error Details} |
AT04 | A customer does not have a Billing Identifier | Warning | {CustomerCode} CompanyID Missing Unable to process records for Atria Customer {CustomerName} – Please add CompanyNumber from Autotask into Billing Identifier field on Customer. |
AT05 | Company Cannot be located on Autotask | Error | No Company with Customer Number for {customerAccountCode} Found. Check Autotask to see if the customer: {customerName} with Company Number: {customerAccountCode} exists in Autotask. |
AT06 | Customer Does not have a Recurring Service Contract | Warning | No Contract exists for the Customer {customerName}. Check Autotask to see if customer {customerName} and a Recurring Service Contract with Contract Number : {customerAccountCode} exists in Autotask. |
AT07 | SKU Missing in Atria | Warning | {CustomerName} SKU Missing in Atria : {CustomerName} : Skipped Line {LineDescription} for Customer {CustomerName} as no SKU was provided |
AT08 | Service Does not exist in Autotask | Warning | {CustomerName} Service Missing in Autotask : {CustomerName} : Skipped Line {LineDescription} for Customer {CustomerName} as no SKU was provided |
AT09 | Contract Quantity Updated | Info | {CustomerName} Quantity Update : Line located for {LineDescription} with Product ID {Sku} and updated from { Old Value} to { New Value} |
AT10 | Contract Line Unchanged | Verbose | {CustomerName} Contract Line for {Name} located – quantity is unchanged |
AT11 | New Contract Line Created | Info | {CustomerName} Contract Line Added : New Line added for {Name} with Service ID {Id} |
AT12 | Contract Line Missing in Autotask | Warning | {CustomerName} Contract Line Missing in Autotask : Skipped Line {LineDescription} with Product ID {Sku} for Customer {CustomerName} as the Contract Service SKU could not be located in Autotask |
AT13 | Contract Line Reduced to Zero | Info | {customerName} Line located for {serviceDto.Description} with Service Name {serviceDto.Name } is been removed in the selected billing period. The Quantity is updated from {contractServiceUnitDto.Units.ToString("F")} to 0.00 |
AT14 | Creating new Contract Service fails | Error | {CustomerName} ContractService {Sku}, Error Details {Error Details} |
AT15 | No record found in a billing period | Warning | No records found in Atria for billing period: {Billing Date} |
AT16 | Secrets values are not valid | Error | Failed to retrieve autotask secrets. Error occurred is: {Message} |
AT17 | User Email is not available or is not valid | Error | Failed to Retrieve Job Task Paramters: Error reported was: user email is not valid |
AT18 | One of the Autotask Secrets is not available | Error | Failed to validate Autotask secrets. {Autotask Secret} must have a valid value |
AT19 | Billing Period entry is incorrect | Error | Incorrect billing period date or format recognized. |
AT20 | Start Processing Deprovisioned Customers | Verbose | Started Processing Deprovisioned Customers |
AT21 | Finish Processing Deprovisioned Customers | Verbose | Finished Processing Deprovisioned Customers |
AT22 | Start Autotask Worker Task Process | Verbose | Autotask Worker Task Service {JobWorkerTaskTypeId} started. |
AT23 | Failing to Deserialize Object | Error | Failed to Deserialize object: Error reported was: {Error Details} |
AT24 | Billing Process Completed | Info | Billing Process Completed with status {Jobstatus} |