Skip to main content

Clockify to iPaaS.com Employee Mapping Documentation

How Clockify workspace members are transferred to iPaaS.com as Employee records by webhook, scheduled poll or manual sync, how they are matched by email to existing employees, and which fields an HR or payroll system keeps.

Summary

Clockify workspace members can be transferred to iPaaS.com as Employee records (Add or Update) through webhook triggers, a scheduled member poll or Manual Sync. Each transfer sends the member's email address, first and last name, profile picture link and workspace status (custom field Clockify Status); a member who is not yet linked is matched by email to an employee that already exists in iPaaS.com, which then keeps its own names and picture. Employees are a prerequisite for timesheets: the Add/Update Clockify Timesheet TO iPaaS.com collection links every timesheet to the employee of its member and sends the member first when needed.

ID Format

Manual Sync ID Format

Enter the member's Clockify user id on the iPaaS.com Manual Sync page: a 24-character id made of the digits 0 to 9 and the letters a to f (example: 6aebacf031fcef66b9100231).

External ID Format

After a successful transfer, iPaaS.com saves the Clockify user id as the employee's external ID, on the dedicated external-ID record iPaaS.com keeps for this integration. This link is the match for every later transfer of the member and for every timesheet of the member. The email address is not the external ID: the integration uses it only once, to link a member who has no link yet to an employee that already exists (see Matching by Email).

Deleted Record Support

Delete is not supported. This integration does not act on a member's removal from the Clockify workspace: the iPaaS.com employee is not removed or changed, and stays as it was last sent. Deactivate members in Clockify instead of removing them, so Clockify Status changes to INACTIVE. A transfer through a collection for the FROM iPaaS.com direction, including deletes, stops with CLKF-BIZL-1004.

Mapping Collection Status

  • Status: Enabled

  • Trigger Events: the webhook triggers USER_JOINED_WORKSPACE, USER_DEACTIVATED_ON_WORKSPACE and USER_ACTIVATED_ON_WORKSPACE, turned on in the subscription's Inbound Data Flows section; the poll scope member/poll, run by a scheduled poll event; and a timesheet whose member is not linked yet. No automatic transfers occur until the triggers are turned on or the poll event is scheduled. Manual Sync is always available.

Trigger

What it sends

USER_JOINED_WORKSPACE (webhook)

A member who joins the workspace.

USER_DEACTIVATED_ON_WORKSPACE (webhook)

A deactivated member: Clockify Status changes to INACTIVE.

USER_ACTIVATED_ON_WORKSPACE (webhook)

A reactivated member: Clockify Status changes back to ACTIVE.

member/poll (scheduled poll event)

The workspace's members, each run (except a member who was never linked and is invited or declined). Changed emails and names arrive this way.

Timesheet prerequisite

A member who is not linked yet, sent before their timesheet.

When you turn a webhook trigger on, the integration creates the matching webhook in Clockify. After turning a trigger off, check the webhook list in Clockify's workspace settings and delete any webhook the integration left. Whether a transfer adds or updates an employee depends on whether the member is already linked, not on which trigger fired.

Duplicate or Conflicting Mappings

There is no collection in the opposite direction: Clockify members are not created, changed or removed FROM iPaaS.com by this integration. If you add a second Employee TO iPaaS.com collection, make the two filters leave each other's members out, so that each member is sent by one collection only.

Matching by Email

This collection has no collision handling setting. Matching is built into the integration: when a member who is not yet linked passes the collection's filter, the integration searches iPaaS.com for employees with the member's email address.

  • Exactly one employee: the member is linked to it, and the transfer updates that employee instead of adding a second one. That employee keeps its first name, last name and picture.

  • No employee: the transfer adds a new employee.

  • One employee, already linked to another Clockify member (for example because the employee's email in iPaaS.com was changed to this member's): the transfer stops with CLKF-BIZL-1006, this member is not linked, and the employee stays linked to the other member (see Error Handling).

Unmapped Fields

