Skip to main content

Revel to iPaaS.com Timesheet Mapping Documentation

How Revel timesheets map to iPaaS.com Timesheet and Timesheet Entry records — field mappings, filters, child collections, caveats, and integration flow.

Summary

Revel timesheets can be transferred into iPaaS.com through the Add/Update Revel Timesheet TO iPaaS.com mapping collection. The integration retrieves each timesheet entry from Revel on a polling schedule, or on demand through Manual Sync, and creates or updates the matching iPaaS.com Timesheet. Each transfer also produces one or two child Timesheet Entry records that split the shift into worked time and, when a break was taken, break time.

ID Format

Manual Sync ID Format

Enter the Revel Timesheet Entry ID — the system record identifier Revel assigns to the shift record.

External ID Format

After a successful transfer, iPaaS.com saves the Revel Timesheet Entry ID as the external ID on a dedicated external-ID record. That record is the primary match for every subsequent transfer of the same shift. The child Timesheet Entry records are linked through their parent and are not addressable on their own.

Deleted Record Support

Outbound delete is not part of this collection. It adds and updates records only. Delete mappings are not included in the default templates, and removing a timesheet entry in Revel does not remove the matching iPaaS.com Timesheet.

Custom Field Support

Revel custom fields are not supported by this integration; only the standard timesheet fields listed below are transferred.

Mapping Collection Status

Status: Enabled. A mapping filter is applied, but it restricts which records are processed rather than blocking all of them — see the filter in the Mappings section.

Trigger Events: Create, Update — detected on the integration's polling schedule.

Duplicate or Conflicting Mappings

The Add/Update Revel Timesheet FROM iPaaS.com collection writes iPaaS.com timesheets back into Revel. Before enabling both directions at once, review the mapping filters on each so a shift written by one direction does not immediately flow back through the other, and decide which system is the source of truth for labour data.

Supported Child Collections

Each transfer through this collection also dispatches the following child collections. Both take every value they write from the parent shift and are never triggered on their own.

  • Add/Update Revel Timesheet Entry TO iPaaS.com: records the worked portion of the shift, spanning the clock-in and clock-out times.

  • Add/Update Revel Timesheet Entry Break TO iPaaS.com: records the break portion of the shift, and only produces a record when the shift has a break recorded against it.

System Caveats

Revel Caveats

  • Timesheet records are read, not modified. This collection only retrieves data from Revel.

  • Break start time is not recorded. Revel records how long a break lasted but not when it began, so the break child entry reflects an accurate duration placed at the start of the shift.

iPaaS.com Caveats

  • The employee must be transferred first. A timesheet can only be attached to an employee already present and linked in iPaaS.com. Shifts for an unlinked employee are skipped silently — see the filter below.

  • Total hours are calculated. The hours value is derived from the clock-in and clock-out times with any recorded break subtracted, so it represents paid hours rather than elapsed time.

Integration Flow

  1. A timesheet entry is retrieved from Revel, either by a scheduled poll or by a Manual Sync using the Revel Timesheet Entry ID.

  2. The filter checks whether the entry's employee has already been transferred and linked in iPaaS.com. If not, the entry is skipped and transfers on a later run once the employee is present.

  3. The integration matches the entry to an existing iPaaS.com Timesheet by its saved external ID, creating a new Timesheet or updating the existing one.

  4. The worked-time child entry is produced for the shift.

  5. When the shift has a recorded break, the break child entry is produced as well.

Mappings

Add/Update Revel Timesheet TO iPaaS.com

iPaaS.com data type: Timesheet

Mapping Filter

GetSpaceportId(ExtractIdFromUri(Employee), "Employee", SpaceportSystemId) != null

Filter Description. Only timesheet entries whose Employee has already been transferred to iPaaS.com and linked are processed. The filter resolves the Revel employee on the entry to the matching iPaaS.com employee; when that lookup returns nothing — because the employee has not yet been transferred — the entry is skipped. Skipped entries are not errors and do not appear in the error log; they transfer on a later run once the employee is present. Run Add/Update Revel Employee TO iPaaS.com first.

This collection transfers the core shift from Revel to the iPaaS.com Timesheet.

Mapping Type

Source Field (Revel)

Destination Field (iPaaS.com)

Description

Dynamic Formula

GetSpaceportId(ExtractIdFromUri(Employee), "Employee", SpaceportSystemId)

EmployeeId

Required. Resolves the Revel employee on the shift to the linked iPaaS.com employee. iPaaS.com requires a valid employee on every Timesheet.

Field

ClockIn

StartDateTime

Optional. The shift's clock-in time. Revel always records one, so a value is present in practice.

