Skip to content
Current/ Help Center

Autotask sync: the complete field-mapping reference

12 min read · Updated Jul 18, 2026

If you run Autotask, you already know its entity model: Companies, Contacts, Projects, Phases, Tasks, Tickets, Resources, TimeEntries, Contracts, and more. This page is the field-level reference for exactly how each Autotask entity maps into Current, which direction data flows, and who wins when both sides have touched the same field. Bookmark it — you'll come back to it.

For the plain-language version of how the connection is set up, see "Connect Autotask and choose what syncs". For the philosophy behind who owns what, see "Our methodology: your PSA stays the source of truth". For the schedule these pulls run on, see "How often does Current sync? Every schedule, in one table".

How zone discovery works

Autotask's REST API doesn't have one fixed address — each Autotask database lives on a numbered "zone," and your API credentials only work once Current knows which zone to call. When you first connect Autotask, Current calls Autotask's public zone-lookup endpoint with your API username. Autotask returns the correct API base URL and zone name for your account, and Current stores that base URL (not a secret) alongside your connection. Every sync call after that goes straight to your zone — there's no repeated lookup per request.

Note
If you ever change Autotask API users
Reconnecting from Settings → Integrations → Autotask re-runs zone discovery automatically, so a new API user on a different zone (rare, but it happens after an Autotask migration) is picked up without any manual URL entry.

Companies

Companies are pulled from Autotask into the company record — this direction never reverses. Current never creates or edits a Companies record back in Autotask for existing synced accounts.

Autotask fieldBecomes in CurrentDirectionWho wins
Companies.idAutotask company link (id)pull onlyAutotask
Companies.companyNameCompany namepull onlyAutotask — unless you've renamed the company in Current and that rename hasn't synced back yet, in which case your edit is protected until it does
Companies.ownerResourceIDAccount managerpull onlyfills only when empty — never overwrites an account manager you've set in Current
Companies.phonePhonepull onlyAutotask
Companies.webAddressWebsitepull onlyAutotask
Companies.address1 / address2Address lines 1 & 2pull onlyAutotask
Companies.city / state / postalCodeCity / State / Postal codepull onlyAutotask
Companies.companyType (picklist)Company typepull onlyAutotask
Companies.classification (picklist)Classificationpull onlyAutotask
Companies.marketSegmentID (picklist)Market segment and industrypull onlyAutotask when the field is set — a segment is never cleared to blank once Current has one
Companies UDF: HubSpot Company Record IDHubSpot link (if you also use HubSpot import)pull onlyAutotask

Current-only fields that live on the company record — like total MRR, MRR at risk, and lead source — have no Autotask equivalent and are never pushed. See "Mapping CRM industries to Autotask Market Segments" for how the market segment picklist specifically becomes the industry shown on the company record.

Contacts

