Unanet A/E Cloud Integrated Data

Field mapping reference for Unanet A/E Cloud

What this page covers: A complete reference mapping every Unanet A/E Cloud field to its Mosaic equivalent. Use this guide when configuring your integration, verifying synced data, or troubleshooting discrepancies.

Integration typeCloud (Unanet A/E REST API)
AuthenticationAPI Key (HTTP Basic with apiKey:)
Setup complexityModerate
Configurable fieldsLimited — fee source, status mappings, archive behavior, portfolio source
PrerequisiteUnanet A/E Cloud Integration Setup

How Data Flows

Unanet A/E Cloud (REST API) → Mosaic Sync Engine (field mapping) → Mosaic (12 synced data types)

The integration uses the Unanet A/E REST API at https://<subdomain>.infocusapp.com/api/<database> to query Employees, Firms, Projects, Phases (Tasks), Timesheets, Job Titles (Roles), Rate Schedules, Org Units (Departments), and Company Addresses (Offices). Bill Rates and Portfolios are derived client-side from other entities (no dedicated endpoints).

Data flows one way only — Unanet → Mosaic. Records are read-only from Mosaic's perspective.


Integrated Data Types

The integration syncs 12 data categories from Unanet A/E Cloud into Mosaic:

Data TypeDescription
MembersEmployee records (name, email, location, department, archive status)
ClientsFirm records (title combines firm code and firm name)
ProjectsProject records (title, code, fee, dates, billable derivation, rate group, portfolio)
PhasesTask / sub-project records under projects (multi-level parent linkage supported)
Time EntriesTimesheet items with hours, billable derivation, hourly rate, and notes
RolesJob titles (name composed of [code]: name)
Rate GroupsRate Schedules (one per rate ID; archived flag from isactive)
RatesRate Schedule items per role with effective dates (bill and cost rates)
Entity RatesPer-role rate assignments inside a rate group
Bill RatesPer-employee bill rate history synthesized from the employee's billrate field
DepartmentsOrg Units (organizational hierarchy)
OfficesCompany Addresses (office locations with full address)
PortfoliosSynthesized from each project's Project Manager (when configured)

This list may expand as new features are added.

Not Synced

Data TypeDescription
Member RolesPer-employee role assignments are not synced (Unanet A/E does not store start/end dates required by Mosaic)
Member Project RolesPer-project role overrides are not synced
Member Project Bill RatesEmployee-specific (per-project) rate assignments are not synced
Member Cost Rates (separate entity)Cost rates flow through the Rates entity (when isbillrate=false); there is no separate cost rate entity
Project Manager (Mosaic field)Loaded but not assigned to a Mosaic Project Manager field — used only to derive Portfolios
Job Title on MemberLoaded but not surfaced — assignments are managed through the Roles entity instead
Office assignment to MembersOffices sync as standalone records but are not linked to employees
Work Plans / Budget EstimatesResource planning data is not synced
ActivitiesNo activity entity is fetched
CurrencyCurrency codes are not surfaced as Mosaic fields

Reading the Field Mapping Tables

Symbol legend for technical tables

The Technical Reference tabs below use a shorthand notation for API sources. Read this legend before reviewing the mappings.

SymbolMeaningExample
.API field referencePerson.firstname = the firstname field on the Person resource
Values combined into one composite valuefirmcodefirmname = combined into [firmcode]: firmname
>Fallback priority — use the first available valuerevStartDate > origStartDate = use revised; if null, use original
orConfigurable — an integration setting selects whichfixedfee or laborbudget = your configuration chooses one


Members

What Syncs to MosaicWhere It Comes From in Unanet A/E
Employee IDThe unique Unanet employee identifier
First NameThe employee's first name
Middle NameThe employee's middle name
Last NameThe employee's last name
EmailThe employee's work email (joined from the Contacts table)
DepartmentThe employee's organizational unit (orgid)
LocationThe employee's address (street, city, state, zip, country) joined from the Addresses table
Is ArchivedDerived from the employee's active flag — isactive = false = archived
Created / Modified DateWhen the employee record was created and last modified

Job title is not synced as a Member field. Employee roles are managed through the Roles entity. Mosaic does not import per-member role associations from Unanet A/E because Unanet does not provide start/end dates that Mosaic requires.


Clients

What Syncs to MosaicWhere It Comes From in Unanet A/E
Client IDThe unique Unanet firm identifier
Client TitleA composite of the firm code and firm name: [firmcode]: firmname
Client NumberThe firm code
Created / ModifiedWhen the firm record was created and last modified
Is ArchivedAlways false — Unanet's firms response does not include an active flag

