IntegrationsCRM / PSA

Autotask PSA

Cotillion's Autotask integration reads Opportunities, Quotes, Quote Items, Companies, Contacts and Company and Opportunity Notes from your Autotask PSA tenant into a single, standardized deal record. It writes nothing to your business data; the one thing it creates in Autotask is its own pair of webhooks, which it removes again when you disconnect. Once synced, the deals appear in your Cotillion workspace where you can register them against vendor portals (AWS Partner Central, Microsoft Partner Center, …) with a single action. For your Trust Profile it also reads your projects and the SLA results of your tickets.

Before you begin: you'll create a dedicated API User in your Autotask PSA with a custom Security Level scoped to read access, plus the one webhook grant below. The whole setup takes about 10 minutes and follows Datto's official Vendor On-boarding guide.

At a glance

ItemValue
AuthenticationAPI User (Basic auth) – Username + Secret
API surfaceAutotask REST API v1.0
Vendor trackingIntegration Vendor – indyrct | Cotillion - Partner Portal Automation
DirectionRead-only on your business data; creates and removes its own Company and Contact webhooks
CredentialsAWS KMS-encrypted at rest, never logged
Zone detectionAutomatic (Cotillion picks your tenant's Autotask API host, webservices*.autotask.net or a named zone such as prde.autotask.net)

Setup

Datto recommends a dedicated Security Level so the API User only has access to the data this integration needs.

In Autotask PSA:

  1. Open Admin → Account Settings & Users → Resources/Users (HR) → Security → Security Levels.
  2. Locate API User (System) in the list and copy it.
  3. Rename the copy to Indyrct CRM Read-only (or similar).
  4. Open the copy for editing.
  5. Set all top-level sections (Inventory, Workforce Management, Documents & Knowledge Base, Reports, Other) to No Permission.
  6. Configure only the sections listed below.
  7. Save & Close.

Required Security Level configuration (all other sections set to No Permission, all Add / Edit / Delete dropdowns set to None):

CRM → Organization & Contact Access

  • Customer & Cancelation – All
  • Vendors & Partners – All
  • Prospects, Leads & Dead – All

CRM → Object Permissions

  • Opportunities & Quotes – View: All (Organizations / Contacts / Notes inherit View from Organization & Contact Access above)

The Organization & Contact Access rows above unlock /Companies/query, /Contacts/query and /CompanyNotes/query (which holds the notes of companies and of their opportunities) for every kind of company, so the customer, contacts and notes of each deal can be read; Opportunities & Quotes unlocks /Opportunities/query, /Quotes/query and /QuoteItems/query.

Projects → Permission Per Project Type

  • Client & Internal and Proposals – View: All, Add: No: unlocks /Projects/query, your projects, which the Trust Profile reports as delivered projects; and the Projects field and picklist definitions (/Projects/entityInformation/fields), which the reference data refresh caches beside the other entities' picklists.

Service Desk → Object Permissions

  • Tickets – View: All: unlocks /ServiceLevelAgreementResults/query, the service level results of your tickets, which the Trust Profile reports as SLA results.

Admin → Feature Access

  • Resources/Users (HR) ✅: unlocks /Resources/query, which resolves the owner of each opportunity (its sales resource) to a name.
  • Sales & Opportunities ✅
  • Finance, Accounting, & Invoicing ✅

Other → Miscellaneous: financial visibility

  • Can view internal cost data (excludes New/Edit Resource page) ✅: without it Autotask silently strips unitCost from quote lines and the cost fields from opportunities in API responses, and Cotillion cannot resolve the expected monthly vendor spend for registrations (the value stays "Not found" until entered by hand at review).

Other: lets Autotask announce company and contact changes

  • Can create WebHooks ✅: set the maximum number to 50.

This is how Autotask announces company and contact changes to Cotillion. It lets Cotillion register the Company + Contact webhooks that Autotask uses to send those records to Cotillion as they change. Autotask disables this permission by default on every security level, so you must switch it on here. Without it the integration still works: changes to companies and contacts are found by the regular sync instead of being announced, and the registration is retried.

Why 50 and not two. Cotillion registers exactly two webhooks (Companies + Contacts). The number here is a count, not an access grant: unlike the object permissions above, it widens nothing the API user can read or write; it only caps how many callbacks it may hold, and every one of those callbacks is addressed to Cotillion. It matches Autotask's own platform maximum of 50 active webhooks per entity per site, so it can never permit more than Autotask itself allows.

Setting it once, generously, is what keeps this a one-time setup. Every additional record type Cotillion learns to receive by push, instead of re-reading it on a slower schedule, would otherwise mean coming back to your administrator to raise this number before it can be switched on for you.

Reference: Webhooks: Autotask REST API documentation.

Why Admin → Sales & Opportunities. Cotillion queries Autotask's /OpportunityCategories/query endpoint to translate the numeric opportunityCategoryID on every opportunity (100 / 101 / 1 / ...) into a human-readable label ("New Business" / "Existing Business Renewal" / "Existing Business Expansion" / ...). AWS Partner Central expects a categorical "Net New vs Expansion vs Renewal" signal on submitted opportunities; without this label the sync falls back to the raw integer, and the Opportunity Type on a proposed AWS registration cannot follow the deal's category in Autotask.

Why Admin → Finance, Accounting, & Invoicing. Cotillion queries /Currencies/query to translate the numeric currencyID on companies and opportunities (1 / 2 / 3 / ...) into the corresponding ISO 4217 code ("USD" / "AUD" / "GBP" / ...). Every monetary field in the synced deal record (amount, recurring revenue, one-time revenue, line-item unit price, line-item total) carries that ISO code. Without this permission the lookup map is empty, Cotillion has nothing to resolve currencyID = 1 against, and every amount arrives without a currency.

Both endpoints are read-only system reference tables (currencies and opportunity categories), governed by the Admin section permissions in Autotask, not by the per-object CRM grid. Without these permissions the overall sync still succeeds, but deal types and currencies stay unresolved. The reference data refresh also reads /Countries/query, to resolve the country on each company to its name.

Web Services API → Feature Access

  • Can login to Web Services API ✅: unlocks the REST API itself; every endpoint above is called through it.

Why no Add / Edit / Delete. Our integration never adds, edits or deletes your business records; the webhook grant above is its one write, to its own webhooks. Granting any Add / Edit / Delete permission goes beyond what is required and is rejected during Datto's pre-publication review.

Web Services API → Resource & Contact Impersonation tables: leave all checkboxes empty. Our integration does not impersonate other resources or contacts. Any checkbox set in those grids extends the API user's effective permissions beyond what it needs and is rejected during Datto's pre-publication review.

Step 2: Create a new API User

  1. Open Admin → Account Settings & Users → Resources/Users (HR) → Resources/Users, then click New → New API User.
  2. Fill in the basic resource information (First Name, Last Name, Email).
  3. Under Security, set Security Level to the custom level you created in Step 1 (Indyrct CRM Read-only).
  4. Scroll to the API Tracking Identifier section.
  5. Select Integration Vendor (not Custom, not None).
  6. From the Integration Vendor dropdown, select indyrct | Cotillion - Partner Portal Automation.
  7. Save & Close.

Why Integration Vendor, not Custom. Per Datto's Vendor On-boarding guide, Custom (Internal Integration) tracking identifiers are not global: they work only inside the database where they were created. Integration Vendor is the only tracking type supported for multi-tenant SaaS integrations such as ours.

Step 3: Generate Username and Secret

  1. Open the API User you just created.
  2. Click Generate Username and copy the generated value.
  3. Click Generate Key/Secret and copy the generated value.

Keep these values handy: the Secret is shown only once by Autotask. If you lose it, you'll need to regenerate.

Step 4: Connect in Cotillion

  1. Sign in to your Cotillion workspace at cotillion.indyrct.com.
  2. Open CRM / PSA in the sidebar → Connect → Autotask PSA.
  3. Paste the Username and Secret from Step 3.
  4. Click Test & Connect.

What happens automatically:

  • ✅ Cotillion auto-detects your Autotask zone (no zone selection needed).
  • ✅ Verifies the credentials against the Autotask REST API.
  • ✅ Encrypts them with an AWS KMS envelope before storing.
  • ✅ Starts a one-time backfill sync, then schedules recurring updates.

Step 5 (optional): Exclude individual opportunities from the sync

Some opportunities should never appear in Cotillion: internal-only forecasts, personal experiments, deals that belong to a tenant you don't want surfaced for vendor registration. You can opt them out by adding a custom User-Defined Field on the Opportunity entity and ticking it on the opportunities you want hidden.

In Autotask PSA:

  1. Open Admin → Application-Wide (Shared) Features → User-Defined Fields.
  2. Switch to the Opportunities tab and click New.
  3. Configure the field exactly as follows:
    • Name – cotillion_exclude_from_sync (must match exactly: Cotillion looks for this name)
    • Label – Exclude from Cotillion sync (or any wording you prefer; only the Name is matched)
    • Field Type – List
    • List values – add two entries:
      • Yes (active)
      • No (active, set as default if you want all new opps to sync)
    • Required – leave off
    • Visible – on
  4. Save & Close.

To exclude an opportunity, open it in Autotask, scroll to the User-Defined Fields section, set cotillion_exclude_from_sync to Yes, and save. On the next sync (within ~5 minutes), Cotillion will skip the AI mapping for that opportunity entirely.

Reversible. Setting the field back to No (or leaving it blank) re-includes the opportunity on the next sync. Cotillion does not delete previously-synced deal data when you flip the flag on: it simply stops refreshing it. Flip the flag off and the next sync brings the data back up to date.

How the sync works

CadenceWhat
Company & contact editsAnnounced by webhook: Autotask announces each change and Cotillion re-reads just that record, without waiting for a scheduled sync. A periodic safety sweep catches anything a webhook could not deliver.
Opportunity syncEvery 5 minutes per organization: opportunities + their quotes + quote items + notes.
Deletion detectionHourly: opportunities deleted in Autotask are detected and retired from Cotillion within about an hour.
Reference data refreshPeriodically: picklist values, UDF schemas, sales resources, countries, currencies, opportunity categories. These rarely change.

The integration respects Autotask's per-customer queue rate limits. Each sync is rate-limited per credential, and outbound traffic is logged in our operational dashboards for audit.

Which opportunities Cotillion keeps

Cotillion keeps the opportunities you could register with a vendor, and the ones it is already tracking. In practice:

  • Open opportunities are synced and appear in Deals.
  • An opportunity that closes while Cotillion is tracking it stays. That is exactly when the outcome has to reach the vendor, when the vendor's verdict comes back, and when a won deal becomes eligible for an incentive. It moves out of the "requires action" view and stays under the registered deals.
  • Opportunities that were already closed before Cotillion saw them are not kept. Editing an old closed opportunity in Autotask does not pull it in either. Your closed deal history stays in Autotask.

What gets synced and how it stays stable

Each sync turns every opportunity into the deal you see under Deals in Cotillion, with its data normalised so it can drive vendor registration (AWS / Microsoft) without the ambiguity of vendor-specific field conventions: amounts get explicit currencies, contacts get role flags (primary / decision-maker), and labels get resolved against your Autotask picklists.

Two guarantees Cotillion holds across syncs:

  • Customer and contact identity are stable. When you rename a company in Autotask, Cotillion picks up the new name on the next sync, but the same customer keeps the same internal identity: every opportunity that pointed to it before still points to it after. The same applies to contacts: a contact appearing on several opportunities is recognised as one person, not duplicated per opportunity.
  • Disconnect-then-reconnect is non-destructive. If you remove the Autotask integration in Cotillion and add it back within 30 days, your existing opportunities re-attach to the new connection without losing their vendor-registration history or per-line-item state.

Deletions stay in step, too. Close an opportunity (Won/Lost) or remove a quote line in Autotask, and Cotillion reflects it on the next sync: a closed opportunity changes state and a removed line item drops from the deal within minutes. Deleting an opportunity outright is caught by the hourly deletion check, so it is taken out of your Deals view within about an hour. Removals go through a short grace window rather than happening instantly, so a brief Autotask hiccup can never wrongly wipe a live deal's registration history.

Audit trail

Cotillion keeps an immutable record of every payload submitted to a vendor (AWS Partner Central, Microsoft Partner Center). The record captures exactly what was sent at submission time, independent of subsequent edits in Autotask or Cotillion. Customer name, contact details, and quote specifics on a submission stay frozen on the audit record even if the upstream Autotask record later changes.

Reference

Datto's official help if your Autotask UI differs from the screenshots above:

Troubleshooting

Authentication fails on Test & Connect

The Username or Secret was mistyped, or the API User's Security Level doesn't have Web Services API → Can login to Web Services API enabled. Re-generate the Secret in Autotask (it cannot be retrieved later) and re-check the Security Level configuration from Step 1.

Zone discovery fails

Auto-zone-detection couldn't resolve a regional Autotask URL for the supplied username. Confirm the username belongs to a real Autotask user account, not a placeholder.

Permission denied during sync

The API User's Security Level is missing one of the required View permissions. The integration page does not name the missing permission: it reports Autotask PSA sync stalled, or Autotask PSA is refusing the stored credentials. Before you disconnect and re-enter credentials, compare the level's permissions against the table in Step 1.

A specific symptom: deal amounts on the Deals page show as bare numbers without a currency, and / or the Opportunity Type on a proposed AWS registration does not follow the deal's category in Autotask. Both point to the Admin section permissions. Open the Security Level you created in Step 1, expand Admin → Feature Access, and confirm both Sales & Opportunities and Finance, Accounting, & Invoicing are enabled.

Rate limit reached

Autotask returned a 429 (rate-limited) response. Cotillion automatically backs off and retries; no action required.

An opportunity is missing from Cotillion

Check the opportunity's User-Defined Fields in Autotask: if cotillion_exclude_from_sync is set to Yes (or to a True / 1 value on a Checkbox UDF), the opportunity is intentionally hidden (see Step 5 of the setup guide). Set it back to No to bring it back into the sync. The opportunity reappears on the next sync (within ~5 minutes) with all its data refreshed; you don't have to manually re-sync.


For questions specific to the Datto Vendor On-boarding process, contact the Datto TAP team. For Cotillion-side issues, email support@indyrct.com.

On this page