Guides
Event catalogue
Every event ClockLap sends, 134 in all, grouped by area. Subscribe to exact names, a whole group such as timesheet.*, or * for everything.
✓ Building a payroll export? Subscribe to timesheet.approved and timesheet.reopened. Showing who's on site? time_entry.clocked_in and time_entry.clocked_out.
Clocking in and out# Event When punch.createdA clock-in, clock-out or break punch was recorded (by the app, a kiosk, a manager or the API). punch.rejectedA punch was refused, for example outside the geofence or with fake GPS. time_entry.clocked_inSomeone started a shift. time_entry.clocked_outSomeone ended a shift. time_entry.auto_closedA shift left open was closed automatically. break.startedA break started. break.endedA break ended. time_entry.attestedSomeone answered the clock-out questions. break.dueA break is due under the break rules. break_premium.waivedBreak premium: waived. break_premium.unwaivedBreak premium: unwaived.
Geofences# Event When geofence.enteredA phone entered a site’s geofence. geofence.exitedA phone left a site’s geofence. geofence.createdGeofence: created. geofence.updatedGeofence: updated. geofence.deletedGeofence: deleted.
Shifts (time entries)# Event When time_entry.createdA shift was added (by a manager, an assistant or the API). time_entry.updatedA shift’s times, site, project or notes changed. data.previous has the old values. time_entry.deletedA shift was deleted. time_entry.approvedA shift was approved. time_entry.flaggedA shift was flagged for review.
Correction requests# Event When edit_request.createdSomeone asked for a correction to their hours. edit_request.approvedEdit request: approved. edit_request.rejectedEdit request: rejected.
Time off# Event When time_off.requestedSomeone asked for time off. time_off.approvedTime off was approved. time_off.rejectedTime off: rejected. time_off.cancelledTime off: cancelled. time_off.balance_changedTime off: balance changed. holiday.updatedHoliday: updated.
Weekly patterns# Event When schedule.updatedSchedule: updated.
Scheduled shifts# Event When shift.createdShift: created. shift.updatedShift: updated. shift.publishedA schedule was published to the people on it. shift.cancelledShift: cancelled. shift.claimedShift: claimed. shift_request.createdShift request: created. shift_request.acceptedShift request: accepted. shift_request.approvedShift request: approved. shift_request.declinedShift request: declined. shift_request.cancelledShift request: cancelled.
Clients, projects and activities# Event When customer.createdCustomer: created. customer.updatedCustomer: updated. customer.archivedCustomer: archived. project.createdProject: created. project.updatedProject: updated. project.archivedProject: archived. activity.createdActivity: created. activity.updatedActivity: updated. activity.archivedActivity: archived.
Timesheets# Event When timesheet.submittedSomeone confirmed their hours for a pay period. timesheet.approvedA timesheet was approved. The usual trigger to send hours to payroll. timesheet.reopenedAn approved timesheet went back to open (hours changed or a manager reopened it). timesheet.lockedA pay period was locked: its hours can’t change. timesheet.unlockedTimesheet: unlocked. timesheet.exportedHours were exported.
Exceptions# Event When exception.raisedSomething needs a look: a missed clock-out, a late start, a punch outside the fence… exception.resolvedAn exception was closed.
People# Event When user.invitedSomeone was invited. user.activatedSomeone accepted their invite or was reactivated. user.updatedA person’s details changed. user.suspendedUser: suspended. user.archivedSomeone was archived (left). user.role_changedUser: role changed. user.locations_changedUser: locations changed. user.deletion_requestedUser: deletion requested. user.anonymizedUser: anonymized. email.bouncedEmail: bounced.
Phones# Event When device.registeredDevice: registered. device.revokedDevice: revoked. device.location_permission_changedDevice: location permission changed.
Locations# Event When location.createdLocation: created. location.updatedLocation: updated. location.archivedLocation: archived. location.settings_changedLocation: settings changed.
Site requests# Event When location_request.createdLocation request: created. location_request.approvedLocation request: approved. location_request.rejectedLocation request: rejected. location_request.cancelledLocation request: cancelled.
Workspace# Event When client.createdClient: created. client.updatedClient: updated. branding.publishedBranding: published. policy.updatedPolicy: updated. monitoring_policy.publishedMonitoring policy: published.
Single sign-on# Event When sso_connection.createdSso connection: created. sso_connection.updatedSso connection: updated. sso_connection.deletedSso connection: deleted. sso_domain.verifiedSso domain: verified. user.signed_in_with_ssoUser: signed in with sso.
Billing# Event When billing.trial_startedBilling: trial started. billing.invoice_finalizedBilling: invoice finalized. billing.payment_method_addedBilling: payment method added.
API keys and webhooks# Event When api_key.createdApi key: created. api_key.revokedApi key: revoked. webhook_endpoint.createdWebhook endpoint: created. webhook_endpoint.updatedWebhook endpoint: updated. webhook_endpoint.disabledWebhook endpoint: disabled.
Payroll, HR and accounting connections# Event When connection.connectedConnection: connected. connection.disconnectedConnection: disconnected. connection.errorConnection: error. connection.credentials_expiringConnection: credentials expiring. payroll.run_readyPayroll: run ready. payroll.run_sentHours were sent to a connected payroll system. payroll.run_failedPayroll: run failed. people_sync.completedPeople sync: completed. accounting.invoice_syncedAccounting: invoice synced. accounting.sync_failedAccounting: sync failed. field_service.jobs_importedField service: jobs imported. field_service.hours_sentField service: hours sent.
Reports and exports# Event When export.completedAn export finished and is ready to download. export.failedExport: failed. report.scheduled_sentReport: scheduled sent.
Insights# Event When insights.digest_readyInsights: digest ready.
Invoices and payments# Event When invoice.createdInvoice: created. invoice.updatedInvoice: updated. invoice.sentInvoice: sent. invoice.viewedInvoice: viewed. invoice.paidAn invoice was paid in full. invoice.voidedInvoice: voided. payment.recordedA payment was recorded on an invoice. payment.failedPayment: failed. payment.refundedPayment: refunded. payments.account_connectedPayments: account connected. payments.account_disconnectedPayments: account disconnected.
Event When media.uploadedMedia: uploaded. media.deletedMedia: deleted. note.createdNote: created. note.updatedNote: updated. note.deletedNote: deleted. voice_note.readyVoice note: ready. voice_note.failedVoice note: failed. ai.connectedAi: connected. ai.disconnectedAi: disconnected. ai.limit_reachedAi: limit reached.
Exception types#
exception.raised carries one of these in data.object.type:
Type missed_clock_outmissed clock out latelate early_leaveearly leave outside_fenceoutside fence mock_locationmock location long_shiftlong shift overtime_thresholdovertime threshold clock_skewclock skew low_accuracylow accuracy unassigned_locationunassigned location break_missedbreak missed break_shortbreak short break_latebreak late attestation_flagattestation flag anomalyanomaly
Test event#
webhook.test is sent only when you press Send test event (or call the test endpoint). Its data.object.message is “Hello from ClockLap. Your endpoint is reachable.”
Previous Webhooks Next AI assistants