The composite title prevents collisions when multiple firms share the same display name but have different firm codes.


Projects

What Syncs to MosaicWhere It Comes From in Unanet A/E
Project IDThe unique Unanet project identifier
Project TitleThe project name
Project NumberThe project code
ClientThe firm linked to the project
Start DateThe project start date
End DateThe project end date
FeeThe fixed fee (default), or the labor budget (configurable — see Fee Source)
Rate GroupThe rate schedule assigned to the project (when one is set)
Billing TypeAlways Role when a rate schedule is assigned
Is BillableDerived from the project's charge type — B (Billable) = true; otherwise false
StatusActive if the project is active; otherwise the configured "inactive project" status mapping
Is ArchivedWhen archive-on-inactive is enabled, projects with isactive = false are archived
PortfolioWhen configured, the project's Project Manager drives portfolio assignment
Created DateWhen the project record was created
Modified DateNot synced — Unanet's modify date on projects is unreliable

Project Manager

Mosaic does not populate a Project Manager field on the project. Instead, the PM is used to derive a Mosaic Portfolio when portfolioSource is set to Project Manager.


Phases

What Syncs to MosaicWhere It Comes From in Unanet A/E
Phase IDThe unique Unanet phase/task identifier
Phase TitleThe phase name
Phase NumberThe phase code
ProjectThe top-level project the phase belongs to
ParentThe parent project, or another phase if this is a nested sub-phase
Start Date / End DateThe phase start and end dates
FeeThe fixed fee (default), or the labor budget (configurable — same setting as projects)
Rate GroupThe rate schedule assigned to the phase (when one is set)
Is BillableDerived from the phase charge type — B (Billable) = true
StatusActive if the phase is active; otherwise the configured "inactive phase" status mapping
Is ArchivedAlways false (no archive-on-inactive setting for phases)

Phases in Unanet A/E are stored as project records with a non-null parentprojectid. Mosaic preserves multi-level nesting — a phase under another phase is parented to that phase rather than directly to the project.


Fee Source

Both projects and phases use the same configurable fee source.

Fee Source OptionWhat It Uses
Fixed FeeThe fixed fee on the project or phase (default)
Labor BudgetThe labor budget on the project or phase

Time Entries

What Syncs to MosaicWhere It Comes From in Unanet A/E
Time Entry IDThe unique timesheet line identifier
DateThe work date
HoursThe hours worked
EmployeeThe employee who logged the time
ProjectThe top-level project the time was logged against
PhaseThe phase the time was logged against (null if logged directly to the project)
DescriptionThe PM comments on the time entry
Hourly RateThe bill rate on the time entry
BillableDerived from the bill status — Billed or ReadyToBill = billable; DoNotBill = not billable
Created / ModifiedWhen the time entry was created and last modified

Roles

What Syncs to MosaicWhere It Comes From in Unanet A/E
Role IDThe unique Unanet job title identifier
Role NameA composite of the job title code and name: [jtcode]: jtname
Created / ModifiedWhen the job title was created and last modified

The composite name disambiguates job titles that share the same display name but have different codes. Description is not synced.


Rate Groups

What Syncs to MosaicWhere It Comes From in Unanet A/E
Rate Group IDThe unique Unanet rate schedule identifier
Rate Group NameThe rate schedule name
Active Entity TypeAlways Role — rate schedules group rates by job title
Is ArchivedDerived from isactive — inactive rate schedules are archived

Rates

What Syncs to MosaicWhere It Comes From in Unanet A/E
Rate IDA composite of rate group, role, and effective start date
Rate GroupThe rate schedule this rate belongs to
RoleThe job title the rate applies to
Rate AmountThe flat regular rate
DescriptionA composite display label: [ratename]: [[jtcode]: jtname] - YYYY-MM-DD
Start / End DatesThe effective date range for the rate
Is Cost RateDerived from isbillratefalse = cost rate, true = bill rate

Bill rates and cost rates flow through the same entity. A rate schedule entry with isbillrate = true becomes a bill rate in Mosaic; one with isbillrate = false becomes a cost rate. There is no separate cost rate sync.


Entity Rates

Entity Rates link a rate to a specific role within a rate group, with effective dates. Each rate row from the Rates entity also produces a corresponding Entity Rate.