Autotask fieldBecomes in CurrentDirectionWho wins
Contacts.idContact link (id)pull + push (new contacts)
Contacts.firstName / lastNameFirst name / Last name / full namepull onlyAutotask
Contacts.titleTitlepull onlyAutotask
Contacts.emailAddressEmailpull onlyAutotask
Contacts.phonePhonepull onlyAutotask
Contacts.mobilePhoneMobile phonepull onlyAutotask
Contacts.primaryContactPrimary contact flagpull onlyAutotask (defaults to no if a zone doesn't expose this field)
Contacts.isActiveActivepull onlyAutotask

A contact you create in the CRM (in Current) is pushed to Autotask as a new Contacts record under that company. Once a contact exists in both systems, ongoing field refreshes (name, title, email, phone) still pull from Autotask — Autotask is the system of record for who a contact is.

Projects

Autotask fieldBecomes in CurrentDirectionWho wins
Projects.idProject link (id)two-way
Projects.projectNumberProject numberpull onlyAutotask
Projects.projectNameProject nametwo-wayAutotask
Projects.companyIDLinked companypull onlyAutotask
Projects.contractIDLinked contract namepull onlyAutotask
Projects.status (picklist)Project status (active/completed)pull onlyAutotask, backed up by a completed date or 100% completion if the status label is ambiguous
Projects.completedPercentageProgresspull onlyAutotask
Projects.endDateTimeDue datepull onlyAutotask
Projects.projectCostsRevenue / projectCostsBudgetBudget used %pull onlyAutotask
Projects.estimatedTimeBudget hourspull onlyAutotask
Projects.laborEstimatedRevenueBudget amountpull onlyAutotask
Projects.projectType (picklist)Project type / template flagpull onlyAutotask
— (no Autotask field)Project health indicatorCurrent-onlyCurrent

Building a Current-native project in Autotask (from a playbook, template, or won quote) creates a new Autotask project by pushing project name, linked company, start/end dates, and the required type/status picklists. See "Building projects in your PSA from a template or won quote" and "Project modes: PSA-synced or Current-native" for when this conversion happens and why it's permanent.

Heads up
Autotask-deleted projects are archived, never deleted
If a project disappears from Autotask, Current re-verifies and archives its local copy rather than deleting it — your task and time history stays intact.

Phases

Autotask fieldBecomes in CurrentDirectionWho wins
Phases.idPhase link (id)pull onlyAutotask
Phases.projectIDParent projectpull onlyAutotask
Phases.titlePhase namepull onlyAutotask

Phases are read-only from Autotask's side — Current doesn't create or rename Autotask phases. See "Organize work with phases and tasks" for how phases work day to day.

Tasks

Tasks carry the most fields of any synced entity, because task scheduling is where Current adds the most value over Autotask's own project module.

Autotask fieldBecomes in CurrentDirectionWho wins
Tasks.id / taskNumberTask link / task numberpull onlyAutotask
Tasks.status (picklist)Task status (backlog/in progress/review/done)two-way (see below)depends on your two-way sync setting
Tasks.phaseIDParent phasepull onlyAutotask
Tasks.titleTask namepull onlyAutotask
Tasks.startDateTime / endDateTimeStart date / End datetwo-way (with two-way sync on)last editor wins, per date — a reschedule in Autotask flows back into Current; a Current reschedule pushes out to Autotask. Start and end are tracked independently. A date set in Autotask where Current had none comes through, and a date you clear in Current stays cleared. With two-way sync off, Current owns dates and only pushes them out.
Tasks.descriptionDescriptiontwo-way (with your two-way sync setting on)last editor wins, by timestamp
Tasks UDF: Partner FacingPartner-visible flagpull onlyAutotask
Tasks UDF: Issue / Issue Reported ByIssue text / reported bypull onlyAutotask
Tasks UDF: Change Order HoursChange order hourspull onlyAutotask
Tasks.purchaseOrderNumberPO numberpull onlyAutotask
Tasks.isVisibleInClientPortalVisible to partnerpull onlyAutotask
Tasks.canClientPortalUserCompleteTaskPartner can completepull onlyAutotask
Tasks.priorityPriority ordertwo-way (with the setting on)last editor wins
Tasks.estimatedHoursEstimated hourstwo-way (with the setting on)last editor wins
Tasks.hoursToBeScheduledHours to schedulepull onlyAutotask
Tasks.remainingHoursRemaining hourspull onlyAutotask
Tasks.isTaskBillableBillable flagpull onlyAutotask
Tasks.assignedResourceID / assignedResourceRoleIDAssignee / assignee roletwo-waysee Secondary Resources below
Tasks.taskType (picklist)Task typetwo-way (with the setting on)last editor wins
Tasks.departmentID (picklist)Departmenttwo-way (with the setting on)last editor wins
TaskSecondaryResources (child)Secondary assigneestwo-waysee below
TaskAttachments (child, count only)Attachment countpull onlyAutotask
ServiceCallTasks (child, count only)Scheduled service call countpull onlyAutotask
Note
Worked hours don't come from the task record
Current deliberately does not use Autotask's estimated-minus-remaining hours math for a task's logged time — that's a scheduling approximation, not real time. Worked hours are computed from actual TimeEntries, so what you see always matches billed time.

Task dates are Current's biggest ownership claim: after the very first pull, Current's dependency-aware scheduler owns start and end dates, and pushes them to Autotask — not the reverse. See "What is a critical path (and how Current finds it)" and "The Timeline view: drag to reschedule, and back-scheduling" for how those dates get set.

The two-way sync setting, and how task conflicts are resolved

By default, two-way sync is off, and task fields simply refresh from Autotask on every pull. Turn it on in Settings → Integrations → Autotask, and six specific task fields become genuinely bidirectional: status, description, task type, department, estimated hours, and priority.

With two-way sync on, Current compares each field individually: if the incoming Autotask value is different from what Current last saw, and Autotask's own last-activity timestamp is newer than your last edit to that field in Current, Autotask's value wins. If your Current edit is more recent, it's kept — and the Autotask value is not marked as "seen," so a real change on the Autotask side that got deferred will still surface and be applied later rather than silently disappearing.

Tip
See a conflict happen
When Current overrides an Autotask value (or the reverse), it's logged so you can review it. See "Fix a sync conflict between Current and your PSA" for where those show up and how to resolve one.

Secondary resources

Autotask's TaskSecondaryResources are pulled into the task's list of assignees beyond the primary. When you change assignees in Current — adding or removing someone from a task — Current reconciles the whole list back to Autotask: newly added people are created as secondary resources, and removed people are deleted from Autotask's side. Current automatically picks a role each resource is actually eligible for in Autotask, so you don't get a role-mismatch rejection.

Tickets

Autotask fieldBecomes in CurrentDirectionWho wins
Tickets.id / ticketNumberTicket link / ticket numberpull onlyAutotask
Tickets.titleTicket namepull onlyAutotask
Tickets.descriptionDescriptionpull onlyAutotask
Tickets.status (picklist)Status (open/assigned/pending/resolved/closed)two-way for status onlysee "push status" below
Tickets.assignedResourceIDAssigneepull onlyAutotask
Tickets.dueDateTimeDue datepulled once, then Current-ownedCurrent after import
Tickets.completedDateTimeResolved datepull onlyAutotask
Tickets.createDateCreated datepull onlyAutotask
Tickets.resolutionResolution notespull onlyAutotask
Tickets.estimatedHoursEstimated hourspull onlyAutotask
Tickets.priority (picklist)Prioritypull onlyAutotask
Note
Only project tickets sync here
This mapping covers tickets linked to a project. Service-desk tickets with no project attached feed a separate, read-only company-ticket view used for account insight, not for project task work — see "The AI company read: what it analyzes and when it refreshes".

You can change a ticket's status from Current, which pushes back to Autotask. See "Logging time on a ticket vs. a task" for how ticket time entries work.

Resources (your staff)

Autotask fieldBecomes in CurrentDirectionWho wins
Resources.idResource link (id)pull onlyAutotask
Resources.firstName + lastNameNamepull onlyAutotask
Resources.titleRolepull onlyAutotask
Resources.isActiveActivepull onlyAutotask
Resources.email / userNameEmailpull onlyAutotask
Resources.internalCostInternal cost ratepull onlyAutotask (a 0 or missing value is treated as "not provided" and never overwrites a rate you've entered by hand)

Resources are matched to Current user accounts by email, which is what drives account-manager and deal-owner auto-matching in the CRM. Internal cost rates feed "Holidays and employee costs: where the numbers come from."

Time entries

Autotask fieldBecomes in CurrentDirectionWho wins
TimeEntries.idTime entry link (id)two-way
TimeEntries.resourceIDLogged-by usertwo-way
TimeEntries.taskID / ticketIDLinked task or tickettwo-way
TimeEntries.dateWorkedDate workedtwo-wayAutotask
TimeEntries.hoursWorkedHourstwo-wayAutotask
TimeEntries.startDateTime / endDateTimeStart/end timetwo-way
TimeEntries.summaryNotesSummarytwo-wayAutotask
TimeEntries.billingApprovalDateTimeApproval statuspull-back after push (read-back)Autotask — Current only ever promotes to approved, never demotes

See "Logging time and how it reaches your PSA's billing" for the full time-entry-to-billing flow, and the companion article "What Current writes back to Autotask (and when)" for exactly what's included on the outbound time entry push.

Contracts and services

Contracts and their services are inbound only — Current reads your Autotask contracts to power revenue and coverage reporting, and never edits a contract.

Autotask fieldBecomes in CurrentDirectionWho wins
Contracts.idContract link (id)pull onlyAutotask
Contracts.companyIDLinked companypull onlyAutotask
Contracts.contractNameContract namepull onlyAutotask
Contracts.startDate / endDateStart / end datepull onlyAutotask
Contracts.contractType (picklist)Contract type + recurring flagpull onlyAutotask
Contracts.contractCategory (picklist)Categorypull onlyAutotask
Contracts.status (picklist)Statuspull onlyAutotask
Contracts.contractPeriodType (picklist)Billing period (monthly/quarterly/semi-annual/annual/one-time)pull onlyAutotask
ContractServiceUnits.unitsUnit count (for active recurring contracts)pull onlyAutotask
ContractServices.unitPriceUnit pricepull onlyAutotask
ContractServices.isActiveService active flagpull onlyAutotask
Services.name (via serviceID)Service namepull onlyAutotask
Note
Where unit counts really come from
Contract service unit counts are read from Autotask's separate ContractServiceUnits entity, not a units field on ContractServices itself — that field doesn't exist. Getting this wrong once caused a tenant-wide $0 MRR display, which is why it's called out here specifically.

Holidays

Autotask holidays (from your configured holiday sets) pull in as read-only calendar entries — date and name — used by the scheduler to avoid booking work on days off. See "PTO and availability-aware scheduling in the Timeline". If your Autotask zone doesn't expose the Holidays entity, this pull is skipped quietly rather than failing your whole sync.

Notes

Company notes are the one entity where Autotask and Current genuinely share write access, with a simple rule: whichever side authored a note owns it. Notes pulled in from Autotask get refreshed on re-sync; notes you write in Current and push to Autotask are left alone by later Autotask pulls. Notes you push from Current are always created as internal — a pushed note never becomes visible on the Autotask client portal.

Picklists and status mapping

Autotask's various status and type fields are picklists — numeric ids with zone-specific labels. Current resolves these live from Autotask's field metadata (not a hardcoded list), so a picklist you've customized in Autotask is read correctly. Task and ticket status specifically collapse Autotask's many possible labels into Current's own simplified stages (backlog/in progress/review/done for tasks; open/assigned/pending/resolved/closed for tickets) by matching keywords in the label — a status labeled anything containing "complete" becomes done, anything with "progress" becomes in progress, and so on. The original Autotask status id is always kept alongside the simplified stage, so nothing is lost in translation.

What's deliberately not synced

  • Company, contract, contract-service, company-ticket, and company-note pulls are all read-only by design — Current never patches these Autotask records except through the specific CRM push flows described in "What Current writes back to Autotask (and when)".
  • Project health scores are Current-only — there's no Autotask equivalent field.
  • Total MRR, MRR at risk, and renewed MRR shown in the CRM are computed in Current and never pushed to any Autotask field.
  • Task worked-hours are computed from real logged time entries, never from Autotask's estimated/remaining hours math.
  • Calendar appointments only sync as a generic "busy" marker — the real appointment subject line is never pulled, so a private subject never leaks tenant-wide.
  • Once imported, ticket due dates and assignment become Current-owned and are not overwritten by later Autotask pulls.
Tip
Related reading
For push behavior specifically — what triggers a write to Autotask, retry rules, and what a push can never touch — see "What Current writes back to Autotask (and when)".
Was this helpful?