Field

ClockOut

EndDateTime

Optional. The shift's clock-out time. Absent while a shift is still open.

Dynamic Formula

(multi-line — see below)

TotalHours

Optional. The calculated length of the shift, in hours, with any break subtracted. Absent while a shift is still open.

Field

Remarks

Notes

Optional. Free-text remarks recorded against the shift.

The TotalHours formula returns the shift length in decimal hours, subtracting the recorded break, and returns no value while the shift is still open:

if (string.isNullOrEmpty(ClockOut) || string.IsNullOrEmpty(ClockIn))
        return null;
var clockInDT = DateTime.Parse(ClockIn);
var clockOutDT = DateTime.Parse(ClockOut);
var timespan = clockOutDT - clockInDT;
if (BreakLength.HasValue)
        timespan = timespan.Subtract(TimeSpan.FromMinutes(BreakLength.Value));
return timespan.TotalMinutes / 60.0;

Add/Update Revel Timesheet Entry TO iPaaS.com (Child)

iPaaS.com data type: Timesheet Entry

Parent Collection: Add/Update Revel Timesheet TO iPaaS.com.

This child records the worked portion of the shift. Every value is derived from the parent shift.

Mapping Type

Source Field (Revel)

Destination Field (iPaaS.com)

Description

Dynamic Formula

DateTIme.Parse(Parent.ClockIn)

Date

Optional. The calendar date the shift falls on, taken from the parent clock-in time.

Static

"Scheduled Time"

EntryType

Required. Identifies the entry as worked time. Set by design; do not change — it distinguishes this entry from the break entry.

Dynamic Formula

Parent.ClockIn

StartTime

Optional. The shift's clock-in time.

Dynamic Formula

Parent.ClockOut

EndTime

Optional. The shift's clock-out time. Absent while a shift is still open.

Static

"Not Exported"

Status

Optional. The processing state the entry is created in.

Add/Update Revel Timesheet Entry Break TO iPaaS.com (Child)

iPaaS.com data type: Timesheet Entry

Parent Collection: Add/Update Revel Timesheet TO iPaaS.com.

Mapping Filter

Parent.BreakLength != null

Filter Description. An entry is produced only for shifts that have a break length recorded against them. Shifts taken without a break produce no record through this child, which is why some shifts result in one child entry and others in two. The filter also ensures a break length is available before the end of the break is calculated from it. It pins no environment-specific value and requires no change by subscribers or their MiSP.

This child records the break portion of the shift.

Mapping Type

Source Field (Revel)

Destination Field (iPaaS.com)

Description

Dynamic Formula

DateTime.Parse(Parent.ClockIn)

Date

Optional. The calendar date the shift falls on.

Static

"Break"

EntryType

Required. Identifies the entry as break time. Set by design; do not change — it distinguishes this entry from the worked-time entry.

Dynamic Formula

Parent.ClockIn

StartTime

Optional. The start of the break, placed at the shift's clock-in time because Revel does not record when the break began.

Dynamic Formula

(multi-line — see below)

EndTime

Optional. The end of the break, calculated by adding the recorded break length to the clock-in time.

Static

"Not Exported"

Status

Optional. The processing state the entry is created in.

The break EndTime formula adds the recorded break length to the shift's clock-in time, and returns no value when there is no clock-in:

if(!Parent.ClockIn.HasValue)
    return null;
return Parent.ClockIn.Value.AddMinutes(Parent.BreakLength.Value);

Error Handling

Errors are cataloged in the Revel Error Messages reference. On this inbound flow, a timesheet whose employee is not yet linked is skipped silently rather than reported as an error — see the filter description above and the Revel Integration Known Limitations article.

Testing & Validation

Test Scenarios

  • Transfer a Revel timesheet entry whose employee is already synchronized and confirm an iPaaS.com Timesheet is created with the expected start time, end time, and calculated hours, plus a worked-time child entry.

  • Transfer a shift that includes a break and confirm both a worked-time and a break child entry are created.

  • Transfer a shift for an employee that has not yet been synchronized and confirm the timesheet is skipped without an error.

  • Transfer an in-progress shift (no clock-out) and confirm the Timesheet is created with no end time and no total hours, then re-transfer after the shift closes and confirm both fill in.

  • Manually sync a specific timesheet by entering its Revel Timesheet Entry ID and confirm the transfer succeeds.

Validation Checklist

  • The employee referenced by the timesheet has been synchronized before the timesheet is transferred.

  • Shifts with a break produce two child entries; shifts without a break produce one.

  • Calculated total hours reflect paid time, with any break subtracted.

Related Documents

Did this answer your question?