Skip to main content

TimeMoto Integration with Rotageek

A comprehensive guide for the TimeMoto integrations with Rotageek

Written by Kent

TimeMoto can send employee clockings to Rotageek so that actual working time appears on Rotageek timesheets.

Use this article to:

  • Understand how the integration works

  • Confirm which setup applies to your organisation

  • Configure the integration correctly

  • Check why a clocking is missing or incorrect

  • Gather the right information before contacting Support

Quick summary

Question

Answer

What does the integration do?

Sends TimeMoto clock-in and clock-out data into Rotageek.

Which direction does data travel?

One way only: TimeMoto → Rotageek.

What connection methods are available?

TimeMoto Cloud Plus webhooks or TimeMoto-formatted CSV file import, depending on the tenant setup.

What identifies an employee?

Employee Number in the cloud setup, or UserId in the CSV setup. Both must match the Rotageek Company ID exactly.

How often are webhooks processed?

TimeMoto sends events as they occur, subject to normal delivery time.

How often are CSV files processed?

The documented file-import process runs every 15 minutes.

What clocking sequence is supported?

Clock in followed by clock out.

Who should be contacted first?

Check TimeMoto and the identifier mapping first. Contact Rotageek when the event is confirmed in TimeMoto but is still missing or incorrect in Rotageek.


How the integration works

TimeMoto is a fixed-hardware clocking solution. Employees use registered TimeMoto clocks to clock in and out.

The integration sends clocking information from TimeMoto into Rotageek. Rotageek uses the information to create or update Time and Attendance records and, where applicable, timesheet entries.

TimeMoto → Rotageek Time and Attendance → Rotageek timesheet

Rotageek does not send clockings back to TimeMoto. This means that an action completed in Rotageek does not update the employee’s clocking state in TimeMoto.

Data sent to Rotageek

The integration can send:

  • Employee identifier

  • Work date

  • Clock-in time

  • Clock-out time

  • Unpaid break duration, where applicable

The employee identifier is essential. Rotageek uses it to find the correct employee. If the identifier is missing or does not match, the clocking cannot be reliably associated with the correct person.


Which connection method do I use?

Cloud webhook setup

The standard cloud setup uses a TimeMoto Cloud Plus subscription. TimeMoto sends clock-in and clock-out events to Rotageek through a webhook as they happen.

Use this setup when your project has configured:

  • TimeMoto Cloud Plus

  • Registered TimeMoto clocks

  • A TimeMoto integration user with the required access

  • A webhook pointing to Rotageek

  • The same shared secret in TimeMoto and Rotageek

CSV file-import setup

Some customers use a TimeMoto-formatted CSV file instead. The file is placed in an agreed SFTP folder and collected by Rotageek’s import process.

The documented TimeMoto file-import process runs every 15 minutes. Processed files may be moved to an archive folder, depending on the deployment.

Use this setup when your project has configured:

  • An agreed CSV format

  • An SFTP folder and archive folder

  • A file name or prefix for the import

  • The required customer Group ID and file-import settings

  • A scheduled pickup process

The CSV setup is implementation-specific. The required columns and date format must be confirmed for your tenant.


Before setting up the integration

Confirm the following:

  • Rotageek Time and Attendance is enabled.

  • The connection method is confirmed: webhook or CSV import.

  • A TimeMoto Cloud Plus subscription is active if webhooks are being used.

  • Employees exist in both TimeMoto and Rotageek.

  • The employee identifier is stable and agreed between both systems.

  • Physical TimeMoto clocks are registered if clock devices are being used.

  • A small group of employees and shifts is available for testing.

  • Any mixed use of TimeMoto and Rotageek app or web clocking has been agreed and tested.


Setup instructions

Step 1: Set up TimeMoto administration

Create the customer’s TimeMoto admin account and nominate the person responsible for TimeMoto administration and subscription billing.

If the cloud webhook setup is being used, select the Plus plan. The current setup documentation identifies Plus as the TimeMoto plan that supports the integration.

Step 2: Create the TimeMoto integration user

Create the TimeMoto user account required for the integration. Manager access may be required so that the integration team can access the developer or webhook settings.

Step 3: Add employees and departments

Create or bulk upload the employees and departments required in TimeMoto. Confirm that employees are available in the TimeMoto administration portal and on the relevant clocks.

Step 4: Register physical clocks

Register each physical clock in the TimeMoto admin portal using its serial number. Confirm that every production clock appears in TimeMoto and is ready to send clocking events.

Step 5: Match employee identifiers

The identifier mapping depends on the connection method:

Connection method

TimeMoto value

Rotageek value

Cloud webhook

Employee Number

Company ID

CSV file import

UserId

Company ID