iPaaS.com replaces the whole employee on each update. Every standard Employee field (email address, first name, last name and picture link) is mapped in this collection, and the first name, last name and picture link formulas write back the value the employee already has (through DestinationValue, the employee as it is before the transfer), so an HR or payroll system's values are kept. If subscribers or their MiSP replace those formulas, Clockify's values overwrite the employee's on every transfer.

Supported Child Collections

None. This integration sends no employee addresses, so this collection has no child collection.

System Caveats

Clockify Caveats

  • Rate limiting: Clockify allows 30 API requests per hour on the Free plan, 20 per second on the Basic, Standard and Pro plans, and 50 per second on Enterprise. When the limit is reached, the transfer stops with CLKF-EXTN-1002. The code and iPaaS.com's message that the transfer will be retried later appear in the transfer's activity log; no error is added to the Error Logs. While the limit lasts, iPaaS.com also holds this subscription's other transfers in the same direction. If the record hasn't arrived an hour or so after the limit frees up, resend it with Manual Sync. On the Free plan the hourly allowance runs out quickly, because each member poll reads and sends the workspace's members.

  • Webhook limit: the Free plan allows 3 webhooks per workspace; the Basic, Standard and Pro plans allow 10 per Clockify user (the owner of the API key) and 100 per workspace; Enterprise allows 100 per user and 300 per workspace. If the three member triggers would pass the limit, schedule member/poll instead.

  • Changed emails and names: the integration has no trigger for them; they arrive with the next member/poll run. A changed name updates the employee only when the employee has no name of its own.

  • One name field: the integration reads a member's name as one field. For a new employee, the first name is everything before the last space and the last name is the last word ("Mary Ann Smith" gives "Mary Ann" and "Smith"); a one-word name has no last name.

  • Invited and declined members: an invited or declined member who was never sent to iPaaS.com is not added: nothing is sent and no error is added to the Error Logs. Once an invited member joins, the next transfer of that member (a trigger or member/poll) sends them. Once a member is linked, a later change to one of these statuses is written to Clockify Status. A deactivated member is always sent, with Clockify Status INACTIVE.

  • Rates depend on the plan: member billable rates need a Clockify Basic plan or higher, and cost rates a Pro plan or higher; on other plans, validate what these fields hold in a staging environment before relying on them in production.

The plan limits above are as published by Clockify (see External References), read 2026-11-04.

iPaaS.com Caveats

  • Clockify Status custom field: the Employee custom field Clockify Status (text) must exist in your iPaaS.com company with exactly this name before the first transfer. If it doesn't, create it as described in the Clockify Installation Instructions.

  • Required employee fields: iPaaS.com refuses an employee without an email address, or with neither a first name nor a last name.

  • Every poll sends the members again: each member/poll run transfers the workspace's members again, so expect one update per member per run.

Setup Requirements

The integration-wide setup (the API Key, Workspace Id and the other subscription settings) is in the Clockify Installation Instructions and Clockify Connections and Settings articles. For this collection:

  1. Check that the Employee custom field Clockify Status (text) exists in your iPaaS.com company, and create it if it doesn't.

  2. Review the collection's filter, keeping every member whose time you send to iPaaS.com.

  3. In the subscription's Inbound Data Flows section, turn on the member webhook triggers your Clockify plan allows, and create a scheduled poll event for member/poll, for example once a day.

Integration Flow

  1. Trigger. A webhook trigger, a member/poll run, a timesheet whose member is not linked, or Manual Sync names a Clockify user id. A poll run lists the workspace's members and transfers each one in turn.

  2. Read the member. The integration reads the member's name, email and picture from their Clockify profile, and their workspace status and rates from the workspace's member list.

  3. Skip members who are gone or never joined. A member who is not in the workspace (removed, or an id from another workspace) is not sent, and no error is added to the Error Logs. An invited or declined member who was never linked is not sent, and no error is added to the Error Logs.

  4. Filter. The collection's filter decides whether the member is sent. A member the filter leaves out is skipped without an error and is not linked by email.

  5. Link by email. When the member is not yet linked, the integration links them to the one iPaaS.com employee with the same email, if there is exactly one. When that employee is already linked to another Clockify member, the transfer stops with CLKF-BIZL-1006.

  6. Map and write to iPaaS.com. The mappings build the employee; the first name, last name and picture link keep the employee's current values when it has them. iPaaS.com adds the employee when the member is not linked, or updates the linked employee, and the Clockify user id is saved as the employee's external ID.

