Skip to main content

Clockify Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a Clockify location.
clockify_api.png

Clockify

Create a Clockify Destination

  1. Click the + icon on the Nexset that will be sent to the Clockify destination, and select the Send to Destination option from the menu.

  2. Select the Clockify connector from the list of available destination connectors. Then, select the credential that will be used to connect to the Clockify workspace, and click Next; or, create a new Clockify credential for use in this flow.

  3. In Nexla, Clockify destinations can be created using pre-built endpoint templates, which expedite destination setup for common Clockify endpoints. Each template is designed specifically for the corresponding Clockify endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    Clockify destinations can also be configured manually, allowing you to send data to Clockify endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Clockify endpoints. Each template is designed specifically for the corresponding Clockify endpoint, making destination setup easy and efficient.

Each destination template maps the fields in your Nexset to the JSON request body that Clockify expects. The update and delete templates additionally require the ID of the record to modify; by default, this is mapped from the id attribute in your Nexset, which you can override with the appropriate attribute from your data.

  • To configure this destination using a template, select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

    Create Time Entry

    This endpoint creates a new time entry in a workspace for the authenticated user. Use it to push tracked time from your data into Clockify.

    • Enter the ID of the workspace in which to create the time entry in the Workspace ID field.
    • The Nexset record is sent as the JSON request body. Each record should include the time entry fields that Clockify expects, such as start, end, description, and projectId.

    Update Time Entry

    This endpoint replaces an existing time entry with new field values. Use it to keep Clockify time entries synchronized with corrected or enriched data.

    • Enter the ID of the workspace containing the time entry in the Workspace ID field.
    • Enter the ID of the time entry to update in the Time Entry ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
    • The Nexset record is sent as the JSON request body with the updated field values.

    Delete Time Entry

    This endpoint deletes a time entry from a workspace. Use it to remove time entries that are no longer valid.

    • Enter the ID of the workspace containing the time entry in the Workspace ID field.
    • Enter the ID of the time entry to delete in the Time Entry ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.

    Stop Timer

    This endpoint stops the currently running timer for a user by setting its end time. Use it to programmatically close out active time entries.

    • Enter the ID of the workspace containing the running timer in the Workspace ID field.
    • Enter the ID of the user whose running timer should be stopped in the User ID field.
    • The Nexset record is sent as the JSON request body and must include the end time for the timer.

    Create Project

    This endpoint creates a new project in a workspace. Use it to provision projects in Clockify from your source data.

    • Enter the ID of the workspace in which to create the project in the Workspace ID field.
    • The Nexset record is sent as the JSON request body. Each record should include project fields such as name, clientId, color, and billable.

    Update Project

    This endpoint updates an existing project's name, client, color, billable rate, and other fields.

    • Enter the ID of the workspace containing the project in the Workspace ID field.
    • Enter the ID of the project to update in the Project ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
    • The Nexset record is sent as the JSON request body with the updated field values.

    Delete Project

    This endpoint deletes a project from a workspace.

    • Enter the ID of the workspace containing the project in the Workspace ID field.
    • Enter the ID of the project to delete in the Project ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.

    A Clockify project typically must be archived before it can be deleted. Ensure projects are in a deletable state before activating this destination.

    Create Task

    This endpoint creates a task within a project. Tasks are sub-units of work that time entries can be logged against.

    • Enter the ID of the workspace containing the project in the Workspace ID field.
    • Enter the ID of the project in which to create the task in the Project ID field.
    • The Nexset record is sent as the JSON request body and should include task fields such as name and any assignee details.

    Update Task

    This endpoint updates an existing task in a project, such as renaming it, changing its assignee, or marking it done.

    • Enter the ID of the workspace containing the project in the Workspace ID field.
    • Enter the ID of the project containing the task in the Project ID field.
    • Enter the ID of the task to update in the Task ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
    • The Nexset record is sent as the JSON request body with the updated field values.

    Delete Task

    This endpoint deletes a task from a project.

    • Enter the ID of the workspace containing the project in the Workspace ID field.
    • Enter the ID of the project containing the task in the Project ID field.
    • Enter the ID of the task to delete in the Task ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.

    Create Client

    This endpoint creates a new client in a workspace. Clients represent the customers or organizations that projects are associated with.

    • Enter the ID of the workspace in which to create the client in the Workspace ID field.
    • The Nexset record is sent as the JSON request body and should include client fields such as name.

    Update Client

    This endpoint updates an existing client's name or archive state.

    • Enter the ID of the workspace containing the client in the Workspace ID field.
    • Enter the ID of the client to update in the Client ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
    • The Nexset record is sent as the JSON request body with the updated field values.

    Delete Client

    This endpoint deletes a client from a workspace.

    • Enter the ID of the workspace containing the client in the Workspace ID field.
    • Enter the ID of the client to delete in the Client ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.

    Create Tag

    This endpoint creates a new tag in a workspace. Tags are labels that can be applied to time entries to categorize work.

    • Enter the ID of the workspace in which to create the tag in the Workspace ID field.
    • The Nexset record is sent as the JSON request body and should include tag fields such as name.

    Update Tag

    This endpoint updates an existing tag, such as renaming or archiving it.

    • Enter the ID of the workspace containing the tag in the Workspace ID field.
    • Enter the ID of the tag to update in the Tag ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
    • The Nexset record is sent as the JSON request body with the updated field values.

    Delete Tag

    This endpoint deletes a tag from a workspace.

    • Enter the ID of the workspace containing the tag in the Workspace ID field.
    • Enter the ID of the tag to delete in the Tag ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.

Configure Manually

Clockify destinations can be manually configured to send data to any valid Clockify API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the Clockify API after each call to a new Nexla webhook data source.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Clockify API from the Method pulldown menu. Clockify write operations use POST to create records, PUT to replace existing records, PATCH to stop a running timer, and DELETE to remove records.

Data Format

  1. Select the format in which the Nexset data will be sent to the Clockify API from the Content Format pulldown menu. Clockify expects JSON request bodies, so JSON is the appropriate format for this destination. Nexla will automatically convert the data to the selected format for each API call.

API Endpoint URL

  1. Enter the URL of the Clockify API endpoint to which you want to send the Nexset data in the URL field. Standard resources use the base URL https://api.clockify.me/api/v1. For update, delete, and stop operations, include the ID of the object to be modified at the end of the URL—for example, https://api.clockify.me/api/v1/workspaces/{'{workspaceId}'}/projects/{'{projectId}'}.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include the X-Api-Key header here. The API key from your credential is attached automatically by Nexla.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this Clockify destination, select the attributes from the Exclude Attributes pulldown menu.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings.

The Clockify write endpoints documented above operate on a single record per request. Batching is most useful when sending records to a custom endpoint that accepts multiple records in one call. Clockify also enforces a rate limit of 10 requests per second per API key, so review your batching and scheduling settings to stay within these limits.

Response Webhook

Optional

Nexla can automatically send the response received from the Clockify API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and any additional information returned after each call, such as the IDs of newly created records.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the Clockify API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the Clockify API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the Clockify API using the current settings.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to Clockify, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to Clockify until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.