The values must match exactly. Check for:

  • Missing digits

  • Extra spaces

  • Old employee numbers

  • Duplicate identifiers

  • Different identifiers for the same person in each system

A correct match is required before testing the connection.

Step 6A: Configure a cloud webhook

Complete these steps when the tenant uses the Cloud Plus webhook setup:

  1. Open the TimeMoto developer options.

  2. Create the webhook configuration for the Rotageek endpoint confirmed for your environment.

  3. Record the webhook shared secret securely.

  4. Open the Time and Attendance integration settings in Rotageek.

  5. Enter the same shared secret in Rotageek.

  6. Add a notification email if required by the setup.

  7. Test a clock-in and clock-out from a registered TimeMoto clock.

The current TimeMoto configuration guide shows this Rotageek endpoint for the standard setup:

https://publicapi.rotageek.com/api/v1/webhooks-consumer/time-and-attendance

Implementation teams should use the endpoint confirmed for the customer’s environment rather than copying settings from another tenant.

Step 6B: Configure a CSV file import

Complete these steps when the tenant uses the file-import setup:

  1. Confirm the SFTP incoming folder.

  2. Confirm the archive folder, if used.

  3. Confirm the file name or prefix used to identify files.

  4. Confirm the date and time formats.

  5. Confirm the customer Group ID is configured for the pickup process.

  6. Confirm the import runs on the expected schedule.

  7. Prepare a small CSV test file.

  8. Place the file in the agreed SFTP folder.

  9. Wait for at least one import cycle.

  10. Check the resulting Rotageek timesheet.

The technical setup of the file importer is performed by Rotageek. It depends on group file-import settings, SFTP configuration, pickup functions, file type, and date format.

CSV file format

The documented minimum fields for the standard TimeMoto import are:

UserId,Date,StartTime,EndTime,UnpaidBreakDuration

A broader TimeMoto file may contain:

Username,UserId,Department,Date,StartTime,EndTime,Duration,DurationIncludingBreaks,UnpaidBreakDuration

Some later implementations support a reduced field set, such as:

UserId,Date,StartTime,EndTime

Because file requirements can vary by implementation, always use the format configured for your tenant.

CSV requirements

The file should:

  • Be saved as CSV, not XLS.

  • Use the agreed column headings.

  • Include the correct employee identifier.

  • Use the agreed date format.

  • Use valid time values.

  • Include unpaid break duration when a break should be deducted.

  • Contain no blank trailing rows.

  • Contain no malformed or unexpected values.

Username and Department are not used for employee matching by the standard TimeMoto-formatted importer described in the source material.


Break calculation

The importer uses UnpaidBreakDuration when calculating paid time from the start and end times.

If the break value is omitted, the documented behaviour is to treat it as zero. Rotageek does not automatically apply the employee’s scheduled break through this import route.

For example:

Paid time = EndTime − StartTime − UnpaidBreakDuration

If imported hours are too high, check the unpaid break value first.


How clockings appear in Rotageek

Webhook clockings

A webhook clocking is sent from TimeMoto to Rotageek when the event occurs. Rotageek uses the employee identifier to find the employee and creates or updates the relevant Time and Attendance record.

Imported clockings

For a CSV import, the documented behaviour is:

  • StartTime is used as the actual start time.

  • EndTime is used as the actual end time.

  • UnpaidBreakDuration is used as the unpaid break.

  • Paid duration is calculated from those values.

  • The imported values are written to actual time and may create timesheet entries.

  • The file is processed on the configured schedule and may then be archived.

Imported time does not behave exactly like native live clocking in every reporting context. Confirm the expected reporting behaviour during implementation.

Clocking sequence and mixed clocking

The standard integration supports a clean in/out sequence:

Clock in → Clock out

For the most reliable result, use one clocking method at each location.


If TimeMoto is used with Rotageek app or web clocking

A mixed setup requires specific configuration and testing:

  • Do not assume that a TimeMoto clock-in followed by a Rotageek clock-out keeps both systems in sync.

  • A Rotageek clock-out does not send a matching clock-out back to TimeMoto.

  • TimeMoto clocks do not provide photo or geofence information.

  • At locations using mixed clocking, disable Rotageek settings that require a photo or geofence for the affected clockings.

  • Test both directions before rollout: TimeMoto in / Rotageek out, and Rotageek in / TimeMoto out, if both are required.

For a predictable rollout, use one clocking method per location unless Rotageek has explicitly validated the mixed design for your tenant.


Testing before rollout

Run a small end-to-end test before enabling the integration for a full site.

Test data

Use a small number of employees and test:

  • Clock-in

  • Clock-out

  • An unpaid break, where applicable

  • More than one location or clock, if the production setup requires it

  • The intended clocking method or mixed method

Expected result