Mappings

Add/Update Clockify Employee TO iPaaS.com

iPaaS.com data type: Employee

Mapping Filter

// Every Clockify workspace member is sent; an invited, declined or removed member only once linked.
// To leave people out, return false for them, for example: return !Email.EndsWith("@contractor.example");
return true;

Filter Description: The filter returns true, so every member it receives is sent. The integration does not send a member who is invited or declined and was never linked, or a member who is no longer in the workspace, so the filter never sees them (see Integration Flow). A member the filter leaves out is not linked by email. To leave people out, return false for them; the commented example sends everyone except members whose email ends with @contractor.example. A member the filter leaves out is skipped without an error, and a timesheet for that member then stops with CLKF-NFND-1003, so keep every member whose time you send to iPaaS.com.

Description: Transfers Clockify workspace members to iPaaS.com employees with their email, names, picture and workspace status, keeping the names and picture an existing employee already has.

Field Mapping Table

Mapping Type

Source Field (Clockify)

Destination Field (iPaaS.com)

Description

Field

MembershipStatus

Clockify Status (Custom Field)

Recommended. The member's workspace status: ACTIVE, or INACTIVE when deactivated in Clockify (PENDING or DECLINED for a member already linked). It follows deactivation and reactivation on the same employee. The custom field must exist in your iPaaS.com company.

Field

Email

EmailAddress

Required. The member's email address (their Clockify login). iPaaS.com refuses an employee without one, and it is how a member who is not yet linked is matched to an existing employee. Changed emails arrive by member/poll.

Dynamic Formula

return DestinationValue != null && !string.IsNullOrWhiteSpace(DestinationValue.FirstName) ? DestinationValue.FirstName : FirstName(Name);

FirstName

Required. Keeps the employee's first name when it has one; otherwise everything before the last space of the Clockify name ("Mary Ann Smith" gives "Mary Ann"; a one-word name is used whole). iPaaS.com refuses an employee with neither a first name nor a last name.

Dynamic Formula

return DestinationValue != null && !string.IsNullOrWhiteSpace(DestinationValue.LastName) ? DestinationValue.LastName : LastName(Name);

LastName

Recommended. Keeps the employee's last name when it has one; otherwise the last word of the Clockify name ("Smith"). A one-word name gives no last name.

Dynamic Formula

return DestinationValue != null && !string.IsNullOrWhiteSpace(DestinationValue.PictureLink) ? DestinationValue.PictureLink : ProfilePicture;

PictureLink

Optional. Keeps the employee's picture link when it has one; otherwise the link to the member's Clockify profile picture. Empty when neither has one.

FirstName and LastName are functions the Clockify integration adds for mapping formulas (see Clockify Mapping Functions). If no HR or payroll system keeps your employees' names and Clockify should own them, replace the first two formulas with:

return FirstName(Name);
return LastName(Name);

Additional Member Fields

Subscribers or their MiSP can map these Clockify fields to their own Employee custom fields (create the custom field in iPaaS.com first):

Clockify field

What it holds

HourlyRateAmount, HourlyRateCurrency

The member's billable rate amount in the workspace, in cents, and its currency. Basic plan or higher; on other plans, validate what these fields hold in a staging environment before relying on them in production.

CostRateAmount, CostRateCurrency

The member's cost (labor) rate amount, in cents, and its currency. Pro plan or higher; on other plans, validate what these fields hold in a staging environment before relying on them in production.

Status

The member's Clockify account status, as Clockify reports it.

WeekStart

