Skip to content
Current/ Help Center

Prepare your Autotask before onboarding: the setup checklist

20 min read · Updated Jul 18, 2026

Current's Autotask connection is deep — it reads thirty-odd entities and writes back to a dozen. That depth means the quality of your first sync is decided in Autotask, not in Current. This is the article to read before you paste a single credential: what to create, what to clean up, and what to turn on, so that the first pull and the first push both land.

Work through it in order. When you're done, use the "You're ready when…" checklist at the bottom as your sign-off. For the connection walkthrough itself, see "Connect Autotask and choose what syncs". For the field-level detail on what maps where, see "Autotask sync: the complete field-mapping reference".

Heads up
"Connected" does not mean "permitted" — read this before you trust a green badge
Current's connection test validates your credentials against Autotask's ThresholdInformation endpoint. That endpoint is account-level: it proves your API user, secret, and tracking identifier authenticate — and nothing else. An API user with zero object permissions still returns a successful test, and Current will show the connector as Connected. Every per-entity permission gap therefore surfaces *later*, on the first sync, and some of them surface as "no data" rather than as an error. The connector badge won't save you either: it only turns red when EVERY core entity fails in the same run, so a single denied entity can leave it green. That is exactly why this checklist exists — neither the connection test nor the connector badge can do this work for you.

Step 1 — Create a dedicated Autotask API user

Use a dedicated API user for Current, not a shared one and not a human login. The reason is attribution and control: Current's traffic shows up separately in Autotask's own API usage reporting, and the credential can be revoked on its own without touching a person's login. What a dedicated API user does NOT do is buy Current its own request quota — Autotask's hourly request threshold is shared across every integration hitting your Autotask database, so your RMM, your reporting tool, and Current all draw on the same budget no matter how many API users you create. Current reads ThresholdInformation before each 5-minute delta pull and defers the run once the account crosses 80% of the threshold, resuming automatically.

  1. 1
    Create the API user in Autotask
    Admin → Resources (Users), New → New API User. Give it the API User (API-only) security level. Current's connection card says the same thing in its setup hint.
  2. 2
    Generate the username, secret, and tracking identifier
    Autotask issues all three. The tracking identifier (also called the integration code) is required — Current sends it on every single API call, and Autotask rejects requests without it.
  3. 3
    Name it recognisably
    Something like current-sync@yourmsp.com. It shows up in Autotask's own API usage reporting, and you'll want to be able to tell Current's traffic apart from your other integrations at a glance.
  4. 4
    Do not fill in a zone URL
    Current discovers your Autotask zone automatically from the API username alone — Autotask's zone lookup is a public endpoint keyed by username, so no credentials are even needed to resolve it. Leave the API zone URL field blank unless someone at Autotask has explicitly told you to pin a specific zone.
Note
If zone discovery fails
A "Zone lookup failed" message at connection time almost always means the API username is wrong or was mistyped — the lookup happens before any authentication, so it's a username problem, never a secret problem. Fix the username and test again.

Step 2 — Grant the permission set

Autotask permissions are per-object. Current needs read on everything it pulls, add/edit on everything it pushes, and — easily the most-missed item — read on entity metadata, because that's how Current resolves your picklists (status, priority, project type, task type, department, market segment) live instead of guessing at hardcoded ids.

Grant read access to all of the following. The right-hand column is what you actually lose if that permission is missing.

