Upcoming Update
This article contains information for an upcoming release and is subject to change.
The Arcoro Time and Sage Intacct integration allows you to sync relevant data between the two systems to help keep the data consistent between the two by eliminating needless data entry and potential typos by:
- Importing your employees, projects, and tasks from Sage Intacct into Arcoro Time.
- Importing your time data from Arcoro Time into Sage Intacct.
Table of Contents
How it Works
The integration syncs data in two directions. This helps load Arcoro Time with the appropriate entity data from Sage Intacct so time data will be properly attributed to your employees, projects, and tasks. If a job or cost code has not synced yet, time recorded against it cannot be matched on the way back.
Sage Intacct → Arcoro Time
This direction reads your relevant entities from Sage Intacct and creates or updates the matching records in Arcoro Time. Sage Intacct will be considered the system of record while Arcoro Time keeps the data up to date to match it. This sync covers departments, locations, labor classifications, business units, jobs, cost codes, unions, employees, and contractors. Each entity record carries a hidden Sage Intacct reference so future syncs of the same employee or job will be recognized and updated instead of creating a duplicate.
It is critical that data flows from Sage Intacct into Arcoro Time first. That is what lets your time data sent from Arcoro Time to Sage Intacct use the correct project and task. If a job or cost code has not synced from Sage Intacct into Arcoro Time, time recorded against it cannot be matched on the way back.
Arcoro Time → Sage Intacct
This direction takes the hours your employees have recorded in Arcoro Time for a pay period, groups them into one timesheet per person, and writes each timesheet into Sage Intacct - already matched to the employee, job, and cost code that came across in the Sage to Arcoro Time sync.
Timesheets are written as drafts. Nothing is posted or locked automatically - your payroll team reviews each timesheet in Sage Intacct and posts it when ready. This allows your organization to complete any internal processes/protocols before finalizing your payroll, ensuring that your payroll is kept safely within your control.
No entity data moves in this direction; employees, jobs, and cost codes must already exist in Sage Intacct.
How We Connect
Setup is handled once, by your implementation team, and does not require anything from you day to day. At a high level, they will:
- Connect to your Sage Intacct company using a web services login.
- Choose how locations are read, and which Sage Intacct dimensions hold union data (if you use unions).
- Map Sage Intacct time types (hourly, overtime, holiday, sick, and so on) to the matching Arcoro rate types.
- Map the "Time off" cost code to a real Sage Intacct cost code.
After that, syncs run on a schedule and keep everything aligned. The detailed field-by-field reference below is for administrators and power users who want to know exactly what maps to what.
Please Note
- Time posts as draft timesheets. The sync creates timesheets in draft state and never posts, locks, or unlocks them. Your team reviews and posts in Sage Intacct.
- One timesheet per person, per pay period. Each run covers a pay-period date window. Longer windows are read in pieces automatically.
- Existing timesheets update only while still in draft. Once a timesheet has been posted in Sage Intacct, the sync will not change it.
- Terminated workers drop off. Employees and contractors terminated before January 1 of the prior year, with no rehire, are not synced.
- A location can't be turned off while it's still in use. A location that is still an employee's primary location will not be deactivated; the affected employees are reported instead.
- A location's address is set once. Physical address is captured when a location is first created and is not changed on later syncs.
- "Time off" needs a real cost code. Sage Intacct doesn't recognize the "Time off" cost code, so during setup you map it to a valid Sage Intacct cost code.
- Records that fail a check are skipped, not guessed. If a job, cost code, or business unit can't be matched, that line is skipped and logged rather than posted to the wrong place.
Data Mapping Guide
The following tables will detail what data is read and imported between Sage Intacct and Arcoro Time. Data syncs in either direction can create or update records. Entities are matched by their Sage Intacct reference so they are never duplicated on later syncs.
Sage Intacct → Arcoro Time
- Employees & Contractors - The people who log time - names, contact info, address, hire dates, pay type. Contractors come across as people flagged as contractors.
- Jobs - Your Sage Intacct projects, including their structure of parent and child jobs.
- Cost Codes - The tasks within each job that labor is charged to. (Tasks not attached to a job are not synced.)
- Departments - Your organizational departments.
- Locations - Physical locations and their addresses.
- Business Units - Divisions or geographic offices - read from your Sage Intacct Location dimension.
- Labor Classifications - Labor classes used to categorize workers.
- Unions, Locals & Classes - Union information, when you use it - read from the Sage Intacct dimensions you designate during setup.
Employees
Contractors are excluded from this read. Workers terminated before Jan 1 of the prior year (no rehire) are skipped. Position, employee type, termination reason, and pay rates are read but not stored on the employee record.
| From Sage Intacct | In Arcoro Time | Notes |
|---|---|---|
| Employee ID | Employee Identifier | Match key: 50 characters max |
| First/Middle/Last Name | Name | First and last required |
| Emails & Phones | Work/Personal Contract | Phones must be 10 digits; invalid values dropped with a warning |
| Mailing Address | Home Address | Written only if line 1, city, state & ZIP present. |
| Birth Date & SSN | Birth Date & SSN | Stored as sensitive/masked |
| Hire/Termination Dates | Hire/Termination Dates | - |
| Pay Methods | Pay Type | Hourly or Salary |
| Department, business unit, labor class | Linked Records | Left unchanged and warned if no match |
Contractors
Sage Intacct has no separate contractor object - contracts are employees whose type is "Contractor" sharing the same person store as employees.
| From Sage Intacct | In Arcoro Time | Notes |
|---|---|---|
| Employee ID | Person Identifier | Match key; 50 characters max |
| Name, Address, Phones, Email | Contact Details | Only a work email is supported. |
| Birth date, SSN, Tax ID (EIN) | Identifiers | Stored as Sensitive/Masked |
| Hourly Rate | Hourly Pay Rate | Most recent non-expired hourly rate |
| Department, business unit, labor class | Linked records | Always mapped for contractors |
Jobs
| From Sage Intacct | In Arcoro Time | Notes |
|---|---|---|
| Project ID | Job Code/Identifier | Match key; 50 characters max |
| Project Name | Name | Required; over 150 characters is skipped |
| Start/End Date | Start/End Date | |
| Department | Linked Department | Left empty and warned if no match |
| Location | Business unit | Left empty if location is missing |
| Parent Project | Parent Job | One level; read up to 10 levels deep |
| Status | Active/Inactive | Active only when status is exactly "active" |
Cost Codes
| From Sage Intacct | In Arcoro Time | Notes |
|---|---|---|
| Task ID (+ Project) | Identifier | Combined with the project; 50 characters max |
| Task Name | Name | Required; 50 characters max |
| Task Status | Active/Inactive | In Progress/On Hold = Active Planned/Completed = Inactive |
| (project link) | - | Tasks with no job are not synced |
Departments
| From Sage Intacct | In Arcoro Time | Notes |
|---|---|---|
| Department ID | Code/Identifier | Match key; 50 characters max |
| Department Name | Name | Required |
| Status | Active/Inactive | "Active" or "Active non-posting" = Active |
Locations
| From Sage Intacct | In Arcoro Time | Notes |
|---|---|---|
| Location or Project ID | Identifier | Source depends on the location setup choice |
| Name | Name | Required; 100 characters max |
| Mailing/Ship-To Address | Physical Address | Set on create only; cannot change later |
| Status | Active/Inactive | Cannot deactivate while an employee's primary location |
Business Units
Sage Intacct has no "business unit" object - Arcoro reads your Location dimension as your business units.
| From Sage Intacct | In Arcoro Time | Notes |
|---|---|---|
| Location ID | Identifier | 50 characters max |
| Location name | Name | Required |
| Status | Active/Inactive | "Active" or "Active non-posting" = Active |
Labor Classifications
| From Sage Intacct | In Arcoro Time | Notes |
|---|---|---|
| Class ID | Identifier | Match key |
| Class Name | Name | Required; 200 characters max |
| Status | Active/Inactive | "Active" or "Active non-posting" = Active |
Unions, Union Locals & Union Classes
Each reads from a Sage Intacct construction dimension you designate during setup. Left unconfigured, none are read.
| From Sage Intacct | In Arcoro Time | Notes |
|---|---|---|
| Dimension ID | Identifier | Match key |
| Dimension Name | Name | Required; 150 characters max |
| Status | Active/Inactive | Active only when status is exactly "Active" |
Arcoro Time → Sage Intacct
- Time Cards - Approved hours for the pay period, grouped into one draft timesheet per person, split into regular, overtime, double-time, and unpaid hours - Each line tied to a job and cost code.
Timesheet
| From Arcoro Time | In Sage Intacct | Notes |
|---|---|---|
| Employee | Timesheet Employee | Must already exist in Sage Intacct |
| Pay Period Start | Begin Date | Required |
| Pay Period End | Posting Date | Required |
| (set by the sync) | State | Draft on create; one timesheet per person per pay period |
Time Entries
| From Arcoro Time | In Sage Intacct | Notes |
|---|---|---|
| Hours (Regular/OT/Double/Unpaid) | Quantity | One entry per non-zero bucket; rounded to the minute |
| Rate Type | Time Type | Via the Time Type Mapping; unsupported types skipped. |
| Work Date | Entry Date | Defaults to first day of the pay period for salaried |
| Job | Project Dimension | Must match an active project. |
| Cost Code | Task DImension | Must be active and on the project; "Time off" uses your mapped override. |
| Business Unit | Location Dimension | Must match a Sage Intacct location. |
| (set by the sync) | Billable | Always false. |
FAQs
- Do I still have to enter time twice?
No. Hours are captured once in Arcoro Time and sent to Sage Intacct automatically as draft timesheets.
- Where do I add a new employee or job?
In Sage Intacct. It's your system of record; new employees, jobs, and cost codes flow into Arcoro Time on the next sync.
- Why don't I see a job or cost code in Arcoro Time?
It may be inactive, missing required data (like a name over the length limit), a cost code not attached to a job, or excluded by a run filter. Records that fail a check are skipped and logged rather than partially synced.
- What happens to hours after they sync to Sage Intacct?
They arrive as a draft timesheet, one per person per pay period. Your payroll team reviews and posts it. The sync never posts or locks timesheets.
- Can I edit a timesheet after it syncs?
Yes, while it's still in draft -and a re-sync will keep updating a draft. Once you post it in Sage Intacct, the sync leaves it alone.
- Are contractors included?
Yes. Contractors sync as people flagged as contractors, and their field time comes back to Sage Intacct the same way employees' does.
- What about terminated employees?
Workers terminated before January 1 of the prior year, with no rehire, are not synced. More recent terminations still come across.
- How is "time off" handled?
Sage Intacct doesn't recognize the "Time off" cost code, so during setup it's mapped to a valid Sage Intacct cost code on the relevant job. If no mapping is set, no replacement is made.