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:
Open the TimeMoto developer options.
Create the webhook configuration for the Rotageek endpoint confirmed for your environment.
Record the webhook shared secret securely.
Open the Time and Attendance integration settings in Rotageek.
Enter the same shared secret in Rotageek.
Add a notification email if required by the setup.
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:
Confirm the SFTP incoming folder.
Confirm the archive folder, if used.
Confirm the file name or prefix used to identify files.
Confirm the date and time formats.
Confirm the customer Group ID is configured for the pickup process.
Confirm the import runs on the expected schedule.
Prepare a small CSV test file.
Place the file in the agreed SFTP folder.
Wait for at least one import cycle.
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:
StartTimeis used as the actual start time.EndTimeis used as the actual end time.UnpaidBreakDurationis 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 | 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.