Autotask entity (read)What Current uses it forMissing it means
Projects, Phases, TasksThe whole project module — boards, timeline, dependencies, critical pathThe project module stays empty. A denied Projects read fails the project entity and is named in the sync summary ("FAILED: project …") and stored in last_error — but it does NOT by itself turn the connector red. Current only paints the connector red when EVERY core entity (projects, phases, tickets, tasks) fails in the same run, and the 5-minute delta sync never reds it at all. Read the sync summary / Sync Health, not the badge, to catch a Projects permission gap
TaskPredecessor, TaskSecondaryResources, TaskAttachmentsDependency edges, secondary assignees, attachment counts on the task drawerDependencies don't import (quietly); secondary assignees and attachment counts stay blank
Tickets, TicketNotes, ChecklistItemsProject tickets and the read-only company ticket history behind account insightTickets stay empty. Note that tickets are only useful *after* projects have synced — Current attaches project tickets to tracked projects, so projects must land first
TimeEntriesReal worked hours on tasks, and mirroring Autotask-native time back into CurrentTask worked-hours read as zero — Current never fakes them from estimated-minus-remaining
ResourcesYour staff list, and the link between an Autotask resource and a Current loginA denied Resources read is the dangerous one: it's an advisory-tier failure, so the connector stays GREEN while nobody gets linked — and every unlinked person is then blocked from logging time at all ("Your account isn't linked to an Autotask resource yet"), with an empty My Day and no PTO in the scheduler. See Step 3
Roles, ResourceRoleDepartmentsWhich role each resource can legally hold on a task or time entryRole-activeness filtering silently switches off, and task assignment or time push gets rejected by Autotask
BillingCodesThe allocation/billing code list on the time entry dialogNo billing codes to choose from, and the task-assignment recovery path has nothing to fall back on
Contracts, ContractServices, ContractServiceUnits, ServicesContract names on time entries, plus MRR, seat counts, and customer status in the CRMMRR and seats read as zero; companies won't show as customers
Companies, Contacts, CompanyNotes, CompanyToDos, CompanyAttachmentsThe CRM book: companies, partner contacts, activity history, to-dos, attachmentsThe CRM is empty
Opportunities, OpportunityAttachments, Quotes, QuoteItemsDeals in the pipeline, and the signed quote PDF on the deal drawerPipeline is empty; signed quote PDFs don't render
ProjectCharges, TicketChargesCharges pushed from won quotes, mirrored backCharge history doesn't refresh
ServiceCalls, ServiceCallTasksSo that rescheduling a task drags its booked service calls with itService calls stay put when the task moves
Holidays, TimeOffRequests, AppointmentsThe working calendar the scheduler respects — days off, PTO, busy blocksScheduling books work on holidays and over PTO. Optional entities: if your zone doesn't expose them at all, Current warns and moves on
ThresholdInformationThe API budget check that keeps Current from exhausting your request quotaThis one is required for the connection test itself to pass

If you want Current to write back — and most of the platform's value depends on it — also grant add and edit on these:

Autotask entity (add/edit)Written when
ProjectsYou build a Current-native project, playbook, or template into Autotask (create only — Current never edits an existing Autotask project)
Phases, TasksThe same build, and every task reschedule, status change, or reassignment
TaskSecondaryResources / SecondaryResourcesYou add or remove a secondary assignee on a task
TimeEntriesSomeone submits time (create only — Current never edits or deletes an Autotask time entry)
TaskNotes, TicketNotesA time entry posts its summary as a note, or someone comments on a task
Tickets, ChecklistItemsA won quote converts into a service ticket, and when a ticket's status or fields are changed in Current
Charges (on Projects and Tickets)A won quote's product lines are pushed as charges
Companies, Contacts, CompanyNotes, CompanyToDosCRM pushes — a new company, contact, logged note, or to-do
OpportunitiesA deal is created or moved to a new pipeline stage
ServiceCalls, ServiceCallTasks, ServiceCallTaskResourcesA service call is booked from Current (all three are written — the call, the task link, and the resource attachment), and when a task with booked service calls is rescheduled (Current patches the call's start/end to follow the task)

Finally, the API user needs permission to read entity metadata (Autotask's entityInformation/fields) on the entities Current resolves picklists for. If metadata is blocked on Projects, project builds hard-fail because the project type can't be resolved. If it's blocked on Tasks, every required task field goes unfilled and Autotask rejects the creates one field at a time.

Metadata (picklist) read required on:
Projects   Tasks     TaskNotes   Tickets
TicketCharges         TimeEntries  Resources
Companies  CompanyNotes  CompanyToDos  Contacts
Contracts  Opportunities  ProjectCharges
Heads up
The permission gap that looks like an empty page
Current splits sync failures into tiers on purpose, so one bad lookup can't red-light a healthy sync. The side effect is that a permissions gap on Resources, billing codes, work types, contracts, roles, holidays, PTO, contacts, companies, or contracts-and-services produces a warning and zero rows — not a failure. If an area of Current is mysteriously empty after a successful sync, check the API user's object permissions before you check anything else.

Step 3 — Resources: the single highest-value thing to get right

Everything personal in Current — logging time, My Day, PTO-aware scheduling, cost and margin, an account executive's CRM book — hangs off one link: the Autotask Resource ↔ Current user match. Current makes that match automatically on a lowercase email comparison. That is the only automatic match; there is no name-based fallback.

Get this right in AutotaskWhyWhat breaks if you don't
The resource is ActiveCurrent only pulls resources where isActive is trueAn inactive resource is never pulled at all, so it can't even be linked by hand
Resources.email exactly matches the person's Current sign-in emailThis is the match key — case-insensitive, but otherwise exactNo link. Time entry is blocked with "Your account isn't linked to an Autotask resource"; My Day is empty; their PTO and busy blocks never reach the scheduler; they get no cost rate; and an AE's whole CRM book stays invisible to them
Resources.email is populated at allWhen email is empty, Current falls back to the resource's userNameA userName that isn't an email address will never match a profile, so the link silently never happens
Internal Cost (Burden Rate) on the resource's HR tabFeeds cost and profitability reportingNo cost data. Note the trap: internalCost comes back as 0 when the API user lacks View permission on internal cost data — and Current treats 0 as "not provided" rather than a real zero, so it never overwrites a rate you typed in by hand. Rates above $10,000/hour are skipped with a warning
An active Role, held through an active Resource Role/Department associationAutotask refuses a project time entry unless the resource+role pair is a defined, active combinationTime entry rejected: "your Autotask resource has no role defined for this project." Task assignment fails with "give them an active role/department in Autotask first." Ticket creation degrades — the ticket is created unassigned, with a warning
Note
When email can't match, an admin links by hand
If someone's Autotask email genuinely differs from their Current sign-in email, a tenant admin links them manually in Users & roles by picking their Autotask resource. There's deliberately no self-service picker — letting a user claim a resource identity for themselves would be a security hole. Once the link lands, their deals, account-managed companies, and assigned tasks all backfill on the next sync cycle.

Step 4 — The picklists and codes that make writes succeed

Autotask enforces required fields at write time. Current auto-fills any required field that happens to be a *picklist*, using your zone's own default value (or the first active value). What it cannot invent is a required free-text, numeric, or reference field — and what happens then depends on the surface. On a CRM company push, an unfillable required field stops the push with "Autotask requires field(s) Current can't auto-fill," and it will not auto-retry until a human supplies the value. On a project/task build, Current attempts the creates anyway and then tells you afterwards which required task fields it couldn't fill ("set them in the task drawer, then build again"). On a won-quote ticket create, you'll simply see Autotask's own rejection. Either way, audit your zone's required fields on Companies, Projects, Tasks, and Tickets before you go live.

Autotask configRequired forIf it's missing
At least one active, non-Template Project TypeCreating any project in Autotask from Current (build, playbook, template, won quote)Hard failure: "Couldn't read a valid Autotask project type for this workspace." Template-named types are always excluded, so a zone whose only active types are templates counts as having none
At least one active general allocation (labor) Billing CodeAssigning a resource to a task (and it populates the allocation-code picker on the time entry dialog)Hard failure on assignment: "Autotask needs a billing/allocation code on this task before a resource can be assigned." Current prefers a General Allocation Code whose name looks like Standard / Regular / General / Default / Hourly / Labor. Time entries are different: Current sends a billing code only if one is picked — the same way it treats contract and work type — and only makes it a required pick once codes have synced. If Autotask rejects an inactive code, Current auto-retries with an active one
At least one value in the Tasks Department picklistAny edit to a task that already has a resource assignedAutotask refuses the update outright — it demands a departmentID on every patch of an assigned task. Current tries the task's own department, then the resource's default department, then any active department value; with none of the three, the write fails
A Project status like New / Active / In Progress / Open / Not StartedNothing — this one is optionalCurrent simply omits status on create and lets Autotask apply its own default
At least one Ticket Queue, plus creatable Ticket status and priority valuesConverting a won quote into a service ticketHard failure — the queue is mandatory, and Current stops with "Couldn't resolve a valid Autotask ticket status/priority for this workspace" if either picklist has no usable value
A Charge Type value (Current prefers one labelled Operational)Pushing charges from a won quote onto a project or ticketAutotask rejects the charge with "Missing Required Field chargeType". Every charge line also needs exactly one of an Autotask product or a billing code — Current will tell you: "This charge needs an Autotask product or billing code before it can be pushed"
A Note Action Type on Company NotesPushing a CRM note to AutotaskSoft degrade, not a failure: the activity is saved in Current and parked with "this Autotask zone has no note action type to file it under"
A Ticket type/category that accepts timeLogging time against a ticketAutotask exposes no readable per-ticket flag for this — the rule lives in your ticket type and category configuration and is only enforced when the time entry is created. Current learns it from Autotask's rejection, marks that ticket as not accepting time, and self-heals the moment a post succeeds
Note
Two things you might expect to need — and don't
An active Contract is NOT required. Contracts are optional on both a time entry and a ticket create; Current only offers them as a pick. A Work Type is NOT required either — if your zone doesn't expose the TimeEntries workType picklist, Current simply omits the field. Don't hold up your go-live building either one.

Step 5 — Clean the company book before you pull it

This is the step most MSPs skip and most regret. Current pulls Autotask Companies with no filter at all — there is no active/inactive flag on the Autotask Companies pull, and Current has nowhere to store one. Every dead, archived, or long-dormant company in your Autotask lands in Current as an ordinary company, indistinguishable from a live one, and shows up in the CRM, in search, and in the prospect pool.

  • Merge duplicate companies in Autotask FIRST. Current matches companies on the Autotask id and nothing else — no name matching, no domain matching. An Autotask duplicate becomes a permanent Current duplicate.
  • Fix blank company names. A company with no companyName imports with the literal placeholder name "Autotask company 12345".
  • Audit the companyType, classification, and marketSegmentID picklists for DEACTIVATED values still sitting on live companies. Current drops inactive picklist values when it builds its label map, so those companies import with a blank type, classification, or segment — the id is there, but there's nothing to show for it.
  • Set ownerResourceID (the account owner) on every company you care about, and make sure that owner's resource is linked to a Current user. Unlinked, the company shows no account manager — and a later company update push fails loudly.
  • Pre-create every Market Segment value you'll need. Autotask's REST API can't create market segments, so Current never will either — an unmapped industry is skipped with a warning, not guessed at. Then fill in the mapping; see "Mapping CRM industries to Autotask Market Segments".
  • Check whether your zone exposes a Lead Source picklist on Companies. The field's API name varies by zone, so Current scans your live field list for a picklist with "lead" in its name or label. If there isn't one, lead source stays a Current-only field and never reaches Autotask.
  • Confirm your zone exposes primaryContact on Contacts. If it doesn't, every contact imports with the primary-contact flag off, and Current logs one warning per sync run to tell you.
  • De-duplicate contact email addresses in Autotask, so Current can enforce one contact per email cleanly.
Heads up
Two required-field surprises we've hit on live zones
Some Autotask zones mark Companies.phone as required. Rather than failing an unattended push, Current sends the placeholder 000-000-0000 — expect to clean those up, or populate real phone numbers first. Some zones also mark Companies.ownerResourceID required. Current resolves that owner in three steps: the company's stored account-manager resource id, else the account manager's linked resource, else a deterministic workspace fallback — first an active tenant admin with a linked resource, then ANY synced Autotask resource. So the field only stays empty (and Autotask may reject the create) if no Autotask resources have synced at all. The side effect is worth calling out: a company with no account manager can end up owned in Autotask by whichever resource the fallback happens to pick.

Step 6 — Contracts, holidays, and PTO

These three drive MRR, seat counts, customer status, and the working calendar the scheduler books against. Each has a specific shape Autotask has to be in.

What to checkThe exact rule
Recurring contractsCurrent only pulls the service lines of contracts whose contract TYPE label contains "recurring" and whose STATUS label resolves to active. A contract that doesn't meet both conditions contributes nothing to MRR, and its company won't roll up as a customer
Contract service units (seats)Seat counts come from Autotask's separate ContractServiceUnits entity, not from a units field on the contract service — that field doesn't exist. The units rows must be date-effective TODAY. Autotask omits the row entirely when a period's units are zero
Holiday setHolidays pull from your Autotask holiday sets, filtered to dates from the last 365 days onward. Be aware: Current merges ALL holiday sets into one calendar — there's no per-location filtering, so a multi-region holiday set list becomes the union of every date in it
Time offOnly APPROVED time-off requests become PTO blocks, and only for resources that are linked to a Current user. Approved-but-unlinked time off is skipped entirely
AppointmentsPull in as generic "busy" markers only. The appointment subject line is deliberately never stored, because availability is readable across the workspace and Autotask appointments often mirror private Outlook events

See "Holidays and employee costs: where the numbers come from" for how these land in the app, and "Logging time and how it reaches your PSA's billing" for the full time-entry lifecycle once your resources are linked.

Step 7 — Set the two Current-side gates before you QA

Two switches inside Current are deliberately closed by default. Neither is an Autotask setting, but both will stop a write dead if you don't know about them, and both belong in a go-live plan.

  1. 1
    CRM write mode starts at OFF
    Every CRM write to Autotask — companies, contacts, notes, deals, to-dos — is blocked until an admin opts in. Off means no Autotask writes at all.
  2. 2
    Create a test company in Autotask before you QA
    Test mode is the middle rung: it allows CRM writes only against companies whose live Autotask name starts with "ZZ-Current Test" (companies named with the older "ZZ-Cascade Test" prefix still count). Create one in Autotask now, so your team can exercise the whole flow without touching a real account.
  3. 3
    Flip to live deliberately
    Live mode is an explicit admin action, not a default. Move to it only after test-mode writes have landed correctly in Autotask.
  4. 4
    Map your pipeline stages
    Pushing a deal to an Autotask Opportunity requires a mapping from each Current pipeline stage to an Autotask Opportunity stage. Set it up under Integrations before your first deal push, or you'll get "This deal's stage isn't mapped to an Autotask Opportunity stage yet."
Note
Building a native project into Autotask always needs a confirmation
Current will refuse to create an Autotask project out of a Current-native one unless you explicitly confirm the conversion — it's permanent, and Autotask can't un-create a project. See "Project modes: PSA-synced or Current-native" and "What Current writes back to Autotask (and when)".

You're ready when…

  • A dedicated Autotask API user exists with the API User (API-only) security level, and its username resolves in Autotask's zone lookup.
  • That API user has READ on every entity in the table above, ADD/EDIT on every entity you intend to push, and metadata (picklist) read on Projects, Tasks, Tickets, TimeEntries, Resources, Companies, Contacts, Contracts, Opportunities and the note/charge/to-do entities.
  • The API user has View permission on internal cost data — otherwise every internal cost silently reads as 0.
  • Every person who will use Current has an ACTIVE Autotask resource whose email matches their Current sign-in email, exactly (case aside).
  • Each of those resources holds an ACTIVE role through an ACTIVE Resource Role/Department association.
  • At least one active general allocation (labor) billing code exists.
  • At least one active, non-Template project type exists.
  • At least one value exists in the Tasks Department picklist.
  • For won-quote conversion: at least one ticket queue exists, plus usable ticket status and priority values, a charge type value, and a product or billing code on anything you'll charge.
  • You know which of your Autotask ticket queues are machine noise rather than customer work — alerts and monitoring, RMM automation, backup and BDR jobs, spam and internal-IT — so you can mute them and keep support history, sentiment, SBR stats, and AI insights honest. The setup wizard's Mapping & noise step flags the usual suspects "Recommended off" and you decide; the same toggles live in Integrations → Autotask → Manage. See "Ticket-queue noise: which queues and boards to sync, and which to mute".
  • Duplicate companies are merged, blank company names are fixed, and dead companies are the ones you're genuinely willing to import — because all of them will import.
  • No live company points at a deactivated companyType, classification, or market segment picklist value.
  • Every market segment you need already exists in Autotask.
  • Recurring contracts carry a type label containing "recurring" and an active status label, with current-dated contract service unit rows behind them.
  • A holiday set is populated, and time off is approved.
  • A "ZZ-Current Test" company (or a legacy "ZZ-Cascade Test" one) exists in Autotask for your CRM write-mode test pass.
Tip
Run the first sync in the morning
A first full pull on a large Autotask book takes a while, and Autotask's hourly request budget is shared across every integration hitting your Autotask database — not just Current's API user. Current defers its incremental syncs once the account crosses 80% of that threshold and resumes automatically, so nothing is lost — but a first sync started at 4:55pm on a Friday is a first sync you can't watch. Kick it off when someone's around to read the warnings.
Was this helpful?