The day the member's week starts, as Clockify reports it.

The integration reads rate amounts in cents. Its CentsToAmount function divides a value by 100 and rounds it to two decimals at most, so a rate of 2500 becomes 25. For example, to map the billable rate to an Employee custom field as an amount:

return CentsToAmount(HourlyRateAmount);

Error Handling

Errors from this mapping collection appear in iPaaS.com Dashboard / Integration Monitoring / Error Logs, except CLKF-EXTN-1002, which appears in the transfer's activity log. For every code with its cause and resolution, see the Clockify Error Messages article.

  • CLKF-BIZL-1006 - iPaaS.com employee {id} with Clockify member {member}'s email is already linked to Clockify member {other}, so it can't be linked twice. Check the two members' emails in Clockify, then retry. The employee with this member's email is already linked to another member, for example because its email in iPaaS.com was changed. Each person needs their own email in Clockify and in iPaaS.com; correct it, then retry.

  • CLKF-EXTN-1002 - Clockify's request limit was reached while trying to {action}; iPaaS.com retries automatically. The code and iPaaS.com's message that the transfer will be retried later appear in the transfer's activity log; no error is added to the Error Logs. While the limit lasts, iPaaS.com also holds this subscription's other transfers in the same direction. If the record hasn't arrived an hour or so after the limit frees up, resend it with Manual Sync. Frequent occurrences on the Free plan mean the polls use more than the hourly allowance.

  • CLKF-EXTN-1006 - Couldn't send Clockify {type} {id} to iPaaS.com first: {reason} Check that the Employee TO iPaaS.com collection is on and its filter includes this member, then retry the timesheet. Raised on a timesheet when sending its member through this collection failed. Fix the reason given, then retry the timesheet.

  • CLKF-NFND-1003 (raised on a timesheet): the timesheet's member is not linked to an employee, for example because this collection's filter leaves the member out. Widen the filter, send the member, then retry the timesheet.

A member who is no longer in the workspace, or an invited or declined member who was never sent, is not sent and adds no error to the Error Logs.

Testing & Validation

Test Scenarios

  1. Have a new member join the Clockify workspace. Verify one iPaaS.com employee is created with the email, the first name (everything before the last space), the last name (the last word), the picture link and Clockify Status ACTIVE.

  2. Create an employee in iPaaS.com with a member's email and your own first name, last name and picture link, then transfer that member. Verify the member is linked to that employee, no second employee is created, and the names and picture link are kept.

  3. Deactivate the member in Clockify, then reactivate them. Verify Clockify Status changes to INACTIVE and back to ACTIVE on the same employee.

  4. Manually sync a member using their Clockify user id. Verify the employee is updated, not duplicated.

  5. Transfer member A so an iPaaS.com employee is linked to A. In iPaaS.com, change that employee's email to member B's email, then transfer member B. Verify the transfer stops with CLKF-BIZL-1006, member B is not linked, and the employee stays linked to member A.

  6. Change a member's email in Clockify and let member/poll run. Verify the employee's email changes and its names stay as they were.

  7. Invite a person who does not join, then let member/poll run. Verify no employee is added and no error appears in Error Logs.

Validation Checklist

  • The Employee custom field Clockify Status (text) exists in your iPaaS.com company.

  • The member triggers your plan allows are turned on in Inbound Data Flows, and a scheduled poll event exists for member/poll.

  • The filter keeps every member whose time you send to iPaaS.com.

  • Every person who already has an iPaaS.com employee has the same email in Clockify, and that employee is not already linked to another Clockify member.

Additional Notes

Out of Scope

  • Employee FROM iPaaS.com: iPaaS.com employees are not created, changed or removed in Clockify.

  • Removing employees: the integration does not act on a member's removal from the Clockify workspace; the iPaaS.com employee is not removed or changed.

Operational Notes

  • First load: there is no separate initial load; the first member/poll run sends the workspace's members.

Related Documents

Related Mapping Documentation

External References

All external references were read in November 2026.

Did this answer your question?