For each test employee, confirm:

  • The event appears in TimeMoto.

  • The employee identifier matches the Rotageek Company ID.

  • The event reaches Rotageek through the expected connection method.

  • The correct work date is used.

  • The actual start and end times are correct.

  • The unpaid break is deducted correctly.

  • The expected timesheet entry is created or updated.

  • The result is correct in the customer’s reporting process.

Only move to a full site or full file after the controlled test succeeds.


Troubleshooting guide

Follow these checks in order. Start with TimeMoto and the connection method before investigating Rotageek processing.

1. The clocking is missing from Rotageek

Check the following:

  • Confirm the clocking is visible in TimeMoto.

  • Confirm whether the tenant uses webhooks or CSV import.

  • Check the employee identifier.

  • Check that the clock is registered, or that the file reached the correct SFTP folder.

  • Allow the expected processing time.

  • Check the timesheet status for locks, sign-off, or conflicting records.

  • Retest with one employee and one shift.

If the clocking is not visible in TimeMoto, the issue is upstream of Rotageek. Check the TimeMoto device, employee setup, and TimeMoto configuration first.

2. The employee cannot be matched

For a cloud webhook, compare:

TimeMoto Employee Number = Rotageek Company ID

For a CSV import, compare:

CSV UserId = Rotageek Company ID

The comparison must be exact. Correct any missing digits, spaces, old values, or duplicates, then retest with one employee.

For file imports, also check for duplicate Company IDs, including inactive users. The source troubleshooting notes identify duplicate IDs as a cause of the import process stopping in a documented deployment.

3. The clocking exists in TimeMoto but not Rotageek

First identify the connection method.

For webhooks, check:

  • The relevant clock is registered.

  • The webhook is still enabled.

  • The webhook points to the correct Rotageek endpoint.

  • The shared secret matches in both systems.

  • The event is being sent after the clocking is recorded.

For CSV imports, check:

  • The file was placed in the agreed SFTP folder.

  • The file name or prefix is correct.

  • The file is in the correct customer directory.

  • The file is CSV rather than XLS.

  • The 15-minute processing window has passed.

  • The file was archived or generated an error result.

  • The customer Group ID and file-import configuration are present.

4. The clock-out cannot be found

Check whether:

  • The employee clocked in first.

  • The previous clock-in is still open.

  • The employee clocked in and out using different systems.

  • Duplicate or unexpected events were generated.

  • The clock-out was sent for the correct employee identifier.

A repeated “Time and Attendance record not found” message commonly points to an out-of-sequence event or a missing open record. Correct the clocking pattern and retest with one employee.

5. The CSV file is not processed

Check:

  • The file is CSV, not XLS.

  • The file name and folder are correct.

  • The file contains the configured column headings.

  • The date format is correct.

  • The time values are valid.

  • There are no blank trailing rows.

  • The file is accessible in SFTP.

  • Any required IP allowlisting is still valid.

  • The expected 15-minute processing window has passed.

  • The customer Group ID is configured for the pickup process.

The source material identifies blank rows and invalid time formats as causes of file-processing failures.

6. The file processes but some entries are missing

Check for:

  • Incorrect or duplicate employee identifiers

  • Employees missing from one of the systems

  • A locked or signed-off timesheet

  • Conflicting timesheet entries

  • Unpublished journals for the affected week and employee

  • Approved journals without a corresponding timesheet entry

  • Time and Attendance records created without corresponding timesheet entries

For a documented file-import deployment, conflicting timesheet and journal states prevented imported records from being created or updated correctly. Resolve the underlying timesheet or journal state before rerunning the affected lines.

7. Rotageek shows the wrong time

Compare the TimeMoto timestamp with the Rotageek location timezone.

Check:

  • Whether the source value is UTC or local time.

  • The timezone configured for the Rotageek location.

  • Whether daylight-saving time applies on the event date.

  • Whether the employee and shift are associated with the correct location.

A documented example shows a file value of 05:22 UTC displaying as 06:22 in Rotageek for a UK location during British Summer Time. The same source value may display differently for a location in another timezone.

8. Paid hours are incorrect

Check UnpaidBreakDuration first.

Confirm that:

  • The break value is present when a break should be deducted.

  • The value uses the configured format or unit.

  • The file did not omit the break value.

  • The expected calculation is start time less end time less unpaid break.

If the break is omitted, the importer may treat it as zero rather than applying the scheduled break.

9. One imported record covers consecutive shifts

The source material identifies a limitation where one imported Time and Attendance record is associated with two consecutive shifts. This can cause an exception because the same Time and Attendance record cannot be associated with two different shifts.

The documented supported pattern is one full shift containing the complete period, with separate tasks and a break where required. For example:

One shift: 09:00–17:00 Task 1: 09:00–10:00 Break: 10:00–10:15 Task 2: 10:15–17:00

If the customer needs a different structure, ask the Rotageek technical team to confirm whether the shift and import pattern are supported.

10. Mixed clocking fails at a location

Check whether the location requires:

  • A photo when clocking in

  • A geofence

TimeMoto devices do not provide photo or geofence information. Disable these controls for locations using TimeMoto-driven clockings, then retest the complete journey.

Also confirm that employees are not clocking in with one method and out with another unless the mixed setup has been explicitly tested.


Symptom-to-action table

Symptom

Check first

Likely next action

Clocking is not visible in Rotageek

Confirm it exists in TimeMoto, then check the identifier and connection method.

Correct the mapping or connection and retest.

Employee cannot be identified

Compare Employee Number or UserId with Company ID.

Correct the identifier and retest one employee.

Clock-out error

Check for a missing clock-in, open record, duplicate event, or mixed method.

Restore a clean in/out sequence and retest.

CSV file is not collected

Check folder, filename, CSV format, SFTP access, Group ID, and processing time.

Correct the file or configuration and wait for the next cycle.

Some CSV rows are missing

Check identifiers, duplicate IDs, journals, locks, sign-off, and conflicts.

Resolve the blocking record and rerun only the affected lines where appropriate.

Rotageek shows a different time

Check UTC/local time, timezone, daylight saving, and location.

Confirm the expected conversion with the implementation team.

Imported hours are too high

Check UnpaidBreakDuration.

Add or correct the unpaid break and rerun the affected data.

Record spans two consecutive shifts

Check whether one clocking record is being applied to two shifts.

Use a supported single-shift structure or contact Rotageek technical teams.

Mixed clocking fails

Check photo and geofence settings.

Disable incompatible controls and retest both clocking methods.


Information to collect before contacting Support

Provide as much of the following as possible:

  • Employee name

  • Employee identifier

  • Location

  • TimeMoto clock name or device serial number

  • Date and exact time of the event

  • Timezone

  • Whether the event was a clock-in or clock-out

  • Whether the setup uses webhooks or CSV import

  • Whether the issue affects one employee or multiple employees

  • Screenshot from TimeMoto showing the clocking

  • Screenshot from Rotageek showing the missing or incorrect result

  • Exact error message, if one was shown

For a CSV issue, also include:

  • Filename

  • SFTP folder

  • Date and time the file was uploaded

  • Header row or column list

  • One sample row for the affected employee

  • Whether the file was archived

  • Whether the 15-minute processing window passed

For a webhook issue, also include:

  • TimeMoto clock name or serial number

  • Event timestamp

  • Employee identifier

  • Whether the event was a clock-in or clock-out

  • Any delivery or authentication error

  • Confirmation that the webhook endpoint and shared secret were checked


When to contact TimeMoto

  • You cannot access the TimeMoto cloud setup.

  • The required TimeMoto subscription or feature is unavailable.

  • Employees or departments do not load correctly in TimeMoto.

  • A physical clock does not register correctly.

  • A clocking appears on the device or in TimeMoto but is not being sent onwards.

Include the TimeMoto screenshot, clock name or serial number, employee identifier, and event timestamp.

When to contact Rotageek

  • The employee exists in both systems.

  • The employee identifier matches exactly.

  • The clocking is visible in TimeMoto.

  • The webhook or SFTP delivery method has been checked.

  • The expected processing window has passed.

  • The record is still missing or incorrect in Rotageek.

  • Rotageek shows the wrong time, break deduction, or timesheet result.

  • Repeated webhook errors continue after the customer-side checks.

  • A CSV file reached the agreed SFTP location but the data did not post correctly.

Rotageek may need to investigate inbound mapping, event handling, import processing, timesheet creation, journal or timesheet conflicts, or timezone logic.


Known limitations and implementation notes

  • The integration is one way only: TimeMoto sends data to Rotageek.

  • The standard clocking sequence is clock in followed by clock out.

  • Mixed TimeMoto and Rotageek clocking requires location configuration and end-to-end testing.

  • TimeMoto devices do not provide photo or geofence information.

  • Cloud webhook and CSV file-import deployments have different setup and processing behaviour.

  • CSV file requirements can vary by tenant, so use the configured file format.

  • Omitting the unpaid break from a CSV file may result in a zero break rather than the scheduled break.

  • Imported time is written to actual time and may not behave exactly like native live clocking in every report.

  • One imported Time and Attendance record should not be associated with two consecutive shifts in the standard pattern.

  • File-import processing depends on customer Group ID, SFTP settings, pickup configuration, file type, and date format.

  • The documented file-import process runs every 15 minutes.

Did this answer your question?