Summary
iPaaS.com Customer Company records can be transferred to Clockify as clients through the Add/Update Clockify Customer Company FROM iPaaS.com mapping collection, automatically through the iPaaS.com company triggers or on demand with Manual Sync. The collection sends the company's name, email and description, creates the client when the company is not yet linked and updates it afterwards. A same-name Clockify client is matched rather than duplicated, and a change made in Clockify is not overwritten by a later update from iPaaS.com.
ID Format
Manual Sync ID Format
On the iPaaS.com Manual Sync page, enter the iPaaS.com Customer Company ID: the number that identifies the company in iPaaS.com (example: 37940). Manual Sync sends that one company to Clockify, creating the client or updating it when the company is already linked.
External ID Format
After a successful transfer, iPaaS.com saves the Clockify client id, a 24-character id such as 6aec7ff29cd1b471d59e9d0a, as the company's external ID. The external ID is held on a dedicated external-ID record in iPaaS.com, not on a company field, and it is the primary match: later transfers of the company update that same client instead of creating another. When a company has no external ID yet, the integration matches it to an existing Clockify client by name, as described under Collision Handling below.
Deleted Record Support
Delete is not supported. The integration never deletes a Clockify client and no Delete collection is provided; a delete that reaches the integration is refused with CLKF-BIZL-1005. To retire a client, add a mapping to the Clockify Archived field and send true, or archive the client in Clockify.
Mapping Collection Status
Status: Enabled. The shipped filter sends every iPaaS.com company.
Trigger Events: the iPaaS.com triggers customer/company/created (a company created in iPaaS.com) and customer/company/updated (a company saved in iPaaS.com), enabled in the subscription configuration under Outbound Data Flows, plus Manual Sync of an iPaaS.com Customer Company ID. Until the triggers are enabled, no company is sent automatically. Whether a transfer creates or updates the client depends on whether the company is already linked to a Clockify client, not on which trigger fired.
Duplicate or Conflicting Mappings
This mapping collection sends companies from iPaaS.com to Clockify. The following mapping collection works on the same records in the opposite direction:
Add/Update Clockify Customer Company TO iPaaS.com: sends Clockify clients to iPaaS.com as companies.
Before enabling both directions, decide which system is the source of truth for company data and review both collections' filters. An update the integration writes to a Clockify client is not sent back to iPaaS.com as a Clockify change, so the two collections do not trigger each other in a loop. A change made by a person in Clockify does reach iPaaS.com through the TO iPaaS.com collection when that collection is enabled. Review the Clockify to iPaaS.com Client Mapping Documentation for the iPaaS.com company fields the TO iPaaS.com collection does not map.
Unmapped Clockify Fields Are Kept
An update reads the client from Clockify first and sends back Clockify's current value for every field this collection does not map, including the client's address, archived flag, currency and cc email addresses. Removing a mapping leaves that field as it is in Clockify rather than clearing it. The same applies when a transfer carries no value at all for a mapped field such as Email or Note. Subscribers or their MiSP should validate in a staging environment whether clearing a value on the company in iPaaS.com clears it in Clockify before relying on that.
Edits Made in Clockify
Every client the integration writes ends its note with a sync line, for example [iPaaS.com sync … 37940]. Inside the brackets is a short fingerprint of the values the integration last wrote, followed by the iPaaS.com company id. The sync line is visible to Clockify users.
On an update, the integration compares the client's name, email, address, archived flag and note text with the fingerprint. When one of them was changed in Clockify since the integration last wrote it, and iPaaS.com would now send a different value, the update is refused with CLKF-BIZL-1003, naming the edited field, and Clockify's value is kept. When the Clockify edit has already reached iPaaS.com, so that iPaaS.com now sends the same value, there is no conflict and the update goes ahead. A client the integration has never written has no sync line, so its first update is not checked; that update adds the sync line.
To keep Clockify's version, dismiss the error and let the Clockify change reach iPaaS.com. To overwrite it, delete the sync line at the end of the client's note in Clockify and resend the company.
Collision Handling
Collision handling applies only when a client would be created, that is, when the company has no Clockify link yet. Before creating the client, the integration searches Clockify for a client with the company's name (ignoring capitalization):
Search result | What happens |
No client with that name | The client is created. |
One client whose sync line carries this company's iPaaS.com id | It is the client the integration made earlier for the same company (for example, before the link was lost). It is linked again; no second client is created. |
One other client | The match is returned to iPaaS.com as a collision, and the collection's Collision Handling Method decides what happens. |
Two or more clients | The transfer stops with CLKF-BIZL-1002. Rename or archive the duplicates in Clockify, then retry. |
The Collision Handling Method setting is on this mapping collection's settings page in iPaaS.com. The default template does not set a method, so subscribers or their MiSP should choose one before sending companies. None of the methods creates a second Clockify client:
Method | What happens for this collection |
Error | The transfer is rejected with "A data collision occurred", no link is recorded and the Clockify client is unchanged. Choose this to review every name match yourself. |
Remap and Link | The company is linked to the matching client, and the client is then updated with the company's values. |
Update and Link | The matching client is updated with the company's values, and the company is linked to it. |
Update and No Link | The matching client is updated with the company's values, but no link is recorded, so each later transfer of the company goes through collision handling again. |
Supported Child Collections
None. The integration writes a client's address as one text field on the client, so there is no separate address collection. To send an address, add a mapping to the Clockify Address field (see Additional Clockify Fields under Mappings).
System Caveats
Clockify Caveats
Client name: the integration refuses a company with no name (CLKF-VALD-1003) and a name longer than 100 characters (CLKF-VALD-1004) before anything is written to Clockify.
Note length: the integration keeps its sync line at the end of the note, so the company's description can be up to 2,936 characters (CLKF-VALD-1005 otherwise). The address can be up to 3,000 characters.
The sync line belongs to the integration: it lets the integration recognize edits made in Clockify and its own earlier clients. Deleting it lets the next update from iPaaS.com overwrite the client. The TO iPaaS.com collection removes it, so it never appears in the company's description in iPaaS.com.
A client deleted in Clockify: the next update stops with CLKF-NFND-1002. To create the client again, the company's link to the deleted Clockify client must first be removed in iPaaS.com; contact iPaaS.com Support if you can't remove it, then resend the company.
Currency: a mapped currency must be one of the Clockify workspace's currencies (CLKF-VALD-1006 otherwise). Clockify offers multiple currencies on its Pro plan and higher (Clockify pricing, read 2026-11-04).
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 the Enterprise plan (Clockify API documentation, read 2026-11-06). 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. For a new client that was limited after it was created, check the client's archived flag and currency in Clockify after it arrives. On the Free plan the hourly budget runs out quickly, so expect delays when many companies are sent at once.
iPaaS.com Caveats
Every company is sent by default: the shipped filter sends every iPaaS.com company, including prospects and other accounts that are not customers. Narrow the filter if only some companies should become Clockify clients.
Choose a collision method: the default template does not set a Collision Handling Method. Choose one before sending companies so that name matches are handled the way you intend.
Errors: refused transfers appear in iPaaS.com Dashboard / Integration Monitoring / Error Logs. A transfer stopped by Clockify's rate limit (CLKF-EXTN-1002) appears only in the transfer's activity log.
Setup Requirements
For the subscription setup, see the Clockify Installation Instructions. For this collection, subscribers or their MiSP should:
Choose the Collision Handling Method on this mapping collection's settings page.
Review the filter, and narrow it if only some companies should become Clockify clients.
In the subscription configuration, open Outbound Data Flows and enable customer/company/created and customer/company/updated. No company is sent automatically until they are enabled.
Send the companies that existed before the triggers were enabled with Manual Sync.
Nothing needs to be set up in Clockify for this direction.
Integration Flow
Trigger: a company created in iPaaS.com (customer/company/created), a company saved in iPaaS.com (customer/company/updated), or Manual Sync of an iPaaS.com Customer Company ID sends the company to this collection.
Filter: the collection's filter decides whether the company is sent. A company the filter leaves out is skipped without an error.
Map: each mapping fills one Clockify client field.
Check the values: the name (present, up to 100 characters), the note and address lengths and, when mapped, the currency are checked before anything is written to Clockify.
Add (the company has no Clockify link): the integration searches Clockify for a client with the company's name (ignoring capitalization) and applies Collision Handling as described above. When no client matches, it creates the client with the sync line at the end of its note. When Archived is mapped as true or a currency is mapped, it is set on the new client right after the client is created; if Clockify refuses that step, the client stays created and linked and the transfer shows CLKF-EXTN-1010. If that step instead meets Clockify's rate limit, the transfer stops with CLKF-EXTN-1002 and the client can be left created but not linked (see Rate limiting under System Caveats). Resend the company with Manual Sync once the limit frees up; with IpaasId mapped, the integration recognizes the client it made and links it. After the client arrives, check its archived flag and currency in Clockify, and set them there if they are missing.
Update (the company is linked): the integration reads the client from Clockify, refuses the update with CLKF-BIZL-1003 if a field was edited in Clockify, and otherwise writes the mapped values together with Clockify's current values for the unmapped fields, refreshing the sync line. When nothing has changed, nothing is written.
Link: the Clockify client id is saved as the company's external ID in iPaaS.com, except when the Update and No Link collision method applies.
Mappings
Add/Update Clockify Customer Company FROM iPaaS.com
iPaaS.com data type: Customer Company
Mapping Filter
// Every iPaaS.com company becomes a Clockify client return true;
Filter Description: the filter returns true for every record, so every iPaaS.com company is sent to Clockify and none is skipped. If only some of your companies should become Clockify clients (for example, customers but not prospects), subscribers or their MiSP can change the filter to return true only for those companies, for example by checking a category or a custom field that marks them. A company the filter leaves out is skipped without an error.
Description: sends iPaaS.com companies to Clockify as clients, creating or updating the linked client.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Clockify) | Description |
Field | EmailAddress | Recommended. The company's email address. The integration does not require one. If subscribers or their MiSP remove this mapping, the client keeps its Clockify email. | |
Dynamic Formula |
| IpaasId | Recommended; keep as shipped. The iPaaS.com company id, written only into the client's sync line (not a Clockify field), so a retried create recognizes the client the integration already made for this company. |
Field | Name | Name | Required. The company's name, trimmed; the integration refuses a name longer than 100 characters. Also how an existing Clockify client is matched when the company is sent for the first time. |
Field | Description | Note | Optional. The company's description as the client's note, up to 2,936 characters; the integration adds its sync line as the last line. If the mapping is removed, the client keeps its Clockify note text. |
Additional Clockify Fields
Subscribers or their MiSP can add mappings to these Clockify client fields. Each one left unmapped keeps the client's current Clockify value.
Destination Field (Clockify) | What it takes |
Address | The client's address as one block of text, up to 3,000 characters (CLKF-VALD-1005 otherwise). Build it with the FormatAddress function, which joins the parts with line breaks and skips blank parts. |
Archived | true archives the client in Clockify, and false restores it. |
CurrencyId | The client's currency, as a currency code such as USD or a Clockify currency id. It must be one of the Clockify workspace's currencies (CLKF-VALD-1006 otherwise). A currency other than the workspace's own needs a Clockify plan with multiple currencies (Pro or higher; Clockify pricing, read 2026-11-04). |
Example address formula:
return FormatAddress("100 Main St", "Suite 4", "Springfield", "IL", "62701", "US");It returns four lines:
100 Main St
Suite 4
Springfield, IL 62701
US
Error Handling
These are the messages this collection can produce. Each appears 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 fix, see the Clockify Error Messages article.
"CLKF-BIZL-1003 - Clockify client {id} was edited in Clockify ({field}) since the integration last wrote it, so this update would overwrite that edit. To keep Clockify's version, dismiss this error and let the Clockify change reach iPaaS.com. To overwrite it, delete the [iPaaS.com sync …] line at the end of the client's note in Clockify and resend.": a field was changed in Clockify since the integration last wrote the client. Follow the advice in the message.
"A data collision occurred. The data in the destination system has id {id}": the Collision Handling Method is Error and a Clockify client with the company's name already exists. Review the match; to use the existing client, choose Update and Link or Remap and Link and resend the company.
"CLKF-BIZL-1002 - Clockify has {n} clients with this company's name ({ids}), so the integration can't tell which one it is. Rename or archive the duplicates in Clockify, then retry.": more than one Clockify client has the company's name.
"CLKF-VALD-1003 - The company has no name; Clockify requires a client name. Map Name in the Customer Company FROM iPaaS.com collection.": the mapped name is empty.
"CLKF-VALD-1004 - The company name is {n} characters; Clockify allows 100. Shorten the name in iPaaS.com, or map a shorter value to Name, then resend.": the name is longer than 100 characters.
"CLKF-VALD-1005 - The address is longer than Clockify's 3000 characters, or the note longer than 2936 (the integration keeps a short sync mark at its end). Shorten the value in iPaaS.com, or map a shorter one, then resend.": the address or description is too long.
"CLKF-VALD-1006 - The mapped currency isn't one of the Clockify workspace's currencies. Add it in Clockify's workspace settings, or map a code the workspace has.": the mapped currency is not available in the workspace.
"CLKF-VALD-1002 - The company has no linked Clockify client, so it can't be updated. Use an Add/Update collection (it creates or links the client), or send the company once with it by Manual Sync.": an update reached a company that has no Clockify link.
"CLKF-NFND-1002 - Clockify client {id} no longer exists (deleted in Clockify). Remove the company's Clockify link in iPaaS.com to create it again.": the linked client was deleted in Clockify.
"CLKF-EXTN-1010 - Clockify created client {id} but refused its archived flag or currency: {reason} The client is linked; correct the value and resend.": the client was created, but Clockify refused the archived flag or currency set right after.
"CLKF-EXTN-1004 - Clockify accepted the new client but returned no id. Retry; the integration then finds and links the client it made.": Clockify did not confirm the new client; a retry links the client the integration made.
"CLKF-EXTN-1002 - Clockify's request limit was reached while trying to {action}; iPaaS.com retries automatically.": Clockify's rate limit was reached and the transfer stops. 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. For a new client that was limited after it was created, check the client's archived flag and currency in Clockify after it arrives.
"CLKF-BIZL-1005 - Clockify clients aren't deleted by this integration; archive the client instead (map Archived).": a delete reached the integration. Archive the client instead.
Testing & Validation
Test Scenarios
With both triggers enabled, create a company in iPaaS.com. Verify that one Clockify client is created with the company's name, email and description, that its note ends with the sync line carrying the company's id, and that the company is linked to the client.
Change the company's email and description and save it. Verify the same client is updated and no second client is created.
Edit the client's email in Clockify, then change the company's email in iPaaS.com and save it, without letting the Clockify edit reach iPaaS.com first. Verify the update is refused with CLKF-BIZL-1003 naming the email, and Clockify's email is kept.
With the Collision Handling Method set to Update and Link, create a company whose name matches an existing Clockify client. Verify the company is linked to that client, the client is updated, and no duplicate is created.
With the method set to Error, repeat scenario 4 with another name. Verify the transfer is rejected with the collision message, no link is recorded and the client is unchanged.
Send an existing company with Manual Sync using its iPaaS.com Customer Company ID, and verify it reaches Clockify.
Send a company with no name. Verify it is refused with CLKF-VALD-1003 and nothing is created in Clockify.
Validation Checklist
A Collision Handling Method is chosen on this collection.
The filter sends only the companies that should become Clockify clients.
customer/company/created and customer/company/updated are enabled under Outbound Data Flows.
The Name and IpaasId mappings are in place.
Companies that existed before the triggers were enabled have been sent with Manual Sync.
Additional Notes
Clockify custom fields and the client's cc email addresses are not written by this collection; the cc email addresses keep their Clockify values.
Companies that existed before the triggers were enabled are not sent until they are saved again in iPaaS.com or sent with Manual Sync.
Related Documents
Related Mapping Documentation
External References
Clockify API documentation: request rate limits per plan.
Clockify pricing: plan features, including multiple currencies.