What Syncs to MosaicWhere It Comes From in Unanet A/E
Entity Rate IDSame composite identifier as the linked Rate
RoleThe job title the rate applies to
Rate GroupThe rate schedule the rate belongs to
RateThe linked Rate record
Start / End DatesThe effective date range for the rate
Is Cost RateDerived from isbillrate — same as Rates

Bill Rates

Per-employee bill rates are synthesized from the employee's billrate field — Unanet A/E does not expose a dedicated bill rate history endpoint. When an employee's bill rate changes, Mosaic ends the prior rate (sets the previous record's end date to yesterday) and starts a new rate from today.

What Syncs to MosaicWhere It Comes From in Unanet A/E
EmployeeThe employee the bill rate applies to
Rate AmountThe current bill rate on the employee
Description{firstname} {lastname} - Employee Bill Rate - {startdate}
Start DateThe first sync uses 1900-01-01; subsequent rate changes start today

Bill Rate sync is triggered as a side effect of Member sync, not a separate endpoint call.


Departments

What Syncs to MosaicWhere It Comes From in Unanet A/E
Department IDThe unique Unanet org unit identifier
Department NameA composite of the org name and org path: {orgname} ({orgpath})
Created / ModifiedWhen the org unit was created and last modified

The full Org Unit record (including orgcode, orglevel, parentorgid, isactive, currencyid) is preserved in raw form for reference but is not surfaced as Mosaic fields.


Offices

What Syncs to MosaicWhere It Comes From in Unanet A/E
Office IDThe unique Unanet company address identifier
Office NameThe address name
AddressStreet (lines 1–3), city, state, country, zip
Created / ModifiedWhen the company address was created and last modified

Offices sync as standalone records but are not currently linked to employees in Mosaic.


Portfolios

Portfolios are synthesized from each project's Project Manager — Unanet A/E does not have a dedicated Portfolio entity. A portfolio is created per unique PM, and projects are assigned to that portfolio when the integration setting permits.

What Syncs to MosaicWhere It Comes From in Unanet A/E
Portfolio IDA composite of the PM employee identifier: Employee={empid}
Portfolio NameThe PM's display name

When this syncs

Portfolios only sync when portfolioSource is set to Project Manager. A project's portfolio is set only when the project's portfolio transfer mode is Transfer All (separate transfer modes apply for normal vs. Indirect-charge projects).


Configurable Settings

SettingPurposeDefault
projectPhaseFeeSourceSource for project/phase fee — FixedFee or LaborBudgetFixedFee
isActiveFalseMappingForProjectMosaic project status when Unanet isactive = falseProposal
isActiveFalseMappingForPhaseMosaic phase status when Unanet isactive = falseNotStarted
isArchivingInactiveProjectsWhether to archive inactive Unanet projects in Mosaicfalse
portfolioSourceProject Manager to drive portfolios from PM, or nonenone
projectPortfolioTransferModeTransfer all projects' portfolios, or none — for non-Indirect projectsTransferAll
indirectChargeProjectPortfolioTransferModeOverride transfer mode for Indirect-charge projects (chargetypecode = 'I')TransferAll

Adjust these via your Customer Success Manager.


Troubleshooting & FAQ

Why isn't an employee's role appearing in Mosaic?

Mosaic does not import per-member role assignments from Unanet A/E because Unanet does not store the start/end dates Mosaic requires. Roles still sync as standalone records — see Roles — and members must be assigned roles manually in Mosaic with defined date ranges.

Where does the project's Project Manager go in Mosaic?

The PM is not assigned to a Mosaic Project Manager field. When portfolioSource is set to Project Manager, the PM is used to derive a Mosaic Portfolio instead.

Why is the project's Modified Date blank in Mosaic?

Unanet's modifydate on Projects has been observed to be unreliable. Mosaic deliberately does not sync it, to avoid surfacing stale or incorrect timestamps.

Why do bill rate and cost rate share the same entity?

Unanet A/E rate schedules use a single isbillrate flag to distinguish bill rates from cost rates — both flow through the same Rate / Entity Rate sync. A row with isbillrate = false is a cost rate; true is a bill rate.

Are Offices linked to Members?

Not currently. Offices sync as standalone records but the Member record does not store an Office reference.

I need a data source or field that isn't listed here.

Any integration not listed in this documentation is considered a customization and is charged at an hourly rate. For more information, see Integration Requests.


Unanet Documentation Links

TopicLink
Unanet Help CenterUnanet Help
Unanet WebsiteUnanet

Related Documentation